[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-ja-quantum-teleportation-tutorial":3,"blog-translated-locales-quantum-teleportation-tutorial":1193,"blog-all-ja":1200},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"author":11,"tags":12,"readingTime":16,"body":17,"_type":1187,"_id":1188,"_source":1189,"_file":1190,"_stem":1191,"_extension":1192},"\u002Fja\u002Fblog\u002Fquantum-teleportation-tutorial","blog",false,"","Qiskitで学ぶ量子テレポーテーション実践チュートリアル","Qiskitで量子テレポーテーションプロトコルをゼロから構築：ベル対、ベル基底測定、古典制御による補正まで、実行可能なコードと、このプロトコルが何をして何をしないのかについての率直な解説付き。","2026-08-12","FreeQuantumComputing",[13,14,15],"Algorithms","Qiskit","Fundamentals",9,{"type":18,"children":19,"toc":1173},"root",[20,35,40,46,51,56,61,67,87,92,98,128,421,428,482,523,529,630,663,669,766,800,806,964,1021,1027,1054,1059,1088,1093,1106,1111,1167],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25,33],{"type":21,"tag":26,"props":27,"children":29},"a",{"href":28},"\u002Fglossary\u002Fquantum-teleportation",[30],{"type":31,"value":32},"text","量子テレポーテーション",{"type":31,"value":34},"は、ある量子ビットの正確な状態を、その量子ビット自体を物理的に運ぶことなく、別の場所に転送します。このプロトコルに必要なのは3つの量子ビット、1組の共有されたもつれ対、そして2つの古典ビットだけで、Qiskitコード30行未満で構築できます。",{"type":21,"tag":22,"props":36,"children":37},{},[38],{"type":31,"value":39},"この名前こそが、このプロトコルをめぐる混乱の大部分を生んでいるので、コードに触れる前にまずそこを整理しておきましょう。",{"type":21,"tag":41,"props":42,"children":44},"h2",{"id":43},"テレポーテーションではないもの",[45],{"type":31,"value":43},{"type":21,"tag":22,"props":47,"children":48},{},[49],{"type":31,"value":50},"このプロトコルは物質を移動させません。量子ビットの物理的な粒子そのものは、どこにも移動しません。実際に移動するのは情報です。プロトコルの終わりには、受信側の量子ビットが、送信側の量子ビットが最初にあった量子状態とまったく同じ状態になります。",{"type":21,"tag":22,"props":52,"children":53},{},[54],{"type":31,"value":55},"このプロトコルは光より速い通信を可能にしません。送信側から2つの古典ビットが届くまで、受信側の量子ビットは使い物にならないデータのままであり、この伝送はほかのあらゆる古典信号と同様に光速に制限されます。ここで自然はとても慎重です。もつれそのものは結果を相関させるだけで、それ自体が制御可能な信号を運ぶことは決してありません。",{"type":21,"tag":22,"props":57,"children":58},{},[59],{"type":31,"value":60},"このプロトコルは量子ビットをコピーすることもありません。未知の量子状態の完全なコピーが元の状態と同時に存在することは、コピー禁止定理によって禁じられており、テレポーテーションはこれを厳密に守ります。状態を伝送するという行為自体が、送信側の持つコピーを破壊するのです。最終的には状態を保持する量子ビットがちょうど1つだけ存在し、受信側が手にする量子ビットは、あなたが最初に使っていたものとは別物です。",{"type":21,"tag":41,"props":62,"children":64},{"id":63},"_3つのステップで進むプロトコル",[65],{"type":31,"value":66},"3つのステップで進むプロトコル",{"type":21,"tag":68,"props":69,"children":70},"ol",{},[71,77,82],{"type":21,"tag":72,"props":73,"children":74},"li",{},[75],{"type":31,"value":76},"事前にもつれを共有する。送信側と受信側はそれぞれベル対の半分を持ち、どの状態をテレポートするかが分かるよりも前にこの分配が行われます。",{"type":21,"tag":72,"props":78,"children":79},{},[80],{"type":31,"value":81},"送信側は、自分が持つ対の半分と、テレポートしたい量子ビットに対して、同時測定（ベル基底測定）を行います。これにより4通りのランダムな2ビットの結果のいずれかが得られ、副作用として元の量子ビットの状態が破壊されます。",{"type":21,"tag":72,"props":83,"children":84},{},[85],{"type":31,"value":86},"送信側はその2つの古典ビットを受信側に送り、受信側は結果に応じて4種類のうちいずれかのゲート（恒等、X、Z、XZ）を自分が持つ対の半分に適用します。この補正により、ステップ2で得られた4通りの結果のどれであったかにかかわらず、元の状態が正確に再構築されます。",{"type":21,"tag":22,"props":88,"children":89},{},[90],{"type":31,"value":91},"ステップ2のランダム性は本物であり避けられませんが、ステップ3の補正はそれを決定論的に打ち消します。この打ち消しこそがこのプロトコルの意義そのものであり、同時に最も間違えやすい部分でもあります。詳しくは後述します。",{"type":21,"tag":41,"props":93,"children":95},{"id":94},"qiskitで回路を構築する",[96],{"type":31,"value":97},"Qiskitで回路を構築する",{"type":21,"tag":22,"props":99,"children":100},{},[101,103,110,112,118,120,126],{"type":31,"value":102},"3つの量子ビット：",{"type":21,"tag":104,"props":105,"children":107},"code",{"className":106},[],[108],{"type":31,"value":109},"q0",{"type":31,"value":111}," はテレポートしたい状態を保持し、",{"type":21,"tag":104,"props":113,"children":115},{"className":114},[],[116],{"type":31,"value":117},"q1",{"type":31,"value":119}," はもつれ対のうち送信側が持つ半分、",{"type":21,"tag":104,"props":121,"children":123},{"className":122},[],[124],{"type":31,"value":125},"q2",{"type":31,"value":127}," は受信側が持つ半分です。",{"type":21,"tag":129,"props":130,"children":134},"pre",{"className":131,"code":132,"language":133,"meta":7,"style":7},"language-python shiki shiki-themes github-dark","from qiskit import QuantumCircuit, QuantumRegister, ClassicalRegister, transpile\nfrom qiskit_aer import AerSimulator\n\ntheta = 0.9  # arbitrary angle, stands in for \"an unknown state\"\n\nqr = QuantumRegister(3, \"q\")\ncr = ClassicalRegister(2, \"c\")\nresult_reg = ClassicalRegister(1, \"result\")\nqc = QuantumCircuit(qr, cr, result_reg)\n\n# Step 0: prepare the state to teleport on q0. In a real protocol\n# this state is unknown. Ry(theta) here only gives us something\n# concrete to verify against later.\nqc.ry(theta, 0)\nqc.barrier()\n","python",[135],{"type":21,"tag":104,"props":136,"children":137},{"__ignoreMap":7},[138,166,188,198,224,232,271,307,342,359,367,376,385,394,412],{"type":21,"tag":139,"props":140,"children":143},"span",{"class":141,"line":142},"line",1,[144,150,156,161],{"type":21,"tag":139,"props":145,"children":147},{"style":146},"--shiki-default:#F97583",[148],{"type":31,"value":149},"from",{"type":21,"tag":139,"props":151,"children":153},{"style":152},"--shiki-default:#E1E4E8",[154],{"type":31,"value":155}," qiskit ",{"type":21,"tag":139,"props":157,"children":158},{"style":146},[159],{"type":31,"value":160},"import",{"type":21,"tag":139,"props":162,"children":163},{"style":152},[164],{"type":31,"value":165}," QuantumCircuit, QuantumRegister, ClassicalRegister, transpile\n",{"type":21,"tag":139,"props":167,"children":169},{"class":141,"line":168},2,[170,174,179,183],{"type":21,"tag":139,"props":171,"children":172},{"style":146},[173],{"type":31,"value":149},{"type":21,"tag":139,"props":175,"children":176},{"style":152},[177],{"type":31,"value":178}," qiskit_aer ",{"type":21,"tag":139,"props":180,"children":181},{"style":146},[182],{"type":31,"value":160},{"type":21,"tag":139,"props":184,"children":185},{"style":152},[186],{"type":31,"value":187}," AerSimulator\n",{"type":21,"tag":139,"props":189,"children":191},{"class":141,"line":190},3,[192],{"type":21,"tag":139,"props":193,"children":195},{"emptyLinePlaceholder":194},true,[196],{"type":31,"value":197},"\n",{"type":21,"tag":139,"props":199,"children":201},{"class":141,"line":200},4,[202,207,212,218],{"type":21,"tag":139,"props":203,"children":204},{"style":152},[205],{"type":31,"value":206},"theta ",{"type":21,"tag":139,"props":208,"children":209},{"style":146},[210],{"type":31,"value":211},"=",{"type":21,"tag":139,"props":213,"children":215},{"style":214},"--shiki-default:#79B8FF",[216],{"type":31,"value":217}," 0.9",{"type":21,"tag":139,"props":219,"children":221},{"style":220},"--shiki-default:#6A737D",[222],{"type":31,"value":223},"  # arbitrary angle, stands in for \"an unknown state\"\n",{"type":21,"tag":139,"props":225,"children":227},{"class":141,"line":226},5,[228],{"type":21,"tag":139,"props":229,"children":230},{"emptyLinePlaceholder":194},[231],{"type":31,"value":197},{"type":21,"tag":139,"props":233,"children":235},{"class":141,"line":234},6,[236,241,245,250,255,260,266],{"type":21,"tag":139,"props":237,"children":238},{"style":152},[239],{"type":31,"value":240},"qr ",{"type":21,"tag":139,"props":242,"children":243},{"style":146},[244],{"type":31,"value":211},{"type":21,"tag":139,"props":246,"children":247},{"style":152},[248],{"type":31,"value":249}," QuantumRegister(",{"type":21,"tag":139,"props":251,"children":252},{"style":214},[253],{"type":31,"value":254},"3",{"type":21,"tag":139,"props":256,"children":257},{"style":152},[258],{"type":31,"value":259},", ",{"type":21,"tag":139,"props":261,"children":263},{"style":262},"--shiki-default:#9ECBFF",[264],{"type":31,"value":265},"\"q\"",{"type":21,"tag":139,"props":267,"children":268},{"style":152},[269],{"type":31,"value":270},")\n",{"type":21,"tag":139,"props":272,"children":274},{"class":141,"line":273},7,[275,280,284,289,294,298,303],{"type":21,"tag":139,"props":276,"children":277},{"style":152},[278],{"type":31,"value":279},"cr ",{"type":21,"tag":139,"props":281,"children":282},{"style":146},[283],{"type":31,"value":211},{"type":21,"tag":139,"props":285,"children":286},{"style":152},[287],{"type":31,"value":288}," ClassicalRegister(",{"type":21,"tag":139,"props":290,"children":291},{"style":214},[292],{"type":31,"value":293},"2",{"type":21,"tag":139,"props":295,"children":296},{"style":152},[297],{"type":31,"value":259},{"type":21,"tag":139,"props":299,"children":300},{"style":262},[301],{"type":31,"value":302},"\"c\"",{"type":21,"tag":139,"props":304,"children":305},{"style":152},[306],{"type":31,"value":270},{"type":21,"tag":139,"props":308,"children":310},{"class":141,"line":309},8,[311,316,320,324,329,333,338],{"type":21,"tag":139,"props":312,"children":313},{"style":152},[314],{"type":31,"value":315},"result_reg ",{"type":21,"tag":139,"props":317,"children":318},{"style":146},[319],{"type":31,"value":211},{"type":21,"tag":139,"props":321,"children":322},{"style":152},[323],{"type":31,"value":288},{"type":21,"tag":139,"props":325,"children":326},{"style":214},[327],{"type":31,"value":328},"1",{"type":21,"tag":139,"props":330,"children":331},{"style":152},[332],{"type":31,"value":259},{"type":21,"tag":139,"props":334,"children":335},{"style":262},[336],{"type":31,"value":337},"\"result\"",{"type":21,"tag":139,"props":339,"children":340},{"style":152},[341],{"type":31,"value":270},{"type":21,"tag":139,"props":343,"children":344},{"class":141,"line":16},[345,350,354],{"type":21,"tag":139,"props":346,"children":347},{"style":152},[348],{"type":31,"value":349},"qc ",{"type":21,"tag":139,"props":351,"children":352},{"style":146},[353],{"type":31,"value":211},{"type":21,"tag":139,"props":355,"children":356},{"style":152},[357],{"type":31,"value":358}," QuantumCircuit(qr, cr, result_reg)\n",{"type":21,"tag":139,"props":360,"children":362},{"class":141,"line":361},10,[363],{"type":21,"tag":139,"props":364,"children":365},{"emptyLinePlaceholder":194},[366],{"type":31,"value":197},{"type":21,"tag":139,"props":368,"children":370},{"class":141,"line":369},11,[371],{"type":21,"tag":139,"props":372,"children":373},{"style":220},[374],{"type":31,"value":375},"# Step 0: prepare the state to teleport on q0. In a real protocol\n",{"type":21,"tag":139,"props":377,"children":379},{"class":141,"line":378},12,[380],{"type":21,"tag":139,"props":381,"children":382},{"style":220},[383],{"type":31,"value":384},"# this state is unknown. Ry(theta) here only gives us something\n",{"type":21,"tag":139,"props":386,"children":388},{"class":141,"line":387},13,[389],{"type":21,"tag":139,"props":390,"children":391},{"style":220},[392],{"type":31,"value":393},"# concrete to verify against later.\n",{"type":21,"tag":139,"props":395,"children":397},{"class":141,"line":396},14,[398,403,408],{"type":21,"tag":139,"props":399,"children":400},{"style":152},[401],{"type":31,"value":402},"qc.ry(theta, ",{"type":21,"tag":139,"props":404,"children":405},{"style":214},[406],{"type":31,"value":407},"0",{"type":21,"tag":139,"props":409,"children":410},{"style":152},[411],{"type":31,"value":270},{"type":21,"tag":139,"props":413,"children":415},{"class":141,"line":414},15,[416],{"type":21,"tag":139,"props":417,"children":418},{"style":152},[419],{"type":31,"value":420},"qc.barrier()\n",{"type":21,"tag":422,"props":423,"children":425},"h3",{"id":424},"ステップ1もつれ対を分配する",[426],{"type":31,"value":427},"ステップ1：もつれ対を分配する",{"type":21,"tag":129,"props":429,"children":431},{"className":131,"code":430,"language":133,"meta":7,"style":7},"qc.h(1)\nqc.cx(1, 2)\nqc.barrier()\n",[432],{"type":21,"tag":104,"props":433,"children":434},{"__ignoreMap":7},[435,451,475],{"type":21,"tag":139,"props":436,"children":437},{"class":141,"line":142},[438,443,447],{"type":21,"tag":139,"props":439,"children":440},{"style":152},[441],{"type":31,"value":442},"qc.h(",{"type":21,"tag":139,"props":444,"children":445},{"style":214},[446],{"type":31,"value":328},{"type":21,"tag":139,"props":448,"children":449},{"style":152},[450],{"type":31,"value":270},{"type":21,"tag":139,"props":452,"children":453},{"class":141,"line":168},[454,459,463,467,471],{"type":21,"tag":139,"props":455,"children":456},{"style":152},[457],{"type":31,"value":458},"qc.cx(",{"type":21,"tag":139,"props":460,"children":461},{"style":214},[462],{"type":31,"value":328},{"type":21,"tag":139,"props":464,"children":465},{"style":152},[466],{"type":31,"value":259},{"type":21,"tag":139,"props":468,"children":469},{"style":214},[470],{"type":31,"value":293},{"type":21,"tag":139,"props":472,"children":473},{"style":152},[474],{"type":31,"value":270},{"type":21,"tag":139,"props":476,"children":477},{"class":141,"line":190},[478],{"type":21,"tag":139,"props":479,"children":480},{"style":152},[481],{"type":31,"value":420},{"type":21,"tag":22,"props":483,"children":484},{},[485,487,493,495,500,502,507,509,514,516,521],{"type":31,"value":486},"標準的な",{"type":21,"tag":26,"props":488,"children":490},{"href":489},"\u002Fglossary\u002Fbell-state",[491],{"type":31,"value":492},"ベル状態",{"type":31,"value":494},"の構築方法です。アダマールゲートに続いてCNOTゲートを適用します。これで ",{"type":21,"tag":104,"props":496,"children":498},{"className":497},[],[499],{"type":31,"value":117},{"type":31,"value":501}," と ",{"type":21,"tag":104,"props":503,"children":505},{"className":504},[],[506],{"type":31,"value":125},{"type":31,"value":508}," は最大限もつれた状態になり、実際の運用ではプロトコルの残りが実行される前に、すでに ",{"type":21,"tag":104,"props":510,"children":512},{"className":511},[],[513],{"type":31,"value":117},{"type":31,"value":515}," は送信側、",{"type":21,"tag":104,"props":517,"children":519},{"className":518},[],[520],{"type":31,"value":125},{"type":31,"value":522}," は受信側へと分離されているはずです。",{"type":21,"tag":422,"props":524,"children":526},{"id":525},"ステップ2ベル基底測定",[527],{"type":31,"value":528},"ステップ2：ベル基底測定",{"type":21,"tag":129,"props":530,"children":532},{"className":131,"code":531,"language":133,"meta":7,"style":7},"qc.cx(0, 1)\nqc.h(0)\nqc.measure(0, cr[0])\nqc.measure(1, cr[1])\nqc.barrier()\n",[533],{"type":21,"tag":104,"props":534,"children":535},{"__ignoreMap":7},[536,559,574,600,623],{"type":21,"tag":139,"props":537,"children":538},{"class":141,"line":142},[539,543,547,551,555],{"type":21,"tag":139,"props":540,"children":541},{"style":152},[542],{"type":31,"value":458},{"type":21,"tag":139,"props":544,"children":545},{"style":214},[546],{"type":31,"value":407},{"type":21,"tag":139,"props":548,"children":549},{"style":152},[550],{"type":31,"value":259},{"type":21,"tag":139,"props":552,"children":553},{"style":214},[554],{"type":31,"value":328},{"type":21,"tag":139,"props":556,"children":557},{"style":152},[558],{"type":31,"value":270},{"type":21,"tag":139,"props":560,"children":561},{"class":141,"line":168},[562,566,570],{"type":21,"tag":139,"props":563,"children":564},{"style":152},[565],{"type":31,"value":442},{"type":21,"tag":139,"props":567,"children":568},{"style":214},[569],{"type":31,"value":407},{"type":21,"tag":139,"props":571,"children":572},{"style":152},[573],{"type":31,"value":270},{"type":21,"tag":139,"props":575,"children":576},{"class":141,"line":190},[577,582,586,591,595],{"type":21,"tag":139,"props":578,"children":579},{"style":152},[580],{"type":31,"value":581},"qc.measure(",{"type":21,"tag":139,"props":583,"children":584},{"style":214},[585],{"type":31,"value":407},{"type":21,"tag":139,"props":587,"children":588},{"style":152},[589],{"type":31,"value":590},", cr[",{"type":21,"tag":139,"props":592,"children":593},{"style":214},[594],{"type":31,"value":407},{"type":21,"tag":139,"props":596,"children":597},{"style":152},[598],{"type":31,"value":599},"])\n",{"type":21,"tag":139,"props":601,"children":602},{"class":141,"line":200},[603,607,611,615,619],{"type":21,"tag":139,"props":604,"children":605},{"style":152},[606],{"type":31,"value":581},{"type":21,"tag":139,"props":608,"children":609},{"style":214},[610],{"type":31,"value":328},{"type":21,"tag":139,"props":612,"children":613},{"style":152},[614],{"type":31,"value":590},{"type":21,"tag":139,"props":616,"children":617},{"style":214},[618],{"type":31,"value":328},{"type":21,"tag":139,"props":620,"children":621},{"style":152},[622],{"type":31,"value":599},{"type":21,"tag":139,"props":624,"children":625},{"class":141,"line":226},[626],{"type":21,"tag":139,"props":627,"children":628},{"style":152},[629],{"type":31,"value":420},{"type":21,"tag":22,"props":631,"children":632},{},[633,635,640,641,646,648,654,655,661],{"type":31,"value":634},"CNOTとアダマールゲートによって ",{"type":21,"tag":104,"props":636,"children":638},{"className":637},[],[639],{"type":31,"value":109},{"type":31,"value":501},{"type":21,"tag":104,"props":642,"children":644},{"className":643},[],[645],{"type":31,"value":117},{"type":31,"value":647}," の同時状態がベル基底へと回転するため、通常の計算基底での測定を行うだけで、その対が4つのベル状態のうちどれに収束したかを読み取れるようになります。この結果は一様にランダムで、",{"type":21,"tag":104,"props":649,"children":651},{"className":650},[],[652],{"type":31,"value":653},"cr[0]",{"type":31,"value":501},{"type":21,"tag":104,"props":656,"children":658},{"className":657},[],[659],{"type":31,"value":660},"cr[1]",{"type":31,"value":662}," の4通りの組み合わせそれぞれがおよそ25%の確率で現れます。そしてこのランダム性を補正することこそが、次のステップの役割です。",{"type":21,"tag":422,"props":664,"children":666},{"id":665},"ステップ3古典制御による補正",[667],{"type":31,"value":668},"ステップ3：古典制御による補正",{"type":21,"tag":129,"props":670,"children":672},{"className":131,"code":671,"language":133,"meta":7,"style":7},"with qc.if_test((cr[1], 1)):\n    qc.x(2)\nwith qc.if_test((cr[0], 1)):\n    qc.z(2)\n",[673],{"type":21,"tag":104,"props":674,"children":675},{"__ignoreMap":7},[676,707,723,750],{"type":21,"tag":139,"props":677,"children":678},{"class":141,"line":142},[679,684,689,693,698,702],{"type":21,"tag":139,"props":680,"children":681},{"style":146},[682],{"type":31,"value":683},"with",{"type":21,"tag":139,"props":685,"children":686},{"style":152},[687],{"type":31,"value":688}," qc.if_test((cr[",{"type":21,"tag":139,"props":690,"children":691},{"style":214},[692],{"type":31,"value":328},{"type":21,"tag":139,"props":694,"children":695},{"style":152},[696],{"type":31,"value":697},"], ",{"type":21,"tag":139,"props":699,"children":700},{"style":214},[701],{"type":31,"value":328},{"type":21,"tag":139,"props":703,"children":704},{"style":152},[705],{"type":31,"value":706},")):\n",{"type":21,"tag":139,"props":708,"children":709},{"class":141,"line":168},[710,715,719],{"type":21,"tag":139,"props":711,"children":712},{"style":152},[713],{"type":31,"value":714},"    qc.x(",{"type":21,"tag":139,"props":716,"children":717},{"style":214},[718],{"type":31,"value":293},{"type":21,"tag":139,"props":720,"children":721},{"style":152},[722],{"type":31,"value":270},{"type":21,"tag":139,"props":724,"children":725},{"class":141,"line":190},[726,730,734,738,742,746],{"type":21,"tag":139,"props":727,"children":728},{"style":146},[729],{"type":31,"value":683},{"type":21,"tag":139,"props":731,"children":732},{"style":152},[733],{"type":31,"value":688},{"type":21,"tag":139,"props":735,"children":736},{"style":214},[737],{"type":31,"value":407},{"type":21,"tag":139,"props":739,"children":740},{"style":152},[741],{"type":31,"value":697},{"type":21,"tag":139,"props":743,"children":744},{"style":214},[745],{"type":31,"value":328},{"type":21,"tag":139,"props":747,"children":748},{"style":152},[749],{"type":31,"value":706},{"type":21,"tag":139,"props":751,"children":752},{"class":141,"line":200},[753,758,762],{"type":21,"tag":139,"props":754,"children":755},{"style":152},[756],{"type":31,"value":757},"    qc.z(",{"type":21,"tag":139,"props":759,"children":760},{"style":214},[761],{"type":31,"value":293},{"type":21,"tag":139,"props":763,"children":764},{"style":152},[765],{"type":31,"value":270},{"type":21,"tag":22,"props":767,"children":768},{},[769,771,776,778,783,785,790,792,798],{"type":31,"value":770},"これは回路の途中に組み込まれた本物の古典条件分岐であり、単なる近道ではありません。",{"type":21,"tag":104,"props":772,"children":774},{"className":773},[],[775],{"type":31,"value":125},{"type":31,"value":777}," は、古典ビット ",{"type":21,"tag":104,"props":779,"children":781},{"className":780},[],[782],{"type":31,"value":660},{"type":31,"value":784}," が1を測定した場合にのみXゲートを、",{"type":21,"tag":104,"props":786,"children":788},{"className":787},[],[789],{"type":31,"value":653},{"type":31,"value":791}," が1を測定した場合にのみZゲートを適用されます。Qiskitの ",{"type":21,"tag":104,"props":793,"children":795},{"className":794},[],[796],{"type":31,"value":797},"if_test",{"type":31,"value":799}," コンテキストマネージャはこれを実際の動的回路にコンパイルします。これは、実機での運用において2つの古典ビットを通常のチャネル経由で送信し、反対側で補正を適用するのに使われるのと同じ仕組みです。",{"type":21,"tag":422,"props":801,"children":803},{"id":802},"ステップ4プロトコルが正しく機能したかを検証する",[804],{"type":31,"value":805},"ステップ4：プロトコルが正しく機能したかを検証する",{"type":21,"tag":129,"props":807,"children":809},{"className":131,"code":808,"language":133,"meta":7,"style":7},"qc.ry(-theta, 2)\nqc.measure(2, result_reg[0])\n\nsim = AerSimulator()\ntqc = transpile(qc, sim)\ncounts = sim.run(tqc, shots=4096).result().get_counts()\nprint(sorted(counts.items()))\n",[810],{"type":21,"tag":104,"props":811,"children":812},{"__ignoreMap":7},[813,839,863,870,887,904,941],{"type":21,"tag":139,"props":814,"children":815},{"class":141,"line":142},[816,821,826,831,835],{"type":21,"tag":139,"props":817,"children":818},{"style":152},[819],{"type":31,"value":820},"qc.ry(",{"type":21,"tag":139,"props":822,"children":823},{"style":146},[824],{"type":31,"value":825},"-",{"type":21,"tag":139,"props":827,"children":828},{"style":152},[829],{"type":31,"value":830},"theta, ",{"type":21,"tag":139,"props":832,"children":833},{"style":214},[834],{"type":31,"value":293},{"type":21,"tag":139,"props":836,"children":837},{"style":152},[838],{"type":31,"value":270},{"type":21,"tag":139,"props":840,"children":841},{"class":141,"line":168},[842,846,850,855,859],{"type":21,"tag":139,"props":843,"children":844},{"style":152},[845],{"type":31,"value":581},{"type":21,"tag":139,"props":847,"children":848},{"style":214},[849],{"type":31,"value":293},{"type":21,"tag":139,"props":851,"children":852},{"style":152},[853],{"type":31,"value":854},", result_reg[",{"type":21,"tag":139,"props":856,"children":857},{"style":214},[858],{"type":31,"value":407},{"type":21,"tag":139,"props":860,"children":861},{"style":152},[862],{"type":31,"value":599},{"type":21,"tag":139,"props":864,"children":865},{"class":141,"line":190},[866],{"type":21,"tag":139,"props":867,"children":868},{"emptyLinePlaceholder":194},[869],{"type":31,"value":197},{"type":21,"tag":139,"props":871,"children":872},{"class":141,"line":200},[873,878,882],{"type":21,"tag":139,"props":874,"children":875},{"style":152},[876],{"type":31,"value":877},"sim ",{"type":21,"tag":139,"props":879,"children":880},{"style":146},[881],{"type":31,"value":211},{"type":21,"tag":139,"props":883,"children":884},{"style":152},[885],{"type":31,"value":886}," AerSimulator()\n",{"type":21,"tag":139,"props":888,"children":889},{"class":141,"line":226},[890,895,899],{"type":21,"tag":139,"props":891,"children":892},{"style":152},[893],{"type":31,"value":894},"tqc ",{"type":21,"tag":139,"props":896,"children":897},{"style":146},[898],{"type":31,"value":211},{"type":21,"tag":139,"props":900,"children":901},{"style":152},[902],{"type":31,"value":903}," transpile(qc, sim)\n",{"type":21,"tag":139,"props":905,"children":906},{"class":141,"line":234},[907,912,916,921,927,931,936],{"type":21,"tag":139,"props":908,"children":909},{"style":152},[910],{"type":31,"value":911},"counts ",{"type":21,"tag":139,"props":913,"children":914},{"style":146},[915],{"type":31,"value":211},{"type":21,"tag":139,"props":917,"children":918},{"style":152},[919],{"type":31,"value":920}," sim.run(tqc, ",{"type":21,"tag":139,"props":922,"children":924},{"style":923},"--shiki-default:#FFAB70",[925],{"type":31,"value":926},"shots",{"type":21,"tag":139,"props":928,"children":929},{"style":146},[930],{"type":31,"value":211},{"type":21,"tag":139,"props":932,"children":933},{"style":214},[934],{"type":31,"value":935},"4096",{"type":21,"tag":139,"props":937,"children":938},{"style":152},[939],{"type":31,"value":940},").result().get_counts()\n",{"type":21,"tag":139,"props":942,"children":943},{"class":141,"line":273},[944,949,954,959],{"type":21,"tag":139,"props":945,"children":946},{"style":214},[947],{"type":31,"value":948},"print",{"type":21,"tag":139,"props":950,"children":951},{"style":152},[952],{"type":31,"value":953},"(",{"type":21,"tag":139,"props":955,"children":956},{"style":214},[957],{"type":31,"value":958},"sorted",{"type":21,"tag":139,"props":960,"children":961},{"style":152},[962],{"type":31,"value":963},"(counts.items()))\n",{"type":21,"tag":22,"props":965,"children":966},{},[967,969,974,976,981,983,988,990,996,998,1004,1006,1012,1014,1019],{"type":31,"value":968},"検証のトリックはこうです。",{"type":21,"tag":104,"props":970,"children":972},{"className":971},[],[973],{"type":31,"value":125},{"type":31,"value":975}," に元の回転の逆操作を適用し、その量子ビットを測定します。もし ",{"type":21,"tag":104,"props":977,"children":979},{"className":978},[],[980],{"type":31,"value":125},{"type":31,"value":982}," が本当に ",{"type":21,"tag":104,"props":984,"children":986},{"className":985},[],[987],{"type":31,"value":109},{"type":31,"value":989}," の最初の状態とまったく同じ状態になっていたなら、この回転を打ち消すことで量子ビットは ",{"type":21,"tag":104,"props":991,"children":993},{"className":992},[],[994],{"type":31,"value":995},"|0⟩",{"type":31,"value":997}," に戻り、",{"type":21,"tag":104,"props":999,"children":1001},{"className":1000},[],[1002],{"type":31,"value":1003},"result",{"type":31,"value":1005}," ビットは0を示します。実行全体を通して、",{"type":21,"tag":104,"props":1007,"children":1009},{"className":1008},[],[1010],{"type":31,"value":1011},"(cr[0], cr[1])",{"type":31,"value":1013}," の4通りの結果はおおむね均等に分布し、これはベル測定のランダムな結果が期待どおりに振る舞っていることを示しています。一方で ",{"type":21,"tag":104,"props":1015,"children":1017},{"className":1016},[],[1018],{"type":31,"value":1003},{"type":31,"value":1020}," ビットは、4通りのうちどの結果が出たかにかかわらず常に0を示します。これこそが見返りです。補正ステップは、どのランダムな結果が出たとしても、それを毎回、平均としてではなく毎回確実に打ち消すのです。",{"type":21,"tag":41,"props":1022,"children":1024},{"id":1023},"よくある間違いどうせ回路に問題はないと補正を省略してしまう",[1025],{"type":31,"value":1026},"よくある間違い：「どうせ回路に問題はない」と補正を省略してしまう",{"type":21,"tag":22,"props":1028,"children":1029},{},[1030,1032,1037,1039,1044,1046,1052],{"type":31,"value":1031},"この回路を見ると、4通りのベル測定結果のうち3つは恒等操作に「近い」ように見えるため、補正ステップは些細な詳細だと思い込んでしまいがちです。しかしそれは誤りです。",{"type":21,"tag":104,"props":1033,"children":1035},{"className":1034},[],[1036],{"type":31,"value":797},{"type":31,"value":1038}," ブロックを省略して ",{"type":21,"tag":104,"props":1040,"children":1042},{"className":1041},[],[1043],{"type":31,"value":125},{"type":31,"value":1045}," を直接測定すると、ベル測定がたまたま ",{"type":21,"tag":104,"props":1047,"children":1049},{"className":1048},[],[1050],{"type":31,"value":1051},"|00⟩",{"type":31,"value":1053}," に落ち着いたおよそ25%の実行でしか正しい結果は返らず、残り4分の3の時間は結果が乱れてしまいます。ここに部分点はありません。補正は最適化ではなく、このプロトコルを4分の1の確率でしか当たらないコイン投げではなく決定論的なものにする、まさにその仕組みそのものなのです。",{"type":21,"tag":41,"props":1055,"children":1057},{"id":1056},"テレポーテーションの本当の用途",[1058],{"type":31,"value":1056},{"type":21,"tag":22,"props":1060,"children":1061},{},[1062,1064,1070,1072,1078,1080,1086],{"type":31,"value":1063},"このプロトコル自体は、単独の余興として独立した用途を持つわけではありません。その重要性は構造的なものです。これは、",{"type":21,"tag":26,"props":1065,"children":1067},{"href":1066},"\u002Fglossary\u002Fquantum-network",[1068],{"type":31,"value":1069},"量子ネットワーク",{"type":31,"value":1071},"と",{"type":21,"tag":26,"props":1073,"children":1075},{"href":1074},"\u002Fglossary\u002Fdistributed-quantum-computing",[1076],{"type":31,"value":1077},"分散量子コンピューティング",{"type":31,"value":1079},"が、事前に共有されたもつれと古典的な通信リンクだけでつながったノード間で量子ビットの状態を移動させるために使う仕組みそのものであり、直接的な量子回線を使うわけではありません。個別のQPUを1つの大きな論理マシンへと連結するあらゆる提案や、長距離の光ファイバーリンクにわたってもつれを拡張する量子リピーターは、いずれもまさにこの基本操作の上に成り立っています。1つの量子ビットの伝送で2つの古典ビットを送る",{"type":21,"tag":26,"props":1081,"children":1083},{"href":1082},"\u002Fglossary\u002Fsuperdense-coding",[1084],{"type":31,"value":1085},"超高密度符号化",{"type":31,"value":1087},"は、同じ発想を逆向きに使ったものです。",{"type":21,"tag":41,"props":1089,"children":1091},{"id":1090},"実機ハードウェアでの実行",[1092],{"type":31,"value":1090},{"type":21,"tag":22,"props":1094,"children":1095},{},[1096,1098,1104],{"type":31,"value":1097},"回路の途中での測定に続いて古典制御ゲートを適用するというのは、静的な回路と比べて明らかに要求水準の高いハードウェア要件です。システムには、量子ビットがデコヒーレンスを起こす前に測定結果を読み出し、補正を同じ回路へフィードバックできる、高速かつ低遅延の古典制御電子回路が必要です。この能力はしばしば「動的回路」と呼ばれ、すべてのクラウドバックエンドがすべての世代のデバイスでサポートしているわけではありません。動的回路が利用できない場合、実装によっては古典的な補正の代わりに条件付き2量子ビットゲートを用い、測定をすべて最後に先送りすることがあります。これはシミュレーション上ではプロトコルの数式を正しく検証できますが、テレポーテーションをそもそもネットワーキングにとって実用的なものにしている、実際の古典通信のステップを回避してしまっています。",{"type":21,"tag":26,"props":1099,"children":1101},{"href":1100},"\u002Fhardware",[1102],{"type":31,"value":1103},"実機",{"type":31,"value":1105},"で実行する際は、このコードがそのまま動くと決めてかかる前に、対象のバックエンドが動的回路を明示的にサポートしているかどうかを確認してください。",{"type":21,"tag":41,"props":1107,"children":1109},{"id":1108},"次のステップ",[1110],{"type":31,"value":1108},{"type":21,"tag":1112,"props":1113,"children":1114},"ul",{},[1115,1126,1137],{"type":21,"tag":72,"props":1116,"children":1117},{},[1118,1124],{"type":21,"tag":26,"props":1119,"children":1121},{"href":1120},"\u002Fsdks\u002Fqiskit",[1122],{"type":31,"value":1123},"Qiskit SDKガイド",{"type":31,"value":1125},": 完全なセットアップ、バックエンド、動的回路のサポートについて",{"type":21,"tag":72,"props":1127,"children":1128},{},[1129,1135],{"type":21,"tag":26,"props":1130,"children":1132},{"href":1131},"\u002Fblog\u002Fquantum-networking-distributed-computing",[1133],{"type":31,"value":1134},"量子ネットワーキングと分散コンピューティング",{"type":31,"value":1136},": テレポーテーションが個別のQPUの連結にどう関わるか",{"type":21,"tag":72,"props":1138,"children":1139},{},[1140,1146,1148,1154,1156,1160,1161,1165],{"type":21,"tag":26,"props":1141,"children":1143},{"href":1142},"\u002Fglossary",[1144],{"type":31,"value":1145},"用語集",{"type":31,"value":1147},": ",{"type":21,"tag":26,"props":1149,"children":1151},{"href":1150},"\u002Fglossary\u002Fentanglement",[1152],{"type":31,"value":1153},"もつれ",{"type":31,"value":1155},"、",{"type":21,"tag":26,"props":1157,"children":1158},{"href":489},[1159],{"type":31,"value":492},{"type":31,"value":1155},{"type":21,"tag":26,"props":1162,"children":1163},{"href":1082},[1164],{"type":31,"value":1085},{"type":31,"value":1166},"、その他の関連用語",{"type":21,"tag":1168,"props":1169,"children":1170},"style",{},[1171],{"type":31,"value":1172},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}",{"title":7,"searchDepth":168,"depth":168,"links":1174},[1175,1176,1177,1183,1184,1185,1186],{"id":43,"depth":168,"text":43},{"id":63,"depth":168,"text":66},{"id":94,"depth":168,"text":97,"children":1178},[1179,1180,1181,1182],{"id":424,"depth":190,"text":427},{"id":525,"depth":190,"text":528},{"id":665,"depth":190,"text":668},{"id":802,"depth":190,"text":805},{"id":1023,"depth":168,"text":1026},{"id":1056,"depth":168,"text":1056},{"id":1090,"depth":168,"text":1090},{"id":1108,"depth":168,"text":1108},"markdown","content:ja:blog:quantum-teleportation-tutorial.md","content","ja\u002Fblog\u002Fquantum-teleportation-tutorial.md","ja\u002Fblog\u002Fquantum-teleportation-tutorial","md",[1194,1195,1196,1197,1198,1199],"en","es","de","zh","ja","hi",[1201,2066,3036,3390,3479,3559,3697,3783,3844,3925,4030,4118,4208,4298,4396,4467,5969,6845,7210,7914,8475,9117,10531,10645,11825,12736,13458,13878,14715,14794,15484,15631,15725,15803,15912,16005,16102,16310,16405,16485,16574,16667,16762,16862,17352,18101,18206,18310,18417,18488,18603,18709,18848,19023,19103,19858,19937,21271,21359,21434,21534,21599,21703,21801,21947,22091,22366,22461,22533,22666,22769,23005,23159,23280,23427,23524,23641,23741,24404,24555,24644,24752,24847,24941,25043,25921,28997,30713,31162,32260,32832,33328,35566,37404,37780,39870,40891,41908,42745,45172,46223,48766,50570,53298,55276,57377],{"_path":1202,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":1203,"description":1204,"date":10,"author":11,"tags":1205,"readingTime":16,"body":1208,"_type":1187,"_id":2063,"_source":1189,"_file":2064,"_stem":2065,"_extension":1192},"\u002Fja\u002Fblog\u002Fquantum-annealing-tutorial","量子アニーリング徹底解説：D-WaveのOcean SDKでMax-Cutを解く","Max-Cut問題をQUBOとして定式化し、D-Waveの無料なシミュレーテッドアニーリングサンプラーで解き、量子アニーリングがゲート方式の量子コンピューティングと比べて何をして何をしないのかを理解する。",[13,1206,1207],"Optimization","Hardware",{"type":18,"children":1209,"toc":2054},[1210,1237,1250,1255,1260,1265,1271,1284,1320,1325,1629,1650,1655,1676,1771,1812,1818,1823,1860,1865,1870,1876,1881,1963,1991,1995,2050],{"type":21,"tag":22,"props":1211,"children":1212},{},[1213,1219,1221,1227,1229,1235],{"type":21,"tag":26,"props":1214,"children":1216},{"href":1215},"\u002Fglossary\u002Fquantum-annealing",[1217],{"type":31,"value":1218},"量子アニーリング",{"type":31,"value":1220},"は、このサイトで扱う他のあらゆるものとは異なる量子コンピューティングのモデルです。回路もゲートもなく、ハードウェア上で",{"type":21,"tag":26,"props":1222,"children":1224},{"href":1223},"\u002Fglossary\u002Fgrover-algorithm",[1225],{"type":31,"value":1226},"Grover",{"type":31,"value":1228},"や",{"type":21,"tag":26,"props":1230,"children":1232},{"href":1231},"\u002Fglossary\u002Fshor-algorithm",[1233],{"type":31,"value":1234},"Shorのアルゴリズム",{"type":31,"value":1236},"が動くこともありません。アニーラーが解くのは最適化というただ一種類の問題であり、問題をハードウェアの物理現象に直接エンコードし、システムを低エネルギーな解へと落ち着かせることで答えを得ます。",{"type":21,"tag":22,"props":1238,"children":1239},{},[1240,1242,1248],{"type":31,"value":1241},"このガイドでは、",{"type":21,"tag":26,"props":1243,"children":1245},{"href":1244},"\u002Fblog\u002Fqaoa-max-cut-tutorial",[1246],{"type":31,"value":1247},"QAOAチュートリアル",{"type":31,"value":1249},"と同じMax-Cut問題をアニーリング問題として定式化し、D-WaveのOcean SDKを使って無料で解き、おもちゃのような例から実機ハードウェアへ移行する際にほぼ誰もがはまる実践的な落とし穴を扱います。",{"type":21,"tag":41,"props":1251,"children":1253},{"id":1252},"物理的な発想",[1254],{"type":31,"value":1252},{"type":21,"tag":22,"props":1256,"children":1257},{},[1258],{"type":31,"value":1259},"最適化問題は量子ビットの系にマッピングされ、その系のエネルギーが最も低い配置、つまり基底状態が最良の解に対応するようにします。量子ビットは準備しやすい状態から出発し、問題のエネルギー地形に向かってゆっくりと発展していきます。これを可能にしているのが断熱定理です。基底状態から出発した量子系は、系のエネルギーギャップに対して発展が十分にゆっくりであれば、発展の過程を通じてずっと基底状態にとどまり続けます。最後に量子ビットを読み出せば、低エネルギーな、うまくいけば最適な解が得られます。",{"type":21,"tag":22,"props":1261,"children":1262},{},[1263],{"type":31,"value":1264},"これはゲート方式のコンピューティングとは根本的に異なります。ゲート方式のQPUは、あなたが指定した任意の操作列を実行します。アニーラーが実行するのは、最小値に向かって物理的に緩和していくという、たった一つの固定されたプロセスであり、あなたが唯一コントロールできるのは、問題をこのエネルギー地形へどうエンコードするかだけです。",{"type":21,"tag":41,"props":1266,"children":1268},{"id":1267},"max-cutをquboとして定式化する",[1269],{"type":31,"value":1270},"Max-CutをQUBOとして定式化する",{"type":21,"tag":22,"props":1272,"children":1273},{},[1274,1276,1282],{"type":31,"value":1275},"アニーラーが解くのは、QUBO（Quadratic Unconstrained Binary Optimization、制約なし二次二値最適化）として表現された問題です。線形項とペアごとの二次項のみからなり、それより高次の相互作用を含まない、二値変数 ",{"type":21,"tag":104,"props":1277,"children":1279},{"className":1278},[],[1280],{"type":31,"value":1281},"x_i ∈ {0, 1}",{"type":31,"value":1283}," の式を最小化します。",{"type":21,"tag":22,"props":1285,"children":1286},{},[1287,1289,1295,1297,1303,1305,1311,1312,1318],{"type":31,"value":1288},"Max-Cutの場合、各エッジ ",{"type":21,"tag":104,"props":1290,"children":1292},{"className":1291},[],[1293],{"type":31,"value":1294},"(i, j)",{"type":31,"value":1296}," は目的関数に ",{"type":21,"tag":104,"props":1298,"children":1300},{"className":1299},[],[1301],{"type":31,"value":1302},"2·x_i·x_j − x_i − x_j",{"type":31,"value":1304}," を寄与します。4通りのケースを確認してみましょう。",{"type":21,"tag":104,"props":1306,"children":1308},{"className":1307},[],[1309],{"type":31,"value":1310},"x_i",{"type":31,"value":501},{"type":21,"tag":104,"props":1313,"children":1315},{"className":1314},[],[1316],{"type":31,"value":1317},"x_j",{"type":31,"value":1319}," が一致する場合（両方とも同じ側にある場合）、この項は0です。両者が異なる場合（そのエッジが切断されている場合）、この項は−1になります。したがって、すべてのエッジにわたる合計を最小化することは、切断されたエッジの数を最大化することと同じであり、これはまさにMax-Cutの目的関数を最小化問題として書き換えたものにほかなりません。",{"type":21,"tag":22,"props":1321,"children":1322},{},[1323],{"type":31,"value":1324},"QAOAガイドと同じ4ノードの巡回グラフを使うと：",{"type":21,"tag":129,"props":1326,"children":1328},{"className":131,"code":1327,"language":133,"meta":7,"style":7},"import dimod\nfrom neal import SimulatedAnnealingSampler\n\nedges = [(0, 1), (1, 2), (2, 3), (3, 0)]\n\nQ = {}\nfor i, j in edges:\n    Q[(i, i)] = Q.get((i, i), 0) - 1\n    Q[(j, j)] = Q.get((j, j), 0) - 1\n    Q[(i, j)] = Q.get((i, j), 0) + 2\n\nbqm = dimod.BinaryQuadraticModel.from_qubo(Q)\n",[1329],{"type":21,"tag":104,"props":1330,"children":1331},{"__ignoreMap":7},[1332,1344,1365,1372,1455,1462,1479,1502,1537,1570,1605,1612],{"type":21,"tag":139,"props":1333,"children":1334},{"class":141,"line":142},[1335,1339],{"type":21,"tag":139,"props":1336,"children":1337},{"style":146},[1338],{"type":31,"value":160},{"type":21,"tag":139,"props":1340,"children":1341},{"style":152},[1342],{"type":31,"value":1343}," dimod\n",{"type":21,"tag":139,"props":1345,"children":1346},{"class":141,"line":168},[1347,1351,1356,1360],{"type":21,"tag":139,"props":1348,"children":1349},{"style":146},[1350],{"type":31,"value":149},{"type":21,"tag":139,"props":1352,"children":1353},{"style":152},[1354],{"type":31,"value":1355}," neal ",{"type":21,"tag":139,"props":1357,"children":1358},{"style":146},[1359],{"type":31,"value":160},{"type":21,"tag":139,"props":1361,"children":1362},{"style":152},[1363],{"type":31,"value":1364}," SimulatedAnnealingSampler\n",{"type":21,"tag":139,"props":1366,"children":1367},{"class":141,"line":190},[1368],{"type":21,"tag":139,"props":1369,"children":1370},{"emptyLinePlaceholder":194},[1371],{"type":31,"value":197},{"type":21,"tag":139,"props":1373,"children":1374},{"class":141,"line":200},[1375,1380,1384,1389,1393,1397,1401,1406,1410,1414,1418,1422,1426,1430,1434,1438,1442,1446,1450],{"type":21,"tag":139,"props":1376,"children":1377},{"style":152},[1378],{"type":31,"value":1379},"edges ",{"type":21,"tag":139,"props":1381,"children":1382},{"style":146},[1383],{"type":31,"value":211},{"type":21,"tag":139,"props":1385,"children":1386},{"style":152},[1387],{"type":31,"value":1388}," [(",{"type":21,"tag":139,"props":1390,"children":1391},{"style":214},[1392],{"type":31,"value":407},{"type":21,"tag":139,"props":1394,"children":1395},{"style":152},[1396],{"type":31,"value":259},{"type":21,"tag":139,"props":1398,"children":1399},{"style":214},[1400],{"type":31,"value":328},{"type":21,"tag":139,"props":1402,"children":1403},{"style":152},[1404],{"type":31,"value":1405},"), (",{"type":21,"tag":139,"props":1407,"children":1408},{"style":214},[1409],{"type":31,"value":328},{"type":21,"tag":139,"props":1411,"children":1412},{"style":152},[1413],{"type":31,"value":259},{"type":21,"tag":139,"props":1415,"children":1416},{"style":214},[1417],{"type":31,"value":293},{"type":21,"tag":139,"props":1419,"children":1420},{"style":152},[1421],{"type":31,"value":1405},{"type":21,"tag":139,"props":1423,"children":1424},{"style":214},[1425],{"type":31,"value":293},{"type":21,"tag":139,"props":1427,"children":1428},{"style":152},[1429],{"type":31,"value":259},{"type":21,"tag":139,"props":1431,"children":1432},{"style":214},[1433],{"type":31,"value":254},{"type":21,"tag":139,"props":1435,"children":1436},{"style":152},[1437],{"type":31,"value":1405},{"type":21,"tag":139,"props":1439,"children":1440},{"style":214},[1441],{"type":31,"value":254},{"type":21,"tag":139,"props":1443,"children":1444},{"style":152},[1445],{"type":31,"value":259},{"type":21,"tag":139,"props":1447,"children":1448},{"style":214},[1449],{"type":31,"value":407},{"type":21,"tag":139,"props":1451,"children":1452},{"style":152},[1453],{"type":31,"value":1454},")]\n",{"type":21,"tag":139,"props":1456,"children":1457},{"class":141,"line":226},[1458],{"type":21,"tag":139,"props":1459,"children":1460},{"emptyLinePlaceholder":194},[1461],{"type":31,"value":197},{"type":21,"tag":139,"props":1463,"children":1464},{"class":141,"line":234},[1465,1470,1474],{"type":21,"tag":139,"props":1466,"children":1467},{"style":152},[1468],{"type":31,"value":1469},"Q ",{"type":21,"tag":139,"props":1471,"children":1472},{"style":146},[1473],{"type":31,"value":211},{"type":21,"tag":139,"props":1475,"children":1476},{"style":152},[1477],{"type":31,"value":1478}," {}\n",{"type":21,"tag":139,"props":1480,"children":1481},{"class":141,"line":273},[1482,1487,1492,1497],{"type":21,"tag":139,"props":1483,"children":1484},{"style":146},[1485],{"type":31,"value":1486},"for",{"type":21,"tag":139,"props":1488,"children":1489},{"style":152},[1490],{"type":31,"value":1491}," i, j ",{"type":21,"tag":139,"props":1493,"children":1494},{"style":146},[1495],{"type":31,"value":1496},"in",{"type":21,"tag":139,"props":1498,"children":1499},{"style":152},[1500],{"type":31,"value":1501}," edges:\n",{"type":21,"tag":139,"props":1503,"children":1504},{"class":141,"line":309},[1505,1510,1514,1519,1523,1528,1532],{"type":21,"tag":139,"props":1506,"children":1507},{"style":152},[1508],{"type":31,"value":1509},"    Q[(i, i)] ",{"type":21,"tag":139,"props":1511,"children":1512},{"style":146},[1513],{"type":31,"value":211},{"type":21,"tag":139,"props":1515,"children":1516},{"style":152},[1517],{"type":31,"value":1518}," Q.get((i, i), ",{"type":21,"tag":139,"props":1520,"children":1521},{"style":214},[1522],{"type":31,"value":407},{"type":21,"tag":139,"props":1524,"children":1525},{"style":152},[1526],{"type":31,"value":1527},") ",{"type":21,"tag":139,"props":1529,"children":1530},{"style":146},[1531],{"type":31,"value":825},{"type":21,"tag":139,"props":1533,"children":1534},{"style":214},[1535],{"type":31,"value":1536}," 1\n",{"type":21,"tag":139,"props":1538,"children":1539},{"class":141,"line":16},[1540,1545,1549,1554,1558,1562,1566],{"type":21,"tag":139,"props":1541,"children":1542},{"style":152},[1543],{"type":31,"value":1544},"    Q[(j, j)] ",{"type":21,"tag":139,"props":1546,"children":1547},{"style":146},[1548],{"type":31,"value":211},{"type":21,"tag":139,"props":1550,"children":1551},{"style":152},[1552],{"type":31,"value":1553}," Q.get((j, j), ",{"type":21,"tag":139,"props":1555,"children":1556},{"style":214},[1557],{"type":31,"value":407},{"type":21,"tag":139,"props":1559,"children":1560},{"style":152},[1561],{"type":31,"value":1527},{"type":21,"tag":139,"props":1563,"children":1564},{"style":146},[1565],{"type":31,"value":825},{"type":21,"tag":139,"props":1567,"children":1568},{"style":214},[1569],{"type":31,"value":1536},{"type":21,"tag":139,"props":1571,"children":1572},{"class":141,"line":361},[1573,1578,1582,1587,1591,1595,1600],{"type":21,"tag":139,"props":1574,"children":1575},{"style":152},[1576],{"type":31,"value":1577},"    Q[(i, j)] ",{"type":21,"tag":139,"props":1579,"children":1580},{"style":146},[1581],{"type":31,"value":211},{"type":21,"tag":139,"props":1583,"children":1584},{"style":152},[1585],{"type":31,"value":1586}," Q.get((i, j), ",{"type":21,"tag":139,"props":1588,"children":1589},{"style":214},[1590],{"type":31,"value":407},{"type":21,"tag":139,"props":1592,"children":1593},{"style":152},[1594],{"type":31,"value":1527},{"type":21,"tag":139,"props":1596,"children":1597},{"style":146},[1598],{"type":31,"value":1599},"+",{"type":21,"tag":139,"props":1601,"children":1602},{"style":214},[1603],{"type":31,"value":1604}," 2\n",{"type":21,"tag":139,"props":1606,"children":1607},{"class":141,"line":369},[1608],{"type":21,"tag":139,"props":1609,"children":1610},{"emptyLinePlaceholder":194},[1611],{"type":31,"value":197},{"type":21,"tag":139,"props":1613,"children":1614},{"class":141,"line":378},[1615,1620,1624],{"type":21,"tag":139,"props":1616,"children":1617},{"style":152},[1618],{"type":31,"value":1619},"bqm ",{"type":21,"tag":139,"props":1621,"children":1622},{"style":146},[1623],{"type":31,"value":211},{"type":21,"tag":139,"props":1625,"children":1626},{"style":152},[1627],{"type":31,"value":1628}," dimod.BinaryQuadraticModel.from_qubo(Q)\n",{"type":21,"tag":22,"props":1630,"children":1631},{},[1632,1634,1640,1642,1648],{"type":31,"value":1633},"このグラフではすべてのエッジを同時に切断できます。グラフが2部グラフだからです（",{"type":21,"tag":104,"props":1635,"children":1637},{"className":1636},[],[1638],{"type":31,"value":1639},"{0, 2}",{"type":31,"value":1641}," 対 ",{"type":21,"tag":104,"props":1643,"children":1645},{"className":1644},[],[1646],{"type":31,"value":1647},"{1, 3}",{"type":31,"value":1649},"）。そのため基底状態のエネルギーはちょうど−4になり、エッジ1本につき−1の寄与という計算になります。この数値はQUBOの構成そのものから直接導かれるものであり、まだ何かを実行した結果ではありません。そして、これこそが以下のサンプラーが到達しようとしている目標です。",{"type":21,"tag":41,"props":1651,"children":1653},{"id":1652},"シミュレーテッドアニーリングで無料に解く",[1654],{"type":31,"value":1652},{"type":21,"tag":22,"props":1656,"children":1657},{},[1658,1660,1666,1668,1674],{"type":31,"value":1659},"D-WaveのOcean SDKには ",{"type":21,"tag":104,"props":1661,"children":1663},{"className":1662},[],[1664],{"type":31,"value":1665},"neal",{"type":31,"value":1667}," が同梱されており、これは自分のマシン上だけで完結する古典的なシミュレーテッドアニーリングサンプラーです。QPUのアカウントも、待ち行列も、コストも一切必要ありません。これはまた、実機に触れる前にアニーリング問題を開発するための標準的な最初のステップでもあり、このサイトの他の場所でゲート方式の回路に対して ",{"type":21,"tag":104,"props":1669,"children":1671},{"className":1670},[],[1672],{"type":31,"value":1673},"AerSimulator",{"type":31,"value":1675}," が果たしているのと同じ役割を担っています。",{"type":21,"tag":129,"props":1677,"children":1679},{"className":131,"code":1678,"language":133,"meta":7,"style":7},"sampler = SimulatedAnnealingSampler()\nsampleset = sampler.sample(bqm, num_reads=1000)\n\nbest = sampleset.first\nprint(best.sample, best.energy)\n",[1680],{"type":21,"tag":104,"props":1681,"children":1682},{"__ignoreMap":7},[1683,1700,1735,1742,1759],{"type":21,"tag":139,"props":1684,"children":1685},{"class":141,"line":142},[1686,1691,1695],{"type":21,"tag":139,"props":1687,"children":1688},{"style":152},[1689],{"type":31,"value":1690},"sampler ",{"type":21,"tag":139,"props":1692,"children":1693},{"style":146},[1694],{"type":31,"value":211},{"type":21,"tag":139,"props":1696,"children":1697},{"style":152},[1698],{"type":31,"value":1699}," SimulatedAnnealingSampler()\n",{"type":21,"tag":139,"props":1701,"children":1702},{"class":141,"line":168},[1703,1708,1712,1717,1722,1726,1731],{"type":21,"tag":139,"props":1704,"children":1705},{"style":152},[1706],{"type":31,"value":1707},"sampleset ",{"type":21,"tag":139,"props":1709,"children":1710},{"style":146},[1711],{"type":31,"value":211},{"type":21,"tag":139,"props":1713,"children":1714},{"style":152},[1715],{"type":31,"value":1716}," sampler.sample(bqm, ",{"type":21,"tag":139,"props":1718,"children":1719},{"style":923},[1720],{"type":31,"value":1721},"num_reads",{"type":21,"tag":139,"props":1723,"children":1724},{"style":146},[1725],{"type":31,"value":211},{"type":21,"tag":139,"props":1727,"children":1728},{"style":214},[1729],{"type":31,"value":1730},"1000",{"type":21,"tag":139,"props":1732,"children":1733},{"style":152},[1734],{"type":31,"value":270},{"type":21,"tag":139,"props":1736,"children":1737},{"class":141,"line":190},[1738],{"type":21,"tag":139,"props":1739,"children":1740},{"emptyLinePlaceholder":194},[1741],{"type":31,"value":197},{"type":21,"tag":139,"props":1743,"children":1744},{"class":141,"line":200},[1745,1750,1754],{"type":21,"tag":139,"props":1746,"children":1747},{"style":152},[1748],{"type":31,"value":1749},"best ",{"type":21,"tag":139,"props":1751,"children":1752},{"style":146},[1753],{"type":31,"value":211},{"type":21,"tag":139,"props":1755,"children":1756},{"style":152},[1757],{"type":31,"value":1758}," sampleset.first\n",{"type":21,"tag":139,"props":1760,"children":1761},{"class":141,"line":226},[1762,1766],{"type":21,"tag":139,"props":1763,"children":1764},{"style":214},[1765],{"type":31,"value":948},{"type":21,"tag":139,"props":1767,"children":1768},{"style":152},[1769],{"type":31,"value":1770},"(best.sample, best.energy)\n",{"type":21,"tag":22,"props":1772,"children":1773},{},[1774,1780,1782,1788,1790,1796,1798,1803,1805,1810],{"type":21,"tag":104,"props":1775,"children":1777},{"className":1776},[],[1778],{"type":31,"value":1779},"num_reads=1000",{"type":31,"value":1781}," は、アニーリングのプロセスを1,000回独立に実行し、そのすべての結果を保持します。シミュレーテッドアニーリングも量子アニーリングも、どちらもヒューリスティックな手法だからです。1回の実行だけでは基底状態に到達する保証はないため、複数回の読み取りをまとめて行い、その中で最もエネルギーの低い結果を採用するのが標準的なやり方です。このグラフの場合、",{"type":21,"tag":104,"props":1783,"children":1785},{"className":1784},[],[1786],{"type":31,"value":1787},"best.energy",{"type":31,"value":1789}," は−4に落ち着くはずで、",{"type":21,"tag":104,"props":1791,"children":1793},{"className":1792},[],[1794],{"type":31,"value":1795},"best.sample",{"type":31,"value":1797}," は2通りの等価な二分割のどちらか、つまり ",{"type":21,"tag":104,"props":1799,"children":1801},{"className":1800},[],[1802],{"type":31,"value":1639},{"type":31,"value":1804}," が片側で ",{"type":21,"tag":104,"props":1806,"children":1808},{"className":1807},[],[1809],{"type":31,"value":1647},{"type":31,"value":1811}," がもう片側、あるいはその逆を読み出します。どちらも正しい結果です。Max-Cutには、どちらの側が「先」であるかという概念がそもそも存在しないため、これは問題そのものに内在する本物の対称性であり、サンプラーの不具合ではありません。",{"type":21,"tag":41,"props":1813,"children":1815},{"id":1814},"よくある間違い埋め込みを無視してしまう",[1816],{"type":31,"value":1817},"よくある間違い：埋め込みを無視してしまう",{"type":21,"tag":22,"props":1819,"children":1820},{},[1821],{"type":31,"value":1822},"ここまでの内容はすべて、接続性に制限のない古典的なシミュレーテッドアニーラー上で動いており、任意の変数がほかの任意の変数と自由に相互作用できます。実機のD-Waveハードウェアはこれとは事情が異なります。物理的な量子ビットは固定された疎なトポロジー上に配置されており（世代によってPegasusまたはZephyr）、量子ビットのペアの大半はそもそも直接配線されていません。",{"type":21,"tag":22,"props":1824,"children":1825},{},[1826,1828,1834,1836,1842,1844,1850,1852,1858],{"type":31,"value":1827},"変数 ",{"type":21,"tag":104,"props":1829,"children":1831},{"className":1830},[],[1832],{"type":31,"value":1833},"i",{"type":31,"value":1835}," が変数 ",{"type":21,"tag":104,"props":1837,"children":1839},{"className":1838},[],[1840],{"type":31,"value":1841},"j",{"type":31,"value":1843}," と相互作用する必要があるにもかかわらず、その接続を提供する物理的な量子ビットのペアが存在しない問題を配置するために、Oceanのマイナー埋め込みというステップは、複数の物理量子ビットを鎖状につなぎ、それらをまとめて1つの論理変数として機能させます。これは自動的に行われ、",{"type":21,"tag":104,"props":1845,"children":1847},{"className":1846},[],[1848],{"type":31,"value":1849},"dwave-system",{"type":31,"value":1851}," の ",{"type":21,"tag":104,"props":1853,"children":1855},{"className":1854},[],[1856],{"type":31,"value":1857},"EmbeddingComposite",{"type":31,"value":1859}," がこのプロセスを担いますが、無料ではありません。鎖には追加の量子ビットが必要ですし、鎖が時に「切れる」こともあります。本来は一致するはずの物理量子ビットがアニーリング後に食い違ってしまい、その変数の読み取り結果を気づかないうちに損なってしまうのです。問題が大きくなったり密になったりするほど、必要な鎖は長くなり、切れる頻度も増えます。そして十分に密な問題は、あるチップ上ではついに埋め込むことすらできなくなります。これは、うまく動いていたシミュレーテッドアニーリングの問題を初めて実機に移す人のほとんどが経験する、最もよくある驚きです。アルゴリズムが悪くなったのではなく、チップの物理的な接続性がボトルネックになったのです。",{"type":21,"tag":41,"props":1861,"children":1863},{"id":1862},"アニーリングにできないこと",[1864],{"type":31,"value":1862},{"type":21,"tag":22,"props":1866,"children":1867},{},[1868],{"type":31,"value":1869},"アニーラーはGroverの探索を実行できませんし、Shorの素因数分解も実行できず、そもそも「回路」という一般的な概念自体を持ちません。その量子ビットは、ゲート方式の量子ビットと直接比較できるものではありません。D-Waveのシステムは5,000量子ビットを超え、どのゲート方式QPUよりもはるかに多いですが、この数字が示しているのはあくまでQUBO\u002Fイジング型の問題クラスに特化した最適化能力であって、汎用的な計算能力ではありません。実際の問題において、アニーリングが最良の古典的な最適化ヒューリスティックに対して本当に速度面で優位性を持つかどうかは、文献上でも真剣に議論が分かれるところであり、具体的な問題の構造に大きく左右されるようです。これはデフォルトで前提としてよいことではありません。",{"type":21,"tag":41,"props":1871,"children":1873},{"id":1872},"実機のd-waveハードウェアで実行する",[1874],{"type":31,"value":1875},"実機のD-Waveハードウェアで実行する",{"type":21,"tag":22,"props":1877,"children":1878},{},[1879],{"type":31,"value":1880},"サンプラーを差し替えるだけで、残りのコードはそのままです：",{"type":21,"tag":129,"props":1882,"children":1884},{"className":131,"code":1883,"language":133,"meta":7,"style":7},"from dwave.system import DWaveSampler, EmbeddingComposite\n\nsampler = EmbeddingComposite(DWaveSampler())\nsampleset = sampler.sample(bqm, num_reads=1000)\n",[1885],{"type":21,"tag":104,"props":1886,"children":1887},{"__ignoreMap":7},[1888,1909,1916,1932],{"type":21,"tag":139,"props":1889,"children":1890},{"class":141,"line":142},[1891,1895,1900,1904],{"type":21,"tag":139,"props":1892,"children":1893},{"style":146},[1894],{"type":31,"value":149},{"type":21,"tag":139,"props":1896,"children":1897},{"style":152},[1898],{"type":31,"value":1899}," dwave.system ",{"type":21,"tag":139,"props":1901,"children":1902},{"style":146},[1903],{"type":31,"value":160},{"type":21,"tag":139,"props":1905,"children":1906},{"style":152},[1907],{"type":31,"value":1908}," DWaveSampler, EmbeddingComposite\n",{"type":21,"tag":139,"props":1910,"children":1911},{"class":141,"line":168},[1912],{"type":21,"tag":139,"props":1913,"children":1914},{"emptyLinePlaceholder":194},[1915],{"type":31,"value":197},{"type":21,"tag":139,"props":1917,"children":1918},{"class":141,"line":190},[1919,1923,1927],{"type":21,"tag":139,"props":1920,"children":1921},{"style":152},[1922],{"type":31,"value":1690},{"type":21,"tag":139,"props":1924,"children":1925},{"style":146},[1926],{"type":31,"value":211},{"type":21,"tag":139,"props":1928,"children":1929},{"style":152},[1930],{"type":31,"value":1931}," EmbeddingComposite(DWaveSampler())\n",{"type":21,"tag":139,"props":1933,"children":1934},{"class":141,"line":200},[1935,1939,1943,1947,1951,1955,1959],{"type":21,"tag":139,"props":1936,"children":1937},{"style":152},[1938],{"type":31,"value":1707},{"type":21,"tag":139,"props":1940,"children":1941},{"style":146},[1942],{"type":31,"value":211},{"type":21,"tag":139,"props":1944,"children":1945},{"style":152},[1946],{"type":31,"value":1716},{"type":21,"tag":139,"props":1948,"children":1949},{"style":923},[1950],{"type":31,"value":1721},{"type":21,"tag":139,"props":1952,"children":1953},{"style":146},[1954],{"type":31,"value":211},{"type":21,"tag":139,"props":1956,"children":1957},{"style":214},[1958],{"type":31,"value":1730},{"type":21,"tag":139,"props":1960,"children":1961},{"style":152},[1962],{"type":31,"value":270},{"type":21,"tag":22,"props":1964,"children":1965},{},[1966,1968,1974,1976,1981,1983,1989],{"type":31,"value":1967},"D-WaveのLeapクラウドサービスは、まさにこの種の実験のために、毎月無料のQPU利用時間枠を提供しています。これは、ゲート方式ハードウェアにおける",{"type":21,"tag":26,"props":1969,"children":1971},{"href":1970},"\u002Fblog\u002Fibm-quantum-free-tier-2026",[1972],{"type":31,"value":1973},"IBM Quantumの無料枠",{"type":31,"value":1975},"に相当する、アニーリング版の存在だと言えます。",{"type":21,"tag":104,"props":1977,"children":1979},{"className":1978},[],[1980],{"type":31,"value":1857},{"type":31,"value":1982}," はマイナー埋め込みのステップを自動的に処理しますが、ちょっとしたおもちゃの問題を超える規模の結果を信頼する前には、返ってきた ",{"type":21,"tag":104,"props":1984,"children":1986},{"className":1985},[],[1987],{"type":31,"value":1988},"sampleset.info",{"type":31,"value":1990}," で鎖の切断に関する統計を確認してください。",{"type":21,"tag":41,"props":1992,"children":1993},{"id":1108},[1994],{"type":31,"value":1108},{"type":21,"tag":1112,"props":1996,"children":1997},{},[1998,2007,2017,2028],{"type":21,"tag":72,"props":1999,"children":2000},{},[2001,2005],{"type":21,"tag":26,"props":2002,"children":2003},{"href":1244},[2004],{"type":31,"value":1247},{"type":31,"value":2006},": 同じMax-Cut問題へのゲート方式でのアプローチ",{"type":21,"tag":72,"props":2008,"children":2009},{},[2010,2015],{"type":21,"tag":26,"props":2011,"children":2012},{"href":1215},[2013],{"type":31,"value":2014},"量子アニーリングの用語集エントリ",{"type":31,"value":2016},": この概念の要約",{"type":21,"tag":72,"props":2018,"children":2019},{},[2020,2026],{"type":21,"tag":26,"props":2021,"children":2023},{"href":2022},"\u002Fblog\u002Fdwave-dual-rail-erasure-qubit-gate-nature",[2024],{"type":31,"value":2025},"D-Waveのデュアルレール消去量子ビットゲート",{"type":31,"value":2027},": アニーリング路線と並行して進むD-Waveのゲート方式ハードウェアへの動き",{"type":21,"tag":72,"props":2029,"children":2030},{},[2031,2035,2036,2042,2043,2049],{"type":21,"tag":26,"props":2032,"children":2033},{"href":1142},[2034],{"type":31,"value":1145},{"type":31,"value":1147},{"type":21,"tag":26,"props":2037,"children":2039},{"href":2038},"\u002Fglossary\u002Fqaoa",[2040],{"type":31,"value":2041},"QAOA",{"type":31,"value":1155},{"type":21,"tag":26,"props":2044,"children":2046},{"href":2045},"\u002Fglossary\u002Fquantum-advantage",[2047],{"type":31,"value":2048},"量子優位性",{"type":31,"value":1166},{"type":21,"tag":1168,"props":2051,"children":2052},{},[2053],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":2055},[2056,2057,2058,2059,2060,2061,2062],{"id":1252,"depth":168,"text":1252},{"id":1267,"depth":168,"text":1270},{"id":1652,"depth":168,"text":1652},{"id":1814,"depth":168,"text":1817},{"id":1862,"depth":168,"text":1862},{"id":1872,"depth":168,"text":1875},{"id":1108,"depth":168,"text":1108},"content:ja:blog:quantum-annealing-tutorial.md","ja\u002Fblog\u002Fquantum-annealing-tutorial.md","ja\u002Fblog\u002Fquantum-annealing-tutorial",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"author":11,"tags":2067,"readingTime":16,"body":2068,"_type":1187,"_id":1188,"_source":1189,"_file":1190,"_stem":1191,"_extension":1192},[13,14,15],{"type":18,"children":2069,"toc":3022},[2070,2078,2082,2086,2090,2094,2098,2102,2117,2121,2125,2147,2382,2386,2437,2470,2474,2571,2599,2603,2693,2721,2725,2864,2910,2914,2936,2940,2959,2963,2972,2976,3018],{"type":21,"tag":22,"props":2071,"children":2072},{},[2073,2077],{"type":21,"tag":26,"props":2074,"children":2075},{"href":28},[2076],{"type":31,"value":32},{"type":31,"value":34},{"type":21,"tag":22,"props":2079,"children":2080},{},[2081],{"type":31,"value":39},{"type":21,"tag":41,"props":2083,"children":2084},{"id":43},[2085],{"type":31,"value":43},{"type":21,"tag":22,"props":2087,"children":2088},{},[2089],{"type":31,"value":50},{"type":21,"tag":22,"props":2091,"children":2092},{},[2093],{"type":31,"value":55},{"type":21,"tag":22,"props":2095,"children":2096},{},[2097],{"type":31,"value":60},{"type":21,"tag":41,"props":2099,"children":2100},{"id":63},[2101],{"type":31,"value":66},{"type":21,"tag":68,"props":2103,"children":2104},{},[2105,2109,2113],{"type":21,"tag":72,"props":2106,"children":2107},{},[2108],{"type":31,"value":76},{"type":21,"tag":72,"props":2110,"children":2111},{},[2112],{"type":31,"value":81},{"type":21,"tag":72,"props":2114,"children":2115},{},[2116],{"type":31,"value":86},{"type":21,"tag":22,"props":2118,"children":2119},{},[2120],{"type":31,"value":91},{"type":21,"tag":41,"props":2122,"children":2123},{"id":94},[2124],{"type":31,"value":97},{"type":21,"tag":22,"props":2126,"children":2127},{},[2128,2129,2134,2135,2140,2141,2146],{"type":31,"value":102},{"type":21,"tag":104,"props":2130,"children":2132},{"className":2131},[],[2133],{"type":31,"value":109},{"type":31,"value":111},{"type":21,"tag":104,"props":2136,"children":2138},{"className":2137},[],[2139],{"type":31,"value":117},{"type":31,"value":119},{"type":21,"tag":104,"props":2142,"children":2144},{"className":2143},[],[2145],{"type":31,"value":125},{"type":31,"value":127},{"type":21,"tag":129,"props":2148,"children":2149},{"className":131,"code":132,"language":133,"meta":7,"style":7},[2150],{"type":21,"tag":104,"props":2151,"children":2152},{"__ignoreMap":7},[2153,2172,2191,2198,2217,2224,2255,2286,2317,2332,2339,2346,2353,2360,2375],{"type":21,"tag":139,"props":2154,"children":2155},{"class":141,"line":142},[2156,2160,2164,2168],{"type":21,"tag":139,"props":2157,"children":2158},{"style":146},[2159],{"type":31,"value":149},{"type":21,"tag":139,"props":2161,"children":2162},{"style":152},[2163],{"type":31,"value":155},{"type":21,"tag":139,"props":2165,"children":2166},{"style":146},[2167],{"type":31,"value":160},{"type":21,"tag":139,"props":2169,"children":2170},{"style":152},[2171],{"type":31,"value":165},{"type":21,"tag":139,"props":2173,"children":2174},{"class":141,"line":168},[2175,2179,2183,2187],{"type":21,"tag":139,"props":2176,"children":2177},{"style":146},[2178],{"type":31,"value":149},{"type":21,"tag":139,"props":2180,"children":2181},{"style":152},[2182],{"type":31,"value":178},{"type":21,"tag":139,"props":2184,"children":2185},{"style":146},[2186],{"type":31,"value":160},{"type":21,"tag":139,"props":2188,"children":2189},{"style":152},[2190],{"type":31,"value":187},{"type":21,"tag":139,"props":2192,"children":2193},{"class":141,"line":190},[2194],{"type":21,"tag":139,"props":2195,"children":2196},{"emptyLinePlaceholder":194},[2197],{"type":31,"value":197},{"type":21,"tag":139,"props":2199,"children":2200},{"class":141,"line":200},[2201,2205,2209,2213],{"type":21,"tag":139,"props":2202,"children":2203},{"style":152},[2204],{"type":31,"value":206},{"type":21,"tag":139,"props":2206,"children":2207},{"style":146},[2208],{"type":31,"value":211},{"type":21,"tag":139,"props":2210,"children":2211},{"style":214},[2212],{"type":31,"value":217},{"type":21,"tag":139,"props":2214,"children":2215},{"style":220},[2216],{"type":31,"value":223},{"type":21,"tag":139,"props":2218,"children":2219},{"class":141,"line":226},[2220],{"type":21,"tag":139,"props":2221,"children":2222},{"emptyLinePlaceholder":194},[2223],{"type":31,"value":197},{"type":21,"tag":139,"props":2225,"children":2226},{"class":141,"line":234},[2227,2231,2235,2239,2243,2247,2251],{"type":21,"tag":139,"props":2228,"children":2229},{"style":152},[2230],{"type":31,"value":240},{"type":21,"tag":139,"props":2232,"children":2233},{"style":146},[2234],{"type":31,"value":211},{"type":21,"tag":139,"props":2236,"children":2237},{"style":152},[2238],{"type":31,"value":249},{"type":21,"tag":139,"props":2240,"children":2241},{"style":214},[2242],{"type":31,"value":254},{"type":21,"tag":139,"props":2244,"children":2245},{"style":152},[2246],{"type":31,"value":259},{"type":21,"tag":139,"props":2248,"children":2249},{"style":262},[2250],{"type":31,"value":265},{"type":21,"tag":139,"props":2252,"children":2253},{"style":152},[2254],{"type":31,"value":270},{"type":21,"tag":139,"props":2256,"children":2257},{"class":141,"line":273},[2258,2262,2266,2270,2274,2278,2282],{"type":21,"tag":139,"props":2259,"children":2260},{"style":152},[2261],{"type":31,"value":279},{"type":21,"tag":139,"props":2263,"children":2264},{"style":146},[2265],{"type":31,"value":211},{"type":21,"tag":139,"props":2267,"children":2268},{"style":152},[2269],{"type":31,"value":288},{"type":21,"tag":139,"props":2271,"children":2272},{"style":214},[2273],{"type":31,"value":293},{"type":21,"tag":139,"props":2275,"children":2276},{"style":152},[2277],{"type":31,"value":259},{"type":21,"tag":139,"props":2279,"children":2280},{"style":262},[2281],{"type":31,"value":302},{"type":21,"tag":139,"props":2283,"children":2284},{"style":152},[2285],{"type":31,"value":270},{"type":21,"tag":139,"props":2287,"children":2288},{"class":141,"line":309},[2289,2293,2297,2301,2305,2309,2313],{"type":21,"tag":139,"props":2290,"children":2291},{"style":152},[2292],{"type":31,"value":315},{"type":21,"tag":139,"props":2294,"children":2295},{"style":146},[2296],{"type":31,"value":211},{"type":21,"tag":139,"props":2298,"children":2299},{"style":152},[2300],{"type":31,"value":288},{"type":21,"tag":139,"props":2302,"children":2303},{"style":214},[2304],{"type":31,"value":328},{"type":21,"tag":139,"props":2306,"children":2307},{"style":152},[2308],{"type":31,"value":259},{"type":21,"tag":139,"props":2310,"children":2311},{"style":262},[2312],{"type":31,"value":337},{"type":21,"tag":139,"props":2314,"children":2315},{"style":152},[2316],{"type":31,"value":270},{"type":21,"tag":139,"props":2318,"children":2319},{"class":141,"line":16},[2320,2324,2328],{"type":21,"tag":139,"props":2321,"children":2322},{"style":152},[2323],{"type":31,"value":349},{"type":21,"tag":139,"props":2325,"children":2326},{"style":146},[2327],{"type":31,"value":211},{"type":21,"tag":139,"props":2329,"children":2330},{"style":152},[2331],{"type":31,"value":358},{"type":21,"tag":139,"props":2333,"children":2334},{"class":141,"line":361},[2335],{"type":21,"tag":139,"props":2336,"children":2337},{"emptyLinePlaceholder":194},[2338],{"type":31,"value":197},{"type":21,"tag":139,"props":2340,"children":2341},{"class":141,"line":369},[2342],{"type":21,"tag":139,"props":2343,"children":2344},{"style":220},[2345],{"type":31,"value":375},{"type":21,"tag":139,"props":2347,"children":2348},{"class":141,"line":378},[2349],{"type":21,"tag":139,"props":2350,"children":2351},{"style":220},[2352],{"type":31,"value":384},{"type":21,"tag":139,"props":2354,"children":2355},{"class":141,"line":387},[2356],{"type":21,"tag":139,"props":2357,"children":2358},{"style":220},[2359],{"type":31,"value":393},{"type":21,"tag":139,"props":2361,"children":2362},{"class":141,"line":396},[2363,2367,2371],{"type":21,"tag":139,"props":2364,"children":2365},{"style":152},[2366],{"type":31,"value":402},{"type":21,"tag":139,"props":2368,"children":2369},{"style":214},[2370],{"type":31,"value":407},{"type":21,"tag":139,"props":2372,"children":2373},{"style":152},[2374],{"type":31,"value":270},{"type":21,"tag":139,"props":2376,"children":2377},{"class":141,"line":414},[2378],{"type":21,"tag":139,"props":2379,"children":2380},{"style":152},[2381],{"type":31,"value":420},{"type":21,"tag":422,"props":2383,"children":2384},{"id":424},[2385],{"type":31,"value":427},{"type":21,"tag":129,"props":2387,"children":2388},{"className":131,"code":430,"language":133,"meta":7,"style":7},[2389],{"type":21,"tag":104,"props":2390,"children":2391},{"__ignoreMap":7},[2392,2407,2430],{"type":21,"tag":139,"props":2393,"children":2394},{"class":141,"line":142},[2395,2399,2403],{"type":21,"tag":139,"props":2396,"children":2397},{"style":152},[2398],{"type":31,"value":442},{"type":21,"tag":139,"props":2400,"children":2401},{"style":214},[2402],{"type":31,"value":328},{"type":21,"tag":139,"props":2404,"children":2405},{"style":152},[2406],{"type":31,"value":270},{"type":21,"tag":139,"props":2408,"children":2409},{"class":141,"line":168},[2410,2414,2418,2422,2426],{"type":21,"tag":139,"props":2411,"children":2412},{"style":152},[2413],{"type":31,"value":458},{"type":21,"tag":139,"props":2415,"children":2416},{"style":214},[2417],{"type":31,"value":328},{"type":21,"tag":139,"props":2419,"children":2420},{"style":152},[2421],{"type":31,"value":259},{"type":21,"tag":139,"props":2423,"children":2424},{"style":214},[2425],{"type":31,"value":293},{"type":21,"tag":139,"props":2427,"children":2428},{"style":152},[2429],{"type":31,"value":270},{"type":21,"tag":139,"props":2431,"children":2432},{"class":141,"line":190},[2433],{"type":21,"tag":139,"props":2434,"children":2435},{"style":152},[2436],{"type":31,"value":420},{"type":21,"tag":22,"props":2438,"children":2439},{},[2440,2441,2445,2446,2451,2452,2457,2458,2463,2464,2469],{"type":31,"value":486},{"type":21,"tag":26,"props":2442,"children":2443},{"href":489},[2444],{"type":31,"value":492},{"type":31,"value":494},{"type":21,"tag":104,"props":2447,"children":2449},{"className":2448},[],[2450],{"type":31,"value":117},{"type":31,"value":501},{"type":21,"tag":104,"props":2453,"children":2455},{"className":2454},[],[2456],{"type":31,"value":125},{"type":31,"value":508},{"type":21,"tag":104,"props":2459,"children":2461},{"className":2460},[],[2462],{"type":31,"value":117},{"type":31,"value":515},{"type":21,"tag":104,"props":2465,"children":2467},{"className":2466},[],[2468],{"type":31,"value":125},{"type":31,"value":522},{"type":21,"tag":422,"props":2471,"children":2472},{"id":525},[2473],{"type":31,"value":528},{"type":21,"tag":129,"props":2475,"children":2476},{"className":131,"code":531,"language":133,"meta":7,"style":7},[2477],{"type":21,"tag":104,"props":2478,"children":2479},{"__ignoreMap":7},[2480,2503,2518,2541,2564],{"type":21,"tag":139,"props":2481,"children":2482},{"class":141,"line":142},[2483,2487,2491,2495,2499],{"type":21,"tag":139,"props":2484,"children":2485},{"style":152},[2486],{"type":31,"value":458},{"type":21,"tag":139,"props":2488,"children":2489},{"style":214},[2490],{"type":31,"value":407},{"type":21,"tag":139,"props":2492,"children":2493},{"style":152},[2494],{"type":31,"value":259},{"type":21,"tag":139,"props":2496,"children":2497},{"style":214},[2498],{"type":31,"value":328},{"type":21,"tag":139,"props":2500,"children":2501},{"style":152},[2502],{"type":31,"value":270},{"type":21,"tag":139,"props":2504,"children":2505},{"class":141,"line":168},[2506,2510,2514],{"type":21,"tag":139,"props":2507,"children":2508},{"style":152},[2509],{"type":31,"value":442},{"type":21,"tag":139,"props":2511,"children":2512},{"style":214},[2513],{"type":31,"value":407},{"type":21,"tag":139,"props":2515,"children":2516},{"style":152},[2517],{"type":31,"value":270},{"type":21,"tag":139,"props":2519,"children":2520},{"class":141,"line":190},[2521,2525,2529,2533,2537],{"type":21,"tag":139,"props":2522,"children":2523},{"style":152},[2524],{"type":31,"value":581},{"type":21,"tag":139,"props":2526,"children":2527},{"style":214},[2528],{"type":31,"value":407},{"type":21,"tag":139,"props":2530,"children":2531},{"style":152},[2532],{"type":31,"value":590},{"type":21,"tag":139,"props":2534,"children":2535},{"style":214},[2536],{"type":31,"value":407},{"type":21,"tag":139,"props":2538,"children":2539},{"style":152},[2540],{"type":31,"value":599},{"type":21,"tag":139,"props":2542,"children":2543},{"class":141,"line":200},[2544,2548,2552,2556,2560],{"type":21,"tag":139,"props":2545,"children":2546},{"style":152},[2547],{"type":31,"value":581},{"type":21,"tag":139,"props":2549,"children":2550},{"style":214},[2551],{"type":31,"value":328},{"type":21,"tag":139,"props":2553,"children":2554},{"style":152},[2555],{"type":31,"value":590},{"type":21,"tag":139,"props":2557,"children":2558},{"style":214},[2559],{"type":31,"value":328},{"type":21,"tag":139,"props":2561,"children":2562},{"style":152},[2563],{"type":31,"value":599},{"type":21,"tag":139,"props":2565,"children":2566},{"class":141,"line":226},[2567],{"type":21,"tag":139,"props":2568,"children":2569},{"style":152},[2570],{"type":31,"value":420},{"type":21,"tag":22,"props":2572,"children":2573},{},[2574,2575,2580,2581,2586,2587,2592,2593,2598],{"type":31,"value":634},{"type":21,"tag":104,"props":2576,"children":2578},{"className":2577},[],[2579],{"type":31,"value":109},{"type":31,"value":501},{"type":21,"tag":104,"props":2582,"children":2584},{"className":2583},[],[2585],{"type":31,"value":117},{"type":31,"value":647},{"type":21,"tag":104,"props":2588,"children":2590},{"className":2589},[],[2591],{"type":31,"value":653},{"type":31,"value":501},{"type":21,"tag":104,"props":2594,"children":2596},{"className":2595},[],[2597],{"type":31,"value":660},{"type":31,"value":662},{"type":21,"tag":422,"props":2600,"children":2601},{"id":665},[2602],{"type":31,"value":668},{"type":21,"tag":129,"props":2604,"children":2605},{"className":131,"code":671,"language":133,"meta":7,"style":7},[2606],{"type":21,"tag":104,"props":2607,"children":2608},{"__ignoreMap":7},[2609,2636,2651,2678],{"type":21,"tag":139,"props":2610,"children":2611},{"class":141,"line":142},[2612,2616,2620,2624,2628,2632],{"type":21,"tag":139,"props":2613,"children":2614},{"style":146},[2615],{"type":31,"value":683},{"type":21,"tag":139,"props":2617,"children":2618},{"style":152},[2619],{"type":31,"value":688},{"type":21,"tag":139,"props":2621,"children":2622},{"style":214},[2623],{"type":31,"value":328},{"type":21,"tag":139,"props":2625,"children":2626},{"style":152},[2627],{"type":31,"value":697},{"type":21,"tag":139,"props":2629,"children":2630},{"style":214},[2631],{"type":31,"value":328},{"type":21,"tag":139,"props":2633,"children":2634},{"style":152},[2635],{"type":31,"value":706},{"type":21,"tag":139,"props":2637,"children":2638},{"class":141,"line":168},[2639,2643,2647],{"type":21,"tag":139,"props":2640,"children":2641},{"style":152},[2642],{"type":31,"value":714},{"type":21,"tag":139,"props":2644,"children":2645},{"style":214},[2646],{"type":31,"value":293},{"type":21,"tag":139,"props":2648,"children":2649},{"style":152},[2650],{"type":31,"value":270},{"type":21,"tag":139,"props":2652,"children":2653},{"class":141,"line":190},[2654,2658,2662,2666,2670,2674],{"type":21,"tag":139,"props":2655,"children":2656},{"style":146},[2657],{"type":31,"value":683},{"type":21,"tag":139,"props":2659,"children":2660},{"style":152},[2661],{"type":31,"value":688},{"type":21,"tag":139,"props":2663,"children":2664},{"style":214},[2665],{"type":31,"value":407},{"type":21,"tag":139,"props":2667,"children":2668},{"style":152},[2669],{"type":31,"value":697},{"type":21,"tag":139,"props":2671,"children":2672},{"style":214},[2673],{"type":31,"value":328},{"type":21,"tag":139,"props":2675,"children":2676},{"style":152},[2677],{"type":31,"value":706},{"type":21,"tag":139,"props":2679,"children":2680},{"class":141,"line":200},[2681,2685,2689],{"type":21,"tag":139,"props":2682,"children":2683},{"style":152},[2684],{"type":31,"value":757},{"type":21,"tag":139,"props":2686,"children":2687},{"style":214},[2688],{"type":31,"value":293},{"type":21,"tag":139,"props":2690,"children":2691},{"style":152},[2692],{"type":31,"value":270},{"type":21,"tag":22,"props":2694,"children":2695},{},[2696,2697,2702,2703,2708,2709,2714,2715,2720],{"type":31,"value":770},{"type":21,"tag":104,"props":2698,"children":2700},{"className":2699},[],[2701],{"type":31,"value":125},{"type":31,"value":777},{"type":21,"tag":104,"props":2704,"children":2706},{"className":2705},[],[2707],{"type":31,"value":660},{"type":31,"value":784},{"type":21,"tag":104,"props":2710,"children":2712},{"className":2711},[],[2713],{"type":31,"value":653},{"type":31,"value":791},{"type":21,"tag":104,"props":2716,"children":2718},{"className":2717},[],[2719],{"type":31,"value":797},{"type":31,"value":799},{"type":21,"tag":422,"props":2722,"children":2723},{"id":802},[2724],{"type":31,"value":805},{"type":21,"tag":129,"props":2726,"children":2727},{"className":131,"code":808,"language":133,"meta":7,"style":7},[2728],{"type":21,"tag":104,"props":2729,"children":2730},{"__ignoreMap":7},[2731,2754,2777,2784,2799,2814,2845],{"type":21,"tag":139,"props":2732,"children":2733},{"class":141,"line":142},[2734,2738,2742,2746,2750],{"type":21,"tag":139,"props":2735,"children":2736},{"style":152},[2737],{"type":31,"value":820},{"type":21,"tag":139,"props":2739,"children":2740},{"style":146},[2741],{"type":31,"value":825},{"type":21,"tag":139,"props":2743,"children":2744},{"style":152},[2745],{"type":31,"value":830},{"type":21,"tag":139,"props":2747,"children":2748},{"style":214},[2749],{"type":31,"value":293},{"type":21,"tag":139,"props":2751,"children":2752},{"style":152},[2753],{"type":31,"value":270},{"type":21,"tag":139,"props":2755,"children":2756},{"class":141,"line":168},[2757,2761,2765,2769,2773],{"type":21,"tag":139,"props":2758,"children":2759},{"style":152},[2760],{"type":31,"value":581},{"type":21,"tag":139,"props":2762,"children":2763},{"style":214},[2764],{"type":31,"value":293},{"type":21,"tag":139,"props":2766,"children":2767},{"style":152},[2768],{"type":31,"value":854},{"type":21,"tag":139,"props":2770,"children":2771},{"style":214},[2772],{"type":31,"value":407},{"type":21,"tag":139,"props":2774,"children":2775},{"style":152},[2776],{"type":31,"value":599},{"type":21,"tag":139,"props":2778,"children":2779},{"class":141,"line":190},[2780],{"type":21,"tag":139,"props":2781,"children":2782},{"emptyLinePlaceholder":194},[2783],{"type":31,"value":197},{"type":21,"tag":139,"props":2785,"children":2786},{"class":141,"line":200},[2787,2791,2795],{"type":21,"tag":139,"props":2788,"children":2789},{"style":152},[2790],{"type":31,"value":877},{"type":21,"tag":139,"props":2792,"children":2793},{"style":146},[2794],{"type":31,"value":211},{"type":21,"tag":139,"props":2796,"children":2797},{"style":152},[2798],{"type":31,"value":886},{"type":21,"tag":139,"props":2800,"children":2801},{"class":141,"line":226},[2802,2806,2810],{"type":21,"tag":139,"props":2803,"children":2804},{"style":152},[2805],{"type":31,"value":894},{"type":21,"tag":139,"props":2807,"children":2808},{"style":146},[2809],{"type":31,"value":211},{"type":21,"tag":139,"props":2811,"children":2812},{"style":152},[2813],{"type":31,"value":903},{"type":21,"tag":139,"props":2815,"children":2816},{"class":141,"line":234},[2817,2821,2825,2829,2833,2837,2841],{"type":21,"tag":139,"props":2818,"children":2819},{"style":152},[2820],{"type":31,"value":911},{"type":21,"tag":139,"props":2822,"children":2823},{"style":146},[2824],{"type":31,"value":211},{"type":21,"tag":139,"props":2826,"children":2827},{"style":152},[2828],{"type":31,"value":920},{"type":21,"tag":139,"props":2830,"children":2831},{"style":923},[2832],{"type":31,"value":926},{"type":21,"tag":139,"props":2834,"children":2835},{"style":146},[2836],{"type":31,"value":211},{"type":21,"tag":139,"props":2838,"children":2839},{"style":214},[2840],{"type":31,"value":935},{"type":21,"tag":139,"props":2842,"children":2843},{"style":152},[2844],{"type":31,"value":940},{"type":21,"tag":139,"props":2846,"children":2847},{"class":141,"line":273},[2848,2852,2856,2860],{"type":21,"tag":139,"props":2849,"children":2850},{"style":214},[2851],{"type":31,"value":948},{"type":21,"tag":139,"props":2853,"children":2854},{"style":152},[2855],{"type":31,"value":953},{"type":21,"tag":139,"props":2857,"children":2858},{"style":214},[2859],{"type":31,"value":958},{"type":21,"tag":139,"props":2861,"children":2862},{"style":152},[2863],{"type":31,"value":963},{"type":21,"tag":22,"props":2865,"children":2866},{},[2867,2868,2873,2874,2879,2880,2885,2886,2891,2892,2897,2898,2903,2904,2909],{"type":31,"value":968},{"type":21,"tag":104,"props":2869,"children":2871},{"className":2870},[],[2872],{"type":31,"value":125},{"type":31,"value":975},{"type":21,"tag":104,"props":2875,"children":2877},{"className":2876},[],[2878],{"type":31,"value":125},{"type":31,"value":982},{"type":21,"tag":104,"props":2881,"children":2883},{"className":2882},[],[2884],{"type":31,"value":109},{"type":31,"value":989},{"type":21,"tag":104,"props":2887,"children":2889},{"className":2888},[],[2890],{"type":31,"value":995},{"type":31,"value":997},{"type":21,"tag":104,"props":2893,"children":2895},{"className":2894},[],[2896],{"type":31,"value":1003},{"type":31,"value":1005},{"type":21,"tag":104,"props":2899,"children":2901},{"className":2900},[],[2902],{"type":31,"value":1011},{"type":31,"value":1013},{"type":21,"tag":104,"props":2905,"children":2907},{"className":2906},[],[2908],{"type":31,"value":1003},{"type":31,"value":1020},{"type":21,"tag":41,"props":2911,"children":2912},{"id":1023},[2913],{"type":31,"value":1026},{"type":21,"tag":22,"props":2915,"children":2916},{},[2917,2918,2923,2924,2929,2930,2935],{"type":31,"value":1031},{"type":21,"tag":104,"props":2919,"children":2921},{"className":2920},[],[2922],{"type":31,"value":797},{"type":31,"value":1038},{"type":21,"tag":104,"props":2925,"children":2927},{"className":2926},[],[2928],{"type":31,"value":125},{"type":31,"value":1045},{"type":21,"tag":104,"props":2931,"children":2933},{"className":2932},[],[2934],{"type":31,"value":1051},{"type":31,"value":1053},{"type":21,"tag":41,"props":2937,"children":2938},{"id":1056},[2939],{"type":31,"value":1056},{"type":21,"tag":22,"props":2941,"children":2942},{},[2943,2944,2948,2949,2953,2954,2958],{"type":31,"value":1063},{"type":21,"tag":26,"props":2945,"children":2946},{"href":1066},[2947],{"type":31,"value":1069},{"type":31,"value":1071},{"type":21,"tag":26,"props":2950,"children":2951},{"href":1074},[2952],{"type":31,"value":1077},{"type":31,"value":1079},{"type":21,"tag":26,"props":2955,"children":2956},{"href":1082},[2957],{"type":31,"value":1085},{"type":31,"value":1087},{"type":21,"tag":41,"props":2960,"children":2961},{"id":1090},[2962],{"type":31,"value":1090},{"type":21,"tag":22,"props":2964,"children":2965},{},[2966,2967,2971],{"type":31,"value":1097},{"type":21,"tag":26,"props":2968,"children":2969},{"href":1100},[2970],{"type":31,"value":1103},{"type":31,"value":1105},{"type":21,"tag":41,"props":2973,"children":2974},{"id":1108},[2975],{"type":31,"value":1108},{"type":21,"tag":1112,"props":2977,"children":2978},{},[2979,2987,2995],{"type":21,"tag":72,"props":2980,"children":2981},{},[2982,2986],{"type":21,"tag":26,"props":2983,"children":2984},{"href":1120},[2985],{"type":31,"value":1123},{"type":31,"value":1125},{"type":21,"tag":72,"props":2988,"children":2989},{},[2990,2994],{"type":21,"tag":26,"props":2991,"children":2992},{"href":1131},[2993],{"type":31,"value":1134},{"type":31,"value":1136},{"type":21,"tag":72,"props":2996,"children":2997},{},[2998,3002,3003,3007,3008,3012,3013,3017],{"type":21,"tag":26,"props":2999,"children":3000},{"href":1142},[3001],{"type":31,"value":1145},{"type":31,"value":1147},{"type":21,"tag":26,"props":3004,"children":3005},{"href":1150},[3006],{"type":31,"value":1153},{"type":31,"value":1155},{"type":21,"tag":26,"props":3009,"children":3010},{"href":489},[3011],{"type":31,"value":492},{"type":31,"value":1155},{"type":21,"tag":26,"props":3014,"children":3015},{"href":1082},[3016],{"type":31,"value":1085},{"type":31,"value":1166},{"type":21,"tag":1168,"props":3019,"children":3020},{},[3021],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":3023},[3024,3025,3026,3032,3033,3034,3035],{"id":43,"depth":168,"text":43},{"id":63,"depth":168,"text":66},{"id":94,"depth":168,"text":97,"children":3027},[3028,3029,3030,3031],{"id":424,"depth":190,"text":427},{"id":525,"depth":190,"text":528},{"id":665,"depth":190,"text":668},{"id":802,"depth":190,"text":805},{"id":1023,"depth":168,"text":1026},{"id":1056,"depth":168,"text":1056},{"id":1090,"depth":168,"text":1090},{"id":1108,"depth":168,"text":1108},{"_path":3037,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":3038,"description":3039,"date":10,"author":11,"tags":3040,"readingTime":273,"body":3042,"_type":1187,"_id":3387,"_source":1189,"_file":3388,"_stem":3389,"_extension":1192},"\u002Fja\u002Fblog\u002Fquantum-vs-classical-computing","量子コンピューティング vs 古典コンピューティング：本当の違いは何か","量子コンピューティングと古典コンピューティングを直接比較：量子ビットがビットと具体的にどう違うのか、なぜ重ね合わせだけでは速さを意味しないのか、そしてどの問題がどちらのモデルに向いているのか。",[3041,15],"Beginners",{"type":18,"children":3043,"toc":3379},[3044,3057,3063,3076,3089,3095,3108,3113,3118,3144,3149,3303,3308,3321,3325],{"type":21,"tag":22,"props":3045,"children":3046},{},[3047,3049,3055],{"type":31,"value":3048},"量子コンピュータは古典コンピュータを置き換えるものではありませんし、そうなる予定もありません。この比較記事では、",{"type":21,"tag":26,"props":3050,"children":3052},{"href":3051},"\u002Fglossary\u002Fqubit",[3053],{"type":31,"value":3054},"量子ビット",{"type":31,"value":3056},"が古典的なビットと具体的にどう違うのか、「重ね合わせは並列処理を意味する」というのがなぜ誤解を招く言い方なのか、そしてどの問題がどちらのマシンに属するのかを整理し、最初の回路を書く前に何を期待すべきかが分かるようにします。",{"type":21,"tag":41,"props":3058,"children":3060},{"id":3059},"基本単位ビット-vs-量子ビット",[3061],{"type":31,"value":3062},"基本単位：ビット vs 量子ビット",{"type":21,"tag":22,"props":3064,"children":3065},{},[3066,3068,3074],{"type":31,"value":3067},"古典的なビットは、どの瞬間においても0か1のどちらか一方の状態しか取りません。一方、量子ビットは測定される前は、単一の値ではなく2つの複素数（振幅）で記述される、両方の",{"type":21,"tag":26,"props":3069,"children":3071},{"href":3070},"\u002Fglossary\u002Fsuperposition",[3072],{"type":31,"value":3073},"重ね合わせ",{"type":31,"value":3075},"状態にあります。量子ビットを測定すると、この重ね合わせはその振幅によって決まる確率で、確定した0または1へと収束します。",{"type":21,"tag":22,"props":3077,"children":3078},{},[3079,3081,3087],{"type":31,"value":3080},"つい使ってしまいがちな言い方は、重ね合わせ状態にあるn個の量子ビットを「2ⁿ個の値を同時に処理している」と表現することです。仕組みのレベルで見れば、その量子状態は確かに2ⁿ個の振幅を同時にエンコードしています。難しいのは、その情報を取り出す部分です。1回の測定で得られるのは、振幅に従ってランダムに選ばれたちょうど1つのnビット文字列だけであり、それ以外の情報はすべて収束とともに失われます。役に立つ量子アルゴリズムは、量子ビットを重ね合わせに放り込んでそのまま読み出すのではなく、測定が行われる前に",{"type":21,"tag":26,"props":3082,"children":3084},{"href":3083},"\u002Fglossary\u002Fhadamard-gate",[3085],{"type":31,"value":3086},"干渉",{"type":31,"value":3088},"によって誤った答えを打ち消し、正しい答えを強め合うように設計されていなければなりません。",{"type":21,"tag":41,"props":3090,"children":3092},{"id":3091},"決定論的-vs-確率的",[3093],{"type":31,"value":3094},"決定論的 vs 確率的",{"type":21,"tag":22,"props":3096,"children":3097},{},[3098,3100,3106],{"type":31,"value":3099},"同じ古典プログラムに同じ入力を与えて2回実行すれば、正しく動作するコンピュータは2回とも同じ結果を返します。同じ量子回路を2回実行すると、2回の実行はそれぞれ確率分布からサンプリングを行い、同じ答えが得られるのはある確率でしかなく、正常に動作しているハードウェアであっても、その確率はしばしば100%をかなり下回ります。これが、量子プログラムが「ショット」という単位で実行される理由です。同じ回路を数百回、数千回と実行し、1回の実行結果ではなく、その結果として得られる分布から答えを導き出します。この背後にある統計については、",{"type":21,"tag":26,"props":3101,"children":3103},{"href":3102},"\u002Fglossary\u002Fshot-noise",[3104],{"type":31,"value":3105},"ショットノイズの用語集エントリ",{"type":31,"value":3107},"を参照してください。",{"type":21,"tag":41,"props":3109,"children":3111},{"id":3110},"それぞれが得意なこと",[3112],{"type":31,"value":3110},{"type":21,"tag":22,"props":3114,"children":3115},{},[3116],{"type":31,"value":3117},"今日コンピューティングが使われるほぼすべての場面において、古典コンピュータは依然として紛れもなく優れています。ウェブサーバー、データベース、ビデオゲーム、表計算ソフト、大規模言語モデルの学習、グラフィックスのレンダリング、そして科学計算の大部分がそうです。これは、量子ハードウェアが進歩すれば埋まっていくような一時的な差ではありません。これらのタスクの多くには、そもそも優位性を提供できる量子アルゴリズムが存在しません。なぜなら、その背後にある数学に、利用可能な量子的構造がそもそも存在しないからです。",{"type":21,"tag":22,"props":3119,"children":3120},{},[3121,3123,3127,3129,3134,3136,3142],{"type":31,"value":3122},"量子コンピュータが、数学的に証明された本物の高速化を示す領域はごく限られています。大きな整数の素因数分解（",{"type":21,"tag":26,"props":3124,"children":3125},{"href":1231},[3126],{"type":31,"value":1234},{"type":31,"value":3128},"）、非構造化探索（",{"type":21,"tag":26,"props":3130,"children":3131},{"href":1223},[3132],{"type":31,"value":3133},"Groverのアルゴリズム",{"type":31,"value":3135},"）、そして他の量子系のシミュレーションです。これらはまさに、自然そのものが量子力学に従って動いているがゆえに古典コンピュータが苦戦する物理学や化学の計算にほかなりません。最適化と機械学習は活発な研究領域であり、提案されている量子アルゴリズム（QAOA、VQE、振幅推定）もありますが、2026年時点で、実用的な問題規模において証明済みの優位性を示したものはまだありません。私たちの",{"type":21,"tag":26,"props":3137,"children":3139},{"href":3138},"\u002Fblog\u002Fquantum-machine-learning-reality-check",[3140],{"type":31,"value":3141},"量子機械学習に関する現実的な検証記事",{"type":31,"value":3143},"では、この点を具体的な事例に沿ってさらに詳しく扱っています。",{"type":21,"tag":41,"props":3145,"children":3147},{"id":3146},"並べて比較する",[3148],{"type":31,"value":3146},{"type":21,"tag":3150,"props":3151,"children":3152},"table",{},[3153,3175],{"type":21,"tag":3154,"props":3155,"children":3156},"thead",{},[3157],{"type":21,"tag":3158,"props":3159,"children":3160},"tr",{},[3161,3165,3170],{"type":21,"tag":3162,"props":3163,"children":3164},"th",{},[],{"type":21,"tag":3162,"props":3166,"children":3167},{},[3168],{"type":31,"value":3169},"古典",{"type":21,"tag":3162,"props":3171,"children":3172},{},[3173],{"type":31,"value":3174},"量子",{"type":21,"tag":3176,"props":3177,"children":3178},"tbody",{},[3179,3202,3220,3238,3256,3274],{"type":21,"tag":3158,"props":3180,"children":3181},{},[3182,3188,3193],{"type":21,"tag":3183,"props":3184,"children":3185},"td",{},[3186],{"type":31,"value":3187},"基本単位",{"type":21,"tag":3183,"props":3189,"children":3190},{},[3191],{"type":31,"value":3192},"ビット（0または1）",{"type":21,"tag":3183,"props":3194,"children":3195},{},[3196,3200],{"type":21,"tag":26,"props":3197,"children":3198},{"href":3051},[3199],{"type":31,"value":3054},{"type":31,"value":3201},"（0と1の重ね合わせ）",{"type":21,"tag":3158,"props":3203,"children":3204},{},[3205,3210,3215],{"type":21,"tag":3183,"props":3206,"children":3207},{},[3208],{"type":31,"value":3209},"実行方式",{"type":21,"tag":3183,"props":3211,"children":3212},{},[3213],{"type":31,"value":3214},"決定論的",{"type":21,"tag":3183,"props":3216,"children":3217},{},[3218],{"type":31,"value":3219},"確率的、多くのショットが必要",{"type":21,"tag":3158,"props":3221,"children":3222},{},[3223,3228,3233],{"type":21,"tag":3183,"props":3224,"children":3225},{},[3226],{"type":31,"value":3227},"現在のエラー率",{"type":21,"tag":3183,"props":3229,"children":3230},{},[3231],{"type":31,"value":3232},"事実上ゼロ（内蔵の古典的エラー訂正が成熟している）",{"type":21,"tag":3183,"props":3234,"children":3235},{},[3236],{"type":31,"value":3237},"現行ハードウェアでゲートあたり0.1〜1%",{"type":21,"tag":3158,"props":3239,"children":3240},{},[3241,3246,3251],{"type":21,"tag":3183,"props":3242,"children":3243},{},[3244],{"type":31,"value":3245},"物理的な動作条件",{"type":21,"tag":3183,"props":3247,"children":3248},{},[3249],{"type":31,"value":3250},"室温",{"type":21,"tag":3183,"props":3252,"children":3253},{},[3254],{"type":31,"value":3255},"絶対零度に近い環境（超伝導方式）またはレーザー制御された真空（イオントラップ方式）",{"type":21,"tag":3158,"props":3257,"children":3258},{},[3259,3264,3269],{"type":21,"tag":3183,"props":3260,"children":3261},{},[3262],{"type":31,"value":3263},"証明済みの高速化",{"type":21,"tag":3183,"props":3265,"children":3266},{},[3267],{"type":31,"value":3268},"該当なし、基準となる存在",{"type":21,"tag":3183,"props":3270,"children":3271},{},[3272],{"type":31,"value":3273},"素因数分解、非構造化探索、量子シミュレーション",{"type":21,"tag":3158,"props":3275,"children":3276},{},[3277,3282,3287],{"type":21,"tag":3183,"props":3278,"children":3279},{},[3280],{"type":31,"value":3281},"今すぐ試せる場所",{"type":21,"tag":3183,"props":3283,"children":3284},{},[3285],{"type":31,"value":3286},"あらゆるデバイス",{"type":21,"tag":3183,"props":3288,"children":3289},{},[3290,3296,3298],{"type":21,"tag":26,"props":3291,"children":3293},{"href":3292},"\u002Fsimulators",[3294],{"type":31,"value":3295},"無料シミュレータ",{"type":31,"value":3297},"または",{"type":21,"tag":26,"props":3299,"children":3300},{"href":1100},[3301],{"type":31,"value":3302},"無料のクラウドQPUアクセス",{"type":21,"tag":41,"props":3304,"children":3306},{"id":3305},"アクセラレータという捉え方",[3307],{"type":31,"value":3305},{"type":21,"tag":22,"props":3309,"children":3310},{},[3311,3313,3319],{"type":31,"value":3312},"精査に耐える捉え方はこうです。QPUは、特定の限られた問題クラスに特化した専用アクセラレータとして機能します。ちょうどGPUが行列の乗算を高速化しつつも、プログラムの残りの部分を実行するCPUを置き換えることはないのと同じです。VQEやQAOAのような",{"type":21,"tag":26,"props":3314,"children":3316},{"href":3315},"\u002Fglossary\u002Fhybrid-algorithm",[3317],{"type":31,"value":3318},"ハイブリッドアルゴリズム",{"type":31,"value":3320},"は、まさにこれを体現しています。古典的な最適化器が外側のループを実行し、量子ハードウェアが得意とする特定の部分計算のためだけにQPUを呼び出すのです。データベースへの問い合わせや、ウェブサーバー、あるいはその土台となるオペレーティングシステムに量子ハードウェアを使おうと提案する人は誰もいません。",{"type":21,"tag":41,"props":3322,"children":3323},{"id":1108},[3324],{"type":31,"value":1108},{"type":21,"tag":1112,"props":3326,"children":3327},{},[3328,3339,3368],{"type":21,"tag":72,"props":3329,"children":3330},{},[3331,3337],{"type":21,"tag":26,"props":3332,"children":3334},{"href":3333},"\u002Fblog\u002Fgetting-started-free-quantum-computing",[3335],{"type":31,"value":3336},"無料で始める量子コンピューティング",{"type":31,"value":3338},": シミュレータや無料のQPUを選んで最初の回路を実行する",{"type":21,"tag":72,"props":3340,"children":3341},{},[3342,3346,3347,3351,3352,3356,3357,3361,3362],{"type":21,"tag":26,"props":3343,"children":3344},{"href":1142},[3345],{"type":31,"value":1145},{"type":31,"value":1147},{"type":21,"tag":26,"props":3348,"children":3349},{"href":3070},[3350],{"type":31,"value":3073},{"type":31,"value":1155},{"type":21,"tag":26,"props":3353,"children":3354},{"href":1150},[3355],{"type":31,"value":1153},{"type":31,"value":1155},{"type":21,"tag":26,"props":3358,"children":3359},{"href":2045},[3360],{"type":31,"value":2048},{"type":31,"value":1155},{"type":21,"tag":26,"props":3363,"children":3365},{"href":3364},"\u002Fglossary\u002Fquantum-supremacy",[3366],{"type":31,"value":3367},"量子超越性",{"type":21,"tag":72,"props":3369,"children":3370},{},[3371,3377],{"type":21,"tag":26,"props":3372,"children":3374},{"href":3373},"\u002Fblog\u002Fquantum-simulators-compared",[3375],{"type":31,"value":3376},"量子シミュレータの比較",{"type":31,"value":3378},": まずは古典的なハードウェア上で無料に量子回路を試す方法",{"title":7,"searchDepth":168,"depth":168,"links":3380},[3381,3382,3383,3384,3385,3386],{"id":3059,"depth":168,"text":3062},{"id":3091,"depth":168,"text":3094},{"id":3110,"depth":168,"text":3110},{"id":3146,"depth":168,"text":3146},{"id":3305,"depth":168,"text":3305},{"id":1108,"depth":168,"text":1108},"content:ja:blog:quantum-vs-classical-computing.md","ja\u002Fblog\u002Fquantum-vs-classical-computing.md","ja\u002Fblog\u002Fquantum-vs-classical-computing",{"_path":3391,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":3392,"description":3393,"date":3394,"author":11,"tags":3395,"readingTime":226,"body":3397,"_type":1187,"_id":3476,"_source":1189,"_file":3477,"_stem":3478,"_extension":1192},"\u002Fblog\u002Fcuba-qcol-open-quantum-platform","A One-Person Team in Cuba Built a Browser-Based Quantum Coding Platform","Franci Laffita Camargo's Quantum Computing Open Lab (QCOL) is a browser-based circuit composer and notebook environment meant to work across multiple quantum SDKs, built to remove the setup barrier this site's own getting-started guide already walks through by hand.","2026-08-11",[3041,3396],"Industry",{"type":18,"children":3398,"toc":3470},[3399,3404,3410,3415,3421,3433,3439,3459,3465],{"type":21,"tag":22,"props":3400,"children":3401},{},[3402],{"type":31,"value":3403},"Franci Laffita Camargo, working from Cuba, built the Quantum Computing Open Lab (QCOL), a browser-based platform meant to remove the setup friction of getting started with quantum programming: no local install, no picking one SDK and living with its own specific syntax. The project is now assembling an international development team and pursuing US incorporation. QCOL is a working prototype, not a concept pitch, though the underlying announcement provides no repository link or hardware benchmark to independently examine against.",{"type":21,"tag":41,"props":3405,"children":3407},{"id":3406},"whats-in-the-browser",[3408],{"type":31,"value":3409},"What's in the browser",{"type":21,"tag":22,"props":3411,"children":3412},{},[3413],{"type":31,"value":3414},"QCOL combines a visual, drag-and-drop circuit composer with a code editor updating in both directions: change the diagram, the code updates, and the reverse. Alongside this sits a \"Quantum Notebook,\" pairing instructional material with a live experimental environment, similar in spirit to a Jupyter notebook but purpose-built for quantum circuits. The platform aims to sit as a supplier-agnostic layer across multiple quantum programming frameworks rather than committing to one, plus simplified \"Quantum Apps\" aimed at people who aren't trying to learn circuit-level programming at all. The announcement names no specific frameworks or hardware backends QCOL currently supports.",{"type":21,"tag":41,"props":3416,"children":3418},{"id":3417},"the-challenge-qcol-targets",[3419],{"type":31,"value":3420},"The challenge QCOL targets",{"type":21,"tag":22,"props":3422,"children":3423},{},[3424,3426,3431],{"type":31,"value":3425},"Camargo's framing is direct: \"We don't know who will have the subsequent great idea, but we want that person, wherever they are, whatever resources they have, to be able to try.\" This is a specific complaint about the on-ramp, not the ceiling. Our own ",{"type":21,"tag":26,"props":3427,"children":3428},{"href":3333},[3429],{"type":31,"value":3430},"guide to getting started with free quantum computing",{"type":31,"value":3432}," already walks through what this friction looks like in practice: picking a platform, installing a Python environment, learning one SDK's particular API before writing a first circuit. QCOL's bet is this: collapsing setup into a single browser tab, with AI help for building algorithms, gets more people past this first hurdle, particularly people without reliable access to the hardware or bandwidth a typical quantum-dev setup assumes.",{"type":21,"tag":41,"props":3434,"children":3436},{"id":3435},"early-stage-worth-naming-honestly",[3437],{"type":31,"value":3438},"Early stage, worth naming honestly",{"type":21,"tag":22,"props":3440,"children":3441},{},[3442,3444,3450,3452,3457],{"type":31,"value":3443},"QCOL is participating in QWorld's QIntern 2026 program and describes \"a publicly accessible prototype,\" but the announcement includes no GitHub or GitLab link, no user count, and no comparison against existing browser-based tools like ",{"type":21,"tag":26,"props":3445,"children":3447},{"href":3446},"\u002Ftools",[3448],{"type":31,"value":3449},"IBM's Quantum Composer",{"type":31,"value":3451}," or other visual circuit editors already covered on this site's ",{"type":21,"tag":26,"props":3453,"children":3454},{"href":3446},[3455],{"type":31,"value":3456},"developer tools page",{"type":31,"value":3458},". This is an early-stage project profile, not a red flag on its own. A solo founder building toward an international team and formal incorporation is a normal trajectory, but trying the actual prototype matters more than taking the framing at face value.",{"type":21,"tag":41,"props":3460,"children":3462},{"id":3461},"what-to-watch-next",[3463],{"type":31,"value":3464},"What to watch next",{"type":21,"tag":22,"props":3466,"children":3467},{},[3468],{"type":31,"value":3469},"Whether QCOL publishes the prototype link publicly, names which SDKs and simulators the platform wraps, and whether the QWorld QIntern 2026 cohort produces a broader contributor base than the founding team. A vendor-agnostic browser tool solving real onboarding friction is a genuinely useful category, provided QCOL delivers. Right now QCOL is a described prototype with real intent behind the pitch, and not yet enough public detail to evaluate the technical claims directly.",{"title":7,"searchDepth":168,"depth":168,"links":3471},[3472,3473,3474,3475],{"id":3406,"depth":168,"text":3409},{"id":3417,"depth":168,"text":3420},{"id":3435,"depth":168,"text":3438},{"id":3461,"depth":168,"text":3464},"content:blog:cuba-qcol-open-quantum-platform.md","blog\u002Fcuba-qcol-open-quantum-platform.md","blog\u002Fcuba-qcol-open-quantum-platform",{"_path":3480,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":3481,"description":3482,"date":3394,"author":11,"tags":3483,"readingTime":226,"body":3485,"_type":1187,"_id":3556,"_source":1189,"_file":3557,"_stem":3558,"_extension":1192},"\u002Fblog\u002Fhonda-quemix-materials-investment","Honda Invests in Quemix, Extending a Year of Joint Quantum Chemistry Work","Honda invested in Quemix through its Xcelerator Ventures program, building on a partnership already producing joint work on quantum state readout and a DFT-acceleration algorithm, aimed at next-generation battery materials.",[3484,3396],"Chemistry",{"type":18,"children":3486,"toc":3550},[3487,3492,3498,3511,3517,3530,3536,3541,3545],{"type":21,"tag":22,"props":3488,"children":3489},{},[3490],{"type":31,"value":3491},"Honda invested in Quemix, a quantum algorithm and software company, through its Honda Xcelerator Ventures open-innovation program. The investment amount wasn't disclosed, and the deal doesn't start cold: the investment formalizes a technical relationship running for over a year.",{"type":21,"tag":41,"props":3493,"children":3495},{"id":3494},"what-the-two-companies-already-built-together",[3496],{"type":31,"value":3497},"What the two companies already built together",{"type":21,"tag":22,"props":3499,"children":3500},{},[3501,3503,3509],{"type":31,"value":3502},"Before this investment, Honda and Quemix had two concrete joint results. Early in 2025, they developed quantum state readout technology together. In June 2026, they built a quantum algorithm accelerating Density Functional Theory (DFT) calculations, the standard computational method for modeling how electrons behave in materials, and the method ",{"type":21,"tag":26,"props":3504,"children":3506},{"href":3505},"\u002Fblog\u002Fquantum-chemistry-protein-scale-2026",[3507],{"type":31,"value":3508},"quantum computing keeps getting proposed as a speedup for",{"type":31,"value":3510},". This sequence, readout technology first, then an application-specific algorithm, reads as a real technical collaboration building toward something rather than a one-off pilot press release.",{"type":21,"tag":41,"props":3512,"children":3514},{"id":3513},"the-target-batteries-in-service-of-a-2050-goal",[3515],{"type":31,"value":3516},"The target: batteries, in service of a 2050 goal",{"type":21,"tag":22,"props":3518,"children":3519},{},[3520,3522,3528],{"type":31,"value":3521},"Quemix's pitch combines quantum computing with AI for materials calculation, and Honda's stated target is next-generation battery materials. Honda Director and Executive Officer Mahito Shikama framed the investment against the company's carbon-neutrality goal: \"Honda will continue to take on the challenge of achieving carbon neutrality by 2050 through a multifaceted approach.\" Battery chemistry is a genuinely hard classical simulation problem, electron correlation effects in candidate materials are expensive to model exactly, which is the same reasoning behind ",{"type":21,"tag":26,"props":3523,"children":3525},{"href":3524},"\u002Fblog\u002Fquantinuum-bmw-multi-year-partnership",[3526],{"type":31,"value":3527},"BMW's multi-year electrochemistry work with Quantinuum",{"type":31,"value":3529}," on fuel cell catalysts. Automakers keep landing on quantum chemistry for materials work specifically because this is one of the few applications where the classical bottleneck is well understood and quantum methods have a real theoretical case behind them, not only a marketing one.",{"type":21,"tag":41,"props":3531,"children":3533},{"id":3532},"whats-confirmed-and-what-isnt",[3534],{"type":31,"value":3535},"What's confirmed and what isn't",{"type":21,"tag":22,"props":3537,"children":3538},{},[3539],{"type":31,"value":3540},"Confirmed: the investment happened, the deal is part of Xcelerator Ventures, and the deal follows two named prior technical results. Not disclosed: the investment amount, equity stake, or any new joint deliverable this specific funding is meant to produce. This last point matters. An investment announcement without a new named target reads as Honda backing a relationship already showing results, rather than funding a promise of future ones.",{"type":21,"tag":41,"props":3542,"children":3543},{"id":3461},[3544],{"type":31,"value":3464},{"type":21,"tag":22,"props":3546,"children":3547},{},[3548],{"type":31,"value":3549},"Whether this produces a third joint result beyond readout technology and the DFT-acceleration algorithm, and whether Honda names a specific battery material or chemistry the collaboration is now targeting. Two real technical outputs in a bit over a year is a reasonable track record for this kind of industry-academic quantum chemistry partnership. The subsequent one is what confirms the investment bought more of the same pace rather than a slowdown once the funding relationship formalized.",{"title":7,"searchDepth":168,"depth":168,"links":3551},[3552,3553,3554,3555],{"id":3494,"depth":168,"text":3497},{"id":3513,"depth":168,"text":3516},{"id":3532,"depth":168,"text":3535},{"id":3461,"depth":168,"text":3464},"content:blog:honda-quemix-materials-investment.md","blog\u002Fhonda-quemix-materials-investment.md","blog\u002Fhonda-quemix-materials-investment",{"_path":3560,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":3561,"description":3562,"date":3394,"author":11,"tags":3563,"readingTime":234,"body":3564,"_type":1187,"_id":3694,"_source":1189,"_file":3695,"_stem":3696,"_extension":1192},"\u002Fblog\u002Fquantinuum-oracle-cloud-infrastructure-partnership","Quantinuum Is Putting a Helios Quantum Computer Inside an Oracle Data Center","Quantinuum and Oracle signed a multi-year partnership to deploy a Helios quantum computer inside a US-based Oracle Cloud Infrastructure AI data center, giving OCI customers access to QPUs alongside the GPUs and classical HPC they already use.",[3396,1207],{"type":18,"children":3565,"toc":3686},[3566,3579,3585,3597,3603,3622,3628,3633,3639,3659,3665,3670,3674],{"type":21,"tag":22,"props":3567,"children":3568},{},[3569,3571,3577],{"type":31,"value":3570},"Quantinuum and Oracle signed a multi-year partnership to deploy a ",{"type":21,"tag":26,"props":3572,"children":3574},{"href":3573},"\u002Fblog\u002Fquantinuum-helios-logical-qubits-2026",[3575],{"type":31,"value":3576},"Helios",{"type":31,"value":3578}," quantum computer inside a US-based Oracle Cloud Infrastructure (OCI) AI data center, accessible to OCI customers as a cloud service once the quantum offering leaves preview. This is a physical hardware placement, not a software integration layer sitting on top of a remote system elsewhere.",{"type":21,"tag":41,"props":3580,"children":3582},{"id":3581},"whats-moving-where",[3583],{"type":31,"value":3584},"What's moving where",{"type":21,"tag":22,"props":3586,"children":3587},{},[3588,3590,3595],{"type":31,"value":3589},"Helios is Quantinuum's third-generation trapped-ion system: 98 physical qubits, 48 demonstrated logical qubits, and a two-qubit gate fidelity of 99.921%, the same system ",{"type":21,"tag":26,"props":3591,"children":3592},{"href":3573},[3593],{"type":31,"value":3594},"covered in detail here",{"type":31,"value":3596}," at launch. Installing Helios inside an OCI data center, rather than keeping the system at a Quantinuum facility and routing cloud traffic there, is the concrete part of this announcement: OCI customers get the QPU sitting in the same data center as the GPUs and classical HPC infrastructure they're already running workloads on, under one governance and access-control layer covering compute, networking, storage, and identity together.",{"type":21,"tag":41,"props":3598,"children":3600},{"id":3599},"why-proximity-matters-for-hybrid-workloads",[3601],{"type":31,"value":3602},"Why proximity matters for hybrid workloads",{"type":21,"tag":22,"props":3604,"children":3605},{},[3606,3608,3614,3616,3620],{"type":31,"value":3607},"Most practical near-term quantum applications are hybrid: a classical optimizer or neural network drives a loop calling out to a QPU repeatedly, the same pattern behind ",{"type":21,"tag":26,"props":3609,"children":3611},{"href":3610},"\u002Fblog\u002Fvqe-pennylane-practical-guide",[3612],{"type":31,"value":3613},"VQE",{"type":31,"value":3615}," and ",{"type":21,"tag":26,"props":3617,"children":3618},{"href":1244},[3619],{"type":31,"value":2041},{"type":31,"value":3621},". Every round trip between classical and quantum hardware costs latency, and this cost compounds when the QPU sits behind a different cloud provider's network entirely. Quantinuum CEO Dr. Rajeeb Hazra framed the deployment around exactly this: \"Deploying Helios inside OCI gives Quantinuum and Oracle an opportunity to create a unique deeply integrated environment.\" Oracle EVP Mahesh Thiagarajan's framing was narrower and more practical: \"we want to give developers a pragmatic and secure way to explore quantum computing,\" positioning this as lowering the barrier to trying quantum hardware at all, not only optimizing latency for teams already committed to the platform.",{"type":21,"tag":41,"props":3623,"children":3625},{"id":3624},"the-power-figure-worth-noting",[3626],{"type":31,"value":3627},"The power figure worth noting",{"type":21,"tag":22,"props":3629,"children":3630},{},[3631],{"type":31,"value":3632},"Quantinuum's own figures put Helios at roughly 60 kW of power draw, against the 16 to 39 MW leading supercomputers consume, well under 1%. This is a real, checkable contrast, and the gap matters specifically for a data-center deployment: a QPU fitting an AI data center's existing power and cooling budget is a much easier operational sell than hardware needing dedicated infrastructure built around the machine.",{"type":21,"tag":41,"props":3634,"children":3636},{"id":3635},"who-this-is-aimed-at",[3637],{"type":31,"value":3638},"Who this is aimed at",{"type":21,"tag":22,"props":3640,"children":3641},{},[3642,3644,3650,3651,3657],{"type":31,"value":3643},"The named target list, enterprise organizations, academic and research institutions, and AI labs, plus named use cases (drug discovery, materials science, financial modeling, large-scale optimization) reads as standard quantum-cloud positioning rather than anything specific to this deal. What's specific is the access path: OCI customers reach Quantinuum hardware through infrastructure and billing relationships they already have, the same competitive logic behind ",{"type":21,"tag":26,"props":3645,"children":3647},{"href":3646},"\u002Fblog\u002Fazure-quantum-qiskit-practical-guide",[3648],{"type":31,"value":3649},"Azure Quantum's multi-vendor access model",{"type":31,"value":3615},{"type":21,"tag":26,"props":3652,"children":3654},{"href":3653},"\u002Fblog\u002Fcommon-braket-errors-and-fixes",[3655],{"type":31,"value":3656},"Amazon Braket",{"type":31,"value":3658},", rather than needing a separate Quantinuum account and a new vendor relationship.",{"type":21,"tag":41,"props":3660,"children":3662},{"id":3661},"whats-confirmed-and-whats-still-ahead",[3663],{"type":31,"value":3664},"What's confirmed and what's still ahead",{"type":21,"tag":22,"props":3666,"children":3667},{},[3668],{"type":31,"value":3669},"Confirmed: the multi-year partnership, the Helios hardware choice, and the US-based data center placement. Not yet confirmed: a specific launch date for the OCI quantum service, currently described only as \"coming months,\" and pricing. This adds Oracle to the list of major cloud providers offering some path to quantum hardware access, alongside Azure, AWS, and Google Cloud, each with different vendor relationships and access models.",{"type":21,"tag":41,"props":3671,"children":3672},{"id":3461},[3673],{"type":31,"value":3464},{"type":21,"tag":22,"props":3675,"children":3676},{},[3677,3679,3684],{"type":31,"value":3678},"The OCI quantum service leaving preview is the concrete milestone to check for next, along with whether Oracle publishes pricing genuinely comparable to Quantinuum's own ",{"type":21,"tag":26,"props":3680,"children":3681},{"href":1100},[3682],{"type":31,"value":3683},"direct cloud access",{"type":31,"value":3685}," or priced as an enterprise-tier OCI add-on. A data-center-proximate QPU is a meaningfully different offering than a remote API call to the same hardware, and whether Oracle prices the service accordingly will say a lot about who this deployment is built for.",{"title":7,"searchDepth":168,"depth":168,"links":3687},[3688,3689,3690,3691,3692,3693],{"id":3581,"depth":168,"text":3584},{"id":3599,"depth":168,"text":3602},{"id":3624,"depth":168,"text":3627},{"id":3635,"depth":168,"text":3638},{"id":3661,"depth":168,"text":3664},{"id":3461,"depth":168,"text":3464},"content:blog:quantinuum-oracle-cloud-infrastructure-partnership.md","blog\u002Fquantinuum-oracle-cloud-infrastructure-partnership.md","blog\u002Fquantinuum-oracle-cloud-infrastructure-partnership",{"_path":3698,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":3699,"description":3700,"date":3394,"author":11,"tags":3701,"readingTime":200,"body":3703,"_type":1187,"_id":3780,"_source":1189,"_file":3781,"_stem":3782,"_extension":1192},"\u002Fblog\u002Fquantinuum-q2-2026-earnings","Quantinuum's First Earnings Report as a Public Company: Q2 2026","Quantinuum reported Q2 2026 revenue of $8 million, up 279% year-over-year, with $2.1 billion in cash and first-ever formal guidance of $28-32 million for full-year 2026, in its debut quarterly report since going public.",[3702,3396],"Company News",{"type":18,"children":3704,"toc":3774},[3705,3718,3724,3729,3735,3740,3746,3765,3769],{"type":21,"tag":22,"props":3706,"children":3707},{},[3708,3710,3716],{"type":31,"value":3709},"Quantinuum reported Q2 2026 revenue of $8 million, up 279% year-over-year from $2 million in Q2 2025, in its first quarterly report since ",{"type":21,"tag":26,"props":3711,"children":3713},{"href":3712},"\u002Fblog\u002Ftop-quantum-computing-companies-2026",[3714],{"type":31,"value":3715},"going public earlier in 2026",{"type":31,"value":3717},". The company issued its first formal full-year guidance as a public company: $28 million to $32 million in revenue for 2026.",{"type":21,"tag":41,"props":3719,"children":3721},{"id":3720},"the-numbers",[3722],{"type":31,"value":3723},"The numbers",{"type":21,"tag":22,"props":3725,"children":3726},{},[3727],{"type":31,"value":3728},"Cash and short-term investments stood at $2.1 billion as of June 30, 2026. GAAP net loss for the quarter was $597 million, driven largely by R&D spending of $367.3 million, alongside $151.9 million in general and administrative expenses and $29.3 million in sales and marketing. Adjusted EBITDA loss came in at $68 million, a narrower figure stripping out the non-cash and one-time items behind the much larger GAAP number, and the more relevant figure for judging underlying operating trend.",{"type":21,"tag":41,"props":3730,"children":3732},{"id":3731},"why-the-gaap-loss-looks-so-large",[3733],{"type":31,"value":3734},"Why the GAAP loss looks so large",{"type":21,"tag":22,"props":3736,"children":3737},{},[3738],{"type":31,"value":3739},"A $597 million GAAP net loss against $8 million in quarterly revenue is a real number, not a typo, but reading this as \"Quantinuum burned $597 million in cash this quarter\" would be wrong. Newly public companies routinely post large GAAP losses in the quarters around an IPO from non-cash items like stock-based compensation and equity-award revaluations tied to the listing itself, which is exactly why the $68 million adjusted EBITDA loss figure exists alongside the GAAP number. The $2.1 billion cash position is the figure showing whether the company keeps operating at this spending level, not the GAAP loss line.",{"type":21,"tag":41,"props":3741,"children":3743},{"id":3742},"what-else-came-with-the-report",[3744],{"type":31,"value":3745},"What else came with the report",{"type":21,"tag":22,"props":3747,"children":3748},{},[3749,3751,3756,3758,3763],{"type":31,"value":3750},"Quantinuum said the company demonstrated \"near five-nines logical fidelity\" on Helios using a novel error-correcting code family, a claim worth tracking for independent confirmation the same way ",{"type":21,"tag":26,"props":3752,"children":3753},{"href":3573},[3754],{"type":31,"value":3755},"Helios's original 48-logical-qubit result",{"type":31,"value":3757}," was vendor-reported before scrutiny. The earnings release also carried the ",{"type":21,"tag":26,"props":3759,"children":3760},{"href":3560},[3761],{"type":31,"value":3762},"Oracle Cloud Infrastructure partnership",{"type":31,"value":3764}," announced the same day, plus a framework collaboration with HPE on quantum-HPC-AI integration and a joint development agreement with an unnamed electronics manufacturer on manufacturing infrastructure. CEO Rajeeb Hazra described \"accelerating commercial momentum for the business,\" pointing to the \"over $2 billion in cash\" as room to keep investing \"while maintaining disciplined capital allocation.\"",{"type":21,"tag":41,"props":3766,"children":3767},{"id":3461},[3768],{"type":31,"value":3464},{"type":21,"tag":22,"props":3770,"children":3771},{},[3772],{"type":31,"value":3773},"Whether Quantinuum's next quarterly report shows revenue tracking toward the low or high end of the $28-32 million full-year guidance range, and whether the adjusted EBITDA loss narrows or widens as R&D spending continues at this pace. The 279% year-over-year growth rate is real, but this is also growth off a minor base, the same caution worth applying to any early-stage hardware company's first few public quarterly comparisons.",{"title":7,"searchDepth":168,"depth":168,"links":3775},[3776,3777,3778,3779],{"id":3720,"depth":168,"text":3723},{"id":3731,"depth":168,"text":3734},{"id":3742,"depth":168,"text":3745},{"id":3461,"depth":168,"text":3464},"content:blog:quantinuum-q2-2026-earnings.md","blog\u002Fquantinuum-q2-2026-earnings.md","blog\u002Fquantinuum-q2-2026-earnings",{"_path":3784,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":3785,"description":3786,"date":3394,"author":11,"tags":3787,"readingTime":200,"body":3788,"_type":1187,"_id":3841,"_source":1189,"_file":3842,"_stem":3843,"_extension":1192},"\u002Fblog\u002Fquantum-computing-inc-q2-2026-earnings","Quantum Computing Inc. Q2 2026: Revenue Up 50% Sequentially, $73.1M NHanced Acquisition","QCi reported Q2 2026 revenue of $5.55 million, up 50.4% sequentially, with $954 million in cash and short-term investments and a $73.1 million acquisition of NHanced Semiconductors to build a second fabrication facility.",[3702,3396],{"type":18,"children":3789,"toc":3835},[3790,3795,3799,3804,3810,3815,3821,3826,3830],{"type":21,"tag":22,"props":3791,"children":3792},{},[3793],{"type":31,"value":3794},"Quantum Computing Inc. (QUBT) reported Q2 2026 revenue of $5.55 million, up 50.4% sequentially from Q1 and up 8,998.4% year-over-year. Cash and short-term investments stood at $954.17 million, with total capital reserves including long-term investments at $1.32 billion.",{"type":21,"tag":41,"props":3796,"children":3797},{"id":3720},[3798],{"type":31,"value":3723},{"type":21,"tag":22,"props":3800,"children":3801},{},[3802],{"type":31,"value":3803},"Operating expenses rose to $21.85 million, up 114% year-over-year. Net loss was $11.75 million, an improvement from a $36.48 million loss in the same quarter last year. Contract backlog stands at $42.5 million. QCi has completed three acquisitions in 2026, deploying roughly $180 million in the process.",{"type":21,"tag":41,"props":3805,"children":3807},{"id":3806},"the-nhanced-acquisition",[3808],{"type":31,"value":3809},"The NHanced acquisition",{"type":21,"tag":22,"props":3811,"children":3812},{},[3813],{"type":31,"value":3814},"QCi acquired NHanced Semiconductors for $73.1 million. NHanced provides 3D semiconductor packaging and nanophotonic integration capabilities, and QCi is folding the acquisition in specifically to accelerate the launch of a second fabrication facility, Fab 2. This complements the firm's existing Arizona-based Fab 1, which focuses on thin-film lithium niobate chip production. Together, QCi describes the combination as building \"full-stack, U.S.-based quantum photonics foundry infrastructure,\" supplier language worth reading as a statement of intent rather than a claim about current manufacturing scale.",{"type":21,"tag":41,"props":3816,"children":3818},{"id":3817},"reading-the-numbers-plainly",[3819],{"type":31,"value":3820},"Reading the numbers plainly",{"type":21,"tag":22,"props":3822,"children":3823},{},[3824],{"type":31,"value":3825},"Revenue growing 50% quarter over quarter and a shrinking net loss are real, positive directional signals. The year-over-year revenue figure (nearly 9,000%) reflects growth off a tiny prior-year base, the kind of percentage looking dramatic mostly because the starting figure was small, not evidence of a firm suddenly operating at a different scale. The cash position, over $950 million against a $73 million acquisition and roughly $180 million deployed across three 2026 acquisitions, gives QCi real runway to keep building fabrication capacity without an immediate funding need, a factor mattering more for a hardware-manufacturing bet like this than a single quarter's revenue figure.",{"type":21,"tag":41,"props":3827,"children":3828},{"id":3461},[3829],{"type":31,"value":3464},{"type":21,"tag":22,"props":3831,"children":3832},{},[3833],{"type":31,"value":3834},"Whether Fab 2 reaches operational status on a stated timeline, and whether QCi's next quarterly filing shows contract backlog converting into recognized revenue at a pace keeping up with the operating expense growth.",{"title":7,"searchDepth":168,"depth":168,"links":3836},[3837,3838,3839,3840],{"id":3720,"depth":168,"text":3723},{"id":3806,"depth":168,"text":3809},{"id":3817,"depth":168,"text":3820},{"id":3461,"depth":168,"text":3464},"content:blog:quantum-computing-inc-q2-2026-earnings.md","blog\u002Fquantum-computing-inc-q2-2026-earnings.md","blog\u002Fquantum-computing-inc-q2-2026-earnings",{"_path":3845,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":3846,"description":3847,"date":3394,"author":11,"tags":3848,"readingTime":234,"body":3852,"_type":1187,"_id":3922,"_source":1189,"_file":3923,"_stem":3924,"_extension":1192},"\u002Fblog\u002Fqusecure-carahsoft-gsa-schedule","QuSecure Makes Post-Quantum Crypto Easier for Federal Agencies to Buy","QuSecure added its QuProtect R3 post-quantum cryptography platform to Carahsoft's GSA Schedule, removing a real procurement barrier for federal agencies facing December 2030 and 2031 migration deadlines under Executive Order 14412.",[3849,3850,3851],"Post-Quantum","Security","Cryptography",{"type":18,"children":3853,"toc":3916},[3854,3859,3865,3870,3876,3889,3895,3900,3904],{"type":21,"tag":22,"props":3855,"children":3856},{},[3857],{"type":31,"value":3858},"QuSecure added its QuProtect R3 platform to Carahsoft's GSA Schedule (No. 47QSWA18D008F), alongside SEWP V, ITES-SW2, NASPO ValuePoint, and OMNIA Partners contract vehicles. This is a procurement story, not a technology announcement, and procurement is exactly the kind of unglamorous step deciding whether a post-quantum cryptography mandate gets implemented on schedule or stalls in federal purchasing paperwork.",{"type":21,"tag":41,"props":3860,"children":3862},{"id":3861},"what-quprotect-r3-does",[3863],{"type":31,"value":3864},"What QuProtect R3 does",{"type":21,"tag":22,"props":3866,"children":3867},{},[3868],{"type":31,"value":3869},"The platform has three integrated pieces. A \"recon module\" performs cryptographic discovery, maintaining a live inventory of what encryption is running across an agency's cloud, on-premises, and legacy systems, a real prerequisite most PQC discussions skip past: upgrading cryptography an agency hasn't inventoried isn't possible. Active remediation then lets agencies upgrade to quantum-resistant algorithms in place, without downtime, code changes, or ripping out existing infrastructure. Real-time reporting generates compliance outputs automatically, including Cryptographic Bills of Materials aligned to federal standards, the kind of audit trail an agency needs to demonstrate migration progress rather than only claim progress.",{"type":21,"tag":41,"props":3871,"children":3873},{"id":3872},"why-a-gsa-schedule-listing-is-the-actual-news",[3874],{"type":31,"value":3875},"Why a GSA Schedule listing is the actual news",{"type":21,"tag":22,"props":3877,"children":3878},{},[3879,3881,3887],{"type":31,"value":3880},"Federal agencies generally aren't able to buy software directly from a vendor. They buy through pre-negotiated contract vehicles already cleared through legal, security, and pricing review, and getting listed on one is a slow, deliberate process, not a rubber stamp. QuSecure SVP Garfield Jones put the practical effect plainly: the listing gives agencies \"a faster path to deploy QuProtect R3 through a vehicle they already know and trust.\" Our ",{"type":21,"tag":26,"props":3882,"children":3884},{"href":3883},"\u002Fblog\u002Fpost-quantum-cryptography-guide",[3885],{"type":31,"value":3886},"post-quantum cryptography guide",{"type":31,"value":3888}," covers the migration timeline federal agencies are working against. This is what clearing one of the practical obstacles on this timeline looks like, not another restatement of the deadline itself.",{"type":21,"tag":41,"props":3890,"children":3892},{"id":3891},"the-deadlines-this-is-racing",[3893],{"type":31,"value":3894},"The deadlines this is racing",{"type":21,"tag":22,"props":3896,"children":3897},{},[3898],{"type":31,"value":3899},"Federal guidance under Executive Order 14412 sets December 31, 2030, for key-establishment upgrades and December 31, 2031, for digital-signature upgrades on high-value federal systems. These dates are now close enough for procurement friction, not only technical readiness, to pose a real risk to hitting them. A platform ready technically but stuck outside an approved contract vehicle doesn't help an agency restricted to buying through one.",{"type":21,"tag":41,"props":3901,"children":3902},{"id":3461},[3903],{"type":31,"value":3464},{"type":21,"tag":22,"props":3905,"children":3906},{},[3907,3909,3914],{"type":31,"value":3908},"Whether other PQC vendors follow with their own GSA Schedule or SEWP-style listings, since procurement access is quickly becoming as material to real-world PQC adoption speed as the cryptography itself. Worth checking back against the ",{"type":21,"tag":26,"props":3910,"children":3911},{"href":3883},[3912],{"type":31,"value":3913},"migration timeline breakdown",{"type":31,"value":3915}," as 2030 gets closer, specifically whether agencies report real deployments through vehicles like this one rather than only stated migration intent.",{"title":7,"searchDepth":168,"depth":168,"links":3917},[3918,3919,3920,3921],{"id":3861,"depth":168,"text":3864},{"id":3872,"depth":168,"text":3875},{"id":3891,"depth":168,"text":3894},{"id":3461,"depth":168,"text":3464},"content:blog:qusecure-carahsoft-gsa-schedule.md","blog\u002Fqusecure-carahsoft-gsa-schedule.md","blog\u002Fqusecure-carahsoft-gsa-schedule",{"_path":3926,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":3927,"description":3928,"date":3929,"author":11,"tags":3930,"readingTime":234,"body":3931,"_type":1187,"_id":4027,"_source":1189,"_file":4028,"_stem":4029,"_extension":1192},"\u002Fblog\u002Fcloudflare-fedramp-high-quantum-safe","Cloudflare's Government Platform Cleared the Bar for Handling Classified-Adjacent Data","Cloudflare for Government achieved FedRAMP High authorization, the tier for data where a breach carries severe or catastrophic consequences, with post-quantum cryptography protecting data in transit across the platform's US-based infrastructure.","2026-08-10",[3850,3849,3851],{"type":18,"children":3932,"toc":4020},[3933,3938,3944,3949,3955,3982,3988,3993,3999,4011,4015],{"type":21,"tag":22,"props":3934,"children":3935},{},[3936],{"type":31,"value":3937},"Cloudflare for Government achieved FedRAMP High authorization alongside GovRAMP Moderate authorization, clearing federal agencies to use the platform for data where a breach carries \"severe or catastrophic\" consequences, the government's own top risk tier below classified systems. The platform processes that data within US boundaries across 15 metro areas, and Cloudflare has already confirmed it intends to pursue Department of Defense Impact Level 4 (IL4) authorization next.",{"type":21,"tag":41,"props":3939,"children":3941},{"id":3940},"what-fedramp-high-gates",[3942],{"type":31,"value":3943},"What FedRAMP High gates",{"type":21,"tag":22,"props":3945,"children":3946},{},[3947],{"type":31,"value":3948},"FedRAMP authorization comes in tiers (Low, Moderate, High) that determine what category of federal data a cloud service is cleared to handle, and High is the tier reserved for the most sensitive unclassified data: financial systems, critical infrastructure, and national security-adjacent information. Getting there isn't a marketing assertion a company self-certifies. It requires an independent, government-recognized assessment against a specific control baseline, which is why a High authorization is a meaningfully different milestone than a company simply stating its platform is \"secure.\"",{"type":21,"tag":41,"props":3950,"children":3952},{"id":3951},"the-post-quantum-piece-specifically",[3953],{"type":31,"value":3954},"The post-quantum piece specifically",{"type":21,"tag":22,"props":3956,"children":3957},{},[3958,3960,3965,3967,3973,3975,3980],{"type":31,"value":3959},"Cloudflare's authorized platform includes ",{"type":21,"tag":26,"props":3961,"children":3962},{"href":3883},[3963],{"type":31,"value":3964},"post-quantum cryptography",{"type":31,"value":3966}," protecting data in transit, consistent with Cloudflare's existing production support for ",{"type":21,"tag":104,"props":3968,"children":3970},{"className":3969},[],[3971],{"type":31,"value":3972},"X25519Kyber768",{"type":31,"value":3974}," hybrid key exchange, already covered in ",{"type":21,"tag":26,"props":3976,"children":3977},{"href":3883},[3978],{"type":31,"value":3979},"this site's PQC migration guide",{"type":31,"value":3981},". What FedRAMP High adds isn't new cryptography. It's a government-recognized authorization that the platform carrying that cryptography meets the control requirements needed for the most sensitive class of federal data, at a scale where a real number of agencies already depend on the underlying service.",{"type":21,"tag":41,"props":3983,"children":3985},{"id":3984},"the-customer-base-is-already-large",[3986],{"type":31,"value":3987},"The customer base is already large",{"type":21,"tag":22,"props":3989,"children":3990},{},[3991],{"type":31,"value":3992},"Cloudflare reports that over 100 US government agencies currently use its services, naming the Departments of Commerce, Energy, Health and Human Services, Homeland Security, Interior, Justice, and State specifically, plus partner cloud platforms (Workday, New Relic, Armis Federal, Darktrace Federal, GitLab) that rely on Cloudflare for Government underneath their own federal offerings. FedRAMP High authorization means that existing, already-large customer base is now able to move more sensitive workloads onto the platform than the previous authorization tier allowed, not that this creates a customer relationship from scratch.",{"type":21,"tag":41,"props":3994,"children":3996},{"id":3995},"why-this-matters-beyond-one-companys-compliance-milestone",[3997],{"type":31,"value":3998},"Why this matters beyond one company's compliance milestone",{"type":21,"tag":22,"props":4000,"children":4001},{},[4002,4004,4009],{"type":31,"value":4003},"Entry-quantum migration in government has mostly been discussed in terms of mandates and timelines, covered in our ",{"type":21,"tag":26,"props":4005,"children":4006},{"href":3883},[4007],{"type":31,"value":4008},"PQC guide's own migration-timeline breakdown",{"type":31,"value":4010},". A FedRAMP High authorization for a platform that already carries hybrid post-quantum key exchange in production is a concrete instance of what \"meeting the mandate\" looks like operationally for a specific vendor, at a particular compliance tier, rather than another entry in the list of organizations that have merely announced intent to migrate.",{"type":21,"tag":41,"props":4012,"children":4013},{"id":3461},[4014],{"type":31,"value":3464},{"type":21,"tag":22,"props":4016,"children":4017},{},[4018],{"type":31,"value":4019},"The Department of Defense IL4 authorization Cloudflare says it's pursuing subsequent is the number worth tracking, since IL4 covers a further step up in data sensitivity than FedRAMP High and would extend the same post-quantum-protected infrastructure into defense-certain workloads rather than general federal civilian agencies.",{"title":7,"searchDepth":168,"depth":168,"links":4021},[4022,4023,4024,4025,4026],{"id":3940,"depth":168,"text":3943},{"id":3951,"depth":168,"text":3954},{"id":3984,"depth":168,"text":3987},{"id":3995,"depth":168,"text":3998},{"id":3461,"depth":168,"text":3464},"content:blog:cloudflare-fedramp-high-quantum-safe.md","blog\u002Fcloudflare-fedramp-high-quantum-safe.md","blog\u002Fcloudflare-fedramp-high-quantum-safe",{"_path":4031,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":4032,"description":4033,"date":3929,"author":11,"tags":4034,"readingTime":234,"body":4035,"_type":1187,"_id":4115,"_source":1189,"_file":4116,"_stem":4117,"_extension":1192},"\u002Fblog\u002Fpasqal-photonic-chip-optical-tweezers","Pasqal Moved Its Optical Tweezers Onto a Photonic Chip","Pasqal trapped four rubidium atoms using laser light generated entirely by a photonic integrated circuit, shrinking the optical bench that normally controls neutral-atom qubits by up to 50 times, with atom lifetimes matching existing bulk-optics systems.",[1207,3396],{"type":18,"children":4036,"toc":4108},[4037,4042,4048,4058,4064,4069,4075,4088,4094,4099,4103],{"type":21,"tag":22,"props":4038,"children":4039},{},[4040],{"type":31,"value":4041},"Pasqal demonstrated trapping individual atoms using laser light generated entirely by a photonic integrated circuit (PIC) rather than a free-space optical bench, a result the company describes as a first for neutral-atom quantum computing. The chip generated four optical traps and held four rubidium atoms, with atom lifetimes around 27.5 seconds, matching what existing bulk-optics setups achieve.",{"type":21,"tag":41,"props":4043,"children":4045},{"id":4044},"what-moved-onto-the-chip",[4046],{"type":31,"value":4047},"What moved onto the chip",{"type":21,"tag":22,"props":4049,"children":4050},{},[4051,4056],{"type":21,"tag":26,"props":4052,"children":4053},{"href":3051},[4054],{"type":31,"value":4055},"Neutral-atom",{"type":31,"value":4057}," quantum computers trap individual atoms using tightly focused laser beams, optical tweezers, that today are generated by tables of lenses, mirrors, and modulators occupying real lab space. Pasqal's result replaces that free-space optical setup, at least for the trap-generation step, with a photonic integrated circuit: a chip that routes and shapes the laser light on-die instead of across a bench. The company reports this shrinks the optical footprint by as much as 50 times, a real infrastructure assertion rather than a qubit-count or fidelity claim, and it's infrastructure that matters directly for how many atoms a system fits in a given amount of lab or data center space.",{"type":21,"tag":41,"props":4059,"children":4061},{"id":4060},"built-on-an-18-month-old-acquisition",[4062],{"type":31,"value":4063},"Built on an 18-month-old acquisition",{"type":21,"tag":22,"props":4065,"children":4066},{},[4067],{"type":31,"value":4068},"The chip was co-developed with Aeponyx, a silicon-nitride photonics specialist Pasqal acquired roughly 18 months before this result. That timeline is worth noting on its own: taking an acquired photonics team from acquisition to a working four-atom demonstration in a year and a half is a real execution data point, separate from whether the underlying approach scales.",{"type":21,"tag":41,"props":4070,"children":4072},{"id":4071},"four-atoms-is-a-proof-of-mechanism-not-a-system",[4073],{"type":31,"value":4074},"Four atoms is a proof of mechanism, not a system",{"type":21,"tag":22,"props":4076,"children":4077},{},[4078,4080,4086],{"type":31,"value":4079},"Four trapped atoms is nowhere near Pasqal's own stated roadmap, ",{"type":21,"tag":26,"props":4081,"children":4083},{"href":4082},"\u002Fblog\u002Flogical-qubits-fault-tolerance-explained",[4084],{"type":31,"value":4085},"more than 10,000 atoms and 100 logical qubits",{"type":31,"value":4087}," for a fault-tolerant processor. What this outcome establishes is that the mechanism, generating usable optical traps from an integrated photonic chip instead of bulk optics, works at all, with atom lifetimes that don't degrade relative to the free-space approach. That's the necessary first checkpoint before the real question, whether the approach scales to thousands of traps on a single chip, becomes answerable.",{"type":21,"tag":41,"props":4089,"children":4091},{"id":4090},"why-the-footprint-claim-matters-more-than-it-sounds",[4092],{"type":31,"value":4093},"Why the footprint claim matters more than it sounds",{"type":21,"tag":22,"props":4095,"children":4096},{},[4097],{"type":31,"value":4098},"A smaller optical footprint isn't only a lab-space convenience. Every additional atom a neutral-atom system controls needs its own trap-generation and addressing optics, and if that optics scales with a bulky free-space bench per functional unit, the physical size of the system becomes a real ceiling on how many atoms fit into a practical footprint, separate from any qubit-count or coherence limit. Moving trap generation onto a chip is a bet that the same integration playbook silicon photonics has used elsewhere (routing light through waveguides instead of open space) applies to the specific, precision-sensitive job of generating stable atom traps, and this result is the first concrete evidence that bet produces atoms behaving the same as the bulk-optics baseline.",{"type":21,"tag":41,"props":4100,"children":4101},{"id":3461},[4102],{"type":31,"value":3464},{"type":21,"tag":22,"props":4104,"children":4105},{},[4106],{"type":31,"value":4107},"The number worth tracking isn't four. It's how many optical traps Pasqal (or Aeponyx's technology inside Pasqal) generates from a single chip next, and whether atom lifetime and trap stability hold up as that count grows. A jump from four to a few dozen traps on one chip, with lifetimes still matching bulk optics, would be the real signal this approach scales rather than working only as a small-scale demonstration.",{"title":7,"searchDepth":168,"depth":168,"links":4109},[4110,4111,4112,4113,4114],{"id":4044,"depth":168,"text":4047},{"id":4060,"depth":168,"text":4063},{"id":4071,"depth":168,"text":4074},{"id":4090,"depth":168,"text":4093},{"id":3461,"depth":168,"text":3464},"content:blog:pasqal-photonic-chip-optical-tweezers.md","blog\u002Fpasqal-photonic-chip-optical-tweezers.md","blog\u002Fpasqal-photonic-chip-optical-tweezers",{"_path":4119,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":4120,"description":4121,"date":3929,"author":11,"tags":4122,"readingTime":234,"body":4123,"_type":1187,"_id":4205,"_source":1189,"_file":4206,"_stem":4207,"_extension":1192},"\u002Fblog\u002Fquantum-optics-jena-elvis-qkd-certification","A QKD System Passed the Security Audit That Matters More Than the Physics","Quantum Optics Jena's ELVIS quantum key distribution system completed the first ISO\u002FIEC 23837 hardware security evaluation, a three-month independent audit by TUVIT that found no major vulnerabilities in the physical implementation.",[3850,3849,3851],{"type":18,"children":4124,"toc":4198},[4125,4130,4136,4149,4155,4160,4166,4178,4184,4189,4193],{"type":21,"tag":22,"props":4126,"children":4127},{},[4128],{"type":31,"value":4129},"Quantum Optics Jena's ELVIS quantum key distribution (QKD) system completed the first evaluation under ISO\u002FIEC 23837, an international standard for independently auditing the physical security of QKD hardware, with the three-month assessment by TUV Informationstechnik GmbH (TUVIT) finding no major vulnerabilities or exploitable side-channel weaknesses.",{"type":21,"tag":41,"props":4131,"children":4133},{"id":4132},"why-this-is-a-different-kind-of-security-claim-than-quantum-safe",[4134],{"type":31,"value":4135},"Why this is a different kind of security claim than \"quantum-safe\"",{"type":21,"tag":22,"props":4137,"children":4138},{},[4139,4141,4147],{"type":31,"value":4140},"Most QKD marketing leans on the underlying physics: the ",{"type":21,"tag":26,"props":4142,"children":4144},{"href":4143},"\u002Fglossary\u002Fdecoherence",[4145],{"type":31,"value":4146},"no-cloning theorem",{"type":31,"value":4148}," and the fact that eavesdropping on a quantum channel introduces detectable disturbance. That's a real mathematical guarantee, but it says nothing about whether a specific piece of hardware implementing QKD has exploitable flaws in its actual, physical components, lasers that leak information through timing patterns, detectors with side channels, or implementation shortcuts that undermine the theoretical security model. ISO\u002FIEC 23837 exists specifically to evaluate that gap: not whether quantum key distribution works as physics, but whether a given box built to do it holds up against real-world side-channel attacks.",{"type":21,"tag":41,"props":4150,"children":4152},{"id":4151},"what-tuvit-tested",[4153],{"type":31,"value":4154},"What TUVIT tested",{"type":21,"tag":22,"props":4156,"children":4157},{},[4158],{"type":31,"value":4159},"The audit ran six targeted security assessments over three months, simulating real-world side-channel attacks against physical components like lasers and detectors, the parts of a QKD system where a security flaw would live if one existed. The methodology came out of QuNET+BlueCert, a German federal research initiative built specifically to develop rigorous evaluation methods for quantum communications hardware. Finding no major vulnerabilities is a real result, not a marketing tagline, precisely because the evaluation was designed by a government-linked research effort with the explicit goal of finding problems if they existed.",{"type":21,"tag":41,"props":4161,"children":4163},{"id":4162},"why-an-independent-third-party-matters-here",[4164],{"type":31,"value":4165},"Why an independent third party matters here",{"type":21,"tag":22,"props":4167,"children":4168},{},[4169,4171,4176],{"type":31,"value":4170},"TUVIT isn't Quantum Optics Jena testing its own hardware and reporting the results. It's an independent cybersecurity assessment firm running government-developed methodology against a vendor's product, the same relationship structure that gives FedRAMP authorizations (like ",{"type":21,"tag":26,"props":4172,"children":4173},{"href":3926},[4174],{"type":31,"value":4175},"Cloudflare's recent FedRAMP High milestone",{"type":31,"value":4177},") their weight over a vendor's own security claims. QKD as a field has had a real credibility problem with exactly this gap: strong theoretical security proofs paired with commercial hardware that hadn't been independently stress-tested against implementation-level attacks. This evaluation is a concrete step toward closing that gap for one specific product.",{"type":21,"tag":41,"props":4179,"children":4181},{"id":4180},"what-elvis-is-for",[4182],{"type":31,"value":4183},"What ELVIS is for",{"type":21,"tag":22,"props":4185,"children":4186},{},[4187],{"type":31,"value":4188},"ELVIS is an entanglement-based QKD system built for telecommunications, energy grids, financial networks, and defense institutions, the same class of critical infrastructure customer that shows up across most serious QKD deployments. Quantum Optics Jena positions the ISO\u002FIEC 23837 certification as a template other QKD vendors and evaluators follow, a \"practical framework for certifying quantum communications hardware for commercial and government deployments\" in CEO Kevin Fuschel's framing, worth reading as the company's own positioning but grounded in a certification other vendors don't yet have.",{"type":21,"tag":41,"props":4190,"children":4191},{"id":3461},[4192],{"type":31,"value":3464},{"type":21,"tag":22,"props":4194,"children":4195},{},[4196],{"type":31,"value":4197},"Whether other QKD hardware vendors pursue ISO\u002FIEC 23837 evaluation against the same TUVIT\u002FQuNET+BlueCert methodology, which would turn this from one company's certification into an actual industry baseline for QKD hardware security, the same way FedRAMP authorizations function as a baseline rather than a one-off badge for cloud vendors serving government customers.",{"title":7,"searchDepth":168,"depth":168,"links":4199},[4200,4201,4202,4203,4204],{"id":4132,"depth":168,"text":4135},{"id":4151,"depth":168,"text":4154},{"id":4162,"depth":168,"text":4165},{"id":4180,"depth":168,"text":4183},{"id":3461,"depth":168,"text":3464},"content:blog:quantum-optics-jena-elvis-qkd-certification.md","blog\u002Fquantum-optics-jena-elvis-qkd-certification.md","blog\u002Fquantum-optics-jena-elvis-qkd-certification",{"_path":4209,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":4210,"description":4211,"date":3929,"author":11,"tags":4212,"readingTime":234,"body":4213,"_type":1187,"_id":4295,"_source":1189,"_file":4296,"_stem":4297,"_extension":1192},"\u002Fblog\u002Fqunnect-monarch-quantum-manufacturing-partnership","Qunnect and Monarch Quantum Are Trying to Shrink a Rack-Sized Quantum Network Box","Qunnect partnered with Monarch Quantum to shrink its Carina entanglement-distribution platform from a 36U rack down to 2U or 3U, using robotic, machine-vision-guided manufacturing built for co-packaged optics.",[3396,1207],{"type":18,"children":4214,"toc":4288},[4215,4220,4226,4246,4252,4257,4263,4268,4274,4279,4283],{"type":21,"tag":22,"props":4216,"children":4217},{},[4218],{"type":31,"value":4219},"Qunnect and Monarch Quantum announced a partnership to commercialize and manufacture Qunnect's entanglement-distribution hardware at scale, with a certain, checkable target: shrinking Qunnect's Carina platform from its current 36U rack form factor down to 2U or 3U. That's roughly a tenfold reduction in size for the same function, the kind of claim worth watching for a follow-up demonstration rather than taking as already accomplished.",{"type":21,"tag":41,"props":4221,"children":4223},{"id":4222},"two-different-kinds-of-company-one-product-line",[4224],{"type":31,"value":4225},"Two different kinds of company, one product line",{"type":21,"tag":22,"props":4227,"children":4228},{},[4229,4231,4236,4238,4244],{"type":31,"value":4230},"Qunnect brings the physics: field-deployed ",{"type":21,"tag":26,"props":4232,"children":4233},{"href":1150},[4234],{"type":31,"value":4235},"entanglement",{"type":31,"value":4237}," distribution technology, the identical lineage behind its work with ",{"type":21,"tag":26,"props":4239,"children":4241},{"href":4240},"\u002Fblog\u002Fnist-umd-qunnect-62km-entanglement-metro-fiber",[4242],{"type":31,"value":4243},"NIST and the University of Maryland sustaining entangled photons across 62 km of commercial fiber",{"type":31,"value":4245}," for over 20 hours. Monarch Quantum brings something Qunnect doesn't: photonic system engineering built around robotic, machine-vision-guided manufacturing, co-packaged optics, and precision component alignment at production scale. Pairing a company that proved the physics works in the field with one that manufactures precision photonic hardware for a living is a specific answer to a specific problem, not a general research collaboration.",{"type":21,"tag":41,"props":4247,"children":4249},{"id":4248},"the-manufacturing-side-is-concrete",[4250],{"type":31,"value":4251},"The manufacturing side is concrete",{"type":21,"tag":22,"props":4253,"children":4254},{},[4255],{"type":31,"value":4256},"Monarch is moving to a 60,000 square foot San Diego facility by the end of the year, including an 8,000 square foot cleanroom expansion with 20 to 25 robotic assembly stations expected operational in September. That's real capital infrastructure committed on a real timeline, worth distinguishing from a partnership announcement that's mostly a press release with no manufacturing capacity behind it.",{"type":21,"tag":41,"props":4258,"children":4260},{"id":4259},"what-ships-beyond-the-shrunk-carina",[4261],{"type":31,"value":4262},"What ships beyond the shrunk Carina",{"type":21,"tag":22,"props":4264,"children":4265},{},[4266],{"type":31,"value":4267},"Beyond the size reduction, the partnership names a future product under the codename \"Orian,\" aimed at applications like quantum position verification and a \"quantum alarm\" for network security monitoring, neither of which is a mainstream quantum computing use case. Both point toward defense and infrastructure security markets rather than general-purpose quantum networking, consistent with the target applications named alongside them: satellites, defense platforms, remote infrastructure, telecommunications, and IoT environments.",{"type":21,"tag":41,"props":4269,"children":4271},{"id":4270},"why-size-is-the-actual-bottleneck-here",[4272],{"type":31,"value":4273},"Why size is the actual bottleneck here",{"type":21,"tag":22,"props":4275,"children":4276},{},[4277],{"type":31,"value":4278},"A 36U rack is a full-height server cabinet's worth of hardware for one entanglement-distribution node, which rules out most of the deployment scenarios the goal application list names. A satellite payload, a remote infrastructure site, or an edge telecom location has real constraints on volume, weight, and power that a rack-scale system doesn't fit into, no matter how good the underlying physics is. Getting to 2U or 3U isn't a cosmetic packaging exercise. It's the difference between a lab demonstration and hardware that deploys in the environments Qunnect's own target list names.",{"type":21,"tag":41,"props":4280,"children":4281},{"id":3461},[4282],{"type":31,"value":3464},{"type":21,"tag":22,"props":4284,"children":4285},{},[4286],{"type":31,"value":4287},"The real milestone here isn't the partnership announcement, it's a working 2U or 3U Carina unit demonstrating the same entanglement-distribution performance as the current 36U version. Until that ships, this is a manufacturing capacity and packaging commitment, a real one given the San Diego facility timeline, but not yet a delivered product.",{"title":7,"searchDepth":168,"depth":168,"links":4289},[4290,4291,4292,4293,4294],{"id":4222,"depth":168,"text":4225},{"id":4248,"depth":168,"text":4251},{"id":4259,"depth":168,"text":4262},{"id":4270,"depth":168,"text":4273},{"id":3461,"depth":168,"text":3464},"content:blog:qunnect-monarch-quantum-manufacturing-partnership.md","blog\u002Fqunnect-monarch-quantum-manufacturing-partnership.md","blog\u002Fqunnect-monarch-quantum-manufacturing-partnership",{"_path":4299,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":4300,"description":4301,"date":3929,"author":11,"tags":4302,"readingTime":234,"body":4303,"_type":1187,"_id":4393,"_source":1189,"_file":4394,"_stem":4395,"_extension":1192},"\u002Fblog\u002Fsizhen-chip-photonic-graph-state-china","A Chinese Startup Built a 16-Qubit Graph State on a Single Photonic Chip","Hefei Sizhen Chip Technology and USTC generated a 4-photon, 16-qubit GHZ state and verified 10-qubit entanglement on a self-developed silicon photonic chip, calling it the largest entangled state demonstrated on an optical quantum chip to date.",[3396,1207],{"type":18,"children":4304,"toc":4386},[4305,4317,4323,4336,4342,4347,4353,4358,4364,4377,4381],{"type":21,"tag":22,"props":4306,"children":4307},{},[4308,4310,4315],{"type":31,"value":4309},"Hefei Sizhen Chip Technology, working with researchers from the University of Science and Technology of China, demonstrated on-chip generation of a 4-photon, 16-qubit ",{"type":21,"tag":26,"props":4311,"children":4312},{"href":489},[4313],{"type":31,"value":4314},"GHZ state",{"type":31,"value":4316}," and a single-photon, 4-qubit cluster state on a self-developed programmable silicon photonic chip, verifying genuine entanglement across 10 qubits through entanglement witnessing. The company describes it as the largest entangled state demonstrated on an optical quantum chip to date, and the work is currently posted as an arXiv preprint rather than a peer-reviewed publication.",{"type":21,"tag":41,"props":4318,"children":4320},{"id":4319},"the-approach-measurement-based-not-gate-based",[4321],{"type":31,"value":4322},"The approach: measurement-based, not gate-based",{"type":21,"tag":22,"props":4324,"children":4325},{},[4326,4328,4334],{"type":31,"value":4327},"Sizhen Chip's architecture uses ",{"type":21,"tag":26,"props":4329,"children":4331},{"href":4330},"\u002Fglossary\u002Fquantum-circuit",[4332],{"type":31,"value":4333},"measurement-based quantum computing",{"type":31,"value":4335}," (MBQC), an approach that builds a large entangled resource state up front, then drives the actual computation through a sequence of single-qubit measurements rather than applying gates directly to qubits in sequence. The chip encodes qubits using the high-dimensional path degrees of freedom of single photons, and a four-layer programmable measurement module handles both preparing the multi-qubit graph states and executing the measurements that turn that resource into a computation.",{"type":21,"tag":41,"props":4337,"children":4339},{"id":4338},"what-the-numbers-show",[4340],{"type":31,"value":4341},"What the numbers show",{"type":21,"tag":22,"props":4343,"children":4344},{},[4345],{"type":31,"value":4346},"Sixteen qubits from four photons works because each photon carries multiple qubits of information through its path encoding, not because sixteen separate photons were entangled. The company's own claim to watch for independent replication is the entanglement witnessing result: genuine, verified entanglement across 10 qubits, a smaller but more rigorously checkable figure than the 16-qubit graph state figure headline number. As a demonstration of the architecture's usefulness for computation rather than entanglement generation alone, the team ran Grover's search algorithm on a 4-qubit cluster state and reported a 0.987 average identification probability, a real, specific benchmark number rather than a qualitative claim.",{"type":21,"tag":41,"props":4348,"children":4350},{"id":4349},"a-preprint-not-a-peer-reviewed-result",[4351],{"type":31,"value":4352},"A preprint, not a peer-reviewed result",{"type":21,"tag":22,"props":4354,"children":4355},{},[4356],{"type":31,"value":4357},"This work is posted to arXiv under the title \"On-chip generation of multi-qubit graph states with high-dimensional encoded single photons\" and hasn't gone through peer review at the time of this writing. That doesn't make the outcome wrong, but it does mean the numbers above haven't yet had independent scrutiny applied to them, worth keeping in mind before treating \"largest entangled state on an optical chip to date\" as a settled record rather than a company's own characterization of its result.",{"type":21,"tag":41,"props":4359,"children":4361},{"id":4360},"part-of-a-broader-chinese-photonic-quantum-push",[4362],{"type":31,"value":4363},"Part of a broader Chinese photonic quantum push",{"type":21,"tag":22,"props":4365,"children":4366},{},[4367,4369,4375],{"type":31,"value":4368},"Sizhen Chip calls itself the first domestic optical quantum computing company to achieve large-scale graph state construction on-chip, and frames the result as evidence that a million-qubit optical quantum computer is feasible. That framing lands alongside ",{"type":21,"tag":26,"props":4370,"children":4372},{"href":4371},"\u002Fblog\u002Fturingq-china-first-quantum-ipo",[4373],{"type":31,"value":4374},"TuringQ's move toward a Shanghai STAR Market listing",{"type":31,"value":4376},", another photonic quantum company pursuing commercialization in China. Photonic architecture is a genuinely active area of Chinese quantum investment right now, not a single business's isolated bet.",{"type":21,"tag":41,"props":4378,"children":4379},{"id":3461},[4380],{"type":31,"value":3464},{"type":21,"tag":22,"props":4382,"children":4383},{},[4384],{"type":31,"value":4385},"Peer review of the arXiv preprint is the near-term checkpoint. Past that, the number worth tracking is whether Sizhen Chip's four-layer measurement module scales to more photons and higher path-encoding dimensions without the entanglement fidelity dropping, since that's the actual bottleneck standing between a 16-qubit demonstration and the million-qubit claim the company is making about where this leads.",{"title":7,"searchDepth":168,"depth":168,"links":4387},[4388,4389,4390,4391,4392],{"id":4319,"depth":168,"text":4322},{"id":4338,"depth":168,"text":4341},{"id":4349,"depth":168,"text":4352},{"id":4360,"depth":168,"text":4363},{"id":3461,"depth":168,"text":3464},"content:blog:sizhen-chip-photonic-graph-state-china.md","blog\u002Fsizhen-chip-photonic-graph-state-china.md","blog\u002Fsizhen-chip-photonic-graph-state-china",{"_path":4397,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":4398,"description":4399,"date":3929,"author":11,"tags":4400,"readingTime":234,"body":4401,"_type":1187,"_id":4464,"_source":1189,"_file":4465,"_stem":4466,"_extension":1192},"\u002Fblog\u002Futah-quantum-initiative-executive-order","Utah Becomes the Latest State to Launch Its Own Quantum Initiative","Governor Spencer Cox signed an executive order creating the Utah Quantum Initiative, a coordination council tasked with a statewide quantum assessment report by March 2027, aimed at quantum sensing, workforce development, and defense-sector applications.",[3396],{"type":18,"children":4402,"toc":4458},[4403,4408,4414,4419,4425,4438,4444,4449,4453],{"type":21,"tag":22,"props":4404,"children":4405},{},[4406],{"type":31,"value":4407},"Utah Governor Spencer Cox signed an executive order establishing the Utah Quantum Initiative, creating a Quantum Coordination Council led by the state's Governor's Office of Economic Development (GOED) and inviting the Nucleus Institute to co-lead. The order takes effect immediately and runs through December 31, 2028, with the council required to deliver a statewide quantum assessment report by March 30, 2027, the first concrete, dated deliverable attached to the initiative.",{"type":21,"tag":41,"props":4409,"children":4411},{"id":4410},"what-the-order-creates",[4412],{"type":31,"value":4413},"What the order creates",{"type":21,"tag":22,"props":4415,"children":4416},{},[4417],{"type":31,"value":4418},"Read past the announcement language and the order sets up a coordination body, not a funded research program. No specific dollar figure is attached to the initiative in the announcement. What it does establish is a mandate: build on Utah's existing strengths in quantum sensing, photonics, semiconductor manufacturing, and high-performance computing, develop a quantum-ready workforce through education and apprenticeship pathways, coordinate the state's pursuit of federal quantum funding, and develop defense-sector quantum sensing and communications strategies specifically. Hill Air Force Base and Dugway Proving Ground are named directly, which puts a defense-application focus into the order's text rather than leaving it implied.",{"type":21,"tag":41,"props":4420,"children":4422},{"id":4421},"a-pattern-not-an-isolated-move",[4423],{"type":31,"value":4424},"A pattern, not an isolated move",{"type":21,"tag":22,"props":4426,"children":4427},{},[4428,4430,4436],{"type":31,"value":4429},"Utah joins a growing list of US states and jurisdictions standing up their own quantum coordination efforts, alongside ",{"type":21,"tag":26,"props":4431,"children":4433},{"href":4432},"\u002Fblog\u002Fcompanies-using-quantum-computing-by-industry",[4434],{"type":31,"value":4435},"Canada's $20.3 million Quantum Defence Innovation Secure Hub in Calgary",{"type":31,"value":4437}," covered elsewhere on this site. The through-line across these announcements is consistent: workforce development, coordinating access to federal funding, and defense- or security-adjacent applications, rather than a state directly funding hardware research the way a company or federal agency might. States are positioning themselves to attract quantum companies and federal dollars, not building quantum computers themselves.",{"type":21,"tag":41,"props":4439,"children":4441},{"id":4440},"the-report-due-in-march-2027-is-the-real-checkpoint",[4442],{"type":31,"value":4443},"The report due in March 2027 is the real checkpoint",{"type":21,"tag":22,"props":4445,"children":4446},{},[4447],{"type":31,"value":4448},"An executive order that \"designates\" a priority and \"coordinates\" a council is easy to announce and easy to let quietly underdeliver on without a specific, dated output attached to it. The statewide quantum assessment report due by March 30, 2027, is that dated output here, and it's the first real test of whether the Quantum Coordination Council does the coordinating work the order describes or the initiative stays at the announcement stage. Governor Cox's own framing, that quantum technology \"is going to shift how we compute, communicate, manufacture, discover new medicines and defend our country,\" is the kind of broad statement every state quantum announcement makes. The report is what turns that framing into something checkable.",{"type":21,"tag":41,"props":4450,"children":4451},{"id":3461},[4452],{"type":31,"value":3464},{"type":21,"tag":22,"props":4454,"children":4455},{},[4456],{"type":31,"value":4457},"Whether the March 2027 assessment report lands on schedule, and whether it names specific funding commitments or company relocations rather than restating the executive order's own goals back at itself. Utah's existing base in quantum sensing and semiconductor manufacturing gives this initiative more to build on than a state starting from nothing, which is worth more than the executive order's language on its own.",{"title":7,"searchDepth":168,"depth":168,"links":4459},[4460,4461,4462,4463],{"id":4410,"depth":168,"text":4413},{"id":4421,"depth":168,"text":4424},{"id":4440,"depth":168,"text":4443},{"id":3461,"depth":168,"text":3464},"content:blog:utah-quantum-initiative-executive-order.md","blog\u002Futah-quantum-initiative-executive-order.md","blog\u002Futah-quantum-initiative-executive-order",{"_path":4468,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":4469,"description":4470,"date":4471,"author":11,"tags":4472,"readingTime":309,"body":4475,"_type":1187,"_id":5966,"_source":1189,"_file":5967,"_stem":5968,"_extension":1192},"\u002Fblog\u002Fazure-quantum-cirq-pennylane-guide","Running Cirq and PennyLane Circuits on Azure Quantum","How to submit Cirq circuits directly through the qdk.azure.cirq service, and how PennyLane's Azure Quantum path works differently: compiling through OpenQASM and QIR rather than a plug-and-play device.","2026-08-09",[4473,4474,1207],"Cirq","PennyLane",{"type":18,"children":4476,"toc":5955},[4477,4489,4495,4533,4647,4683,4702,4710,4715,4721,4940,4961,4967,5051,5093,5117,5129,5135,5257,5269,5275,5307,5320,5597,5610,5616,5702,5721,5727,5858,5871,5877,5898,5904,5951],{"type":21,"tag":22,"props":4478,"children":4479},{},[4480,4482,4487],{"type":31,"value":4481},"Our ",{"type":21,"tag":26,"props":4483,"children":4484},{"href":3646},[4485],{"type":31,"value":4486},"Azure Quantum guide for Qiskit",{"type":31,"value":4488}," covers the most direct integration path: a provider object that looks and behaves like any other Qiskit backend. Cirq and PennyLane both reach Azure Quantum too, but through noticeably different mechanisms from each other and from Qiskit's, worth understanding before assuming one pattern transfers to the other.",{"type":21,"tag":41,"props":4490,"children":4492},{"id":4491},"cirq-a-service-object-not-a-provider",[4493],{"type":31,"value":4494},"Cirq: a service object, not a provider",{"type":21,"tag":129,"props":4496,"children":4500},{"code":4497,"language":4498,"meta":7,"className":4499,"style":7},"pip install --upgrade \"qdk[azure,cirq]\" ipykernel\n","bash","language-bash shiki shiki-themes github-dark",[4501],{"type":21,"tag":104,"props":4502,"children":4503},{"__ignoreMap":7},[4504],{"type":21,"tag":139,"props":4505,"children":4506},{"class":141,"line":142},[4507,4513,4518,4523,4528],{"type":21,"tag":139,"props":4508,"children":4510},{"style":4509},"--shiki-default:#B392F0",[4511],{"type":31,"value":4512},"pip",{"type":21,"tag":139,"props":4514,"children":4515},{"style":262},[4516],{"type":31,"value":4517}," install",{"type":21,"tag":139,"props":4519,"children":4520},{"style":214},[4521],{"type":31,"value":4522}," --upgrade",{"type":21,"tag":139,"props":4524,"children":4525},{"style":262},[4526],{"type":31,"value":4527}," \"qdk[azure,cirq]\"",{"type":21,"tag":139,"props":4529,"children":4530},{"style":262},[4531],{"type":31,"value":4532}," ipykernel\n",{"type":21,"tag":129,"props":4534,"children":4536},{"code":4535,"language":133,"meta":7,"className":131,"style":7},"from qdk.azure import Workspace\nfrom qdk.azure.cirq import AzureQuantumService\n\nworkspace = Workspace(resource_id=\"\")  # your workspace's resource ID\nservice = AzureQuantumService(workspace)\n",[4537],{"type":21,"tag":104,"props":4538,"children":4539},{"__ignoreMap":7},[4540,4561,4582,4589,4630],{"type":21,"tag":139,"props":4541,"children":4542},{"class":141,"line":142},[4543,4547,4552,4556],{"type":21,"tag":139,"props":4544,"children":4545},{"style":146},[4546],{"type":31,"value":149},{"type":21,"tag":139,"props":4548,"children":4549},{"style":152},[4550],{"type":31,"value":4551}," qdk.azure ",{"type":21,"tag":139,"props":4553,"children":4554},{"style":146},[4555],{"type":31,"value":160},{"type":21,"tag":139,"props":4557,"children":4558},{"style":152},[4559],{"type":31,"value":4560}," Workspace\n",{"type":21,"tag":139,"props":4562,"children":4563},{"class":141,"line":168},[4564,4568,4573,4577],{"type":21,"tag":139,"props":4565,"children":4566},{"style":146},[4567],{"type":31,"value":149},{"type":21,"tag":139,"props":4569,"children":4570},{"style":152},[4571],{"type":31,"value":4572}," qdk.azure.cirq ",{"type":21,"tag":139,"props":4574,"children":4575},{"style":146},[4576],{"type":31,"value":160},{"type":21,"tag":139,"props":4578,"children":4579},{"style":152},[4580],{"type":31,"value":4581}," AzureQuantumService\n",{"type":21,"tag":139,"props":4583,"children":4584},{"class":141,"line":190},[4585],{"type":21,"tag":139,"props":4586,"children":4587},{"emptyLinePlaceholder":194},[4588],{"type":31,"value":197},{"type":21,"tag":139,"props":4590,"children":4591},{"class":141,"line":200},[4592,4597,4601,4606,4611,4615,4620,4625],{"type":21,"tag":139,"props":4593,"children":4594},{"style":152},[4595],{"type":31,"value":4596},"workspace ",{"type":21,"tag":139,"props":4598,"children":4599},{"style":146},[4600],{"type":31,"value":211},{"type":21,"tag":139,"props":4602,"children":4603},{"style":152},[4604],{"type":31,"value":4605}," Workspace(",{"type":21,"tag":139,"props":4607,"children":4608},{"style":923},[4609],{"type":31,"value":4610},"resource_id",{"type":21,"tag":139,"props":4612,"children":4613},{"style":146},[4614],{"type":31,"value":211},{"type":21,"tag":139,"props":4616,"children":4617},{"style":262},[4618],{"type":31,"value":4619},"\"\"",{"type":21,"tag":139,"props":4621,"children":4622},{"style":152},[4623],{"type":31,"value":4624},")  ",{"type":21,"tag":139,"props":4626,"children":4627},{"style":220},[4628],{"type":31,"value":4629},"# your workspace's resource ID\n",{"type":21,"tag":139,"props":4631,"children":4632},{"class":141,"line":226},[4633,4638,4642],{"type":21,"tag":139,"props":4634,"children":4635},{"style":152},[4636],{"type":31,"value":4637},"service ",{"type":21,"tag":139,"props":4639,"children":4640},{"style":146},[4641],{"type":31,"value":211},{"type":21,"tag":139,"props":4643,"children":4644},{"style":152},[4645],{"type":31,"value":4646}," AzureQuantumService(workspace)\n",{"type":21,"tag":22,"props":4648,"children":4649},{},[4650,4652,4658,4660,4666,4668,4674,4675,4681],{"type":31,"value":4651},"Where Qiskit's integration gives you a ",{"type":21,"tag":104,"props":4653,"children":4655},{"className":4654},[],[4656],{"type":31,"value":4657},"provider.get_backend()",{"type":31,"value":4659}," call returning something that behaves like a standard Qiskit backend, Cirq's integration gives you a ",{"type":21,"tag":104,"props":4661,"children":4663},{"className":4662},[],[4664],{"type":31,"value":4665},"service",{"type":31,"value":4667}," object with its own ",{"type":21,"tag":104,"props":4669,"children":4671},{"className":4670},[],[4672],{"type":31,"value":4673},"run()",{"type":31,"value":3615},{"type":21,"tag":104,"props":4676,"children":4678},{"className":4677},[],[4679],{"type":31,"value":4680},"create_job()",{"type":31,"value":4682}," methods, closer to Cirq's own native execution API than to a backend abstraction.",{"type":21,"tag":129,"props":4684,"children":4686},{"code":4685,"language":133,"meta":7,"className":131,"style":7},"print(service.targets())\n",[4687],{"type":21,"tag":104,"props":4688,"children":4689},{"__ignoreMap":7},[4690],{"type":21,"tag":139,"props":4691,"children":4692},{"class":141,"line":142},[4693,4697],{"type":21,"tag":139,"props":4694,"children":4695},{"style":214},[4696],{"type":31,"value":948},{"type":21,"tag":139,"props":4698,"children":4699},{"style":152},[4700],{"type":31,"value":4701},"(service.targets())\n",{"type":21,"tag":129,"props":4703,"children":4705},{"code":4704},"[\u003CTarget name=\"quantinuum.qpu.h2-1\", avg. queue time=0 s, Degraded>,\n \u003CTarget name=\"ionq.simulator\", avg. queue time=3 s, Available>,\n \u003CTarget name=\"ionq.qpu.aria-1\", avg. queue time=1136774 s, Available>]\n",[4706],{"type":21,"tag":104,"props":4707,"children":4708},{"__ignoreMap":7},[4709],{"type":31,"value":4704},{"type":21,"tag":22,"props":4711,"children":4712},{},[4713],{"type":31,"value":4714},"Listing targets shows real queue times, worth checking before submitting: a queue time in the millions of seconds, as shown above for one example QPU target, means that target is effectively unavailable for anything but a long-running background job, not a hang or an error on your end.",{"type":21,"tag":41,"props":4716,"children":4718},{"id":4717},"running-a-cirq-circuit",[4719],{"type":31,"value":4720},"Running a Cirq circuit",{"type":21,"tag":129,"props":4722,"children":4724},{"code":4723,"language":133,"meta":7,"className":131,"style":7},"import cirq\n\nq0, q1 = cirq.LineQubit.range(2)\ncircuit = cirq.Circuit(\n    cirq.X(q0) ** 0.5,\n    cirq.CX(q0, q1),\n    cirq.measure(q0, q1, key=\"b\"),\n)\n\nresult = service.run(program=circuit, repetitions=100, target=\"ionq.simulator\")\nprint(result)\n",[4725],{"type":21,"tag":104,"props":4726,"children":4727},{"__ignoreMap":7},[4728,4740,4747,4772,4789,4812,4820,4847,4854,4861,4928],{"type":21,"tag":139,"props":4729,"children":4730},{"class":141,"line":142},[4731,4735],{"type":21,"tag":139,"props":4732,"children":4733},{"style":146},[4734],{"type":31,"value":160},{"type":21,"tag":139,"props":4736,"children":4737},{"style":152},[4738],{"type":31,"value":4739}," cirq\n",{"type":21,"tag":139,"props":4741,"children":4742},{"class":141,"line":168},[4743],{"type":21,"tag":139,"props":4744,"children":4745},{"emptyLinePlaceholder":194},[4746],{"type":31,"value":197},{"type":21,"tag":139,"props":4748,"children":4749},{"class":141,"line":190},[4750,4755,4759,4764,4768],{"type":21,"tag":139,"props":4751,"children":4752},{"style":152},[4753],{"type":31,"value":4754},"q0, q1 ",{"type":21,"tag":139,"props":4756,"children":4757},{"style":146},[4758],{"type":31,"value":211},{"type":21,"tag":139,"props":4760,"children":4761},{"style":152},[4762],{"type":31,"value":4763}," cirq.LineQubit.range(",{"type":21,"tag":139,"props":4765,"children":4766},{"style":214},[4767],{"type":31,"value":293},{"type":21,"tag":139,"props":4769,"children":4770},{"style":152},[4771],{"type":31,"value":270},{"type":21,"tag":139,"props":4773,"children":4774},{"class":141,"line":200},[4775,4780,4784],{"type":21,"tag":139,"props":4776,"children":4777},{"style":152},[4778],{"type":31,"value":4779},"circuit ",{"type":21,"tag":139,"props":4781,"children":4782},{"style":146},[4783],{"type":31,"value":211},{"type":21,"tag":139,"props":4785,"children":4786},{"style":152},[4787],{"type":31,"value":4788}," cirq.Circuit(\n",{"type":21,"tag":139,"props":4790,"children":4791},{"class":141,"line":226},[4792,4797,4802,4807],{"type":21,"tag":139,"props":4793,"children":4794},{"style":152},[4795],{"type":31,"value":4796},"    cirq.X(q0) ",{"type":21,"tag":139,"props":4798,"children":4799},{"style":146},[4800],{"type":31,"value":4801},"**",{"type":21,"tag":139,"props":4803,"children":4804},{"style":214},[4805],{"type":31,"value":4806}," 0.5",{"type":21,"tag":139,"props":4808,"children":4809},{"style":152},[4810],{"type":31,"value":4811},",\n",{"type":21,"tag":139,"props":4813,"children":4814},{"class":141,"line":234},[4815],{"type":21,"tag":139,"props":4816,"children":4817},{"style":152},[4818],{"type":31,"value":4819},"    cirq.CX(q0, q1),\n",{"type":21,"tag":139,"props":4821,"children":4822},{"class":141,"line":273},[4823,4828,4833,4837,4842],{"type":21,"tag":139,"props":4824,"children":4825},{"style":152},[4826],{"type":31,"value":4827},"    cirq.measure(q0, q1, ",{"type":21,"tag":139,"props":4829,"children":4830},{"style":923},[4831],{"type":31,"value":4832},"key",{"type":21,"tag":139,"props":4834,"children":4835},{"style":146},[4836],{"type":31,"value":211},{"type":21,"tag":139,"props":4838,"children":4839},{"style":262},[4840],{"type":31,"value":4841},"\"b\"",{"type":21,"tag":139,"props":4843,"children":4844},{"style":152},[4845],{"type":31,"value":4846},"),\n",{"type":21,"tag":139,"props":4848,"children":4849},{"class":141,"line":309},[4850],{"type":21,"tag":139,"props":4851,"children":4852},{"style":152},[4853],{"type":31,"value":270},{"type":21,"tag":139,"props":4855,"children":4856},{"class":141,"line":16},[4857],{"type":21,"tag":139,"props":4858,"children":4859},{"emptyLinePlaceholder":194},[4860],{"type":31,"value":197},{"type":21,"tag":139,"props":4862,"children":4863},{"class":141,"line":361},[4864,4869,4873,4878,4883,4887,4892,4897,4901,4906,4910,4915,4919,4924],{"type":21,"tag":139,"props":4865,"children":4866},{"style":152},[4867],{"type":31,"value":4868},"result ",{"type":21,"tag":139,"props":4870,"children":4871},{"style":146},[4872],{"type":31,"value":211},{"type":21,"tag":139,"props":4874,"children":4875},{"style":152},[4876],{"type":31,"value":4877}," service.run(",{"type":21,"tag":139,"props":4879,"children":4880},{"style":923},[4881],{"type":31,"value":4882},"program",{"type":21,"tag":139,"props":4884,"children":4885},{"style":146},[4886],{"type":31,"value":211},{"type":21,"tag":139,"props":4888,"children":4889},{"style":152},[4890],{"type":31,"value":4891},"circuit, ",{"type":21,"tag":139,"props":4893,"children":4894},{"style":923},[4895],{"type":31,"value":4896},"repetitions",{"type":21,"tag":139,"props":4898,"children":4899},{"style":146},[4900],{"type":31,"value":211},{"type":21,"tag":139,"props":4902,"children":4903},{"style":214},[4904],{"type":31,"value":4905},"100",{"type":21,"tag":139,"props":4907,"children":4908},{"style":152},[4909],{"type":31,"value":259},{"type":21,"tag":139,"props":4911,"children":4912},{"style":923},[4913],{"type":31,"value":4914},"target",{"type":21,"tag":139,"props":4916,"children":4917},{"style":146},[4918],{"type":31,"value":211},{"type":21,"tag":139,"props":4920,"children":4921},{"style":262},[4922],{"type":31,"value":4923},"\"ionq.simulator\"",{"type":21,"tag":139,"props":4925,"children":4926},{"style":152},[4927],{"type":31,"value":270},{"type":21,"tag":139,"props":4929,"children":4930},{"class":141,"line":369},[4931,4935],{"type":21,"tag":139,"props":4932,"children":4933},{"style":214},[4934],{"type":31,"value":948},{"type":21,"tag":139,"props":4936,"children":4937},{"style":152},[4938],{"type":31,"value":4939},"(result)\n",{"type":21,"tag":22,"props":4941,"children":4942},{},[4943,4945,4951,4953,4959],{"type":31,"value":4944},"This returns a ",{"type":21,"tag":104,"props":4946,"children":4948},{"className":4947},[],[4949],{"type":31,"value":4950},"cirq.Result",{"type":31,"value":4952}," object when run through ",{"type":21,"tag":104,"props":4954,"children":4956},{"className":4955},[],[4957],{"type":31,"value":4958},"service.run()",{"type":31,"value":4960}," directly, the object type Cirq code normally expects.",{"type":21,"tag":41,"props":4962,"children":4964},{"id":4963},"the-result-type-changes-with-the-asynchronous-path",[4965],{"type":31,"value":4966},"The result type changes with the asynchronous path",{"type":21,"tag":129,"props":4968,"children":4970},{"code":4969,"language":133,"meta":7,"className":131,"style":7},"job = service.create_job(program=circuit, repetitions=100, target=\"ionq.simulator\")\nresult = job.results()\n",[4971],{"type":21,"tag":104,"props":4972,"children":4973},{"__ignoreMap":7},[4974,5035],{"type":21,"tag":139,"props":4975,"children":4976},{"class":141,"line":142},[4977,4982,4986,4991,4995,4999,5003,5007,5011,5015,5019,5023,5027,5031],{"type":21,"tag":139,"props":4978,"children":4979},{"style":152},[4980],{"type":31,"value":4981},"job ",{"type":21,"tag":139,"props":4983,"children":4984},{"style":146},[4985],{"type":31,"value":211},{"type":21,"tag":139,"props":4987,"children":4988},{"style":152},[4989],{"type":31,"value":4990}," service.create_job(",{"type":21,"tag":139,"props":4992,"children":4993},{"style":923},[4994],{"type":31,"value":4882},{"type":21,"tag":139,"props":4996,"children":4997},{"style":146},[4998],{"type":31,"value":211},{"type":21,"tag":139,"props":5000,"children":5001},{"style":152},[5002],{"type":31,"value":4891},{"type":21,"tag":139,"props":5004,"children":5005},{"style":923},[5006],{"type":31,"value":4896},{"type":21,"tag":139,"props":5008,"children":5009},{"style":146},[5010],{"type":31,"value":211},{"type":21,"tag":139,"props":5012,"children":5013},{"style":214},[5014],{"type":31,"value":4905},{"type":21,"tag":139,"props":5016,"children":5017},{"style":152},[5018],{"type":31,"value":259},{"type":21,"tag":139,"props":5020,"children":5021},{"style":923},[5022],{"type":31,"value":4914},{"type":21,"tag":139,"props":5024,"children":5025},{"style":146},[5026],{"type":31,"value":211},{"type":21,"tag":139,"props":5028,"children":5029},{"style":262},[5030],{"type":31,"value":4923},{"type":21,"tag":139,"props":5032,"children":5033},{"style":152},[5034],{"type":31,"value":270},{"type":21,"tag":139,"props":5036,"children":5037},{"class":141,"line":168},[5038,5042,5046],{"type":21,"tag":139,"props":5039,"children":5040},{"style":152},[5041],{"type":31,"value":4868},{"type":21,"tag":139,"props":5043,"children":5044},{"style":146},[5045],{"type":31,"value":211},{"type":21,"tag":139,"props":5047,"children":5048},{"style":152},[5049],{"type":31,"value":5050}," job.results()\n",{"type":21,"tag":22,"props":5052,"children":5053},{},[5054,5056,5061,5063,5069,5071,5076,5078,5083,5085,5091],{"type":31,"value":5055},"Using the asynchronous ",{"type":21,"tag":104,"props":5057,"children":5059},{"className":5058},[],[5060],{"type":31,"value":4680},{"type":31,"value":5062},"\u002F",{"type":21,"tag":104,"props":5064,"children":5066},{"className":5065},[],[5067],{"type":31,"value":5068},"job.results()",{"type":31,"value":5070}," path instead of the direct ",{"type":21,"tag":104,"props":5072,"children":5074},{"className":5073},[],[5075],{"type":31,"value":4958},{"type":31,"value":5077}," call returns a provider-certain finding object, not a ",{"type":21,"tag":104,"props":5079,"children":5081},{"className":5080},[],[5082],{"type":31,"value":4950},{"type":31,"value":5084},", one of the sharper edges in this integration. On the IonQ simulator target specifically, that means a ",{"type":21,"tag":104,"props":5086,"children":5088},{"className":5087},[],[5089],{"type":31,"value":5090},"cirq_ionq.results.SimulatorResult",{"type":31,"value":5092}," reporting state probabilities rather than raw shot data. Convert it explicitly when downstream code expects Cirq's native format:",{"type":21,"tag":129,"props":5094,"children":5096},{"code":5095,"language":133,"meta":7,"className":131,"style":7},"cirq_result = result.to_cirq_result()\n",[5097],{"type":21,"tag":104,"props":5098,"children":5099},{"__ignoreMap":7},[5100],{"type":21,"tag":139,"props":5101,"children":5102},{"class":141,"line":142},[5103,5108,5112],{"type":21,"tag":139,"props":5104,"children":5105},{"style":152},[5106],{"type":31,"value":5107},"cirq_result ",{"type":21,"tag":139,"props":5109,"children":5110},{"style":146},[5111],{"type":31,"value":211},{"type":21,"tag":139,"props":5113,"children":5114},{"style":152},[5115],{"type":31,"value":5116}," result.to_cirq_result()\n",{"type":21,"tag":22,"props":5118,"children":5119},{},[5120,5122,5127],{"type":31,"value":5121},"Skipping this conversion and treating the result as a ",{"type":21,"tag":104,"props":5123,"children":5125},{"className":5124},[],[5126],{"type":31,"value":4950},{"type":31,"value":5128}," directly is the most likely place code breaks when moving from the synchronous to the asynchronous submission pattern.",{"type":21,"tag":41,"props":5130,"children":5132},{"id":5131},"one-circuit-per-job",[5133],{"type":31,"value":5134},"One circuit per job",{"type":21,"tag":129,"props":5136,"children":5138},{"code":5137,"language":133,"meta":7,"className":131,"style":7},"jobs = [service.create_job(program=c, repetitions=100, target=\"ionq.simulator\") for c in circuits]\nresults = [job.results() for job in jobs]\n",[5139],{"type":21,"tag":104,"props":5140,"children":5141},{"__ignoreMap":7},[5142,5222],{"type":21,"tag":139,"props":5143,"children":5144},{"class":141,"line":142},[5145,5150,5154,5159,5163,5167,5172,5176,5180,5184,5188,5192,5196,5200,5204,5208,5213,5217],{"type":21,"tag":139,"props":5146,"children":5147},{"style":152},[5148],{"type":31,"value":5149},"jobs ",{"type":21,"tag":139,"props":5151,"children":5152},{"style":146},[5153],{"type":31,"value":211},{"type":21,"tag":139,"props":5155,"children":5156},{"style":152},[5157],{"type":31,"value":5158}," [service.create_job(",{"type":21,"tag":139,"props":5160,"children":5161},{"style":923},[5162],{"type":31,"value":4882},{"type":21,"tag":139,"props":5164,"children":5165},{"style":146},[5166],{"type":31,"value":211},{"type":21,"tag":139,"props":5168,"children":5169},{"style":152},[5170],{"type":31,"value":5171},"c, ",{"type":21,"tag":139,"props":5173,"children":5174},{"style":923},[5175],{"type":31,"value":4896},{"type":21,"tag":139,"props":5177,"children":5178},{"style":146},[5179],{"type":31,"value":211},{"type":21,"tag":139,"props":5181,"children":5182},{"style":214},[5183],{"type":31,"value":4905},{"type":21,"tag":139,"props":5185,"children":5186},{"style":152},[5187],{"type":31,"value":259},{"type":21,"tag":139,"props":5189,"children":5190},{"style":923},[5191],{"type":31,"value":4914},{"type":21,"tag":139,"props":5193,"children":5194},{"style":146},[5195],{"type":31,"value":211},{"type":21,"tag":139,"props":5197,"children":5198},{"style":262},[5199],{"type":31,"value":4923},{"type":21,"tag":139,"props":5201,"children":5202},{"style":152},[5203],{"type":31,"value":1527},{"type":21,"tag":139,"props":5205,"children":5206},{"style":146},[5207],{"type":31,"value":1486},{"type":21,"tag":139,"props":5209,"children":5210},{"style":152},[5211],{"type":31,"value":5212}," c ",{"type":21,"tag":139,"props":5214,"children":5215},{"style":146},[5216],{"type":31,"value":1496},{"type":21,"tag":139,"props":5218,"children":5219},{"style":152},[5220],{"type":31,"value":5221}," circuits]\n",{"type":21,"tag":139,"props":5223,"children":5224},{"class":141,"line":168},[5225,5230,5234,5239,5243,5248,5252],{"type":21,"tag":139,"props":5226,"children":5227},{"style":152},[5228],{"type":31,"value":5229},"results ",{"type":21,"tag":139,"props":5231,"children":5232},{"style":146},[5233],{"type":31,"value":211},{"type":21,"tag":139,"props":5235,"children":5236},{"style":152},[5237],{"type":31,"value":5238}," [job.results() ",{"type":21,"tag":139,"props":5240,"children":5241},{"style":146},[5242],{"type":31,"value":1486},{"type":21,"tag":139,"props":5244,"children":5245},{"style":152},[5246],{"type":31,"value":5247}," job ",{"type":21,"tag":139,"props":5249,"children":5250},{"style":146},[5251],{"type":31,"value":1496},{"type":21,"tag":139,"props":5253,"children":5254},{"style":152},[5255],{"type":31,"value":5256}," jobs]\n",{"type":21,"tag":22,"props":5258,"children":5259},{},[5260,5262,5267],{"type":31,"value":5261},"Submitting multiple circuits in a single job isn't supported on this integration. Looping individual ",{"type":21,"tag":104,"props":5263,"children":5265},{"className":5264},[],[5266],{"type":31,"value":4680},{"type":31,"value":5268}," calls, as above, and collecting results afterward is the documented workaround, worth knowing before assuming a batch-submission API exists.",{"type":21,"tag":41,"props":5270,"children":5272},{"id":5271},"pennylane-no-device-plugin-a-compile-pipeline-instead",[5273],{"type":31,"value":5274},"PennyLane: no device plugin, a compile pipeline instead",{"type":21,"tag":129,"props":5276,"children":5278},{"code":5277,"language":4498,"meta":7,"className":4499,"style":7},"pip install --upgrade \"qdk[azure]\" pennylane\n",[5279],{"type":21,"tag":104,"props":5280,"children":5281},{"__ignoreMap":7},[5282],{"type":21,"tag":139,"props":5283,"children":5284},{"class":141,"line":142},[5285,5289,5293,5297,5302],{"type":21,"tag":139,"props":5286,"children":5287},{"style":4509},[5288],{"type":31,"value":4512},{"type":21,"tag":139,"props":5290,"children":5291},{"style":262},[5292],{"type":31,"value":4517},{"type":21,"tag":139,"props":5294,"children":5295},{"style":214},[5296],{"type":31,"value":4522},{"type":21,"tag":139,"props":5298,"children":5299},{"style":262},[5300],{"type":31,"value":5301}," \"qdk[azure]\"",{"type":21,"tag":139,"props":5303,"children":5304},{"style":262},[5305],{"type":31,"value":5306}," pennylane\n",{"type":21,"tag":22,"props":5308,"children":5309},{},[5310,5312,5318],{"type":31,"value":5311},"PennyLane's other backends typically work through ",{"type":21,"tag":104,"props":5313,"children":5315},{"className":5314},[],[5316],{"type":31,"value":5317},"qml.device('vendor.device', ...)",{"type":31,"value":5319},", a plugin abstraction that hides the transport details. Azure Quantum's PennyLane path doesn't follow that pattern. Instead, you build a circuit normally with PennyLane, then explicitly compile it down through OpenQASM and QIR before submitting:",{"type":21,"tag":129,"props":5321,"children":5323},{"code":5322,"language":133,"meta":7,"className":131,"style":7},"import pennylane as qml\nfrom qdk.openqasm import compile\nfrom qdk.azure import Workspace\nfrom qdk import TargetProfile\n\ndevice = qml.device(\"default.qubit\", wires=2)\n\n@qml.qnode(device)\ndef circuit(theta):\n    qml.H(0)\n    qml.CNOT(wires=[0, 1])\n    qml.RY(theta, wires=1)\n    return qml.expval(qml.PauliZ(1))\n",[5324],{"type":21,"tag":104,"props":5325,"children":5326},{"__ignoreMap":7},[5327,5349,5370,5389,5410,5417,5460,5467,5480,5498,5514,5551,5575],{"type":21,"tag":139,"props":5328,"children":5329},{"class":141,"line":142},[5330,5334,5339,5344],{"type":21,"tag":139,"props":5331,"children":5332},{"style":146},[5333],{"type":31,"value":160},{"type":21,"tag":139,"props":5335,"children":5336},{"style":152},[5337],{"type":31,"value":5338}," pennylane ",{"type":21,"tag":139,"props":5340,"children":5341},{"style":146},[5342],{"type":31,"value":5343},"as",{"type":21,"tag":139,"props":5345,"children":5346},{"style":152},[5347],{"type":31,"value":5348}," qml\n",{"type":21,"tag":139,"props":5350,"children":5351},{"class":141,"line":168},[5352,5356,5361,5365],{"type":21,"tag":139,"props":5353,"children":5354},{"style":146},[5355],{"type":31,"value":149},{"type":21,"tag":139,"props":5357,"children":5358},{"style":152},[5359],{"type":31,"value":5360}," qdk.openqasm ",{"type":21,"tag":139,"props":5362,"children":5363},{"style":146},[5364],{"type":31,"value":160},{"type":21,"tag":139,"props":5366,"children":5367},{"style":214},[5368],{"type":31,"value":5369}," compile\n",{"type":21,"tag":139,"props":5371,"children":5372},{"class":141,"line":190},[5373,5377,5381,5385],{"type":21,"tag":139,"props":5374,"children":5375},{"style":146},[5376],{"type":31,"value":149},{"type":21,"tag":139,"props":5378,"children":5379},{"style":152},[5380],{"type":31,"value":4551},{"type":21,"tag":139,"props":5382,"children":5383},{"style":146},[5384],{"type":31,"value":160},{"type":21,"tag":139,"props":5386,"children":5387},{"style":152},[5388],{"type":31,"value":4560},{"type":21,"tag":139,"props":5390,"children":5391},{"class":141,"line":200},[5392,5396,5401,5405],{"type":21,"tag":139,"props":5393,"children":5394},{"style":146},[5395],{"type":31,"value":149},{"type":21,"tag":139,"props":5397,"children":5398},{"style":152},[5399],{"type":31,"value":5400}," qdk ",{"type":21,"tag":139,"props":5402,"children":5403},{"style":146},[5404],{"type":31,"value":160},{"type":21,"tag":139,"props":5406,"children":5407},{"style":152},[5408],{"type":31,"value":5409}," TargetProfile\n",{"type":21,"tag":139,"props":5411,"children":5412},{"class":141,"line":226},[5413],{"type":21,"tag":139,"props":5414,"children":5415},{"emptyLinePlaceholder":194},[5416],{"type":31,"value":197},{"type":21,"tag":139,"props":5418,"children":5419},{"class":141,"line":234},[5420,5425,5429,5434,5439,5443,5448,5452,5456],{"type":21,"tag":139,"props":5421,"children":5422},{"style":152},[5423],{"type":31,"value":5424},"device ",{"type":21,"tag":139,"props":5426,"children":5427},{"style":146},[5428],{"type":31,"value":211},{"type":21,"tag":139,"props":5430,"children":5431},{"style":152},[5432],{"type":31,"value":5433}," qml.device(",{"type":21,"tag":139,"props":5435,"children":5436},{"style":262},[5437],{"type":31,"value":5438},"\"default.qubit\"",{"type":21,"tag":139,"props":5440,"children":5441},{"style":152},[5442],{"type":31,"value":259},{"type":21,"tag":139,"props":5444,"children":5445},{"style":923},[5446],{"type":31,"value":5447},"wires",{"type":21,"tag":139,"props":5449,"children":5450},{"style":146},[5451],{"type":31,"value":211},{"type":21,"tag":139,"props":5453,"children":5454},{"style":214},[5455],{"type":31,"value":293},{"type":21,"tag":139,"props":5457,"children":5458},{"style":152},[5459],{"type":31,"value":270},{"type":21,"tag":139,"props":5461,"children":5462},{"class":141,"line":273},[5463],{"type":21,"tag":139,"props":5464,"children":5465},{"emptyLinePlaceholder":194},[5466],{"type":31,"value":197},{"type":21,"tag":139,"props":5468,"children":5469},{"class":141,"line":309},[5470,5475],{"type":21,"tag":139,"props":5471,"children":5472},{"style":4509},[5473],{"type":31,"value":5474},"@qml.qnode",{"type":21,"tag":139,"props":5476,"children":5477},{"style":152},[5478],{"type":31,"value":5479},"(device)\n",{"type":21,"tag":139,"props":5481,"children":5482},{"class":141,"line":16},[5483,5488,5493],{"type":21,"tag":139,"props":5484,"children":5485},{"style":146},[5486],{"type":31,"value":5487},"def",{"type":21,"tag":139,"props":5489,"children":5490},{"style":4509},[5491],{"type":31,"value":5492}," circuit",{"type":21,"tag":139,"props":5494,"children":5495},{"style":152},[5496],{"type":31,"value":5497},"(theta):\n",{"type":21,"tag":139,"props":5499,"children":5500},{"class":141,"line":361},[5501,5506,5510],{"type":21,"tag":139,"props":5502,"children":5503},{"style":152},[5504],{"type":31,"value":5505},"    qml.H(",{"type":21,"tag":139,"props":5507,"children":5508},{"style":214},[5509],{"type":31,"value":407},{"type":21,"tag":139,"props":5511,"children":5512},{"style":152},[5513],{"type":31,"value":270},{"type":21,"tag":139,"props":5515,"children":5516},{"class":141,"line":369},[5517,5522,5526,5530,5535,5539,5543,5547],{"type":21,"tag":139,"props":5518,"children":5519},{"style":152},[5520],{"type":31,"value":5521},"    qml.CNOT(",{"type":21,"tag":139,"props":5523,"children":5524},{"style":923},[5525],{"type":31,"value":5447},{"type":21,"tag":139,"props":5527,"children":5528},{"style":146},[5529],{"type":31,"value":211},{"type":21,"tag":139,"props":5531,"children":5532},{"style":152},[5533],{"type":31,"value":5534},"[",{"type":21,"tag":139,"props":5536,"children":5537},{"style":214},[5538],{"type":31,"value":407},{"type":21,"tag":139,"props":5540,"children":5541},{"style":152},[5542],{"type":31,"value":259},{"type":21,"tag":139,"props":5544,"children":5545},{"style":214},[5546],{"type":31,"value":328},{"type":21,"tag":139,"props":5548,"children":5549},{"style":152},[5550],{"type":31,"value":599},{"type":21,"tag":139,"props":5552,"children":5553},{"class":141,"line":378},[5554,5559,5563,5567,5571],{"type":21,"tag":139,"props":5555,"children":5556},{"style":152},[5557],{"type":31,"value":5558},"    qml.RY(theta, ",{"type":21,"tag":139,"props":5560,"children":5561},{"style":923},[5562],{"type":31,"value":5447},{"type":21,"tag":139,"props":5564,"children":5565},{"style":146},[5566],{"type":31,"value":211},{"type":21,"tag":139,"props":5568,"children":5569},{"style":214},[5570],{"type":31,"value":328},{"type":21,"tag":139,"props":5572,"children":5573},{"style":152},[5574],{"type":31,"value":270},{"type":21,"tag":139,"props":5576,"children":5577},{"class":141,"line":387},[5578,5583,5588,5592],{"type":21,"tag":139,"props":5579,"children":5580},{"style":146},[5581],{"type":31,"value":5582},"    return",{"type":21,"tag":139,"props":5584,"children":5585},{"style":152},[5586],{"type":31,"value":5587}," qml.expval(qml.PauliZ(",{"type":21,"tag":139,"props":5589,"children":5590},{"style":214},[5591],{"type":31,"value":328},{"type":21,"tag":139,"props":5593,"children":5594},{"style":152},[5595],{"type":31,"value":5596},"))\n",{"type":21,"tag":22,"props":5598,"children":5599},{},[5600,5602,5608],{"type":31,"value":5601},"Note the device here is PennyLane's own local simulator, ",{"type":21,"tag":104,"props":5603,"children":5605},{"className":5604},[],[5606],{"type":31,"value":5607},"default.qubit",{"type":31,"value":5609},", used to build and draw the circuit. It isn't what runs on Azure Quantum hardware. The QASM\u002FQIR conversion below is.",{"type":21,"tag":41,"props":5611,"children":5613},{"id":5612},"compiling-to-qir",[5614],{"type":31,"value":5615},"Compiling to QIR",{"type":21,"tag":129,"props":5617,"children":5619},{"code":5618,"language":133,"meta":7,"className":131,"style":7},"theta = 0.3\nqasm_str = qml.to_openqasm(circuit)(theta)\n\ntarget_profile = TargetProfile.Base\nqir = compile(qasm_str, target_profile)\n",[5620],{"type":21,"tag":104,"props":5621,"children":5622},{"__ignoreMap":7},[5623,5639,5656,5663,5680],{"type":21,"tag":139,"props":5624,"children":5625},{"class":141,"line":142},[5626,5630,5634],{"type":21,"tag":139,"props":5627,"children":5628},{"style":152},[5629],{"type":31,"value":206},{"type":21,"tag":139,"props":5631,"children":5632},{"style":146},[5633],{"type":31,"value":211},{"type":21,"tag":139,"props":5635,"children":5636},{"style":214},[5637],{"type":31,"value":5638}," 0.3\n",{"type":21,"tag":139,"props":5640,"children":5641},{"class":141,"line":168},[5642,5647,5651],{"type":21,"tag":139,"props":5643,"children":5644},{"style":152},[5645],{"type":31,"value":5646},"qasm_str ",{"type":21,"tag":139,"props":5648,"children":5649},{"style":146},[5650],{"type":31,"value":211},{"type":21,"tag":139,"props":5652,"children":5653},{"style":152},[5654],{"type":31,"value":5655}," qml.to_openqasm(circuit)(theta)\n",{"type":21,"tag":139,"props":5657,"children":5658},{"class":141,"line":190},[5659],{"type":21,"tag":139,"props":5660,"children":5661},{"emptyLinePlaceholder":194},[5662],{"type":31,"value":197},{"type":21,"tag":139,"props":5664,"children":5665},{"class":141,"line":200},[5666,5671,5675],{"type":21,"tag":139,"props":5667,"children":5668},{"style":152},[5669],{"type":31,"value":5670},"target_profile ",{"type":21,"tag":139,"props":5672,"children":5673},{"style":146},[5674],{"type":31,"value":211},{"type":21,"tag":139,"props":5676,"children":5677},{"style":152},[5678],{"type":31,"value":5679}," TargetProfile.Base\n",{"type":21,"tag":139,"props":5681,"children":5682},{"class":141,"line":226},[5683,5688,5692,5697],{"type":21,"tag":139,"props":5684,"children":5685},{"style":152},[5686],{"type":31,"value":5687},"qir ",{"type":21,"tag":139,"props":5689,"children":5690},{"style":146},[5691],{"type":31,"value":211},{"type":21,"tag":139,"props":5693,"children":5694},{"style":214},[5695],{"type":31,"value":5696}," compile",{"type":21,"tag":139,"props":5698,"children":5699},{"style":152},[5700],{"type":31,"value":5701},"(qasm_str, target_profile)\n",{"type":21,"tag":22,"props":5703,"children":5704},{},[5705,5711,5713,5719],{"type":21,"tag":104,"props":5706,"children":5708},{"className":5707},[],[5709],{"type":31,"value":5710},"target_profile",{"type":31,"value":5712}," matters here in a way it doesn't for Qiskit or Cirq's integrations: QIR target profiles constrain what a circuit contains (dynamic control flow, mid-circuit measurement, and so on) based on what the specific hardware target supports, so the profile you pick has to match what you intend to submit to. ",{"type":21,"tag":104,"props":5714,"children":5716},{"className":5715},[],[5717],{"type":31,"value":5718},"TargetProfile.Base",{"type":31,"value":5720}," is the most restrictive and broadly compatible option, a reasonable default until a specific target's capabilities call for something more permissive.",{"type":21,"tag":41,"props":5722,"children":5724},{"id":5723},"submitting-the-compiled-circuit",[5725],{"type":31,"value":5726},"Submitting the compiled circuit",{"type":21,"tag":129,"props":5728,"children":5730},{"code":5729,"language":133,"meta":7,"className":131,"style":7},"workspace = Workspace(resource_id=\"\")\n\ntarget = workspace.get_targets(\"rigetti.sim.qvm\")\njob = target.submit(qir, \"pennylane-job\", shots=100)\n\nprint(job.get_results())\n",[5731],{"type":21,"tag":104,"props":5732,"children":5733},{"__ignoreMap":7},[5734,5765,5772,5798,5839,5846],{"type":21,"tag":139,"props":5735,"children":5736},{"class":141,"line":142},[5737,5741,5745,5749,5753,5757,5761],{"type":21,"tag":139,"props":5738,"children":5739},{"style":152},[5740],{"type":31,"value":4596},{"type":21,"tag":139,"props":5742,"children":5743},{"style":146},[5744],{"type":31,"value":211},{"type":21,"tag":139,"props":5746,"children":5747},{"style":152},[5748],{"type":31,"value":4605},{"type":21,"tag":139,"props":5750,"children":5751},{"style":923},[5752],{"type":31,"value":4610},{"type":21,"tag":139,"props":5754,"children":5755},{"style":146},[5756],{"type":31,"value":211},{"type":21,"tag":139,"props":5758,"children":5759},{"style":262},[5760],{"type":31,"value":4619},{"type":21,"tag":139,"props":5762,"children":5763},{"style":152},[5764],{"type":31,"value":270},{"type":21,"tag":139,"props":5766,"children":5767},{"class":141,"line":168},[5768],{"type":21,"tag":139,"props":5769,"children":5770},{"emptyLinePlaceholder":194},[5771],{"type":31,"value":197},{"type":21,"tag":139,"props":5773,"children":5774},{"class":141,"line":190},[5775,5780,5784,5789,5794],{"type":21,"tag":139,"props":5776,"children":5777},{"style":152},[5778],{"type":31,"value":5779},"target ",{"type":21,"tag":139,"props":5781,"children":5782},{"style":146},[5783],{"type":31,"value":211},{"type":21,"tag":139,"props":5785,"children":5786},{"style":152},[5787],{"type":31,"value":5788}," workspace.get_targets(",{"type":21,"tag":139,"props":5790,"children":5791},{"style":262},[5792],{"type":31,"value":5793},"\"rigetti.sim.qvm\"",{"type":21,"tag":139,"props":5795,"children":5796},{"style":152},[5797],{"type":31,"value":270},{"type":21,"tag":139,"props":5799,"children":5800},{"class":141,"line":200},[5801,5805,5809,5814,5819,5823,5827,5831,5835],{"type":21,"tag":139,"props":5802,"children":5803},{"style":152},[5804],{"type":31,"value":4981},{"type":21,"tag":139,"props":5806,"children":5807},{"style":146},[5808],{"type":31,"value":211},{"type":21,"tag":139,"props":5810,"children":5811},{"style":152},[5812],{"type":31,"value":5813}," target.submit(qir, ",{"type":21,"tag":139,"props":5815,"children":5816},{"style":262},[5817],{"type":31,"value":5818},"\"pennylane-job\"",{"type":21,"tag":139,"props":5820,"children":5821},{"style":152},[5822],{"type":31,"value":259},{"type":21,"tag":139,"props":5824,"children":5825},{"style":923},[5826],{"type":31,"value":926},{"type":21,"tag":139,"props":5828,"children":5829},{"style":146},[5830],{"type":31,"value":211},{"type":21,"tag":139,"props":5832,"children":5833},{"style":214},[5834],{"type":31,"value":4905},{"type":21,"tag":139,"props":5836,"children":5837},{"style":152},[5838],{"type":31,"value":270},{"type":21,"tag":139,"props":5840,"children":5841},{"class":141,"line":226},[5842],{"type":21,"tag":139,"props":5843,"children":5844},{"emptyLinePlaceholder":194},[5845],{"type":31,"value":197},{"type":21,"tag":139,"props":5847,"children":5848},{"class":141,"line":234},[5849,5853],{"type":21,"tag":139,"props":5850,"children":5851},{"style":214},[5852],{"type":31,"value":948},{"type":21,"tag":139,"props":5854,"children":5855},{"style":152},[5856],{"type":31,"value":5857},"(job.get_results())\n",{"type":21,"tag":22,"props":5859,"children":5860},{},[5861,5863,5869],{"type":31,"value":5862},"Note this workflow submits pre-compiled QIR directly through ",{"type":21,"tag":104,"props":5864,"children":5866},{"className":5865},[],[5867],{"type":31,"value":5868},"target.submit()",{"type":31,"value":5870},", not through anything resembling a PennyLane execution call. Once the circuit is compiled, PennyLane itself is out of the picture. Everything from here is the same target\u002Fworkspace API the Cirq and Qiskit integrations both build on.",{"type":21,"tag":41,"props":5872,"children":5874},{"id":5873},"why-the-three-integrations-diverge-this-much",[5875],{"type":31,"value":5876},"Why the three integrations diverge this much",{"type":21,"tag":22,"props":5878,"children":5879},{},[5880,5882,5888,5890,5896],{"type":31,"value":5881},"Qiskit gets the deepest integration because Microsoft's QDK is built with it as a first-class target, close enough to a native Qiskit backend that existing Qiskit code mostly works unmodified once the provider and backend are set up. Cirq's ",{"type":21,"tag":104,"props":5883,"children":5885},{"className":5884},[],[5886],{"type":31,"value":5887},"AzureQuantumService",{"type":31,"value":5889}," is a purpose-built bridge, functional but not identical to Cirq's own native execution objects, as the result-type gotcha above shows. PennyLane's path is the least native of the three: rather than a device plugin, it leans on QIR as a common intermediate format, which is a broader engineering choice (QIR is meant to be a vendor-neutral compilation target across numerous frontends) rather than a sign PennyLane support is an afterthought, but it does mean the code looks meaningfully different from PennyLane's typical ",{"type":21,"tag":104,"props":5891,"children":5893},{"className":5892},[],[5894],{"type":31,"value":5895},"qml.device(...)",{"type":31,"value":5897}," pattern elsewhere.",{"type":21,"tag":41,"props":5899,"children":5901},{"id":5900},"try-this-next",[5902],{"type":31,"value":5903},"Try this next",{"type":21,"tag":1112,"props":5905,"children":5906},{},[5907,5926,5938],{"type":21,"tag":72,"props":5908,"children":5909},{},[5910,5912,5917,5918,5924],{"type":31,"value":5911},"Run the same circuit through both ",{"type":21,"tag":104,"props":5913,"children":5915},{"className":5914},[],[5916],{"type":31,"value":4958},{"type":31,"value":3615},{"type":21,"tag":104,"props":5919,"children":5921},{"className":5920},[],[5922],{"type":31,"value":5923},"service.create_job()",{"type":31,"value":5925}," on the Cirq path, and confirm you understand the type difference between the two result objects before writing code that assumes one or the other.",{"type":21,"tag":72,"props":5927,"children":5928},{},[5929,5931,5936],{"type":31,"value":5930},"Try ",{"type":21,"tag":104,"props":5932,"children":5934},{"className":5933},[],[5935],{"type":31,"value":5718},{"type":31,"value":5937}," versus a less restrictive profile on the PennyLane path against a target that supports it, and see what compile-time errors show up when a circuit uses something the stricter profile disallows.",{"type":21,"tag":72,"props":5939,"children":5940},{},[5941,5943,5949],{"type":31,"value":5942},"Compare all three integrations against the same Rigetti or IonQ simulator target and note how much of the setup code (",{"type":21,"tag":104,"props":5944,"children":5946},{"className":5945},[],[5947],{"type":31,"value":5948},"Workspace",{"type":31,"value":5950},", resource ID, target listing) is genuinely shared versus SDK-specific.",{"type":21,"tag":1168,"props":5952,"children":5953},{},[5954],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":5956},[5957,5958,5959,5960,5961,5962,5963,5964,5965],{"id":4491,"depth":168,"text":4494},{"id":4717,"depth":168,"text":4720},{"id":4963,"depth":168,"text":4966},{"id":5131,"depth":168,"text":5134},{"id":5271,"depth":168,"text":5274},{"id":5612,"depth":168,"text":5615},{"id":5723,"depth":168,"text":5726},{"id":5873,"depth":168,"text":5876},{"id":5900,"depth":168,"text":5903},"content:blog:azure-quantum-cirq-pennylane-guide.md","blog\u002Fazure-quantum-cirq-pennylane-guide.md","blog\u002Fazure-quantum-cirq-pennylane-guide",{"_path":3646,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":5970,"description":5971,"date":4471,"author":11,"tags":5972,"readingTime":273,"body":5974,"_type":1187,"_id":6842,"_source":1189,"_file":6843,"_stem":6844,"_extension":1192},"Running Qiskit Circuits on Azure Quantum: A Practical Guide","How to submit Qiskit circuits to Azure Quantum hardware using the current qdk package: connecting to a workspace, listing targets, running on real hardware, handling qubit loss, and running locally on the QDK's sparse simulator without Azure at all.",[14,1207,5973],"Best Practices",{"type":18,"children":5975,"toc":6832},[5976,5997,6028,6034,6039,6045,6114,6119,6125,6232,6237,6243,6528,6541,6547,6552,6628,6648,6654,6666,6672,6677,6772,6777,6781,6828],{"type":21,"tag":22,"props":5977,"children":5978},{},[5979,5981,5987,5989,5995],{"type":31,"value":5980},"Azure Quantum gives Qiskit users access to hardware from multiple vendors, Rigetti, IonQ, and Quantinuum among them, through one workspace and one billing relationship. This walkthrough uses Microsoft's current Quantum Development Kit (QDK) package pattern, which replaced the older standalone ",{"type":21,"tag":104,"props":5982,"children":5984},{"className":5983},[],[5985],{"type":31,"value":5986},"azure-quantum",{"type":31,"value":5988}," package, covered as a migration note in our ",{"type":21,"tag":26,"props":5990,"children":5992},{"href":5991},"\u002Fblog\u002Fcommon-qiskit-errors-and-fixes",[5993],{"type":31,"value":5994},"common Qiskit errors post",{"type":31,"value":5996}," if you're updating existing code.",{"type":21,"tag":129,"props":5998,"children":6000},{"className":4499,"code":5999,"language":4498,"meta":7,"style":7},"pip install --upgrade \"qdk[azure,qiskit]\" ipykernel\n",[6001],{"type":21,"tag":104,"props":6002,"children":6003},{"__ignoreMap":7},[6004],{"type":21,"tag":139,"props":6005,"children":6006},{"class":141,"line":142},[6007,6011,6015,6019,6024],{"type":21,"tag":139,"props":6008,"children":6009},{"style":4509},[6010],{"type":31,"value":4512},{"type":21,"tag":139,"props":6012,"children":6013},{"style":262},[6014],{"type":31,"value":4517},{"type":21,"tag":139,"props":6016,"children":6017},{"style":214},[6018],{"type":31,"value":4522},{"type":21,"tag":139,"props":6020,"children":6021},{"style":262},[6022],{"type":31,"value":6023}," \"qdk[azure,qiskit]\"",{"type":21,"tag":139,"props":6025,"children":6026},{"style":262},[6027],{"type":31,"value":4532},{"type":21,"tag":41,"props":6029,"children":6031},{"id":6030},"prerequisites",[6032],{"type":31,"value":6033},"Prerequisites",{"type":21,"tag":22,"props":6035,"children":6036},{},[6037],{"type":31,"value":6038},"You need an Azure Quantum workspace already created in an Azure subscription, which is where billing, quotas, and provider access (which hardware vendors you've enabled) live. This guide assumes that workspace already exists. Setting one up happens through the Azure portal, not through Qiskit code.",{"type":21,"tag":41,"props":6040,"children":6042},{"id":6041},"connecting-to-your-workspace",[6043],{"type":31,"value":6044},"Connecting to your workspace",{"type":21,"tag":129,"props":6046,"children":6048},{"className":131,"code":6047,"language":133,"meta":7,"style":7},"from qdk.azure import Workspace\n\nworkspace = Workspace(resource_id=\"\")  # your workspace's resource ID, from the Azure portal\n",[6049],{"type":21,"tag":104,"props":6050,"children":6051},{"__ignoreMap":7},[6052,6071,6078],{"type":21,"tag":139,"props":6053,"children":6054},{"class":141,"line":142},[6055,6059,6063,6067],{"type":21,"tag":139,"props":6056,"children":6057},{"style":146},[6058],{"type":31,"value":149},{"type":21,"tag":139,"props":6060,"children":6061},{"style":152},[6062],{"type":31,"value":4551},{"type":21,"tag":139,"props":6064,"children":6065},{"style":146},[6066],{"type":31,"value":160},{"type":21,"tag":139,"props":6068,"children":6069},{"style":152},[6070],{"type":31,"value":4560},{"type":21,"tag":139,"props":6072,"children":6073},{"class":141,"line":168},[6074],{"type":21,"tag":139,"props":6075,"children":6076},{"emptyLinePlaceholder":194},[6077],{"type":31,"value":197},{"type":21,"tag":139,"props":6079,"children":6080},{"class":141,"line":190},[6081,6085,6089,6093,6097,6101,6105,6109],{"type":21,"tag":139,"props":6082,"children":6083},{"style":152},[6084],{"type":31,"value":4596},{"type":21,"tag":139,"props":6086,"children":6087},{"style":146},[6088],{"type":31,"value":211},{"type":21,"tag":139,"props":6090,"children":6091},{"style":152},[6092],{"type":31,"value":4605},{"type":21,"tag":139,"props":6094,"children":6095},{"style":923},[6096],{"type":31,"value":4610},{"type":21,"tag":139,"props":6098,"children":6099},{"style":146},[6100],{"type":31,"value":211},{"type":21,"tag":139,"props":6102,"children":6103},{"style":262},[6104],{"type":31,"value":4619},{"type":21,"tag":139,"props":6106,"children":6107},{"style":152},[6108],{"type":31,"value":4624},{"type":21,"tag":139,"props":6110,"children":6111},{"style":220},[6112],{"type":31,"value":6113},"# your workspace's resource ID, from the Azure portal\n",{"type":21,"tag":22,"props":6115,"children":6116},{},[6117],{"type":31,"value":6118},"The resource ID identifies your specific workspace and is found on its Overview page in the Azure portal. Nothing about this step is Qiskit-specific: it's the identical connection object other language integrations (Cirq, Q#) use too.",{"type":21,"tag":41,"props":6120,"children":6122},{"id":6121},"listing-available-targets",[6123],{"type":31,"value":6124},"Listing available targets",{"type":21,"tag":129,"props":6126,"children":6128},{"className":131,"code":6127,"language":133,"meta":7,"style":7},"from qdk.azure.qiskit import AzureQuantumProvider\n\nprovider = AzureQuantumProvider(workspace)\n\nfor backend in provider.backends():\n    print(\"- \" + backend.name)\n",[6129],{"type":21,"tag":104,"props":6130,"children":6131},{"__ignoreMap":7},[6132,6153,6160,6177,6184,6205],{"type":21,"tag":139,"props":6133,"children":6134},{"class":141,"line":142},[6135,6139,6144,6148],{"type":21,"tag":139,"props":6136,"children":6137},{"style":146},[6138],{"type":31,"value":149},{"type":21,"tag":139,"props":6140,"children":6141},{"style":152},[6142],{"type":31,"value":6143}," qdk.azure.qiskit ",{"type":21,"tag":139,"props":6145,"children":6146},{"style":146},[6147],{"type":31,"value":160},{"type":21,"tag":139,"props":6149,"children":6150},{"style":152},[6151],{"type":31,"value":6152}," AzureQuantumProvider\n",{"type":21,"tag":139,"props":6154,"children":6155},{"class":141,"line":168},[6156],{"type":21,"tag":139,"props":6157,"children":6158},{"emptyLinePlaceholder":194},[6159],{"type":31,"value":197},{"type":21,"tag":139,"props":6161,"children":6162},{"class":141,"line":190},[6163,6168,6172],{"type":21,"tag":139,"props":6164,"children":6165},{"style":152},[6166],{"type":31,"value":6167},"provider ",{"type":21,"tag":139,"props":6169,"children":6170},{"style":146},[6171],{"type":31,"value":211},{"type":21,"tag":139,"props":6173,"children":6174},{"style":152},[6175],{"type":31,"value":6176}," AzureQuantumProvider(workspace)\n",{"type":21,"tag":139,"props":6178,"children":6179},{"class":141,"line":200},[6180],{"type":21,"tag":139,"props":6181,"children":6182},{"emptyLinePlaceholder":194},[6183],{"type":31,"value":197},{"type":21,"tag":139,"props":6185,"children":6186},{"class":141,"line":226},[6187,6191,6196,6200],{"type":21,"tag":139,"props":6188,"children":6189},{"style":146},[6190],{"type":31,"value":1486},{"type":21,"tag":139,"props":6192,"children":6193},{"style":152},[6194],{"type":31,"value":6195}," backend ",{"type":21,"tag":139,"props":6197,"children":6198},{"style":146},[6199],{"type":31,"value":1496},{"type":21,"tag":139,"props":6201,"children":6202},{"style":152},[6203],{"type":31,"value":6204}," provider.backends():\n",{"type":21,"tag":139,"props":6206,"children":6207},{"class":141,"line":234},[6208,6213,6217,6222,6227],{"type":21,"tag":139,"props":6209,"children":6210},{"style":214},[6211],{"type":31,"value":6212},"    print",{"type":21,"tag":139,"props":6214,"children":6215},{"style":152},[6216],{"type":31,"value":953},{"type":21,"tag":139,"props":6218,"children":6219},{"style":262},[6220],{"type":31,"value":6221},"\"- \"",{"type":21,"tag":139,"props":6223,"children":6224},{"style":146},[6225],{"type":31,"value":6226}," +",{"type":21,"tag":139,"props":6228,"children":6229},{"style":152},[6230],{"type":31,"value":6231}," backend.name)\n",{"type":21,"tag":22,"props":6233,"children":6234},{},[6235],{"type":31,"value":6236},"Only the targets enabled for your specific workspace show up here, which depends on which hardware providers you've added in the Azure portal, not on what Azure Quantum offers in general. A workspace with only Rigetti enabled won't list IonQ or Quantinuum targets, regardless of what's technically available on the platform.",{"type":21,"tag":41,"props":6238,"children":6240},{"id":6239},"running-a-circuit",[6241],{"type":31,"value":6242},"Running a circuit",{"type":21,"tag":129,"props":6244,"children":6246},{"className":131,"code":6245,"language":133,"meta":7,"style":7},"from qiskit import QuantumCircuit\n\ncircuit = QuantumCircuit(3, 3)\ncircuit.h(0)\ncircuit.cx(0, 1)\ncircuit.cx(1, 2)\ncircuit.measure([0, 1, 2], [0, 1, 2])\n\nbackend = provider.get_backend(\"rigetti.sim.qvm\")\njob = backend.run(circuit, shots=1000)\n\nresult = job.result()\nprint(result.get_counts(circuit))\n",[6247],{"type":21,"tag":104,"props":6248,"children":6249},{"__ignoreMap":7},[6250,6270,6277,6309,6325,6349,6372,6429,6436,6461,6493,6500,6516],{"type":21,"tag":139,"props":6251,"children":6252},{"class":141,"line":142},[6253,6257,6261,6265],{"type":21,"tag":139,"props":6254,"children":6255},{"style":146},[6256],{"type":31,"value":149},{"type":21,"tag":139,"props":6258,"children":6259},{"style":152},[6260],{"type":31,"value":155},{"type":21,"tag":139,"props":6262,"children":6263},{"style":146},[6264],{"type":31,"value":160},{"type":21,"tag":139,"props":6266,"children":6267},{"style":152},[6268],{"type":31,"value":6269}," QuantumCircuit\n",{"type":21,"tag":139,"props":6271,"children":6272},{"class":141,"line":168},[6273],{"type":21,"tag":139,"props":6274,"children":6275},{"emptyLinePlaceholder":194},[6276],{"type":31,"value":197},{"type":21,"tag":139,"props":6278,"children":6279},{"class":141,"line":190},[6280,6284,6288,6293,6297,6301,6305],{"type":21,"tag":139,"props":6281,"children":6282},{"style":152},[6283],{"type":31,"value":4779},{"type":21,"tag":139,"props":6285,"children":6286},{"style":146},[6287],{"type":31,"value":211},{"type":21,"tag":139,"props":6289,"children":6290},{"style":152},[6291],{"type":31,"value":6292}," QuantumCircuit(",{"type":21,"tag":139,"props":6294,"children":6295},{"style":214},[6296],{"type":31,"value":254},{"type":21,"tag":139,"props":6298,"children":6299},{"style":152},[6300],{"type":31,"value":259},{"type":21,"tag":139,"props":6302,"children":6303},{"style":214},[6304],{"type":31,"value":254},{"type":21,"tag":139,"props":6306,"children":6307},{"style":152},[6308],{"type":31,"value":270},{"type":21,"tag":139,"props":6310,"children":6311},{"class":141,"line":200},[6312,6317,6321],{"type":21,"tag":139,"props":6313,"children":6314},{"style":152},[6315],{"type":31,"value":6316},"circuit.h(",{"type":21,"tag":139,"props":6318,"children":6319},{"style":214},[6320],{"type":31,"value":407},{"type":21,"tag":139,"props":6322,"children":6323},{"style":152},[6324],{"type":31,"value":270},{"type":21,"tag":139,"props":6326,"children":6327},{"class":141,"line":226},[6328,6333,6337,6341,6345],{"type":21,"tag":139,"props":6329,"children":6330},{"style":152},[6331],{"type":31,"value":6332},"circuit.cx(",{"type":21,"tag":139,"props":6334,"children":6335},{"style":214},[6336],{"type":31,"value":407},{"type":21,"tag":139,"props":6338,"children":6339},{"style":152},[6340],{"type":31,"value":259},{"type":21,"tag":139,"props":6342,"children":6343},{"style":214},[6344],{"type":31,"value":328},{"type":21,"tag":139,"props":6346,"children":6347},{"style":152},[6348],{"type":31,"value":270},{"type":21,"tag":139,"props":6350,"children":6351},{"class":141,"line":234},[6352,6356,6360,6364,6368],{"type":21,"tag":139,"props":6353,"children":6354},{"style":152},[6355],{"type":31,"value":6332},{"type":21,"tag":139,"props":6357,"children":6358},{"style":214},[6359],{"type":31,"value":328},{"type":21,"tag":139,"props":6361,"children":6362},{"style":152},[6363],{"type":31,"value":259},{"type":21,"tag":139,"props":6365,"children":6366},{"style":214},[6367],{"type":31,"value":293},{"type":21,"tag":139,"props":6369,"children":6370},{"style":152},[6371],{"type":31,"value":270},{"type":21,"tag":139,"props":6373,"children":6374},{"class":141,"line":273},[6375,6380,6384,6388,6392,6396,6400,6405,6409,6413,6417,6421,6425],{"type":21,"tag":139,"props":6376,"children":6377},{"style":152},[6378],{"type":31,"value":6379},"circuit.measure([",{"type":21,"tag":139,"props":6381,"children":6382},{"style":214},[6383],{"type":31,"value":407},{"type":21,"tag":139,"props":6385,"children":6386},{"style":152},[6387],{"type":31,"value":259},{"type":21,"tag":139,"props":6389,"children":6390},{"style":214},[6391],{"type":31,"value":328},{"type":21,"tag":139,"props":6393,"children":6394},{"style":152},[6395],{"type":31,"value":259},{"type":21,"tag":139,"props":6397,"children":6398},{"style":214},[6399],{"type":31,"value":293},{"type":21,"tag":139,"props":6401,"children":6402},{"style":152},[6403],{"type":31,"value":6404},"], [",{"type":21,"tag":139,"props":6406,"children":6407},{"style":214},[6408],{"type":31,"value":407},{"type":21,"tag":139,"props":6410,"children":6411},{"style":152},[6412],{"type":31,"value":259},{"type":21,"tag":139,"props":6414,"children":6415},{"style":214},[6416],{"type":31,"value":328},{"type":21,"tag":139,"props":6418,"children":6419},{"style":152},[6420],{"type":31,"value":259},{"type":21,"tag":139,"props":6422,"children":6423},{"style":214},[6424],{"type":31,"value":293},{"type":21,"tag":139,"props":6426,"children":6427},{"style":152},[6428],{"type":31,"value":599},{"type":21,"tag":139,"props":6430,"children":6431},{"class":141,"line":309},[6432],{"type":21,"tag":139,"props":6433,"children":6434},{"emptyLinePlaceholder":194},[6435],{"type":31,"value":197},{"type":21,"tag":139,"props":6437,"children":6438},{"class":141,"line":16},[6439,6444,6448,6453,6457],{"type":21,"tag":139,"props":6440,"children":6441},{"style":152},[6442],{"type":31,"value":6443},"backend ",{"type":21,"tag":139,"props":6445,"children":6446},{"style":146},[6447],{"type":31,"value":211},{"type":21,"tag":139,"props":6449,"children":6450},{"style":152},[6451],{"type":31,"value":6452}," provider.get_backend(",{"type":21,"tag":139,"props":6454,"children":6455},{"style":262},[6456],{"type":31,"value":5793},{"type":21,"tag":139,"props":6458,"children":6459},{"style":152},[6460],{"type":31,"value":270},{"type":21,"tag":139,"props":6462,"children":6463},{"class":141,"line":361},[6464,6468,6472,6477,6481,6485,6489],{"type":21,"tag":139,"props":6465,"children":6466},{"style":152},[6467],{"type":31,"value":4981},{"type":21,"tag":139,"props":6469,"children":6470},{"style":146},[6471],{"type":31,"value":211},{"type":21,"tag":139,"props":6473,"children":6474},{"style":152},[6475],{"type":31,"value":6476}," backend.run(circuit, ",{"type":21,"tag":139,"props":6478,"children":6479},{"style":923},[6480],{"type":31,"value":926},{"type":21,"tag":139,"props":6482,"children":6483},{"style":146},[6484],{"type":31,"value":211},{"type":21,"tag":139,"props":6486,"children":6487},{"style":214},[6488],{"type":31,"value":1730},{"type":21,"tag":139,"props":6490,"children":6491},{"style":152},[6492],{"type":31,"value":270},{"type":21,"tag":139,"props":6494,"children":6495},{"class":141,"line":369},[6496],{"type":21,"tag":139,"props":6497,"children":6498},{"emptyLinePlaceholder":194},[6499],{"type":31,"value":197},{"type":21,"tag":139,"props":6501,"children":6502},{"class":141,"line":378},[6503,6507,6511],{"type":21,"tag":139,"props":6504,"children":6505},{"style":152},[6506],{"type":31,"value":4868},{"type":21,"tag":139,"props":6508,"children":6509},{"style":146},[6510],{"type":31,"value":211},{"type":21,"tag":139,"props":6512,"children":6513},{"style":152},[6514],{"type":31,"value":6515}," job.result()\n",{"type":21,"tag":139,"props":6517,"children":6518},{"class":141,"line":387},[6519,6523],{"type":21,"tag":139,"props":6520,"children":6521},{"style":214},[6522],{"type":31,"value":948},{"type":21,"tag":139,"props":6524,"children":6525},{"style":152},[6526],{"type":31,"value":6527},"(result.get_counts(circuit))\n",{"type":21,"tag":22,"props":6529,"children":6530},{},[6531,6533,6539],{"type":31,"value":6532},"This targets Rigetti's simulator, a free target on most workspaces, useful for confirming your circuit and workspace connection both work before spending real budget on QPU time. Swap the backend name for a real QPU target (one of the names printed by ",{"type":21,"tag":104,"props":6534,"children":6536},{"className":6535},[],[6537],{"type":31,"value":6538},"provider.backends()",{"type":31,"value":6540}," above) once you're ready to run on hardware.",{"type":21,"tag":41,"props":6542,"children":6544},{"id":6543},"handling-qubit-loss-in-results",[6545],{"type":31,"value":6546},"Handling qubit loss in results",{"type":21,"tag":22,"props":6548,"children":6549},{},[6550],{"type":31,"value":6551},"Some hardware modalities lose a qubit mid-shot on occasion (an atom escaping an optical trap, for instance), and Azure Quantum's Qiskit results distinguish shots that completed cleanly from the raw total:",{"type":21,"tag":129,"props":6553,"children":6555},{"className":131,"code":6554,"language":133,"meta":7,"style":7},"print(\"Counts:\", result.results[0].data.counts)          # shots without qubit loss\nprint(\"Raw counts:\", result.results[0].data.raw_counts)   # every shot, including lost ones\n",[6556],{"type":21,"tag":104,"props":6557,"children":6558},{"__ignoreMap":7},[6559,6594],{"type":21,"tag":139,"props":6560,"children":6561},{"class":141,"line":142},[6562,6566,6570,6575,6580,6584,6589],{"type":21,"tag":139,"props":6563,"children":6564},{"style":214},[6565],{"type":31,"value":948},{"type":21,"tag":139,"props":6567,"children":6568},{"style":152},[6569],{"type":31,"value":953},{"type":21,"tag":139,"props":6571,"children":6572},{"style":262},[6573],{"type":31,"value":6574},"\"Counts:\"",{"type":21,"tag":139,"props":6576,"children":6577},{"style":152},[6578],{"type":31,"value":6579},", result.results[",{"type":21,"tag":139,"props":6581,"children":6582},{"style":214},[6583],{"type":31,"value":407},{"type":21,"tag":139,"props":6585,"children":6586},{"style":152},[6587],{"type":31,"value":6588},"].data.counts)          ",{"type":21,"tag":139,"props":6590,"children":6591},{"style":220},[6592],{"type":31,"value":6593},"# shots without qubit loss\n",{"type":21,"tag":139,"props":6595,"children":6596},{"class":141,"line":168},[6597,6601,6605,6610,6614,6618,6623],{"type":21,"tag":139,"props":6598,"children":6599},{"style":214},[6600],{"type":31,"value":948},{"type":21,"tag":139,"props":6602,"children":6603},{"style":152},[6604],{"type":31,"value":953},{"type":21,"tag":139,"props":6606,"children":6607},{"style":262},[6608],{"type":31,"value":6609},"\"Raw counts:\"",{"type":21,"tag":139,"props":6611,"children":6612},{"style":152},[6613],{"type":31,"value":6579},{"type":21,"tag":139,"props":6615,"children":6616},{"style":214},[6617],{"type":31,"value":407},{"type":21,"tag":139,"props":6619,"children":6620},{"style":152},[6621],{"type":31,"value":6622},"].data.raw_counts)   ",{"type":21,"tag":139,"props":6624,"children":6625},{"style":220},[6626],{"type":31,"value":6627},"# every shot, including lost ones\n",{"type":21,"tag":22,"props":6629,"children":6630},{},[6631,6633,6639,6640,6646],{"type":31,"value":6632},"If ",{"type":21,"tag":104,"props":6634,"children":6636},{"className":6635},[],[6637],{"type":31,"value":6638},"counts",{"type":31,"value":3615},{"type":21,"tag":104,"props":6641,"children":6643},{"className":6642},[],[6644],{"type":31,"value":6645},"raw_counts",{"type":31,"value":6647}," differ, some fraction of your shots were dropped due to qubit loss during that run, worth checking on unfamiliar hardware before assuming your total shot count matches what you requested. For targets that don't experience qubit loss, the two are identical.",{"type":21,"tag":41,"props":6649,"children":6651},{"id":6650},"estimating-cost-before-running-on-real-hardware",[6652],{"type":31,"value":6653},"Estimating cost before running on real hardware",{"type":21,"tag":22,"props":6655,"children":6656},{},[6657,6659,6664],{"type":31,"value":6658},"Real QPU targets bill per shot or per task depending on the provider, and both IonQ's and Quantinuum's pricing details live in the Azure Quantum documentation rather than in the SDK itself. Check current pricing, and your workspace's specific rate, in the Provider tab of your workspace in the Azure portal before submitting a real hardware job at any meaningful shot count, the same discipline worth applying to any pay-per-shot QPU access, ",{"type":21,"tag":26,"props":6660,"children":6661},{"href":3653},[6662],{"type":31,"value":6663},"Amazon Braket included",{"type":31,"value":6665},".",{"type":21,"tag":41,"props":6667,"children":6669},{"id":6668},"running-locally-without-azure-at-all",[6670],{"type":31,"value":6671},"Running locally without Azure at all",{"type":21,"tag":22,"props":6673,"children":6674},{},[6675],{"type":31,"value":6676},"The QDK also ships a local simulator that needs no Azure connection or workspace, useful for iterating on circuit logic before you're ready to submit anything remotely:",{"type":21,"tag":129,"props":6678,"children":6680},{"className":131,"code":6679,"language":133,"meta":7,"style":7},"from qsharp.interop.qiskit import QSharpBackend\n\nbackend = QSharpBackend()\njob = backend.run(circuit)\ncounts = job.result().get_counts()\nprint(counts)\n",[6681],{"type":21,"tag":104,"props":6682,"children":6683},{"__ignoreMap":7},[6684,6705,6712,6728,6744,6760],{"type":21,"tag":139,"props":6685,"children":6686},{"class":141,"line":142},[6687,6691,6696,6700],{"type":21,"tag":139,"props":6688,"children":6689},{"style":146},[6690],{"type":31,"value":149},{"type":21,"tag":139,"props":6692,"children":6693},{"style":152},[6694],{"type":31,"value":6695}," qsharp.interop.qiskit ",{"type":21,"tag":139,"props":6697,"children":6698},{"style":146},[6699],{"type":31,"value":160},{"type":21,"tag":139,"props":6701,"children":6702},{"style":152},[6703],{"type":31,"value":6704}," QSharpBackend\n",{"type":21,"tag":139,"props":6706,"children":6707},{"class":141,"line":168},[6708],{"type":21,"tag":139,"props":6709,"children":6710},{"emptyLinePlaceholder":194},[6711],{"type":31,"value":197},{"type":21,"tag":139,"props":6713,"children":6714},{"class":141,"line":190},[6715,6719,6723],{"type":21,"tag":139,"props":6716,"children":6717},{"style":152},[6718],{"type":31,"value":6443},{"type":21,"tag":139,"props":6720,"children":6721},{"style":146},[6722],{"type":31,"value":211},{"type":21,"tag":139,"props":6724,"children":6725},{"style":152},[6726],{"type":31,"value":6727}," QSharpBackend()\n",{"type":21,"tag":139,"props":6729,"children":6730},{"class":141,"line":200},[6731,6735,6739],{"type":21,"tag":139,"props":6732,"children":6733},{"style":152},[6734],{"type":31,"value":4981},{"type":21,"tag":139,"props":6736,"children":6737},{"style":146},[6738],{"type":31,"value":211},{"type":21,"tag":139,"props":6740,"children":6741},{"style":152},[6742],{"type":31,"value":6743}," backend.run(circuit)\n",{"type":21,"tag":139,"props":6745,"children":6746},{"class":141,"line":226},[6747,6751,6755],{"type":21,"tag":139,"props":6748,"children":6749},{"style":152},[6750],{"type":31,"value":911},{"type":21,"tag":139,"props":6752,"children":6753},{"style":146},[6754],{"type":31,"value":211},{"type":21,"tag":139,"props":6756,"children":6757},{"style":152},[6758],{"type":31,"value":6759}," job.result().get_counts()\n",{"type":21,"tag":139,"props":6761,"children":6762},{"class":141,"line":234},[6763,6767],{"type":21,"tag":139,"props":6764,"children":6765},{"style":214},[6766],{"type":31,"value":948},{"type":21,"tag":139,"props":6768,"children":6769},{"style":152},[6770],{"type":31,"value":6771},"(counts)\n",{"type":21,"tag":22,"props":6773,"children":6774},{},[6775],{"type":31,"value":6776},"This is a genuinely separate code path from the Azure-connected backend above, worth using during development specifically because it has zero cost and zero queue time, reserving the Azure-connected run for once real hardware or a provider-specific cloud simulator is what you need.",{"type":21,"tag":41,"props":6778,"children":6779},{"id":5900},[6780],{"type":31,"value":5903},{"type":21,"tag":1112,"props":6782,"children":6783},{},[6784,6805,6816],{"type":21,"tag":72,"props":6785,"children":6786},{},[6787,6789,6795,6797,6803],{"type":31,"value":6788},"Run the identical circuit against ",{"type":21,"tag":104,"props":6790,"children":6792},{"className":6791},[],[6793],{"type":31,"value":6794},"rigetti.sim.qvm",{"type":31,"value":6796}," and the local ",{"type":21,"tag":104,"props":6798,"children":6800},{"className":6799},[],[6801],{"type":31,"value":6802},"QSharpBackend",{"type":31,"value":6804},", and confirm the resulting counts distributions match within normal shot noise, a good sanity check that your circuit behaves consistently across both paths.",{"type":21,"tag":72,"props":6806,"children":6807},{},[6808,6810,6815],{"type":31,"value":6809},"List your workspace's available targets and examine queue times before submitting to real hardware, since a busy QPU target behaves like a stuck job the same way it does on ",{"type":21,"tag":26,"props":6811,"children":6812},{"href":1970},[6813],{"type":31,"value":6814},"IBM's free tier",{"type":31,"value":6665},{"type":21,"tag":72,"props":6817,"children":6818},{},[6819,6821,6826],{"type":31,"value":6820},"Compare this workflow against ",{"type":21,"tag":26,"props":6822,"children":6823},{"href":5991},[6824],{"type":31,"value":6825},"running Qiskit on IBM's own Runtime service",{"type":31,"value":6827}," if you're deciding between IBM-direct access and multi-vendor access through Azure Quantum.",{"type":21,"tag":1168,"props":6829,"children":6830},{},[6831],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":6833},[6834,6835,6836,6837,6838,6839,6840,6841],{"id":6030,"depth":168,"text":6033},{"id":6041,"depth":168,"text":6044},{"id":6121,"depth":168,"text":6124},{"id":6239,"depth":168,"text":6242},{"id":6543,"depth":168,"text":6546},{"id":6650,"depth":168,"text":6653},{"id":6668,"depth":168,"text":6671},{"id":5900,"depth":168,"text":5903},"content:blog:azure-quantum-qiskit-practical-guide.md","blog\u002Fazure-quantum-qiskit-practical-guide.md","blog\u002Fazure-quantum-qiskit-practical-guide",{"_path":3653,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":6846,"description":6847,"date":4471,"author":11,"tags":6848,"readingTime":234,"body":6849,"_type":1187,"_id":7207,"_source":1189,"_file":7208,"_stem":7209,"_extension":1192},"Common Amazon Braket Errors and How to Fix Them","The mistakes that trip up Braket users most: missing AWS credentials, S3 bucket region mismatches, IAM permission gaps, device availability windows, and cost surprises on real QPU tasks. Each with the fix.",[3041,5973,1207],{"type":18,"children":6850,"toc":7198},[6851,6856,6866,6948,6991,7003,7031,7037,7090,7129,7135,7156,7162,7183,7189,7194],{"type":21,"tag":22,"props":6852,"children":6853},{},[6854],{"type":31,"value":6855},"Braket's errors are different in character from Qiskit's, Cirq's, or PennyLane's, because Braket rides on top of AWS infrastructure. Most problems aren't about circuit construction. They're about AWS account setup, permissions, and the operational realities of submitting jobs to hardware you don't control the schedule of.",{"type":21,"tag":41,"props":6857,"children":6859},{"id":6858},"nocredentialserror",[6860],{"type":21,"tag":104,"props":6861,"children":6863},{"className":6862},[],[6864],{"type":31,"value":6865},"NoCredentialsError",{"type":21,"tag":129,"props":6867,"children":6869},{"className":131,"code":6868,"language":133,"meta":7,"style":7},"from braket.aws import AwsDevice\ndevice = AwsDevice(\"arn:aws:braket:::device\u002Fquantum-simulator\u002Famazon\u002Fsv1\")\ndevice.run(circuit, shots=100)  # botocore.exceptions.NoCredentialsError\n",[6870],{"type":21,"tag":104,"props":6871,"children":6872},{"__ignoreMap":7},[6873,6894,6919],{"type":21,"tag":139,"props":6874,"children":6875},{"class":141,"line":142},[6876,6880,6885,6889],{"type":21,"tag":139,"props":6877,"children":6878},{"style":146},[6879],{"type":31,"value":149},{"type":21,"tag":139,"props":6881,"children":6882},{"style":152},[6883],{"type":31,"value":6884}," braket.aws ",{"type":21,"tag":139,"props":6886,"children":6887},{"style":146},[6888],{"type":31,"value":160},{"type":21,"tag":139,"props":6890,"children":6891},{"style":152},[6892],{"type":31,"value":6893}," AwsDevice\n",{"type":21,"tag":139,"props":6895,"children":6896},{"class":141,"line":168},[6897,6901,6905,6910,6915],{"type":21,"tag":139,"props":6898,"children":6899},{"style":152},[6900],{"type":31,"value":5424},{"type":21,"tag":139,"props":6902,"children":6903},{"style":146},[6904],{"type":31,"value":211},{"type":21,"tag":139,"props":6906,"children":6907},{"style":152},[6908],{"type":31,"value":6909}," AwsDevice(",{"type":21,"tag":139,"props":6911,"children":6912},{"style":262},[6913],{"type":31,"value":6914},"\"arn:aws:braket:::device\u002Fquantum-simulator\u002Famazon\u002Fsv1\"",{"type":21,"tag":139,"props":6916,"children":6917},{"style":152},[6918],{"type":31,"value":270},{"type":21,"tag":139,"props":6920,"children":6921},{"class":141,"line":190},[6922,6927,6931,6935,6939,6943],{"type":21,"tag":139,"props":6923,"children":6924},{"style":152},[6925],{"type":31,"value":6926},"device.run(circuit, ",{"type":21,"tag":139,"props":6928,"children":6929},{"style":923},[6930],{"type":31,"value":926},{"type":21,"tag":139,"props":6932,"children":6933},{"style":146},[6934],{"type":31,"value":211},{"type":21,"tag":139,"props":6936,"children":6937},{"style":214},[6938],{"type":31,"value":4905},{"type":21,"tag":139,"props":6940,"children":6941},{"style":152},[6942],{"type":31,"value":4624},{"type":21,"tag":139,"props":6944,"children":6945},{"style":220},[6946],{"type":31,"value":6947},"# botocore.exceptions.NoCredentialsError\n",{"type":21,"tag":22,"props":6949,"children":6950},{},[6951,6953,6959,6961,6967,6968,6974,6976,6981,6983,6989],{"type":31,"value":6952},"Braket's SDK authenticates through the same credential chain as any AWS SDK (boto3), not through its own login system. If credentials aren't configured, either via ",{"type":21,"tag":104,"props":6954,"children":6956},{"className":6955},[],[6957],{"type":31,"value":6958},"aws configure",{"type":31,"value":6960},", environment variables (",{"type":21,"tag":104,"props":6962,"children":6964},{"className":6963},[],[6965],{"type":31,"value":6966},"AWS_ACCESS_KEY_ID",{"type":31,"value":259},{"type":21,"tag":104,"props":6969,"children":6971},{"className":6970},[],[6972],{"type":31,"value":6973},"AWS_SECRET_ACCESS_KEY",{"type":31,"value":6975},"), or an attached IAM role if you're running inside AWS infrastructure, every Braket call fails at the authentication step regardless of what the circuit does. Run ",{"type":21,"tag":104,"props":6977,"children":6979},{"className":6978},[],[6980],{"type":31,"value":6958},{"type":31,"value":6982}," once locally, or verify credentials are present with ",{"type":21,"tag":104,"props":6984,"children":6986},{"className":6985},[],[6987],{"type":31,"value":6988},"aws sts get-caller-identity",{"type":31,"value":6990}," before debugging anything circuit-related.",{"type":21,"tag":41,"props":6992,"children":6994},{"id":6993},"accessdeniedexception-on-a-device-or-s3-bucket",[6995,7001],{"type":21,"tag":104,"props":6996,"children":6998},{"className":6997},[],[6999],{"type":31,"value":7000},"AccessDeniedException",{"type":31,"value":7002}," on a device or S3 bucket",{"type":21,"tag":22,"props":7004,"children":7005},{},[7006,7008,7014,7016,7022,7023,7029],{"type":31,"value":7007},"Braket needs two separate permission grants: access to submit tasks to the specific device or simulator ARN, and write access to the S3 bucket where results get stored. An IAM policy that grants one but not the other produces an access-denied error that names the resource but not always clearly which permission is missing. Check that your IAM role or user has both ",{"type":21,"tag":104,"props":7009,"children":7011},{"className":7010},[],[7012],{"type":31,"value":7013},"braket:*",{"type":31,"value":7015}," permissions scoped to the device you're targeting and ",{"type":21,"tag":104,"props":7017,"children":7019},{"className":7018},[],[7020],{"type":31,"value":7021},"s3:PutObject",{"type":31,"value":5062},{"type":21,"tag":104,"props":7024,"children":7026},{"className":7025},[],[7027],{"type":31,"value":7028},"s3:GetObject",{"type":31,"value":7030}," on the results bucket.",{"type":21,"tag":41,"props":7032,"children":7034},{"id":7033},"s3-bucket-region-mismatch",[7035],{"type":31,"value":7036},"S3 bucket region mismatch",{"type":21,"tag":129,"props":7038,"children":7040},{"className":131,"code":7039,"language":133,"meta":7,"style":7},"device.run(circuit, s3_destination_folder=(\"my-bucket\", \"results\"))\n# ClientError: bucket must be in the same region as the device\n",[7041],{"type":21,"tag":104,"props":7042,"children":7043},{"__ignoreMap":7},[7044,7082],{"type":21,"tag":139,"props":7045,"children":7046},{"class":141,"line":142},[7047,7051,7056,7060,7064,7069,7073,7078],{"type":21,"tag":139,"props":7048,"children":7049},{"style":152},[7050],{"type":31,"value":6926},{"type":21,"tag":139,"props":7052,"children":7053},{"style":923},[7054],{"type":31,"value":7055},"s3_destination_folder",{"type":21,"tag":139,"props":7057,"children":7058},{"style":146},[7059],{"type":31,"value":211},{"type":21,"tag":139,"props":7061,"children":7062},{"style":152},[7063],{"type":31,"value":953},{"type":21,"tag":139,"props":7065,"children":7066},{"style":262},[7067],{"type":31,"value":7068},"\"my-bucket\"",{"type":21,"tag":139,"props":7070,"children":7071},{"style":152},[7072],{"type":31,"value":259},{"type":21,"tag":139,"props":7074,"children":7075},{"style":262},[7076],{"type":31,"value":7077},"\"results\"",{"type":21,"tag":139,"props":7079,"children":7080},{"style":152},[7081],{"type":31,"value":5596},{"type":21,"tag":139,"props":7083,"children":7084},{"class":141,"line":168},[7085],{"type":21,"tag":139,"props":7086,"children":7087},{"style":220},[7088],{"type":31,"value":7089},"# ClientError: bucket must be in the same region as the device\n",{"type":21,"tag":22,"props":7091,"children":7092},{},[7093,7095,7101,7103,7109,7111,7117,7119,7127],{"type":31,"value":7094},"Braket requires the S3 bucket storing results to be in the same AWS region as the device you're submitting to. A bucket created in ",{"type":21,"tag":104,"props":7096,"children":7098},{"className":7097},[],[7099],{"type":31,"value":7100},"us-east-1",{"type":31,"value":7102}," won't work with a device only available in ",{"type":21,"tag":104,"props":7104,"children":7106},{"className":7105},[],[7107],{"type":31,"value":7108},"us-west-1",{"type":31,"value":7110},", and the error names the mismatch but not always which region the device needs. Check the device's region with ",{"type":21,"tag":104,"props":7112,"children":7114},{"className":7113},[],[7115],{"type":31,"value":7116},"AwsDevice(...).properties",{"type":31,"value":7118}," or the ",{"type":21,"tag":26,"props":7120,"children":7124},{"href":7121,"rel":7122},"https:\u002F\u002Fconsole.aws.amazon.com\u002Fbraket\u002F",[7123],"nofollow",[7125],{"type":31,"value":7126},"Braket console",{"type":31,"value":7128}," before creating the results bucket, not after.",{"type":21,"tag":41,"props":7130,"children":7132},{"id":7131},"a-task-that-looks-stuck-but-is-only-queued",[7133],{"type":31,"value":7134},"A task that looks stuck but is only queued",{"type":21,"tag":22,"props":7136,"children":7137},{},[7138,7140,7146,7148,7154],{"type":31,"value":7139},"Real QPU devices on Braket (Rigetti, IonQ, QuEra, and others available through it) run on availability windows, not on-demand. A task submitted while a device is offline doesn't error, it queues indefinitely until the device's next window opens, which from the caller's side looks identical to a hang. Check ",{"type":21,"tag":104,"props":7141,"children":7143},{"className":7142},[],[7144],{"type":31,"value":7145},"device.status",{"type":31,"value":7147}," before submitting, and check the specific device's availability schedule on the Braket console rather than assuming a ",{"type":21,"tag":104,"props":7149,"children":7151},{"className":7150},[],[7152],{"type":31,"value":7153},"task.result()",{"type":31,"value":7155}," call that hasn't returned means something broke.",{"type":21,"tag":41,"props":7157,"children":7159},{"id":7158},"unexpected-cost-on-a-qpu-task",[7160],{"type":31,"value":7161},"Unexpected cost on a QPU task",{"type":21,"tag":22,"props":7163,"children":7164},{},[7165,7167,7173,7175,7181],{"type":31,"value":7166},"Simulator tasks on Braket are billed per-task at a flat rate. Real QPU tasks are billed per-shot on top of a per-task fee, and it adds up faster than the free-tier mental model most people bring from IBM Quantum's free minutes. A circuit debugged locally with ",{"type":21,"tag":104,"props":7168,"children":7170},{"className":7169},[],[7171],{"type":31,"value":7172},"shots=10000",{"type":31,"value":7174}," on a free simulator, then pointed at a real QPU device without adjusting shot count, produces a real, sometimes surprising, charge. Set AWS Budget alerts on the Braket service specifically before running QPU tasks at any real shot count, and test circuit logic on ",{"type":21,"tag":104,"props":7176,"children":7178},{"className":7177},[],[7179],{"type":31,"value":7180},"LocalSimulator()",{"type":31,"value":7182}," or the managed simulators (SV1, DM1, TN1) before switching the device ARN to hardware.",{"type":21,"tag":41,"props":7184,"children":7186},{"id":7185},"the-pattern-behind-most-of-these",[7187],{"type":31,"value":7188},"The pattern behind most of these",{"type":21,"tag":22,"props":7190,"children":7191},{},[7192],{"type":31,"value":7193},"Braket's errors are mostly AWS errors wearing a quantum computing costume: credentials, IAM policy, S3 region matching, and billing are the same categories of problem you'd hit running any AWS service, and debugging them means checking the AWS side of the stack before assuming the circuit or the SDK call is wrong.",{"type":21,"tag":1168,"props":7195,"children":7196},{},[7197],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":7199},[7200,7201,7203,7204,7205,7206],{"id":6858,"depth":168,"text":6865},{"id":6993,"depth":168,"text":7202},"AccessDeniedException on a device or S3 bucket",{"id":7033,"depth":168,"text":7036},{"id":7131,"depth":168,"text":7134},{"id":7158,"depth":168,"text":7161},{"id":7185,"depth":168,"text":7188},"content:blog:common-braket-errors-and-fixes.md","blog\u002Fcommon-braket-errors-and-fixes.md","blog\u002Fcommon-braket-errors-and-fixes",{"_path":7211,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":7212,"description":7213,"date":4471,"author":11,"tags":7214,"readingTime":234,"body":7215,"_type":1187,"_id":7911,"_source":1189,"_file":7912,"_stem":7913,"_extension":1192},"\u002Fblog\u002Fcommon-cirq-errors-and-fixes","Common Cirq Errors and How to Fix Them","The mistakes that trip up Cirq users most: mixing qubit types that look equal but aren't, duplicate measurement keys, unexpected moment packing, and unresolved parameters. Each with the fix.",[4473,3041,5973],{"type":18,"children":7216,"toc":7901},[7217,7222,7241,7346,7378,7390,7462,7467,7553,7559,7593,7631,7644,7654,7725,7731,7804,7817,7859,7888,7892,7897],{"type":21,"tag":22,"props":7218,"children":7219},{},[7220],{"type":31,"value":7221},"Cirq's errors tend to come from its data model rather than from API churn. Qubits, moments, and measurement keys behave in specific ways that aren't obvious from the method names, and most confusion traces back to one of a handful of recurring mismatches.",{"type":21,"tag":41,"props":7223,"children":7225},{"id":7224},"mixing-linequbit-and-gridqubit",[7226,7228,7234,7235],{"type":31,"value":7227},"Mixing ",{"type":21,"tag":104,"props":7229,"children":7231},{"className":7230},[],[7232],{"type":31,"value":7233},"LineQubit",{"type":31,"value":3615},{"type":21,"tag":104,"props":7236,"children":7238},{"className":7237},[],[7239],{"type":31,"value":7240},"GridQubit",{"type":21,"tag":129,"props":7242,"children":7244},{"className":131,"code":7243,"language":133,"meta":7,"style":7},"import cirq\n\nq1 = cirq.LineQubit(0)\nq2 = cirq.GridQubit(0, 0)\nq1 == q2  # False, always\n",[7245],{"type":21,"tag":104,"props":7246,"children":7247},{"__ignoreMap":7},[7248,7259,7266,7291,7324],{"type":21,"tag":139,"props":7249,"children":7250},{"class":141,"line":142},[7251,7255],{"type":21,"tag":139,"props":7252,"children":7253},{"style":146},[7254],{"type":31,"value":160},{"type":21,"tag":139,"props":7256,"children":7257},{"style":152},[7258],{"type":31,"value":4739},{"type":21,"tag":139,"props":7260,"children":7261},{"class":141,"line":168},[7262],{"type":21,"tag":139,"props":7263,"children":7264},{"emptyLinePlaceholder":194},[7265],{"type":31,"value":197},{"type":21,"tag":139,"props":7267,"children":7268},{"class":141,"line":190},[7269,7274,7278,7283,7287],{"type":21,"tag":139,"props":7270,"children":7271},{"style":152},[7272],{"type":31,"value":7273},"q1 ",{"type":21,"tag":139,"props":7275,"children":7276},{"style":146},[7277],{"type":31,"value":211},{"type":21,"tag":139,"props":7279,"children":7280},{"style":152},[7281],{"type":31,"value":7282}," cirq.LineQubit(",{"type":21,"tag":139,"props":7284,"children":7285},{"style":214},[7286],{"type":31,"value":407},{"type":21,"tag":139,"props":7288,"children":7289},{"style":152},[7290],{"type":31,"value":270},{"type":21,"tag":139,"props":7292,"children":7293},{"class":141,"line":200},[7294,7299,7303,7308,7312,7316,7320],{"type":21,"tag":139,"props":7295,"children":7296},{"style":152},[7297],{"type":31,"value":7298},"q2 ",{"type":21,"tag":139,"props":7300,"children":7301},{"style":146},[7302],{"type":31,"value":211},{"type":21,"tag":139,"props":7304,"children":7305},{"style":152},[7306],{"type":31,"value":7307}," cirq.GridQubit(",{"type":21,"tag":139,"props":7309,"children":7310},{"style":214},[7311],{"type":31,"value":407},{"type":21,"tag":139,"props":7313,"children":7314},{"style":152},[7315],{"type":31,"value":259},{"type":21,"tag":139,"props":7317,"children":7318},{"style":214},[7319],{"type":31,"value":407},{"type":21,"tag":139,"props":7321,"children":7322},{"style":152},[7323],{"type":31,"value":270},{"type":21,"tag":139,"props":7325,"children":7326},{"class":141,"line":226},[7327,7331,7336,7341],{"type":21,"tag":139,"props":7328,"children":7329},{"style":152},[7330],{"type":31,"value":7273},{"type":21,"tag":139,"props":7332,"children":7333},{"style":146},[7334],{"type":31,"value":7335},"==",{"type":21,"tag":139,"props":7337,"children":7338},{"style":152},[7339],{"type":31,"value":7340}," q2  ",{"type":21,"tag":139,"props":7342,"children":7343},{"style":220},[7344],{"type":31,"value":7345},"# False, always\n",{"type":21,"tag":22,"props":7347,"children":7348},{},[7349,7355,7356,7362,7364,7369,7371,7376],{"type":21,"tag":104,"props":7350,"children":7352},{"className":7351},[],[7353],{"type":31,"value":7354},"LineQubit(0)",{"type":31,"value":3615},{"type":21,"tag":104,"props":7357,"children":7359},{"className":7358},[],[7360],{"type":31,"value":7361},"GridQubit(0, 0)",{"type":31,"value":7363}," are never equal, even though a beginner might mean them as \"the same qubit 0.\" Cirq qubit equality checks type and coordinates together, not index alone. Mixing qubit types across a circuit, one function returning ",{"type":21,"tag":104,"props":7365,"children":7367},{"className":7366},[],[7368],{"type":31,"value":7233},{"type":31,"value":7370},"s and another expecting ",{"type":21,"tag":104,"props":7372,"children":7374},{"className":7373},[],[7375],{"type":31,"value":7240},{"type":31,"value":7377},"s, silently creates a circuit with more distinct qubits than you intended rather than raising an error. Pick one qubit type per circuit and stick to it, and if you're combining code from two sources, check what qubit type each one produces before appending gates.",{"type":21,"tag":41,"props":7379,"children":7381},{"id":7380},"duplicate-measurement-keys-errors",[7382,7388],{"type":21,"tag":104,"props":7383,"children":7385},{"className":7384},[],[7386],{"type":31,"value":7387},"Duplicate measurement keys",{"type":31,"value":7389}," errors",{"type":21,"tag":129,"props":7391,"children":7393},{"className":131,"code":7392,"language":133,"meta":7,"style":7},"for i in range(3):\n    circuit.append(cirq.measure(qubits[i], key='m'))  # same key every loop\n",[7394],{"type":21,"tag":104,"props":7395,"children":7396},{"__ignoreMap":7},[7397,7431],{"type":21,"tag":139,"props":7398,"children":7399},{"class":141,"line":142},[7400,7404,7409,7413,7418,7422,7426],{"type":21,"tag":139,"props":7401,"children":7402},{"style":146},[7403],{"type":31,"value":1486},{"type":21,"tag":139,"props":7405,"children":7406},{"style":152},[7407],{"type":31,"value":7408}," i ",{"type":21,"tag":139,"props":7410,"children":7411},{"style":146},[7412],{"type":31,"value":1496},{"type":21,"tag":139,"props":7414,"children":7415},{"style":214},[7416],{"type":31,"value":7417}," range",{"type":21,"tag":139,"props":7419,"children":7420},{"style":152},[7421],{"type":31,"value":953},{"type":21,"tag":139,"props":7423,"children":7424},{"style":214},[7425],{"type":31,"value":254},{"type":21,"tag":139,"props":7427,"children":7428},{"style":152},[7429],{"type":31,"value":7430},"):\n",{"type":21,"tag":139,"props":7432,"children":7433},{"class":141,"line":168},[7434,7439,7443,7447,7452,7457],{"type":21,"tag":139,"props":7435,"children":7436},{"style":152},[7437],{"type":31,"value":7438},"    circuit.append(cirq.measure(qubits[i], ",{"type":21,"tag":139,"props":7440,"children":7441},{"style":923},[7442],{"type":31,"value":4832},{"type":21,"tag":139,"props":7444,"children":7445},{"style":146},[7446],{"type":31,"value":211},{"type":21,"tag":139,"props":7448,"children":7449},{"style":262},[7450],{"type":31,"value":7451},"'m'",{"type":21,"tag":139,"props":7453,"children":7454},{"style":152},[7455],{"type":31,"value":7456},"))  ",{"type":21,"tag":139,"props":7458,"children":7459},{"style":220},[7460],{"type":31,"value":7461},"# same key every loop\n",{"type":21,"tag":22,"props":7463,"children":7464},{},[7465],{"type":31,"value":7466},"Cirq requires every measurement in a circuit to have a unique key so results are looked up afterward without ambiguity. Reusing the same key string across a loop, easy to do when a placeholder key gets left in, raises an error the moment the circuit tries to build or simulate. Key each measurement uniquely:",{"type":21,"tag":129,"props":7468,"children":7470},{"className":131,"code":7469,"language":133,"meta":7,"style":7},"for i in range(3):\n    circuit.append(cirq.measure(qubits[i], key=f'm{i}'))\n",[7471],{"type":21,"tag":104,"props":7472,"children":7473},{"__ignoreMap":7},[7474,7505],{"type":21,"tag":139,"props":7475,"children":7476},{"class":141,"line":142},[7477,7481,7485,7489,7493,7497,7501],{"type":21,"tag":139,"props":7478,"children":7479},{"style":146},[7480],{"type":31,"value":1486},{"type":21,"tag":139,"props":7482,"children":7483},{"style":152},[7484],{"type":31,"value":7408},{"type":21,"tag":139,"props":7486,"children":7487},{"style":146},[7488],{"type":31,"value":1496},{"type":21,"tag":139,"props":7490,"children":7491},{"style":214},[7492],{"type":31,"value":7417},{"type":21,"tag":139,"props":7494,"children":7495},{"style":152},[7496],{"type":31,"value":953},{"type":21,"tag":139,"props":7498,"children":7499},{"style":214},[7500],{"type":31,"value":254},{"type":21,"tag":139,"props":7502,"children":7503},{"style":152},[7504],{"type":31,"value":7430},{"type":21,"tag":139,"props":7506,"children":7507},{"class":141,"line":168},[7508,7512,7516,7520,7525,7530,7535,7539,7544,7549],{"type":21,"tag":139,"props":7509,"children":7510},{"style":152},[7511],{"type":31,"value":7438},{"type":21,"tag":139,"props":7513,"children":7514},{"style":923},[7515],{"type":31,"value":4832},{"type":21,"tag":139,"props":7517,"children":7518},{"style":146},[7519],{"type":31,"value":211},{"type":21,"tag":139,"props":7521,"children":7522},{"style":146},[7523],{"type":31,"value":7524},"f",{"type":21,"tag":139,"props":7526,"children":7527},{"style":262},[7528],{"type":31,"value":7529},"'m",{"type":21,"tag":139,"props":7531,"children":7532},{"style":214},[7533],{"type":31,"value":7534},"{",{"type":21,"tag":139,"props":7536,"children":7537},{"style":152},[7538],{"type":31,"value":1833},{"type":21,"tag":139,"props":7540,"children":7541},{"style":214},[7542],{"type":31,"value":7543},"}",{"type":21,"tag":139,"props":7545,"children":7546},{"style":262},[7547],{"type":31,"value":7548},"'",{"type":21,"tag":139,"props":7550,"children":7551},{"style":152},[7552],{"type":31,"value":5596},{"type":21,"tag":41,"props":7554,"children":7556},{"id":7555},"gates-packing-closer-together-than-expected",[7557],{"type":31,"value":7558},"Gates packing closer together than expected",{"type":21,"tag":22,"props":7560,"children":7561},{},[7562,7568,7570,7576,7578,7583,7585,7591],{"type":21,"tag":104,"props":7563,"children":7565},{"className":7564},[],[7566],{"type":31,"value":7567},"circuit.append()",{"type":31,"value":7569}," defaults to ",{"type":21,"tag":104,"props":7571,"children":7573},{"className":7572},[],[7574],{"type":31,"value":7575},"InsertStrategy.EARLIEST_OR_NEW",{"type":31,"value":7577},", which slots each new operation into the earliest ",{"type":21,"tag":26,"props":7579,"children":7580},{"href":4330},[7581],{"type":31,"value":7582},"moment",{"type":31,"value":7584}," where it doesn't conflict with an existing operation on the identical qubit, rather than always starting a new moment. If you're assuming one ",{"type":21,"tag":104,"props":7586,"children":7588},{"className":7587},[],[7589],{"type":31,"value":7590},"append()",{"type":31,"value":7592}," call means one moment, and your circuit's depth or hardware-timing assumptions depend on that, the packed layout produces different results than you expect, without an error to flag it. Pass an explicit strategy when moment boundaries matter:",{"type":21,"tag":129,"props":7594,"children":7596},{"className":131,"code":7595,"language":133,"meta":7,"style":7},"circuit.append(ops, strategy=cirq.InsertStrategy.NEW_THEN_INLINE)\n",[7597],{"type":21,"tag":104,"props":7598,"children":7599},{"__ignoreMap":7},[7600],{"type":21,"tag":139,"props":7601,"children":7602},{"class":141,"line":142},[7603,7608,7613,7617,7622,7627],{"type":21,"tag":139,"props":7604,"children":7605},{"style":152},[7606],{"type":31,"value":7607},"circuit.append(ops, ",{"type":21,"tag":139,"props":7609,"children":7610},{"style":923},[7611],{"type":31,"value":7612},"strategy",{"type":21,"tag":139,"props":7614,"children":7615},{"style":146},[7616],{"type":31,"value":211},{"type":21,"tag":139,"props":7618,"children":7619},{"style":152},[7620],{"type":31,"value":7621},"cirq.InsertStrategy.",{"type":21,"tag":139,"props":7623,"children":7624},{"style":214},[7625],{"type":31,"value":7626},"NEW_THEN_INLINE",{"type":21,"tag":139,"props":7628,"children":7629},{"style":152},[7630],{"type":31,"value":270},{"type":21,"tag":22,"props":7632,"children":7633},{},[7634,7636,7642],{"type":31,"value":7635},"or build ",{"type":21,"tag":104,"props":7637,"children":7639},{"className":7638},[],[7640],{"type":31,"value":7641},"cirq.Moment",{"type":31,"value":7643}," objects directly when you need exact control over what runs in parallel.",{"type":21,"tag":41,"props":7645,"children":7647},{"id":7646},"typeerror-gate-was-not-a-cirqgate",[7648],{"type":21,"tag":104,"props":7649,"children":7651},{"className":7650},[],[7652],{"type":31,"value":7653},"TypeError: Gate was not a cirq.Gate",{"type":21,"tag":22,"props":7655,"children":7656},{},[7657,7659,7665,7667,7673,7675,7681,7682,7688,7690,7696,7698,7703,7705,7710,7712,7717,7718,7723],{"type":31,"value":7658},"This shows up when something that isn't a proper ",{"type":21,"tag":104,"props":7660,"children":7662},{"className":7661},[],[7663],{"type":31,"value":7664},"cirq.Gate",{"type":31,"value":7666}," subclass gets applied to qubits with ",{"type":21,"tag":104,"props":7668,"children":7670},{"className":7669},[],[7671],{"type":31,"value":7672},".on()",{"type":31,"value":7674},", commonly a custom gate class missing required methods (",{"type":21,"tag":104,"props":7676,"children":7678},{"className":7677},[],[7679],{"type":31,"value":7680},"_num_qubits_",{"type":31,"value":259},{"type":21,"tag":104,"props":7683,"children":7685},{"className":7684},[],[7686],{"type":31,"value":7687},"_unitary_",{"type":31,"value":7689}," or ",{"type":21,"tag":104,"props":7691,"children":7693},{"className":7692},[],[7694],{"type":31,"value":7695},"_decompose_",{"type":31,"value":7697},"), or a raw numpy array passed where a gate object was expected. Cirq's gate protocol is duck-typed but strict about which methods it checks for. If you're defining a custom gate, subclass ",{"type":21,"tag":104,"props":7699,"children":7701},{"className":7700},[],[7702],{"type":31,"value":7664},{"type":31,"value":7704}," and implement at minimum ",{"type":21,"tag":104,"props":7706,"children":7708},{"className":7707},[],[7709],{"type":31,"value":7680},{"type":31,"value":7711}," plus either ",{"type":21,"tag":104,"props":7713,"children":7715},{"className":7714},[],[7716],{"type":31,"value":7687},{"type":31,"value":7689},{"type":21,"tag":104,"props":7719,"children":7721},{"className":7720},[],[7722],{"type":31,"value":7695},{"type":31,"value":7724},", rather than trying to construct a gate-like object ad hoc.",{"type":21,"tag":41,"props":7726,"children":7728},{"id":7727},"unresolved-parameters-at-simulation-time",[7729],{"type":31,"value":7730},"Unresolved parameters at simulation time",{"type":21,"tag":129,"props":7732,"children":7734},{"className":131,"code":7733,"language":133,"meta":7,"style":7},"import sympy\ntheta = sympy.Symbol('theta')\ncircuit = cirq.Circuit(cirq.rx(theta).on(q))\ncirq.Simulator().simulate(circuit)  # fails: unresolved symbol\n",[7735],{"type":21,"tag":104,"props":7736,"children":7737},{"__ignoreMap":7},[7738,7750,7775,7791],{"type":21,"tag":139,"props":7739,"children":7740},{"class":141,"line":142},[7741,7745],{"type":21,"tag":139,"props":7742,"children":7743},{"style":146},[7744],{"type":31,"value":160},{"type":21,"tag":139,"props":7746,"children":7747},{"style":152},[7748],{"type":31,"value":7749}," sympy\n",{"type":21,"tag":139,"props":7751,"children":7752},{"class":141,"line":168},[7753,7757,7761,7766,7771],{"type":21,"tag":139,"props":7754,"children":7755},{"style":152},[7756],{"type":31,"value":206},{"type":21,"tag":139,"props":7758,"children":7759},{"style":146},[7760],{"type":31,"value":211},{"type":21,"tag":139,"props":7762,"children":7763},{"style":152},[7764],{"type":31,"value":7765}," sympy.Symbol(",{"type":21,"tag":139,"props":7767,"children":7768},{"style":262},[7769],{"type":31,"value":7770},"'theta'",{"type":21,"tag":139,"props":7772,"children":7773},{"style":152},[7774],{"type":31,"value":270},{"type":21,"tag":139,"props":7776,"children":7777},{"class":141,"line":190},[7778,7782,7786],{"type":21,"tag":139,"props":7779,"children":7780},{"style":152},[7781],{"type":31,"value":4779},{"type":21,"tag":139,"props":7783,"children":7784},{"style":146},[7785],{"type":31,"value":211},{"type":21,"tag":139,"props":7787,"children":7788},{"style":152},[7789],{"type":31,"value":7790}," cirq.Circuit(cirq.rx(theta).on(q))\n",{"type":21,"tag":139,"props":7792,"children":7793},{"class":141,"line":200},[7794,7799],{"type":21,"tag":139,"props":7795,"children":7796},{"style":152},[7797],{"type":31,"value":7798},"cirq.Simulator().simulate(circuit)  ",{"type":21,"tag":139,"props":7800,"children":7801},{"style":220},[7802],{"type":31,"value":7803},"# fails: unresolved symbol\n",{"type":21,"tag":22,"props":7805,"children":7806},{},[7807,7809,7815],{"type":31,"value":7808},"A parameterized circuit built with ",{"type":21,"tag":104,"props":7810,"children":7812},{"className":7811},[],[7813],{"type":31,"value":7814},"sympy",{"type":31,"value":7816}," symbols needs its parameters resolved to numeric values before a simulator runs it. Forgetting the resolution step, easy to do when moving from building a variational circuit to evaluating it, raises an error about an unbound symbol rather than a silently wrong outcome:",{"type":21,"tag":129,"props":7818,"children":7820},{"className":131,"code":7819,"language":133,"meta":7,"style":7},"resolved = cirq.resolve_parameters(circuit, {theta: 0.5})\ncirq.Simulator().simulate(resolved)\n",[7821],{"type":21,"tag":104,"props":7822,"children":7823},{"__ignoreMap":7},[7824,7851],{"type":21,"tag":139,"props":7825,"children":7826},{"class":141,"line":142},[7827,7832,7836,7841,7846],{"type":21,"tag":139,"props":7828,"children":7829},{"style":152},[7830],{"type":31,"value":7831},"resolved ",{"type":21,"tag":139,"props":7833,"children":7834},{"style":146},[7835],{"type":31,"value":211},{"type":21,"tag":139,"props":7837,"children":7838},{"style":152},[7839],{"type":31,"value":7840}," cirq.resolve_parameters(circuit, {theta: ",{"type":21,"tag":139,"props":7842,"children":7843},{"style":214},[7844],{"type":31,"value":7845},"0.5",{"type":21,"tag":139,"props":7847,"children":7848},{"style":152},[7849],{"type":31,"value":7850},"})\n",{"type":21,"tag":139,"props":7852,"children":7853},{"class":141,"line":168},[7854],{"type":21,"tag":139,"props":7855,"children":7856},{"style":152},[7857],{"type":31,"value":7858},"cirq.Simulator().simulate(resolved)\n",{"type":21,"tag":22,"props":7860,"children":7861},{},[7862,7864,7870,7872,7878,7880,7886],{"type":31,"value":7863},"or pass a ",{"type":21,"tag":104,"props":7865,"children":7867},{"className":7866},[],[7868],{"type":31,"value":7869},"cirq.ParamResolver",{"type":31,"value":7871}," directly to ",{"type":21,"tag":104,"props":7873,"children":7875},{"className":7874},[],[7876],{"type":31,"value":7877},"simulate()",{"type":31,"value":7879},"'s ",{"type":21,"tag":104,"props":7881,"children":7883},{"className":7882},[],[7884],{"type":31,"value":7885},"param_resolver",{"type":31,"value":7887}," argument instead of resolving the circuit ahead of time.",{"type":21,"tag":41,"props":7889,"children":7890},{"id":7185},[7891],{"type":31,"value":7188},{"type":21,"tag":22,"props":7893,"children":7894},{},[7895],{"type":31,"value":7896},"Cirq's errors mostly come from its explicitness: qubit identity, moment structure, and parameter binding are all things Cirq makes you handle directly rather than inferring for you. That's a deliberate design choice, closer to the underlying hardware model than a higher-level abstraction, and most of what trips people up is code written with a looser mental model than Cirq enforces.",{"type":21,"tag":1168,"props":7898,"children":7899},{},[7900],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":7902},[7903,7905,7907,7908,7909,7910],{"id":7224,"depth":168,"text":7904},"Mixing LineQubit and GridQubit",{"id":7380,"depth":168,"text":7906},"Duplicate measurement keys errors",{"id":7555,"depth":168,"text":7558},{"id":7646,"depth":168,"text":7653},{"id":7727,"depth":168,"text":7730},{"id":7185,"depth":168,"text":7188},"content:blog:common-cirq-errors-and-fixes.md","blog\u002Fcommon-cirq-errors-and-fixes.md","blog\u002Fcommon-cirq-errors-and-fixes",{"_path":7915,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":7916,"description":7917,"date":4471,"author":11,"tags":7918,"readingTime":234,"body":7920,"_type":1187,"_id":8472,"_source":1189,"_file":8473,"_stem":8474,"_extension":1192},"\u002Fblog\u002Fcommon-cudaq-errors-and-fixes","Common CUDA-Q Errors and How to Fix Them","The mistakes that trip up CUDA-Q users most: CUDA toolkit version mismatches, code inside @cudaq.kernel that isn't allowed there, forgetting to set a GPU target, and calling kernels outside the functions that execute them. Each with the fix.",[3041,5973,7919],"GPU",{"type":18,"children":7921,"toc":8464},[7922,7935,7941,7954,7965,8085,8097,8103,8151,8177,8234,8240,8363,8395,8434,8451,8455,8460],{"type":21,"tag":22,"props":7923,"children":7924},{},[7925,7927,7933],{"type":31,"value":7926},"CUDA-Q's errors have a different shape than the other SDKs on this list, because CUDA-Q kernels compile to run on GPU hardware rather than executing as plain Python. Most of what trips people up comes from treating a ",{"type":21,"tag":104,"props":7928,"children":7930},{"className":7929},[],[7931],{"type":31,"value":7932},"@cudaq.kernel",{"type":31,"value":7934}," function like ordinary Python, or from a CUDA toolkit mismatch underneath the SDK entirely.",{"type":21,"tag":41,"props":7936,"children":7938},{"id":7937},"cuda-toolkit-and-driver-version-mismatches",[7939],{"type":31,"value":7940},"CUDA toolkit and driver version mismatches",{"type":21,"tag":22,"props":7942,"children":7943},{},[7944,7946,7952],{"type":31,"value":7945},"CUDA-Q is built against a specific CUDA toolkit major version, and installing it without a matching NVIDIA driver and toolkit on the machine produces install-time or import-time failures that point at CUDA, not at CUDA-Q's own code. Before installing, check ",{"type":21,"tag":104,"props":7947,"children":7949},{"className":7948},[],[7950],{"type":31,"value":7951},"nvidia-smi",{"type":31,"value":7953}," for your driver's supported CUDA version, and install the CUDA-Q build that matches it rather than assuming the latest CUDA-Q release supports whatever CUDA version happens to be on the machine. If GPU execution silently falls back to CPU with no error at all, this mismatch is the first thing worth checking, since CUDA-Q degrades gracefully to CPU simulation rather than failing loudly when it can't find a usable GPU goal.",{"type":21,"tag":41,"props":7955,"children":7957},{"id":7956},"code-that-isnt-allowed-inside-cudaqkernel",[7958,7960],{"type":31,"value":7959},"Code that isn't allowed inside ",{"type":21,"tag":104,"props":7961,"children":7963},{"className":7962},[],[7964],{"type":31,"value":7932},{"type":21,"tag":129,"props":7966,"children":7968},{"className":131,"code":7967,"language":133,"meta":7,"style":7},"@cudaq.kernel\ndef my_kernel():\n    qubits = cudaq.qvector(2)\n    data = [1, 2, 3]  # plain Python list comprehension, unsupported\n    h(qubits[0])\n",[7969],{"type":21,"tag":104,"props":7970,"children":7971},{"__ignoreMap":7},[7972,7980,7997,8022,8069],{"type":21,"tag":139,"props":7973,"children":7974},{"class":141,"line":142},[7975],{"type":21,"tag":139,"props":7976,"children":7977},{"style":4509},[7978],{"type":31,"value":7979},"@cudaq.kernel\n",{"type":21,"tag":139,"props":7981,"children":7982},{"class":141,"line":168},[7983,7987,7992],{"type":21,"tag":139,"props":7984,"children":7985},{"style":146},[7986],{"type":31,"value":5487},{"type":21,"tag":139,"props":7988,"children":7989},{"style":4509},[7990],{"type":31,"value":7991}," my_kernel",{"type":21,"tag":139,"props":7993,"children":7994},{"style":152},[7995],{"type":31,"value":7996},"():\n",{"type":21,"tag":139,"props":7998,"children":7999},{"class":141,"line":190},[8000,8005,8009,8014,8018],{"type":21,"tag":139,"props":8001,"children":8002},{"style":152},[8003],{"type":31,"value":8004},"    qubits ",{"type":21,"tag":139,"props":8006,"children":8007},{"style":146},[8008],{"type":31,"value":211},{"type":21,"tag":139,"props":8010,"children":8011},{"style":152},[8012],{"type":31,"value":8013}," cudaq.qvector(",{"type":21,"tag":139,"props":8015,"children":8016},{"style":214},[8017],{"type":31,"value":293},{"type":21,"tag":139,"props":8019,"children":8020},{"style":152},[8021],{"type":31,"value":270},{"type":21,"tag":139,"props":8023,"children":8024},{"class":141,"line":200},[8025,8030,8034,8039,8043,8047,8051,8055,8059,8064],{"type":21,"tag":139,"props":8026,"children":8027},{"style":152},[8028],{"type":31,"value":8029},"    data ",{"type":21,"tag":139,"props":8031,"children":8032},{"style":146},[8033],{"type":31,"value":211},{"type":21,"tag":139,"props":8035,"children":8036},{"style":152},[8037],{"type":31,"value":8038}," [",{"type":21,"tag":139,"props":8040,"children":8041},{"style":214},[8042],{"type":31,"value":328},{"type":21,"tag":139,"props":8044,"children":8045},{"style":152},[8046],{"type":31,"value":259},{"type":21,"tag":139,"props":8048,"children":8049},{"style":214},[8050],{"type":31,"value":293},{"type":21,"tag":139,"props":8052,"children":8053},{"style":152},[8054],{"type":31,"value":259},{"type":21,"tag":139,"props":8056,"children":8057},{"style":214},[8058],{"type":31,"value":254},{"type":21,"tag":139,"props":8060,"children":8061},{"style":152},[8062],{"type":31,"value":8063},"]  ",{"type":21,"tag":139,"props":8065,"children":8066},{"style":220},[8067],{"type":31,"value":8068},"# plain Python list comprehension, unsupported\n",{"type":21,"tag":139,"props":8070,"children":8071},{"class":141,"line":226},[8072,8077,8081],{"type":21,"tag":139,"props":8073,"children":8074},{"style":152},[8075],{"type":31,"value":8076},"    h(qubits[",{"type":21,"tag":139,"props":8078,"children":8079},{"style":214},[8080],{"type":31,"value":407},{"type":21,"tag":139,"props":8082,"children":8083},{"style":152},[8084],{"type":31,"value":599},{"type":21,"tag":22,"props":8086,"children":8087},{},[8088,8090,8095],{"type":31,"value":8089},"Functions decorated with ",{"type":21,"tag":104,"props":8091,"children":8093},{"className":8092},[],[8094],{"type":31,"value":7932},{"type":31,"value":8096}," get compiled to run on quantum (or simulated quantum) hardware, not interpreted as ordinary Python. That means only a restricted subset of the language is valid inside one: no arbitrary classes, no calls into NumPy or other Python libraries, and limited control-flow patterns compared to a normal function. Code that works fine outside a kernel raises a compile-time error the moment it's moved inside one. Keep classical data preparation (list building, NumPy work, file I\u002FO) outside the kernel function, and pass only the values the kernel needs as arguments.",{"type":21,"tag":41,"props":8098,"children":8100},{"id":8099},"forgetting-to-set-the-target-before-running",[8101],{"type":31,"value":8102},"Forgetting to set the target before running",{"type":21,"tag":129,"props":8104,"children":8106},{"className":131,"code":8105,"language":133,"meta":7,"style":7},"import cudaq\n# no cudaq.set_target(...) call\nresult = cudaq.sample(my_kernel)  # runs on the default target, not necessarily GPU\n",[8107],{"type":21,"tag":104,"props":8108,"children":8109},{"__ignoreMap":7},[8110,8122,8130],{"type":21,"tag":139,"props":8111,"children":8112},{"class":141,"line":142},[8113,8117],{"type":21,"tag":139,"props":8114,"children":8115},{"style":146},[8116],{"type":31,"value":160},{"type":21,"tag":139,"props":8118,"children":8119},{"style":152},[8120],{"type":31,"value":8121}," cudaq\n",{"type":21,"tag":139,"props":8123,"children":8124},{"class":141,"line":168},[8125],{"type":21,"tag":139,"props":8126,"children":8127},{"style":220},[8128],{"type":31,"value":8129},"# no cudaq.set_target(...) call\n",{"type":21,"tag":139,"props":8131,"children":8132},{"class":141,"line":190},[8133,8137,8141,8146],{"type":21,"tag":139,"props":8134,"children":8135},{"style":152},[8136],{"type":31,"value":4868},{"type":21,"tag":139,"props":8138,"children":8139},{"style":146},[8140],{"type":31,"value":211},{"type":21,"tag":139,"props":8142,"children":8143},{"style":152},[8144],{"type":31,"value":8145}," cudaq.sample(my_kernel)  ",{"type":21,"tag":139,"props":8147,"children":8148},{"style":220},[8149],{"type":31,"value":8150},"# runs on the default target, not necessarily GPU\n",{"type":21,"tag":22,"props":8152,"children":8153},{},[8154,8160,8161,8167,8169,8175],{"type":21,"tag":104,"props":8155,"children":8157},{"className":8156},[],[8158],{"type":31,"value":8159},"cudaq.sample()",{"type":31,"value":3615},{"type":21,"tag":104,"props":8162,"children":8164},{"className":8163},[],[8165],{"type":31,"value":8166},"cudaq.observe()",{"type":31,"value":8168}," run against whatever target is currently set, and the default isn't guaranteed to be the GPU-accelerated backend you might be assuming. If code runs correctly but slower than expected, or a colleague's identical code runs meaningfully faster, check whether ",{"type":21,"tag":104,"props":8170,"children":8172},{"className":8171},[],[8173],{"type":31,"value":8174},"cudaq.set_target(\"nvidia\")",{"type":31,"value":8176}," (or whichever GPU target applies to the install) was called before execution:",{"type":21,"tag":129,"props":8178,"children":8180},{"className":131,"code":8179,"language":133,"meta":7,"style":7},"cudaq.set_target(\"nvidia\")\nresult = cudaq.sample(my_kernel, shots_count=1000)\n",[8181],{"type":21,"tag":104,"props":8182,"children":8183},{"__ignoreMap":7},[8184,8201],{"type":21,"tag":139,"props":8185,"children":8186},{"class":141,"line":142},[8187,8192,8197],{"type":21,"tag":139,"props":8188,"children":8189},{"style":152},[8190],{"type":31,"value":8191},"cudaq.set_target(",{"type":21,"tag":139,"props":8193,"children":8194},{"style":262},[8195],{"type":31,"value":8196},"\"nvidia\"",{"type":21,"tag":139,"props":8198,"children":8199},{"style":152},[8200],{"type":31,"value":270},{"type":21,"tag":139,"props":8202,"children":8203},{"class":141,"line":168},[8204,8208,8212,8217,8222,8226,8230],{"type":21,"tag":139,"props":8205,"children":8206},{"style":152},[8207],{"type":31,"value":4868},{"type":21,"tag":139,"props":8209,"children":8210},{"style":146},[8211],{"type":31,"value":211},{"type":21,"tag":139,"props":8213,"children":8214},{"style":152},[8215],{"type":31,"value":8216}," cudaq.sample(my_kernel, ",{"type":21,"tag":139,"props":8218,"children":8219},{"style":923},[8220],{"type":31,"value":8221},"shots_count",{"type":21,"tag":139,"props":8223,"children":8224},{"style":146},[8225],{"type":31,"value":211},{"type":21,"tag":139,"props":8227,"children":8228},{"style":214},[8229],{"type":31,"value":1730},{"type":21,"tag":139,"props":8231,"children":8232},{"style":152},[8233],{"type":31,"value":270},{"type":21,"tag":41,"props":8235,"children":8237},{"id":8236},"calling-a-kernel-like-a-normal-function",[8238],{"type":31,"value":8239},"Calling a kernel like a normal function",{"type":21,"tag":129,"props":8241,"children":8243},{"className":131,"code":8242,"language":133,"meta":7,"style":7},"@cudaq.kernel\ndef bell():\n    q = cudaq.qvector(2)\n    h(q[0])\n    x.ctrl(q[0], q[1])\n\ncounts = bell()  # doesn't do what it looks like it does\n",[8244],{"type":21,"tag":104,"props":8245,"children":8246},{"__ignoreMap":7},[8247,8254,8270,8294,8310,8335,8342],{"type":21,"tag":139,"props":8248,"children":8249},{"class":141,"line":142},[8250],{"type":21,"tag":139,"props":8251,"children":8252},{"style":4509},[8253],{"type":31,"value":7979},{"type":21,"tag":139,"props":8255,"children":8256},{"class":141,"line":168},[8257,8261,8266],{"type":21,"tag":139,"props":8258,"children":8259},{"style":146},[8260],{"type":31,"value":5487},{"type":21,"tag":139,"props":8262,"children":8263},{"style":4509},[8264],{"type":31,"value":8265}," bell",{"type":21,"tag":139,"props":8267,"children":8268},{"style":152},[8269],{"type":31,"value":7996},{"type":21,"tag":139,"props":8271,"children":8272},{"class":141,"line":190},[8273,8278,8282,8286,8290],{"type":21,"tag":139,"props":8274,"children":8275},{"style":152},[8276],{"type":31,"value":8277},"    q ",{"type":21,"tag":139,"props":8279,"children":8280},{"style":146},[8281],{"type":31,"value":211},{"type":21,"tag":139,"props":8283,"children":8284},{"style":152},[8285],{"type":31,"value":8013},{"type":21,"tag":139,"props":8287,"children":8288},{"style":214},[8289],{"type":31,"value":293},{"type":21,"tag":139,"props":8291,"children":8292},{"style":152},[8293],{"type":31,"value":270},{"type":21,"tag":139,"props":8295,"children":8296},{"class":141,"line":200},[8297,8302,8306],{"type":21,"tag":139,"props":8298,"children":8299},{"style":152},[8300],{"type":31,"value":8301},"    h(q[",{"type":21,"tag":139,"props":8303,"children":8304},{"style":214},[8305],{"type":31,"value":407},{"type":21,"tag":139,"props":8307,"children":8308},{"style":152},[8309],{"type":31,"value":599},{"type":21,"tag":139,"props":8311,"children":8312},{"class":141,"line":226},[8313,8318,8322,8327,8331],{"type":21,"tag":139,"props":8314,"children":8315},{"style":152},[8316],{"type":31,"value":8317},"    x.ctrl(q[",{"type":21,"tag":139,"props":8319,"children":8320},{"style":214},[8321],{"type":31,"value":407},{"type":21,"tag":139,"props":8323,"children":8324},{"style":152},[8325],{"type":31,"value":8326},"], q[",{"type":21,"tag":139,"props":8328,"children":8329},{"style":214},[8330],{"type":31,"value":328},{"type":21,"tag":139,"props":8332,"children":8333},{"style":152},[8334],{"type":31,"value":599},{"type":21,"tag":139,"props":8336,"children":8337},{"class":141,"line":234},[8338],{"type":21,"tag":139,"props":8339,"children":8340},{"emptyLinePlaceholder":194},[8341],{"type":31,"value":197},{"type":21,"tag":139,"props":8343,"children":8344},{"class":141,"line":273},[8345,8349,8353,8358],{"type":21,"tag":139,"props":8346,"children":8347},{"style":152},[8348],{"type":31,"value":911},{"type":21,"tag":139,"props":8350,"children":8351},{"style":146},[8352],{"type":31,"value":211},{"type":21,"tag":139,"props":8354,"children":8355},{"style":152},[8356],{"type":31,"value":8357}," bell()  ",{"type":21,"tag":139,"props":8359,"children":8360},{"style":220},[8361],{"type":31,"value":8362},"# doesn't do what it looks like it does\n",{"type":21,"tag":22,"props":8364,"children":8365},{},[8366,8368,8373,8375,8380,8381,8386,8387,8393],{"type":31,"value":8367},"A ",{"type":21,"tag":104,"props":8369,"children":8371},{"className":8370},[],[8372],{"type":31,"value":7932},{"type":31,"value":8374},"-decorated function isn't meant to be called directly the way a normal Python function is. It's meant to be passed to an execution entry point, ",{"type":21,"tag":104,"props":8376,"children":8378},{"className":8377},[],[8379],{"type":31,"value":8159},{"type":31,"value":259},{"type":21,"tag":104,"props":8382,"children":8384},{"className":8383},[],[8385],{"type":31,"value":8166},{"type":31,"value":259},{"type":21,"tag":104,"props":8388,"children":8390},{"className":8389},[],[8391],{"type":31,"value":8392},"cudaq.run()",{"type":31,"value":8394},", which handles compiling and running it against the current target:",{"type":21,"tag":129,"props":8396,"children":8398},{"className":131,"code":8397,"language":133,"meta":7,"style":7},"counts = cudaq.sample(bell, shots_count=1000)\n",[8399],{"type":21,"tag":104,"props":8400,"children":8401},{"__ignoreMap":7},[8402],{"type":21,"tag":139,"props":8403,"children":8404},{"class":141,"line":142},[8405,8409,8413,8418,8422,8426,8430],{"type":21,"tag":139,"props":8406,"children":8407},{"style":152},[8408],{"type":31,"value":911},{"type":21,"tag":139,"props":8410,"children":8411},{"style":146},[8412],{"type":31,"value":211},{"type":21,"tag":139,"props":8414,"children":8415},{"style":152},[8416],{"type":31,"value":8417}," cudaq.sample(bell, ",{"type":21,"tag":139,"props":8419,"children":8420},{"style":923},[8421],{"type":31,"value":8221},{"type":21,"tag":139,"props":8423,"children":8424},{"style":146},[8425],{"type":31,"value":211},{"type":21,"tag":139,"props":8427,"children":8428},{"style":214},[8429],{"type":31,"value":1730},{"type":21,"tag":139,"props":8431,"children":8432},{"style":152},[8433],{"type":31,"value":270},{"type":21,"tag":22,"props":8435,"children":8436},{},[8437,8439,8444,8445,8450],{"type":31,"value":8438},"Calling the kernel directly either raises an error or, depending on the CUDA-Q version, returns something that isn't the measurement result you're expecting. If output looks wrong in a way that doesn't match the circuit logic at all, check whether the kernel is being invoked directly instead of through ",{"type":21,"tag":104,"props":8440,"children":8442},{"className":8441},[],[8443],{"type":31,"value":8159},{"type":31,"value":7689},{"type":21,"tag":104,"props":8446,"children":8448},{"className":8447},[],[8449],{"type":31,"value":8166},{"type":31,"value":6665},{"type":21,"tag":41,"props":8452,"children":8453},{"id":7185},[8454],{"type":31,"value":7188},{"type":21,"tag":22,"props":8456,"children":8457},{},[8458],{"type":31,"value":8459},"CUDA-Q's errors mostly come from the gap between \"looks like Python\" and \"compiles to run on GPU hardware.\" The kernel decorator boundary is where almost everything on this list breaks: what's valid inside it, what target it runs against, and how it gets invoked are all stricter than ordinary Python, because unlike a pure simulator SDK, CUDA-Q is compiling toward real accelerated execution underneath.",{"type":21,"tag":1168,"props":8461,"children":8462},{},[8463],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":8465},[8466,8467,8469,8470,8471],{"id":7937,"depth":168,"text":7940},{"id":7956,"depth":168,"text":8468},"Code that isn't allowed inside @cudaq.kernel",{"id":8099,"depth":168,"text":8102},{"id":8236,"depth":168,"text":8239},{"id":7185,"depth":168,"text":7188},"content:blog:common-cudaq-errors-and-fixes.md","blog\u002Fcommon-cudaq-errors-and-fixes.md","blog\u002Fcommon-cudaq-errors-and-fixes",{"_path":8476,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8477,"description":8478,"date":4471,"author":11,"tags":8479,"readingTime":234,"body":8480,"_type":1187,"_id":9114,"_source":1189,"_file":9115,"_stem":9116,"_extension":1192},"\u002Fblog\u002Fcommon-pennylane-errors-and-fixes","Common PennyLane Errors and How to Fix Them","The mistakes that break PennyLane gradients and circuits most often: using plain NumPy instead of PennyLane's wrapper, wire mismatches, the wrong differentiation method for the device, and plugin version drift. Each with the fix.",[4474,3041,5973],{"type":18,"children":8481,"toc":9103},[8482,8487,8499,8587,8592,8669,8687,8699,8850,8863,8875,8935,8941,9006,9043,9049,9076,9080,9099],{"type":21,"tag":22,"props":8483,"children":8484},{},[8485],{"type":31,"value":8486},"PennyLane's errors cluster around one theme more than any other SDK on this list: differentiability. Because PennyLane exists to make quantum circuits trainable, most of the recurring problems are about gradients silently not flowing, rather than the circuit itself being wrong.",{"type":21,"tag":41,"props":8488,"children":8490},{"id":8489},"using-plain-numpy-instead-of-pennylanenumpy",[8491,8493],{"type":31,"value":8492},"Using plain NumPy instead of ",{"type":21,"tag":104,"props":8494,"children":8496},{"className":8495},[],[8497],{"type":31,"value":8498},"pennylane.numpy",{"type":21,"tag":129,"props":8500,"children":8502},{"className":131,"code":8501,"language":133,"meta":7,"style":7},"import numpy as np  # wrong for trainable parameters\nparams = np.array([0.1, 0.2])\n\nqml.grad(circuit)(params)  # gradient is zero or errors\n",[8503],{"type":21,"tag":104,"props":8504,"children":8505},{"__ignoreMap":7},[8506,8532,8567,8574],{"type":21,"tag":139,"props":8507,"children":8508},{"class":141,"line":142},[8509,8513,8518,8522,8527],{"type":21,"tag":139,"props":8510,"children":8511},{"style":146},[8512],{"type":31,"value":160},{"type":21,"tag":139,"props":8514,"children":8515},{"style":152},[8516],{"type":31,"value":8517}," numpy ",{"type":21,"tag":139,"props":8519,"children":8520},{"style":146},[8521],{"type":31,"value":5343},{"type":21,"tag":139,"props":8523,"children":8524},{"style":152},[8525],{"type":31,"value":8526}," np  ",{"type":21,"tag":139,"props":8528,"children":8529},{"style":220},[8530],{"type":31,"value":8531},"# wrong for trainable parameters\n",{"type":21,"tag":139,"props":8533,"children":8534},{"class":141,"line":168},[8535,8540,8544,8549,8554,8558,8563],{"type":21,"tag":139,"props":8536,"children":8537},{"style":152},[8538],{"type":31,"value":8539},"params ",{"type":21,"tag":139,"props":8541,"children":8542},{"style":146},[8543],{"type":31,"value":211},{"type":21,"tag":139,"props":8545,"children":8546},{"style":152},[8547],{"type":31,"value":8548}," np.array([",{"type":21,"tag":139,"props":8550,"children":8551},{"style":214},[8552],{"type":31,"value":8553},"0.1",{"type":21,"tag":139,"props":8555,"children":8556},{"style":152},[8557],{"type":31,"value":259},{"type":21,"tag":139,"props":8559,"children":8560},{"style":214},[8561],{"type":31,"value":8562},"0.2",{"type":21,"tag":139,"props":8564,"children":8565},{"style":152},[8566],{"type":31,"value":599},{"type":21,"tag":139,"props":8568,"children":8569},{"class":141,"line":190},[8570],{"type":21,"tag":139,"props":8571,"children":8572},{"emptyLinePlaceholder":194},[8573],{"type":31,"value":197},{"type":21,"tag":139,"props":8575,"children":8576},{"class":141,"line":200},[8577,8582],{"type":21,"tag":139,"props":8578,"children":8579},{"style":152},[8580],{"type":31,"value":8581},"qml.grad(circuit)(params)  ",{"type":21,"tag":139,"props":8583,"children":8584},{"style":220},[8585],{"type":31,"value":8586},"# gradient is zero or errors\n",{"type":21,"tag":22,"props":8588,"children":8589},{},[8590],{"type":31,"value":8591},"PennyLane's autodifferentiation tracks which values are trainable through its own NumPy wrapper. Plain NumPy arrays don't carry that tracking, so a circuit built with them looks like it runs fine but produces a zero or wrong gradient, without an error pointing at the cause. Import PennyLane's wrapper instead:",{"type":21,"tag":129,"props":8593,"children":8595},{"className":131,"code":8594,"language":133,"meta":7,"style":7},"import pennylane.numpy as np\nparams = np.array([0.1, 0.2], requires_grad=True)\n",[8596],{"type":21,"tag":104,"props":8597,"children":8598},{"__ignoreMap":7},[8599,8620],{"type":21,"tag":139,"props":8600,"children":8601},{"class":141,"line":142},[8602,8606,8611,8615],{"type":21,"tag":139,"props":8603,"children":8604},{"style":146},[8605],{"type":31,"value":160},{"type":21,"tag":139,"props":8607,"children":8608},{"style":152},[8609],{"type":31,"value":8610}," pennylane.numpy ",{"type":21,"tag":139,"props":8612,"children":8613},{"style":146},[8614],{"type":31,"value":5343},{"type":21,"tag":139,"props":8616,"children":8617},{"style":152},[8618],{"type":31,"value":8619}," np\n",{"type":21,"tag":139,"props":8621,"children":8622},{"class":141,"line":168},[8623,8627,8631,8635,8639,8643,8647,8651,8656,8660,8665],{"type":21,"tag":139,"props":8624,"children":8625},{"style":152},[8626],{"type":31,"value":8539},{"type":21,"tag":139,"props":8628,"children":8629},{"style":146},[8630],{"type":31,"value":211},{"type":21,"tag":139,"props":8632,"children":8633},{"style":152},[8634],{"type":31,"value":8548},{"type":21,"tag":139,"props":8636,"children":8637},{"style":214},[8638],{"type":31,"value":8553},{"type":21,"tag":139,"props":8640,"children":8641},{"style":152},[8642],{"type":31,"value":259},{"type":21,"tag":139,"props":8644,"children":8645},{"style":214},[8646],{"type":31,"value":8562},{"type":21,"tag":139,"props":8648,"children":8649},{"style":152},[8650],{"type":31,"value":697},{"type":21,"tag":139,"props":8652,"children":8653},{"style":923},[8654],{"type":31,"value":8655},"requires_grad",{"type":21,"tag":139,"props":8657,"children":8658},{"style":146},[8659],{"type":31,"value":211},{"type":21,"tag":139,"props":8661,"children":8662},{"style":214},[8663],{"type":31,"value":8664},"True",{"type":21,"tag":139,"props":8666,"children":8667},{"style":152},[8668],{"type":31,"value":270},{"type":21,"tag":22,"props":8670,"children":8671},{},[8672,8678,8680,8685],{"type":21,"tag":104,"props":8673,"children":8675},{"className":8674},[],[8676],{"type":31,"value":8677},"requires_grad=True",{"type":31,"value":8679}," is the default for ",{"type":21,"tag":104,"props":8681,"children":8683},{"className":8682},[],[8684],{"type":31,"value":8498},{"type":31,"value":8686}," arrays, but setting it explicitly makes the intent visible in code review, and it's required if you're mixing trainable and non-trainable parameters in the equivalent array.",{"type":21,"tag":41,"props":8688,"children":8690},{"id":8689},"wireerror-wires-not-contained-in-the-device",[8691,8697],{"type":21,"tag":104,"props":8692,"children":8694},{"className":8693},[],[8695],{"type":31,"value":8696},"WireError",{"type":31,"value":8698},": wires not contained in the device",{"type":21,"tag":129,"props":8700,"children":8702},{"className":131,"code":8701,"language":133,"meta":7,"style":7},"dev = qml.device('default.qubit', wires=2)\n\n@qml.qnode(dev)\ndef circuit():\n    qml.Hadamard(wires=2)  # device only has wires 0 and 1\n    return qml.probs(wires=[0, 1])\n",[8703],{"type":21,"tag":104,"props":8704,"children":8705},{"__ignoreMap":7},[8706,8747,8754,8766,8781,8810],{"type":21,"tag":139,"props":8707,"children":8708},{"class":141,"line":142},[8709,8714,8718,8722,8727,8731,8735,8739,8743],{"type":21,"tag":139,"props":8710,"children":8711},{"style":152},[8712],{"type":31,"value":8713},"dev ",{"type":21,"tag":139,"props":8715,"children":8716},{"style":146},[8717],{"type":31,"value":211},{"type":21,"tag":139,"props":8719,"children":8720},{"style":152},[8721],{"type":31,"value":5433},{"type":21,"tag":139,"props":8723,"children":8724},{"style":262},[8725],{"type":31,"value":8726},"'default.qubit'",{"type":21,"tag":139,"props":8728,"children":8729},{"style":152},[8730],{"type":31,"value":259},{"type":21,"tag":139,"props":8732,"children":8733},{"style":923},[8734],{"type":31,"value":5447},{"type":21,"tag":139,"props":8736,"children":8737},{"style":146},[8738],{"type":31,"value":211},{"type":21,"tag":139,"props":8740,"children":8741},{"style":214},[8742],{"type":31,"value":293},{"type":21,"tag":139,"props":8744,"children":8745},{"style":152},[8746],{"type":31,"value":270},{"type":21,"tag":139,"props":8748,"children":8749},{"class":141,"line":168},[8750],{"type":21,"tag":139,"props":8751,"children":8752},{"emptyLinePlaceholder":194},[8753],{"type":31,"value":197},{"type":21,"tag":139,"props":8755,"children":8756},{"class":141,"line":190},[8757,8761],{"type":21,"tag":139,"props":8758,"children":8759},{"style":4509},[8760],{"type":31,"value":5474},{"type":21,"tag":139,"props":8762,"children":8763},{"style":152},[8764],{"type":31,"value":8765},"(dev)\n",{"type":21,"tag":139,"props":8767,"children":8768},{"class":141,"line":200},[8769,8773,8777],{"type":21,"tag":139,"props":8770,"children":8771},{"style":146},[8772],{"type":31,"value":5487},{"type":21,"tag":139,"props":8774,"children":8775},{"style":4509},[8776],{"type":31,"value":5492},{"type":21,"tag":139,"props":8778,"children":8779},{"style":152},[8780],{"type":31,"value":7996},{"type":21,"tag":139,"props":8782,"children":8783},{"class":141,"line":226},[8784,8789,8793,8797,8801,8805],{"type":21,"tag":139,"props":8785,"children":8786},{"style":152},[8787],{"type":31,"value":8788},"    qml.Hadamard(",{"type":21,"tag":139,"props":8790,"children":8791},{"style":923},[8792],{"type":31,"value":5447},{"type":21,"tag":139,"props":8794,"children":8795},{"style":146},[8796],{"type":31,"value":211},{"type":21,"tag":139,"props":8798,"children":8799},{"style":214},[8800],{"type":31,"value":293},{"type":21,"tag":139,"props":8802,"children":8803},{"style":152},[8804],{"type":31,"value":4624},{"type":21,"tag":139,"props":8806,"children":8807},{"style":220},[8808],{"type":31,"value":8809},"# device only has wires 0 and 1\n",{"type":21,"tag":139,"props":8811,"children":8812},{"class":141,"line":234},[8813,8817,8822,8826,8830,8834,8838,8842,8846],{"type":21,"tag":139,"props":8814,"children":8815},{"style":146},[8816],{"type":31,"value":5582},{"type":21,"tag":139,"props":8818,"children":8819},{"style":152},[8820],{"type":31,"value":8821}," qml.probs(",{"type":21,"tag":139,"props":8823,"children":8824},{"style":923},[8825],{"type":31,"value":5447},{"type":21,"tag":139,"props":8827,"children":8828},{"style":146},[8829],{"type":31,"value":211},{"type":21,"tag":139,"props":8831,"children":8832},{"style":152},[8833],{"type":31,"value":5534},{"type":21,"tag":139,"props":8835,"children":8836},{"style":214},[8837],{"type":31,"value":407},{"type":21,"tag":139,"props":8839,"children":8840},{"style":152},[8841],{"type":31,"value":259},{"type":21,"tag":139,"props":8843,"children":8844},{"style":214},[8845],{"type":31,"value":328},{"type":21,"tag":139,"props":8847,"children":8848},{"style":152},[8849],{"type":31,"value":599},{"type":21,"tag":22,"props":8851,"children":8852},{},[8853,8855,8861],{"type":31,"value":8854},"The device was declared with 2 wires (indices 0 and 1), and the circuit references wire 2, which doesn't exist on it. This happens most often when a circuit gets extended (adding a qubit for an ancilla, for instance) without updating the device declaration to match. Count wires carefully when the circuit changes, or declare the device with a named wire list (",{"type":21,"tag":104,"props":8856,"children":8858},{"className":8857},[],[8859],{"type":31,"value":8860},"wires=['a', 'b', 'ancilla']",{"type":31,"value":8862},") so mismatches are easier to spot than off-by-one integer errors.",{"type":21,"tag":41,"props":8864,"children":8866},{"id":8865},"qmlgrad-fails-or-falls-back-to-a-slow-method-unexpectedly",[8867,8873],{"type":21,"tag":104,"props":8868,"children":8870},{"className":8869},[],[8871],{"type":31,"value":8872},"qml.grad",{"type":31,"value":8874}," fails or falls back to a slow method unexpectedly",{"type":21,"tag":22,"props":8876,"children":8877},{},[8878,8880,8886,8888,8894,8896,8901,8903,8909,8911,8917,8919,8925,8927,8933],{"type":31,"value":8879},"PennyLane picks a differentiation method automatically (",{"type":21,"tag":104,"props":8881,"children":8883},{"className":8882},[],[8884],{"type":31,"value":8885},"diff_method='best'",{"type":31,"value":8887}," by default), and what's available depends on the device. ",{"type":21,"tag":104,"props":8889,"children":8891},{"className":8890},[],[8892],{"type":31,"value":8893},"backprop",{"type":31,"value":8895},", the fast option, only works on simulators that support it (like ",{"type":21,"tag":104,"props":8897,"children":8899},{"className":8898},[],[8900],{"type":31,"value":5607},{"type":31,"value":8902}," in simulation mode), not on shot-based or hardware-backed devices. Running the same circuit against a QPU or a shots-based device silently falls back to ",{"type":21,"tag":104,"props":8904,"children":8906},{"className":8905},[],[8907],{"type":31,"value":8908},"parameter-shift",{"type":31,"value":8910},", which is slower and needs multiple circuit evaluations per gradient. If gradient computation is suddenly much slower after switching devices, check what ",{"type":21,"tag":104,"props":8912,"children":8914},{"className":8913},[],[8915],{"type":31,"value":8916},"diff_method",{"type":31,"value":8918}," the new device supports rather than assuming ",{"type":21,"tag":104,"props":8920,"children":8922},{"className":8921},[],[8923],{"type":31,"value":8924},"'best'",{"type":31,"value":8926}," picked the identical thing both times, and set it explicitly (",{"type":21,"tag":104,"props":8928,"children":8930},{"className":8929},[],[8931],{"type":31,"value":8932},"diff_method='parameter-shift'",{"type":31,"value":8934},") when you need consistent, predictable behavior across devices.",{"type":21,"tag":41,"props":8936,"children":8938},{"id":8937},"plugin-version-drift-after-upgrading",[8939],{"type":31,"value":8940},"Plugin version drift after upgrading",{"type":21,"tag":22,"props":8942,"children":8943},{},[8944,8946,8952,8953,8959,8960,8966,8967,8973,8975,8981,8983,8988,8990,8996,8998,9004],{"type":31,"value":8945},"PennyLane's device backends for other SDKs (",{"type":21,"tag":104,"props":8947,"children":8949},{"className":8948},[],[8950],{"type":31,"value":8951},"pennylane-lightning",{"type":31,"value":259},{"type":21,"tag":104,"props":8954,"children":8956},{"className":8955},[],[8957],{"type":31,"value":8958},"pennylane-qiskit",{"type":31,"value":259},{"type":21,"tag":104,"props":8961,"children":8963},{"className":8962},[],[8964],{"type":31,"value":8965},"pennylane-cirq",{"type":31,"value":259},{"type":21,"tag":104,"props":8968,"children":8970},{"className":8969},[],[8971],{"type":31,"value":8972},"pennylane-braket",{"type":31,"value":8974},") are separate packages with their own version numbers, not bundled with core ",{"type":21,"tag":104,"props":8976,"children":8978},{"className":8977},[],[8979],{"type":31,"value":8980},"pennylane",{"type":31,"value":8982},". Upgrading ",{"type":21,"tag":104,"props":8984,"children":8986},{"className":8985},[],[8987],{"type":31,"value":8980},{"type":31,"value":8989}," without upgrading its plugins, or the reverse, produces ",{"type":21,"tag":104,"props":8991,"children":8993},{"className":8992},[],[8994],{"type":31,"value":8995},"ImportError",{"type":31,"value":8997},"s referencing internal APIs that changed between versions, or silent behavior differences that are much harder to trace. When you upgrade one, check ",{"type":21,"tag":104,"props":8999,"children":9001},{"className":9000},[],[9002],{"type":31,"value":9003},"pip list | grep pennylane",{"type":31,"value":9005}," and upgrade the plugins in the equivalent pass:",{"type":21,"tag":129,"props":9007,"children":9009},{"className":4499,"code":9008,"language":4498,"meta":7,"style":7},"pip install --upgrade pennylane pennylane-lightning pennylane-qiskit\n",[9010],{"type":21,"tag":104,"props":9011,"children":9012},{"__ignoreMap":7},[9013],{"type":21,"tag":139,"props":9014,"children":9015},{"class":141,"line":142},[9016,9020,9024,9028,9033,9038],{"type":21,"tag":139,"props":9017,"children":9018},{"style":4509},[9019],{"type":31,"value":4512},{"type":21,"tag":139,"props":9021,"children":9022},{"style":262},[9023],{"type":31,"value":4517},{"type":21,"tag":139,"props":9025,"children":9026},{"style":214},[9027],{"type":31,"value":4522},{"type":21,"tag":139,"props":9029,"children":9030},{"style":262},[9031],{"type":31,"value":9032}," pennylane",{"type":21,"tag":139,"props":9034,"children":9035},{"style":262},[9036],{"type":31,"value":9037}," pennylane-lightning",{"type":21,"tag":139,"props":9039,"children":9040},{"style":262},[9041],{"type":31,"value":9042}," pennylane-qiskit\n",{"type":21,"tag":41,"props":9044,"children":9046},{"id":9045},"qnode-return-shape-doesnt-match-what-you-expected",[9047],{"type":31,"value":9048},"QNode return shape doesn't match what you expected",{"type":21,"tag":22,"props":9050,"children":9051},{},[9052,9053,9059,9060,9066,9068,9074],{"type":31,"value":7227},{"type":21,"tag":104,"props":9054,"children":9056},{"className":9055},[],[9057],{"type":31,"value":9058},"qml.probs()",{"type":31,"value":3615},{"type":21,"tag":104,"props":9061,"children":9063},{"className":9062},[],[9064],{"type":31,"value":9065},"qml.expval()",{"type":31,"value":9067}," in the same QNode, or forgetting that batched\u002Fbroadcasted inputs adjust a QNode's output from a single array to a stack of arrays, is a common source of shape-mismatch errors downstream in whatever consumes the QNode's output (an optimizer, a loss function). Print ",{"type":21,"tag":104,"props":9069,"children":9071},{"className":9070},[],[9072],{"type":31,"value":9073},"result.shape",{"type":31,"value":9075}," right after calling the QNode when debugging a training loop that's failing on a shape error further down, rather than assuming the QNode's output shape matches your mental model of the circuit.",{"type":21,"tag":41,"props":9077,"children":9078},{"id":7185},[9079],{"type":31,"value":7188},{"type":21,"tag":22,"props":9081,"children":9082},{},[9083,9085,9090,9092,9097],{"type":31,"value":9084},"Most PennyLane errors trace back to the same root cause: something about differentiability, either the wrong NumPy, the wrong ",{"type":21,"tag":104,"props":9086,"children":9088},{"className":9087},[],[9089],{"type":31,"value":8916},{"type":31,"value":9091}," for the device, or plugin versions out of sync, broke silently rather than loudly. Our ",{"type":21,"tag":26,"props":9093,"children":9094},{"href":3610},[9095],{"type":31,"value":9096},"VQE with PennyLane guide",{"type":31,"value":9098}," builds a full optimization loop with the correct patterns if you want a working reference to check code against.",{"type":21,"tag":1168,"props":9100,"children":9101},{},[9102],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":9104},[9105,9107,9109,9111,9112,9113],{"id":8489,"depth":168,"text":9106},"Using plain NumPy instead of pennylane.numpy",{"id":8689,"depth":168,"text":9108},"WireError: wires not contained in the device",{"id":8865,"depth":168,"text":9110},"qml.grad fails or falls back to a slow method unexpectedly",{"id":8937,"depth":168,"text":8940},{"id":9045,"depth":168,"text":9048},{"id":7185,"depth":168,"text":7188},"content:blog:common-pennylane-errors-and-fixes.md","blog\u002Fcommon-pennylane-errors-and-fixes.md","blog\u002Fcommon-pennylane-errors-and-fixes",{"_path":5991,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":9118,"description":9119,"date":4471,"author":11,"tags":9120,"readingTime":309,"body":9121,"_type":1187,"_id":10528,"_source":1189,"_file":10529,"_stem":10530,"_extension":1192},"Common Qiskit Errors and How to Fix Them","The Qiskit errors that trip up beginners and returning users most often: the removed execute() function, the Aer import that moved packages, IBMQ deprecation, register mismatches, and transpiler failures. Each with the fix.",[14,3041,5973],{"type":18,"children":9122,"toc":10511},[9123,9128,9138,9151,9211,9216,9333,9368,9392,9427,9536,9549,9561,9582,9668,9687,9825,9846,9858,9870,9925,9952,9979,10102,10121,10140,10145,10250,10263,10275,10327,10363,10382,10443,10449,10477,10481,10507],{"type":21,"tag":22,"props":9124,"children":9125},{},[9126],{"type":31,"value":9127},"Most Qiskit errors people hit aren't bugs in their circuit logic. They're API surface that moved: a function got removed, a package got split out, an authentication method got replaced, and the error message doesn't always point at the fix. This is a working list of the ones that show up most, gathered from Qiskit's own migration guides and the questions that keep recurring around the SDK, with the fix for each one.",{"type":21,"tag":41,"props":9129,"children":9131},{"id":9130},"importerror-cannot-import-name-execute-from-qiskit",[9132],{"type":21,"tag":104,"props":9133,"children":9135},{"className":9134},[],[9136],{"type":31,"value":9137},"ImportError: cannot import name 'execute' from 'qiskit'",{"type":21,"tag":22,"props":9139,"children":9140},{},[9141,9143,9149],{"type":31,"value":9142},"Qiskit 1.0 removed the top-level ",{"type":21,"tag":104,"props":9144,"children":9146},{"className":9145},[],[9147],{"type":31,"value":9148},"execute()",{"type":31,"value":9150}," function that older tutorials and StackOverflow answers still use. If you copy code like this:",{"type":21,"tag":129,"props":9152,"children":9154},{"className":131,"code":9153,"language":133,"meta":7,"style":7},"from qiskit import execute\nresult = execute(qc, backend, shots=1000).result()\n",[9155],{"type":21,"tag":104,"props":9156,"children":9157},{"__ignoreMap":7},[9158,9178],{"type":21,"tag":139,"props":9159,"children":9160},{"class":141,"line":142},[9161,9165,9169,9173],{"type":21,"tag":139,"props":9162,"children":9163},{"style":146},[9164],{"type":31,"value":149},{"type":21,"tag":139,"props":9166,"children":9167},{"style":152},[9168],{"type":31,"value":155},{"type":21,"tag":139,"props":9170,"children":9171},{"style":146},[9172],{"type":31,"value":160},{"type":21,"tag":139,"props":9174,"children":9175},{"style":152},[9176],{"type":31,"value":9177}," execute\n",{"type":21,"tag":139,"props":9179,"children":9180},{"class":141,"line":168},[9181,9185,9189,9194,9198,9202,9206],{"type":21,"tag":139,"props":9182,"children":9183},{"style":152},[9184],{"type":31,"value":4868},{"type":21,"tag":139,"props":9186,"children":9187},{"style":146},[9188],{"type":31,"value":211},{"type":21,"tag":139,"props":9190,"children":9191},{"style":152},[9192],{"type":31,"value":9193}," execute(qc, backend, ",{"type":21,"tag":139,"props":9195,"children":9196},{"style":923},[9197],{"type":31,"value":926},{"type":21,"tag":139,"props":9199,"children":9200},{"style":146},[9201],{"type":31,"value":211},{"type":21,"tag":139,"props":9203,"children":9204},{"style":214},[9205],{"type":31,"value":1730},{"type":21,"tag":139,"props":9207,"children":9208},{"style":152},[9209],{"type":31,"value":9210},").result()\n",{"type":21,"tag":22,"props":9212,"children":9213},{},[9214],{"type":31,"value":9215},"it fails on any current Qiskit install. The replacement depends on what you're running against. For a local simulator:",{"type":21,"tag":129,"props":9217,"children":9219},{"className":131,"code":9218,"language":133,"meta":7,"style":7},"from qiskit_aer import AerSimulator\nfrom qiskit import transpile\n\nbackend = AerSimulator()\nqc_t = transpile(qc, backend)\nresult = backend.run(qc_t, shots=1000).result()\n",[9220],{"type":21,"tag":104,"props":9221,"children":9222},{"__ignoreMap":7},[9223,9242,9262,9269,9284,9301],{"type":21,"tag":139,"props":9224,"children":9225},{"class":141,"line":142},[9226,9230,9234,9238],{"type":21,"tag":139,"props":9227,"children":9228},{"style":146},[9229],{"type":31,"value":149},{"type":21,"tag":139,"props":9231,"children":9232},{"style":152},[9233],{"type":31,"value":178},{"type":21,"tag":139,"props":9235,"children":9236},{"style":146},[9237],{"type":31,"value":160},{"type":21,"tag":139,"props":9239,"children":9240},{"style":152},[9241],{"type":31,"value":187},{"type":21,"tag":139,"props":9243,"children":9244},{"class":141,"line":168},[9245,9249,9253,9257],{"type":21,"tag":139,"props":9246,"children":9247},{"style":146},[9248],{"type":31,"value":149},{"type":21,"tag":139,"props":9250,"children":9251},{"style":152},[9252],{"type":31,"value":155},{"type":21,"tag":139,"props":9254,"children":9255},{"style":146},[9256],{"type":31,"value":160},{"type":21,"tag":139,"props":9258,"children":9259},{"style":152},[9260],{"type":31,"value":9261}," transpile\n",{"type":21,"tag":139,"props":9263,"children":9264},{"class":141,"line":190},[9265],{"type":21,"tag":139,"props":9266,"children":9267},{"emptyLinePlaceholder":194},[9268],{"type":31,"value":197},{"type":21,"tag":139,"props":9270,"children":9271},{"class":141,"line":200},[9272,9276,9280],{"type":21,"tag":139,"props":9273,"children":9274},{"style":152},[9275],{"type":31,"value":6443},{"type":21,"tag":139,"props":9277,"children":9278},{"style":146},[9279],{"type":31,"value":211},{"type":21,"tag":139,"props":9281,"children":9282},{"style":152},[9283],{"type":31,"value":886},{"type":21,"tag":139,"props":9285,"children":9286},{"class":141,"line":226},[9287,9292,9296],{"type":21,"tag":139,"props":9288,"children":9289},{"style":152},[9290],{"type":31,"value":9291},"qc_t ",{"type":21,"tag":139,"props":9293,"children":9294},{"style":146},[9295],{"type":31,"value":211},{"type":21,"tag":139,"props":9297,"children":9298},{"style":152},[9299],{"type":31,"value":9300}," transpile(qc, backend)\n",{"type":21,"tag":139,"props":9302,"children":9303},{"class":141,"line":234},[9304,9308,9312,9317,9321,9325,9329],{"type":21,"tag":139,"props":9305,"children":9306},{"style":152},[9307],{"type":31,"value":4868},{"type":21,"tag":139,"props":9309,"children":9310},{"style":146},[9311],{"type":31,"value":211},{"type":21,"tag":139,"props":9313,"children":9314},{"style":152},[9315],{"type":31,"value":9316}," backend.run(qc_t, ",{"type":21,"tag":139,"props":9318,"children":9319},{"style":923},[9320],{"type":31,"value":926},{"type":21,"tag":139,"props":9322,"children":9323},{"style":146},[9324],{"type":31,"value":211},{"type":21,"tag":139,"props":9326,"children":9327},{"style":214},[9328],{"type":31,"value":1730},{"type":21,"tag":139,"props":9330,"children":9331},{"style":152},[9332],{"type":31,"value":9210},{"type":21,"tag":22,"props":9334,"children":9335},{},[9336,9338,9344,9345,9351,9353,9359,9361,9366],{"type":31,"value":9337},"For real IBM hardware or IBM's cloud simulators, use the primitives (",{"type":21,"tag":104,"props":9339,"children":9341},{"className":9340},[],[9342],{"type":31,"value":9343},"Sampler",{"type":31,"value":7689},{"type":21,"tag":104,"props":9346,"children":9348},{"className":9347},[],[9349],{"type":31,"value":9350},"Estimator",{"type":31,"value":9352},") through ",{"type":21,"tag":104,"props":9354,"children":9356},{"className":9355},[],[9357],{"type":31,"value":9358},"QiskitRuntimeService",{"type":31,"value":9360}," instead, covered below. ",{"type":21,"tag":104,"props":9362,"children":9364},{"className":9363},[],[9365],{"type":31,"value":9148},{"type":31,"value":9367}," was a convenience wrapper around transpile-then-run, and Qiskit 1.0 made that step explicit rather than implicit.",{"type":21,"tag":41,"props":9369,"children":9371},{"id":9370},"importerror-or-attributeerror-on-from-qiskit-import-aer",[9372,9377,9378,9384,9386],{"type":21,"tag":104,"props":9373,"children":9375},{"className":9374},[],[9376],{"type":31,"value":8995},{"type":31,"value":7689},{"type":21,"tag":104,"props":9379,"children":9381},{"className":9380},[],[9382],{"type":31,"value":9383},"AttributeError",{"type":31,"value":9385}," on ",{"type":21,"tag":104,"props":9387,"children":9389},{"className":9388},[],[9390],{"type":31,"value":9391},"from qiskit import Aer",{"type":21,"tag":22,"props":9393,"children":9394},{},[9395,9397,9403,9405,9411,9413,9418,9419,9425],{"type":31,"value":9396},"Aer, Qiskit's simulator package, moved out of the core ",{"type":21,"tag":104,"props":9398,"children":9400},{"className":9399},[],[9401],{"type":31,"value":9402},"qiskit",{"type":31,"value":9404}," package into its own ",{"type":21,"tag":104,"props":9406,"children":9408},{"className":9407},[],[9409],{"type":31,"value":9410},"qiskit-aer",{"type":31,"value":9412}," package. Any code doing ",{"type":21,"tag":104,"props":9414,"children":9416},{"className":9415},[],[9417],{"type":31,"value":9391},{"type":31,"value":7689},{"type":21,"tag":104,"props":9420,"children":9422},{"className":9421},[],[9423],{"type":31,"value":9424},"Aer.get_backend('qasm_simulator')",{"type":31,"value":9426}," is written against the old, unified package structure.",{"type":21,"tag":129,"props":9428,"children":9430},{"className":131,"code":9429,"language":133,"meta":7,"style":7},"# Old, breaks now\nfrom qiskit import Aer\nsim = Aer.get_backend('qasm_simulator')\n\n# Current\nfrom qiskit_aer import AerSimulator\nsim = AerSimulator()\n",[9431],{"type":21,"tag":104,"props":9432,"children":9433},{"__ignoreMap":7},[9434,9442,9462,9487,9494,9502,9521],{"type":21,"tag":139,"props":9435,"children":9436},{"class":141,"line":142},[9437],{"type":21,"tag":139,"props":9438,"children":9439},{"style":220},[9440],{"type":31,"value":9441},"# Old, breaks now\n",{"type":21,"tag":139,"props":9443,"children":9444},{"class":141,"line":168},[9445,9449,9453,9457],{"type":21,"tag":139,"props":9446,"children":9447},{"style":146},[9448],{"type":31,"value":149},{"type":21,"tag":139,"props":9450,"children":9451},{"style":152},[9452],{"type":31,"value":155},{"type":21,"tag":139,"props":9454,"children":9455},{"style":146},[9456],{"type":31,"value":160},{"type":21,"tag":139,"props":9458,"children":9459},{"style":152},[9460],{"type":31,"value":9461}," Aer\n",{"type":21,"tag":139,"props":9463,"children":9464},{"class":141,"line":190},[9465,9469,9473,9478,9483],{"type":21,"tag":139,"props":9466,"children":9467},{"style":152},[9468],{"type":31,"value":877},{"type":21,"tag":139,"props":9470,"children":9471},{"style":146},[9472],{"type":31,"value":211},{"type":21,"tag":139,"props":9474,"children":9475},{"style":152},[9476],{"type":31,"value":9477}," Aer.get_backend(",{"type":21,"tag":139,"props":9479,"children":9480},{"style":262},[9481],{"type":31,"value":9482},"'qasm_simulator'",{"type":21,"tag":139,"props":9484,"children":9485},{"style":152},[9486],{"type":31,"value":270},{"type":21,"tag":139,"props":9488,"children":9489},{"class":141,"line":200},[9490],{"type":21,"tag":139,"props":9491,"children":9492},{"emptyLinePlaceholder":194},[9493],{"type":31,"value":197},{"type":21,"tag":139,"props":9495,"children":9496},{"class":141,"line":226},[9497],{"type":21,"tag":139,"props":9498,"children":9499},{"style":220},[9500],{"type":31,"value":9501},"# Current\n",{"type":21,"tag":139,"props":9503,"children":9504},{"class":141,"line":234},[9505,9509,9513,9517],{"type":21,"tag":139,"props":9506,"children":9507},{"style":146},[9508],{"type":31,"value":149},{"type":21,"tag":139,"props":9510,"children":9511},{"style":152},[9512],{"type":31,"value":178},{"type":21,"tag":139,"props":9514,"children":9515},{"style":146},[9516],{"type":31,"value":160},{"type":21,"tag":139,"props":9518,"children":9519},{"style":152},[9520],{"type":31,"value":187},{"type":21,"tag":139,"props":9522,"children":9523},{"class":141,"line":273},[9524,9528,9532],{"type":21,"tag":139,"props":9525,"children":9526},{"style":152},[9527],{"type":31,"value":877},{"type":21,"tag":139,"props":9529,"children":9530},{"style":146},[9531],{"type":31,"value":211},{"type":21,"tag":139,"props":9533,"children":9534},{"style":152},[9535],{"type":31,"value":886},{"type":21,"tag":22,"props":9537,"children":9538},{},[9539,9541,9547],{"type":31,"value":9540},"Install with ",{"type":21,"tag":104,"props":9542,"children":9544},{"className":9543},[],[9545],{"type":31,"value":9546},"pip install qiskit-aer",{"type":31,"value":9548}," if it's missing. This is the single most common install-related error, because so much existing tutorial content predates the split.",{"type":21,"tag":41,"props":9550,"children":9552},{"id":9551},"ibmqload_account-no-longer-works",[9553,9559],{"type":21,"tag":104,"props":9554,"children":9556},{"className":9555},[],[9557],{"type":31,"value":9558},"IBMQ.load_account()",{"type":31,"value":9560}," no longer works",{"type":21,"tag":22,"props":9562,"children":9563},{},[9564,9566,9572,9574,9580],{"type":31,"value":9565},"IBM retired the legacy ",{"type":21,"tag":104,"props":9567,"children":9569},{"className":9568},[],[9570],{"type":31,"value":9571},"IBMQ",{"type":31,"value":9573}," provider and its ",{"type":21,"tag":104,"props":9575,"children":9577},{"className":9576},[],[9578],{"type":31,"value":9579},"ibmq_qasm_simulator",{"type":31,"value":9581},". Code written against the old provider pattern:",{"type":21,"tag":129,"props":9583,"children":9585},{"className":131,"code":9584,"language":133,"meta":7,"style":7},"# Old, retired\nfrom qiskit import IBMQ\nIBMQ.load_account()\nprovider = IBMQ.get_provider(hub='ibm-q')\n",[9586],{"type":21,"tag":104,"props":9587,"children":9588},{"__ignoreMap":7},[9589,9597,9617,9629],{"type":21,"tag":139,"props":9590,"children":9591},{"class":141,"line":142},[9592],{"type":21,"tag":139,"props":9593,"children":9594},{"style":220},[9595],{"type":31,"value":9596},"# Old, retired\n",{"type":21,"tag":139,"props":9598,"children":9599},{"class":141,"line":168},[9600,9604,9608,9612],{"type":21,"tag":139,"props":9601,"children":9602},{"style":146},[9603],{"type":31,"value":149},{"type":21,"tag":139,"props":9605,"children":9606},{"style":152},[9607],{"type":31,"value":155},{"type":21,"tag":139,"props":9609,"children":9610},{"style":146},[9611],{"type":31,"value":160},{"type":21,"tag":139,"props":9613,"children":9614},{"style":214},[9615],{"type":31,"value":9616}," IBMQ\n",{"type":21,"tag":139,"props":9618,"children":9619},{"class":141,"line":190},[9620,9624],{"type":21,"tag":139,"props":9621,"children":9622},{"style":214},[9623],{"type":31,"value":9571},{"type":21,"tag":139,"props":9625,"children":9626},{"style":152},[9627],{"type":31,"value":9628},".load_account()\n",{"type":21,"tag":139,"props":9630,"children":9631},{"class":141,"line":200},[9632,9636,9640,9645,9650,9655,9659,9664],{"type":21,"tag":139,"props":9633,"children":9634},{"style":152},[9635],{"type":31,"value":6167},{"type":21,"tag":139,"props":9637,"children":9638},{"style":146},[9639],{"type":31,"value":211},{"type":21,"tag":139,"props":9641,"children":9642},{"style":214},[9643],{"type":31,"value":9644}," IBMQ",{"type":21,"tag":139,"props":9646,"children":9647},{"style":152},[9648],{"type":31,"value":9649},".get_provider(",{"type":21,"tag":139,"props":9651,"children":9652},{"style":923},[9653],{"type":31,"value":9654},"hub",{"type":21,"tag":139,"props":9656,"children":9657},{"style":146},[9658],{"type":31,"value":211},{"type":21,"tag":139,"props":9660,"children":9661},{"style":262},[9662],{"type":31,"value":9663},"'ibm-q'",{"type":21,"tag":139,"props":9665,"children":9666},{"style":152},[9667],{"type":31,"value":270},{"type":21,"tag":22,"props":9669,"children":9670},{},[9671,9673,9678,9680,9685],{"type":31,"value":9672},"needs to move to ",{"type":21,"tag":104,"props":9674,"children":9676},{"className":9675},[],[9677],{"type":31,"value":9358},{"type":31,"value":9679},", the current entry point for both the ",{"type":21,"tag":26,"props":9681,"children":9682},{"href":1970},[9683],{"type":31,"value":9684},"free tier",{"type":31,"value":9686}," and paid access:",{"type":21,"tag":129,"props":9688,"children":9690},{"className":131,"code":9689,"language":133,"meta":7,"style":7},"from qiskit_ibm_runtime import QiskitRuntimeService\n\nservice = QiskitRuntimeService(channel=\"ibm_quantum\", token=\"YOUR_TOKEN\")\nbackend = service.least_busy(operational=True, simulator=False)\n",[9691],{"type":21,"tag":104,"props":9692,"children":9693},{"__ignoreMap":7},[9694,9715,9722,9774],{"type":21,"tag":139,"props":9695,"children":9696},{"class":141,"line":142},[9697,9701,9706,9710],{"type":21,"tag":139,"props":9698,"children":9699},{"style":146},[9700],{"type":31,"value":149},{"type":21,"tag":139,"props":9702,"children":9703},{"style":152},[9704],{"type":31,"value":9705}," qiskit_ibm_runtime ",{"type":21,"tag":139,"props":9707,"children":9708},{"style":146},[9709],{"type":31,"value":160},{"type":21,"tag":139,"props":9711,"children":9712},{"style":152},[9713],{"type":31,"value":9714}," QiskitRuntimeService\n",{"type":21,"tag":139,"props":9716,"children":9717},{"class":141,"line":168},[9718],{"type":21,"tag":139,"props":9719,"children":9720},{"emptyLinePlaceholder":194},[9721],{"type":31,"value":197},{"type":21,"tag":139,"props":9723,"children":9724},{"class":141,"line":190},[9725,9729,9733,9738,9743,9747,9752,9756,9761,9765,9770],{"type":21,"tag":139,"props":9726,"children":9727},{"style":152},[9728],{"type":31,"value":4637},{"type":21,"tag":139,"props":9730,"children":9731},{"style":146},[9732],{"type":31,"value":211},{"type":21,"tag":139,"props":9734,"children":9735},{"style":152},[9736],{"type":31,"value":9737}," QiskitRuntimeService(",{"type":21,"tag":139,"props":9739,"children":9740},{"style":923},[9741],{"type":31,"value":9742},"channel",{"type":21,"tag":139,"props":9744,"children":9745},{"style":146},[9746],{"type":31,"value":211},{"type":21,"tag":139,"props":9748,"children":9749},{"style":262},[9750],{"type":31,"value":9751},"\"ibm_quantum\"",{"type":21,"tag":139,"props":9753,"children":9754},{"style":152},[9755],{"type":31,"value":259},{"type":21,"tag":139,"props":9757,"children":9758},{"style":923},[9759],{"type":31,"value":9760},"token",{"type":21,"tag":139,"props":9762,"children":9763},{"style":146},[9764],{"type":31,"value":211},{"type":21,"tag":139,"props":9766,"children":9767},{"style":262},[9768],{"type":31,"value":9769},"\"YOUR_TOKEN\"",{"type":21,"tag":139,"props":9771,"children":9772},{"style":152},[9773],{"type":31,"value":270},{"type":21,"tag":139,"props":9775,"children":9776},{"class":141,"line":200},[9777,9781,9785,9790,9795,9799,9803,9807,9812,9816,9821],{"type":21,"tag":139,"props":9778,"children":9779},{"style":152},[9780],{"type":31,"value":6443},{"type":21,"tag":139,"props":9782,"children":9783},{"style":146},[9784],{"type":31,"value":211},{"type":21,"tag":139,"props":9786,"children":9787},{"style":152},[9788],{"type":31,"value":9789}," service.least_busy(",{"type":21,"tag":139,"props":9791,"children":9792},{"style":923},[9793],{"type":31,"value":9794},"operational",{"type":21,"tag":139,"props":9796,"children":9797},{"style":146},[9798],{"type":31,"value":211},{"type":21,"tag":139,"props":9800,"children":9801},{"style":214},[9802],{"type":31,"value":8664},{"type":21,"tag":139,"props":9804,"children":9805},{"style":152},[9806],{"type":31,"value":259},{"type":21,"tag":139,"props":9808,"children":9809},{"style":923},[9810],{"type":31,"value":9811},"simulator",{"type":21,"tag":139,"props":9813,"children":9814},{"style":146},[9815],{"type":31,"value":211},{"type":21,"tag":139,"props":9817,"children":9818},{"style":214},[9819],{"type":31,"value":9820},"False",{"type":21,"tag":139,"props":9822,"children":9823},{"style":152},[9824],{"type":31,"value":270},{"type":21,"tag":22,"props":9826,"children":9827},{},[9828,9830,9836,9838,9844],{"type":31,"value":9829},"Save your API token once with ",{"type":21,"tag":104,"props":9831,"children":9833},{"className":9832},[],[9834],{"type":31,"value":9835},"QiskitRuntimeService.save_account(token=\"...\")",{"type":31,"value":9837}," and later calls to ",{"type":21,"tag":104,"props":9839,"children":9841},{"className":9840},[],[9842],{"type":31,"value":9843},"QiskitRuntimeService()",{"type":31,"value":9845}," pick it up automatically without passing the token again.",{"type":21,"tag":41,"props":9847,"children":9849},{"id":9848},"modulenotfounderror-no-module-named-azurequantum-when-submitting-to-azure-quantum",[9850,9856],{"type":21,"tag":104,"props":9851,"children":9853},{"className":9852},[],[9854],{"type":31,"value":9855},"ModuleNotFoundError: No module named 'azure.quantum'",{"type":31,"value":9857}," when submitting to Azure Quantum",{"type":21,"tag":22,"props":9859,"children":9860},{},[9861,9863,9868],{"type":31,"value":9862},"Code written against Microsoft's older Azure Quantum integration imports the standalone ",{"type":21,"tag":104,"props":9864,"children":9866},{"className":9865},[],[9867],{"type":31,"value":5986},{"type":31,"value":9869}," package:",{"type":21,"tag":129,"props":9871,"children":9873},{"className":131,"code":9872,"language":133,"meta":7,"style":7},"# Old pattern\nfrom azure.quantum import Workspace\nfrom azure.quantum.qiskit import AzureQuantumProvider\n",[9874],{"type":21,"tag":104,"props":9875,"children":9876},{"__ignoreMap":7},[9877,9885,9905],{"type":21,"tag":139,"props":9878,"children":9879},{"class":141,"line":142},[9880],{"type":21,"tag":139,"props":9881,"children":9882},{"style":220},[9883],{"type":31,"value":9884},"# Old pattern\n",{"type":21,"tag":139,"props":9886,"children":9887},{"class":141,"line":168},[9888,9892,9897,9901],{"type":21,"tag":139,"props":9889,"children":9890},{"style":146},[9891],{"type":31,"value":149},{"type":21,"tag":139,"props":9893,"children":9894},{"style":152},[9895],{"type":31,"value":9896}," azure.quantum ",{"type":21,"tag":139,"props":9898,"children":9899},{"style":146},[9900],{"type":31,"value":160},{"type":21,"tag":139,"props":9902,"children":9903},{"style":152},[9904],{"type":31,"value":4560},{"type":21,"tag":139,"props":9906,"children":9907},{"class":141,"line":190},[9908,9912,9917,9921],{"type":21,"tag":139,"props":9909,"children":9910},{"style":146},[9911],{"type":31,"value":149},{"type":21,"tag":139,"props":9913,"children":9914},{"style":152},[9915],{"type":31,"value":9916}," azure.quantum.qiskit ",{"type":21,"tag":139,"props":9918,"children":9919},{"style":146},[9920],{"type":31,"value":160},{"type":21,"tag":139,"props":9922,"children":9923},{"style":152},[9924],{"type":31,"value":6152},{"type":21,"tag":22,"props":9926,"children":9927},{},[9928,9930,9936,9938,9944,9945,9950],{"type":31,"value":9929},"Microsoft's current Quantum Development Kit (QDK) folds Azure Quantum support into the unified ",{"type":21,"tag":104,"props":9931,"children":9933},{"className":9932},[],[9934],{"type":31,"value":9935},"qdk",{"type":31,"value":9937}," package instead, installed with the ",{"type":21,"tag":104,"props":9939,"children":9941},{"className":9940},[],[9942],{"type":31,"value":9943},"azure",{"type":31,"value":3615},{"type":21,"tag":104,"props":9946,"children":9948},{"className":9947},[],[9949],{"type":31,"value":9402},{"type":31,"value":9951}," extras:",{"type":21,"tag":129,"props":9953,"children":9955},{"className":4499,"code":9954,"language":4498,"meta":7,"style":7},"pip install --upgrade \"qdk[azure,qiskit]\"\n",[9956],{"type":21,"tag":104,"props":9957,"children":9958},{"__ignoreMap":7},[9959],{"type":21,"tag":139,"props":9960,"children":9961},{"class":141,"line":142},[9962,9966,9970,9974],{"type":21,"tag":139,"props":9963,"children":9964},{"style":4509},[9965],{"type":31,"value":4512},{"type":21,"tag":139,"props":9967,"children":9968},{"style":262},[9969],{"type":31,"value":4517},{"type":21,"tag":139,"props":9971,"children":9972},{"style":214},[9973],{"type":31,"value":4522},{"type":21,"tag":139,"props":9975,"children":9976},{"style":262},[9977],{"type":31,"value":9978}," \"qdk[azure,qiskit]\"\n",{"type":21,"tag":129,"props":9980,"children":9982},{"className":131,"code":9981,"language":133,"meta":7,"style":7},"from qdk.azure import Workspace\nfrom qdk.azure.qiskit import AzureQuantumProvider\n\nworkspace = Workspace(resource_id=\"\u002Fsubscriptions\u002F...\u002FMicrosoft.Quantum\u002FWorkspaces\u002F...\")\nprovider = AzureQuantumProvider(workspace)\nbackend = provider.get_backend(\"quantinuum.qpu.h1-1\")\n",[9983],{"type":21,"tag":104,"props":9984,"children":9985},{"__ignoreMap":7},[9986,10005,10024,10031,10063,10078],{"type":21,"tag":139,"props":9987,"children":9988},{"class":141,"line":142},[9989,9993,9997,10001],{"type":21,"tag":139,"props":9990,"children":9991},{"style":146},[9992],{"type":31,"value":149},{"type":21,"tag":139,"props":9994,"children":9995},{"style":152},[9996],{"type":31,"value":4551},{"type":21,"tag":139,"props":9998,"children":9999},{"style":146},[10000],{"type":31,"value":160},{"type":21,"tag":139,"props":10002,"children":10003},{"style":152},[10004],{"type":31,"value":4560},{"type":21,"tag":139,"props":10006,"children":10007},{"class":141,"line":168},[10008,10012,10016,10020],{"type":21,"tag":139,"props":10009,"children":10010},{"style":146},[10011],{"type":31,"value":149},{"type":21,"tag":139,"props":10013,"children":10014},{"style":152},[10015],{"type":31,"value":6143},{"type":21,"tag":139,"props":10017,"children":10018},{"style":146},[10019],{"type":31,"value":160},{"type":21,"tag":139,"props":10021,"children":10022},{"style":152},[10023],{"type":31,"value":6152},{"type":21,"tag":139,"props":10025,"children":10026},{"class":141,"line":190},[10027],{"type":21,"tag":139,"props":10028,"children":10029},{"emptyLinePlaceholder":194},[10030],{"type":31,"value":197},{"type":21,"tag":139,"props":10032,"children":10033},{"class":141,"line":200},[10034,10038,10042,10046,10050,10054,10059],{"type":21,"tag":139,"props":10035,"children":10036},{"style":152},[10037],{"type":31,"value":4596},{"type":21,"tag":139,"props":10039,"children":10040},{"style":146},[10041],{"type":31,"value":211},{"type":21,"tag":139,"props":10043,"children":10044},{"style":152},[10045],{"type":31,"value":4605},{"type":21,"tag":139,"props":10047,"children":10048},{"style":923},[10049],{"type":31,"value":4610},{"type":21,"tag":139,"props":10051,"children":10052},{"style":146},[10053],{"type":31,"value":211},{"type":21,"tag":139,"props":10055,"children":10056},{"style":262},[10057],{"type":31,"value":10058},"\"\u002Fsubscriptions\u002F...\u002FMicrosoft.Quantum\u002FWorkspaces\u002F...\"",{"type":21,"tag":139,"props":10060,"children":10061},{"style":152},[10062],{"type":31,"value":270},{"type":21,"tag":139,"props":10064,"children":10065},{"class":141,"line":226},[10066,10070,10074],{"type":21,"tag":139,"props":10067,"children":10068},{"style":152},[10069],{"type":31,"value":6167},{"type":21,"tag":139,"props":10071,"children":10072},{"style":146},[10073],{"type":31,"value":211},{"type":21,"tag":139,"props":10075,"children":10076},{"style":152},[10077],{"type":31,"value":6176},{"type":21,"tag":139,"props":10079,"children":10080},{"class":141,"line":234},[10081,10085,10089,10093,10098],{"type":21,"tag":139,"props":10082,"children":10083},{"style":152},[10084],{"type":31,"value":6443},{"type":21,"tag":139,"props":10086,"children":10087},{"style":146},[10088],{"type":31,"value":211},{"type":21,"tag":139,"props":10090,"children":10091},{"style":152},[10092],{"type":31,"value":6452},{"type":21,"tag":139,"props":10094,"children":10095},{"style":262},[10096],{"type":31,"value":10097},"\"quantinuum.qpu.h1-1\"",{"type":21,"tag":139,"props":10099,"children":10100},{"style":152},[10101],{"type":31,"value":270},{"type":21,"tag":22,"props":10103,"children":10104},{},[10105,10107,10112,10113,10119],{"type":31,"value":10106},"The rest of the workflow, ",{"type":21,"tag":104,"props":10108,"children":10110},{"className":10109},[],[10111],{"type":31,"value":4657},{"type":31,"value":3615},{"type":21,"tag":104,"props":10114,"children":10116},{"className":10115},[],[10117],{"type":31,"value":10118},"backend.run()",{"type":31,"value":10120},", stays the same. Only the package and import path changed.",{"type":21,"tag":41,"props":10122,"children":10124},{"id":10123},"circuiterror-on-measure-register-size-mismatch",[10125,10131,10132,10138],{"type":21,"tag":104,"props":10126,"children":10128},{"className":10127},[],[10129],{"type":31,"value":10130},"CircuitError",{"type":31,"value":9385},{"type":21,"tag":104,"props":10133,"children":10135},{"className":10134},[],[10136],{"type":31,"value":10137},".measure()",{"type":31,"value":10139},": register size mismatch",{"type":21,"tag":22,"props":10141,"children":10142},{},[10143],{"type":31,"value":10144},"This one is a genuine circuit bug rather than an API change, and it shows up constantly for beginners:",{"type":21,"tag":129,"props":10146,"children":10148},{"className":131,"code":10147,"language":133,"meta":7,"style":7},"qc = QuantumCircuit(3, 2)  # 3 qubits, only 2 classical bits\nqc.measure([0, 1, 2], [0, 1, 2])  # CircuitError: index 2 out of range\n",[10149],{"type":21,"tag":104,"props":10150,"children":10151},{"__ignoreMap":7},[10152,10188],{"type":21,"tag":139,"props":10153,"children":10154},{"class":141,"line":142},[10155,10159,10163,10167,10171,10175,10179,10183],{"type":21,"tag":139,"props":10156,"children":10157},{"style":152},[10158],{"type":31,"value":349},{"type":21,"tag":139,"props":10160,"children":10161},{"style":146},[10162],{"type":31,"value":211},{"type":21,"tag":139,"props":10164,"children":10165},{"style":152},[10166],{"type":31,"value":6292},{"type":21,"tag":139,"props":10168,"children":10169},{"style":214},[10170],{"type":31,"value":254},{"type":21,"tag":139,"props":10172,"children":10173},{"style":152},[10174],{"type":31,"value":259},{"type":21,"tag":139,"props":10176,"children":10177},{"style":214},[10178],{"type":31,"value":293},{"type":21,"tag":139,"props":10180,"children":10181},{"style":152},[10182],{"type":31,"value":4624},{"type":21,"tag":139,"props":10184,"children":10185},{"style":220},[10186],{"type":31,"value":10187},"# 3 qubits, only 2 classical bits\n",{"type":21,"tag":139,"props":10189,"children":10190},{"class":141,"line":168},[10191,10196,10200,10204,10208,10212,10216,10220,10224,10228,10232,10236,10240,10245],{"type":21,"tag":139,"props":10192,"children":10193},{"style":152},[10194],{"type":31,"value":10195},"qc.measure([",{"type":21,"tag":139,"props":10197,"children":10198},{"style":214},[10199],{"type":31,"value":407},{"type":21,"tag":139,"props":10201,"children":10202},{"style":152},[10203],{"type":31,"value":259},{"type":21,"tag":139,"props":10205,"children":10206},{"style":214},[10207],{"type":31,"value":328},{"type":21,"tag":139,"props":10209,"children":10210},{"style":152},[10211],{"type":31,"value":259},{"type":21,"tag":139,"props":10213,"children":10214},{"style":214},[10215],{"type":31,"value":293},{"type":21,"tag":139,"props":10217,"children":10218},{"style":152},[10219],{"type":31,"value":6404},{"type":21,"tag":139,"props":10221,"children":10222},{"style":214},[10223],{"type":31,"value":407},{"type":21,"tag":139,"props":10225,"children":10226},{"style":152},[10227],{"type":31,"value":259},{"type":21,"tag":139,"props":10229,"children":10230},{"style":214},[10231],{"type":31,"value":328},{"type":21,"tag":139,"props":10233,"children":10234},{"style":152},[10235],{"type":31,"value":259},{"type":21,"tag":139,"props":10237,"children":10238},{"style":214},[10239],{"type":31,"value":293},{"type":21,"tag":139,"props":10241,"children":10242},{"style":152},[10243],{"type":31,"value":10244},"])  ",{"type":21,"tag":139,"props":10246,"children":10247},{"style":220},[10248],{"type":31,"value":10249},"# CircuitError: index 2 out of range\n",{"type":21,"tag":22,"props":10251,"children":10252},{},[10253,10255,10261],{"type":31,"value":10254},"The classical register has fewer bits than the quantity of qubits you're trying to measure into. Either size the classical register to match what you measure, or use ",{"type":21,"tag":104,"props":10256,"children":10258},{"className":10257},[],[10259],{"type":31,"value":10260},"qc.measure_all()",{"type":31,"value":10262},", which auto-creates a matching classical register for every qubit in the circuit.",{"type":21,"tag":41,"props":10264,"children":10266},{"id":10265},"transpilererror-circuit-doesnt-match-backend",[10267,10273],{"type":21,"tag":104,"props":10268,"children":10270},{"className":10269},[],[10271],{"type":31,"value":10272},"TranspilerError",{"type":31,"value":10274},": circuit doesn't match backend",{"type":21,"tag":129,"props":10276,"children":10278},{"className":131,"code":10277,"language":133,"meta":7,"style":7},"qc = QuantumCircuit(20)\n# ... build a 20-qubit circuit ...\ntranspile(qc, backend)  # TranspilerError if backend supports fewer qubits\n",[10279],{"type":21,"tag":104,"props":10280,"children":10281},{"__ignoreMap":7},[10282,10306,10314],{"type":21,"tag":139,"props":10283,"children":10284},{"class":141,"line":142},[10285,10289,10293,10297,10302],{"type":21,"tag":139,"props":10286,"children":10287},{"style":152},[10288],{"type":31,"value":349},{"type":21,"tag":139,"props":10290,"children":10291},{"style":146},[10292],{"type":31,"value":211},{"type":21,"tag":139,"props":10294,"children":10295},{"style":152},[10296],{"type":31,"value":6292},{"type":21,"tag":139,"props":10298,"children":10299},{"style":214},[10300],{"type":31,"value":10301},"20",{"type":21,"tag":139,"props":10303,"children":10304},{"style":152},[10305],{"type":31,"value":270},{"type":21,"tag":139,"props":10307,"children":10308},{"class":141,"line":168},[10309],{"type":21,"tag":139,"props":10310,"children":10311},{"style":220},[10312],{"type":31,"value":10313},"# ... build a 20-qubit circuit ...\n",{"type":21,"tag":139,"props":10315,"children":10316},{"class":141,"line":190},[10317,10322],{"type":21,"tag":139,"props":10318,"children":10319},{"style":152},[10320],{"type":31,"value":10321},"transpile(qc, backend)  ",{"type":21,"tag":139,"props":10323,"children":10324},{"style":220},[10325],{"type":31,"value":10326},"# TranspilerError if backend supports fewer qubits\n",{"type":21,"tag":22,"props":10328,"children":10329},{},[10330,10332,10338,10340,10346,10347,10353,10355,10361],{"type":31,"value":10331},"This means the circuit needs more qubits than the target backend has, or uses a gate outside the backend's basis gate set and ",{"type":21,"tag":26,"props":10333,"children":10335},{"href":10334},"\u002Fglossary\u002Ftranspilation",[10336],{"type":31,"value":10337},"transpilation",{"type":31,"value":10339}," can't find a valid mapping. Check ",{"type":21,"tag":104,"props":10341,"children":10343},{"className":10342},[],[10344],{"type":31,"value":10345},"backend.configuration().n_qubits",{"type":31,"value":3615},{"type":21,"tag":104,"props":10348,"children":10350},{"className":10349},[],[10351],{"type":31,"value":10352},"backend.configuration().basis_gates",{"type":31,"value":10354}," before transpiling, and let ",{"type":21,"tag":104,"props":10356,"children":10358},{"className":10357},[],[10359],{"type":31,"value":10360},"transpile()",{"type":31,"value":10362}," handle the gate decomposition rather than manually inserting gates the backend doesn't natively support.",{"type":21,"tag":41,"props":10364,"children":10366},{"id":10365},"deprecation-warnings-from-qiskitalgorithms-and-qiskitopflow",[10367,10369,10375,10376],{"type":31,"value":10368},"Deprecation warnings from ",{"type":21,"tag":104,"props":10370,"children":10372},{"className":10371},[],[10373],{"type":31,"value":10374},"qiskit.algorithms",{"type":31,"value":3615},{"type":21,"tag":104,"props":10377,"children":10379},{"className":10378},[],[10380],{"type":31,"value":10381},"qiskit.opflow",{"type":21,"tag":22,"props":10383,"children":10384},{},[10385,10387,10393,10395,10400,10402,10407,10409,10415,10417,10422,10423,10428,10430,10435,10436,10441],{"type":31,"value":10386},"If your console fills with ",{"type":21,"tag":104,"props":10388,"children":10390},{"className":10389},[],[10391],{"type":31,"value":10392},"DeprecationWarning",{"type":31,"value":10394}," on every run, the code is almost always importing from ",{"type":21,"tag":104,"props":10396,"children":10398},{"className":10397},[],[10399],{"type":31,"value":10381},{"type":31,"value":10401}," or the older ",{"type":21,"tag":104,"props":10403,"children":10405},{"className":10404},[],[10406],{"type":31,"value":10374},{"type":31,"value":10408}," module structure, both superseded by the separate ",{"type":21,"tag":104,"props":10410,"children":10412},{"className":10411},[],[10413],{"type":31,"value":10414},"qiskit-algorithms",{"type":31,"value":10416}," package and the primitives-based (",{"type":21,"tag":104,"props":10418,"children":10420},{"className":10419},[],[10421],{"type":31,"value":9343},{"type":31,"value":5062},{"type":21,"tag":104,"props":10424,"children":10426},{"className":10425},[],[10427],{"type":31,"value":9350},{"type":31,"value":10429},") pattern. Warnings aren't fatal, but they're a sign the code is one migration behind, and the underlying functions do eventually get removed. Our ",{"type":21,"tag":26,"props":10431,"children":10432},{"href":3610},[10433],{"type":31,"value":10434},"VQE walkthrough",{"type":31,"value":3615},{"type":21,"tag":26,"props":10437,"children":10438},{"href":1244},[10439],{"type":31,"value":10440},"QAOA tutorial",{"type":31,"value":10442}," use the current primitives pattern if you need a working reference to migrate against.",{"type":21,"tag":41,"props":10444,"children":10446},{"id":10445},"jobs-stuck-in-queue-on-the-free-tier",[10447],{"type":31,"value":10448},"Jobs stuck in queue on the free tier",{"type":21,"tag":22,"props":10450,"children":10451},{},[10452,10454,10460,10462,10468,10470,10475],{"type":31,"value":10453},"Not an error message, a silent wait. IBM's free Open Plan queues everyone's jobs on shared hardware, and a job submitted to a busy backend takes real time to return, which looks identical to a hang from the caller's side. Call ",{"type":21,"tag":104,"props":10455,"children":10457},{"className":10456},[],[10458],{"type":31,"value":10459},"service.least_busy(operational=True, simulator=False)",{"type":31,"value":10461}," instead of naming a specific backend, and check ",{"type":21,"tag":104,"props":10463,"children":10465},{"className":10464},[],[10466],{"type":31,"value":10467},"job.status()",{"type":31,"value":10469}," rather than assuming a stuck cell means broken code. Our ",{"type":21,"tag":26,"props":10471,"children":10472},{"href":1970},[10473],{"type":31,"value":10474},"free tier guide",{"type":31,"value":10476}," covers what the 10-minute monthly quantum-time limit does and doesn't cover.",{"type":21,"tag":41,"props":10478,"children":10479},{"id":7185},[10480],{"type":31,"value":7188},{"type":21,"tag":22,"props":10482,"children":10483},{},[10484,10486,10492,10493,10498,10499,10505],{"type":31,"value":10485},"Every API-change error above traces back to the equivalent event: Qiskit 1.0 unified what used to be a scattered set of packages (",{"type":21,"tag":104,"props":10487,"children":10489},{"className":10488},[],[10490],{"type":31,"value":10491},"qiskit-terra",{"type":31,"value":259},{"type":21,"tag":104,"props":10494,"children":10496},{"className":10495},[],[10497],{"type":31,"value":9410},{"type":31,"value":259},{"type":21,"tag":104,"props":10500,"children":10502},{"className":10501},[],[10503],{"type":31,"value":10504},"qiskit-ibmq-provider",{"type":31,"value":10506},", and more) into one restructured, versioned package, and retired several legacy paths in the process. If you're hitting an error that isn't listed here and it comes from code copied from an older tutorial, check whether the import path predates that restructuring before assuming your circuit logic is wrong.",{"type":21,"tag":1168,"props":10508,"children":10509},{},[10510],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":10512},[10513,10514,10516,10518,10520,10522,10524,10526,10527],{"id":9130,"depth":168,"text":9137},{"id":9370,"depth":168,"text":10515},"ImportError or AttributeError on from qiskit import Aer",{"id":9551,"depth":168,"text":10517},"IBMQ.load_account() no longer works",{"id":9848,"depth":168,"text":10519},"ModuleNotFoundError: No module named 'azure.quantum' when submitting to Azure Quantum",{"id":10123,"depth":168,"text":10521},"CircuitError on .measure(): register size mismatch",{"id":10265,"depth":168,"text":10523},"TranspilerError: circuit doesn't match backend",{"id":10365,"depth":168,"text":10525},"Deprecation warnings from qiskit.algorithms and qiskit.opflow",{"id":10445,"depth":168,"text":10448},{"id":7185,"depth":168,"text":7188},"content:blog:common-qiskit-errors-and-fixes.md","blog\u002Fcommon-qiskit-errors-and-fixes.md","blog\u002Fcommon-qiskit-errors-and-fixes",{"_path":10532,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":10533,"description":10534,"date":4471,"author":11,"tags":10535,"readingTime":234,"body":10537,"_type":1187,"_id":10642,"_source":1189,"_file":10643,"_stem":10644,"_extension":1192},"\u002Fblog\u002Featon-afrl-quantum-grid-security","Eaton Won a $7M Air Force Contract to Find Grid Failures Current Standards Miss","Eaton, with Infleqtion and Penn State, won a $7 million AFRL contract to develop hybrid quantum-classical algorithms for power grid security, targeting failure scenarios beyond the N-2 standard grids are built to survive today.",[3396,10536],"Use Cases",{"type":18,"children":10538,"toc":10635},[10539,10552,10558,10571,10577,10589,10595,10607,10613,10626,10630],{"type":21,"tag":22,"props":10540,"children":10541},{},[10542,10544,10550],{"type":31,"value":10543},"Eaton was awarded a $7 million contract by the US Air Force Research Laboratory on August 7, 2026, to develop hybrid quantum-classical algorithms for power grid security, running over 24 months. Eaton is the prime contractor, with ",{"type":21,"tag":26,"props":10545,"children":10547},{"href":10546},"\u002Fblog\u002Finfleqtion-sqale-illinois-quantum-park",[10548],{"type":31,"value":10549},"Infleqtion",{"type":31,"value":10551}," providing quantum hardware and Penn State handling algorithm research. This is a research contract with a defined scope and deliverables, not a deployed system.",{"type":21,"tag":41,"props":10553,"children":10555},{"id":10554},"the-issue-grids-are-built-to-survive-two-failures-not-more",[10556],{"type":31,"value":10557},"The issue: grids are built to survive two failures, not more",{"type":21,"tag":22,"props":10559,"children":10560},{},[10561,10563,10569],{"type":31,"value":10562},"US grid reliability standards, set by NERC, require the grid to withstand two sequential component failures at once, known as N-2 contingency planning. That standard exists because checking every possible combination of simultaneous failures across a real grid is a combinatorial problem that grows too large for classical computers to evaluate in real time as the figure of components increases. Eaton's contract targets exactly that gap: detecting, visualizing, and mitigating simultaneous physical and cyber threats beyond what N-2 planning covers, using ",{"type":21,"tag":26,"props":10564,"children":10566},{"href":10565},"\u002Fblog\u002Fquantum-use-cases-2026",[10567],{"type":31,"value":10568},"hybrid quantum-classical",{"type":31,"value":10570}," methods to evaluate larger combinations of simultaneous failures within useful time.",{"type":21,"tag":41,"props":10572,"children":10574},{"id":10573},"what-the-contract-funds",[10575],{"type":31,"value":10576},"What the contract funds",{"type":21,"tag":22,"props":10578,"children":10579},{},[10580,10582,10587],{"type":31,"value":10581},"The deliverables listed are specific: novel quantum algorithms for the contingency problem, optimized quantum circuits built for hybrid execution, testing protocols across multiple hardware platforms, methods for evaluating error mitigation, and a proof-of-concept demonstration on near-term quantum processors. That list reads as research infrastructure, not a product. A \"proof-of-concept demonstration on near-term processors\" is an explicit acknowledgment that current quantum hardware isn't ready to run this workload in production, which matches where ",{"type":21,"tag":26,"props":10583,"children":10584},{"href":10565},[10585],{"type":31,"value":10586},"quantum computing sits",{"type":31,"value":10588}," on most infrastructure-scale optimization problems today.",{"type":21,"tag":41,"props":10590,"children":10592},{"id":10591},"why-infleqtion-and-penn-state",[10593],{"type":31,"value":10594},"Why Infleqtion and Penn State",{"type":21,"tag":22,"props":10596,"children":10597},{},[10598,10600,10605],{"type":31,"value":10599},"Infleqtion brings neutral-atom quantum hardware, the equivalent category of system it's deploying in Chicago through its ",{"type":21,"tag":26,"props":10601,"children":10602},{"href":10546},[10603],{"type":31,"value":10604},"Illinois Quantum and Microelectronics Park project",{"type":31,"value":10606},", which is itself aimed at energy-grid optimization. That's not a coincidence: Infleqtion has been building a specific position in the energy vertical, and this AFRL contract extends that focus into grid security rather than starting a new line of work. Penn State's role is algorithm research, translating the contingency-analysis problem into a form that runs on quantum hardware, the harder and less visible half of any hybrid quantum-classical project.",{"type":21,"tag":41,"props":10608,"children":10610},{"id":10609},"a-defense-funded-contract-with-a-civilian-grid-problem",[10611],{"type":31,"value":10612},"A defense-funded contract with a civilian-grid problem",{"type":21,"tag":22,"props":10614,"children":10615},{},[10616,10618,10624],{"type":31,"value":10617},"AFRL funding a power-grid security project reflects how the US treats grid resilience as a national security concern and not only a utility operations problem, especially given the physical and cyber threat combination named explicitly in the contract scope. That framing puts this alongside other defense-adjacent quantum contracts this site has covered, like ",{"type":21,"tag":26,"props":10619,"children":10621},{"href":10620},"\u002Fblog\u002Fionq-sandia-national-labs-mou-quantum-co-design",[10622],{"type":31,"value":10623},"IonQ's Sandia MOU",{"type":31,"value":10625},", where government national-security budgets are funding quantum research that has clear civilian infrastructure applications too.",{"type":21,"tag":41,"props":10627,"children":10628},{"id":3461},[10629],{"type":31,"value":3464},{"type":21,"tag":22,"props":10631,"children":10632},{},[10633],{"type":31,"value":10634},"The proof-of-concept demonstration is the deliverable that will show whether this produces a usable result. Twenty-four months is enough time for algorithm development and initial hardware testing, not for a deployed grid-security system, so the real test comes after this contract's timeline ends: whether Eaton or a utility customer picks up the proof-of-concept for a pilot deployment.",{"title":7,"searchDepth":168,"depth":168,"links":10636},[10637,10638,10639,10640,10641],{"id":10554,"depth":168,"text":10557},{"id":10573,"depth":168,"text":10576},{"id":10591,"depth":168,"text":10594},{"id":10609,"depth":168,"text":10612},{"id":3461,"depth":168,"text":3464},"content:blog:eaton-afrl-quantum-grid-security.md","blog\u002Featon-afrl-quantum-grid-security.md","blog\u002Featon-afrl-quantum-grid-security",{"_path":10646,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":10647,"description":10648,"date":4471,"author":11,"tags":10649,"readingTime":309,"body":10650,"_type":1187,"_id":11822,"_source":1189,"_file":11823,"_stem":11824,"_extension":1192},"\u002Fblog\u002Fmeasuring-t1-t2-qiskit-experiments","Measuring T1 and T2 on Real Hardware with Qiskit Experiments","A practical walkthrough of the T1, T2Ramsey, and T2Hahn experiment classes in Qiskit Experiments 0.14: how to build the delay-sweep circuits, run them, and read the fitted coherence times out of the results.",[14,1207,5973],{"type":18,"children":10651,"toc":11813},[10652,10673,10696,10702,10723,10793,10799,10804,11022,11050,11056,11069,11295,11323,11329,11334,11611,11621,11627,11646,11652,11657,11737,11757,11761,11809],{"type":21,"tag":22,"props":10653,"children":10654},{},[10655,10656,10662,10664,10671],{"type":31,"value":4481},{"type":21,"tag":26,"props":10657,"children":10659},{"href":10658},"\u002Fblog\u002Ft1-vs-t2-relaxation-dephasing-explained",[10660],{"type":31,"value":10661},"piece on T1 and T2",{"type":31,"value":10663}," covers what the two numbers mean: T1 as energy relaxation, T2 as the loss of phase information. This post covers the other half, how you measure them, using ",{"type":21,"tag":26,"props":10665,"children":10668},{"href":10666,"rel":10667},"https:\u002F\u002Fqiskit-community.github.io\u002Fqiskit-experiments\u002F",[7123],[10669],{"type":31,"value":10670},"Qiskit Experiments",{"type":31,"value":10672}," (version 0.14 as of this writing), the library that automates the delay sweeps and curve fitting instead of you writing that machinery by hand.",{"type":21,"tag":129,"props":10674,"children":10676},{"className":4499,"code":10675,"language":4498,"meta":7,"style":7},"pip install qiskit-experiments\n",[10677],{"type":21,"tag":104,"props":10678,"children":10679},{"__ignoreMap":7},[10680],{"type":21,"tag":139,"props":10681,"children":10682},{"class":141,"line":142},[10683,10687,10691],{"type":21,"tag":139,"props":10684,"children":10685},{"style":4509},[10686],{"type":31,"value":4512},{"type":21,"tag":139,"props":10688,"children":10689},{"style":262},[10690],{"type":31,"value":4517},{"type":21,"tag":139,"props":10692,"children":10693},{"style":262},[10694],{"type":31,"value":10695}," qiskit-experiments\n",{"type":21,"tag":41,"props":10697,"children":10699},{"id":10698},"why-you-need-a-noisy-backend",[10700],{"type":31,"value":10701},"Why you need a noisy backend",{"type":21,"tag":22,"props":10703,"children":10704},{},[10705,10707,10713,10715,10721],{"type":31,"value":10706},"An ideal, noiseless simulator never decoheres, so running these experiments against a plain ",{"type":21,"tag":104,"props":10708,"children":10710},{"className":10709},[],[10711],{"type":31,"value":10712},"AerSimulator()",{"type":31,"value":10714}," gives you a flat line and nothing to fit. You need either real hardware or a simulator seeded with a realistic noise model. The easiest path for testing the workflow is ",{"type":21,"tag":104,"props":10716,"children":10718},{"className":10717},[],[10719],{"type":31,"value":10720},"AerSimulator.from_backend()",{"type":31,"value":10722}," on a fake backend snapshot, which carries over that device's real calibration data, including its T1 and T2:",{"type":21,"tag":129,"props":10724,"children":10726},{"className":131,"code":10725,"language":133,"meta":7,"style":7},"from qiskit_ibm_runtime.fake_provider import FakePerth\nfrom qiskit_aer import AerSimulator\n\nbackend = AerSimulator.from_backend(FakePerth())\n",[10727],{"type":21,"tag":104,"props":10728,"children":10729},{"__ignoreMap":7},[10730,10751,10770,10777],{"type":21,"tag":139,"props":10731,"children":10732},{"class":141,"line":142},[10733,10737,10742,10746],{"type":21,"tag":139,"props":10734,"children":10735},{"style":146},[10736],{"type":31,"value":149},{"type":21,"tag":139,"props":10738,"children":10739},{"style":152},[10740],{"type":31,"value":10741}," qiskit_ibm_runtime.fake_provider ",{"type":21,"tag":139,"props":10743,"children":10744},{"style":146},[10745],{"type":31,"value":160},{"type":21,"tag":139,"props":10747,"children":10748},{"style":152},[10749],{"type":31,"value":10750}," FakePerth\n",{"type":21,"tag":139,"props":10752,"children":10753},{"class":141,"line":168},[10754,10758,10762,10766],{"type":21,"tag":139,"props":10755,"children":10756},{"style":146},[10757],{"type":31,"value":149},{"type":21,"tag":139,"props":10759,"children":10760},{"style":152},[10761],{"type":31,"value":178},{"type":21,"tag":139,"props":10763,"children":10764},{"style":146},[10765],{"type":31,"value":160},{"type":21,"tag":139,"props":10767,"children":10768},{"style":152},[10769],{"type":31,"value":187},{"type":21,"tag":139,"props":10771,"children":10772},{"class":141,"line":190},[10773],{"type":21,"tag":139,"props":10774,"children":10775},{"emptyLinePlaceholder":194},[10776],{"type":31,"value":197},{"type":21,"tag":139,"props":10778,"children":10779},{"class":141,"line":200},[10780,10784,10788],{"type":21,"tag":139,"props":10781,"children":10782},{"style":152},[10783],{"type":31,"value":6443},{"type":21,"tag":139,"props":10785,"children":10786},{"style":146},[10787],{"type":31,"value":211},{"type":21,"tag":139,"props":10789,"children":10790},{"style":152},[10791],{"type":31,"value":10792}," AerSimulator.from_backend(FakePerth())\n",{"type":21,"tag":41,"props":10794,"children":10796},{"id":10795},"measuring-t1-the-delay-sweep",[10797],{"type":31,"value":10798},"Measuring T1: the delay sweep",{"type":21,"tag":22,"props":10800,"children":10801},{},[10802],{"type":31,"value":10803},"T1 works by preparing |1⟩, waiting a variable delay, then measuring how much population has decayed back to |0⟩:",{"type":21,"tag":129,"props":10805,"children":10807},{"className":131,"code":10806,"language":133,"meta":7,"style":7},"import numpy as np\nfrom qiskit_experiments.library import T1\n\ndelays = np.arange(0, 300e-6, 10e-6)  # 0 to 300 microseconds\nexp = T1(physical_qubits=(0,), delays=delays)\n\nexp_data = exp.run(backend=backend).block_for_results()\nexp_data.analysis_results(dataframe=True)\n",[10808],{"type":21,"tag":104,"props":10809,"children":10810},{"__ignoreMap":7},[10811,10830,10851,10858,10906,10959,10966,10997],{"type":21,"tag":139,"props":10812,"children":10813},{"class":141,"line":142},[10814,10818,10822,10826],{"type":21,"tag":139,"props":10815,"children":10816},{"style":146},[10817],{"type":31,"value":160},{"type":21,"tag":139,"props":10819,"children":10820},{"style":152},[10821],{"type":31,"value":8517},{"type":21,"tag":139,"props":10823,"children":10824},{"style":146},[10825],{"type":31,"value":5343},{"type":21,"tag":139,"props":10827,"children":10828},{"style":152},[10829],{"type":31,"value":8619},{"type":21,"tag":139,"props":10831,"children":10832},{"class":141,"line":168},[10833,10837,10842,10846],{"type":21,"tag":139,"props":10834,"children":10835},{"style":146},[10836],{"type":31,"value":149},{"type":21,"tag":139,"props":10838,"children":10839},{"style":152},[10840],{"type":31,"value":10841}," qiskit_experiments.library ",{"type":21,"tag":139,"props":10843,"children":10844},{"style":146},[10845],{"type":31,"value":160},{"type":21,"tag":139,"props":10847,"children":10848},{"style":152},[10849],{"type":31,"value":10850}," T1\n",{"type":21,"tag":139,"props":10852,"children":10853},{"class":141,"line":190},[10854],{"type":21,"tag":139,"props":10855,"children":10856},{"emptyLinePlaceholder":194},[10857],{"type":31,"value":197},{"type":21,"tag":139,"props":10859,"children":10860},{"class":141,"line":200},[10861,10866,10870,10875,10879,10883,10888,10892,10897,10901],{"type":21,"tag":139,"props":10862,"children":10863},{"style":152},[10864],{"type":31,"value":10865},"delays ",{"type":21,"tag":139,"props":10867,"children":10868},{"style":146},[10869],{"type":31,"value":211},{"type":21,"tag":139,"props":10871,"children":10872},{"style":152},[10873],{"type":31,"value":10874}," np.arange(",{"type":21,"tag":139,"props":10876,"children":10877},{"style":214},[10878],{"type":31,"value":407},{"type":21,"tag":139,"props":10880,"children":10881},{"style":152},[10882],{"type":31,"value":259},{"type":21,"tag":139,"props":10884,"children":10885},{"style":214},[10886],{"type":31,"value":10887},"300e-6",{"type":21,"tag":139,"props":10889,"children":10890},{"style":152},[10891],{"type":31,"value":259},{"type":21,"tag":139,"props":10893,"children":10894},{"style":214},[10895],{"type":31,"value":10896},"10e-6",{"type":21,"tag":139,"props":10898,"children":10899},{"style":152},[10900],{"type":31,"value":4624},{"type":21,"tag":139,"props":10902,"children":10903},{"style":220},[10904],{"type":31,"value":10905},"# 0 to 300 microseconds\n",{"type":21,"tag":139,"props":10907,"children":10908},{"class":141,"line":226},[10909,10914,10918,10923,10928,10932,10936,10940,10945,10950,10954],{"type":21,"tag":139,"props":10910,"children":10911},{"style":152},[10912],{"type":31,"value":10913},"exp ",{"type":21,"tag":139,"props":10915,"children":10916},{"style":146},[10917],{"type":31,"value":211},{"type":21,"tag":139,"props":10919,"children":10920},{"style":152},[10921],{"type":31,"value":10922}," T1(",{"type":21,"tag":139,"props":10924,"children":10925},{"style":923},[10926],{"type":31,"value":10927},"physical_qubits",{"type":21,"tag":139,"props":10929,"children":10930},{"style":146},[10931],{"type":31,"value":211},{"type":21,"tag":139,"props":10933,"children":10934},{"style":152},[10935],{"type":31,"value":953},{"type":21,"tag":139,"props":10937,"children":10938},{"style":214},[10939],{"type":31,"value":407},{"type":21,"tag":139,"props":10941,"children":10942},{"style":152},[10943],{"type":31,"value":10944},",), ",{"type":21,"tag":139,"props":10946,"children":10947},{"style":923},[10948],{"type":31,"value":10949},"delays",{"type":21,"tag":139,"props":10951,"children":10952},{"style":146},[10953],{"type":31,"value":211},{"type":21,"tag":139,"props":10955,"children":10956},{"style":152},[10957],{"type":31,"value":10958},"delays)\n",{"type":21,"tag":139,"props":10960,"children":10961},{"class":141,"line":234},[10962],{"type":21,"tag":139,"props":10963,"children":10964},{"emptyLinePlaceholder":194},[10965],{"type":31,"value":197},{"type":21,"tag":139,"props":10967,"children":10968},{"class":141,"line":273},[10969,10974,10978,10983,10988,10992],{"type":21,"tag":139,"props":10970,"children":10971},{"style":152},[10972],{"type":31,"value":10973},"exp_data ",{"type":21,"tag":139,"props":10975,"children":10976},{"style":146},[10977],{"type":31,"value":211},{"type":21,"tag":139,"props":10979,"children":10980},{"style":152},[10981],{"type":31,"value":10982}," exp.run(",{"type":21,"tag":139,"props":10984,"children":10985},{"style":923},[10986],{"type":31,"value":10987},"backend",{"type":21,"tag":139,"props":10989,"children":10990},{"style":146},[10991],{"type":31,"value":211},{"type":21,"tag":139,"props":10993,"children":10994},{"style":152},[10995],{"type":31,"value":10996},"backend).block_for_results()\n",{"type":21,"tag":139,"props":10998,"children":10999},{"class":141,"line":309},[11000,11005,11010,11014,11018],{"type":21,"tag":139,"props":11001,"children":11002},{"style":152},[11003],{"type":31,"value":11004},"exp_data.analysis_results(",{"type":21,"tag":139,"props":11006,"children":11007},{"style":923},[11008],{"type":31,"value":11009},"dataframe",{"type":21,"tag":139,"props":11011,"children":11012},{"style":146},[11013],{"type":31,"value":211},{"type":21,"tag":139,"props":11015,"children":11016},{"style":214},[11017],{"type":31,"value":8664},{"type":21,"tag":139,"props":11019,"children":11020},{"style":152},[11021],{"type":31,"value":270},{"type":21,"tag":22,"props":11023,"children":11024},{},[11025,11027,11032,11034,11040,11042,11048],{"type":31,"value":11026},"The ",{"type":21,"tag":104,"props":11028,"children":11030},{"className":11029},[],[11031],{"type":31,"value":10927},{"type":31,"value":11033}," argument targets a specific qubit on the device rather than an abstract circuit qubit. The result table's ",{"type":21,"tag":104,"props":11035,"children":11037},{"className":11036},[],[11038],{"type":31,"value":11039},"T1",{"type":31,"value":11041}," row gives the fitted decay constant with its uncertainty, in seconds. ",{"type":21,"tag":104,"props":11043,"children":11045},{"className":11044},[],[11046],{"type":31,"value":11047},"exp_data.figure(0)",{"type":31,"value":11049}," returns the decay curve as a plotted figure if you want to see the exponential fit visually rather than only the fitted number.",{"type":21,"tag":41,"props":11051,"children":11053},{"id":11052},"measuring-t2-ramsey-fringes",[11054],{"type":31,"value":11055},"Measuring T2: Ramsey fringes",{"type":21,"tag":22,"props":11057,"children":11058},{},[11059,11061,11067],{"type":31,"value":11060},"T2Ramsey measures dephasing by preparing a superposition, waiting a delay, then applying a second pulse with a deliberate small detuning (",{"type":21,"tag":104,"props":11062,"children":11064},{"className":11063},[],[11065],{"type":31,"value":11066},"osc_freq",{"type":31,"value":11068},") so the result oscillates as the delay increases. The envelope of that oscillation, not the oscillation itself, decays with T2:",{"type":21,"tag":129,"props":11070,"children":11072},{"className":131,"code":11071,"language":133,"meta":7,"style":7},"from qiskit_experiments.library import T2Ramsey\n\ndelays = list(np.arange(1e-6, 50e-6, 2e-6))\nexp = T2Ramsey((0,), delays, osc_freq=1e5)\nexp.set_transpile_options(scheduling_method=\"asap\")\n\nexp_data = exp.run(backend=backend, shots=2000).block_for_results()\nexp_data.analysis_results(dataframe=True)\n",[11073],{"type":21,"tag":104,"props":11074,"children":11075},{"__ignoreMap":7},[11076,11096,11103,11151,11193,11219,11226,11272],{"type":21,"tag":139,"props":11077,"children":11078},{"class":141,"line":142},[11079,11083,11087,11091],{"type":21,"tag":139,"props":11080,"children":11081},{"style":146},[11082],{"type":31,"value":149},{"type":21,"tag":139,"props":11084,"children":11085},{"style":152},[11086],{"type":31,"value":10841},{"type":21,"tag":139,"props":11088,"children":11089},{"style":146},[11090],{"type":31,"value":160},{"type":21,"tag":139,"props":11092,"children":11093},{"style":152},[11094],{"type":31,"value":11095}," T2Ramsey\n",{"type":21,"tag":139,"props":11097,"children":11098},{"class":141,"line":168},[11099],{"type":21,"tag":139,"props":11100,"children":11101},{"emptyLinePlaceholder":194},[11102],{"type":31,"value":197},{"type":21,"tag":139,"props":11104,"children":11105},{"class":141,"line":190},[11106,11110,11114,11119,11124,11129,11133,11138,11142,11147],{"type":21,"tag":139,"props":11107,"children":11108},{"style":152},[11109],{"type":31,"value":10865},{"type":21,"tag":139,"props":11111,"children":11112},{"style":146},[11113],{"type":31,"value":211},{"type":21,"tag":139,"props":11115,"children":11116},{"style":214},[11117],{"type":31,"value":11118}," list",{"type":21,"tag":139,"props":11120,"children":11121},{"style":152},[11122],{"type":31,"value":11123},"(np.arange(",{"type":21,"tag":139,"props":11125,"children":11126},{"style":214},[11127],{"type":31,"value":11128},"1e-6",{"type":21,"tag":139,"props":11130,"children":11131},{"style":152},[11132],{"type":31,"value":259},{"type":21,"tag":139,"props":11134,"children":11135},{"style":214},[11136],{"type":31,"value":11137},"50e-6",{"type":21,"tag":139,"props":11139,"children":11140},{"style":152},[11141],{"type":31,"value":259},{"type":21,"tag":139,"props":11143,"children":11144},{"style":214},[11145],{"type":31,"value":11146},"2e-6",{"type":21,"tag":139,"props":11148,"children":11149},{"style":152},[11150],{"type":31,"value":5596},{"type":21,"tag":139,"props":11152,"children":11153},{"class":141,"line":200},[11154,11158,11162,11167,11171,11176,11180,11184,11189],{"type":21,"tag":139,"props":11155,"children":11156},{"style":152},[11157],{"type":31,"value":10913},{"type":21,"tag":139,"props":11159,"children":11160},{"style":146},[11161],{"type":31,"value":211},{"type":21,"tag":139,"props":11163,"children":11164},{"style":152},[11165],{"type":31,"value":11166}," T2Ramsey((",{"type":21,"tag":139,"props":11168,"children":11169},{"style":214},[11170],{"type":31,"value":407},{"type":21,"tag":139,"props":11172,"children":11173},{"style":152},[11174],{"type":31,"value":11175},",), delays, ",{"type":21,"tag":139,"props":11177,"children":11178},{"style":923},[11179],{"type":31,"value":11066},{"type":21,"tag":139,"props":11181,"children":11182},{"style":146},[11183],{"type":31,"value":211},{"type":21,"tag":139,"props":11185,"children":11186},{"style":214},[11187],{"type":31,"value":11188},"1e5",{"type":21,"tag":139,"props":11190,"children":11191},{"style":152},[11192],{"type":31,"value":270},{"type":21,"tag":139,"props":11194,"children":11195},{"class":141,"line":226},[11196,11201,11206,11210,11215],{"type":21,"tag":139,"props":11197,"children":11198},{"style":152},[11199],{"type":31,"value":11200},"exp.set_transpile_options(",{"type":21,"tag":139,"props":11202,"children":11203},{"style":923},[11204],{"type":31,"value":11205},"scheduling_method",{"type":21,"tag":139,"props":11207,"children":11208},{"style":146},[11209],{"type":31,"value":211},{"type":21,"tag":139,"props":11211,"children":11212},{"style":262},[11213],{"type":31,"value":11214},"\"asap\"",{"type":21,"tag":139,"props":11216,"children":11217},{"style":152},[11218],{"type":31,"value":270},{"type":21,"tag":139,"props":11220,"children":11221},{"class":141,"line":234},[11222],{"type":21,"tag":139,"props":11223,"children":11224},{"emptyLinePlaceholder":194},[11225],{"type":31,"value":197},{"type":21,"tag":139,"props":11227,"children":11228},{"class":141,"line":273},[11229,11233,11237,11241,11245,11249,11254,11258,11262,11267],{"type":21,"tag":139,"props":11230,"children":11231},{"style":152},[11232],{"type":31,"value":10973},{"type":21,"tag":139,"props":11234,"children":11235},{"style":146},[11236],{"type":31,"value":211},{"type":21,"tag":139,"props":11238,"children":11239},{"style":152},[11240],{"type":31,"value":10982},{"type":21,"tag":139,"props":11242,"children":11243},{"style":923},[11244],{"type":31,"value":10987},{"type":21,"tag":139,"props":11246,"children":11247},{"style":146},[11248],{"type":31,"value":211},{"type":21,"tag":139,"props":11250,"children":11251},{"style":152},[11252],{"type":31,"value":11253},"backend, ",{"type":21,"tag":139,"props":11255,"children":11256},{"style":923},[11257],{"type":31,"value":926},{"type":21,"tag":139,"props":11259,"children":11260},{"style":146},[11261],{"type":31,"value":211},{"type":21,"tag":139,"props":11263,"children":11264},{"style":214},[11265],{"type":31,"value":11266},"2000",{"type":21,"tag":139,"props":11268,"children":11269},{"style":152},[11270],{"type":31,"value":11271},").block_for_results()\n",{"type":21,"tag":139,"props":11273,"children":11274},{"class":141,"line":309},[11275,11279,11283,11287,11291],{"type":21,"tag":139,"props":11276,"children":11277},{"style":152},[11278],{"type":31,"value":11004},{"type":21,"tag":139,"props":11280,"children":11281},{"style":923},[11282],{"type":31,"value":11009},{"type":21,"tag":139,"props":11284,"children":11285},{"style":146},[11286],{"type":31,"value":211},{"type":21,"tag":139,"props":11288,"children":11289},{"style":214},[11290],{"type":31,"value":8664},{"type":21,"tag":139,"props":11292,"children":11293},{"style":152},[11294],{"type":31,"value":270},{"type":21,"tag":22,"props":11296,"children":11297},{},[11298,11300,11306,11308,11314,11316,11321],{"type":31,"value":11299},"The results table reports both a ",{"type":21,"tag":104,"props":11301,"children":11303},{"className":11302},[],[11304],{"type":31,"value":11305},"T2star",{"type":31,"value":11307}," value (T2Ramsey measures what's conventionally written T2*, coherence time without any refocusing) and the fitted ",{"type":21,"tag":104,"props":11309,"children":11311},{"className":11310},[],[11312],{"type":31,"value":11313},"Frequency",{"type":31,"value":11315},", which should land close to the ",{"type":21,"tag":104,"props":11317,"children":11319},{"className":11318},[],[11320],{"type":31,"value":11066},{"type":31,"value":11322}," you set if the detuning was applied correctly.",{"type":21,"tag":41,"props":11324,"children":11326},{"id":11325},"measuring-t2-with-an-echo-t2hahn",[11327],{"type":31,"value":11328},"Measuring T2 with an echo: T2Hahn",{"type":21,"tag":22,"props":11330,"children":11331},{},[11332],{"type":31,"value":11333},"T2* is sensitive to slow, low-frequency noise (like drift in a control field) that a Hahn echo sequence cancels out by inserting a refocusing pulse partway through the delay. T2Hahn measures the longer coherence time that survives once that slow noise is cancelled:",{"type":21,"tag":129,"props":11335,"children":11337},{"className":131,"code":11336,"language":133,"meta":7,"style":7},"from qiskit_experiments.library import T2Hahn\n\ndelays = [round(float(d) * 1e-6, 6) for d in range(0, 51, 5)]\nexp = T2Hahn(physical_qubits=(0,), delays=delays, num_echoes=1)\n\nexp_data = exp.run(backend=backend, shots=2000).block_for_results()\nexp_data.analysis_results(dataframe=True)\n",[11338],{"type":21,"tag":104,"props":11339,"children":11340},{"__ignoreMap":7},[11341,11361,11368,11472,11538,11545,11588],{"type":21,"tag":139,"props":11342,"children":11343},{"class":141,"line":142},[11344,11348,11352,11356],{"type":21,"tag":139,"props":11345,"children":11346},{"style":146},[11347],{"type":31,"value":149},{"type":21,"tag":139,"props":11349,"children":11350},{"style":152},[11351],{"type":31,"value":10841},{"type":21,"tag":139,"props":11353,"children":11354},{"style":146},[11355],{"type":31,"value":160},{"type":21,"tag":139,"props":11357,"children":11358},{"style":152},[11359],{"type":31,"value":11360}," T2Hahn\n",{"type":21,"tag":139,"props":11362,"children":11363},{"class":141,"line":168},[11364],{"type":21,"tag":139,"props":11365,"children":11366},{"emptyLinePlaceholder":194},[11367],{"type":31,"value":197},{"type":21,"tag":139,"props":11369,"children":11370},{"class":141,"line":190},[11371,11375,11379,11383,11388,11392,11397,11402,11407,11412,11416,11421,11425,11429,11434,11438,11442,11446,11450,11454,11459,11463,11468],{"type":21,"tag":139,"props":11372,"children":11373},{"style":152},[11374],{"type":31,"value":10865},{"type":21,"tag":139,"props":11376,"children":11377},{"style":146},[11378],{"type":31,"value":211},{"type":21,"tag":139,"props":11380,"children":11381},{"style":152},[11382],{"type":31,"value":8038},{"type":21,"tag":139,"props":11384,"children":11385},{"style":214},[11386],{"type":31,"value":11387},"round",{"type":21,"tag":139,"props":11389,"children":11390},{"style":152},[11391],{"type":31,"value":953},{"type":21,"tag":139,"props":11393,"children":11394},{"style":214},[11395],{"type":31,"value":11396},"float",{"type":21,"tag":139,"props":11398,"children":11399},{"style":152},[11400],{"type":31,"value":11401},"(d) ",{"type":21,"tag":139,"props":11403,"children":11404},{"style":146},[11405],{"type":31,"value":11406},"*",{"type":21,"tag":139,"props":11408,"children":11409},{"style":214},[11410],{"type":31,"value":11411}," 1e-6",{"type":21,"tag":139,"props":11413,"children":11414},{"style":152},[11415],{"type":31,"value":259},{"type":21,"tag":139,"props":11417,"children":11418},{"style":214},[11419],{"type":31,"value":11420},"6",{"type":21,"tag":139,"props":11422,"children":11423},{"style":152},[11424],{"type":31,"value":1527},{"type":21,"tag":139,"props":11426,"children":11427},{"style":146},[11428],{"type":31,"value":1486},{"type":21,"tag":139,"props":11430,"children":11431},{"style":152},[11432],{"type":31,"value":11433}," d ",{"type":21,"tag":139,"props":11435,"children":11436},{"style":146},[11437],{"type":31,"value":1496},{"type":21,"tag":139,"props":11439,"children":11440},{"style":214},[11441],{"type":31,"value":7417},{"type":21,"tag":139,"props":11443,"children":11444},{"style":152},[11445],{"type":31,"value":953},{"type":21,"tag":139,"props":11447,"children":11448},{"style":214},[11449],{"type":31,"value":407},{"type":21,"tag":139,"props":11451,"children":11452},{"style":152},[11453],{"type":31,"value":259},{"type":21,"tag":139,"props":11455,"children":11456},{"style":214},[11457],{"type":31,"value":11458},"51",{"type":21,"tag":139,"props":11460,"children":11461},{"style":152},[11462],{"type":31,"value":259},{"type":21,"tag":139,"props":11464,"children":11465},{"style":214},[11466],{"type":31,"value":11467},"5",{"type":21,"tag":139,"props":11469,"children":11470},{"style":152},[11471],{"type":31,"value":1454},{"type":21,"tag":139,"props":11473,"children":11474},{"class":141,"line":200},[11475,11479,11483,11488,11492,11496,11500,11504,11508,11512,11516,11521,11526,11530,11534],{"type":21,"tag":139,"props":11476,"children":11477},{"style":152},[11478],{"type":31,"value":10913},{"type":21,"tag":139,"props":11480,"children":11481},{"style":146},[11482],{"type":31,"value":211},{"type":21,"tag":139,"props":11484,"children":11485},{"style":152},[11486],{"type":31,"value":11487}," T2Hahn(",{"type":21,"tag":139,"props":11489,"children":11490},{"style":923},[11491],{"type":31,"value":10927},{"type":21,"tag":139,"props":11493,"children":11494},{"style":146},[11495],{"type":31,"value":211},{"type":21,"tag":139,"props":11497,"children":11498},{"style":152},[11499],{"type":31,"value":953},{"type":21,"tag":139,"props":11501,"children":11502},{"style":214},[11503],{"type":31,"value":407},{"type":21,"tag":139,"props":11505,"children":11506},{"style":152},[11507],{"type":31,"value":10944},{"type":21,"tag":139,"props":11509,"children":11510},{"style":923},[11511],{"type":31,"value":10949},{"type":21,"tag":139,"props":11513,"children":11514},{"style":146},[11515],{"type":31,"value":211},{"type":21,"tag":139,"props":11517,"children":11518},{"style":152},[11519],{"type":31,"value":11520},"delays, ",{"type":21,"tag":139,"props":11522,"children":11523},{"style":923},[11524],{"type":31,"value":11525},"num_echoes",{"type":21,"tag":139,"props":11527,"children":11528},{"style":146},[11529],{"type":31,"value":211},{"type":21,"tag":139,"props":11531,"children":11532},{"style":214},[11533],{"type":31,"value":328},{"type":21,"tag":139,"props":11535,"children":11536},{"style":152},[11537],{"type":31,"value":270},{"type":21,"tag":139,"props":11539,"children":11540},{"class":141,"line":226},[11541],{"type":21,"tag":139,"props":11542,"children":11543},{"emptyLinePlaceholder":194},[11544],{"type":31,"value":197},{"type":21,"tag":139,"props":11546,"children":11547},{"class":141,"line":234},[11548,11552,11556,11560,11564,11568,11572,11576,11580,11584],{"type":21,"tag":139,"props":11549,"children":11550},{"style":152},[11551],{"type":31,"value":10973},{"type":21,"tag":139,"props":11553,"children":11554},{"style":146},[11555],{"type":31,"value":211},{"type":21,"tag":139,"props":11557,"children":11558},{"style":152},[11559],{"type":31,"value":10982},{"type":21,"tag":139,"props":11561,"children":11562},{"style":923},[11563],{"type":31,"value":10987},{"type":21,"tag":139,"props":11565,"children":11566},{"style":146},[11567],{"type":31,"value":211},{"type":21,"tag":139,"props":11569,"children":11570},{"style":152},[11571],{"type":31,"value":11253},{"type":21,"tag":139,"props":11573,"children":11574},{"style":923},[11575],{"type":31,"value":926},{"type":21,"tag":139,"props":11577,"children":11578},{"style":146},[11579],{"type":31,"value":211},{"type":21,"tag":139,"props":11581,"children":11582},{"style":214},[11583],{"type":31,"value":11266},{"type":21,"tag":139,"props":11585,"children":11586},{"style":152},[11587],{"type":31,"value":11271},{"type":21,"tag":139,"props":11589,"children":11590},{"class":141,"line":273},[11591,11595,11599,11603,11607],{"type":21,"tag":139,"props":11592,"children":11593},{"style":152},[11594],{"type":31,"value":11004},{"type":21,"tag":139,"props":11596,"children":11597},{"style":923},[11598],{"type":31,"value":11009},{"type":21,"tag":139,"props":11600,"children":11601},{"style":146},[11602],{"type":31,"value":211},{"type":21,"tag":139,"props":11604,"children":11605},{"style":214},[11606],{"type":31,"value":8664},{"type":21,"tag":139,"props":11608,"children":11609},{"style":152},[11610],{"type":31,"value":270},{"type":21,"tag":22,"props":11612,"children":11613},{},[11614,11619],{"type":21,"tag":104,"props":11615,"children":11617},{"className":11616},[],[11618],{"type":31,"value":11525},{"type":31,"value":11620}," controls how many refocusing pulses get inserted into the delay. More echoes cancel more noise but add more gate error from the extra pulses themselves, so the reported T2Hahn value is one point on a real trade-off, not a single ground-truth number.",{"type":21,"tag":41,"props":11622,"children":11624},{"id":11623},"why-t2-and-t2hahn-disagree",[11625],{"type":31,"value":11626},"Why T2* and T2Hahn disagree",{"type":21,"tag":22,"props":11628,"children":11629},{},[11630,11632,11638,11640,11645],{"type":31,"value":11631},"If you run both experiments on the same qubit, expect T2Hahn to report a longer coherence time than T2Ramsey's T2*. That gap isn't a measurement error. T2* is sensitive to noise sources an echo sequence cancels, so the two experiments are measuring genuinely different things: T2* is closer to what an uncorrected circuit experiences, while T2Hahn shows what's recoverable if your pulse sequence includes refocusing. A third experiment class, ",{"type":21,"tag":104,"props":11633,"children":11635},{"className":11634},[],[11636],{"type":31,"value":11637},"Tphi",{"type":31,"value":11639},", isolates pure dephasing from the T1-driven contribution using the T1 and T2 values together, following the relationship 1\u002FT2 = 1\u002F(2·T1) + 1\u002FTφ covered in our ",{"type":21,"tag":26,"props":11641,"children":11642},{"href":10658},[11643],{"type":31,"value":11644},"T1 vs T2 explainer",{"type":31,"value":6665},{"type":21,"tag":41,"props":11647,"children":11649},{"id":11648},"reading-results-without-guessing-at-column-names",[11650],{"type":31,"value":11651},"Reading results without guessing at column names",{"type":21,"tag":22,"props":11653,"children":11654},{},[11655],{"type":31,"value":11656},"Every experiment above returns its fit through the same interface:",{"type":21,"tag":129,"props":11658,"children":11660},{"className":131,"code":11659,"language":133,"meta":7,"style":7},"df = exp_data.analysis_results(dataframe=True)\nprint(df[[\"name\", \"value\", \"quality\"]])\n",[11661],{"type":21,"tag":104,"props":11662,"children":11663},{"__ignoreMap":7},[11664,11697],{"type":21,"tag":139,"props":11665,"children":11666},{"class":141,"line":142},[11667,11672,11676,11681,11685,11689,11693],{"type":21,"tag":139,"props":11668,"children":11669},{"style":152},[11670],{"type":31,"value":11671},"df ",{"type":21,"tag":139,"props":11673,"children":11674},{"style":146},[11675],{"type":31,"value":211},{"type":21,"tag":139,"props":11677,"children":11678},{"style":152},[11679],{"type":31,"value":11680}," exp_data.analysis_results(",{"type":21,"tag":139,"props":11682,"children":11683},{"style":923},[11684],{"type":31,"value":11009},{"type":21,"tag":139,"props":11686,"children":11687},{"style":146},[11688],{"type":31,"value":211},{"type":21,"tag":139,"props":11690,"children":11691},{"style":214},[11692],{"type":31,"value":8664},{"type":21,"tag":139,"props":11694,"children":11695},{"style":152},[11696],{"type":31,"value":270},{"type":21,"tag":139,"props":11698,"children":11699},{"class":141,"line":168},[11700,11704,11709,11714,11718,11723,11727,11732],{"type":21,"tag":139,"props":11701,"children":11702},{"style":214},[11703],{"type":31,"value":948},{"type":21,"tag":139,"props":11705,"children":11706},{"style":152},[11707],{"type":31,"value":11708},"(df[[",{"type":21,"tag":139,"props":11710,"children":11711},{"style":262},[11712],{"type":31,"value":11713},"\"name\"",{"type":21,"tag":139,"props":11715,"children":11716},{"style":152},[11717],{"type":31,"value":259},{"type":21,"tag":139,"props":11719,"children":11720},{"style":262},[11721],{"type":31,"value":11722},"\"value\"",{"type":21,"tag":139,"props":11724,"children":11725},{"style":152},[11726],{"type":31,"value":259},{"type":21,"tag":139,"props":11728,"children":11729},{"style":262},[11730],{"type":31,"value":11731},"\"quality\"",{"type":21,"tag":139,"props":11733,"children":11734},{"style":152},[11735],{"type":31,"value":11736},"]])\n",{"type":21,"tag":22,"props":11738,"children":11739},{},[11740,11741,11747,11749,11755],{"type":31,"value":11026},{"type":21,"tag":104,"props":11742,"children":11744},{"className":11743},[],[11745],{"type":31,"value":11746},"quality",{"type":31,"value":11748}," column flags whether the fit converged cleanly (",{"type":21,"tag":104,"props":11750,"children":11752},{"className":11751},[],[11753],{"type":31,"value":11754},"good",{"type":31,"value":11756},") or not, worth checking before trusting a number, especially on real hardware where a poorly chosen delay range produces a curve with too few points in the decay region to fit reliably.",{"type":21,"tag":41,"props":11758,"children":11759},{"id":5900},[11760],{"type":31,"value":5903},{"type":21,"tag":1112,"props":11762,"children":11763},{},[11764,11776,11787],{"type":21,"tag":72,"props":11765,"children":11766},{},[11767,11769,11774],{"type":31,"value":11768},"Run ",{"type":21,"tag":104,"props":11770,"children":11772},{"className":11771},[],[11773],{"type":31,"value":11039},{"type":31,"value":11775}," at increasing delay ranges and watch the fit quality degrade once your delays extend well past several multiples of the true T1, where almost every shot has already decayed and there's no curve left to fit.",{"type":21,"tag":72,"props":11777,"children":11778},{},[11779,11781,11786],{"type":31,"value":11780},"Compare T2Ramsey and T2Hahn results on the identical fake-backend qubit and check whether the gap matches what the device's calibration data reports for ",{"type":21,"tag":104,"props":11782,"children":11784},{"className":11783},[],[11785],{"type":31,"value":11637},{"type":31,"value":6665},{"type":21,"tag":72,"props":11788,"children":11789},{},[11790,11792,11799,11801,11807],{"type":31,"value":11791},"Read the ",{"type":21,"tag":26,"props":11793,"children":11796},{"href":11794,"rel":11795},"https:\u002F\u002Fqiskit-community.github.io\u002Fqiskit-experiments\u002Fmanuals\u002Findex.html",[7123],[11797],{"type":31,"value":11798},"Qiskit Experiments manuals",{"type":31,"value":11800}," for the full characterization library: fine-amplitude and fine-frequency experiments, readout error mitigation, and randomized benchmarking, which our ",{"type":21,"tag":26,"props":11802,"children":11804},{"href":11803},"\u002Fblog\u002Frandomized-benchmarking-qiskit-experiments",[11805],{"type":31,"value":11806},"companion post",{"type":31,"value":11808}," covers.",{"type":21,"tag":1168,"props":11810,"children":11811},{},[11812],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":11814},[11815,11816,11817,11818,11819,11820,11821],{"id":10698,"depth":168,"text":10701},{"id":10795,"depth":168,"text":10798},{"id":11052,"depth":168,"text":11055},{"id":11325,"depth":168,"text":11328},{"id":11623,"depth":168,"text":11626},{"id":11648,"depth":168,"text":11651},{"id":5900,"depth":168,"text":5903},"content:blog:measuring-t1-t2-qiskit-experiments.md","blog\u002Fmeasuring-t1-t2-qiskit-experiments.md","blog\u002Fmeasuring-t1-t2-qiskit-experiments",{"_path":11826,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":11827,"description":11828,"date":4471,"author":11,"tags":11829,"readingTime":309,"body":11830,"_type":1187,"_id":12733,"_source":1189,"_file":12734,"_stem":12735,"_extension":1192},"\u002Fblog\u002Fmolecule-ground-state-qiskit-nature","Building Your First Molecule Ground-State Solver with Qiskit Nature","A practical walkthrough of Qiskit Nature 0.8: driving a molecule's electronic structure with PySCF, mapping it to qubits, and solving for the ground-state energy, first classically, then swapping in VQE.",[3484,14,3613],{"type":18,"children":11831,"toc":12725},[11832,11852,11880,11886,11891,12103,12116,12122,12133,12185,12213,12219,12224,12332,12337,12343,12354,12640,12659,12665,12670,12674,12721],{"type":21,"tag":22,"props":11833,"children":11834},{},[11835,11836,11841,11843,11850],{"type":31,"value":4481},{"type":21,"tag":26,"props":11837,"children":11838},{"href":3610},[11839],{"type":31,"value":11840},"PennyLane VQE guide",{"type":31,"value":11842}," builds a variational chemistry solver from PennyLane's side. This post covers the identical problem, finding a molecule's ground-state energy, from the Qiskit ecosystem, using ",{"type":21,"tag":26,"props":11844,"children":11847},{"href":11845,"rel":11846},"https:\u002F\u002Fqiskit-community.github.io\u002Fqiskit-nature\u002F",[7123],[11848],{"type":31,"value":11849},"Qiskit Nature",{"type":31,"value":11851}," (version 0.8), which handles the chemistry-specific plumbing: driving a classical chemistry package, building the molecular Hamiltonian, and mapping it to qubits.",{"type":21,"tag":129,"props":11853,"children":11855},{"className":4499,"code":11854,"language":4498,"meta":7,"style":7},"pip install qiskit-nature pyscf\n",[11856],{"type":21,"tag":104,"props":11857,"children":11858},{"__ignoreMap":7},[11859],{"type":21,"tag":139,"props":11860,"children":11861},{"class":141,"line":142},[11862,11866,11870,11875],{"type":21,"tag":139,"props":11863,"children":11864},{"style":4509},[11865],{"type":31,"value":4512},{"type":21,"tag":139,"props":11867,"children":11868},{"style":262},[11869],{"type":31,"value":4517},{"type":21,"tag":139,"props":11871,"children":11872},{"style":262},[11873],{"type":31,"value":11874}," qiskit-nature",{"type":21,"tag":139,"props":11876,"children":11877},{"style":262},[11878],{"type":31,"value":11879}," pyscf\n",{"type":21,"tag":41,"props":11881,"children":11883},{"id":11882},"driving-the-classical-chemistry",[11884],{"type":31,"value":11885},"Driving the classical chemistry",{"type":21,"tag":22,"props":11887,"children":11888},{},[11889],{"type":31,"value":11890},"Qiskit Nature doesn't compute molecular orbitals itself. It drives an external classical chemistry package, PySCF here, to do that groundwork, then wraps the outcome in a form the rest of the pipeline understands:",{"type":21,"tag":129,"props":11892,"children":11894},{"className":131,"code":11893,"language":133,"meta":7,"style":7},"from qiskit_nature.units import DistanceUnit\nfrom qiskit_nature.second_q.drivers import PySCFDriver\n\ndriver = PySCFDriver(\n    atom=\"H 0 0 0; H 0 0 0.735\",\n    basis=\"sto3g\",\n    charge=0,\n    spin=0,\n    unit=DistanceUnit.ANGSTROM,\n)\n\nproblem = driver.run()\n",[11895],{"type":21,"tag":104,"props":11896,"children":11897},{"__ignoreMap":7},[11898,11919,11940,11947,11964,11985,12006,12026,12046,12072,12079,12086],{"type":21,"tag":139,"props":11899,"children":11900},{"class":141,"line":142},[11901,11905,11910,11914],{"type":21,"tag":139,"props":11902,"children":11903},{"style":146},[11904],{"type":31,"value":149},{"type":21,"tag":139,"props":11906,"children":11907},{"style":152},[11908],{"type":31,"value":11909}," qiskit_nature.units ",{"type":21,"tag":139,"props":11911,"children":11912},{"style":146},[11913],{"type":31,"value":160},{"type":21,"tag":139,"props":11915,"children":11916},{"style":152},[11917],{"type":31,"value":11918}," DistanceUnit\n",{"type":21,"tag":139,"props":11920,"children":11921},{"class":141,"line":168},[11922,11926,11931,11935],{"type":21,"tag":139,"props":11923,"children":11924},{"style":146},[11925],{"type":31,"value":149},{"type":21,"tag":139,"props":11927,"children":11928},{"style":152},[11929],{"type":31,"value":11930}," qiskit_nature.second_q.drivers ",{"type":21,"tag":139,"props":11932,"children":11933},{"style":146},[11934],{"type":31,"value":160},{"type":21,"tag":139,"props":11936,"children":11937},{"style":152},[11938],{"type":31,"value":11939}," PySCFDriver\n",{"type":21,"tag":139,"props":11941,"children":11942},{"class":141,"line":190},[11943],{"type":21,"tag":139,"props":11944,"children":11945},{"emptyLinePlaceholder":194},[11946],{"type":31,"value":197},{"type":21,"tag":139,"props":11948,"children":11949},{"class":141,"line":200},[11950,11955,11959],{"type":21,"tag":139,"props":11951,"children":11952},{"style":152},[11953],{"type":31,"value":11954},"driver ",{"type":21,"tag":139,"props":11956,"children":11957},{"style":146},[11958],{"type":31,"value":211},{"type":21,"tag":139,"props":11960,"children":11961},{"style":152},[11962],{"type":31,"value":11963}," PySCFDriver(\n",{"type":21,"tag":139,"props":11965,"children":11966},{"class":141,"line":226},[11967,11972,11976,11981],{"type":21,"tag":139,"props":11968,"children":11969},{"style":923},[11970],{"type":31,"value":11971},"    atom",{"type":21,"tag":139,"props":11973,"children":11974},{"style":146},[11975],{"type":31,"value":211},{"type":21,"tag":139,"props":11977,"children":11978},{"style":262},[11979],{"type":31,"value":11980},"\"H 0 0 0; H 0 0 0.735\"",{"type":21,"tag":139,"props":11982,"children":11983},{"style":152},[11984],{"type":31,"value":4811},{"type":21,"tag":139,"props":11986,"children":11987},{"class":141,"line":234},[11988,11993,11997,12002],{"type":21,"tag":139,"props":11989,"children":11990},{"style":923},[11991],{"type":31,"value":11992},"    basis",{"type":21,"tag":139,"props":11994,"children":11995},{"style":146},[11996],{"type":31,"value":211},{"type":21,"tag":139,"props":11998,"children":11999},{"style":262},[12000],{"type":31,"value":12001},"\"sto3g\"",{"type":21,"tag":139,"props":12003,"children":12004},{"style":152},[12005],{"type":31,"value":4811},{"type":21,"tag":139,"props":12007,"children":12008},{"class":141,"line":273},[12009,12014,12018,12022],{"type":21,"tag":139,"props":12010,"children":12011},{"style":923},[12012],{"type":31,"value":12013},"    charge",{"type":21,"tag":139,"props":12015,"children":12016},{"style":146},[12017],{"type":31,"value":211},{"type":21,"tag":139,"props":12019,"children":12020},{"style":214},[12021],{"type":31,"value":407},{"type":21,"tag":139,"props":12023,"children":12024},{"style":152},[12025],{"type":31,"value":4811},{"type":21,"tag":139,"props":12027,"children":12028},{"class":141,"line":309},[12029,12034,12038,12042],{"type":21,"tag":139,"props":12030,"children":12031},{"style":923},[12032],{"type":31,"value":12033},"    spin",{"type":21,"tag":139,"props":12035,"children":12036},{"style":146},[12037],{"type":31,"value":211},{"type":21,"tag":139,"props":12039,"children":12040},{"style":214},[12041],{"type":31,"value":407},{"type":21,"tag":139,"props":12043,"children":12044},{"style":152},[12045],{"type":31,"value":4811},{"type":21,"tag":139,"props":12047,"children":12048},{"class":141,"line":16},[12049,12054,12058,12063,12068],{"type":21,"tag":139,"props":12050,"children":12051},{"style":923},[12052],{"type":31,"value":12053},"    unit",{"type":21,"tag":139,"props":12055,"children":12056},{"style":146},[12057],{"type":31,"value":211},{"type":21,"tag":139,"props":12059,"children":12060},{"style":152},[12061],{"type":31,"value":12062},"DistanceUnit.",{"type":21,"tag":139,"props":12064,"children":12065},{"style":214},[12066],{"type":31,"value":12067},"ANGSTROM",{"type":21,"tag":139,"props":12069,"children":12070},{"style":152},[12071],{"type":31,"value":4811},{"type":21,"tag":139,"props":12073,"children":12074},{"class":141,"line":361},[12075],{"type":21,"tag":139,"props":12076,"children":12077},{"style":152},[12078],{"type":31,"value":270},{"type":21,"tag":139,"props":12080,"children":12081},{"class":141,"line":369},[12082],{"type":21,"tag":139,"props":12083,"children":12084},{"emptyLinePlaceholder":194},[12085],{"type":31,"value":197},{"type":21,"tag":139,"props":12087,"children":12088},{"class":141,"line":378},[12089,12094,12098],{"type":21,"tag":139,"props":12090,"children":12091},{"style":152},[12092],{"type":31,"value":12093},"problem ",{"type":21,"tag":139,"props":12095,"children":12096},{"style":146},[12097],{"type":31,"value":211},{"type":21,"tag":139,"props":12099,"children":12100},{"style":152},[12101],{"type":31,"value":12102}," driver.run()\n",{"type":21,"tag":22,"props":12104,"children":12105},{},[12106,12108,12114],{"type":31,"value":12107},"This example builds H₂ at its equilibrium bond length (0.735 Å), the standard first molecule for testing a chemistry pipeline, small enough to solve exactly and check your setup against a known answer. ",{"type":21,"tag":104,"props":12109,"children":12111},{"className":12110},[],[12112],{"type":31,"value":12113},"basis=\"sto3g\"",{"type":31,"value":12115}," sets a minimal basis set, the smallest reasonable choice for orbital representation, which keeps qubit count low at the cost of chemical accuracy, a trade-off worth understanding before scaling to a real molecule of interest.",{"type":21,"tag":41,"props":12117,"children":12119},{"id":12118},"mapping-fermions-to-qubits",[12120],{"type":31,"value":12121},"Mapping fermions to qubits",{"type":21,"tag":22,"props":12123,"children":12124},{},[12125,12131],{"type":21,"tag":104,"props":12126,"children":12128},{"className":12127},[],[12129],{"type":31,"value":12130},"problem",{"type":31,"value":12132}," describes the molecule in terms of fermionic operators, the natural language of electronic structure, which then needs mapping onto qubits:",{"type":21,"tag":129,"props":12134,"children":12136},{"className":131,"code":12135,"language":133,"meta":7,"style":7},"from qiskit_nature.second_q.mappers import JordanWignerMapper\n\nmapper = JordanWignerMapper()\n",[12137],{"type":21,"tag":104,"props":12138,"children":12139},{"__ignoreMap":7},[12140,12161,12168],{"type":21,"tag":139,"props":12141,"children":12142},{"class":141,"line":142},[12143,12147,12152,12156],{"type":21,"tag":139,"props":12144,"children":12145},{"style":146},[12146],{"type":31,"value":149},{"type":21,"tag":139,"props":12148,"children":12149},{"style":152},[12150],{"type":31,"value":12151}," qiskit_nature.second_q.mappers ",{"type":21,"tag":139,"props":12153,"children":12154},{"style":146},[12155],{"type":31,"value":160},{"type":21,"tag":139,"props":12157,"children":12158},{"style":152},[12159],{"type":31,"value":12160}," JordanWignerMapper\n",{"type":21,"tag":139,"props":12162,"children":12163},{"class":141,"line":168},[12164],{"type":21,"tag":139,"props":12165,"children":12166},{"emptyLinePlaceholder":194},[12167],{"type":31,"value":197},{"type":21,"tag":139,"props":12169,"children":12170},{"class":141,"line":190},[12171,12176,12180],{"type":21,"tag":139,"props":12172,"children":12173},{"style":152},[12174],{"type":31,"value":12175},"mapper ",{"type":21,"tag":139,"props":12177,"children":12178},{"style":146},[12179],{"type":31,"value":211},{"type":21,"tag":139,"props":12181,"children":12182},{"style":152},[12183],{"type":31,"value":12184}," JordanWignerMapper()\n",{"type":21,"tag":22,"props":12186,"children":12187},{},[12188,12190,12196,12198,12204,12205,12211],{"type":31,"value":12189},"Jordan-Wigner is the most direct mapping: one spin-orbital maps to one qubit, which makes it the easiest to reason about but not the most qubit-efficient. Our ",{"type":21,"tag":26,"props":12191,"children":12193},{"href":12192},"\u002Fblog\u002Fqubit-mappers-jordan-wigner-parity-explained",[12194],{"type":31,"value":12195},"companion article on qubit mappers",{"type":31,"value":12197}," covers the alternatives (",{"type":21,"tag":104,"props":12199,"children":12201},{"className":12200},[],[12202],{"type":31,"value":12203},"ParityMapper",{"type":31,"value":259},{"type":21,"tag":104,"props":12206,"children":12208},{"className":12207},[],[12209],{"type":31,"value":12210},"BravyiKitaevMapper",{"type":31,"value":12212},") and the qubit-count trade-offs each one makes.",{"type":21,"tag":41,"props":12214,"children":12216},{"id":12215},"solving-classically-first",[12217],{"type":31,"value":12218},"Solving classically first",{"type":21,"tag":22,"props":12220,"children":12221},{},[12222],{"type":31,"value":12223},"Before running anything on a quantum circuit, solve the problem with a classical eigensolver. This gives you a known-correct answer to examine any quantum approach against, and for a molecule this small, it's also faster:",{"type":21,"tag":129,"props":12225,"children":12227},{"className":131,"code":12226,"language":133,"meta":7,"style":7},"from qiskit_algorithms import NumPyMinimumEigensolver\nfrom qiskit_nature.second_q.algorithms import GroundStateEigensolver\n\nsolver = GroundStateEigensolver(mapper, NumPyMinimumEigensolver())\nresult = solver.solve(problem)\n\nprint(result.total_energies)\n",[12228],{"type":21,"tag":104,"props":12229,"children":12230},{"__ignoreMap":7},[12231,12252,12273,12280,12297,12313,12320],{"type":21,"tag":139,"props":12232,"children":12233},{"class":141,"line":142},[12234,12238,12243,12247],{"type":21,"tag":139,"props":12235,"children":12236},{"style":146},[12237],{"type":31,"value":149},{"type":21,"tag":139,"props":12239,"children":12240},{"style":152},[12241],{"type":31,"value":12242}," qiskit_algorithms ",{"type":21,"tag":139,"props":12244,"children":12245},{"style":146},[12246],{"type":31,"value":160},{"type":21,"tag":139,"props":12248,"children":12249},{"style":152},[12250],{"type":31,"value":12251}," NumPyMinimumEigensolver\n",{"type":21,"tag":139,"props":12253,"children":12254},{"class":141,"line":168},[12255,12259,12264,12268],{"type":21,"tag":139,"props":12256,"children":12257},{"style":146},[12258],{"type":31,"value":149},{"type":21,"tag":139,"props":12260,"children":12261},{"style":152},[12262],{"type":31,"value":12263}," qiskit_nature.second_q.algorithms ",{"type":21,"tag":139,"props":12265,"children":12266},{"style":146},[12267],{"type":31,"value":160},{"type":21,"tag":139,"props":12269,"children":12270},{"style":152},[12271],{"type":31,"value":12272}," GroundStateEigensolver\n",{"type":21,"tag":139,"props":12274,"children":12275},{"class":141,"line":190},[12276],{"type":21,"tag":139,"props":12277,"children":12278},{"emptyLinePlaceholder":194},[12279],{"type":31,"value":197},{"type":21,"tag":139,"props":12281,"children":12282},{"class":141,"line":200},[12283,12288,12292],{"type":21,"tag":139,"props":12284,"children":12285},{"style":152},[12286],{"type":31,"value":12287},"solver ",{"type":21,"tag":139,"props":12289,"children":12290},{"style":146},[12291],{"type":31,"value":211},{"type":21,"tag":139,"props":12293,"children":12294},{"style":152},[12295],{"type":31,"value":12296}," GroundStateEigensolver(mapper, NumPyMinimumEigensolver())\n",{"type":21,"tag":139,"props":12298,"children":12299},{"class":141,"line":226},[12300,12304,12308],{"type":21,"tag":139,"props":12301,"children":12302},{"style":152},[12303],{"type":31,"value":4868},{"type":21,"tag":139,"props":12305,"children":12306},{"style":146},[12307],{"type":31,"value":211},{"type":21,"tag":139,"props":12309,"children":12310},{"style":152},[12311],{"type":31,"value":12312}," solver.solve(problem)\n",{"type":21,"tag":139,"props":12314,"children":12315},{"class":141,"line":234},[12316],{"type":21,"tag":139,"props":12317,"children":12318},{"emptyLinePlaceholder":194},[12319],{"type":31,"value":197},{"type":21,"tag":139,"props":12321,"children":12322},{"class":141,"line":273},[12323,12327],{"type":21,"tag":139,"props":12324,"children":12325},{"style":214},[12326],{"type":31,"value":948},{"type":21,"tag":139,"props":12328,"children":12329},{"style":152},[12330],{"type":31,"value":12331},"(result.total_energies)\n",{"type":21,"tag":22,"props":12333,"children":12334},{},[12335],{"type":31,"value":12336},"For H₂ at equilibrium bond length, this returns a ground-state energy close to -1.137 Hartree, the reference value against which any quantum solution should be checked. If your VQE result later doesn't land near this number, the bug is worth chasing before assuming it's a hardware noise issue.",{"type":21,"tag":41,"props":12338,"children":12340},{"id":12339},"swapping-in-vqe",[12341],{"type":31,"value":12342},"Swapping in VQE",{"type":21,"tag":22,"props":12344,"children":12345},{},[12346,12352],{"type":21,"tag":104,"props":12347,"children":12349},{"className":12348},[],[12350],{"type":31,"value":12351},"GroundStateEigensolver",{"type":31,"value":12353}," takes any compatible minimum eigensolver, which is what makes moving from classical to quantum mostly a one-line shift rather than a rewrite:",{"type":21,"tag":129,"props":12355,"children":12357},{"className":131,"code":12356,"language":133,"meta":7,"style":7},"from qiskit_algorithms import VQE\nfrom qiskit_algorithms.optimizers import COBYLA\nfrom qiskit.primitives import Estimator\nfrom qiskit_nature.second_q.circuit.library import UCCSD, HartreeFock\n\nansatz = UCCSD(\n    problem.num_spatial_orbitals,\n    problem.num_particles,\n    mapper,\n    initial_state=HartreeFock(problem.num_spatial_orbitals, problem.num_particles, mapper),\n)\n\nvqe_solver = VQE(Estimator(), ansatz, COBYLA())\nvqe_solver.initial_point = [0.0] * ansatz.num_parameters\n\nsolver = GroundStateEigensolver(mapper, vqe_solver)\nresult = solver.solve(problem)\n\nprint(result.total_energies)\n",[12358],{"type":21,"tag":104,"props":12359,"children":12360},{"__ignoreMap":7},[12361,12381,12402,12423,12449,12456,12473,12481,12489,12497,12514,12521,12528,12545,12580,12587,12604,12620,12628],{"type":21,"tag":139,"props":12362,"children":12363},{"class":141,"line":142},[12364,12368,12372,12376],{"type":21,"tag":139,"props":12365,"children":12366},{"style":146},[12367],{"type":31,"value":149},{"type":21,"tag":139,"props":12369,"children":12370},{"style":152},[12371],{"type":31,"value":12242},{"type":21,"tag":139,"props":12373,"children":12374},{"style":146},[12375],{"type":31,"value":160},{"type":21,"tag":139,"props":12377,"children":12378},{"style":214},[12379],{"type":31,"value":12380}," VQE\n",{"type":21,"tag":139,"props":12382,"children":12383},{"class":141,"line":168},[12384,12388,12393,12397],{"type":21,"tag":139,"props":12385,"children":12386},{"style":146},[12387],{"type":31,"value":149},{"type":21,"tag":139,"props":12389,"children":12390},{"style":152},[12391],{"type":31,"value":12392}," qiskit_algorithms.optimizers ",{"type":21,"tag":139,"props":12394,"children":12395},{"style":146},[12396],{"type":31,"value":160},{"type":21,"tag":139,"props":12398,"children":12399},{"style":214},[12400],{"type":31,"value":12401}," COBYLA\n",{"type":21,"tag":139,"props":12403,"children":12404},{"class":141,"line":190},[12405,12409,12414,12418],{"type":21,"tag":139,"props":12406,"children":12407},{"style":146},[12408],{"type":31,"value":149},{"type":21,"tag":139,"props":12410,"children":12411},{"style":152},[12412],{"type":31,"value":12413}," qiskit.primitives ",{"type":21,"tag":139,"props":12415,"children":12416},{"style":146},[12417],{"type":31,"value":160},{"type":21,"tag":139,"props":12419,"children":12420},{"style":152},[12421],{"type":31,"value":12422}," Estimator\n",{"type":21,"tag":139,"props":12424,"children":12425},{"class":141,"line":200},[12426,12430,12435,12439,12444],{"type":21,"tag":139,"props":12427,"children":12428},{"style":146},[12429],{"type":31,"value":149},{"type":21,"tag":139,"props":12431,"children":12432},{"style":152},[12433],{"type":31,"value":12434}," qiskit_nature.second_q.circuit.library ",{"type":21,"tag":139,"props":12436,"children":12437},{"style":146},[12438],{"type":31,"value":160},{"type":21,"tag":139,"props":12440,"children":12441},{"style":214},[12442],{"type":31,"value":12443}," UCCSD",{"type":21,"tag":139,"props":12445,"children":12446},{"style":152},[12447],{"type":31,"value":12448},", HartreeFock\n",{"type":21,"tag":139,"props":12450,"children":12451},{"class":141,"line":226},[12452],{"type":21,"tag":139,"props":12453,"children":12454},{"emptyLinePlaceholder":194},[12455],{"type":31,"value":197},{"type":21,"tag":139,"props":12457,"children":12458},{"class":141,"line":234},[12459,12464,12468],{"type":21,"tag":139,"props":12460,"children":12461},{"style":152},[12462],{"type":31,"value":12463},"ansatz ",{"type":21,"tag":139,"props":12465,"children":12466},{"style":146},[12467],{"type":31,"value":211},{"type":21,"tag":139,"props":12469,"children":12470},{"style":152},[12471],{"type":31,"value":12472}," UCCSD(\n",{"type":21,"tag":139,"props":12474,"children":12475},{"class":141,"line":273},[12476],{"type":21,"tag":139,"props":12477,"children":12478},{"style":152},[12479],{"type":31,"value":12480},"    problem.num_spatial_orbitals,\n",{"type":21,"tag":139,"props":12482,"children":12483},{"class":141,"line":309},[12484],{"type":21,"tag":139,"props":12485,"children":12486},{"style":152},[12487],{"type":31,"value":12488},"    problem.num_particles,\n",{"type":21,"tag":139,"props":12490,"children":12491},{"class":141,"line":16},[12492],{"type":21,"tag":139,"props":12493,"children":12494},{"style":152},[12495],{"type":31,"value":12496},"    mapper,\n",{"type":21,"tag":139,"props":12498,"children":12499},{"class":141,"line":361},[12500,12505,12509],{"type":21,"tag":139,"props":12501,"children":12502},{"style":923},[12503],{"type":31,"value":12504},"    initial_state",{"type":21,"tag":139,"props":12506,"children":12507},{"style":146},[12508],{"type":31,"value":211},{"type":21,"tag":139,"props":12510,"children":12511},{"style":152},[12512],{"type":31,"value":12513},"HartreeFock(problem.num_spatial_orbitals, problem.num_particles, mapper),\n",{"type":21,"tag":139,"props":12515,"children":12516},{"class":141,"line":369},[12517],{"type":21,"tag":139,"props":12518,"children":12519},{"style":152},[12520],{"type":31,"value":270},{"type":21,"tag":139,"props":12522,"children":12523},{"class":141,"line":378},[12524],{"type":21,"tag":139,"props":12525,"children":12526},{"emptyLinePlaceholder":194},[12527],{"type":31,"value":197},{"type":21,"tag":139,"props":12529,"children":12530},{"class":141,"line":387},[12531,12536,12540],{"type":21,"tag":139,"props":12532,"children":12533},{"style":152},[12534],{"type":31,"value":12535},"vqe_solver ",{"type":21,"tag":139,"props":12537,"children":12538},{"style":146},[12539],{"type":31,"value":211},{"type":21,"tag":139,"props":12541,"children":12542},{"style":152},[12543],{"type":31,"value":12544}," VQE(Estimator(), ansatz, COBYLA())\n",{"type":21,"tag":139,"props":12546,"children":12547},{"class":141,"line":396},[12548,12553,12557,12561,12566,12571,12575],{"type":21,"tag":139,"props":12549,"children":12550},{"style":152},[12551],{"type":31,"value":12552},"vqe_solver.initial_point ",{"type":21,"tag":139,"props":12554,"children":12555},{"style":146},[12556],{"type":31,"value":211},{"type":21,"tag":139,"props":12558,"children":12559},{"style":152},[12560],{"type":31,"value":8038},{"type":21,"tag":139,"props":12562,"children":12563},{"style":214},[12564],{"type":31,"value":12565},"0.0",{"type":21,"tag":139,"props":12567,"children":12568},{"style":152},[12569],{"type":31,"value":12570},"] ",{"type":21,"tag":139,"props":12572,"children":12573},{"style":146},[12574],{"type":31,"value":11406},{"type":21,"tag":139,"props":12576,"children":12577},{"style":152},[12578],{"type":31,"value":12579}," ansatz.num_parameters\n",{"type":21,"tag":139,"props":12581,"children":12582},{"class":141,"line":414},[12583],{"type":21,"tag":139,"props":12584,"children":12585},{"emptyLinePlaceholder":194},[12586],{"type":31,"value":197},{"type":21,"tag":139,"props":12588,"children":12590},{"class":141,"line":12589},16,[12591,12595,12599],{"type":21,"tag":139,"props":12592,"children":12593},{"style":152},[12594],{"type":31,"value":12287},{"type":21,"tag":139,"props":12596,"children":12597},{"style":146},[12598],{"type":31,"value":211},{"type":21,"tag":139,"props":12600,"children":12601},{"style":152},[12602],{"type":31,"value":12603}," GroundStateEigensolver(mapper, vqe_solver)\n",{"type":21,"tag":139,"props":12605,"children":12607},{"class":141,"line":12606},17,[12608,12612,12616],{"type":21,"tag":139,"props":12609,"children":12610},{"style":152},[12611],{"type":31,"value":4868},{"type":21,"tag":139,"props":12613,"children":12614},{"style":146},[12615],{"type":31,"value":211},{"type":21,"tag":139,"props":12617,"children":12618},{"style":152},[12619],{"type":31,"value":12312},{"type":21,"tag":139,"props":12621,"children":12623},{"class":141,"line":12622},18,[12624],{"type":21,"tag":139,"props":12625,"children":12626},{"emptyLinePlaceholder":194},[12627],{"type":31,"value":197},{"type":21,"tag":139,"props":12629,"children":12631},{"class":141,"line":12630},19,[12632,12636],{"type":21,"tag":139,"props":12633,"children":12634},{"style":214},[12635],{"type":31,"value":948},{"type":21,"tag":139,"props":12637,"children":12638},{"style":152},[12639],{"type":31,"value":12331},{"type":21,"tag":22,"props":12641,"children":12642},{},[12643,12649,12651,12657],{"type":21,"tag":104,"props":12644,"children":12646},{"className":12645},[],[12647],{"type":31,"value":12648},"UCCSD",{"type":31,"value":12650}," (Unitary Coupled Cluster Singles and Doubles) is the standard chemistry-motivated ansatz, built to respect the physical structure of electron excitations rather than being a generic parameterized circuit. ",{"type":21,"tag":104,"props":12652,"children":12654},{"className":12653},[],[12655],{"type":31,"value":12656},"HartreeFock",{"type":31,"value":12658}," initializes the circuit in the classical mean-field reference state, a far better starting point than an arbitrary superposition, since the true ground state is usually a comparatively small correction away from it.",{"type":21,"tag":41,"props":12660,"children":12662},{"id":12661},"why-the-two-results-should-nearly-match",[12663],{"type":31,"value":12664},"Why the two results should (nearly) match",{"type":21,"tag":22,"props":12666,"children":12667},{},[12668],{"type":31,"value":12669},"For a small, well-behaved molecule like H₂ in a minimal basis, VQE with UCCSD should converge close to the exact classical answer, since UCCSD is expressive enough to represent the exact ground state for a system this modest. That agreement is the actual point of running the comparison: it validates that the mapping, ansatz, and optimizer are all working correctly before you scale to a molecule too large to check against a classical solver at all, which is the actual regime where a quantum approach would need to earn its keep.",{"type":21,"tag":41,"props":12671,"children":12672},{"id":5900},[12673],{"type":31,"value":5903},{"type":21,"tag":1112,"props":12675,"children":12676},{},[12677,12682,12709],{"type":21,"tag":72,"props":12678,"children":12679},{},[12680],{"type":31,"value":12681},"Sweep the H-H bond length and plot the ground-state energy curve, the classic dissociation-curve exercise that confirms your solver reproduces real molecular behavior rather than a single lucky data point.",{"type":21,"tag":72,"props":12683,"children":12684},{},[12685,12687,12693,12695,12701,12703,12708],{"type":31,"value":12686},"Swap ",{"type":21,"tag":104,"props":12688,"children":12690},{"className":12689},[],[12691],{"type":31,"value":12692},"JordanWignerMapper",{"type":31,"value":12694}," for ",{"type":21,"tag":104,"props":12696,"children":12698},{"className":12697},[],[12699],{"type":31,"value":12700},"ParityMapper(num_particles=problem.num_particles)",{"type":31,"value":12702}," and compare qubit count, covered in our ",{"type":21,"tag":26,"props":12704,"children":12705},{"href":12192},[12706],{"type":31,"value":12707},"qubit mappers post",{"type":31,"value":6665},{"type":21,"tag":72,"props":12710,"children":12711},{},[12712,12714,12719],{"type":31,"value":12713},"Read ",{"type":21,"tag":26,"props":12715,"children":12716},{"href":3505},[12717],{"type":31,"value":12718},"what quantum computers do with molecules in 2026",{"type":31,"value":12720}," for where this kind of pipeline stands on real, larger molecules rather than toy H₂.",{"type":21,"tag":1168,"props":12722,"children":12723},{},[12724],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":12726},[12727,12728,12729,12730,12731,12732],{"id":11882,"depth":168,"text":11885},{"id":12118,"depth":168,"text":12121},{"id":12215,"depth":168,"text":12218},{"id":12339,"depth":168,"text":12342},{"id":12661,"depth":168,"text":12664},{"id":5900,"depth":168,"text":5903},"content:blog:molecule-ground-state-qiskit-nature.md","blog\u002Fmolecule-ground-state-qiskit-nature.md","blog\u002Fmolecule-ground-state-qiskit-nature",{"_path":12737,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":12738,"description":12739,"date":4471,"author":11,"tags":12740,"readingTime":309,"body":12742,"_type":1187,"_id":13455,"_source":1189,"_file":13456,"_stem":13457,"_extension":1192},"\u002Fblog\u002Fquantum-kernel-machine-learning-qiskit","Quantum Kernel Machine Learning with Qiskit: A Practical Guide","How to build a quantum kernel with Qiskit Machine Learning 0.9, plug it into a support vector classifier, and understand what a quantum kernel computes versus a classical one.",[12741,14,13],"QML",{"type":18,"children":12743,"toc":13446},[12744,12771,12794,12800,12805,12811,12914,12927,12933,13110,13129,13135,13156,13247,13260,13351,13371,13377,13389,13395,13400,13404,13442],{"type":21,"tag":22,"props":12745,"children":12746},{},[12747,12748,12753,12755,12760,12762,12769],{"type":31,"value":4481},{"type":21,"tag":26,"props":12749,"children":12750},{"href":3138},[12751],{"type":31,"value":12752},"reality check on quantum machine learning",{"type":31,"value":12754}," covers the caveats: most QML speedup claims assume data already sitting conveniently in a quantum state, an assumption that rarely holds for real classical datasets. Quantum kernel methods sidestep part of that problem, because a kernel-based classifier only ever needs the ",{"type":21,"tag":12756,"props":12757,"children":12758},"em",{},[12759],{"type":31,"value":1003},{"type":31,"value":12761}," of a quantum computation, a similarity score between data points, not the full quantum state itself. This post builds one with ",{"type":21,"tag":26,"props":12763,"children":12766},{"href":12764,"rel":12765},"https:\u002F\u002Fqiskit-community.github.io\u002Fqiskit-machine-learning\u002F",[7123],[12767],{"type":31,"value":12768},"Qiskit Machine Learning",{"type":31,"value":12770}," (version 0.9).",{"type":21,"tag":129,"props":12772,"children":12774},{"className":4499,"code":12773,"language":4498,"meta":7,"style":7},"pip install qiskit-machine-learning\n",[12775],{"type":21,"tag":104,"props":12776,"children":12777},{"__ignoreMap":7},[12778],{"type":21,"tag":139,"props":12779,"children":12780},{"class":141,"line":142},[12781,12785,12789],{"type":21,"tag":139,"props":12782,"children":12783},{"style":4509},[12784],{"type":31,"value":4512},{"type":21,"tag":139,"props":12786,"children":12787},{"style":262},[12788],{"type":31,"value":4517},{"type":21,"tag":139,"props":12790,"children":12791},{"style":262},[12792],{"type":31,"value":12793}," qiskit-machine-learning\n",{"type":21,"tag":41,"props":12795,"children":12797},{"id":12796},"what-a-kernel-does-classical-or-quantum",[12798],{"type":31,"value":12799},"What a kernel does, classical or quantum",{"type":21,"tag":22,"props":12801,"children":12802},{},[12803],{"type":31,"value":12804},"Support vector classifiers separate data by finding a boundary in feature space, and a kernel function is what defines the notion of \"similarity\" the classifier uses to compare data points, without ever explicitly constructing that feature space. Classical kernels (RBF, polynomial) compute similarity using ordinary vector math. A quantum kernel encodes each classical data point into a quantum state via a parameterized circuit, then defines similarity as how much two such states overlap, a quantity that's exponentially expensive to compute classically for a general quantum state but comes directly out of running a simple circuit on real qubits.",{"type":21,"tag":41,"props":12806,"children":12808},{"id":12807},"encoding-data-with-a-feature-map",[12809],{"type":31,"value":12810},"Encoding data with a feature map",{"type":21,"tag":129,"props":12812,"children":12814},{"className":131,"code":12813,"language":133,"meta":7,"style":7},"from qiskit.circuit.library import zz_feature_map\n\nfeature_map = zz_feature_map(feature_dimension=2, reps=2, entanglement=\"linear\")\n",[12815],{"type":21,"tag":104,"props":12816,"children":12817},{"__ignoreMap":7},[12818,12839,12846],{"type":21,"tag":139,"props":12819,"children":12820},{"class":141,"line":142},[12821,12825,12830,12834],{"type":21,"tag":139,"props":12822,"children":12823},{"style":146},[12824],{"type":31,"value":149},{"type":21,"tag":139,"props":12826,"children":12827},{"style":152},[12828],{"type":31,"value":12829}," qiskit.circuit.library ",{"type":21,"tag":139,"props":12831,"children":12832},{"style":146},[12833],{"type":31,"value":160},{"type":21,"tag":139,"props":12835,"children":12836},{"style":152},[12837],{"type":31,"value":12838}," zz_feature_map\n",{"type":21,"tag":139,"props":12840,"children":12841},{"class":141,"line":168},[12842],{"type":21,"tag":139,"props":12843,"children":12844},{"emptyLinePlaceholder":194},[12845],{"type":31,"value":197},{"type":21,"tag":139,"props":12847,"children":12848},{"class":141,"line":190},[12849,12854,12858,12863,12868,12872,12876,12880,12885,12889,12893,12897,12901,12905,12910],{"type":21,"tag":139,"props":12850,"children":12851},{"style":152},[12852],{"type":31,"value":12853},"feature_map ",{"type":21,"tag":139,"props":12855,"children":12856},{"style":146},[12857],{"type":31,"value":211},{"type":21,"tag":139,"props":12859,"children":12860},{"style":152},[12861],{"type":31,"value":12862}," zz_feature_map(",{"type":21,"tag":139,"props":12864,"children":12865},{"style":923},[12866],{"type":31,"value":12867},"feature_dimension",{"type":21,"tag":139,"props":12869,"children":12870},{"style":146},[12871],{"type":31,"value":211},{"type":21,"tag":139,"props":12873,"children":12874},{"style":214},[12875],{"type":31,"value":293},{"type":21,"tag":139,"props":12877,"children":12878},{"style":152},[12879],{"type":31,"value":259},{"type":21,"tag":139,"props":12881,"children":12882},{"style":923},[12883],{"type":31,"value":12884},"reps",{"type":21,"tag":139,"props":12886,"children":12887},{"style":146},[12888],{"type":31,"value":211},{"type":21,"tag":139,"props":12890,"children":12891},{"style":214},[12892],{"type":31,"value":293},{"type":21,"tag":139,"props":12894,"children":12895},{"style":152},[12896],{"type":31,"value":259},{"type":21,"tag":139,"props":12898,"children":12899},{"style":923},[12900],{"type":31,"value":4235},{"type":21,"tag":139,"props":12902,"children":12903},{"style":146},[12904],{"type":31,"value":211},{"type":21,"tag":139,"props":12906,"children":12907},{"style":262},[12908],{"type":31,"value":12909},"\"linear\"",{"type":21,"tag":139,"props":12911,"children":12912},{"style":152},[12913],{"type":31,"value":270},{"type":21,"tag":22,"props":12915,"children":12916},{},[12917,12919,12925],{"type":31,"value":12918},"The feature map is the circuit that turns a classical data vector into a quantum state, parameterized by the data itself. ",{"type":21,"tag":104,"props":12920,"children":12922},{"className":12921},[],[12923],{"type":31,"value":12924},"zz_feature_map",{"type":31,"value":12926}," uses ZZ-interaction gates between qubits, which is a common choice specifically because it's believed hard to simulate classically for enough qubits and repetitions, the same property that would need to hold for a genuine quantum advantage to show up in the kernel's expressiveness.",{"type":21,"tag":41,"props":12928,"children":12930},{"id":12929},"building-the-quantum-kernel",[12931],{"type":31,"value":12932},"Building the quantum kernel",{"type":21,"tag":129,"props":12934,"children":12936},{"className":131,"code":12935,"language":133,"meta":7,"style":7},"from qiskit.primitives import StatevectorSampler as Sampler\nfrom qiskit_machine_learning.state_fidelities import ComputeUncompute\nfrom qiskit_machine_learning.kernels import FidelityQuantumKernel\n\nsampler = Sampler()\nfidelity = ComputeUncompute(sampler=sampler)\nkernel = FidelityQuantumKernel(fidelity=fidelity, feature_map=feature_map)\n",[12937],{"type":21,"tag":104,"props":12938,"children":12939},{"__ignoreMap":7},[12940,12969,12990,13011,13018,13034,13065],{"type":21,"tag":139,"props":12941,"children":12942},{"class":141,"line":142},[12943,12947,12951,12955,12960,12964],{"type":21,"tag":139,"props":12944,"children":12945},{"style":146},[12946],{"type":31,"value":149},{"type":21,"tag":139,"props":12948,"children":12949},{"style":152},[12950],{"type":31,"value":12413},{"type":21,"tag":139,"props":12952,"children":12953},{"style":146},[12954],{"type":31,"value":160},{"type":21,"tag":139,"props":12956,"children":12957},{"style":152},[12958],{"type":31,"value":12959}," StatevectorSampler ",{"type":21,"tag":139,"props":12961,"children":12962},{"style":146},[12963],{"type":31,"value":5343},{"type":21,"tag":139,"props":12965,"children":12966},{"style":152},[12967],{"type":31,"value":12968}," Sampler\n",{"type":21,"tag":139,"props":12970,"children":12971},{"class":141,"line":168},[12972,12976,12981,12985],{"type":21,"tag":139,"props":12973,"children":12974},{"style":146},[12975],{"type":31,"value":149},{"type":21,"tag":139,"props":12977,"children":12978},{"style":152},[12979],{"type":31,"value":12980}," qiskit_machine_learning.state_fidelities ",{"type":21,"tag":139,"props":12982,"children":12983},{"style":146},[12984],{"type":31,"value":160},{"type":21,"tag":139,"props":12986,"children":12987},{"style":152},[12988],{"type":31,"value":12989}," ComputeUncompute\n",{"type":21,"tag":139,"props":12991,"children":12992},{"class":141,"line":190},[12993,12997,13002,13006],{"type":21,"tag":139,"props":12994,"children":12995},{"style":146},[12996],{"type":31,"value":149},{"type":21,"tag":139,"props":12998,"children":12999},{"style":152},[13000],{"type":31,"value":13001}," qiskit_machine_learning.kernels ",{"type":21,"tag":139,"props":13003,"children":13004},{"style":146},[13005],{"type":31,"value":160},{"type":21,"tag":139,"props":13007,"children":13008},{"style":152},[13009],{"type":31,"value":13010}," FidelityQuantumKernel\n",{"type":21,"tag":139,"props":13012,"children":13013},{"class":141,"line":200},[13014],{"type":21,"tag":139,"props":13015,"children":13016},{"emptyLinePlaceholder":194},[13017],{"type":31,"value":197},{"type":21,"tag":139,"props":13019,"children":13020},{"class":141,"line":226},[13021,13025,13029],{"type":21,"tag":139,"props":13022,"children":13023},{"style":152},[13024],{"type":31,"value":1690},{"type":21,"tag":139,"props":13026,"children":13027},{"style":146},[13028],{"type":31,"value":211},{"type":21,"tag":139,"props":13030,"children":13031},{"style":152},[13032],{"type":31,"value":13033}," Sampler()\n",{"type":21,"tag":139,"props":13035,"children":13036},{"class":141,"line":234},[13037,13042,13046,13051,13056,13060],{"type":21,"tag":139,"props":13038,"children":13039},{"style":152},[13040],{"type":31,"value":13041},"fidelity ",{"type":21,"tag":139,"props":13043,"children":13044},{"style":146},[13045],{"type":31,"value":211},{"type":21,"tag":139,"props":13047,"children":13048},{"style":152},[13049],{"type":31,"value":13050}," ComputeUncompute(",{"type":21,"tag":139,"props":13052,"children":13053},{"style":923},[13054],{"type":31,"value":13055},"sampler",{"type":21,"tag":139,"props":13057,"children":13058},{"style":146},[13059],{"type":31,"value":211},{"type":21,"tag":139,"props":13061,"children":13062},{"style":152},[13063],{"type":31,"value":13064},"sampler)\n",{"type":21,"tag":139,"props":13066,"children":13067},{"class":141,"line":273},[13068,13073,13077,13082,13087,13091,13096,13101,13105],{"type":21,"tag":139,"props":13069,"children":13070},{"style":152},[13071],{"type":31,"value":13072},"kernel ",{"type":21,"tag":139,"props":13074,"children":13075},{"style":146},[13076],{"type":31,"value":211},{"type":21,"tag":139,"props":13078,"children":13079},{"style":152},[13080],{"type":31,"value":13081}," FidelityQuantumKernel(",{"type":21,"tag":139,"props":13083,"children":13084},{"style":923},[13085],{"type":31,"value":13086},"fidelity",{"type":21,"tag":139,"props":13088,"children":13089},{"style":146},[13090],{"type":31,"value":211},{"type":21,"tag":139,"props":13092,"children":13093},{"style":152},[13094],{"type":31,"value":13095},"fidelity, ",{"type":21,"tag":139,"props":13097,"children":13098},{"style":923},[13099],{"type":31,"value":13100},"feature_map",{"type":21,"tag":139,"props":13102,"children":13103},{"style":146},[13104],{"type":31,"value":211},{"type":21,"tag":139,"props":13106,"children":13107},{"style":152},[13108],{"type":31,"value":13109},"feature_map)\n",{"type":21,"tag":22,"props":13111,"children":13112},{},[13113,13119,13121,13127],{"type":21,"tag":104,"props":13114,"children":13116},{"className":13115},[],[13117],{"type":31,"value":13118},"ComputeUncompute",{"type":31,"value":13120}," is the mechanism that measures overlap: it runs the feature map circuit for one data point, then the inverse of the feature map circuit for the other, and the probability of landing back in the all-zero state is the fidelity between the two encoded quantum states, exactly the similarity score the kernel needs. ",{"type":21,"tag":104,"props":13122,"children":13124},{"className":13123},[],[13125],{"type":31,"value":13126},"FidelityQuantumKernel",{"type":31,"value":13128}," wraps that computation into the standard kernel interface scikit-learn expects.",{"type":21,"tag":41,"props":13130,"children":13132},{"id":13131},"plugging-into-a-classifier-two-ways",[13133],{"type":31,"value":13134},"Plugging into a classifier two ways",{"type":21,"tag":22,"props":13136,"children":13137},{},[13138,13140,13146,13148,13154],{"type":31,"value":13139},"Directly with scikit-learn's ",{"type":21,"tag":104,"props":13141,"children":13143},{"className":13142},[],[13144],{"type":31,"value":13145},"SVC",{"type":31,"value":13147},", passing the kernel's ",{"type":21,"tag":104,"props":13149,"children":13151},{"className":13150},[],[13152],{"type":31,"value":13153},"evaluate",{"type":31,"value":13155}," method as a callable kernel:",{"type":21,"tag":129,"props":13157,"children":13159},{"className":131,"code":13158,"language":133,"meta":7,"style":7},"from sklearn.svm import SVC\n\nsvc = SVC(kernel=kernel.evaluate)\nsvc.fit(train_features, train_labels)\nscore = svc.score(test_features, test_labels)\n",[13160],{"type":21,"tag":104,"props":13161,"children":13162},{"__ignoreMap":7},[13163,13184,13191,13222,13230],{"type":21,"tag":139,"props":13164,"children":13165},{"class":141,"line":142},[13166,13170,13175,13179],{"type":21,"tag":139,"props":13167,"children":13168},{"style":146},[13169],{"type":31,"value":149},{"type":21,"tag":139,"props":13171,"children":13172},{"style":152},[13173],{"type":31,"value":13174}," sklearn.svm ",{"type":21,"tag":139,"props":13176,"children":13177},{"style":146},[13178],{"type":31,"value":160},{"type":21,"tag":139,"props":13180,"children":13181},{"style":214},[13182],{"type":31,"value":13183}," SVC\n",{"type":21,"tag":139,"props":13185,"children":13186},{"class":141,"line":168},[13187],{"type":21,"tag":139,"props":13188,"children":13189},{"emptyLinePlaceholder":194},[13190],{"type":31,"value":197},{"type":21,"tag":139,"props":13192,"children":13193},{"class":141,"line":190},[13194,13199,13203,13208,13213,13217],{"type":21,"tag":139,"props":13195,"children":13196},{"style":152},[13197],{"type":31,"value":13198},"svc ",{"type":21,"tag":139,"props":13200,"children":13201},{"style":146},[13202],{"type":31,"value":211},{"type":21,"tag":139,"props":13204,"children":13205},{"style":152},[13206],{"type":31,"value":13207}," SVC(",{"type":21,"tag":139,"props":13209,"children":13210},{"style":923},[13211],{"type":31,"value":13212},"kernel",{"type":21,"tag":139,"props":13214,"children":13215},{"style":146},[13216],{"type":31,"value":211},{"type":21,"tag":139,"props":13218,"children":13219},{"style":152},[13220],{"type":31,"value":13221},"kernel.evaluate)\n",{"type":21,"tag":139,"props":13223,"children":13224},{"class":141,"line":200},[13225],{"type":21,"tag":139,"props":13226,"children":13227},{"style":152},[13228],{"type":31,"value":13229},"svc.fit(train_features, train_labels)\n",{"type":21,"tag":139,"props":13231,"children":13232},{"class":141,"line":226},[13233,13238,13242],{"type":21,"tag":139,"props":13234,"children":13235},{"style":152},[13236],{"type":31,"value":13237},"score ",{"type":21,"tag":139,"props":13239,"children":13240},{"style":146},[13241],{"type":31,"value":211},{"type":21,"tag":139,"props":13243,"children":13244},{"style":152},[13245],{"type":31,"value":13246}," svc.score(test_features, test_labels)\n",{"type":21,"tag":22,"props":13248,"children":13249},{},[13250,13252,13258],{"type":31,"value":13251},"Or with ",{"type":21,"tag":104,"props":13253,"children":13255},{"className":13254},[],[13256],{"type":31,"value":13257},"QSVC",{"type":31,"value":13259},", Qiskit Machine Learning's own wrapper that takes the kernel object directly without the callable indirection:",{"type":21,"tag":129,"props":13261,"children":13263},{"className":131,"code":13262,"language":133,"meta":7,"style":7},"from qiskit_machine_learning.algorithms import QSVC\n\nqsvc = QSVC(quantum_kernel=kernel)\nqsvc.fit(train_features, train_labels)\nqsvc_score = qsvc.score(test_features, test_labels)\n",[13264],{"type":21,"tag":104,"props":13265,"children":13266},{"__ignoreMap":7},[13267,13288,13295,13326,13334],{"type":21,"tag":139,"props":13268,"children":13269},{"class":141,"line":142},[13270,13274,13279,13283],{"type":21,"tag":139,"props":13271,"children":13272},{"style":146},[13273],{"type":31,"value":149},{"type":21,"tag":139,"props":13275,"children":13276},{"style":152},[13277],{"type":31,"value":13278}," qiskit_machine_learning.algorithms ",{"type":21,"tag":139,"props":13280,"children":13281},{"style":146},[13282],{"type":31,"value":160},{"type":21,"tag":139,"props":13284,"children":13285},{"style":214},[13286],{"type":31,"value":13287}," QSVC\n",{"type":21,"tag":139,"props":13289,"children":13290},{"class":141,"line":168},[13291],{"type":21,"tag":139,"props":13292,"children":13293},{"emptyLinePlaceholder":194},[13294],{"type":31,"value":197},{"type":21,"tag":139,"props":13296,"children":13297},{"class":141,"line":190},[13298,13303,13307,13312,13317,13321],{"type":21,"tag":139,"props":13299,"children":13300},{"style":152},[13301],{"type":31,"value":13302},"qsvc ",{"type":21,"tag":139,"props":13304,"children":13305},{"style":146},[13306],{"type":31,"value":211},{"type":21,"tag":139,"props":13308,"children":13309},{"style":152},[13310],{"type":31,"value":13311}," QSVC(",{"type":21,"tag":139,"props":13313,"children":13314},{"style":923},[13315],{"type":31,"value":13316},"quantum_kernel",{"type":21,"tag":139,"props":13318,"children":13319},{"style":146},[13320],{"type":31,"value":211},{"type":21,"tag":139,"props":13322,"children":13323},{"style":152},[13324],{"type":31,"value":13325},"kernel)\n",{"type":21,"tag":139,"props":13327,"children":13328},{"class":141,"line":200},[13329],{"type":21,"tag":139,"props":13330,"children":13331},{"style":152},[13332],{"type":31,"value":13333},"qsvc.fit(train_features, train_labels)\n",{"type":21,"tag":139,"props":13335,"children":13336},{"class":141,"line":226},[13337,13342,13346],{"type":21,"tag":139,"props":13338,"children":13339},{"style":152},[13340],{"type":31,"value":13341},"qsvc_score ",{"type":21,"tag":139,"props":13343,"children":13344},{"style":146},[13345],{"type":31,"value":211},{"type":21,"tag":139,"props":13347,"children":13348},{"style":152},[13349],{"type":31,"value":13350}," qsvc.score(test_features, test_labels)\n",{"type":21,"tag":22,"props":13352,"children":13353},{},[13354,13356,13361,13363,13369],{"type":31,"value":13355},"Both produce the same underlying computation. ",{"type":21,"tag":104,"props":13357,"children":13359},{"className":13358},[],[13360],{"type":31,"value":13257},{"type":31,"value":13362}," is the more idiomatic choice inside Qiskit Machine Learning code, while the ",{"type":21,"tag":104,"props":13364,"children":13366},{"className":13365},[],[13367],{"type":31,"value":13368},"SVC(kernel=...)",{"type":31,"value":13370}," route is useful if you're integrating a quantum kernel into an existing scikit-learn pipeline that expects a standard estimator interface.",{"type":21,"tag":41,"props":13372,"children":13374},{"id":13373},"what-made-this-work-and-what-didnt",[13375],{"type":31,"value":13376},"What made this work (and what didn't)",{"type":21,"tag":22,"props":13378,"children":13379},{},[13380,13382,13387],{"type":31,"value":13381},"Qiskit's own tutorial demonstrates this on an \"ad hoc\" dataset specifically constructed so that a quantum kernel achieves separation a classical kernel struggles with, and both approaches above score 100% on it. That result is real, but it's worth reading correctly: the dataset was designed around the feature map's structure to showcase the technique, not sampled from a real-world problem. This is the same caution our ",{"type":21,"tag":26,"props":13383,"children":13384},{"href":3138},[13385],{"type":31,"value":13386},"QML reality check",{"type":31,"value":13388}," raises about the field generally. A quantum kernel's practical advantage on genuinely hard, real-world classification tasks, where you didn't get to choose the data generation process to match the feature map, remains an open, actively studied question rather than a settled one.",{"type":21,"tag":41,"props":13390,"children":13392},{"id":13391},"where-the-cost-lives",[13393],{"type":31,"value":13394},"Where the cost lives",{"type":21,"tag":22,"props":13396,"children":13397},{},[13398],{"type":31,"value":13399},"Every kernel evaluation between two data points costs one circuit execution (state preparation plus its inverse plus measurement), and a training set of size N needs on the order of N² such evaluations to build the full kernel matrix. That's the same quadratic scaling classical kernel methods have, but each individual evaluation now costs a quantum circuit execution rather than a vector dot product, which is why quantum kernel methods are currently pragmatic for small datasets and toy problems rather than production-scale classification, the same NISQ-era constraint that shows up across most near-term QML approaches.",{"type":21,"tag":41,"props":13401,"children":13402},{"id":5900},[13403],{"type":31,"value":5903},{"type":21,"tag":1112,"props":13405,"children":13406},{},[13407,13426,13431],{"type":21,"tag":72,"props":13408,"children":13409},{},[13410,13411,13416,13418,13424],{"type":31,"value":12686},{"type":21,"tag":104,"props":13412,"children":13414},{"className":13413},[],[13415],{"type":31,"value":12924},{"type":31,"value":13417}," for a different feature map (",{"type":21,"tag":104,"props":13419,"children":13421},{"className":13420},[],[13422],{"type":31,"value":13423},"zFeatureMap",{"type":31,"value":13425},", or a custom parameterized circuit) and compare classification accuracy on the equivalent dataset, since the feature map choice is the real design decision that determines what the kernel separates well and what it doesn't.",{"type":21,"tag":72,"props":13427,"children":13428},{},[13429],{"type":31,"value":13430},"Time the kernel matrix computation as you increase the training set size, and watch the quadratic-in-N cost show up directly in wall-clock time.",{"type":21,"tag":72,"props":13432,"children":13433},{},[13434,13436,13440],{"type":31,"value":13435},"Read our ",{"type":21,"tag":26,"props":13437,"children":13438},{"href":3610},[13439],{"type":31,"value":9096},{"type":31,"value":13441}," for a different flavor of hybrid quantum-classical algorithm, one that trains circuit parameters directly rather than using a fixed circuit as a fixed kernel.",{"type":21,"tag":1168,"props":13443,"children":13444},{},[13445],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":13447},[13448,13449,13450,13451,13452,13453,13454],{"id":12796,"depth":168,"text":12799},{"id":12807,"depth":168,"text":12810},{"id":12929,"depth":168,"text":12932},{"id":13131,"depth":168,"text":13134},{"id":13373,"depth":168,"text":13376},{"id":13391,"depth":168,"text":13394},{"id":5900,"depth":168,"text":5903},"content:blog:quantum-kernel-machine-learning-qiskit.md","blog\u002Fquantum-kernel-machine-learning-qiskit.md","blog\u002Fquantum-kernel-machine-learning-qiskit",{"_path":12192,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":13459,"description":13460,"date":4471,"author":11,"tags":13461,"readingTime":273,"body":13462,"_type":1187,"_id":13875,"_source":1189,"_file":13876,"_stem":13877,"_extension":1192},"Qubit Mappers Explained: Jordan-Wigner vs. Parity vs. Bravyi-Kitaev","Why simulating a molecule needs so many qubits, and how the choice of fermion-to-qubit mapping in Qiskit Nature changes that number: Jordan-Wigner, Parity, Bravyi-Kitaev, and the symmetry reductions that shrink H2 to a single qubit.",[3484,15,14],{"type":18,"children":13463,"toc":13865},[13464,13476,13482,13487,13493,13540,13545,13551,13615,13627,13633,13638,13644,13695,13708,13714,13765,13778,13784,13796,13802,13861],{"type":21,"tag":22,"props":13465,"children":13466},{},[13467,13469,13474],{"type":31,"value":13468},"Every quantum chemistry pipeline hits the same translation problem before a single gate runs: electrons are fermions, qubits are not, and the two don't behave the same way under exchange. A fermion-to-qubit mapper is the piece of the pipeline that solves this, and which mapper you pick changes qubit count, gate locality, and how much classical pre-processing happens before touching a circuit at all. ",{"type":21,"tag":26,"props":13470,"children":13472},{"href":11845,"rel":13471},[7123],[13473],{"type":31,"value":11849},{"type":31,"value":13475}," (version 0.8) ships several.",{"type":21,"tag":41,"props":13477,"children":13479},{"id":13478},"why-fermions-need-special-handling",[13480],{"type":31,"value":13481},"Why fermions need special handling",{"type":21,"tag":22,"props":13483,"children":13484},{},[13485],{"type":31,"value":13486},"Swap two electrons and the wavefunction picks up a minus sign, the antisymmetry that underlies the Pauli exclusion principle. Qubits don't do that automatically: swapping two qubits in a circuit doesn't introduce a sign flip on its own. A mapper has to encode that antisymmetry explicitly into how fermionic creation and annihilation operators translate into Pauli operators (X, Y, Z) acting on qubits, which is a nontrivial translation, not a relabeling.",{"type":21,"tag":41,"props":13488,"children":13490},{"id":13489},"jordan-wigner-the-direct-mapping",[13491],{"type":31,"value":13492},"Jordan-Wigner: the direct mapping",{"type":21,"tag":129,"props":13494,"children":13495},{"className":131,"code":12135,"language":133,"meta":7,"style":7},[13496],{"type":21,"tag":104,"props":13497,"children":13498},{"__ignoreMap":7},[13499,13518,13525],{"type":21,"tag":139,"props":13500,"children":13501},{"class":141,"line":142},[13502,13506,13510,13514],{"type":21,"tag":139,"props":13503,"children":13504},{"style":146},[13505],{"type":31,"value":149},{"type":21,"tag":139,"props":13507,"children":13508},{"style":152},[13509],{"type":31,"value":12151},{"type":21,"tag":139,"props":13511,"children":13512},{"style":146},[13513],{"type":31,"value":160},{"type":21,"tag":139,"props":13515,"children":13516},{"style":152},[13517],{"type":31,"value":12160},{"type":21,"tag":139,"props":13519,"children":13520},{"class":141,"line":168},[13521],{"type":21,"tag":139,"props":13522,"children":13523},{"emptyLinePlaceholder":194},[13524],{"type":31,"value":197},{"type":21,"tag":139,"props":13526,"children":13527},{"class":141,"line":190},[13528,13532,13536],{"type":21,"tag":139,"props":13529,"children":13530},{"style":152},[13531],{"type":31,"value":12175},{"type":21,"tag":139,"props":13533,"children":13534},{"style":146},[13535],{"type":31,"value":211},{"type":21,"tag":139,"props":13537,"children":13538},{"style":152},[13539],{"type":31,"value":12184},{"type":21,"tag":22,"props":13541,"children":13542},{},[13543],{"type":31,"value":13544},"Jordan-Wigner is the most literal mapping: one spin-orbital maps to exactly one qubit, and the occupation of that orbital (occupied or empty) maps directly to that qubit's |1⟩ or |0⟩ state. That directness makes it the easiest mapping to reason about and debug. Its cost is locality: encoding the required antisymmetry means a fermionic operator on one orbital turns into a Pauli string spanning every qubit up to that orbital's index in the ordering, a chain of Z operators called a Jordan-Wigner string. Operators that would be local in the fermionic picture become non-local in the qubit picture, which matters directly for circuit depth on real hardware, since non-local Pauli strings need more gates to implement one way or another.",{"type":21,"tag":41,"props":13546,"children":13548},{"id":13547},"parity-trading-locality-for-a-qubit-reduction",[13549],{"type":31,"value":13550},"Parity: trading locality for a qubit reduction",{"type":21,"tag":129,"props":13552,"children":13554},{"className":131,"code":13553,"language":133,"meta":7,"style":7},"from qiskit_nature.second_q.mappers import ParityMapper\n\nmapper = ParityMapper(num_particles=problem.num_particles)\n",[13555],{"type":21,"tag":104,"props":13556,"children":13557},{"__ignoreMap":7},[13558,13578,13585],{"type":21,"tag":139,"props":13559,"children":13560},{"class":141,"line":142},[13561,13565,13569,13573],{"type":21,"tag":139,"props":13562,"children":13563},{"style":146},[13564],{"type":31,"value":149},{"type":21,"tag":139,"props":13566,"children":13567},{"style":152},[13568],{"type":31,"value":12151},{"type":21,"tag":139,"props":13570,"children":13571},{"style":146},[13572],{"type":31,"value":160},{"type":21,"tag":139,"props":13574,"children":13575},{"style":152},[13576],{"type":31,"value":13577}," ParityMapper\n",{"type":21,"tag":139,"props":13579,"children":13580},{"class":141,"line":168},[13581],{"type":21,"tag":139,"props":13582,"children":13583},{"emptyLinePlaceholder":194},[13584],{"type":31,"value":197},{"type":21,"tag":139,"props":13586,"children":13587},{"class":141,"line":190},[13588,13592,13596,13601,13606,13610],{"type":21,"tag":139,"props":13589,"children":13590},{"style":152},[13591],{"type":31,"value":12175},{"type":21,"tag":139,"props":13593,"children":13594},{"style":146},[13595],{"type":31,"value":211},{"type":21,"tag":139,"props":13597,"children":13598},{"style":152},[13599],{"type":31,"value":13600}," ParityMapper(",{"type":21,"tag":139,"props":13602,"children":13603},{"style":923},[13604],{"type":31,"value":13605},"num_particles",{"type":21,"tag":139,"props":13607,"children":13608},{"style":146},[13609],{"type":31,"value":211},{"type":21,"tag":139,"props":13611,"children":13612},{"style":152},[13613],{"type":31,"value":13614},"problem.num_particles)\n",{"type":21,"tag":22,"props":13616,"children":13617},{},[13618,13620,13625],{"type":31,"value":13619},"The parity mapping stores information differently: instead of one qubit per orbital tracking occupation directly, it encodes parity (even or odd electron count) locally on each qubit, while occupation information becomes spread across all of them. The payoff shows up when you also know the total particle quantity ahead of time, a physically reasonable thing to know for a fixed molecule, since passing ",{"type":21,"tag":104,"props":13621,"children":13623},{"className":13622},[],[13624],{"type":31,"value":13605},{"type":31,"value":13626}," lets the mapper drop two qubits that become redundant once electron-number conservation is accounted for. For a small system, two fewer qubits is a meaningful fraction of the total.",{"type":21,"tag":41,"props":13628,"children":13630},{"id":13629},"bravyi-kitaev-splitting-the-difference",[13631],{"type":31,"value":13632},"Bravyi-Kitaev: splitting the difference",{"type":21,"tag":22,"props":13634,"children":13635},{},[13636],{"type":31,"value":13637},"Jordan-Wigner keeps occupation information local but pays for it with non-local operators. Parity does the reverse. Bravyi-Kitaev sits between the two, using a tree-based encoding where both occupation and parity information are partially local, so operators typically act on O(log n) qubits instead of either the fully local (Jordan-Wigner occupation) or fully spread-out (Parity occupation) extremes. It's available in Qiskit Nature alongside the other two, and it's worth reaching for specifically when circuit depth from long Pauli strings is the bottleneck rather than raw qubit count.",{"type":21,"tag":41,"props":13639,"children":13641},{"id":13640},"squeezing-further-tapering-with-symmetries",[13642],{"type":31,"value":13643},"Squeezing further: tapering with symmetries",{"type":21,"tag":129,"props":13645,"children":13647},{"className":131,"code":13646,"language":133,"meta":7,"style":7},"from qiskit_nature.second_q.mappers import TaperedQubitMapper\n\ntapered_mapper = problem.get_tapered_mapper(mapper)\n",[13648],{"type":21,"tag":104,"props":13649,"children":13650},{"__ignoreMap":7},[13651,13671,13678],{"type":21,"tag":139,"props":13652,"children":13653},{"class":141,"line":142},[13654,13658,13662,13666],{"type":21,"tag":139,"props":13655,"children":13656},{"style":146},[13657],{"type":31,"value":149},{"type":21,"tag":139,"props":13659,"children":13660},{"style":152},[13661],{"type":31,"value":12151},{"type":21,"tag":139,"props":13663,"children":13664},{"style":146},[13665],{"type":31,"value":160},{"type":21,"tag":139,"props":13667,"children":13668},{"style":152},[13669],{"type":31,"value":13670}," TaperedQubitMapper\n",{"type":21,"tag":139,"props":13672,"children":13673},{"class":141,"line":168},[13674],{"type":21,"tag":139,"props":13675,"children":13676},{"emptyLinePlaceholder":194},[13677],{"type":31,"value":197},{"type":21,"tag":139,"props":13679,"children":13680},{"class":141,"line":190},[13681,13686,13690],{"type":21,"tag":139,"props":13682,"children":13683},{"style":152},[13684],{"type":31,"value":13685},"tapered_mapper ",{"type":21,"tag":139,"props":13687,"children":13688},{"style":146},[13689],{"type":31,"value":211},{"type":21,"tag":139,"props":13691,"children":13692},{"style":152},[13693],{"type":31,"value":13694}," problem.get_tapered_mapper(mapper)\n",{"type":21,"tag":22,"props":13696,"children":13697},{},[13698,13700,13706],{"type":31,"value":13699},"Beyond the choice of base mapping, a molecule's Hamiltonian often has Z2 symmetries, structural redundancies in how the challenge was encoded, that a ",{"type":21,"tag":104,"props":13701,"children":13703},{"className":13702},[],[13704],{"type":31,"value":13705},"TaperedQubitMapper",{"type":31,"value":13707}," identifies and removes entirely. For H₂ in a minimal basis, mapped with Parity and combined with tapering, the qubit count is reducible all the way down to a single qubit, a dramatic illustration that \"how many qubits does this molecule need\" depends heavily on encoding choices, not only on the molecule's inherent physical complexity.",{"type":21,"tag":41,"props":13709,"children":13711},{"id":13710},"qubit-ordering-matters-too",[13712],{"type":31,"value":13713},"Qubit ordering matters too",{"type":21,"tag":129,"props":13715,"children":13717},{"className":131,"code":13716,"language":133,"meta":7,"style":7},"from qiskit_nature.second_q.mappers import InterleavedQubitMapper\n\ninterleaved = InterleavedQubitMapper(mapper)\n",[13718],{"type":21,"tag":104,"props":13719,"children":13720},{"__ignoreMap":7},[13721,13741,13748],{"type":21,"tag":139,"props":13722,"children":13723},{"class":141,"line":142},[13724,13728,13732,13736],{"type":21,"tag":139,"props":13725,"children":13726},{"style":146},[13727],{"type":31,"value":149},{"type":21,"tag":139,"props":13729,"children":13730},{"style":152},[13731],{"type":31,"value":12151},{"type":21,"tag":139,"props":13733,"children":13734},{"style":146},[13735],{"type":31,"value":160},{"type":21,"tag":139,"props":13737,"children":13738},{"style":152},[13739],{"type":31,"value":13740}," InterleavedQubitMapper\n",{"type":21,"tag":139,"props":13742,"children":13743},{"class":141,"line":168},[13744],{"type":21,"tag":139,"props":13745,"children":13746},{"emptyLinePlaceholder":194},[13747],{"type":31,"value":197},{"type":21,"tag":139,"props":13749,"children":13750},{"class":141,"line":190},[13751,13756,13760],{"type":21,"tag":139,"props":13752,"children":13753},{"style":152},[13754],{"type":31,"value":13755},"interleaved ",{"type":21,"tag":139,"props":13757,"children":13758},{"style":146},[13759],{"type":31,"value":211},{"type":21,"tag":139,"props":13761,"children":13762},{"style":152},[13763],{"type":31,"value":13764}," InterleavedQubitMapper(mapper)\n",{"type":21,"tag":22,"props":13766,"children":13767},{},[13768,13770,13776],{"type":31,"value":13769},"Separately from which mapper you pick, ",{"type":21,"tag":104,"props":13771,"children":13773},{"className":13772},[],[13774],{"type":31,"value":13775},"InterleavedQubitMapper",{"type":31,"value":13777}," changes how spin-up and spin-down orbitals are arranged relative to each other, interleaved rather than the default block ordering (all spin-up orbitals, then all spin-down). Ordering doesn't change the physics, but it changes which operators end up acting on adjacent qubits, which affects how well a mapped Hamiltonian matches real hardware's connectivity graph.",{"type":21,"tag":41,"props":13779,"children":13781},{"id":13780},"the-pragmatic-decision",[13782],{"type":31,"value":13783},"The pragmatic decision",{"type":21,"tag":22,"props":13785,"children":13786},{},[13787,13789,13794],{"type":31,"value":13788},"For learning the pipeline or debugging a new problem, Jordan-Wigner's directness makes mistakes easiest to spot. Once you're optimizing for a real qubit budget or targeting real hardware with limited connectivity, Parity with particle-number reduction (and tapering, if the symmetries are there to exploit) is usually the better default, with Bravyi-Kitaev worth benchmarking specifically when circuit depth, not qubit count, is the binding constraint. None of these choices shift the underlying chemistry. They change how expensive that chemistry is to represent on a real device, which is exactly why ",{"type":21,"tag":26,"props":13790,"children":13791},{"href":11826},[13792],{"type":31,"value":13793},"molecule simulation needs so many qubits",{"type":31,"value":13795}," in the first place, and why the mapper is a real design decision rather than boilerplate.",{"type":21,"tag":41,"props":13797,"children":13799},{"id":13798},"try-this-following",[13800],{"type":31,"value":13801},"Try this following",{"type":21,"tag":1112,"props":13803,"children":13804},{},[13805,13831,13850],{"type":21,"tag":72,"props":13806,"children":13807},{},[13808,13810,13815,13816,13821,13823,13829],{"type":31,"value":13809},"Build the same H₂ Hamiltonian with ",{"type":21,"tag":104,"props":13811,"children":13813},{"className":13812},[],[13814],{"type":31,"value":12692},{"type":31,"value":3615},{"type":21,"tag":104,"props":13817,"children":13819},{"className":13818},[],[13820],{"type":31,"value":12700},{"type":31,"value":13822}," and compare ",{"type":21,"tag":104,"props":13824,"children":13826},{"className":13825},[],[13827],{"type":31,"value":13828},"mapper.map(problem.hamiltonian.second_q_op()).num_qubits",{"type":31,"value":13830}," between them directly.",{"type":21,"tag":72,"props":13832,"children":13833},{},[13834,13836,13841,13843,13848],{"type":31,"value":13835},"Apply ",{"type":21,"tag":104,"props":13837,"children":13839},{"className":13838},[],[13840],{"type":31,"value":13705},{"type":31,"value":13842}," on top of Parity for H₂ and confirm the qubit count drops to one, then check whether ",{"type":21,"tag":104,"props":13844,"children":13846},{"className":13845},[],[13847],{"type":31,"value":12351},{"type":31,"value":13849}," still returns the same ground-state energy as the untapered version.",{"type":21,"tag":72,"props":13851,"children":13852},{},[13853,13854,13859],{"type":31,"value":13435},{"type":21,"tag":26,"props":13855,"children":13856},{"href":11826},[13857],{"type":31,"value":13858},"molecule ground-state solver walkthrough",{"type":31,"value":13860}," to see a mapper plugged into a full VQE pipeline rather than examined in isolation.",{"type":21,"tag":1168,"props":13862,"children":13863},{},[13864],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":13866},[13867,13868,13869,13870,13871,13872,13873,13874],{"id":13478,"depth":168,"text":13481},{"id":13489,"depth":168,"text":13492},{"id":13547,"depth":168,"text":13550},{"id":13629,"depth":168,"text":13632},{"id":13640,"depth":168,"text":13643},{"id":13710,"depth":168,"text":13713},{"id":13780,"depth":168,"text":13783},{"id":13798,"depth":168,"text":13801},"content:blog:qubit-mappers-jordan-wigner-parity-explained.md","blog\u002Fqubit-mappers-jordan-wigner-parity-explained.md","blog\u002Fqubit-mappers-jordan-wigner-parity-explained",{"_path":11803,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":13879,"description":13880,"date":4471,"author":11,"tags":13881,"readingTime":273,"body":13883,"_type":1187,"_id":14712,"_source":1189,"_file":14713,"_stem":14714,"_extension":1192},"Randomized Benchmarking with Qiskit Experiments: Measuring Real Gate Error","How to run StandardRB and InterleavedRB in Qiskit Experiments 0.14 to measure average gate error per Clifford, and how to isolate a single gate's error from the rest of the circuit noise.",[14,13882,5973],"Performance",{"type":18,"children":13884,"toc":14703},[13885,13903,13924,13930,13935,13941,14272,14290,14296,14301,14448,14453,14459,14471,14609,14615,14628,14647,14652,14658,14663,14667,14699],{"type":21,"tag":22,"props":13886,"children":13887},{},[13888,13894,13896,13901],{"type":21,"tag":26,"props":13889,"children":13891},{"href":13890},"\u002Fblog\u002Fquantum-volume-benchmarking-tutorial",[13892],{"type":31,"value":13893},"Quantum Volume",{"type":31,"value":13895}," tells you the largest square circuit a device passes. It doesn't tell you which gate is dragging that number down. Randomized benchmarking (RB) answers a narrower, more actionable question: what's the average error per gate, and is it possible to isolate one certain gate's contribution from everything else. ",{"type":21,"tag":26,"props":13897,"children":13899},{"href":10666,"rel":13898},[7123],[13900],{"type":31,"value":10670},{"type":31,"value":13902}," (version 0.14) implements both the standard version and the interleaved variant that isolates a single gate.",{"type":21,"tag":129,"props":13904,"children":13905},{"className":4499,"code":10675,"language":4498,"meta":7,"style":7},[13906],{"type":21,"tag":104,"props":13907,"children":13908},{"__ignoreMap":7},[13909],{"type":21,"tag":139,"props":13910,"children":13911},{"class":141,"line":142},[13912,13916,13920],{"type":21,"tag":139,"props":13913,"children":13914},{"style":4509},[13915],{"type":31,"value":4512},{"type":21,"tag":139,"props":13917,"children":13918},{"style":262},[13919],{"type":31,"value":4517},{"type":21,"tag":139,"props":13921,"children":13922},{"style":262},[13923],{"type":31,"value":10695},{"type":21,"tag":41,"props":13925,"children":13927},{"id":13926},"the-idea-behind-rb",[13928],{"type":31,"value":13929},"The idea behind RB",{"type":21,"tag":22,"props":13931,"children":13932},{},[13933],{"type":31,"value":13934},"Standard RB runs sequences of random Clifford gates of increasing length, each sequence engineered so the final gate inverts everything before it, meaning a perfect, noiseless device always returns to the initial state. As sequence length grows, accumulated gate error shows up as decaying return-to-ground-state probability. Fit that decay curve, and the decay rate converts directly into an average error per Clifford gate, a single number that reflects the device's gate quality independent of any specific circuit you care about.",{"type":21,"tag":41,"props":13936,"children":13938},{"id":13937},"running-standardrb",[13939],{"type":31,"value":13940},"Running StandardRB",{"type":21,"tag":129,"props":13942,"children":13944},{"className":131,"code":13943,"language":133,"meta":7,"style":7},"import numpy as np\nfrom qiskit_experiments.library import StandardRB\nfrom qiskit_aer import AerSimulator\nfrom qiskit_aer.noise import NoiseModel, depolarizing_error\n\nlengths = [1, 10, 30, 80, 150] + np.arange(200, 1100, 200).tolist()\nnum_samples = 5\nqubits = [0]\n\nexp = StandardRB(qubits, lengths, num_samples=num_samples, seed=1010)\nexp_data = exp.run(backend).block_for_results()\n\nexp_data.analysis_results(dataframe=True)\n",[13945],{"type":21,"tag":104,"props":13946,"children":13947},{"__ignoreMap":7},[13948,13967,13987,14006,14027,14034,14129,14146,14171,14178,14226,14242,14249],{"type":21,"tag":139,"props":13949,"children":13950},{"class":141,"line":142},[13951,13955,13959,13963],{"type":21,"tag":139,"props":13952,"children":13953},{"style":146},[13954],{"type":31,"value":160},{"type":21,"tag":139,"props":13956,"children":13957},{"style":152},[13958],{"type":31,"value":8517},{"type":21,"tag":139,"props":13960,"children":13961},{"style":146},[13962],{"type":31,"value":5343},{"type":21,"tag":139,"props":13964,"children":13965},{"style":152},[13966],{"type":31,"value":8619},{"type":21,"tag":139,"props":13968,"children":13969},{"class":141,"line":168},[13970,13974,13978,13982],{"type":21,"tag":139,"props":13971,"children":13972},{"style":146},[13973],{"type":31,"value":149},{"type":21,"tag":139,"props":13975,"children":13976},{"style":152},[13977],{"type":31,"value":10841},{"type":21,"tag":139,"props":13979,"children":13980},{"style":146},[13981],{"type":31,"value":160},{"type":21,"tag":139,"props":13983,"children":13984},{"style":152},[13985],{"type":31,"value":13986}," StandardRB\n",{"type":21,"tag":139,"props":13988,"children":13989},{"class":141,"line":190},[13990,13994,13998,14002],{"type":21,"tag":139,"props":13991,"children":13992},{"style":146},[13993],{"type":31,"value":149},{"type":21,"tag":139,"props":13995,"children":13996},{"style":152},[13997],{"type":31,"value":178},{"type":21,"tag":139,"props":13999,"children":14000},{"style":146},[14001],{"type":31,"value":160},{"type":21,"tag":139,"props":14003,"children":14004},{"style":152},[14005],{"type":31,"value":187},{"type":21,"tag":139,"props":14007,"children":14008},{"class":141,"line":200},[14009,14013,14018,14022],{"type":21,"tag":139,"props":14010,"children":14011},{"style":146},[14012],{"type":31,"value":149},{"type":21,"tag":139,"props":14014,"children":14015},{"style":152},[14016],{"type":31,"value":14017}," qiskit_aer.noise ",{"type":21,"tag":139,"props":14019,"children":14020},{"style":146},[14021],{"type":31,"value":160},{"type":21,"tag":139,"props":14023,"children":14024},{"style":152},[14025],{"type":31,"value":14026}," NoiseModel, depolarizing_error\n",{"type":21,"tag":139,"props":14028,"children":14029},{"class":141,"line":226},[14030],{"type":21,"tag":139,"props":14031,"children":14032},{"emptyLinePlaceholder":194},[14033],{"type":31,"value":197},{"type":21,"tag":139,"props":14035,"children":14036},{"class":141,"line":234},[14037,14042,14046,14050,14054,14058,14063,14067,14072,14076,14081,14085,14090,14094,14098,14102,14107,14111,14116,14120,14124],{"type":21,"tag":139,"props":14038,"children":14039},{"style":152},[14040],{"type":31,"value":14041},"lengths ",{"type":21,"tag":139,"props":14043,"children":14044},{"style":146},[14045],{"type":31,"value":211},{"type":21,"tag":139,"props":14047,"children":14048},{"style":152},[14049],{"type":31,"value":8038},{"type":21,"tag":139,"props":14051,"children":14052},{"style":214},[14053],{"type":31,"value":328},{"type":21,"tag":139,"props":14055,"children":14056},{"style":152},[14057],{"type":31,"value":259},{"type":21,"tag":139,"props":14059,"children":14060},{"style":214},[14061],{"type":31,"value":14062},"10",{"type":21,"tag":139,"props":14064,"children":14065},{"style":152},[14066],{"type":31,"value":259},{"type":21,"tag":139,"props":14068,"children":14069},{"style":214},[14070],{"type":31,"value":14071},"30",{"type":21,"tag":139,"props":14073,"children":14074},{"style":152},[14075],{"type":31,"value":259},{"type":21,"tag":139,"props":14077,"children":14078},{"style":214},[14079],{"type":31,"value":14080},"80",{"type":21,"tag":139,"props":14082,"children":14083},{"style":152},[14084],{"type":31,"value":259},{"type":21,"tag":139,"props":14086,"children":14087},{"style":214},[14088],{"type":31,"value":14089},"150",{"type":21,"tag":139,"props":14091,"children":14092},{"style":152},[14093],{"type":31,"value":12570},{"type":21,"tag":139,"props":14095,"children":14096},{"style":146},[14097],{"type":31,"value":1599},{"type":21,"tag":139,"props":14099,"children":14100},{"style":152},[14101],{"type":31,"value":10874},{"type":21,"tag":139,"props":14103,"children":14104},{"style":214},[14105],{"type":31,"value":14106},"200",{"type":21,"tag":139,"props":14108,"children":14109},{"style":152},[14110],{"type":31,"value":259},{"type":21,"tag":139,"props":14112,"children":14113},{"style":214},[14114],{"type":31,"value":14115},"1100",{"type":21,"tag":139,"props":14117,"children":14118},{"style":152},[14119],{"type":31,"value":259},{"type":21,"tag":139,"props":14121,"children":14122},{"style":214},[14123],{"type":31,"value":14106},{"type":21,"tag":139,"props":14125,"children":14126},{"style":152},[14127],{"type":31,"value":14128},").tolist()\n",{"type":21,"tag":139,"props":14130,"children":14131},{"class":141,"line":273},[14132,14137,14141],{"type":21,"tag":139,"props":14133,"children":14134},{"style":152},[14135],{"type":31,"value":14136},"num_samples ",{"type":21,"tag":139,"props":14138,"children":14139},{"style":146},[14140],{"type":31,"value":211},{"type":21,"tag":139,"props":14142,"children":14143},{"style":214},[14144],{"type":31,"value":14145}," 5\n",{"type":21,"tag":139,"props":14147,"children":14148},{"class":141,"line":309},[14149,14154,14158,14162,14166],{"type":21,"tag":139,"props":14150,"children":14151},{"style":152},[14152],{"type":31,"value":14153},"qubits ",{"type":21,"tag":139,"props":14155,"children":14156},{"style":146},[14157],{"type":31,"value":211},{"type":21,"tag":139,"props":14159,"children":14160},{"style":152},[14161],{"type":31,"value":8038},{"type":21,"tag":139,"props":14163,"children":14164},{"style":214},[14165],{"type":31,"value":407},{"type":21,"tag":139,"props":14167,"children":14168},{"style":152},[14169],{"type":31,"value":14170},"]\n",{"type":21,"tag":139,"props":14172,"children":14173},{"class":141,"line":16},[14174],{"type":21,"tag":139,"props":14175,"children":14176},{"emptyLinePlaceholder":194},[14177],{"type":31,"value":197},{"type":21,"tag":139,"props":14179,"children":14180},{"class":141,"line":361},[14181,14185,14189,14194,14199,14203,14208,14213,14217,14222],{"type":21,"tag":139,"props":14182,"children":14183},{"style":152},[14184],{"type":31,"value":10913},{"type":21,"tag":139,"props":14186,"children":14187},{"style":146},[14188],{"type":31,"value":211},{"type":21,"tag":139,"props":14190,"children":14191},{"style":152},[14192],{"type":31,"value":14193}," StandardRB(qubits, lengths, ",{"type":21,"tag":139,"props":14195,"children":14196},{"style":923},[14197],{"type":31,"value":14198},"num_samples",{"type":21,"tag":139,"props":14200,"children":14201},{"style":146},[14202],{"type":31,"value":211},{"type":21,"tag":139,"props":14204,"children":14205},{"style":152},[14206],{"type":31,"value":14207},"num_samples, ",{"type":21,"tag":139,"props":14209,"children":14210},{"style":923},[14211],{"type":31,"value":14212},"seed",{"type":21,"tag":139,"props":14214,"children":14215},{"style":146},[14216],{"type":31,"value":211},{"type":21,"tag":139,"props":14218,"children":14219},{"style":214},[14220],{"type":31,"value":14221},"1010",{"type":21,"tag":139,"props":14223,"children":14224},{"style":152},[14225],{"type":31,"value":270},{"type":21,"tag":139,"props":14227,"children":14228},{"class":141,"line":369},[14229,14233,14237],{"type":21,"tag":139,"props":14230,"children":14231},{"style":152},[14232],{"type":31,"value":10973},{"type":21,"tag":139,"props":14234,"children":14235},{"style":146},[14236],{"type":31,"value":211},{"type":21,"tag":139,"props":14238,"children":14239},{"style":152},[14240],{"type":31,"value":14241}," exp.run(backend).block_for_results()\n",{"type":21,"tag":139,"props":14243,"children":14244},{"class":141,"line":378},[14245],{"type":21,"tag":139,"props":14246,"children":14247},{"emptyLinePlaceholder":194},[14248],{"type":31,"value":197},{"type":21,"tag":139,"props":14250,"children":14251},{"class":141,"line":387},[14252,14256,14260,14264,14268],{"type":21,"tag":139,"props":14253,"children":14254},{"style":152},[14255],{"type":31,"value":11004},{"type":21,"tag":139,"props":14257,"children":14258},{"style":923},[14259],{"type":31,"value":11009},{"type":21,"tag":139,"props":14261,"children":14262},{"style":146},[14263],{"type":31,"value":211},{"type":21,"tag":139,"props":14265,"children":14266},{"style":214},[14267],{"type":31,"value":8664},{"type":21,"tag":139,"props":14269,"children":14270},{"style":152},[14271],{"type":31,"value":270},{"type":21,"tag":22,"props":14273,"children":14274},{},[14275,14281,14283,14288],{"type":21,"tag":104,"props":14276,"children":14278},{"className":14277},[],[14279],{"type":31,"value":14280},"lengths",{"type":31,"value":14282}," is the set of sequence lengths to test, and ",{"type":21,"tag":104,"props":14284,"children":14286},{"className":14285},[],[14287],{"type":31,"value":14198},{"type":31,"value":14289}," is how many random sequences to generate at each length, since a single random sequence at a given length is noisy on its own and needs averaging. The results table reports both EPC (error per Clifford) and, where the analysis decomposes it, EPG (error per gate) for the specific single- and two-qubit gates involved.",{"type":21,"tag":41,"props":14291,"children":14293},{"id":14292},"isolating-one-gate-with-interleavedrb",[14294],{"type":31,"value":14295},"Isolating one gate with InterleavedRB",{"type":21,"tag":22,"props":14297,"children":14298},{},[14299],{"type":31,"value":14300},"Standard RB gives you an average across every Clifford gate the device uses. If you want to know specifically how solid the CX (CNOT) gate is, interleave it into the random sequences and compare the decay rate with and without it:",{"type":21,"tag":129,"props":14302,"children":14304},{"className":131,"code":14303,"language":133,"meta":7,"style":7},"from qiskit_experiments.library import InterleavedRB\nfrom qiskit.circuit.library import CXGate\n\nint_exp = InterleavedRB(CXGate(), qubits, lengths, num_samples=num_samples, seed=1010)\nint_exp_data = int_exp.run(backend).block_for_results()\n\nint_exp_data.analysis_results(dataframe=True)\n",[14305],{"type":21,"tag":104,"props":14306,"children":14307},{"__ignoreMap":7},[14308,14328,14348,14355,14400,14417,14424],{"type":21,"tag":139,"props":14309,"children":14310},{"class":141,"line":142},[14311,14315,14319,14323],{"type":21,"tag":139,"props":14312,"children":14313},{"style":146},[14314],{"type":31,"value":149},{"type":21,"tag":139,"props":14316,"children":14317},{"style":152},[14318],{"type":31,"value":10841},{"type":21,"tag":139,"props":14320,"children":14321},{"style":146},[14322],{"type":31,"value":160},{"type":21,"tag":139,"props":14324,"children":14325},{"style":152},[14326],{"type":31,"value":14327}," InterleavedRB\n",{"type":21,"tag":139,"props":14329,"children":14330},{"class":141,"line":168},[14331,14335,14339,14343],{"type":21,"tag":139,"props":14332,"children":14333},{"style":146},[14334],{"type":31,"value":149},{"type":21,"tag":139,"props":14336,"children":14337},{"style":152},[14338],{"type":31,"value":12829},{"type":21,"tag":139,"props":14340,"children":14341},{"style":146},[14342],{"type":31,"value":160},{"type":21,"tag":139,"props":14344,"children":14345},{"style":152},[14346],{"type":31,"value":14347}," CXGate\n",{"type":21,"tag":139,"props":14349,"children":14350},{"class":141,"line":190},[14351],{"type":21,"tag":139,"props":14352,"children":14353},{"emptyLinePlaceholder":194},[14354],{"type":31,"value":197},{"type":21,"tag":139,"props":14356,"children":14357},{"class":141,"line":200},[14358,14363,14367,14372,14376,14380,14384,14388,14392,14396],{"type":21,"tag":139,"props":14359,"children":14360},{"style":152},[14361],{"type":31,"value":14362},"int_exp ",{"type":21,"tag":139,"props":14364,"children":14365},{"style":146},[14366],{"type":31,"value":211},{"type":21,"tag":139,"props":14368,"children":14369},{"style":152},[14370],{"type":31,"value":14371}," InterleavedRB(CXGate(), qubits, lengths, ",{"type":21,"tag":139,"props":14373,"children":14374},{"style":923},[14375],{"type":31,"value":14198},{"type":21,"tag":139,"props":14377,"children":14378},{"style":146},[14379],{"type":31,"value":211},{"type":21,"tag":139,"props":14381,"children":14382},{"style":152},[14383],{"type":31,"value":14207},{"type":21,"tag":139,"props":14385,"children":14386},{"style":923},[14387],{"type":31,"value":14212},{"type":21,"tag":139,"props":14389,"children":14390},{"style":146},[14391],{"type":31,"value":211},{"type":21,"tag":139,"props":14393,"children":14394},{"style":214},[14395],{"type":31,"value":14221},{"type":21,"tag":139,"props":14397,"children":14398},{"style":152},[14399],{"type":31,"value":270},{"type":21,"tag":139,"props":14401,"children":14402},{"class":141,"line":226},[14403,14408,14412],{"type":21,"tag":139,"props":14404,"children":14405},{"style":152},[14406],{"type":31,"value":14407},"int_exp_data ",{"type":21,"tag":139,"props":14409,"children":14410},{"style":146},[14411],{"type":31,"value":211},{"type":21,"tag":139,"props":14413,"children":14414},{"style":152},[14415],{"type":31,"value":14416}," int_exp.run(backend).block_for_results()\n",{"type":21,"tag":139,"props":14418,"children":14419},{"class":141,"line":234},[14420],{"type":21,"tag":139,"props":14421,"children":14422},{"emptyLinePlaceholder":194},[14423],{"type":31,"value":197},{"type":21,"tag":139,"props":14425,"children":14426},{"class":141,"line":273},[14427,14432,14436,14440,14444],{"type":21,"tag":139,"props":14428,"children":14429},{"style":152},[14430],{"type":31,"value":14431},"int_exp_data.analysis_results(",{"type":21,"tag":139,"props":14433,"children":14434},{"style":923},[14435],{"type":31,"value":11009},{"type":21,"tag":139,"props":14437,"children":14438},{"style":146},[14439],{"type":31,"value":211},{"type":21,"tag":139,"props":14441,"children":14442},{"style":214},[14443],{"type":31,"value":8664},{"type":21,"tag":139,"props":14445,"children":14446},{"style":152},[14447],{"type":31,"value":270},{"type":21,"tag":22,"props":14449,"children":14450},{},[14451],{"type":31,"value":14452},"The interleaved variant runs two RB experiments in parallel, one standard, one with the target gate inserted between every random Clifford, and fits the ratio between their decay rates to isolate that specific gate's error. This is the number worth checking when a specific two-qubit gate is suspected of dragging down a circuit's fidelity, rather than the device's blended average.",{"type":21,"tag":41,"props":14454,"children":14456},{"id":14455},"setting-a-realistic-error-scale-for-testing",[14457],{"type":31,"value":14458},"Setting a realistic error scale for testing",{"type":21,"tag":22,"props":14460,"children":14461},{},[14462,14464,14469],{"type":31,"value":14463},"If you're testing the workflow on a simulator rather than real hardware, an ideal ",{"type":21,"tag":104,"props":14465,"children":14467},{"className":14466},[],[14468],{"type":31,"value":10712},{"type":31,"value":14470}," shows no decay at all, equivalent problem as with T1\u002FT2 measurement. Add a depolarizing noise model so there's something to fit:",{"type":21,"tag":129,"props":14472,"children":14474},{"className":131,"code":14473,"language":133,"meta":7,"style":7},"noise_model = NoiseModel()\nnoise_model.add_all_qubit_quantum_error(depolarizing_error(0.01, 1), [\"sx\", \"x\"])\nnoise_model.add_all_qubit_quantum_error(depolarizing_error(0.03, 2), [\"cx\"])\n\nbackend = AerSimulator(noise_model=noise_model)\n",[14475],{"type":21,"tag":104,"props":14476,"children":14477},{"__ignoreMap":7},[14478,14495,14539,14572,14579],{"type":21,"tag":139,"props":14479,"children":14480},{"class":141,"line":142},[14481,14486,14490],{"type":21,"tag":139,"props":14482,"children":14483},{"style":152},[14484],{"type":31,"value":14485},"noise_model ",{"type":21,"tag":139,"props":14487,"children":14488},{"style":146},[14489],{"type":31,"value":211},{"type":21,"tag":139,"props":14491,"children":14492},{"style":152},[14493],{"type":31,"value":14494}," NoiseModel()\n",{"type":21,"tag":139,"props":14496,"children":14497},{"class":141,"line":168},[14498,14503,14508,14512,14516,14521,14526,14530,14535],{"type":21,"tag":139,"props":14499,"children":14500},{"style":152},[14501],{"type":31,"value":14502},"noise_model.add_all_qubit_quantum_error(depolarizing_error(",{"type":21,"tag":139,"props":14504,"children":14505},{"style":214},[14506],{"type":31,"value":14507},"0.01",{"type":21,"tag":139,"props":14509,"children":14510},{"style":152},[14511],{"type":31,"value":259},{"type":21,"tag":139,"props":14513,"children":14514},{"style":214},[14515],{"type":31,"value":328},{"type":21,"tag":139,"props":14517,"children":14518},{"style":152},[14519],{"type":31,"value":14520},"), [",{"type":21,"tag":139,"props":14522,"children":14523},{"style":262},[14524],{"type":31,"value":14525},"\"sx\"",{"type":21,"tag":139,"props":14527,"children":14528},{"style":152},[14529],{"type":31,"value":259},{"type":21,"tag":139,"props":14531,"children":14532},{"style":262},[14533],{"type":31,"value":14534},"\"x\"",{"type":21,"tag":139,"props":14536,"children":14537},{"style":152},[14538],{"type":31,"value":599},{"type":21,"tag":139,"props":14540,"children":14541},{"class":141,"line":190},[14542,14546,14551,14555,14559,14563,14568],{"type":21,"tag":139,"props":14543,"children":14544},{"style":152},[14545],{"type":31,"value":14502},{"type":21,"tag":139,"props":14547,"children":14548},{"style":214},[14549],{"type":31,"value":14550},"0.03",{"type":21,"tag":139,"props":14552,"children":14553},{"style":152},[14554],{"type":31,"value":259},{"type":21,"tag":139,"props":14556,"children":14557},{"style":214},[14558],{"type":31,"value":293},{"type":21,"tag":139,"props":14560,"children":14561},{"style":152},[14562],{"type":31,"value":14520},{"type":21,"tag":139,"props":14564,"children":14565},{"style":262},[14566],{"type":31,"value":14567},"\"cx\"",{"type":21,"tag":139,"props":14569,"children":14570},{"style":152},[14571],{"type":31,"value":599},{"type":21,"tag":139,"props":14573,"children":14574},{"class":141,"line":200},[14575],{"type":21,"tag":139,"props":14576,"children":14577},{"emptyLinePlaceholder":194},[14578],{"type":31,"value":197},{"type":21,"tag":139,"props":14580,"children":14581},{"class":141,"line":226},[14582,14586,14590,14595,14600,14604],{"type":21,"tag":139,"props":14583,"children":14584},{"style":152},[14585],{"type":31,"value":6443},{"type":21,"tag":139,"props":14587,"children":14588},{"style":146},[14589],{"type":31,"value":211},{"type":21,"tag":139,"props":14591,"children":14592},{"style":152},[14593],{"type":31,"value":14594}," AerSimulator(",{"type":21,"tag":139,"props":14596,"children":14597},{"style":923},[14598],{"type":31,"value":14599},"noise_model",{"type":21,"tag":139,"props":14601,"children":14602},{"style":146},[14603],{"type":31,"value":211},{"type":21,"tag":139,"props":14605,"children":14606},{"style":152},[14607],{"type":31,"value":14608},"noise_model)\n",{"type":21,"tag":41,"props":14610,"children":14612},{"id":14611},"reading-the-gate_error_ratio-option",[14613],{"type":31,"value":14614},"Reading the gate_error_ratio option",{"type":21,"tag":22,"props":14616,"children":14617},{},[14618,14620,14626],{"type":31,"value":14619},"The analysis converts EPC into per-gate EPG using an assumed ratio of how much each gate type contributes to total error, configurable through ",{"type":21,"tag":104,"props":14621,"children":14623},{"className":14622},[],[14624],{"type":31,"value":14625},"gate_error_ratio",{"type":31,"value":14627},":",{"type":21,"tag":129,"props":14629,"children":14631},{"className":131,"code":14630,"language":133,"meta":7,"style":7},"print(exp.analysis.options.gate_error_ratio)\n",[14632],{"type":21,"tag":104,"props":14633,"children":14634},{"__ignoreMap":7},[14635],{"type":21,"tag":139,"props":14636,"children":14637},{"class":141,"line":142},[14638,14642],{"type":21,"tag":139,"props":14639,"children":14640},{"style":214},[14641],{"type":31,"value":948},{"type":21,"tag":139,"props":14643,"children":14644},{"style":152},[14645],{"type":31,"value":14646},"(exp.analysis.options.gate_error_ratio)\n",{"type":21,"tag":22,"props":14648,"children":14649},{},[14650],{"type":31,"value":14651},"Leaving this at its default assumes a standard mix of gate types. If your device's gate set differs meaningfully from that default assumption, the reported EPG splits are only as good as that ratio, while the overall EPC number remains solid regardless, since it comes directly from the fitted decay rate rather than from the ratio assumption.",{"type":21,"tag":41,"props":14653,"children":14655},{"id":14654},"rb-versus-quantum-volume-varied-questions",[14656],{"type":31,"value":14657},"RB versus Quantum Volume: varied questions",{"type":21,"tag":22,"props":14659,"children":14660},{},[14661],{"type":31,"value":14662},"Quantum Volume answers \"what's the largest circuit this device handles,\" folding qubit count, connectivity, and fidelity together into one pass\u002Ffail number. RB answers \"how good is a specific gate, on average, independent of circuit structure.\" Neither replaces the other: a device holds excellent RB numbers on every individual gate and a mediocre Quantum Volume if its connectivity forces expensive routing, or the reverse, decent connectivity masking a genuinely noisy two-qubit gate that only shows up once RB isolates it.",{"type":21,"tag":41,"props":14664,"children":14665},{"id":5900},[14666],{"type":31,"value":5903},{"type":21,"tag":1112,"props":14668,"children":14669},{},[14670,14682,14687],{"type":21,"tag":72,"props":14671,"children":14672},{},[14673,14674,14680],{"type":31,"value":11768},{"type":21,"tag":104,"props":14675,"children":14677},{"className":14676},[],[14678],{"type":31,"value":14679},"InterleavedRB",{"type":31,"value":14681}," on both a single-qubit gate and a two-qubit gate on the same simulated device, and compare how much higher the two-qubit EPG comes out, consistent with two-qubit gates almost always being the dominant error source on real hardware.",{"type":21,"tag":72,"props":14683,"children":14684},{},[14685],{"type":31,"value":14686},"Sweep the depolarizing error rate in the noise model and confirm the fitted EPC tracks it linearly, a useful sanity check that the fit itself is trustworthy before running against real hardware.",{"type":21,"tag":72,"props":14688,"children":14689},{},[14690,14692,14697],{"type":31,"value":14691},"Pair this with the ",{"type":21,"tag":26,"props":14693,"children":14694},{"href":13890},[14695],{"type":31,"value":14696},"Quantum Volume tutorial",{"type":31,"value":14698}," to see both benchmarks on the same simulated device and compare what each one reports.",{"type":21,"tag":1168,"props":14700,"children":14701},{},[14702],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":14704},[14705,14706,14707,14708,14709,14710,14711],{"id":13926,"depth":168,"text":13929},{"id":13937,"depth":168,"text":13940},{"id":14292,"depth":168,"text":14295},{"id":14455,"depth":168,"text":14458},{"id":14611,"depth":168,"text":14614},{"id":14654,"depth":168,"text":14657},{"id":5900,"depth":168,"text":5903},"content:blog:randomized-benchmarking-qiskit-experiments.md","blog\u002Frandomized-benchmarking-qiskit-experiments.md","blog\u002Frandomized-benchmarking-qiskit-experiments",{"_path":14716,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":14717,"description":14718,"date":4471,"author":11,"tags":14719,"readingTime":234,"body":14721,"_type":1187,"_id":14791,"_source":1189,"_file":14792,"_stem":14793,"_extension":1192},"\u002Fblog\u002Friverlane-unitary-foundation-deltakit-community-fund","Riverlane Is Paying Outside Developers to Build Its Error Correction Toolkit","Riverlane and the Unitary Foundation launched the Deltakit Community Fund, paying external contributors $2,000 to $4,000 per feature to build out Deltakit, Riverlane's open-source quantum error correction toolkit. Applications for the first cohort open August 17, 2026.",[3396,14720],"Error Correction",{"type":18,"children":14722,"toc":14785},[14723,14735,14741,14754,14760,14765,14771,14776,14780],{"type":21,"tag":22,"props":14724,"children":14725},{},[14726,14728,14733],{"type":31,"value":14727},"Riverlane and the Unitary Foundation launched the Deltakit Community Fund on July 28, 2026, a program that pays external developers $2,000 to $4,000 for building certain features into Deltakit, Riverlane's open-source ",{"type":21,"tag":26,"props":14729,"children":14730},{"href":4082},[14731],{"type":31,"value":14732},"quantum error correction",{"type":31,"value":14734}," toolkit. The fund runs on a rolling, quarterly basis, and the advisory committee starts reviewing applications for the first cohort on August 17, 2026. Two developer projects are already active as a pilot heading into the second half of 2026.",{"type":21,"tag":41,"props":14736,"children":14738},{"id":14737},"what-deltakit-is-and-who-is-behind-the-fund",[14739],{"type":31,"value":14740},"What Deltakit is and who is behind the fund",{"type":21,"tag":22,"props":14742,"children":14743},{},[14744,14746,14752],{"type":31,"value":14745},"Deltakit is Riverlane's toolkit for building production-grade error correction features, covering work like error budgeting bounds, threshold computation, and ZX graph benchmark libraries, the kind of infrastructure that sits underneath a working ",{"type":21,"tag":26,"props":14747,"children":14749},{"href":14748},"\u002Fblog\u002Fquantum-error-decoding-bottleneck",[14750],{"type":31,"value":14751},"decoder",{"type":31,"value":14753}," rather than a user-facing product. Riverlane built its reputation on real-time decoding hardware, and Deltakit is the open-source software layer around that work. The Unitary Foundation, a nonprofit focused on growing the open-source quantum ecosystem, runs the fund's application and merit review process, while Riverlane sets the technical criteria and reviews completed milestones. That split, Riverlane defining what needs building and the Unitary Foundation running the community process, is a specific division of labor rather than Riverlane simply outsourcing engineering work.",{"type":21,"tag":41,"props":14755,"children":14757},{"id":14756},"why-pay-for-open-source-contributions-in-error-correction-specifically",[14758],{"type":31,"value":14759},"Why pay for open-source contributions in error correction specifically",{"type":21,"tag":22,"props":14761,"children":14762},{},[14763],{"type":31,"value":14764},"Error correction is the part of quantum computing furthest from being a solved problem and closest to being where most near-term engineering effort goes. A functioning fault-tolerant machine needs decoders that keep pace with the hardware, and building, testing, and benchmarking that software is a large amount of unglamorous work that a single company's engineering team has limited bandwidth to cover alone. Paying $2,000 to $4,000 per feature is a modest sum next to a full-time engineering salary, but it targets small and medium-scoped pieces of work rather than open-ended research, the kind of task an outside contributor with the right specialization finishes without months of onboarding into Riverlane's internal codebase.",{"type":21,"tag":41,"props":14766,"children":14768},{"id":14767},"a-funding-model-distinct-from-a-grant-or-an-acquisition",[14769],{"type":31,"value":14770},"A funding model distinct from a grant or an acquisition",{"type":21,"tag":22,"props":14772,"children":14773},{},[14774],{"type":31,"value":14775},"This isn't a research grant with a multi-year timeline, and it isn't Riverlane hiring the contributors as employees. It's closer to a bounty program scoped around a single open-source repository, structured with milestone review rather than a lump payment on application. That model has precedent in open-source software generally, but it is a newer approach inside quantum computing specifically, where most cross-organization collaboration this site covers takes the shape of research partnerships or hardware access agreements, not paid community contributions to shared infrastructure.",{"type":21,"tag":41,"props":14777,"children":14778},{"id":3461},[14779],{"type":31,"value":3464},{"type":21,"tag":22,"props":14781,"children":14782},{},[14783],{"type":31,"value":14784},"The real test is whether the pilot's two active projects ship usable features into Deltakit, and whether the August 17 cohort review produces contributors outside Riverlane's existing network. A fund like this succeeds if it grows the pool of people who understand quantum error correction software well enough to contribute independently. It fails quietly if the same small group of already-connected developers ends up claiming most of the awards.",{"title":7,"searchDepth":168,"depth":168,"links":14786},[14787,14788,14789,14790],{"id":14737,"depth":168,"text":14740},{"id":14756,"depth":168,"text":14759},{"id":14767,"depth":168,"text":14770},{"id":3461,"depth":168,"text":3464},"content:blog:riverlane-unitary-foundation-deltakit-community-fund.md","blog\u002Friverlane-unitary-foundation-deltakit-community-fund.md","blog\u002Friverlane-unitary-foundation-deltakit-community-fund",{"_path":14795,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":14796,"description":14797,"date":4471,"author":11,"tags":14798,"readingTime":234,"body":14799,"_type":1187,"_id":15481,"_source":1189,"_file":15482,"_stem":15483,"_extension":1192},"\u002Fblog\u002Fstate-tomography-qiskit-experiments","State Tomography with Qiskit Experiments: Reconstructing What You Built","How to use StateTomography in Qiskit Experiments 0.14 to reconstruct a qubit's density matrix from measurements and compute its fidelity against the state you intended to prepare.",[14,13,5973],{"type":18,"children":14800,"toc":15472},[14801,14833,14854,14860,14873,14879,15155,15167,15173,15242,15261,15267,15272,15375,15386,15392,15404,15410,15426,15430,15468],{"type":21,"tag":22,"props":14802,"children":14803},{},[14804,14806,14810,14811,14816,14818,14823,14825,14831],{"type":31,"value":14805},"Benchmarks like ",{"type":21,"tag":26,"props":14807,"children":14808},{"href":13890},[14809],{"type":31,"value":13893},{"type":31,"value":3615},{"type":21,"tag":26,"props":14812,"children":14813},{"href":11803},[14814],{"type":31,"value":14815},"randomized benchmarking",{"type":31,"value":14817}," tell you how good a device's gates are in general. State tomography answers a narrower, circuit-specific question: for this particular circuit, what state did you prepare, and how close is it to what you intended. ",{"type":21,"tag":26,"props":14819,"children":14821},{"href":10666,"rel":14820},[7123],[14822],{"type":31,"value":10670},{"type":31,"value":14824}," (version 0.14) implements this through the ",{"type":21,"tag":104,"props":14826,"children":14828},{"className":14827},[],[14829],{"type":31,"value":14830},"StateTomography",{"type":31,"value":14832}," class.",{"type":21,"tag":129,"props":14834,"children":14835},{"className":4499,"code":10675,"language":4498,"meta":7,"style":7},[14836],{"type":21,"tag":104,"props":14837,"children":14838},{"__ignoreMap":7},[14839],{"type":21,"tag":139,"props":14840,"children":14841},{"class":141,"line":142},[14842,14846,14850],{"type":21,"tag":139,"props":14843,"children":14844},{"style":4509},[14845],{"type":31,"value":4512},{"type":21,"tag":139,"props":14847,"children":14848},{"style":262},[14849],{"type":31,"value":4517},{"type":21,"tag":139,"props":14851,"children":14852},{"style":262},[14853],{"type":31,"value":10695},{"type":21,"tag":41,"props":14855,"children":14857},{"id":14856},"why-you-cant-measure-the-state-directly",[14858],{"type":31,"value":14859},"Why you can't measure the state directly",{"type":21,"tag":22,"props":14861,"children":14862},{},[14863,14865,14871],{"type":31,"value":14864},"A single measurement collapses a qubit to a classical outcome and destroys the superposition you were trying to characterize. ",{"type":21,"tag":26,"props":14866,"children":14868},{"href":14867},"\u002Fglossary\u002Fmeasurement",[14869],{"type":31,"value":14870},"Measurement",{"type":31,"value":14872}," in the computational basis tells you populations, not phase, the equivalent limitation that makes distinguishing T1 from T2 nontrivial. Tomography works around this by preparing the equivalent state repeatedly and measuring it in different bases (X, Y, and Z), then reconstructing the full density matrix from the combined statistics rather than from any single measurement.",{"type":21,"tag":41,"props":14874,"children":14876},{"id":14875},"running-statetomography-on-a-ghz-state",[14877],{"type":31,"value":14878},"Running StateTomography on a GHZ state",{"type":21,"tag":129,"props":14880,"children":14882},{"className":131,"code":14881,"language":133,"meta":7,"style":7},"import qiskit\nfrom qiskit_experiments.library import StateTomography\nfrom qiskit_aer import AerSimulator\nfrom qiskit_ibm_runtime.fake_provider import FakePerth\n\nbackend = AerSimulator.from_backend(FakePerth())\n\nnq = 2\nqc_ghz = qiskit.QuantumCircuit(nq)\nqc_ghz.h(0)\nqc_ghz.s(0)\nfor i in range(1, nq):\n    qc_ghz.cx(0, i)\n\nexp = StateTomography(qc_ghz)\nexp_data = exp.run(backend, seed_simulation=100).block_for_results()\n",[14883],{"type":21,"tag":104,"props":14884,"children":14885},{"__ignoreMap":7},[14886,14898,14918,14937,14956,14963,14978,14985,15001,15018,15034,15050,15082,15099,15106,15122],{"type":21,"tag":139,"props":14887,"children":14888},{"class":141,"line":142},[14889,14893],{"type":21,"tag":139,"props":14890,"children":14891},{"style":146},[14892],{"type":31,"value":160},{"type":21,"tag":139,"props":14894,"children":14895},{"style":152},[14896],{"type":31,"value":14897}," qiskit\n",{"type":21,"tag":139,"props":14899,"children":14900},{"class":141,"line":168},[14901,14905,14909,14913],{"type":21,"tag":139,"props":14902,"children":14903},{"style":146},[14904],{"type":31,"value":149},{"type":21,"tag":139,"props":14906,"children":14907},{"style":152},[14908],{"type":31,"value":10841},{"type":21,"tag":139,"props":14910,"children":14911},{"style":146},[14912],{"type":31,"value":160},{"type":21,"tag":139,"props":14914,"children":14915},{"style":152},[14916],{"type":31,"value":14917}," StateTomography\n",{"type":21,"tag":139,"props":14919,"children":14920},{"class":141,"line":190},[14921,14925,14929,14933],{"type":21,"tag":139,"props":14922,"children":14923},{"style":146},[14924],{"type":31,"value":149},{"type":21,"tag":139,"props":14926,"children":14927},{"style":152},[14928],{"type":31,"value":178},{"type":21,"tag":139,"props":14930,"children":14931},{"style":146},[14932],{"type":31,"value":160},{"type":21,"tag":139,"props":14934,"children":14935},{"style":152},[14936],{"type":31,"value":187},{"type":21,"tag":139,"props":14938,"children":14939},{"class":141,"line":200},[14940,14944,14948,14952],{"type":21,"tag":139,"props":14941,"children":14942},{"style":146},[14943],{"type":31,"value":149},{"type":21,"tag":139,"props":14945,"children":14946},{"style":152},[14947],{"type":31,"value":10741},{"type":21,"tag":139,"props":14949,"children":14950},{"style":146},[14951],{"type":31,"value":160},{"type":21,"tag":139,"props":14953,"children":14954},{"style":152},[14955],{"type":31,"value":10750},{"type":21,"tag":139,"props":14957,"children":14958},{"class":141,"line":226},[14959],{"type":21,"tag":139,"props":14960,"children":14961},{"emptyLinePlaceholder":194},[14962],{"type":31,"value":197},{"type":21,"tag":139,"props":14964,"children":14965},{"class":141,"line":234},[14966,14970,14974],{"type":21,"tag":139,"props":14967,"children":14968},{"style":152},[14969],{"type":31,"value":6443},{"type":21,"tag":139,"props":14971,"children":14972},{"style":146},[14973],{"type":31,"value":211},{"type":21,"tag":139,"props":14975,"children":14976},{"style":152},[14977],{"type":31,"value":10792},{"type":21,"tag":139,"props":14979,"children":14980},{"class":141,"line":273},[14981],{"type":21,"tag":139,"props":14982,"children":14983},{"emptyLinePlaceholder":194},[14984],{"type":31,"value":197},{"type":21,"tag":139,"props":14986,"children":14987},{"class":141,"line":309},[14988,14993,14997],{"type":21,"tag":139,"props":14989,"children":14990},{"style":152},[14991],{"type":31,"value":14992},"nq ",{"type":21,"tag":139,"props":14994,"children":14995},{"style":146},[14996],{"type":31,"value":211},{"type":21,"tag":139,"props":14998,"children":14999},{"style":214},[15000],{"type":31,"value":1604},{"type":21,"tag":139,"props":15002,"children":15003},{"class":141,"line":16},[15004,15009,15013],{"type":21,"tag":139,"props":15005,"children":15006},{"style":152},[15007],{"type":31,"value":15008},"qc_ghz ",{"type":21,"tag":139,"props":15010,"children":15011},{"style":146},[15012],{"type":31,"value":211},{"type":21,"tag":139,"props":15014,"children":15015},{"style":152},[15016],{"type":31,"value":15017}," qiskit.QuantumCircuit(nq)\n",{"type":21,"tag":139,"props":15019,"children":15020},{"class":141,"line":361},[15021,15026,15030],{"type":21,"tag":139,"props":15022,"children":15023},{"style":152},[15024],{"type":31,"value":15025},"qc_ghz.h(",{"type":21,"tag":139,"props":15027,"children":15028},{"style":214},[15029],{"type":31,"value":407},{"type":21,"tag":139,"props":15031,"children":15032},{"style":152},[15033],{"type":31,"value":270},{"type":21,"tag":139,"props":15035,"children":15036},{"class":141,"line":369},[15037,15042,15046],{"type":21,"tag":139,"props":15038,"children":15039},{"style":152},[15040],{"type":31,"value":15041},"qc_ghz.s(",{"type":21,"tag":139,"props":15043,"children":15044},{"style":214},[15045],{"type":31,"value":407},{"type":21,"tag":139,"props":15047,"children":15048},{"style":152},[15049],{"type":31,"value":270},{"type":21,"tag":139,"props":15051,"children":15052},{"class":141,"line":378},[15053,15057,15061,15065,15069,15073,15077],{"type":21,"tag":139,"props":15054,"children":15055},{"style":146},[15056],{"type":31,"value":1486},{"type":21,"tag":139,"props":15058,"children":15059},{"style":152},[15060],{"type":31,"value":7408},{"type":21,"tag":139,"props":15062,"children":15063},{"style":146},[15064],{"type":31,"value":1496},{"type":21,"tag":139,"props":15066,"children":15067},{"style":214},[15068],{"type":31,"value":7417},{"type":21,"tag":139,"props":15070,"children":15071},{"style":152},[15072],{"type":31,"value":953},{"type":21,"tag":139,"props":15074,"children":15075},{"style":214},[15076],{"type":31,"value":328},{"type":21,"tag":139,"props":15078,"children":15079},{"style":152},[15080],{"type":31,"value":15081},", nq):\n",{"type":21,"tag":139,"props":15083,"children":15084},{"class":141,"line":387},[15085,15090,15094],{"type":21,"tag":139,"props":15086,"children":15087},{"style":152},[15088],{"type":31,"value":15089},"    qc_ghz.cx(",{"type":21,"tag":139,"props":15091,"children":15092},{"style":214},[15093],{"type":31,"value":407},{"type":21,"tag":139,"props":15095,"children":15096},{"style":152},[15097],{"type":31,"value":15098},", i)\n",{"type":21,"tag":139,"props":15100,"children":15101},{"class":141,"line":396},[15102],{"type":21,"tag":139,"props":15103,"children":15104},{"emptyLinePlaceholder":194},[15105],{"type":31,"value":197},{"type":21,"tag":139,"props":15107,"children":15108},{"class":141,"line":414},[15109,15113,15117],{"type":21,"tag":139,"props":15110,"children":15111},{"style":152},[15112],{"type":31,"value":10913},{"type":21,"tag":139,"props":15114,"children":15115},{"style":146},[15116],{"type":31,"value":211},{"type":21,"tag":139,"props":15118,"children":15119},{"style":152},[15120],{"type":31,"value":15121}," StateTomography(qc_ghz)\n",{"type":21,"tag":139,"props":15123,"children":15124},{"class":141,"line":12589},[15125,15129,15133,15138,15143,15147,15151],{"type":21,"tag":139,"props":15126,"children":15127},{"style":152},[15128],{"type":31,"value":10973},{"type":21,"tag":139,"props":15130,"children":15131},{"style":146},[15132],{"type":31,"value":211},{"type":21,"tag":139,"props":15134,"children":15135},{"style":152},[15136],{"type":31,"value":15137}," exp.run(backend, ",{"type":21,"tag":139,"props":15139,"children":15140},{"style":923},[15141],{"type":31,"value":15142},"seed_simulation",{"type":21,"tag":139,"props":15144,"children":15145},{"style":146},[15146],{"type":31,"value":211},{"type":21,"tag":139,"props":15148,"children":15149},{"style":214},[15150],{"type":31,"value":4905},{"type":21,"tag":139,"props":15152,"children":15153},{"style":152},[15154],{"type":31,"value":11271},{"type":21,"tag":22,"props":15156,"children":15157},{},[15158,15160,15165],{"type":31,"value":15159},"You pass the circuit you want characterized directly to ",{"type":21,"tag":104,"props":15161,"children":15163},{"className":15162},[],[15164],{"type":31,"value":14830},{"type":31,"value":15166},". The experiment handles generating the basis-rotation circuits and running all of them for you, so this one call runs several circuit variants under the hood, not only the one you passed in.",{"type":21,"tag":41,"props":15168,"children":15170},{"id":15169},"reading-the-fitted-density-matrix",[15171],{"type":31,"value":15172},"Reading the fitted density matrix",{"type":21,"tag":129,"props":15174,"children":15176},{"className":131,"code":15175,"language":133,"meta":7,"style":7},"state_result = exp_data.analysis_results(\"state\", dataframe=True).iloc[0]\nprint(state_result.value)\n",[15177],{"type":21,"tag":104,"props":15178,"children":15179},{"__ignoreMap":7},[15180,15230],{"type":21,"tag":139,"props":15181,"children":15182},{"class":141,"line":142},[15183,15188,15192,15196,15201,15205,15209,15213,15217,15222,15226],{"type":21,"tag":139,"props":15184,"children":15185},{"style":152},[15186],{"type":31,"value":15187},"state_result ",{"type":21,"tag":139,"props":15189,"children":15190},{"style":146},[15191],{"type":31,"value":211},{"type":21,"tag":139,"props":15193,"children":15194},{"style":152},[15195],{"type":31,"value":11680},{"type":21,"tag":139,"props":15197,"children":15198},{"style":262},[15199],{"type":31,"value":15200},"\"state\"",{"type":21,"tag":139,"props":15202,"children":15203},{"style":152},[15204],{"type":31,"value":259},{"type":21,"tag":139,"props":15206,"children":15207},{"style":923},[15208],{"type":31,"value":11009},{"type":21,"tag":139,"props":15210,"children":15211},{"style":146},[15212],{"type":31,"value":211},{"type":21,"tag":139,"props":15214,"children":15215},{"style":214},[15216],{"type":31,"value":8664},{"type":21,"tag":139,"props":15218,"children":15219},{"style":152},[15220],{"type":31,"value":15221},").iloc[",{"type":21,"tag":139,"props":15223,"children":15224},{"style":214},[15225],{"type":31,"value":407},{"type":21,"tag":139,"props":15227,"children":15228},{"style":152},[15229],{"type":31,"value":14170},{"type":21,"tag":139,"props":15231,"children":15232},{"class":141,"line":168},[15233,15237],{"type":21,"tag":139,"props":15234,"children":15235},{"style":214},[15236],{"type":31,"value":948},{"type":21,"tag":139,"props":15238,"children":15239},{"style":152},[15240],{"type":31,"value":15241},"(state_result.value)\n",{"type":21,"tag":22,"props":15243,"children":15244},{},[15245,15251,15253,15259],{"type":21,"tag":104,"props":15246,"children":15248},{"className":15247},[],[15249],{"type":31,"value":15250},"state_result.value",{"type":31,"value":15252}," is the fitted density matrix, a ",{"type":21,"tag":104,"props":15254,"children":15256},{"className":15255},[],[15257],{"type":31,"value":15258},"DensityMatrix",{"type":31,"value":15260}," object representing the best statistical reconstruction of what the circuit produced, noise and all, not the ideal target state.",{"type":21,"tag":41,"props":15262,"children":15264},{"id":15263},"reading-the-fidelity-number",[15265],{"type":31,"value":15266},"Reading the fidelity number",{"type":21,"tag":22,"props":15268,"children":15269},{},[15270],{"type":31,"value":15271},"The result you usually care about most is a single comparable number, not the full matrix:",{"type":21,"tag":129,"props":15273,"children":15275},{"className":131,"code":15274,"language":133,"meta":7,"style":7},"fid_result = exp_data.analysis_results(\"state_fidelity\", dataframe=True).iloc[0]\nprint(f\"State fidelity = {fid_result.value:.5f}\")\n",[15276],{"type":21,"tag":104,"props":15277,"children":15278},{"__ignoreMap":7},[15279,15328],{"type":21,"tag":139,"props":15280,"children":15281},{"class":141,"line":142},[15282,15287,15291,15295,15300,15304,15308,15312,15316,15320,15324],{"type":21,"tag":139,"props":15283,"children":15284},{"style":152},[15285],{"type":31,"value":15286},"fid_result ",{"type":21,"tag":139,"props":15288,"children":15289},{"style":146},[15290],{"type":31,"value":211},{"type":21,"tag":139,"props":15292,"children":15293},{"style":152},[15294],{"type":31,"value":11680},{"type":21,"tag":139,"props":15296,"children":15297},{"style":262},[15298],{"type":31,"value":15299},"\"state_fidelity\"",{"type":21,"tag":139,"props":15301,"children":15302},{"style":152},[15303],{"type":31,"value":259},{"type":21,"tag":139,"props":15305,"children":15306},{"style":923},[15307],{"type":31,"value":11009},{"type":21,"tag":139,"props":15309,"children":15310},{"style":146},[15311],{"type":31,"value":211},{"type":21,"tag":139,"props":15313,"children":15314},{"style":214},[15315],{"type":31,"value":8664},{"type":21,"tag":139,"props":15317,"children":15318},{"style":152},[15319],{"type":31,"value":15221},{"type":21,"tag":139,"props":15321,"children":15322},{"style":214},[15323],{"type":31,"value":407},{"type":21,"tag":139,"props":15325,"children":15326},{"style":152},[15327],{"type":31,"value":14170},{"type":21,"tag":139,"props":15329,"children":15330},{"class":141,"line":168},[15331,15335,15339,15343,15348,15352,15357,15362,15366,15371],{"type":21,"tag":139,"props":15332,"children":15333},{"style":214},[15334],{"type":31,"value":948},{"type":21,"tag":139,"props":15336,"children":15337},{"style":152},[15338],{"type":31,"value":953},{"type":21,"tag":139,"props":15340,"children":15341},{"style":146},[15342],{"type":31,"value":7524},{"type":21,"tag":139,"props":15344,"children":15345},{"style":262},[15346],{"type":31,"value":15347},"\"State fidelity = ",{"type":21,"tag":139,"props":15349,"children":15350},{"style":214},[15351],{"type":31,"value":7534},{"type":21,"tag":139,"props":15353,"children":15354},{"style":152},[15355],{"type":31,"value":15356},"fid_result.value",{"type":21,"tag":139,"props":15358,"children":15359},{"style":146},[15360],{"type":31,"value":15361},":.5f",{"type":21,"tag":139,"props":15363,"children":15364},{"style":214},[15365],{"type":31,"value":7543},{"type":21,"tag":139,"props":15367,"children":15368},{"style":262},[15369],{"type":31,"value":15370},"\"",{"type":21,"tag":139,"props":15372,"children":15373},{"style":152},[15374],{"type":31,"value":270},{"type":21,"tag":22,"props":15376,"children":15377},{},[15378,15384],{"type":21,"tag":104,"props":15379,"children":15381},{"className":15380},[],[15382],{"type":31,"value":15383},"state_fidelity",{"type":31,"value":15385}," compares the fitted density matrix against the ideal state the input circuit targets, and it's this number, not the matrix itself, that answers \"how close did the circuit come.\" A fidelity of 1.0 means the reconstructed state matches the ideal target exactly. Real hardware GHZ states typically land well below that once qubit count grows past two or three, since every additional entangling gate adds its own error contribution.",{"type":21,"tag":41,"props":15387,"children":15389},{"id":15388},"why-the-reconstructed-state-isnt-automatically-physical",[15390],{"type":31,"value":15391},"Why the reconstructed state isn't automatically physical",{"type":21,"tag":22,"props":15393,"children":15394},{},[15395,15397,15402],{"type":31,"value":15396},"Statistical noise in the measurement data means a naive reconstruction sometimes produces a matrix that isn't a valid quantum state (negative eigenvalues, for instance), an artifact of finite sampling rather than a claim about the actual physics. Qiskit Experiments' default fitter constrains the reconstruction to be a physically valid density matrix (positive semidefinite, trace one), which is why ",{"type":21,"tag":104,"props":15398,"children":15400},{"className":15399},[],[15401],{"type":31,"value":15250},{"type":31,"value":15403}," is always a legitimate quantum state even when the raw measurement counts, taken naively, wouldn't be.",{"type":21,"tag":41,"props":15405,"children":15407},{"id":15406},"when-tomography-is-and-isnt-the-right-tool",[15408],{"type":31,"value":15409},"When tomography is and isn't the right tool",{"type":21,"tag":22,"props":15411,"children":15412},{},[15413,15415,15419,15420,15424],{"type":31,"value":15414},"State tomography's cost grows fast: the number of measurement bases needed scales exponentially with qubit count, which is why it's practical for verifying a two- or three-qubit state and impractical for checking a fifty-qubit one. Reach for it when you need to confirm a specific small circuit is doing what you designed it to do, debugging a state-prep routine, verifying an entangled-state generator, checking a variational circuit's output at a fixed parameter setting. For characterizing a device's general gate quality rather than one circuit's output, ",{"type":21,"tag":26,"props":15416,"children":15417},{"href":11803},[15418],{"type":31,"value":14815},{"type":31,"value":7689},{"type":21,"tag":26,"props":15421,"children":15422},{"href":13890},[15423],{"type":31,"value":13893},{"type":31,"value":15425}," scale better and reply a more useful question for that purpose.",{"type":21,"tag":41,"props":15427,"children":15428},{"id":5900},[15429],{"type":31,"value":5903},{"type":21,"tag":1112,"props":15431,"children":15432},{},[15433,15444,15457],{"type":21,"tag":72,"props":15434,"children":15435},{},[15436,15437,15442],{"type":31,"value":11768},{"type":21,"tag":104,"props":15438,"children":15440},{"className":15439},[],[15441],{"type":31,"value":14830},{"type":31,"value":15443}," on a Bell state and a GHZ state on the same fake-backend simulator, and compare fidelities as you add qubits, watching the fidelity drop as more two-qubit gates enter the circuit.",{"type":21,"tag":72,"props":15445,"children":15446},{},[15447,15449,15455],{"type":31,"value":15448},"Swap in ",{"type":21,"tag":104,"props":15450,"children":15452},{"className":15451},[],[15453],{"type":31,"value":15454},"ProcessTomography",{"type":31,"value":15456}," from the same library to characterize a gate itself rather than a prepared state, useful for checking a custom or calibrated gate rather than a state-prep circuit.",{"type":21,"tag":72,"props":15458,"children":15459},{},[15460,15461,15466],{"type":31,"value":11791},{"type":21,"tag":26,"props":15462,"children":15464},{"href":11794,"rel":15463},[7123],[15465],{"type":31,"value":11798},{"type":31,"value":15467}," for the full verification-experiment library this and the RB post both draw from.",{"type":21,"tag":1168,"props":15469,"children":15470},{},[15471],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":15473},[15474,15475,15476,15477,15478,15479,15480],{"id":14856,"depth":168,"text":14859},{"id":14875,"depth":168,"text":14878},{"id":15169,"depth":168,"text":15172},{"id":15263,"depth":168,"text":15266},{"id":15388,"depth":168,"text":15391},{"id":15406,"depth":168,"text":15409},{"id":5900,"depth":168,"text":5903},"content:blog:state-tomography-qiskit-experiments.md","blog\u002Fstate-tomography-qiskit-experiments.md","blog\u002Fstate-tomography-qiskit-experiments",{"_path":10658,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":15485,"description":15486,"date":4471,"author":11,"tags":15487,"readingTime":273,"body":15488,"_type":1187,"_id":15628,"_source":1189,"_file":15629,"_stem":15630,"_extension":1192},"T1 vs T2: What Decays and What Dephases","T1 and T2 are both called qubit lifetimes, but they measure different physics. T1 is energy relaxation. T2 is the loss of phase information in a superposition, and it's easy to misread what that loss looks like.",[1207,15],{"type":18,"children":15489,"toc":15621},[15490,15503,15509,15514,15519,15525,15530,15535,15540,15545,15551,15556,15561,15566,15572,15577,15583,15602],{"type":21,"tag":22,"props":15491,"children":15492},{},[15493,15495,15501],{"type":31,"value":15494},"Every quantum hardware spec sheet lists ",{"type":21,"tag":26,"props":15496,"children":15498},{"href":15497},"\u002Fglossary\u002Ft1-t2-time",[15499],{"type":31,"value":15500},"T1 and T2",{"type":31,"value":15502}," following to each other, both in microseconds or milliseconds, both described loosely as \"how long the qubit lasts.\" That framing hides a real distinction. T1 and T2 measure varied physical processes, decay toward different things, and mixing them up leads to a specific, common misunderstanding about what T2 describes.",{"type":21,"tag":41,"props":15504,"children":15506},{"id":15505},"t1-energy-leaking-out",[15507],{"type":31,"value":15508},"T1: energy leaking out",{"type":21,"tag":22,"props":15510,"children":15511},{},[15512],{"type":31,"value":15513},"A qubit in the excited state |1⟩ sits at higher energy than the ground state |0⟩. Nothing holds it there forever. Given enough time, it releases that energy, usually as a stray photon into its environment, and relaxes to |0⟩. T1 is the exponential time constant of that decay: the excited-state population falls off as e^(-t\u002FT1). After one T1, roughly 37% of an ensemble prepared in |1⟩ remains there. This is energy relaxation, a qubit losing information to its surroundings the same way an excited atom eventually emits a photon and drops to its ground state.",{"type":21,"tag":22,"props":15515,"children":15516},{},[15517],{"type":31,"value":15518},"T1 is intuitive because it maps onto something familiar: a system loses energy and settles into equilibrium. The population of |1⟩ decays, |0⟩ population grows, and the process only runs one direction.",{"type":21,"tag":41,"props":15520,"children":15522},{"id":15521},"t2-not-a-flip-a-loss-of-phase",[15523],{"type":31,"value":15524},"T2: not a flip, a loss of phase",{"type":21,"tag":22,"props":15526,"children":15527},{},[15528],{"type":31,"value":15529},"T2 covers a different kind of information: not which state a qubit is in, but the phase relationship it holds while in a superposition. Take a qubit prepared as",{"type":21,"tag":22,"props":15531,"children":15532},{},[15533],{"type":31,"value":15534},"√p₀ |0⟩ + e^(iφ) √p₁ |1⟩",{"type":21,"tag":22,"props":15536,"children":15537},{},[15538],{"type":31,"value":15539},"The phase φ carries real information. It's what makes interference-based algorithms work, and it's what a Hadamard-then-Hadamard round trip depends on to cancel correctly. T2 is the timescale over which that phase becomes unrecoverable: the state doesn't stop being a superposition all at once, it gradually loses the definite relationship between its |0⟩ and |1⟩ components until φ is effectively random.",{"type":21,"tag":22,"props":15541,"children":15542},{},[15543],{"type":31,"value":15544},"In the language of density matrices, this shows up as the off-diagonal element of ρ, the coherence term, decaying: ρ₀₁(t) = ρ₀₁(0) · e^(-t\u002FT2). The diagonal elements, the populations p₀ and p₁, are what T1 governs. The off-diagonal element is what T2 governs. They're tracking varied entries in the same matrix.",{"type":21,"tag":41,"props":15546,"children":15548},{"id":15547},"the-misconception-worth-clearing-up",[15549],{"type":31,"value":15550},"The misconception worth clearing up",{"type":21,"tag":22,"props":15552,"children":15553},{},[15554],{"type":31,"value":15555},"It's tempting to picture T2 as the time it takes a qubit prepared in |+⟩ = (|0⟩ + |1⟩)\u002F√2 to flip into |−⟩ = (|0⟩ − |1⟩)\u002F√2, the orthogonal superposition state. That's not what happens, and the distinction matters.",{"type":21,"tag":22,"props":15557,"children":15558},{},[15559],{"type":31,"value":15560},"A flip from |+⟩ to |−⟩ would be a coherent, deterministic process, a rotation, the kind of thing a gate does on purpose. Dephasing isn't that. What happens instead is that the qubit's phase, averaged over repeated runs of the same preparation, becomes uncorrelated with the phase it started with. Run the experiment many times, prepare |+⟩ each time, and wait one T2: you no longer reliably measure |+⟩, but you also don't reliably measure |−⟩. Instead, the outcomes look like a 50\u002F50 classical mixture with no memory of which state you started in. T2 is an autocorrelation time, the point at which the final state stops being correlated with the initial one, not a countdown to a predictable opposite state.",{"type":21,"tag":22,"props":15562,"children":15563},{},[15564],{"type":31,"value":15565},"That distinction is why error correction is hard in the first place. If dephasing flipped |+⟩ to |−⟩ on a fixed clock, waiting out the right interval would correct for it, no error correction needed. Random loss of correlation doesn't offer that shortcut.",{"type":21,"tag":41,"props":15567,"children":15569},{"id":15568},"why-t2-is-capped-by-t1",[15570],{"type":31,"value":15571},"Why T2 is capped by T1",{"type":21,"tag":22,"props":15573,"children":15574},{},[15575],{"type":31,"value":15576},"Hardware specs consistently show T2 ≤ 2·T1, and that inequality isn't a coincidence. It's a consequence of what T1 relaxation does to phase along the way. Energy relaxation, the T1 process, also destroys phase information as a side effect: once a qubit has decayed from |1⟩ to |0⟩, any phase it was carrying relative to |1⟩ is gone too. So T2 has two contributions: relaxation-driven dephasing (bounded by 2T1) and everything else that scrambles phase without any energy loss at all, often written as pure dephasing, T_φ. The combined rate adds: 1\u002FT2 = 1\u002F(2T1) + 1\u002FT_φ. T2 never exceeds what T1 alone would allow, and in practice it's usually shorter, because pure dephasing sources, magnetic field noise, control electronics jitter, nearby two-level defects, are rarely zero.",{"type":21,"tag":41,"props":15578,"children":15580},{"id":15579},"why-the-distinction-matters-for-running-circuits",[15581],{"type":31,"value":15582},"Why the distinction matters for running circuits",{"type":21,"tag":22,"props":15584,"children":15585},{},[15586,15588,15593,15595,15600],{"type":31,"value":15587},"Both numbers cap how long a circuit runs before noise dominates the result, but they cap different kinds of computation. A circuit that only cares about final populations (a bit-flip-heavy algorithm, or a simple readout) is mostly bounded by T1. A circuit that depends on interference between branches of a superposition surviving intact, most genuinely quantum algorithms, is bounded by the shorter of the two, and T2 is usually the shorter one. ",{"type":21,"tag":26,"props":15589,"children":15590},{"href":1100},[15591],{"type":31,"value":15592},"Superconducting qubits",{"type":31,"value":15594}," typically run 50 to 500 microseconds of usable coherence. ",{"type":21,"tag":26,"props":15596,"children":15597},{"href":15497},[15598],{"type":31,"value":15599},"Trapped ions",{"type":31,"value":15601}," reach seconds to minutes, at the cost of slower gates. Either way, circuit depth is a race against whichever of T1 or T2 runs out first, and it's T2, the phase, not T1, the energy, that usually loses that race.",{"type":21,"tag":22,"props":15603,"children":15604},{},[15605,15607,15612,15614,15619],{"type":31,"value":15606},"Understanding this split also clarifies what ",{"type":21,"tag":26,"props":15608,"children":15610},{"href":15609},"\u002Fblog\u002Funderstanding-quantum-error-correction",[15611],{"type":31,"value":14732},{"type":31,"value":15613}," is fighting. A logical qubit built from many physical ones isn't trying to stop T1 and T2 decay from happening. It's trying to detect and undo the damage faster than decoherence accumulates, which is why the physical qubits underneath a fault-tolerant machine still need T1 and T2 long enough, relative to gate speed, for that detection loop to keep up. Our piece on ",{"type":21,"tag":26,"props":15615,"children":15616},{"href":4082},[15617],{"type":31,"value":15618},"logical qubits and fault tolerance",{"type":31,"value":15620}," covers what that overhead costs.",{"title":7,"searchDepth":168,"depth":168,"links":15622},[15623,15624,15625,15626,15627],{"id":15505,"depth":168,"text":15508},{"id":15521,"depth":168,"text":15524},{"id":15547,"depth":168,"text":15550},{"id":15568,"depth":168,"text":15571},{"id":15579,"depth":168,"text":15582},"content:blog:t1-vs-t2-relaxation-dephasing-explained.md","blog\u002Ft1-vs-t2-relaxation-dephasing-explained.md","blog\u002Ft1-vs-t2-relaxation-dephasing-explained",{"_path":4371,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":15632,"description":15633,"date":4471,"author":11,"tags":15634,"readingTime":234,"body":15635,"_type":1187,"_id":15722,"_source":1189,"_file":15723,"_stem":15724,"_extension":1192},"TuringQ Is Filing to Become China's First Publicly Traded Quantum Computing Company","TuringQ, a Shanghai photonic quantum chip maker, entered pre-IPO guidance for Shanghai's STAR Market in August 2026. Here is what the company has built, what the filing does and doesn't confirm, and why China's quantum sector is moving toward public markets now.",[3396,1207],{"type":18,"children":15636,"toc":15716},[15637,15642,15648,15660,15665,15671,15676,15682,15687,15700,15704],{"type":21,"tag":22,"props":15638,"children":15639},{},[15640],{"type":31,"value":15641},"TuringQ entered pre-IPO guidance for Shanghai's STAR Market in August 2026, putting it on track to become the first Chinese quantum computing firm to list on a public exchange. Guotai Haitong Securities is sponsoring the filing, and it now sits with the China Securities Regulatory Commission for review. No listing date or share price range has been set yet. What's confirmed is the company's entry into the pipeline, not a completed IPO.",{"type":21,"tag":41,"props":15643,"children":15645},{"id":15644},"what-turingq-builds",[15646],{"type":31,"value":15647},"What TuringQ builds",{"type":21,"tag":22,"props":15649,"children":15650},{},[15651,15653,15658],{"type":31,"value":15652},"TuringQ, founded in Shanghai in February 2021, makes photonic quantum chips, ",{"type":21,"tag":26,"props":15654,"children":15655},{"href":1131},[15656],{"type":31,"value":15657},"light-based processors",{"type":31,"value":15659}," that run at room temperature instead of the near-absolute-zero cooling superconducting qubits need. The company built a pilot production line in Wuxi in 2025 for wafer-scale lithium niobate photonic chip manufacturing, an existing optical-communications material and process rather than a purpose-built quantum fabrication line. That choice matters for a company chasing manufacturing scale: it borrows an established supply chain instead of building a new one from scratch.",{"type":21,"tag":22,"props":15661,"children":15662},{},[15663],{"type":31,"value":15664},"TuringQ's controlling shareholder is Shanghai Siliang Quantum Technology, holding a 34.1% stake. The business raised roughly 1 billion yuan in 2026 funding, and a Series C round in April 2026 valued it above 7 billion yuan (close to $1 billion).",{"type":21,"tag":41,"props":15666,"children":15668},{"id":15667},"why-a-star-market-listing-not-nasdaq",[15669],{"type":31,"value":15670},"Why a STAR Market listing, not Nasdaq",{"type":21,"tag":22,"props":15672,"children":15673},{},[15674],{"type":31,"value":15675},"Chinese quantum companies pursuing a US listing face a slower, more scrutinized path than they did a few years ago. The STAR Market, Shanghai's tech-focused board launched for companies not yet profitable, gives TuringQ a path to public capital without that friction. It's the same reasoning behind Chinese semiconductor and biotech firms choosing STAR Market listings over ADRs in recent years. TuringQ isn't alone in the pipeline either: Origin Quantum, Ciqtek, and QBoson are all pursuing listings of their own, which points to a coordinated push by China's quantum sector toward public markets rather than one company's individual decision.",{"type":21,"tag":41,"props":15677,"children":15679},{"id":15678},"what-the-filing-confirms-and-what-it-doesnt",[15680],{"type":31,"value":15681},"What the filing confirms and what it doesn't",{"type":21,"tag":22,"props":15683,"children":15684},{},[15685],{"type":31,"value":15686},"Confirmed: pre-IPO guidance status, the sponsoring securities firm, the exchange, and the regulatory body reviewing the application. Not yet confirmed: listing date, offering size, share price, or post-IPO valuation. Pre-IPO guidance in China's system is an early formal step, not a guarantee of a completed listing. Companies spend months or longer in this stage, and some withdraw before reaching a public offering.",{"type":21,"tag":22,"props":15688,"children":15689},{},[15690,15692,15698],{"type":31,"value":15691},"TuringQ's photonic approach puts it in the same broad architecture category as Xanadu and PsiQuantum in the US, and ",{"type":21,"tag":26,"props":15693,"children":15695},{"href":15694},"\u002Fblog\u002Foptqc-ntt-million-qubit-photonic-alliance",[15696],{"type":31,"value":15697},"OptQC in Japan",{"type":31,"value":15699},", companies betting that room-temperature operation and existing optical manufacturing infrastructure outweigh the technical hurdles photonic qubits still face around gate fidelity and loss.",{"type":21,"tag":41,"props":15701,"children":15702},{"id":3461},[15703],{"type":31,"value":3464},{"type":21,"tag":22,"props":15705,"children":15706},{},[15707,15709,15714],{"type":31,"value":15708},"The subsequent real milestone is a set listing date and offering size from the CSRC review, not further funding or valuation news. If TuringQ completes the listing, the number worth tracking afterward is real revenue disclosed in public filings, the identical standard ",{"type":21,"tag":26,"props":15710,"children":15711},{"href":3712},[15712],{"type":31,"value":15713},"this site applies",{"type":31,"value":15715}," to IonQ, Rigetti, and D-Wave, rather than the pre-IPO valuation figures already circulating.",{"title":7,"searchDepth":168,"depth":168,"links":15717},[15718,15719,15720,15721],{"id":15644,"depth":168,"text":15647},{"id":15667,"depth":168,"text":15670},{"id":15678,"depth":168,"text":15681},{"id":3461,"depth":168,"text":3464},"content:blog:turingq-china-first-quantum-ipo.md","blog\u002Fturingq-china-first-quantum-ipo.md","blog\u002Fturingq-china-first-quantum-ipo",{"_path":15726,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":15727,"description":15728,"date":4471,"author":11,"tags":15729,"readingTime":234,"body":15730,"_type":1187,"_id":15800,"_source":1189,"_file":15801,"_stem":15802,"_extension":1192},"\u002Fblog\u002Fxanadu-q2-2026-us-expansion","Xanadu Raised $67.2M Through an Equity Facility to Fund US Chip Production","Xanadu's Q2 2026 results show $312.8 million in cash, a $67.2 million draw from a Yorkville equity facility, and US headcount up more than fivefold since 2023. Here is what the funding structure means and what it doesn't guarantee.",[3396,1207],{"type":18,"children":15731,"toc":15794},[15732,15737,15743,15748,15754,15767,15773,15785,15789],{"type":21,"tag":22,"props":15733,"children":15734},{},[15735],{"type":31,"value":15736},"Xanadu reported its second quarter 2026 results on August 5, 2026, and the number drawing attention is $67.2 million raised during the quarter under a standby equity purchase agreement, not a traditional funding round. The company sold 5.5 million shares at an average net price of $12.28 to Yorkville Advisors under a facility that gives Xanadu the option, not the obligation, to sell up to $300 million in shares over three years. Xanadu ended the quarter with $312.8 million in cash.",{"type":21,"tag":41,"props":15738,"children":15740},{"id":15739},"an-equity-facility-is-not-a-funding-round",[15741],{"type":31,"value":15742},"An equity facility is not a funding round",{"type":21,"tag":22,"props":15744,"children":15745},{},[15746],{"type":31,"value":15747},"A standby equity purchase agreement works differently than a venture round or a public offering. Xanadu entered the agreement with Yorkville earlier in 2026, and the $67.2 million is one draw against it, made opportunistically based on market conditions and share price, not a single negotiated raise with a fixed amount and a lead investor. That structure gives Xanadu flexibility to sell shares when the price is favorable rather than committing to dilute at a set valuation, but it also means the $67.2 million figure reflects one quarter's usage of a facility that has $300 million of headroom left, not a one-time capital event.",{"type":21,"tag":41,"props":15749,"children":15751},{"id":15750},"where-the-cash-is-going",[15752],{"type":31,"value":15753},"Where the cash is going",{"type":21,"tag":22,"props":15755,"children":15756},{},[15757,15759,15765],{"type":31,"value":15758},"Xanadu says the proceeds fund working capital and its quantum computing technology roadmap, and the company points to two concrete uses: engineering headcount and wafer production capacity. US headcount has grown more than fivefold since 2023, with continued expansion planned before the end of 2026, concentrated in Albany, New York, where Xanadu has an existing photonic chip operation. Wafer production is the more consequential of the two. Photonic quantum computing, ",{"type":21,"tag":26,"props":15760,"children":15762},{"href":15761},"\u002Fblog\u002Fclavina-photonic-universal-gate-architecture",[15763],{"type":31,"value":15764},"the architecture Xanadu builds on",{"type":31,"value":15766},", depends on manufacturing chips at scale with consistent optical properties, and cash spent on production capacity is a direct bet on getting from lab-scale to fab-scale output.",{"type":21,"tag":41,"props":15768,"children":15770},{"id":15769},"_3128-million-buys-runway-not-results",[15771],{"type":31,"value":15772},"$312.8 million buys runway, not results",{"type":21,"tag":22,"props":15774,"children":15775},{},[15776,15778,15783],{"type":31,"value":15777},"A cash position this size, next to ",{"type":21,"tag":26,"props":15779,"children":15780},{"href":3712},[15781],{"type":31,"value":15782},"the tighter balance sheets some competitors report",{"type":31,"value":15784},", buys Xanadu time to keep building without an immediate funding crisis. It says nothing on its own about qubit count, gate fidelity, or error rates, the metrics that determine whether photonic hardware closes the gap with superconducting and trapped-ion systems. Xanadu's Q2 filing reports higher revenue and expanded US operations, both real, both worth tracking, and neither a substitute for a hardware milestone.",{"type":21,"tag":41,"props":15786,"children":15787},{"id":3461},[15788],{"type":31,"value":3464},{"type":21,"tag":22,"props":15790,"children":15791},{},[15792],{"type":31,"value":15793},"The figure that will matter more than the cash balance is wafer output from the expanded production capacity, and whether it translates into a qubit-count or fidelity announcement in the next two quarters. Funding buys the ability to build. It doesn't confirm the build works at the scale Xanadu needs.",{"title":7,"searchDepth":168,"depth":168,"links":15795},[15796,15797,15798,15799],{"id":15739,"depth":168,"text":15742},{"id":15750,"depth":168,"text":15753},{"id":15769,"depth":168,"text":15772},{"id":3461,"depth":168,"text":3464},"content:blog:xanadu-q2-2026-us-expansion.md","blog\u002Fxanadu-q2-2026-us-expansion.md","blog\u002Fxanadu-q2-2026-us-expansion",{"_path":2022,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":15804,"description":15805,"date":15806,"author":11,"tags":15807,"readingTime":273,"body":15808,"_type":1187,"_id":15909,"_source":1189,"_file":15910,"_stem":15911,"_extension":1192},"D-Wave Published a Gate-Model Result in Nature. That Is Not Its Usual Business","D-Wave, known for quantum annealing, published a peer-reviewed two-qubit entangling gate for dual-rail erasure qubits in Nature, reporting 99.9% fidelity and a roadmap toward 100 logical qubits by 2032, a real departure from its annealing hardware line.","2026-08-06",[1207,14720,3396],{"type":18,"children":15809,"toc":15901},[15810,15815,15821,15833,15839,15844,15850,15863,15869,15881,15887,15892,15896],{"type":21,"tag":22,"props":15811,"children":15812},{},[15813],{"type":31,"value":15814},"D-Wave published a peer-reviewed paper in Nature on August 6, 2026, titled \"An entangling gate for dual-rail erasure qubits,\" led by Chief Scientist Robert Schoelkopf alongside Chief Development Officer Trevor Lanting and CEO Alan Baratz. The result itself is a two-qubit entangling gate for superconducting dual-rail cavity qubits. The more consequential fact is what kind of hardware it is built on: not the quantum annealing systems D-Wave has sold commercially for over a decade, but a gate-model architecture aimed squarely at fault-tolerant computation.",{"type":21,"tag":41,"props":15816,"children":15818},{"id":15817},"what-a-dual-rail-erasure-qubit-changes",[15819],{"type":31,"value":15820},"What a dual-rail erasure qubit changes",{"type":21,"tag":22,"props":15822,"children":15823},{},[15824,15826,15831],{"type":31,"value":15825},"Most superconducting qubit errors show up as bit-flips or phase-flips at unknown times and unknown locations, which is what makes standard ",{"type":21,"tag":26,"props":15827,"children":15829},{"href":15828},"\u002Fglossary\u002Fquantum-error-correction",[15830],{"type":31,"value":14732},{"type":31,"value":15832}," expensive: the decoder has to identify the error before fixing it. A dual-rail erasure qubit is built so that when a photon is lost, the dominant failure mode in this architecture, the loss converts into a detectable erasure error at a known location in space and time, rather than a silent, unlocated bit-flip. Knowing where and when an error happened is a fundamentally easier correction problem than inferring it, which is the engineering bet behind this qubit type, independent of who is building it.",{"type":21,"tag":41,"props":15834,"children":15836},{"id":15835},"the-numbers-behind-the-claim",[15837],{"type":31,"value":15838},"The numbers behind the claim",{"type":21,"tag":22,"props":15840,"children":15841},{},[15842],{"type":31,"value":15843},"The published gate runs in about 500 nanoseconds with an overall fidelity near 99.9%, an erasure rate around 0.5% per gate, and post-selected residual Pauli errors below 0.1%. D-Wave also reports bit-flip error suppression down to the 10⁻⁶ level and an error-reduction factor of roughly 10 per increment of code distance. That last figure is the one worth watching independently of the rest: a 10x reduction per code-distance step, if it holds as the system scales, is the kind of favorable scaling that makes a fault-tolerant roadmap plausible rather than aspirational. It is also, so far, a result from one paper, not yet reproduced by an outside group.",{"type":21,"tag":41,"props":15845,"children":15847},{"id":15846},"the-roadmap-attached-to-it",[15848],{"type":31,"value":15849},"The roadmap attached to it",{"type":21,"tag":22,"props":15851,"children":15852},{},[15853,15855,15861],{"type":31,"value":15854},"D-Wave laid out specific, dated intermediate systems: a 17-physical-qubit DR17 system in 2026 with roughly 2x logical error reduction, a 49-qubit DR49 system in 2027 at roughly 20x, a 181-qubit DR181 system in 2028 targeting roughly 2,000x error suppression, a 10-",{"type":21,"tag":26,"props":15856,"children":15858},{"href":15857},"\u002Fglossary\u002Flogical-qubit",[15859],{"type":31,"value":15860},"logical-qubit",{"type":31,"value":15862}," system by 2030, and a 100-logical-qubit system by 2032 capable of over a million logical operations for quantum chemistry, materials science, and quantum AI workloads. Naming specific qubit counts and error-suppression targets per year, rather than a single distant milestone, gives outside observers something concrete to verify the company against as each date arrives, which is more than most fault-tolerance roadmaps offer.",{"type":21,"tag":41,"props":15864,"children":15866},{"id":15865},"why-this-matters-coming-from-d-wave-specifically",[15867],{"type":31,"value":15868},"Why this matters coming from D-Wave specifically",{"type":21,"tag":22,"props":15870,"children":15871},{},[15872,15874,15879],{"type":31,"value":15873},"D-Wave's entire commercial identity, and the ",{"type":21,"tag":26,"props":15875,"children":15876},{"href":3712},[15877],{"type":31,"value":15878},"bookings growth covered in our top companies ranking",{"type":31,"value":15880},", rests on quantum annealing: optimization problems solved through an entirely different physical mechanism than the universal gate-model computation this dual-rail work targets. A Nature paper on a gate-model qubit architecture is D-Wave placing a second, structurally varied bet alongside its annealing business rather than doubling down on it, similar in spirit to how IonQ diversified into silicon photonics manufacturing through its SkyWater acquisition. It is a hedge against the possibility that annealing alone does not reach the fault-tolerant, general-purpose computation that chemistry and materials science applications eventually need.",{"type":21,"tag":41,"props":15882,"children":15884},{"id":15883},"what-is-still-unverified",[15885],{"type":31,"value":15886},"What is still unverified",{"type":21,"tag":22,"props":15888,"children":15889},{},[15890],{"type":31,"value":15891},"The fidelity, erasure-rate, and error-suppression numbers are D-Wave's own reported results from its own paper, peer-reviewed but not yet reproduced by an independent lab, the same caveat that applies to most vendor-reported hardware milestones covered on this site. The 2032 roadmap is a target, not a result, and D-Wave's own 2026-2028 intermediate milestones are the nearest, most checkable test of whether the scaling trend in the Nature paper holds up as physical qubit count grows.",{"type":21,"tag":41,"props":15893,"children":15894},{"id":3461},[15895],{"type":31,"value":3464},{"type":21,"tag":22,"props":15897,"children":15898},{},[15899],{"type":31,"value":15900},"DR17, the first named milestone, is dated for this year. Whether D-Wave ships it on schedule, and whether the reported error reduction lands near the claimed 2x, is the first real checkpoint against this roadmap, well before the 2032 target is close enough to matter.",{"title":7,"searchDepth":168,"depth":168,"links":15902},[15903,15904,15905,15906,15907,15908],{"id":15817,"depth":168,"text":15820},{"id":15835,"depth":168,"text":15838},{"id":15846,"depth":168,"text":15849},{"id":15865,"depth":168,"text":15868},{"id":15883,"depth":168,"text":15886},{"id":3461,"depth":168,"text":3464},"content:blog:dwave-dual-rail-erasure-qubit-gate-nature.md","blog\u002Fdwave-dual-rail-erasure-qubit-gate-nature.md","blog\u002Fdwave-dual-rail-erasure-qubit-gate-nature",{"_path":4240,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":15913,"description":15914,"date":15806,"author":11,"tags":15915,"readingTime":234,"body":15916,"_type":1187,"_id":16002,"_source":1189,"_file":16003,"_stem":16004,"_extension":1192},"NIST Kept Two Photons Entangled Across 62 km of Ordinary Commercial Fiber for 20 Hours","NIST, the University of Maryland, and Qunnect distributed polarization-entangled photons over 62 kilometers of live, partially aerial commercial fiber between Gaithersburg and College Park, sustaining a Bell inequality violation for over 20 consecutive hours.",[1207,3396],{"type":18,"children":15917,"toc":15995},[15918,15923,15929,15940,15946,15951,15955,15960,15966,15979,15983],{"type":21,"tag":22,"props":15919,"children":15920},{},[15921],{"type":31,"value":15922},"NIST, the University of Maryland, and Qunnect published results on August 6, 2026, describing a 62-kilometer entanglement distribution experiment run over live commercial telecommunications fiber connecting NIST's Gaithersburg campus to UMD's College Park campus. The result that separates this from a typical lab demonstration is durability, not distance: the setup sustained a Bell inequality violation for more than 20 consecutive hours during a 24-hour continuous stress test, on fiber that was partially aerial and exposed to wind, traffic vibration, and temperature swings the whole time.",{"type":21,"tag":41,"props":15924,"children":15926},{"id":15925},"why-aerial-commercial-fiber-is-the-harder-problem",[15927],{"type":31,"value":15928},"Why aerial commercial fiber is the harder problem",{"type":21,"tag":22,"props":15930,"children":15931},{},[15932,15934,15938],{"type":31,"value":15933},"Most published ",{"type":21,"tag":26,"props":15935,"children":15936},{"href":1150},[15937],{"type":31,"value":4235},{"type":31,"value":15939}," distribution records come from dedicated, environmentally shielded fiber, often buried and purpose-built for the experiment. That is not what most real metropolitan networks look like. Commercial fiber includes aerial spans strung on poles, subject to wind sway and thermal expansion, both of which scramble the polarization state that carries the quantum information. A photon that survives 62 km of buried, temperature-stable fiber is a different achievement than one that survives 62 km of fiber swinging in the wind next to a road. This experiment ran on the second, harder kind.",{"type":21,"tag":41,"props":15941,"children":15943},{"id":15942},"the-engineering-that-made-it-hold-up",[15944],{"type":31,"value":15945},"The engineering that made it hold up",{"type":21,"tag":22,"props":15947,"children":15948},{},[15949],{"type":31,"value":15950},"The team generated entangled signal and idler photon pairs at NIST Gaithersburg, sending the idler photon to a receiver and time-tagging unit at UMD while keeping a polarization analyzer for the signal photon at the source, with a parallel optical link for timing synchronization. The part responsible for the 20-hour stability is Qunnect's automated polarization compensation (APC) hardware, which multiplexes a reference light beam through the equivalent fiber to continuously measure polarization drift and apply a correcting inverse transformation in real time. Without that active correction, aerial fiber's constant polarization drift would degrade entanglement fidelity well before 20 hours.",{"type":21,"tag":41,"props":15952,"children":15953},{"id":3720},[15954],{"type":31,"value":3723},{"type":21,"tag":22,"props":15956,"children":15957},{},[15958],{"type":31,"value":15959},"The system distributed entangled photon pairs at approximately 1,500 pairs per second, with 92.8% operational uptime, meaning only 7.2% of the run went to active recalibration rather than photon transmission. The CHSH Bell inequality parameter measured S = 2.45 ± 0.08, comfortably above the classical threshold of S ≤ 2 that separates genuine quantum entanglement from anything a classical system reproduces, and that separation held for the entire 20-plus-hour window, not a brief peak measurement.",{"type":21,"tag":41,"props":15961,"children":15963},{"id":15962},"what-this-validates-and-what-it-does-not",[15964],{"type":31,"value":15965},"What this validates, and what it does not",{"type":21,"tag":22,"props":15967,"children":15968},{},[15969,15971,15977],{"type":31,"value":15970},"The result is evidence that metropolitan-scale quantum networks, QKD channels, and distributed quantum computing interconnects are deployable on existing, unshielded commercial fiber, without requiring new underground infrastructure built specifically for quantum signals. That is a meaningfully different claim from showing entanglement is possible over 62 km in principle, which has been demonstrated before under more controlled conditions. It is not, on its own, a demonstration of a working QKD system or a distributed computing link. Entanglement distribution is the underlying primitive those applications need, not the finished application itself, similar to how ",{"type":21,"tag":26,"props":15972,"children":15974},{"href":15973},"\u002Fblog\u002Fquantum-corridor-ciena-toshiba-quantum-safe-fiber",[15975],{"type":31,"value":15976},"Quantum Corridor, Ciena, and Toshiba's live PQC-plus-QKD trial",{"type":31,"value":15978}," demonstrated encryption at commercial speed on production fiber a day earlier without claiming to have solved every part of quantum-safe networking at once.",{"type":21,"tag":41,"props":15980,"children":15981},{"id":3461},[15982],{"type":31,"value":3464},{"type":21,"tag":22,"props":15984,"children":15985},{},[15986,15988,15993],{"type":31,"value":15987},"The test for this result is whether Qunnect's polarization-compensation approach gets deployed on a fiber route carrying live QKD or distributed quantum computing traffic, rather than staying a research demonstration between two university campuses. Our ",{"type":21,"tag":26,"props":15989,"children":15990},{"href":1131},[15991],{"type":31,"value":15992},"quantum networking piece",{"type":31,"value":15994}," covers how entanglement distribution, QKD, and distributed quantum computing interconnects fit together as separate but related pieces of the same infrastructure problem.",{"title":7,"searchDepth":168,"depth":168,"links":15996},[15997,15998,15999,16000,16001],{"id":15925,"depth":168,"text":15928},{"id":15942,"depth":168,"text":15945},{"id":3720,"depth":168,"text":3723},{"id":15962,"depth":168,"text":15965},{"id":3461,"depth":168,"text":3464},"content:blog:nist-umd-qunnect-62km-entanglement-metro-fiber.md","blog\u002Fnist-umd-qunnect-62km-entanglement-metro-fiber.md","blog\u002Fnist-umd-qunnect-62km-entanglement-metro-fiber",{"_path":15761,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":16006,"description":16007,"date":16008,"author":11,"tags":16009,"readingTime":234,"body":16010,"_type":1187,"_id":16099,"_source":1189,"_file":16100,"_stem":16101,"_extension":1192},"Researchers Built a Photonic Chip That Finally Combines Linear Optics With Real Nonlinear Gates","Imperial College London and the University of Hong Kong, working with HeliQ Standard CompuTech, built Clavina, a modular photonic architecture that pairs linear optical networks with integrated nonlinear modules to support a universal quantum gate set.","2026-08-05",[1207,3396],{"type":18,"children":16011,"toc":16092},[16012,16017,16023,16036,16042,16047,16053,16065,16071,16083,16087],{"type":21,"tag":22,"props":16013,"children":16014},{},[16015],{"type":31,"value":16016},"A research team from Imperial College London and the University of Hong Kong, working with HeliQ Standard CompuTech Co., Ltd in Hangzhou, published results on August 3, 2026, describing a photonic architecture called Clavina. The name is a nod to classical integrated-circuit design, and the goal behind it is the same: a photonic chip built to be extended module by module rather than redesigned from scratch every time a new capability gets added. Worth noting up front, since coverage elsewhere has blurred this: Clavina is a research architecture from an academic and industry collaboration, not a product from a company called \"Extensible Photonics.\"",{"type":21,"tag":41,"props":16018,"children":16020},{"id":16019},"the-gap-this-closes",[16021],{"type":31,"value":16022},"The gap this closes",{"type":21,"tag":22,"props":16024,"children":16025},{},[16026,16028,16034],{"type":31,"value":16027},"Photonic quantum computing has a structural problem that trapped-ion and superconducting approaches do not share. Linear optical circuits, beam splitters, phase shifters, and the like are relatively easy to build and scale, but on their own they cannot produce a universal ",{"type":21,"tag":26,"props":16029,"children":16031},{"href":16030},"\u002Fglossary\u002Fquantum-gate",[16032],{"type":31,"value":16033},"quantum gate",{"type":31,"value":16035}," set. Universal computation on photons needs a nonlinear resource, some interaction that behaves differently depending on how many photons pass through it, and integrating that nonlinearity into a scalable circuit alongside linear optics has been the field's persistent bottleneck. Clavina's contribution is a design that keeps the linear network scalable while adding nonlinear modules, inline squeezers and Kerr gates, as plug-in components managed by a central quantum photonic control unit that handles phase control and synchronization.",{"type":21,"tag":41,"props":16037,"children":16039},{"id":16038},"what-temporal-multiplexing-buys",[16040],{"type":31,"value":16041},"What temporal multiplexing buys",{"type":21,"tag":22,"props":16043,"children":16044},{},[16045],{"type":31,"value":16046},"Rather than requiring one spatial mode (one physical path) per qubit, Clavina encodes information using temporal multiplexing within single spatial modes. That is a scaling choice: it reduces how much physical hardware, waveguides, detectors, control lines, needs to grow as qubit count grows, which is the same kind of overhead problem that superconducting and trapped-ion architectures are also fighting from varied angles.",{"type":21,"tag":41,"props":16048,"children":16050},{"id":16049},"two-things-it-now-does",[16051],{"type":31,"value":16052},"Two things it now does",{"type":21,"tag":22,"props":16054,"children":16055},{},[16056,16058,16063],{"type":31,"value":16057},"The team demonstrated quasi-deterministic generation of Gottesman-Kitaev-Preskill (GKP) states, a bosonic encoding used for ",{"type":21,"tag":26,"props":16059,"children":16060},{"href":15828},[16061],{"type":31,"value":16062},"error correction",{"type":31,"value":16064}," in photonic systems, previously produced only probabilistically and therefore unreliably. They also simulated the Bose-Hubbard model, a standard test case for quantum dynamics that linear-only photonic hardware never reached. Both results are demonstrations of what the architecture now does, not yet a computation that outperforms a classical method on a problem that matters commercially.",{"type":21,"tag":41,"props":16066,"children":16068},{"id":16067},"read-the-claim-at-the-right-altitude",[16069],{"type":31,"value":16070},"Read the claim at the right altitude",{"type":21,"tag":22,"props":16072,"children":16073},{},[16074,16076,16081],{"type":31,"value":16075},"\"Establishes a viable route towards photonic quantum simulation and fault-tolerant quantum computing\" is the paper's own framing, and it is a reasonable one for what a first working integration of linear and nonlinear photonic resources represents. It is not evidence that photonic hardware has closed the gap with trapped-ion or superconducting qubit counts, and GKP state generation plus a Bose-Hubbard simulation are proof-of-concept results, not a benchmark against a specific application. Our ",{"type":21,"tag":26,"props":16077,"children":16078},{"href":1100},[16079],{"type":31,"value":16080},"hardware overview",{"type":31,"value":16082}," covers where photonic approaches, including Xanadu's and PsiQuantum's, currently stand against the rest of the field.",{"type":21,"tag":41,"props":16084,"children":16085},{"id":3461},[16086],{"type":31,"value":3464},{"type":21,"tag":22,"props":16088,"children":16089},{},[16090],{"type":31,"value":16091},"The next milestone to seem for is Clavina, or a successor built on the same modular approach, running a circuit deep enough to need multiple chained nonlinear operations rather than one demonstration gate at a time. That is the test of whether the plug-in module design scales the way the architecture is meant to, rather than working once in a lab setup built around a single result.",{"title":7,"searchDepth":168,"depth":168,"links":16093},[16094,16095,16096,16097,16098],{"id":16019,"depth":168,"text":16022},{"id":16038,"depth":168,"text":16041},{"id":16049,"depth":168,"text":16052},{"id":16067,"depth":168,"text":16070},{"id":3461,"depth":168,"text":3464},"content:blog:clavina-photonic-universal-gate-architecture.md","blog\u002Fclavina-photonic-universal-gate-architecture.md","blog\u002Fclavina-photonic-universal-gate-architecture",{"_path":4432,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":16103,"description":16104,"date":16008,"author":11,"tags":16105,"readingTime":369,"body":16106,"_type":1187,"_id":16307,"_source":1189,"_file":16308,"_stem":16309,"_extension":1192},"Who Is Using Quantum Computers Right Now, By Industry","Not the vendors building quantum hardware, the customers running real workloads on it. A grounded look at which banks, automakers, aerospace firms, pharma companies, and energy utilities have quantum computing pilots or partnerships, and how far each one has gotten.",[3396,10536],{"type":18,"children":16107,"toc":16297},[16108,16120,16125,16131,16166,16172,16184,16190,16210,16216,16221,16227,16232,16243,16249,16254,16260,16278,16284],{"type":21,"tag":22,"props":16109,"children":16110},{},[16111,16113,16118],{"type":31,"value":16112},"Most coverage of quantum computing, including a lot of what runs on this site, tracks the companies building the hardware: IBM, IonQ, Quantinuum, D-Wave, and the rest of the field our ",{"type":21,"tag":26,"props":16114,"children":16115},{"href":3712},[16116],{"type":31,"value":16117},"top companies ranking",{"type":31,"value":16119}," covers. That is one half of the industry. The other half is the customers, banks, automakers, aerospace manufacturers, drug companies, and utilities paying for hardware access or running joint research, and that side gets covered less carefully, usually as a single line in a provider press release. This piece flips the lens: which companies outside the quantum industry itself are running workloads on quantum hardware, in which verticals, and how far each effort has gotten past the pilot stage.",{"type":21,"tag":22,"props":16121,"children":16122},{},[16123],{"type":31,"value":16124},"The honest framing up front: most of what follows is a pilot, a proof-of-concept, or a research partnership, not a production system replacing a classical one. That is not a criticism of the field. It is the accurate description of where quantum computing sits against most commercial workloads in 2026, and treating a pilot as a deployment is the single most common way quantum coverage overstates itself. Telecom, below, is the one vertical with a documented exception worth reading closely for exactly that reason.",{"type":21,"tag":41,"props":16126,"children":16128},{"id":16127},"finance-fraud-detection-portfolio-risk-and-derivatives-pricing",[16129],{"type":31,"value":16130},"Finance: fraud detection, portfolio risk, and derivatives pricing",{"type":21,"tag":22,"props":16132,"children":16133},{},[16134,16136,16140,16142,16148,16150,16156,16158,16164],{"type":31,"value":16135},"Banking has more active quantum pilots than any other vertical, largely because two of its core problems, portfolio optimization and Monte Carlo-style risk simulation, map naturally onto both quantum annealing and gate-model algorithms like ",{"type":21,"tag":26,"props":16137,"children":16138},{"href":2038},[16139],{"type":31,"value":2041},{"type":31,"value":16141},". D-Wave's new partnership with Nasdaq Verafin, ",{"type":21,"tag":26,"props":16143,"children":16145},{"href":16144},"\u002Fblog\u002Fdwave-nasdaq-verafin-financial-crime-detection",[16146],{"type":31,"value":16147},"covered here",{"type":31,"value":16149},", targets anti-money-laundering pattern detection across a customer base of over 2,800 financial institutions, still at the proof-of-concept stage. Quantinuum and SoftBank's ",{"type":21,"tag":26,"props":16151,"children":16153},{"href":16152},"\u002Fblog\u002Fquantinuum-softbank-white-paper-quantum-value",[16154],{"type":31,"value":16155},"joint white paper",{"type":31,"value":16157}," names telecommunications fraud detection as a graph-analytics use case SoftBank is actively researching on Quantinuum hardware. Our ",{"type":21,"tag":26,"props":16159,"children":16161},{"href":16160},"\u002Fblog\u002Fquantum-portfolio-optimization-business-case",[16162],{"type":31,"value":16163},"portfolio optimization business case",{"type":31,"value":16165}," covers why the same combinatorial structure that makes fraud networks a quantum target also makes portfolio rebalancing one. What is missing across the finance vertical so far is a published head-to-head comparison against a classical baseline. Every announcement describes what is being tested, not a measured improvement over what the bank already runs.",{"type":21,"tag":41,"props":16167,"children":16169},{"id":16168},"automotive-batteries-fuel-cells-and-traffic",[16170],{"type":31,"value":16171},"Automotive: batteries, fuel cells, and traffic",{"type":21,"tag":22,"props":16173,"children":16174},{},[16175,16177,16182],{"type":31,"value":16176},"BMW's relationship with Quantinuum, running since 2021 and ",{"type":21,"tag":26,"props":16178,"children":16179},{"href":3524},[16180],{"type":31,"value":16181},"expanded into a multi-year partnership",{"type":31,"value":16183}," this year, is the automotive sector's longest-running and best-documented quantum effort. The target problem is electrochemistry: simulating the oxygen reduction reaction at platinum catalysts, which determines fuel cell efficiency and is genuinely hard for classical methods because of the electron correlation effects involved. Other automakers have run parallel efforts with less public detail: traffic-flow and production-scheduling optimization work using quantum annealing hardware, and battery-chemistry simulation research with gate-model providers. The pattern across the vertical is consistent with BMW's case: automotive quantum work concentrates on chemistry (batteries, fuel cells, catalysts) and on combinatorial scheduling (traffic, paint-shop sequencing, logistics), not on anything resembling a production deployment replacing existing simulation tools.",{"type":21,"tag":41,"props":16185,"children":16187},{"id":16186},"aerospace-and-defense-fluid-dynamics-and-materials",[16188],{"type":31,"value":16189},"Aerospace and defense: fluid dynamics and materials",{"type":21,"tag":22,"props":16191,"children":16192},{},[16193,16195,16201,16203,16208],{"type":31,"value":16194},"Rolls-Royce, Riverlane, Quantinuum, and the University of Edinburgh's EPCC ",{"type":21,"tag":26,"props":16196,"children":16198},{"href":16197},"\u002Fblog\u002Fquantinuum-rolls-royce-riverlane-edinburgh-industrial-design",[16199],{"type":31,"value":16200},"signed an agreement",{"type":31,"value":16202}," to test computational building blocks for gas turbine design on Quantinuum's Helios system, building on years of prior fluid-dynamics groundwork between Rolls-Royce, Riverlane, and EPCC specifically. Computational fluid dynamics is one of the more frequently cited plausible quantum use cases industry-wide, since classical CFD simulation is already extremely expensive at the fidelity aerospace design needs, but the Rolls-Royce collaboration's own framing, building blocks first, full simulations later, is a more honest scope than most aerospace-quantum announcements set for themselves. Defense-sector interest tends to run through national-security channels rather than public commercial partnerships: IonQ's ",{"type":21,"tag":26,"props":16204,"children":16205},{"href":10620},[16206],{"type":31,"value":16207},"memorandum of understanding with Sandia National Laboratories",{"type":31,"value":16209}," is a hardware co-design relationship rather than an applications pilot, aimed at government use cases that are not disclosed in detail.",{"type":21,"tag":41,"props":16211,"children":16213},{"id":16212},"pharma-and-chemicals-molecule-simulation",[16214],{"type":31,"value":16215},"Pharma and chemicals: molecule simulation",{"type":21,"tag":22,"props":16217,"children":16218},{},[16219],{"type":31,"value":16220},"Drug discovery and materials chemistry are the use case quantum computing's proponents have pointed to longest, on the reasonable logic that simulating molecules is a quantum mechanical problem in the first place, and classical computers approximate it rather than compute it directly. Pharmaceutical and chemical companies have run research collaborations with gate-model quantum providers on molecular dynamics and reaction simulation, generally scoped to specific molecules or reaction pathways rather than end-to-end drug discovery pipelines. The BMW-Quantinuum electrochemistry work sits in this same technical category, chemistry simulation, even though the end application is batteries rather than a drug candidate, and it is the most publicly documented example of this usage case producing incremental, published results over several years rather than a single splashy announcement.",{"type":21,"tag":41,"props":16222,"children":16224},{"id":16223},"energy-and-utilities-grid-optimization-and-materials",[16225],{"type":31,"value":16226},"Energy and utilities: grid optimization and materials",{"type":21,"tag":22,"props":16228,"children":16229},{},[16230],{"type":31,"value":16231},"Energy companies have pursued two distinct quantum use cases that get conflated more often than they should. One is grid and load optimization, a combinatorial problem suited to annealing approaches, similar in shape to the traffic and scheduling problems automakers are testing. The other is materials and chemistry research aimed at things like battery storage and catalysts for cleaner energy production, which overlaps directly with the pharma and automotive chemistry work described above. Utilities exploring quantum computing tend to frame it as multi-year research rather than a near-term operational tool, which is a more accurate characterization than most vendor press releases about the energy vertical offer.",{"type":21,"tag":22,"props":16233,"children":16234},{},[16235,16237,16241],{"type":31,"value":16236},"Grid security is a related but distinct problem from load optimization, and it now has its own named effort. Eaton, ",{"type":21,"tag":26,"props":16238,"children":16239},{"href":10532},[16240],{"type":31,"value":16147},{"type":31,"value":16242},", won a $7 million Air Force Research Laboratory contract in August 2026, with Infleqtion providing hardware and Penn State handling algorithm research, to develop hybrid quantum-classical algorithms for grid contingency analysis beyond the N-2 standard grids are built to survive today. Like most of what appears in this piece, the contract's own deliverable list ends in a proof-of-concept demonstration on near-term hardware, not a production capability, and it runs through defense funding rather than a utility customer paying directly, which puts it closer to IonQ's Sandia relationship above than to AT&T's telecom deployment below.",{"type":21,"tag":41,"props":16244,"children":16246},{"id":16245},"telecom-network-optimization-and-fraud",[16247],{"type":31,"value":16248},"Telecom: network optimization and fraud",{"type":21,"tag":22,"props":16250,"children":16251},{},[16252],{"type":31,"value":16253},"Telecom is where this list's usual caveat, no published comparison against a classical baseline, breaks down, and it is worth reading closely for that reason. AT&T expanded its application of D-Wave's quantum annealing technology on July 27, 2026, moving beyond a pilot into broader network operations: outage detection and response, technician routing, network build planning, and traffic management, with evaluation of D-Wave's forthcoming gate-model systems for quantum security and communications underway alongside it. AT&T's Director of Data Science reported cutting a particular network optimization workload from roughly an hour to under 15 seconds in early testing. That is a real, dated, named-workload number, not a framework or a stated research intent, which puts it in a different category than most of what else is in this piece. It is still a supplier-and-customer-reported figure rather than an independently reproduced benchmark, and \"a specific workload\" is not the same as AT&T's complete network optimization stack, but it is the closest thing in this entire roundup to the classical-baseline comparison the rest of this piece keeps noting as absent. SoftBank's white paper with Quantinuum names two further research areas: quantum chemistry (adjacent to the automotive and pharma use cases above) and large-scale graph analytics for fraud detection, a natural fit given SoftBank's own telecommunications business generates exactly that kind of transaction and network-graph data, though that work remains at the research-intent stage AT&T's has moved past.",{"type":21,"tag":41,"props":16255,"children":16257},{"id":16256},"the-pattern-across-every-vertical",[16258],{"type":31,"value":16259},"The pattern across every vertical",{"type":21,"tag":22,"props":16261,"children":16262},{},[16263,16265,16270,16272,16276],{"type":31,"value":16264},"Look across finance, automotive, aerospace, pharma, energy, and telecom, and the same two problem shapes keep showing up regardless of industry: chemistry and materials simulation (batteries, fuel cells, catalysts, drug molecules), and combinatorial optimization over networks or schedules (fraud detection, traffic, grid load, portfolio risk). That is not a coincidence. Those are the two categories of problem where quantum mechanics or quantum-inspired optimization has a genuine theoretical edge over classical methods, and it is why the same handful of algorithmic approaches, ",{"type":21,"tag":26,"props":16266,"children":16268},{"href":16267},"\u002Fglossary\u002Fvqe",[16269],{"type":31,"value":3613},{"type":31,"value":16271}," and chemistry-specific methods for the first category, ",{"type":21,"tag":26,"props":16273,"children":16274},{"href":2038},[16275],{"type":31,"value":2041},{"type":31,"value":16277}," and annealing for the second, keep reappearing across industries that otherwise share nothing in common.",{"type":21,"tag":41,"props":16279,"children":16281},{"id":16280},"how-to-read-the-next-announcement-in-this-space",[16282],{"type":31,"value":16283},"How to read the next announcement in this space",{"type":21,"tag":22,"props":16285,"children":16286},{},[16287,16289,16295],{"type":31,"value":16288},"Every partnership above is worth the same three questions before treating it as evidence quantum computing works for that use case: is there a published technical result, not only a stated intent, is there a classical baseline it is measured against, and is the assertion coming from the hardware vendor, the customer, or an independent third party. AT&T's telecom result clears the first two bars and still fails the third, a vendor and its customer, not an outside party, which is why one dated speedup quantity changes how far along telecom looks without changing how the other verticals should be read. Our ",{"type":21,"tag":26,"props":16290,"children":16292},{"href":16291},"\u002Fuse-cases",[16293],{"type":31,"value":16294},"use cases overview",{"type":31,"value":16296}," tracks which applications across every industry have moved from research-stage to genuinely near-term, and is a useful cross-examine the next time a company outside the quantum industry announces a new pilot.",{"title":7,"searchDepth":168,"depth":168,"links":16298},[16299,16300,16301,16302,16303,16304,16305,16306],{"id":16127,"depth":168,"text":16130},{"id":16168,"depth":168,"text":16171},{"id":16186,"depth":168,"text":16189},{"id":16212,"depth":168,"text":16215},{"id":16223,"depth":168,"text":16226},{"id":16245,"depth":168,"text":16248},{"id":16256,"depth":168,"text":16259},{"id":16280,"depth":168,"text":16283},"content:blog:companies-using-quantum-computing-by-industry.md","blog\u002Fcompanies-using-quantum-computing-by-industry.md","blog\u002Fcompanies-using-quantum-computing-by-industry",{"_path":16311,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":16312,"description":16313,"date":16008,"author":11,"tags":16314,"readingTime":234,"body":16316,"_type":1187,"_id":16402,"_source":1189,"_file":16403,"_stem":16404,"_extension":1192},"\u002Fblog\u002Fduke-quantum-log-law-entanglement-scaling","A Trapped-Ion Computer Confirmed a Prediction About How Entanglement Scales at Criticality","Duke Quantum Center researchers used a fully-connected trapped-ion processor to confirm, for the first time on real hardware, that entanglement entropy grows logarithmically with subsystem size near a quantum critical point.",[1207,16315,15],"Trapped-Ion",{"type":18,"children":16317,"toc":16395},[16318,16329,16335,16340,16346,16351,16357,16362,16368,16380,16384],{"type":21,"tag":22,"props":16319,"children":16320},{},[16321,16323,16327],{"type":31,"value":16322},"Researchers at Duke Quantum Center published results on July 27, 2026, confirming a decades-old theoretical prediction about how ",{"type":21,"tag":26,"props":16324,"children":16325},{"href":1150},[16326],{"type":31,"value":4235},{"type":31,"value":16328}," behaves near a quantum critical point, and did it on a real quantum processor rather than in simulation. The team, Thomas Barthel, Marko Cetina, Qiang Miao, Tianyi Wang, and Kenneth R. Brown, ran the experiment on a fully-connected trapped-ion computer and tracked how entanglement entropy scales as a system passes through a phase transition.",{"type":21,"tag":41,"props":16330,"children":16332},{"id":16331},"what-log-law-scaling-means",[16333],{"type":31,"value":16334},"What \"log-law scaling\" means",{"type":21,"tag":22,"props":16336,"children":16337},{},[16338],{"type":31,"value":16339},"Physicists have long predicted that at a quantum critical point, the entanglement entropy of a subsystem grows logarithmically with the size of that subsystem, not linearly and not saturating at some fixed value. That distinction matters because it is one of the signatures physicists use to identify and classify phase transitions in quantum systems. Confirming that the log-law holds on an actual device, rather than in a tensor-network simulation of what a device should do, is a different kind of evidence. A simulation assumes the physics it is testing. A quantum computer running the real dynamics does not.",{"type":21,"tag":41,"props":16341,"children":16343},{"id":16342},"why-full-connectivity-mattered-here",[16344],{"type":31,"value":16345},"Why full connectivity mattered here",{"type":21,"tag":22,"props":16347,"children":16348},{},[16349],{"type":31,"value":16350},"The experiment ran on a trapped-ion system with all-to-all qubit connectivity, meaning every qubit interacts directly with every other qubit rather than only its physical neighbors. Most current quantum hardware, including most superconducting chips, only supports nearest-neighbor connections, which forces long-range correlations to be built up through chains of local operations. That adds noise and depth to exactly the kind of circuit this experiment needed. All-to-all connectivity let the team probe long-range entanglement structure directly, without laundering it through extra gates.",{"type":21,"tag":41,"props":16352,"children":16354},{"id":16353},"the-tomography-trick-that-made-small-qubit-counts-work",[16355],{"type":31,"value":16356},"The tomography trick that made small qubit counts work",{"type":21,"tag":22,"props":16358,"children":16359},{},[16360],{"type":31,"value":16361},"Studying a genuine phase transition normally requires a system large enough that boundary effects do not distort the result, which is a hard requirement to meet on any current quantum processor. The Duke team worked around this by combining the multiscale entanglement renormalization ansatz (MERA), a tensor-network method built to represent systems as if they were infinite, with holographic subsystem tomography to reconstruct the entanglement structure from a comparatively small number of qubits. That combination is arguably as much the result here as the log-law confirmation itself: a method for getting infinite-system physics out of a finite, noisy device.",{"type":21,"tag":41,"props":16363,"children":16365},{"id":16364},"what-this-is-not",[16366],{"type":31,"value":16367},"What this is not",{"type":21,"tag":22,"props":16369,"children":16370},{},[16371,16373,16378],{"type":31,"value":16372},"This is not a demonstration of ",{"type":21,"tag":26,"props":16374,"children":16375},{"href":2045},[16376],{"type":31,"value":16377},"quantum advantage",{"type":31,"value":16379},", and the paper does not claim one. Log-law scaling of entanglement at criticality is a well-established theoretical result, tested here to validate that a real device reproduces it, not to solve a problem no classical computer handles. The value is methodological: a technique (MERA plus holographic tomography) with a path toward studying quantum phase transitions and critical phenomena that are harder to simulate classically, in systems too large for exact classical treatment.",{"type":21,"tag":41,"props":16381,"children":16382},{"id":3461},[16383],{"type":31,"value":3464},{"type":21,"tag":22,"props":16385,"children":16386},{},[16387,16389,16393],{"type":31,"value":16388},"The real test of this method is whether it gets applied to a phase transition or many-body system where the classical answer is not already known, which is where a validated experimental technique starts producing new physics rather than confirming old theory. Our ",{"type":21,"tag":26,"props":16390,"children":16391},{"href":1100},[16392],{"type":31,"value":16080},{"type":31,"value":16394}," tracks how trapped-ion connectivity compares with superconducting and neutral-atom approaches for problems like this one.",{"title":7,"searchDepth":168,"depth":168,"links":16396},[16397,16398,16399,16400,16401],{"id":16331,"depth":168,"text":16334},{"id":16342,"depth":168,"text":16345},{"id":16353,"depth":168,"text":16356},{"id":16364,"depth":168,"text":16367},{"id":3461,"depth":168,"text":3464},"content:blog:duke-quantum-log-law-entanglement-scaling.md","blog\u002Fduke-quantum-log-law-entanglement-scaling.md","blog\u002Fduke-quantum-log-law-entanglement-scaling",{"_path":16144,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":16406,"description":16407,"date":16008,"author":11,"tags":16408,"readingTime":234,"body":16409,"_type":1187,"_id":16482,"_source":1189,"_file":16483,"_stem":16484,"_extension":1192},"D-Wave and Nasdaq Verafin Are Testing Quantum Annealing Against Money Laundering Networks","D-Wave and Nasdaq Verafin, whose financial crime software serves over 2,800 institutions, started a proof-of-concept using D-Wave's quantum annealing hardware to detect anomalous transaction patterns across account activity and counterparty networks.",[3396,10536],{"type":18,"children":16410,"toc":16475},[16411,16416,16422,16427,16433,16438,16444,16449,16455,16466,16470],{"type":21,"tag":22,"props":16412,"children":16413},{},[16414],{"type":31,"value":16415},"D-Wave Quantum Inc. and Nasdaq Verafin announced a partnership on August 4, 2026, to test whether quantum annealing improves detection of money laundering, fraud, and scam activity in banking and capital markets data. Nasdaq Verafin is not a modest pilot partner. Its financial crime management software already serves over 2,800 financial institutions representing roughly $13 trillion in collective assets, which means a successful proof-of-concept here has a large, existing commercial pipeline to move into if it works, unlike a partnership that would need to build a customer base from scratch.",{"type":21,"tag":41,"props":16417,"children":16419},{"id":16418},"what-the-proof-of-concept-is-testing",[16420],{"type":31,"value":16421},"What the proof-of-concept is testing",{"type":21,"tag":22,"props":16423,"children":16424},{},[16425],{"type":31,"value":16426},"The collaboration runs on D-Wave's Leap quantum cloud service, using quantum annealing hardware to analyze hundreds of potential data signals at once across account activity, transaction histories, and multi-entity counterparty networks. The approach maps that multi-dimensional network data into combinatorial optimization and quantum machine learning models, aiming to surface hidden behavioral patterns and anomalous signals that classical monitoring tools miss. Financial crime detection at this scale is fundamentally a pattern-matching and network-analysis problem, which is closer to the kind of combinatorial structure quantum annealing is suited to than the general-purpose computation that gate-model quantum computers target.",{"type":21,"tag":41,"props":16428,"children":16430},{"id":16429},"why-annealing-is-a-reasonable-fit-here-on-paper",[16431],{"type":31,"value":16432},"Why annealing is a reasonable fit here, on paper",{"type":21,"tag":22,"props":16434,"children":16435},{},[16436],{"type":31,"value":16437},"D-Wave's hardware is built for optimization problems with many interacting variables, exactly the shape of a transaction network where flagging a laundering scheme means finding patterns across several accounts and counterparties rather than a single anomalous transaction. That structural fit is a real reason to expect this application area to work before full fault-tolerant quantum computing exists, and it lines up with D-Wave's own framing of annealing as a way to test real-world quantum advantages ahead of that fault-tolerant era.",{"type":21,"tag":41,"props":16439,"children":16441},{"id":16440},"what-stage-this-is-at",[16442],{"type":31,"value":16443},"What stage this is at",{"type":21,"tag":22,"props":16445,"children":16446},{},[16447],{"type":31,"value":16448},"This is explicitly a proof-of-concept, not a deployed detection system, and Nasdaq Verafin's own leadership described it as an early test rather than a production capability. The path forward, if the proof-of-concept succeeds, moves to pilot applications integrated into Nasdaq Verafin's commercial software suite, which is still a step before the broad 2,800-institution customer base would see it in their actual compliance workflows. Readers should treat \"leverages quantum annealing\" here the way any vendor-reported early-stage collaboration deserves to be read: a real technical hypothesis being tested, not a claim that quantum computing is already catching money launderers that classical systems miss.",{"type":21,"tag":41,"props":16450,"children":16452},{"id":16451},"how-this-fits-the-annealing-track-record",[16453],{"type":31,"value":16454},"How this fits the annealing track record",{"type":21,"tag":22,"props":16456,"children":16457},{},[16458,16460,16464],{"type":31,"value":16459},"D-Wave's commercial traction elsewhere gives this partnership more credibility than a first-of-its-kind pilot would carry alone. Deals with Florida Atlantic University and a Fortune 100 customer for quantum-cloud access, covered in our ",{"type":21,"tag":26,"props":16461,"children":16462},{"href":3712},[16463],{"type":31,"value":16117},{"type":31,"value":16465},", show D-Wave already has active paying demand for annealing-based optimization outside financial crime specifically, which is the identical category of problem this Verafin proof-of-concept sits in.",{"type":21,"tag":41,"props":16467,"children":16468},{"id":3461},[16469],{"type":31,"value":3464},{"type":21,"tag":22,"props":16471,"children":16472},{},[16473],{"type":31,"value":16474},"The real signal to look for is whether Nasdaq Verafin publishes a comparison, even a rough one, between the quantum-hybrid approach's detection rate and its existing classical monitoring baseline. Without that comparison, \"quantum applications for financial crime detection\" stays a description of what is being tested, not evidence of what quantum annealing adds over what Verafin's institutions already run.",{"title":7,"searchDepth":168,"depth":168,"links":16476},[16477,16478,16479,16480,16481],{"id":16418,"depth":168,"text":16421},{"id":16429,"depth":168,"text":16432},{"id":16440,"depth":168,"text":16443},{"id":16451,"depth":168,"text":16454},{"id":3461,"depth":168,"text":3464},"content:blog:dwave-nasdaq-verafin-financial-crime-detection.md","blog\u002Fdwave-nasdaq-verafin-financial-crime-detection.md","blog\u002Fdwave-nasdaq-verafin-financial-crime-detection",{"_path":16486,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":16487,"description":16488,"date":16008,"author":11,"tags":16489,"readingTime":273,"body":16490,"_type":1187,"_id":16571,"_source":1189,"_file":16572,"_stem":16573,"_extension":1192},"\u002Fblog\u002Fqarakal-pangaea-modular-architecture","An Israeli Startup Claims a 10x Cut in Qubit Overhead With a 3D Modular Architecture","Qarakal Quantum published Pangaea, a modular 3D superconducting architecture that uses a gauge-code quantum bus to connect separate topological code patches, claiming a tenfold reduction in physical qubits needed for a given logical error rate versus planar surface codes.",[3396,1207,14720],{"type":18,"children":16491,"toc":16564},[16492,16504,16510,16515,16521,16526,16532,16537,16543,16555,16559],{"type":21,"tag":22,"props":16493,"children":16494},{},[16495,16497,16502],{"type":31,"value":16496},"Qarakal Quantum Ltd., an Israeli quantum startup, published research on arXiv and launched an architecture called Pangaea on August 5, 2026. The core claim is specific and checkable in principle: in fault-tolerance simulations targeting 50 ",{"type":21,"tag":26,"props":16498,"children":16499},{"href":15857},[16500],{"type":31,"value":16501},"logical qubits",{"type":31,"value":16503},", Pangaea matched the logical error rates of standard planar surface-code architectures while using roughly ten times fewer physical qubits. That is the kind of figure that, if it survives independent scrutiny, would matter more than most hardware announcements this year, because qubit overhead is the single biggest obstacle between today's noisy processors and a fault-tolerant machine.",{"type":21,"tag":41,"props":16505,"children":16507},{"id":16506},"the-problem-pangaea-is-aimed-at",[16508],{"type":31,"value":16509},"The problem Pangaea is aimed at",{"type":21,"tag":22,"props":16511,"children":16512},{},[16513],{"type":31,"value":16514},"Standard 2D surface-code error correction scales physical qubit count roughly as the square of the code distance, written O(d²) per logical qubit, where d determines how well the code suppresses errors. That quadratic relationship is why credible fault-tolerant roadmaps talk about needing physical qubit counts in the hundreds of thousands to millions: the error suppression you need for useful algorithms requires a large d, and the qubit cost of a large d compounds fast under a 2D layout.",{"type":21,"tag":41,"props":16516,"children":16518},{"id":16517},"how-the-architecture-gets-around-it",[16519],{"type":31,"value":16520},"How the architecture gets around it",{"type":21,"tag":22,"props":16522,"children":16523},{},[16524],{"type":31,"value":16525},"Pangaea is a modular, three-dimensional superconducting design that arranges specialized code patches, some running surface codes, some running color codes, as separate physical blocks rather than one flat 2D grid. The connective piece is what Qarakal calls a quantum bus: an auxiliary gauge-code strip that mediates operations between physically separated code patches by reconstructing multi-qubit joint Pauli operators, without needing the patches to sit directly adjacent to each other. That is the mechanism behind the qubit savings. Qarakal describes the resulting scaling for multi-qubit interactions as O(dNL) physical qubits for N logical qubits at distance d, versus O(d²NL) for a standard 2D layout, which is the difference between linear and quadratic growth in d. The architecture also includes a native 15-to-1 magic-state distillation module and measurement-based fault-tolerant CNOT primitives, both aimed at the same overhead problem from the operations side rather than the layout side.",{"type":21,"tag":41,"props":16527,"children":16529},{"id":16528},"what-10x-rests-on",[16530],{"type":31,"value":16531},"What \"10x\" rests on",{"type":21,"tag":22,"props":16533,"children":16534},{},[16535],{"type":31,"value":16536},"The tenfold figure comes from Qarakal's own fault-tolerance simulations, not from a physical device running the architecture, and not from an independent group reproducing the result. Simulated overhead claims in error correction have a mixed track record: some hold up when built, some run into wiring density, control electronics, or cross-talk problems that a simulation does not model well. Qarakal's design does address the wiring question directly by claiming reduced wiring density and control electronics overhead compared to a flat 2D chip, which is a real consideration for a 3D layout, but that claim is also simulation-stage, not hardware-verified.",{"type":21,"tag":41,"props":16538,"children":16540},{"id":16539},"why-this-is-worth-tracking-anyway",[16541],{"type":31,"value":16542},"Why this is worth tracking anyway",{"type":21,"tag":22,"props":16544,"children":16545},{},[16546,16548,16553],{"type":31,"value":16547},"Every credible path to a useful fault-tolerant quantum computer runs through cutting qubit overhead, which is why IBM's move toward qLDPC-style codes, Quantinuum's trapped-ion connectivity advantage, and now Qarakal's 3D modular approach are all answers to the same underlying question from different hardware angles. Our piece on ",{"type":21,"tag":26,"props":16549,"children":16550},{"href":3573},[16551],{"type":31,"value":16552},"Quantinuum's Helios encoding ratio",{"type":31,"value":16554}," covers why the physical-to-logical qubit ratio, not raw qubit count, is the number that indicates real progress, and Pangaea's assertion is trying to move that same ratio with a different technique.",{"type":21,"tag":41,"props":16556,"children":16557},{"id":3461},[16558],{"type":31,"value":3464},{"type":21,"tag":22,"props":16560,"children":16561},{},[16562],{"type":31,"value":16563},"The test for Pangaea is whether Qarakal, or an independent lab, builds a physical device that reproduces the simulated overhead reduction rather than the architecture staying a paper design. A 3D superconducting layout also raises fabrication and cooling questions that a 2D chip does not face, and how Qarakal handles those in practice is the next thing worth checking, not the arXiv numbers alone.",{"title":7,"searchDepth":168,"depth":168,"links":16565},[16566,16567,16568,16569,16570],{"id":16506,"depth":168,"text":16509},{"id":16517,"depth":168,"text":16520},{"id":16528,"depth":168,"text":16531},{"id":16539,"depth":168,"text":16542},{"id":3461,"depth":168,"text":3464},"content:blog:qarakal-pangaea-modular-architecture.md","blog\u002Fqarakal-pangaea-modular-architecture.md","blog\u002Fqarakal-pangaea-modular-architecture",{"_path":16197,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":16575,"description":16576,"date":16008,"author":11,"tags":16577,"readingTime":234,"body":16578,"_type":1187,"_id":16664,"_source":1189,"_file":16665,"_stem":16666,"_extension":1192},"Rolls-Royce Is Testing Whether Quantum Computers Help Design a Jet Engine","Quantinuum, Rolls-Royce, Riverlane, and the University of Edinburgh's EPCC signed an agreement to test quantum computational building blocks for industrial design problems like gas turbine simulation on Quantinuum's Helios system, building on years of prior fluid-dynamics research.",[3396,10536],{"type":18,"children":16579,"toc":16657},[16580,16585,16591,16602,16608,16613,16619,16624,16630,16642,16646],{"type":21,"tag":22,"props":16581,"children":16582},{},[16583],{"type":31,"value":16584},"Quantinuum, Rolls-Royce, Riverlane, and EPCC (the UK's national supercomputing centre, based at the University of Edinburgh) announced an agreement on July 14, 2026, to explore what quantum computing would need to look like to fit into real industrial design workflows, with gas turbine design named as the specific target. This is not a first contact between the parties. It builds on prior work between Rolls-Royce, Riverlane, and EPCC that already laid groundwork on the algorithmic, error-correction, and data requirements for tackling fluid dynamics problems with quantum hardware, which is the detail that separates this from a cold-start pilot.",{"type":21,"tag":41,"props":16586,"children":16588},{"id":16587},"who-is-contributing-what",[16589],{"type":31,"value":16590},"Who is contributing what",{"type":21,"tag":22,"props":16592,"children":16593},{},[16594,16596,16600],{"type":31,"value":16595},"The agreement splits responsibility along each party's own expertise rather than bundling everyone into a vague joint statement. Quantinuum provides access to its quantum systems and software stack. Rolls-Royce contributes the industrial design use cases and the domain knowledge needed to know whether a result is useful to an engineer, not only computationally interesting. Riverlane brings ",{"type":21,"tag":26,"props":16597,"children":16598},{"href":15828},[16599],{"type":31,"value":14732},{"type":31,"value":16601}," and algorithmic expertise, an area it specializes in independent of any single hardware vendor. EPCC contributes supercomputing expertise and the hybrid-workflow integration work needed to connect a quantum processor to a classical simulation pipeline rather than treating it as a standalone tool.",{"type":21,"tag":41,"props":16603,"children":16605},{"id":16604},"why-gas-turbine-design-is-a-real-test-case-not-a-marketing-one",[16606],{"type":31,"value":16607},"Why gas turbine design is a real test case, not a marketing one",{"type":21,"tag":22,"props":16609,"children":16610},{},[16611],{"type":31,"value":16612},"Gas turbine design depends heavily on computational fluid dynamics, a class of problem that is genuinely expensive to simulate classically and has long been cited, correctly, as a plausible quantum use case. That plausibility has not translated into much published, concrete progress industry-wide, which is exactly why the prior Rolls-Royce and Riverlane fluid-dynamics groundwork matters here. The plan under this agreement is to test key computational building blocks, not complete turbine simulations, on Quantinuum's Helios system now, and assess how those building blocks would scale on Quantinuum's planned Sol and Apollo systems.",{"type":21,"tag":41,"props":16614,"children":16616},{"id":16615},"what-computational-building-blocks-signals",[16617],{"type":31,"value":16618},"What \"computational building blocks\" signals",{"type":21,"tag":22,"props":16620,"children":16621},{},[16622],{"type":31,"value":16623},"Naming building blocks rather than a finished application is a narrower and more honest scope than most industrial-quantum announcements set for themselves. It suggests the collaborators are testing whether specific subroutines, the kind of thing that needs to work correctly and efficiently before a full fluid-dynamics algorithm runs on quantum hardware at all, behave the way theory predicts on Helios today. That is a slower, more verifiable path than announcing a turbine simulation result before the underlying pieces are proven out.",{"type":21,"tag":41,"props":16625,"children":16627},{"id":16626},"how-this-compares-to-quantinuums-other-industrial-partnerships",[16628],{"type":31,"value":16629},"How this compares to Quantinuum's other industrial partnerships",{"type":21,"tag":22,"props":16631,"children":16632},{},[16633,16635,16640],{"type":31,"value":16634},"Quantinuum's ",{"type":21,"tag":26,"props":16636,"children":16637},{"href":3524},[16638],{"type":31,"value":16639},"multi-year partnership with BMW",{"type":31,"value":16641}," runs on a similar structure: named hardware generations (Helios, Sol, Apollo), a particular scientific challenge rather than a generic industry reference, and a track record of prior collaboration behind the new announcement. The Rolls-Royce agreement follows the same pattern, industrial design and fluid dynamics in place of electrochemistry, which suggests Quantinuum is running a repeatable playbook for these deals rather than a one-off press moment.",{"type":21,"tag":41,"props":16643,"children":16644},{"id":3461},[16645],{"type":31,"value":3464},{"type":21,"tag":22,"props":16647,"children":16648},{},[16649,16651,16655],{"type":31,"value":16650},"The next real signal is whether Riverlane or EPCC publishes a technical result on which specific building blocks ran successfully on Helios, and how the projected scaling to Sol and Apollo compares against the actual hardware once those systems ship. Our ",{"type":21,"tag":26,"props":16652,"children":16653},{"href":16291},[16654],{"type":31,"value":16294},{"type":31,"value":16656}," tracks which quantum applications, across industries, have moved past the building-blocks stage into results run on real hardware.",{"title":7,"searchDepth":168,"depth":168,"links":16658},[16659,16660,16661,16662,16663],{"id":16587,"depth":168,"text":16590},{"id":16604,"depth":168,"text":16607},{"id":16615,"depth":168,"text":16618},{"id":16626,"depth":168,"text":16629},{"id":3461,"depth":168,"text":3464},"content:blog:quantinuum-rolls-royce-riverlane-edinburgh-industrial-design.md","blog\u002Fquantinuum-rolls-royce-riverlane-edinburgh-industrial-design.md","blog\u002Fquantinuum-rolls-royce-riverlane-edinburgh-industrial-design",{"_path":15973,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":16668,"description":16669,"date":16008,"author":11,"tags":16670,"readingTime":273,"body":16671,"_type":1187,"_id":16759,"_source":1189,"_file":16760,"_stem":16761,"_extension":1192},"A Live Fiber Line Between Chicago and Indiana Ran 1.6 Tb\u002Fs Under Both PQC and QKD at Once","Quantum Corridor, Ciena, and Toshiba completed a field trial encrypting 1.6 Tb\u002Fs of live commercial traffic between Chicago and Hammond, Indiana, using post-quantum cryptography and quantum key distribution simultaneously on the same fiber.",[3849,3850,3851],{"type":18,"children":16672,"toc":16752},[16673,16685,16691,16696,16702,16707,16713,16726,16732,16737,16741],{"type":21,"tag":22,"props":16674,"children":16675},{},[16676,16678,16683],{"type":31,"value":16677},"Quantum Corridor, Ciena, and Toshiba completed a field trial on August 5, 2026, encrypting 1.6 terabits per second of optical capacity between a Chicago data center and a Hammond, Indiana data center, roughly 21.8 kilometers of metro fiber, using two different quantum-era security methods running at the same time on the same network. The trial paired ",{"type":21,"tag":26,"props":16679,"children":16681},{"href":16680},"\u002Fglossary\u002Fpost-quantum-cryptography",[16682],{"type":31,"value":3964},{"type":31,"value":16684}," with quantum key distribution (QKD), rather than choosing one approach over the other, which is itself the more interesting part of this announcement.",{"type":21,"tag":41,"props":16686,"children":16688},{"id":16687},"two-different-answers-to-the-same-threat-run-together",[16689],{"type":31,"value":16690},"Two different answers to the same threat, run together",{"type":21,"tag":22,"props":16692,"children":16693},{},[16694],{"type":31,"value":16695},"Post-quantum cryptography and QKD solve the same underlying problem, protecting encrypted data against decryption by a future large-scale quantum computer, through entirely different mechanisms. PQC uses new classical algorithms, run on ordinary hardware, that are believed to resist quantum attacks. QKD uses the physics of quantum states to detect eavesdropping and distribute encryption keys, which requires dedicated hardware and, in this case, Toshiba's QKD servers generating the quantum-derived symmetric keys. Running both simultaneously over the same dense wavelength-division multiplexing (DWDM) infrastructure, alongside ordinary classical data traffic on the same fiber pairs, is a statement about defense in depth: if one approach turns out to have a weakness that is not currently known, the other is still standing.",{"type":21,"tag":41,"props":16697,"children":16699},{"id":16698},"the-hardware-doing-the-work",[16700],{"type":31,"value":16701},"The hardware doing the work",{"type":21,"tag":22,"props":16703,"children":16704},{},[16705],{"type":31,"value":16706},"The encryption ran on Ciena's Waveserver platform with WaveLogic 6 Extreme coherent optics, applying wire-speed optical-layer AES-256-GCM encryption using NIST-certified post-quantum algorithms for key establishment, layered with Toshiba's QKD-derived keys. That combination matters for a reason beyond the cryptography itself: it ran on live, in-production network infrastructure rather than a lab testbed, and it worked at 1.6 Tb\u002Fs, a real commercial-grade capacity figure, not a demonstration throughput far below what an actual network operator needs.",{"type":21,"tag":41,"props":16708,"children":16710},{"id":16709},"why-harvest-now-decrypt-later-is-the-actual-threat-model-here",[16711],{"type":31,"value":16712},"Why \"harvest now, decrypt later\" is the actual threat model here",{"type":21,"tag":22,"props":16714,"children":16715},{},[16716,16718,16724],{"type":31,"value":16717},"The trial's stated purpose is defending against \"harvest now, decrypt later,\" the practice of an adversary recording encrypted traffic today with the intent of decrypting it once a sufficiently capable quantum computer exists. That threat model is why this trial matters now, well before any quantum computer breaks RSA or ECC at scale. Data encrypted today with vulnerable algorithms is already exposed to a future break, which our ",{"type":21,"tag":26,"props":16719,"children":16721},{"href":16720},"\u002Fblog\u002Fpost-quantum-migration-deadlines",[16722],{"type":31,"value":16723},"PQC migration deadlines piece",{"type":31,"value":16725}," covers in terms of NIST and NSA's published timelines. A field trial proving PQC and QKD run together, at commercial speed, on infrastructure that already exists, is a concrete response to \"we're not ready yet.\"",{"type":21,"tag":41,"props":16727,"children":16729},{"id":16728},"crypto-agility-without-ripping-out-hardware",[16730],{"type":31,"value":16731},"Crypto-agility without ripping out hardware",{"type":21,"tag":22,"props":16733,"children":16734},{},[16735],{"type":31,"value":16736},"The trial also demonstrated the transition working through a software upgrade path rather than a hardware replacement, meaning existing Ciena Waveserver deployments plausibly gain this protection without a physical infrastructure swap. That is directly relevant to organizations facing compliance mandates, the trial specifically cites U.S. and French cybersecurity requirements, since a software-upgrade path is a materially cheaper and faster migration story than a hardware refresh cycle.",{"type":21,"tag":41,"props":16738,"children":16739},{"id":3461},[16740],{"type":31,"value":3464},{"type":21,"tag":22,"props":16742,"children":16743},{},[16744,16746,16750],{"type":31,"value":16745},"The next test is whether this specific PQC-plus-QKD combination gets adopted beyond a single field trial route, into networks carrying traffic for organizations with real regulatory deadlines to hit. Our ",{"type":21,"tag":26,"props":16747,"children":16748},{"href":1131},[16749],{"type":31,"value":15992},{"type":31,"value":16751}," covers how QKD and quantum-safe networking fit into the broader distributed quantum computing picture beyond cryptography alone.",{"title":7,"searchDepth":168,"depth":168,"links":16753},[16754,16755,16756,16757,16758],{"id":16687,"depth":168,"text":16690},{"id":16698,"depth":168,"text":16701},{"id":16709,"depth":168,"text":16712},{"id":16728,"depth":168,"text":16731},{"id":3461,"depth":168,"text":3464},"content:blog:quantum-corridor-ciena-toshiba-quantum-safe-fiber.md","blog\u002Fquantum-corridor-ciena-toshiba-quantum-safe-fiber.md","blog\u002Fquantum-corridor-ciena-toshiba-quantum-safe-fiber",{"_path":16763,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":16764,"description":16765,"date":16766,"author":11,"tags":16767,"readingTime":273,"body":16768,"_type":1187,"_id":16859,"_source":1189,"_file":16860,"_stem":16861,"_extension":1192},"\u002Fblog\u002Fcaltech-oratomic-mitten-codes-qldpc","Caltech and Oratomic's 'Mitten Codes' Hit a Constant 20% Encoding Rate","Caltech and Oratomic introduced mitten codes, a non-abelian qLDPC code family with a constant 20% encoding rate and low check weight. A distinct technical paper from the resource-estimate research behind Oratomic's funding round, not a restatement of it.","2026-08-04",[3396,1207,14720],{"type":18,"children":16769,"toc":16853},[16770,16783,16789,16809,16815,16828,16832,16837,16841],{"type":21,"tag":22,"props":16771,"children":16772},{},[16773,16775,16781],{"type":31,"value":16774},"Caltech and Oratomic introduced mitten codes on August 3, 2026, a new family of non-abelian quantum low-density parity-check codes published on arXiv under the title \"High-rate qLDPC processors.\" This is worth separating clearly from ",{"type":21,"tag":26,"props":16776,"children":16778},{"href":16777},"\u002Fblog\u002Foratomic-300-million-series-a-neutral-atom",[16779],{"type":31,"value":16780},"Oratomic's $300 million Series A",{"type":31,"value":16782},", covered here recently: that article was about a funding round built on an earlier Caltech resource estimate. This is a different, later paper describing an actual code construction.",{"type":21,"tag":41,"props":16784,"children":16786},{"id":16785},"what-a-constant-encoding-rate-buys-you",[16787],{"type":31,"value":16788},"What a constant encoding rate buys you",{"type":21,"tag":22,"props":16790,"children":16791},{},[16792,16794,16799,16801,16807],{"type":31,"value":16793},"Encoding rate is the ratio of logical qubits to physical qubits a code produces, and it's one of the two numbers (alongside check weight) that decide whether a qLDPC code is practical to build. Surface codes, the current default, have encoding rates that shrink as you scale up, which is exactly the overhead problem our ",{"type":21,"tag":26,"props":16795,"children":16796},{"href":4082},[16797],{"type":31,"value":16798},"logical qubits explainer",{"type":31,"value":16800}," covers in general terms. A code family with a ",{"type":21,"tag":16802,"props":16803,"children":16804},"strong",{},[16805],{"type":31,"value":16806},"constant",{"type":31,"value":16808}," rate, here reported at 20%, doesn't lose ground as the code grows larger. That property, combined with low check weight (few qubits involved per parity check, which matters for realistic hardware wiring), is what makes a qLDPC construction worth naming rather than another point in a resource-estimate table.",{"type":21,"tag":41,"props":16810,"children":16812},{"id":16811},"non-abelian-and-why-thats-the-interesting-part",[16813],{"type":31,"value":16814},"Non-abelian, and why that's the interesting part",{"type":21,"tag":22,"props":16816,"children":16817},{},[16818,16820,16826],{"type":31,"value":16819},"Most qLDPC constructions getting attention recently, including the ",{"type":21,"tag":26,"props":16821,"children":16823},{"href":16822},"\u002Fblog\u002Fustc-origin-quantum-routing-codes-qldpc",[16824],{"type":31,"value":16825},"routing codes from USTC and Origin Quantum Computing",{"type":31,"value":16827}," covered here days ago, build on structures where the underlying group operations commute (abelian structures). Mitten codes reportedly use non-abelian group structures instead, a mathematically distinct approach to the same overhead problem. Two independent teams reaching for qLDPC code families from different corners of group theory in the same week is a real signal that this is where the field's attention on error-correction overhead currently sits, not evidence that either outcome is more correct than the other.",{"type":21,"tag":41,"props":16829,"children":16830},{"id":3532},[16831],{"type":31,"value":3535},{"type":21,"tag":22,"props":16833,"children":16834},{},[16835],{"type":31,"value":16836},"What's confirmed: the code family's name, its reported 20% constant encoding rate, low check weight, and the non-abelian construction, all as described in secondary reporting on the arXiv paper. What isn't confirmed here: independent verification of the rate claim, a hardware demonstration, or peer review. Same caveat as the routing codes coverage: this is a real, checkable theoretical contribution, not yet a result from working hardware.",{"type":21,"tag":41,"props":16838,"children":16839},{"id":3461},[16840],{"type":31,"value":3464},{"type":21,"tag":22,"props":16842,"children":16843},{},[16844,16846,16851],{"type":31,"value":16845},"Whether either Oratomic's mitten codes or USTC's routing codes gets picked up by a hardware team and fabricated is the test that matters. Our ",{"type":21,"tag":26,"props":16847,"children":16848},{"href":14748},[16849],{"type":31,"value":16850},"real-time decoding bottleneck piece",{"type":31,"value":16852}," covers the other half of this cost equation: a code with a great encoding rate still needs a decoder fast enough to keep up with it in practice.",{"title":7,"searchDepth":168,"depth":168,"links":16854},[16855,16856,16857,16858],{"id":16785,"depth":168,"text":16788},{"id":16811,"depth":168,"text":16814},{"id":3532,"depth":168,"text":3535},{"id":3461,"depth":168,"text":3464},"content:blog:caltech-oratomic-mitten-codes-qldpc.md","blog\u002Fcaltech-oratomic-mitten-codes-qldpc.md","blog\u002Fcaltech-oratomic-mitten-codes-qldpc",{"_path":16863,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":16864,"description":16865,"date":16766,"author":11,"tags":16866,"readingTime":309,"body":16868,"_type":1187,"_id":17349,"_source":1189,"_file":17350,"_stem":17351,"_extension":1192},"\u002Fblog\u002Fcuda-q-multi-gpu-simulation-guide","Multi-GPU Quantum Simulation with CUDA-Q: A Practical Guide","How CUDA-Q splits a state vector across multiple GPUs to simulate more qubits than one GPU's memory allows, and the real distinction between multi-GPU state simulation and NVIDIA's separate multi-QPU (mqpu) execution platform.",[16867,13882,7919],"Simulators",{"type":18,"children":16869,"toc":17341},[16870,16875,16881,16893,16899,16904,16917,16923,16928,17243,17255,17261,17281,17287,17300,17304,17337],{"type":21,"tag":22,"props":16871,"children":16872},{},[16873],{"type":31,"value":16874},"The code in this guide reflects NVIDIA's documented CUDA-Q API pattern, checked against NVIDIA's own developer documentation. Unlike the Qiskit tutorials elsewhere on this site, it wasn't executed here: CUDA-Q ships Linux-only wheels and needs real NVIDIA GPU hardware, neither of which this environment has. Verify exact target names and flags against NVIDIA's current docs before relying on them.",{"type":21,"tag":41,"props":16876,"children":16878},{"id":16877},"why-one-gpu-runs-out-of-room",[16879],{"type":31,"value":16880},"Why one GPU runs out of room",{"type":21,"tag":22,"props":16882,"children":16883},{},[16884,16886,16891],{"type":31,"value":16885},"A full state-vector simulation stores one complex amplitude per basis state, and the basis state count doubles with every added qubit. At single precision, a 30-qubit state vector needs roughly 8 GB. Add three more qubits and it's 64 GB, past what a single consumer or even most datacenter GPUs hold. This is the same wall covered in our ",{"type":21,"tag":26,"props":16887,"children":16888},{"href":3373},[16889],{"type":31,"value":16890},"free simulators comparison",{"type":31,"value":16892},": a laptop CPU tops out around 30 qubits, and a single GPU pushes that further but still hits a hard memory ceiling.",{"type":21,"tag":41,"props":16894,"children":16896},{"id":16895},"the-fix-split-the-state-vector-not-the-circuit",[16897],{"type":31,"value":16898},"The fix: split the state vector, not the circuit",{"type":21,"tag":22,"props":16900,"children":16901},{},[16902],{"type":31,"value":16903},"CUDA-Q's multi-GPU target distributes the state vector itself across multiple GPUs, each holding a slice of the total amplitude array. A single-qubit gate that only touches amplitudes within one GPU's slice runs locally. A gate acting on a qubit whose index crosses the partition boundary needs data from another GPU's slice, which is where NVLink or NVSwitch interconnect bandwidth between GPUs becomes the practical bottleneck rather than any single GPU's compute throughput.",{"type":21,"tag":22,"props":16905,"children":16906},{},[16907,16909,16915],{"type":31,"value":16908},"This is a fundamentally different kind of parallelism than running many independent circuits at once. CUDA-Q also ships a separate ",{"type":21,"tag":104,"props":16910,"children":16912},{"className":16911},[],[16913],{"type":31,"value":16914},"mqpu",{"type":31,"value":16916}," (multi-QPU) platform for that case: distributing a batch of independent circuit executions, a parameter sweep for a variational algorithm, for instance, across multiple simulated or real QPUs in parallel. Multi-GPU state splitting makes one larger circuit simulable. Multi-QPU distribution makes many independent circuits run faster together. Mixing these two up is an straightforward way to misread a CUDA-Q benchmark.",{"type":21,"tag":41,"props":16918,"children":16920},{"id":16919},"what-the-code-pattern-looks-like",[16921],{"type":31,"value":16922},"What the code pattern looks like",{"type":21,"tag":22,"props":16924,"children":16925},{},[16926],{"type":31,"value":16927},"CUDA-Q's design keeps the kernel itself untouched when the target changes, only the execution backend selection differs:",{"type":21,"tag":129,"props":16929,"children":16931},{"className":131,"code":16930,"language":133,"meta":7,"style":7},"import cudaq\n\n@cudaq.kernel\ndef ghz_state(n: int):\n    qubits = cudaq.qvector(n)\n    h(qubits[0])\n    for i in range(n - 1):\n        x.ctrl(qubits[i], qubits[i + 1])\n    mz(qubits)\n\n# Single GPU\ncudaq.set_target(\"nvidia\")\nresult_single = cudaq.sample(ghz_state, 30, shots_count=1000)\n\n# Multi-GPU, state vector split across all visible GPUs\ncudaq.set_target(\"nvidia\", option=\"mgpu\")\nresult_multi = cudaq.sample(ghz_state, 34, shots_count=1000)\n",[16932],{"type":21,"tag":104,"props":16933,"children":16934},{"__ignoreMap":7},[16935,16946,16953,16960,16986,17002,17017,17055,17075,17083,17090,17098,17113,17154,17161,17169,17202],{"type":21,"tag":139,"props":16936,"children":16937},{"class":141,"line":142},[16938,16942],{"type":21,"tag":139,"props":16939,"children":16940},{"style":146},[16941],{"type":31,"value":160},{"type":21,"tag":139,"props":16943,"children":16944},{"style":152},[16945],{"type":31,"value":8121},{"type":21,"tag":139,"props":16947,"children":16948},{"class":141,"line":168},[16949],{"type":21,"tag":139,"props":16950,"children":16951},{"emptyLinePlaceholder":194},[16952],{"type":31,"value":197},{"type":21,"tag":139,"props":16954,"children":16955},{"class":141,"line":190},[16956],{"type":21,"tag":139,"props":16957,"children":16958},{"style":4509},[16959],{"type":31,"value":7979},{"type":21,"tag":139,"props":16961,"children":16962},{"class":141,"line":200},[16963,16967,16972,16977,16982],{"type":21,"tag":139,"props":16964,"children":16965},{"style":146},[16966],{"type":31,"value":5487},{"type":21,"tag":139,"props":16968,"children":16969},{"style":4509},[16970],{"type":31,"value":16971}," ghz_state",{"type":21,"tag":139,"props":16973,"children":16974},{"style":152},[16975],{"type":31,"value":16976},"(n: ",{"type":21,"tag":139,"props":16978,"children":16979},{"style":214},[16980],{"type":31,"value":16981},"int",{"type":21,"tag":139,"props":16983,"children":16984},{"style":152},[16985],{"type":31,"value":7430},{"type":21,"tag":139,"props":16987,"children":16988},{"class":141,"line":226},[16989,16993,16997],{"type":21,"tag":139,"props":16990,"children":16991},{"style":152},[16992],{"type":31,"value":8004},{"type":21,"tag":139,"props":16994,"children":16995},{"style":146},[16996],{"type":31,"value":211},{"type":21,"tag":139,"props":16998,"children":16999},{"style":152},[17000],{"type":31,"value":17001}," cudaq.qvector(n)\n",{"type":21,"tag":139,"props":17003,"children":17004},{"class":141,"line":234},[17005,17009,17013],{"type":21,"tag":139,"props":17006,"children":17007},{"style":152},[17008],{"type":31,"value":8076},{"type":21,"tag":139,"props":17010,"children":17011},{"style":214},[17012],{"type":31,"value":407},{"type":21,"tag":139,"props":17014,"children":17015},{"style":152},[17016],{"type":31,"value":599},{"type":21,"tag":139,"props":17018,"children":17019},{"class":141,"line":273},[17020,17025,17029,17033,17037,17042,17046,17051],{"type":21,"tag":139,"props":17021,"children":17022},{"style":146},[17023],{"type":31,"value":17024},"    for",{"type":21,"tag":139,"props":17026,"children":17027},{"style":152},[17028],{"type":31,"value":7408},{"type":21,"tag":139,"props":17030,"children":17031},{"style":146},[17032],{"type":31,"value":1496},{"type":21,"tag":139,"props":17034,"children":17035},{"style":214},[17036],{"type":31,"value":7417},{"type":21,"tag":139,"props":17038,"children":17039},{"style":152},[17040],{"type":31,"value":17041},"(n ",{"type":21,"tag":139,"props":17043,"children":17044},{"style":146},[17045],{"type":31,"value":825},{"type":21,"tag":139,"props":17047,"children":17048},{"style":214},[17049],{"type":31,"value":17050}," 1",{"type":21,"tag":139,"props":17052,"children":17053},{"style":152},[17054],{"type":31,"value":7430},{"type":21,"tag":139,"props":17056,"children":17057},{"class":141,"line":309},[17058,17063,17067,17071],{"type":21,"tag":139,"props":17059,"children":17060},{"style":152},[17061],{"type":31,"value":17062},"        x.ctrl(qubits[i], qubits[i ",{"type":21,"tag":139,"props":17064,"children":17065},{"style":146},[17066],{"type":31,"value":1599},{"type":21,"tag":139,"props":17068,"children":17069},{"style":214},[17070],{"type":31,"value":17050},{"type":21,"tag":139,"props":17072,"children":17073},{"style":152},[17074],{"type":31,"value":599},{"type":21,"tag":139,"props":17076,"children":17077},{"class":141,"line":16},[17078],{"type":21,"tag":139,"props":17079,"children":17080},{"style":152},[17081],{"type":31,"value":17082},"    mz(qubits)\n",{"type":21,"tag":139,"props":17084,"children":17085},{"class":141,"line":361},[17086],{"type":21,"tag":139,"props":17087,"children":17088},{"emptyLinePlaceholder":194},[17089],{"type":31,"value":197},{"type":21,"tag":139,"props":17091,"children":17092},{"class":141,"line":369},[17093],{"type":21,"tag":139,"props":17094,"children":17095},{"style":220},[17096],{"type":31,"value":17097},"# Single GPU\n",{"type":21,"tag":139,"props":17099,"children":17100},{"class":141,"line":378},[17101,17105,17109],{"type":21,"tag":139,"props":17102,"children":17103},{"style":152},[17104],{"type":31,"value":8191},{"type":21,"tag":139,"props":17106,"children":17107},{"style":262},[17108],{"type":31,"value":8196},{"type":21,"tag":139,"props":17110,"children":17111},{"style":152},[17112],{"type":31,"value":270},{"type":21,"tag":139,"props":17114,"children":17115},{"class":141,"line":387},[17116,17121,17125,17130,17134,17138,17142,17146,17150],{"type":21,"tag":139,"props":17117,"children":17118},{"style":152},[17119],{"type":31,"value":17120},"result_single ",{"type":21,"tag":139,"props":17122,"children":17123},{"style":146},[17124],{"type":31,"value":211},{"type":21,"tag":139,"props":17126,"children":17127},{"style":152},[17128],{"type":31,"value":17129}," cudaq.sample(ghz_state, ",{"type":21,"tag":139,"props":17131,"children":17132},{"style":214},[17133],{"type":31,"value":14071},{"type":21,"tag":139,"props":17135,"children":17136},{"style":152},[17137],{"type":31,"value":259},{"type":21,"tag":139,"props":17139,"children":17140},{"style":923},[17141],{"type":31,"value":8221},{"type":21,"tag":139,"props":17143,"children":17144},{"style":146},[17145],{"type":31,"value":211},{"type":21,"tag":139,"props":17147,"children":17148},{"style":214},[17149],{"type":31,"value":1730},{"type":21,"tag":139,"props":17151,"children":17152},{"style":152},[17153],{"type":31,"value":270},{"type":21,"tag":139,"props":17155,"children":17156},{"class":141,"line":396},[17157],{"type":21,"tag":139,"props":17158,"children":17159},{"emptyLinePlaceholder":194},[17160],{"type":31,"value":197},{"type":21,"tag":139,"props":17162,"children":17163},{"class":141,"line":414},[17164],{"type":21,"tag":139,"props":17165,"children":17166},{"style":220},[17167],{"type":31,"value":17168},"# Multi-GPU, state vector split across all visible GPUs\n",{"type":21,"tag":139,"props":17170,"children":17171},{"class":141,"line":12589},[17172,17176,17180,17184,17189,17193,17198],{"type":21,"tag":139,"props":17173,"children":17174},{"style":152},[17175],{"type":31,"value":8191},{"type":21,"tag":139,"props":17177,"children":17178},{"style":262},[17179],{"type":31,"value":8196},{"type":21,"tag":139,"props":17181,"children":17182},{"style":152},[17183],{"type":31,"value":259},{"type":21,"tag":139,"props":17185,"children":17186},{"style":923},[17187],{"type":31,"value":17188},"option",{"type":21,"tag":139,"props":17190,"children":17191},{"style":146},[17192],{"type":31,"value":211},{"type":21,"tag":139,"props":17194,"children":17195},{"style":262},[17196],{"type":31,"value":17197},"\"mgpu\"",{"type":21,"tag":139,"props":17199,"children":17200},{"style":152},[17201],{"type":31,"value":270},{"type":21,"tag":139,"props":17203,"children":17204},{"class":141,"line":12606},[17205,17210,17214,17218,17223,17227,17231,17235,17239],{"type":21,"tag":139,"props":17206,"children":17207},{"style":152},[17208],{"type":31,"value":17209},"result_multi ",{"type":21,"tag":139,"props":17211,"children":17212},{"style":146},[17213],{"type":31,"value":211},{"type":21,"tag":139,"props":17215,"children":17216},{"style":152},[17217],{"type":31,"value":17129},{"type":21,"tag":139,"props":17219,"children":17220},{"style":214},[17221],{"type":31,"value":17222},"34",{"type":21,"tag":139,"props":17224,"children":17225},{"style":152},[17226],{"type":31,"value":259},{"type":21,"tag":139,"props":17228,"children":17229},{"style":923},[17230],{"type":31,"value":8221},{"type":21,"tag":139,"props":17232,"children":17233},{"style":146},[17234],{"type":31,"value":211},{"type":21,"tag":139,"props":17236,"children":17237},{"style":214},[17238],{"type":31,"value":1730},{"type":21,"tag":139,"props":17240,"children":17241},{"style":152},[17242],{"type":31,"value":270},{"type":21,"tag":22,"props":17244,"children":17245},{},[17246,17247,17253],{"type":31,"value":11026},{"type":21,"tag":104,"props":17248,"children":17250},{"className":17249},[],[17251],{"type":31,"value":17252},"ghz_state",{"type":31,"value":17254}," kernel is identical in both cases. Only the goal line changes, which is the actual value proposition: the same program that runs on a laptop CPU target during development runs unmodified on a multi-GPU cluster once the circuit outgrows single-GPU memory, without a rewrite.",{"type":21,"tag":41,"props":17256,"children":17258},{"id":17257},"what-needs-verification-before-you-trust-a-claim-here",[17259],{"type":31,"value":17260},"What needs verification before you trust a claim here",{"type":21,"tag":22,"props":17262,"children":17263},{},[17264,17266,17272,17273,17279],{"type":31,"value":17265},"Because this guide wasn't run against real hardware, treat every specific number in NVIDIA's own multi-GPU documentation (scaling efficiency, maximum qubit counts at a given GPU count, interconnect bandwidth requirements) as a vendor assertion to check rather than a fact to repeat, the same standard this site applies to any hardware supplier's own benchmark. What's verifiable without a cluster: that the kernel code above is syntactically valid CUDA-Q, and that the ",{"type":21,"tag":104,"props":17267,"children":17269},{"className":17268},[],[17270],{"type":31,"value":17271},"nvidia",{"type":31,"value":3615},{"type":21,"tag":104,"props":17274,"children":17276},{"className":17275},[],[17277],{"type":31,"value":17278},"mgpu",{"type":31,"value":17280}," targets are real, documented options rather than something invented for this guide. Beyond that, run it on real multi-GPU hardware, or read NVIDIA's own published multi-GPU benchmarks, before citing a specific scaling number.",{"type":21,"tag":41,"props":17282,"children":17284},{"id":17283},"where-this-fits-with-nvqlink",[17285],{"type":31,"value":17286},"Where this fits with NVQLink",{"type":21,"tag":22,"props":17288,"children":17289},{},[17290,17292,17298],{"type":31,"value":17291},"Multi-GPU state simulation and ",{"type":21,"tag":26,"props":17293,"children":17295},{"href":17294},"\u002Fnvqlink",[17296],{"type":31,"value":17297},"NVQLink",{"type":31,"value":17299}," solve two distinct problems that happen to share the equivalent underlying GPU infrastructure. Multi-GPU simulation is about classically simulating a bigger circuit than one GPU holds. NVQLink is about connecting that same GPU infrastructure to a real QPU's control electronics fast enough to do real-time error correction decoding. Read together, they describe NVIDIA's strategy: own the classical compute layer on both sides of the quantum-classical boundary, regardless of whether the workload is simulating a circuit or decoding one from real hardware.",{"type":21,"tag":41,"props":17301,"children":17302},{"id":5900},[17303],{"type":31,"value":5903},{"type":21,"tag":1112,"props":17305,"children":17306},{},[17307,17312,17332],{"type":21,"tag":72,"props":17308,"children":17309},{},[17310],{"type":31,"value":17311},"If you have access to a multi-GPU machine, install CUDA-Q following NVIDIA's own Linux installation guide and reproduce the target-switching pattern above on a circuit sized to outgrow one GPU's memory.",{"type":21,"tag":72,"props":17313,"children":17314},{},[17315,17317,17323,17325,17330],{"type":31,"value":17316},"Compare the CUDA-Q multi-GPU approach against ",{"type":21,"tag":26,"props":17318,"children":17320},{"href":17319},"\u002Fsdks\u002Fpennylane",[17321],{"type":31,"value":17322},"PennyLane's lightning.gpu device",{"type":31,"value":17324}," and Qiskit Aer's GPU backend, both covered in our ",{"type":21,"tag":26,"props":17326,"children":17327},{"href":3373},[17328],{"type":31,"value":17329},"simulator comparison",{"type":31,"value":17331},", to see how three different SDKs handle the same underlying memory-scaling problem.",{"type":21,"tag":72,"props":17333,"children":17334},{},[17335],{"type":31,"value":17336},"Read NVIDIA's own CUDA-Q documentation directly for the current goal names and flags, which change between releases faster than a static guide tracks.",{"type":21,"tag":1168,"props":17338,"children":17339},{},[17340],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":17342},[17343,17344,17345,17346,17347,17348],{"id":16877,"depth":168,"text":16880},{"id":16895,"depth":168,"text":16898},{"id":16919,"depth":168,"text":16922},{"id":17257,"depth":168,"text":17260},{"id":17283,"depth":168,"text":17286},{"id":5900,"depth":168,"text":5903},"content:blog:cuda-q-multi-gpu-simulation-guide.md","blog\u002Fcuda-q-multi-gpu-simulation-guide.md","blog\u002Fcuda-q-multi-gpu-simulation-guide",{"_path":17353,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":17354,"description":17355,"date":16766,"author":11,"tags":17356,"readingTime":16,"body":17357,"_type":1187,"_id":18098,"_source":1189,"_file":18099,"_stem":18100,"_extension":1192},"\u002Fblog\u002Fhamiltonian-simulation-trotter-tutorial","Hamiltonian Simulation and Trotter Decomposition: A Practical Tutorial","Build Trotterized time evolution from scratch in Qiskit: why e^(-iHt) can't be applied directly, how the Trotter-Suzuki formula turns it into real gates, and the error-versus-depth trade-off every simulation has to make.",[13,14,15],{"type":18,"children":17358,"toc":18090},[17359,17372,17378,17383,17388,17394,17399,17407,17412,17417,17423,17428,17936,17956,17962,18003,18009,18029,18033,18086],{"type":21,"tag":22,"props":17360,"children":17361},{},[17362,17364,17370],{"type":31,"value":17363},"Simulating how a quantum system evolves over time was the original reason ",{"type":21,"tag":26,"props":17365,"children":17367},{"href":17366},"\u002Fresearch\u002Ffeynman-simulating-physics-1982",[17368],{"type":31,"value":17369},"Feynman proposed quantum computers",{"type":31,"value":17371}," at all in 1982: a classical computer's memory to represent a quantum state grows exponentially with the quantity of particles, and a quantum computer's doesn't. Hamiltonian simulation is that idea made concrete, and Trotter decomposition is the standard technique that makes it buildable in real gates.",{"type":21,"tag":41,"props":17373,"children":17375},{"id":17374},"the-problem-e-iht-isnt-a-gate",[17376],{"type":31,"value":17377},"The problem: e^(-iHt) isn't a gate",{"type":21,"tag":22,"props":17379,"children":17380},{},[17381],{"type":31,"value":17382},"A quantum system evolves under its Hamiltonian H according to the Schrödinger equation, and the formal solution is the unitary e^(-iHt). If H were a single Pauli string, this would be directly implementable, single-qubit rotations and a chain of CNOTs handle that case cleanly. Real Hamiltonians aren't that simple. A Hamiltonian for an actual system is a sum of many terms, H = H₁ + H₂ + ... + Hₖ, each a different Pauli string acting on distinct qubits, and in general these terms don't commute with each other.",{"type":21,"tag":22,"props":17384,"children":17385},{},[17386],{"type":31,"value":17387},"That non-commutation is the whole obstacle. If A and B commuted, e^(-i(A+B)t) would factor into e^(-iAt)·e^(-iBt), and each term would be implementable separately. They don't, so it doesn't factor cleanly, and there's no exact circuit for the sum as a single unit for an arbitrary Hamiltonian.",{"type":21,"tag":41,"props":17389,"children":17391},{"id":17390},"the-fix-trotter-suzuki-decomposition",[17392],{"type":31,"value":17393},"The fix: Trotter-Suzuki decomposition",{"type":21,"tag":22,"props":17395,"children":17396},{},[17397],{"type":31,"value":17398},"The Lie product formula gives an escape hatch: for any two operators A and B,",{"type":21,"tag":129,"props":17400,"children":17402},{"code":17401},"e^(-i(A+B)t) = lim(n->inf) [e^(-iAt\u002Fn) * e^(-iBt\u002Fn)]^n\n",[17403],{"type":21,"tag":104,"props":17404,"children":17405},{"__ignoreMap":7},[17406],{"type":31,"value":17401},{"type":21,"tag":22,"props":17408,"children":17409},{},[17410],{"type":31,"value":17411},"Split the total evolution time t into n small steps, alternate applying each term's own (easy) evolution for a short slice of time, and repeat. As n grows, the approximation converges to the true evolution. This is first-order Trotterization, and its error scales as O(t²\u002Fn): double the quantity of steps, and the error from non-commuting terms roughly halves.",{"type":21,"tag":22,"props":17413,"children":17414},{},[17415],{"type":31,"value":17416},"A more accurate variant, second-order (symmetric) Trotterization, applies the terms in a palindromic order (A, B, ..., B, A) each half-step, cutting the error to O(t³\u002Fn²) at the cost of roughly double the gates per step. Which one to use is a real engineering trade-off between circuit depth and simulation accuracy, not a settled question with one right answer.",{"type":21,"tag":41,"props":17418,"children":17420},{"id":17419},"building-it-a-2-qubit-heisenberg-model",[17421],{"type":31,"value":17422},"Building it: a 2-qubit Heisenberg model",{"type":21,"tag":22,"props":17424,"children":17425},{},[17426],{"type":31,"value":17427},"The Heisenberg Hamiltonian H = J(XX + YY + ZZ) on two qubits is a standard, small test case: three non-commuting two-qubit terms, small enough to reason about by hand, large enough to show real Trotter error.",{"type":21,"tag":129,"props":17429,"children":17431},{"code":17430,"language":133,"meta":7,"className":131,"style":7},"import numpy as np\nfrom qiskit import QuantumCircuit\nfrom qiskit.circuit.library import PauliEvolutionGate\nfrom qiskit.quantum_info import SparsePauliOp\n\nJ = 1.0\nhamiltonian = SparsePauliOp.from_list([\n    (\"XX\", J),\n    (\"YY\", J),\n    (\"ZZ\", J),\n])\n\ndef trotter_step(qc, dt):\n    \"\"\"One first-order Trotter step: apply each Pauli term's evolution in sequence.\"\"\"\n    for pauli, coeff in zip(hamiltonian.paulis, hamiltonian.coeffs):\n        term = SparsePauliOp(pauli, coeff)\n        qc.append(PauliEvolutionGate(term, time=dt), range(2))\n    return qc\n\ndef trotterized_evolution(t, steps):\n    qc = QuantumCircuit(2)\n    dt = t \u002F steps\n    for _ in range(steps):\n        trotter_step(qc, dt)\n    return qc\n\ncircuit = trotterized_evolution(t=1.0, steps=4)\nprint(circuit.count_ops())\n",[17432],{"type":21,"tag":104,"props":17433,"children":17434},{"__ignoreMap":7},[17435,17454,17473,17493,17514,17521,17538,17555,17573,17589,17605,17612,17619,17636,17644,17670,17687,17726,17738,17745,17763,17788,17815,17841,17850,17862,17870,17923],{"type":21,"tag":139,"props":17436,"children":17437},{"class":141,"line":142},[17438,17442,17446,17450],{"type":21,"tag":139,"props":17439,"children":17440},{"style":146},[17441],{"type":31,"value":160},{"type":21,"tag":139,"props":17443,"children":17444},{"style":152},[17445],{"type":31,"value":8517},{"type":21,"tag":139,"props":17447,"children":17448},{"style":146},[17449],{"type":31,"value":5343},{"type":21,"tag":139,"props":17451,"children":17452},{"style":152},[17453],{"type":31,"value":8619},{"type":21,"tag":139,"props":17455,"children":17456},{"class":141,"line":168},[17457,17461,17465,17469],{"type":21,"tag":139,"props":17458,"children":17459},{"style":146},[17460],{"type":31,"value":149},{"type":21,"tag":139,"props":17462,"children":17463},{"style":152},[17464],{"type":31,"value":155},{"type":21,"tag":139,"props":17466,"children":17467},{"style":146},[17468],{"type":31,"value":160},{"type":21,"tag":139,"props":17470,"children":17471},{"style":152},[17472],{"type":31,"value":6269},{"type":21,"tag":139,"props":17474,"children":17475},{"class":141,"line":190},[17476,17480,17484,17488],{"type":21,"tag":139,"props":17477,"children":17478},{"style":146},[17479],{"type":31,"value":149},{"type":21,"tag":139,"props":17481,"children":17482},{"style":152},[17483],{"type":31,"value":12829},{"type":21,"tag":139,"props":17485,"children":17486},{"style":146},[17487],{"type":31,"value":160},{"type":21,"tag":139,"props":17489,"children":17490},{"style":152},[17491],{"type":31,"value":17492}," PauliEvolutionGate\n",{"type":21,"tag":139,"props":17494,"children":17495},{"class":141,"line":200},[17496,17500,17505,17509],{"type":21,"tag":139,"props":17497,"children":17498},{"style":146},[17499],{"type":31,"value":149},{"type":21,"tag":139,"props":17501,"children":17502},{"style":152},[17503],{"type":31,"value":17504}," qiskit.quantum_info ",{"type":21,"tag":139,"props":17506,"children":17507},{"style":146},[17508],{"type":31,"value":160},{"type":21,"tag":139,"props":17510,"children":17511},{"style":152},[17512],{"type":31,"value":17513}," SparsePauliOp\n",{"type":21,"tag":139,"props":17515,"children":17516},{"class":141,"line":226},[17517],{"type":21,"tag":139,"props":17518,"children":17519},{"emptyLinePlaceholder":194},[17520],{"type":31,"value":197},{"type":21,"tag":139,"props":17522,"children":17523},{"class":141,"line":234},[17524,17529,17533],{"type":21,"tag":139,"props":17525,"children":17526},{"style":152},[17527],{"type":31,"value":17528},"J ",{"type":21,"tag":139,"props":17530,"children":17531},{"style":146},[17532],{"type":31,"value":211},{"type":21,"tag":139,"props":17534,"children":17535},{"style":214},[17536],{"type":31,"value":17537}," 1.0\n",{"type":21,"tag":139,"props":17539,"children":17540},{"class":141,"line":273},[17541,17546,17550],{"type":21,"tag":139,"props":17542,"children":17543},{"style":152},[17544],{"type":31,"value":17545},"hamiltonian ",{"type":21,"tag":139,"props":17547,"children":17548},{"style":146},[17549],{"type":31,"value":211},{"type":21,"tag":139,"props":17551,"children":17552},{"style":152},[17553],{"type":31,"value":17554}," SparsePauliOp.from_list([\n",{"type":21,"tag":139,"props":17556,"children":17557},{"class":141,"line":309},[17558,17563,17568],{"type":21,"tag":139,"props":17559,"children":17560},{"style":152},[17561],{"type":31,"value":17562},"    (",{"type":21,"tag":139,"props":17564,"children":17565},{"style":262},[17566],{"type":31,"value":17567},"\"XX\"",{"type":21,"tag":139,"props":17569,"children":17570},{"style":152},[17571],{"type":31,"value":17572},", J),\n",{"type":21,"tag":139,"props":17574,"children":17575},{"class":141,"line":16},[17576,17580,17585],{"type":21,"tag":139,"props":17577,"children":17578},{"style":152},[17579],{"type":31,"value":17562},{"type":21,"tag":139,"props":17581,"children":17582},{"style":262},[17583],{"type":31,"value":17584},"\"YY\"",{"type":21,"tag":139,"props":17586,"children":17587},{"style":152},[17588],{"type":31,"value":17572},{"type":21,"tag":139,"props":17590,"children":17591},{"class":141,"line":361},[17592,17596,17601],{"type":21,"tag":139,"props":17593,"children":17594},{"style":152},[17595],{"type":31,"value":17562},{"type":21,"tag":139,"props":17597,"children":17598},{"style":262},[17599],{"type":31,"value":17600},"\"ZZ\"",{"type":21,"tag":139,"props":17602,"children":17603},{"style":152},[17604],{"type":31,"value":17572},{"type":21,"tag":139,"props":17606,"children":17607},{"class":141,"line":369},[17608],{"type":21,"tag":139,"props":17609,"children":17610},{"style":152},[17611],{"type":31,"value":599},{"type":21,"tag":139,"props":17613,"children":17614},{"class":141,"line":378},[17615],{"type":21,"tag":139,"props":17616,"children":17617},{"emptyLinePlaceholder":194},[17618],{"type":31,"value":197},{"type":21,"tag":139,"props":17620,"children":17621},{"class":141,"line":387},[17622,17626,17631],{"type":21,"tag":139,"props":17623,"children":17624},{"style":146},[17625],{"type":31,"value":5487},{"type":21,"tag":139,"props":17627,"children":17628},{"style":4509},[17629],{"type":31,"value":17630}," trotter_step",{"type":21,"tag":139,"props":17632,"children":17633},{"style":152},[17634],{"type":31,"value":17635},"(qc, dt):\n",{"type":21,"tag":139,"props":17637,"children":17638},{"class":141,"line":396},[17639],{"type":21,"tag":139,"props":17640,"children":17641},{"style":262},[17642],{"type":31,"value":17643},"    \"\"\"One first-order Trotter step: apply each Pauli term's evolution in sequence.\"\"\"\n",{"type":21,"tag":139,"props":17645,"children":17646},{"class":141,"line":414},[17647,17651,17656,17660,17665],{"type":21,"tag":139,"props":17648,"children":17649},{"style":146},[17650],{"type":31,"value":17024},{"type":21,"tag":139,"props":17652,"children":17653},{"style":152},[17654],{"type":31,"value":17655}," pauli, coeff ",{"type":21,"tag":139,"props":17657,"children":17658},{"style":146},[17659],{"type":31,"value":1496},{"type":21,"tag":139,"props":17661,"children":17662},{"style":214},[17663],{"type":31,"value":17664}," zip",{"type":21,"tag":139,"props":17666,"children":17667},{"style":152},[17668],{"type":31,"value":17669},"(hamiltonian.paulis, hamiltonian.coeffs):\n",{"type":21,"tag":139,"props":17671,"children":17672},{"class":141,"line":12589},[17673,17678,17682],{"type":21,"tag":139,"props":17674,"children":17675},{"style":152},[17676],{"type":31,"value":17677},"        term ",{"type":21,"tag":139,"props":17679,"children":17680},{"style":146},[17681],{"type":31,"value":211},{"type":21,"tag":139,"props":17683,"children":17684},{"style":152},[17685],{"type":31,"value":17686}," SparsePauliOp(pauli, coeff)\n",{"type":21,"tag":139,"props":17688,"children":17689},{"class":141,"line":12606},[17690,17695,17700,17704,17709,17714,17718,17722],{"type":21,"tag":139,"props":17691,"children":17692},{"style":152},[17693],{"type":31,"value":17694},"        qc.append(PauliEvolutionGate(term, ",{"type":21,"tag":139,"props":17696,"children":17697},{"style":923},[17698],{"type":31,"value":17699},"time",{"type":21,"tag":139,"props":17701,"children":17702},{"style":146},[17703],{"type":31,"value":211},{"type":21,"tag":139,"props":17705,"children":17706},{"style":152},[17707],{"type":31,"value":17708},"dt), ",{"type":21,"tag":139,"props":17710,"children":17711},{"style":214},[17712],{"type":31,"value":17713},"range",{"type":21,"tag":139,"props":17715,"children":17716},{"style":152},[17717],{"type":31,"value":953},{"type":21,"tag":139,"props":17719,"children":17720},{"style":214},[17721],{"type":31,"value":293},{"type":21,"tag":139,"props":17723,"children":17724},{"style":152},[17725],{"type":31,"value":5596},{"type":21,"tag":139,"props":17727,"children":17728},{"class":141,"line":12622},[17729,17733],{"type":21,"tag":139,"props":17730,"children":17731},{"style":146},[17732],{"type":31,"value":5582},{"type":21,"tag":139,"props":17734,"children":17735},{"style":152},[17736],{"type":31,"value":17737}," qc\n",{"type":21,"tag":139,"props":17739,"children":17740},{"class":141,"line":12630},[17741],{"type":21,"tag":139,"props":17742,"children":17743},{"emptyLinePlaceholder":194},[17744],{"type":31,"value":197},{"type":21,"tag":139,"props":17746,"children":17748},{"class":141,"line":17747},20,[17749,17753,17758],{"type":21,"tag":139,"props":17750,"children":17751},{"style":146},[17752],{"type":31,"value":5487},{"type":21,"tag":139,"props":17754,"children":17755},{"style":4509},[17756],{"type":31,"value":17757}," trotterized_evolution",{"type":21,"tag":139,"props":17759,"children":17760},{"style":152},[17761],{"type":31,"value":17762},"(t, steps):\n",{"type":21,"tag":139,"props":17764,"children":17766},{"class":141,"line":17765},21,[17767,17772,17776,17780,17784],{"type":21,"tag":139,"props":17768,"children":17769},{"style":152},[17770],{"type":31,"value":17771},"    qc ",{"type":21,"tag":139,"props":17773,"children":17774},{"style":146},[17775],{"type":31,"value":211},{"type":21,"tag":139,"props":17777,"children":17778},{"style":152},[17779],{"type":31,"value":6292},{"type":21,"tag":139,"props":17781,"children":17782},{"style":214},[17783],{"type":31,"value":293},{"type":21,"tag":139,"props":17785,"children":17786},{"style":152},[17787],{"type":31,"value":270},{"type":21,"tag":139,"props":17789,"children":17791},{"class":141,"line":17790},22,[17792,17797,17801,17806,17810],{"type":21,"tag":139,"props":17793,"children":17794},{"style":152},[17795],{"type":31,"value":17796},"    dt ",{"type":21,"tag":139,"props":17798,"children":17799},{"style":146},[17800],{"type":31,"value":211},{"type":21,"tag":139,"props":17802,"children":17803},{"style":152},[17804],{"type":31,"value":17805}," t ",{"type":21,"tag":139,"props":17807,"children":17808},{"style":146},[17809],{"type":31,"value":5062},{"type":21,"tag":139,"props":17811,"children":17812},{"style":152},[17813],{"type":31,"value":17814}," steps\n",{"type":21,"tag":139,"props":17816,"children":17818},{"class":141,"line":17817},23,[17819,17823,17828,17832,17836],{"type":21,"tag":139,"props":17820,"children":17821},{"style":146},[17822],{"type":31,"value":17024},{"type":21,"tag":139,"props":17824,"children":17825},{"style":152},[17826],{"type":31,"value":17827}," _ ",{"type":21,"tag":139,"props":17829,"children":17830},{"style":146},[17831],{"type":31,"value":1496},{"type":21,"tag":139,"props":17833,"children":17834},{"style":214},[17835],{"type":31,"value":7417},{"type":21,"tag":139,"props":17837,"children":17838},{"style":152},[17839],{"type":31,"value":17840},"(steps):\n",{"type":21,"tag":139,"props":17842,"children":17844},{"class":141,"line":17843},24,[17845],{"type":21,"tag":139,"props":17846,"children":17847},{"style":152},[17848],{"type":31,"value":17849},"        trotter_step(qc, dt)\n",{"type":21,"tag":139,"props":17851,"children":17853},{"class":141,"line":17852},25,[17854,17858],{"type":21,"tag":139,"props":17855,"children":17856},{"style":146},[17857],{"type":31,"value":5582},{"type":21,"tag":139,"props":17859,"children":17860},{"style":152},[17861],{"type":31,"value":17737},{"type":21,"tag":139,"props":17863,"children":17865},{"class":141,"line":17864},26,[17866],{"type":21,"tag":139,"props":17867,"children":17868},{"emptyLinePlaceholder":194},[17869],{"type":31,"value":197},{"type":21,"tag":139,"props":17871,"children":17873},{"class":141,"line":17872},27,[17874,17878,17882,17887,17892,17896,17901,17905,17910,17914,17919],{"type":21,"tag":139,"props":17875,"children":17876},{"style":152},[17877],{"type":31,"value":4779},{"type":21,"tag":139,"props":17879,"children":17880},{"style":146},[17881],{"type":31,"value":211},{"type":21,"tag":139,"props":17883,"children":17884},{"style":152},[17885],{"type":31,"value":17886}," trotterized_evolution(",{"type":21,"tag":139,"props":17888,"children":17889},{"style":923},[17890],{"type":31,"value":17891},"t",{"type":21,"tag":139,"props":17893,"children":17894},{"style":146},[17895],{"type":31,"value":211},{"type":21,"tag":139,"props":17897,"children":17898},{"style":214},[17899],{"type":31,"value":17900},"1.0",{"type":21,"tag":139,"props":17902,"children":17903},{"style":152},[17904],{"type":31,"value":259},{"type":21,"tag":139,"props":17906,"children":17907},{"style":923},[17908],{"type":31,"value":17909},"steps",{"type":21,"tag":139,"props":17911,"children":17912},{"style":146},[17913],{"type":31,"value":211},{"type":21,"tag":139,"props":17915,"children":17916},{"style":214},[17917],{"type":31,"value":17918},"4",{"type":21,"tag":139,"props":17920,"children":17921},{"style":152},[17922],{"type":31,"value":270},{"type":21,"tag":139,"props":17924,"children":17926},{"class":141,"line":17925},28,[17927,17931],{"type":21,"tag":139,"props":17928,"children":17929},{"style":214},[17930],{"type":31,"value":948},{"type":21,"tag":139,"props":17932,"children":17933},{"style":152},[17934],{"type":31,"value":17935},"(circuit.count_ops())\n",{"type":21,"tag":22,"props":17937,"children":17938},{},[17939,17941,17947,17949,17954],{"type":31,"value":17940},"Each of the 4 steps applies 3 Pauli-term evolutions, so this circuit contains 12 ",{"type":21,"tag":104,"props":17942,"children":17944},{"className":17943},[],[17945],{"type":31,"value":17946},"PauliEvolutionGate",{"type":31,"value":17948}," instances before decomposition, each of which expands to a small fixed number of CNOTs and single-qubit rotations once transpiled. Doubling ",{"type":21,"tag":104,"props":17950,"children":17952},{"className":17951},[],[17953],{"type":31,"value":17909},{"type":31,"value":17955}," to 8 doubles the gate count in exactly the same way: it's a direct, mechanical consequence of the loop structure, not something that needs simulation to verify.",{"type":21,"tag":41,"props":17957,"children":17959},{"id":17958},"watching-the-error-versus-depth-trade-off",[17960],{"type":31,"value":17961},"Watching the error-versus-depth trade-off",{"type":21,"tag":22,"props":17963,"children":17964},{},[17965,17967,17973,17975,17981,17982,17988,17990,17995,17997,18001],{"type":31,"value":17966},"The error between the Trotterized circuit and the true evolution e^(-iHt) is a real, measurable quantity (compare the Trotterized unitary against ",{"type":21,"tag":104,"props":17968,"children":17970},{"className":17969},[],[17971],{"type":31,"value":17972},"scipy.linalg.expm(-1j * H_matrix * t)",{"type":31,"value":17974}," using ",{"type":21,"tag":104,"props":17976,"children":17978},{"className":17977},[],[17979],{"type":31,"value":17980},"qiskit.quantum_info.Operator",{"type":31,"value":3615},{"type":21,"tag":104,"props":17983,"children":17985},{"className":17984},[],[17986],{"type":31,"value":17987},"process_fidelity",{"type":31,"value":17989},"), and it shrinks as ",{"type":21,"tag":104,"props":17991,"children":17993},{"className":17992},[],[17994],{"type":31,"value":17909},{"type":31,"value":17996}," grows, per the O(t²\u002Fn) scaling for first-order Trotter derived above. What that scaling means in practice: doubling the step count roughly halves the error for a fixed total time t, but doubles the circuit depth too, so on real noisy hardware there's a real crossover point where adding more Trotter steps to reduce approximation error starts adding more hardware noise than it removes. Finding that crossover for your specific device and Hamiltonian is an empirical exercise worth running yourself on a ",{"type":21,"tag":26,"props":17998,"children":17999},{"href":3292},[18000],{"type":31,"value":9811},{"type":31,"value":18002}," with a realistic noise model before trusting either extreme.",{"type":21,"tag":41,"props":18004,"children":18006},{"id":18005},"where-this-gets-used",[18007],{"type":31,"value":18008},"Where this gets used",{"type":21,"tag":22,"props":18010,"children":18011},{},[18012,18014,18020,18022,18027],{"type":31,"value":18013},"Hamiltonian simulation is the substrate underneath several things covered elsewhere on this site. ",{"type":21,"tag":26,"props":18015,"children":18017},{"href":18016},"\u002Fblog\u002Fquantum-fourier-transform-tutorial",[18018],{"type":31,"value":18019},"Quantum phase estimation",{"type":31,"value":18021}," needs controlled powers of e^(-iHt) as its core primitive. The ",{"type":21,"tag":26,"props":18023,"children":18024},{"href":3505},[18025],{"type":31,"value":18026},"quantum chemistry work simulating a 303-atom protein",{"type":31,"value":18028}," depends on efficient Trotterized (or better, non-Trotter product-formula) simulation of a molecular Hamiltonian's active space. Materials science and condensed-matter simulation, the use case IonQ's decoder work and several vendors' roadmaps point toward, is fundamentally \"run Hamiltonian simulation on a Hamiltonian nobody diagonalizes classically at the sizes that matter.\"",{"type":21,"tag":41,"props":18030,"children":18031},{"id":5900},[18032],{"type":31,"value":5903},{"type":21,"tag":1112,"props":18034,"children":18035},{},[18036,18070,18075],{"type":21,"tag":72,"props":18037,"children":18038},{},[18039,18041,18046,18048,18054,18056,18061,18063,18068],{"type":31,"value":18040},"Compute ",{"type":21,"tag":104,"props":18042,"children":18044},{"className":18043},[],[18045],{"type":31,"value":17987},{"type":31,"value":18047}," between the Trotterized circuit above and the exact ",{"type":21,"tag":104,"props":18049,"children":18051},{"className":18050},[],[18052],{"type":31,"value":18053},"expm",{"type":31,"value":18055}," evolution for ",{"type":21,"tag":104,"props":18057,"children":18059},{"className":18058},[],[18060],{"type":31,"value":17909},{"type":31,"value":18062}," in ",{"type":21,"tag":139,"props":18064,"children":18065},{},[18066],{"type":31,"value":18067},"1, 2, 4, 8, 16",{"type":31,"value":18069}," and plot the error curve yourself. It should visibly bend toward the O(t²\u002Fn) prediction.",{"type":21,"tag":72,"props":18071,"children":18072},{},[18073],{"type":31,"value":18074},"Swap the second-order symmetric ordering in for the first-order loop above and compare gate count against error reduction.",{"type":21,"tag":72,"props":18076,"children":18077},{},[18078,18079,18084],{"type":31,"value":13435},{"type":21,"tag":26,"props":18080,"children":18081},{"href":3610},[18082],{"type":31,"value":18083},"VQE guide",{"type":31,"value":18085}," for the companion technique: instead of simulating time evolution, VQE searches directly for a Hamiltonian's ground state.",{"type":21,"tag":1168,"props":18087,"children":18088},{},[18089],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":18091},[18092,18093,18094,18095,18096,18097],{"id":17374,"depth":168,"text":17377},{"id":17390,"depth":168,"text":17393},{"id":17419,"depth":168,"text":17422},{"id":17958,"depth":168,"text":17961},{"id":18005,"depth":168,"text":18008},{"id":5900,"depth":168,"text":5903},"content:blog:hamiltonian-simulation-trotter-tutorial.md","blog\u002Fhamiltonian-simulation-trotter-tutorial.md","blog\u002Fhamiltonian-simulation-trotter-tutorial",{"_path":10620,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":18102,"description":18103,"date":16766,"author":11,"tags":18104,"readingTime":234,"body":18105,"_type":1187,"_id":18203,"_source":1189,"_file":18204,"_stem":18205,"_extension":1192},"IonQ Goes Back to the Lab That Built Its First Ion Traps, This Time for National Security","IonQ signed a memorandum of understanding with Sandia National Laboratories to co-design quantum hardware for government applications, reviving a technical relationship that goes back to IonQ's earliest ion traps.",[3396,1207,16315],{"type":18,"children":18106,"toc":18196},[18107,18120,18126,18138,18144,18157,18163,18168,18174,18187,18191],{"type":21,"tag":22,"props":18108,"children":18109},{},[18110,18112,18118],{"type":31,"value":18111},"IonQ signed a memorandum of understanding with Sandia National Laboratories on August 4, 2026, to jointly develop quantum computing and networking technology for U.S. national security applications. The work centers on Sandia's Quantum Demonstration Facility in New Mexico, and covers ion trap fabrication, silicon photonics, and system integration. No dollar figure, timeline, or specific deliverable is attached to the announcement. That makes this a different kind of story than IonQ's ",{"type":21,"tag":26,"props":18113,"children":18115},{"href":18114},"\u002Fblog\u002Fionq-epb-tennessee-quantum-communications-center",[18116],{"type":31,"value":18117},"$15 million Chattanooga fiber network deal",{"type":31,"value":18119}," from the day before: a stated intent to collaborate, not a funded project with a scope.",{"type":21,"tag":41,"props":18121,"children":18123},{"id":18122},"the-history-behind-the-handshake",[18124],{"type":31,"value":18125},"The history behind the handshake",{"type":21,"tag":22,"props":18127,"children":18128},{},[18129,18131,18136],{"type":31,"value":18130},"The most concrete detail in the announcement is not the MOU itself. It is a line from Dr. Rick Muller, SVP and Chief Scientist at IonQ Federal: Sandia fabricated the ion traps that IonQ's earliest quantum computers were built on. That is a real, checkable technical lineage, not marketing color. IonQ's ",{"type":21,"tag":26,"props":18132,"children":18133},{"href":1100},[18134],{"type":31,"value":18135},"trapped-ion",{"type":31,"value":18137}," architecture traces back to academic work at the University of Maryland and Duke, and Sandia has spent decades as a national fabrication resource for ion trap chips used across that research community. An MOU that brings IonQ back to the lab that fabricated its original hardware is a continuation of an existing relationship, not a new partnership formed from scratch.",{"type":21,"tag":41,"props":18139,"children":18141},{"id":18140},"what-an-mou-commits-to",[18142],{"type":31,"value":18143},"What an MOU commits to",{"type":21,"tag":22,"props":18145,"children":18146},{},[18147,18149,18155],{"type":31,"value":18148},"A memorandum of understanding is a statement of intent between organizations, not a funded contract. It does not obligate either party to specific milestones, headcount, or spending, which is why this announcement reads thinner than IonQ's Tennessee deal or its ",{"type":21,"tag":26,"props":18150,"children":18152},{"href":18151},"\u002Fblog\u002Fionq-skywater-acquisition-explained",[18153],{"type":31,"value":18154},"SkyWater acquisition",{"type":31,"value":18156},", both of which came with dollar amounts attached. What the MOU does establish is scope: co-design of quantum computing and networking capabilities, covering system optimization, device development, characterization, and testing, aimed at government mission applications. Sandia's Quantum Demonstration Facility is described as a hub that offers third-party verification for quantum computing pathways, which matters for a government customer that needs an independent check on supplier performance claims rather than taking a company's own benchmark numbers at face value.",{"type":21,"tag":41,"props":18158,"children":18160},{"id":18159},"ionq-federal-is-doing-the-talking",[18161],{"type":31,"value":18162},"IonQ Federal is doing the talking",{"type":21,"tag":22,"props":18164,"children":18165},{},[18166],{"type":31,"value":18167},"The quote comes from IonQ Federal specifically, not IonQ's general executive team. That is a signal worth noting on its own: IonQ has built out a federal-focused arm, and this MOU is that arm's work, sitting alongside IonQ's existing government and defense-adjacent activity. Pair that with CEO Niccolo de Masi's framing of the deal against the Manhattan Project and the Space Race, and the announcement is doing two things at once. One is a real technical claim about fabrication history and facility access. The other is standard-issue positioning language a company puts out when it wants a national security story to read as bigger than an MOU. Worth separating the two rather than taking the historical framing as evidence the technical outcome is guaranteed.",{"type":21,"tag":41,"props":18169,"children":18171},{"id":18170},"the-fidelity-number-worth-tracking",[18172],{"type":31,"value":18173},"The fidelity number worth tracking",{"type":21,"tag":22,"props":18175,"children":18176},{},[18177,18179,18185],{"type":31,"value":18178},"The announcement mentions IonQ's 2025 result of 99.99% two-qubit ",{"type":21,"tag":26,"props":18180,"children":18182},{"href":18181},"\u002Fglossary\u002Ffidelity",[18183],{"type":31,"value":18184},"gate fidelity",{"type":31,"value":18186}," as background context for why Sandia would want this collaboration. That figure is real and independently notable, but it says nothing about what this specific MOU will produce. If the collaboration is working, the evidence to look for is not another fidelity headline. It is whether Sandia-fabricated hardware or silicon photonics components demonstrate up in a future IonQ system announcement, and whether IonQ Federal names a specific government program using this collaboration's output.",{"type":21,"tag":41,"props":18188,"children":18189},{"id":3461},[18190],{"type":31,"value":3464},{"type":21,"tag":22,"props":18192,"children":18193},{},[18194],{"type":31,"value":18195},"MOUs are cheap to announce and easy to let quietly expire without a follow-up. The test here is a concrete deliverable: a jointly developed component, a named government program, or a technical report from the Quantum Demonstration Facility that references this work. Until one of those shows up, treat this as IonQ formalizing a relationship with a lab it already has history with, aimed at the national security market it has been building IonQ Federal to serve.",{"title":7,"searchDepth":168,"depth":168,"links":18197},[18198,18199,18200,18201,18202],{"id":18122,"depth":168,"text":18125},{"id":18140,"depth":168,"text":18143},{"id":18159,"depth":168,"text":18162},{"id":18170,"depth":168,"text":18173},{"id":3461,"depth":168,"text":3464},"content:blog:ionq-sandia-national-labs-mou-quantum-co-design.md","blog\u002Fionq-sandia-national-labs-mou-quantum-co-design.md","blog\u002Fionq-sandia-national-labs-mou-quantum-co-design",{"_path":18207,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":18208,"description":18209,"date":16766,"author":11,"tags":18210,"readingTime":273,"body":18211,"_type":1187,"_id":18307,"_source":1189,"_file":18308,"_stem":18309,"_extension":1192},"\u002Fblog\u002Fnvidia-cuda-q-accelerated-decoders-ecosystem","NVIDIA's GPU Decoders Are Already Cutting Real Error-Correction Runtimes by 9x","Alice & Bob cut a decoding run from 18 hours to under 2 using NVIDIA CUDA-Q QEC's GPU decoders. Quantum X Labs benchmarked a transformer-based decoder against classical matching. Independent third-party results, not only a vendor's own claim.",[14720,1207,13882],{"type":18,"children":18212,"toc":18300},[18213,18218,18224,18236,18242,18254,18260,18272,18278,18283,18287],{"type":21,"tag":22,"props":18214,"children":18215},{},[18216],{"type":31,"value":18217},"Most GPU-decoder coverage on this site so far has been about NVIDIA's own claims for its own tools. This is a different kind of story: independent companies running their own error-correction workloads on NVIDIA's CUDA-Q QEC library and publishing their own numbers, which carries more weight than a provider benchmarking its own product.",{"type":21,"tag":41,"props":18219,"children":18221},{"id":18220},"alice-bob-18-hours-to-under-2",[18222],{"type":31,"value":18223},"Alice & Bob: 18 hours to under 2",{"type":21,"tag":22,"props":18225,"children":18226},{},[18227,18229,18234],{"type":31,"value":18228},"In March 2026, Alice & Bob reported a 9.25x speedup decoding quantum error correction data by moving the workload onto GPUs through CUDA-Q, cutting a run that took 18 hours on CPU down to under 2 hours. The company reported the GPU-accelerated version produced the same logical error performance as the CPU baseline, meaning the speedup came from throughput, not from a shortcut that traded accuracy for speed. That distinction matters: a decoder that's fast because it's cutting corners isn't solving the ",{"type":21,"tag":26,"props":18230,"children":18231},{"href":14748},[18232],{"type":31,"value":18233},"real-time decoding problem",{"type":31,"value":18235}," this site has covered as the real bottleneck standing between today's hardware and fault tolerance.",{"type":21,"tag":41,"props":18237,"children":18239},{"id":18238},"quantum-x-labs-a-transformer-decoder-against-the-classical-baseline",[18240],{"type":31,"value":18241},"Quantum X Labs: a transformer decoder against the classical baseline",{"type":21,"tag":22,"props":18243,"children":18244},{},[18245,18247,18252],{"type":31,"value":18246},"In July 2026, Quantum X Labs ran its Deep Quantum Error Correction workflow on GPU in an AWS environment, benchmarking a transformer-based decoder called QECCT against minimum-weight perfect matching, the ",{"type":21,"tag":26,"props":18248,"children":18249},{"href":3446},[18250],{"type":31,"value":18251},"classical decoding baseline",{"type":31,"value":18253}," this site already tracks as the maintained standard. QECCT reportedly outperformed MWPM in selected simulated toric-code noise configurations, worth reading precisely: \"outperformed in selected configurations\" is a real, specific, checkable claim, and a narrower one than \"outperforms MWPM,\" which the coverage doesn't say.",{"type":21,"tag":41,"props":18255,"children":18257},{"id":18256},"what-cuda-q-qec-050-added",[18258],{"type":31,"value":18259},"What CUDA-Q QEC 0.5.0 added",{"type":21,"tag":22,"props":18261,"children":18262},{},[18263,18265,18270],{"type":31,"value":18264},"The underlying library both companies built on picked up real capability in its 0.5.0 release: online real-time decoding, GPU-accelerated algorithmic decoders, higher-performance AI decoder inference infrastructure, sliding-window decoder support, and RelayBP, an improvement on BP+OSD decoding for qLDPC codes that adds memory-strength damping per graph node to help convergence. That's the same qLDPC code family our ",{"type":21,"tag":26,"props":18266,"children":18267},{"href":16822},[18268],{"type":31,"value":18269},"coverage of USTC and Origin Quantum's routing codes",{"type":31,"value":18271}," discussed from the code-design side. A better decoder and a better code are separate contributions to the same overhead problem, and both are needed together for either to pay off in practice.",{"type":21,"tag":41,"props":18273,"children":18275},{"id":18274},"why-third-party-adoption-is-the-more-interesting-story-here",[18276],{"type":31,"value":18277},"Why third-party adoption is the more interesting story here",{"type":21,"tag":22,"props":18279,"children":18280},{},[18281],{"type":31,"value":18282},"A vendor's own benchmark tells you what a vendor wants you to know. Two independent companies choosing to build their production decoding workflows on the equivalent GPU infrastructure, and being willing to publish their own numbers rather than only NVIDIA's, is a different and stronger kind of evidence. It doesn't make either company's specific number independently verified in the peer-review sense, but it does mean the underlying tool is getting real use outside NVIDIA's own marketing, which is the actual test for whether infrastructure like this sticks.",{"type":21,"tag":41,"props":18284,"children":18285},{"id":3461},[18286],{"type":31,"value":3464},{"type":21,"tag":22,"props":18288,"children":18289},{},[18290,18292,18298],{"type":31,"value":18291},"Whether more companies publish their own before-and-after numbers using CUDA-Q QEC's decoders, and whether any of these results eventually go through formal peer review rather than only a press release or blog post. Our ",{"type":21,"tag":26,"props":18293,"children":18295},{"href":18294},"\u002Fblog\u002Fquantum-computing-picks-and-shovels-supply-chain",[18296],{"type":31,"value":18297},"picks-and-shovels supply chain piece",{"type":31,"value":18299}," covers NVIDIA's broader infrastructure strategy, of which this decoder ecosystem is one concrete, checkable piece.",{"title":7,"searchDepth":168,"depth":168,"links":18301},[18302,18303,18304,18305,18306],{"id":18220,"depth":168,"text":18223},{"id":18238,"depth":168,"text":18241},{"id":18256,"depth":168,"text":18259},{"id":18274,"depth":168,"text":18277},{"id":3461,"depth":168,"text":3464},"content:blog:nvidia-cuda-q-accelerated-decoders-ecosystem.md","blog\u002Fnvidia-cuda-q-accelerated-decoders-ecosystem.md","blog\u002Fnvidia-cuda-q-accelerated-decoders-ecosystem",{"_path":18311,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":18312,"description":18313,"date":16766,"author":11,"tags":18314,"readingTime":273,"body":18315,"_type":1187,"_id":18414,"_source":1189,"_file":18415,"_stem":18416,"_extension":1192},"\u002Fblog\u002Fnvidia-ising-quantum-ai-models","NVIDIA Ising: AI Models for Quantum Calibration and Error Decoding, Explained","NVIDIA Ising is a pair of open-source AI models targeting the two most tedious parts of running a quantum computer: recalibrating it and decoding its errors. NVIDIA claims days-to-hours calibration and up to 2.5x faster, 3x more accurate decoding than pyMatching.",[14720,1207,13882],{"type":18,"children":18316,"toc":18408},[18317,18322,18328,18338,18362,18368,18373,18379,18392,18396],{"type":21,"tag":22,"props":18318,"children":18319},{},[18320],{"type":31,"value":18321},"NVIDIA launched Ising on April 14, 2026, its first family of open-source quantum AI models. This isn't breaking news anymore, and it's worth covering anyway because it targets two of the least glamorous, most necessary parts of operating a quantum computer: keeping it calibrated and decoding its errors fast enough to matter, both of which this site has covered as real, unglamorous bottlenecks rather than headline-grabbing milestones.",{"type":21,"tag":41,"props":18323,"children":18325},{"id":18324},"the-two-models-and-what-each-does",[18326],{"type":31,"value":18327},"The two models, and what each does",{"type":21,"tag":22,"props":18329,"children":18330},{},[18331,18336],{"type":21,"tag":16802,"props":18332,"children":18333},{},[18334],{"type":31,"value":18335},"Ising Calibration",{"type":31,"value":18337}," is a vision-language model that automates reading and interpreting the measurement data a technician would otherwise inspect by hand to tune a quantum processor's control parameters. NVIDIA's claim: calibration time drops from days to hours. That's a workflow-automation claim, not a physics result, and it's the company's own number rather than something independently reproduced.",{"type":21,"tag":22,"props":18339,"children":18340},{},[18341,18346,18348,18353,18355,18360],{"type":21,"tag":16802,"props":18342,"children":18343},{},[18344],{"type":31,"value":18345},"Ising Decoding",{"type":31,"value":18347}," ships as two variants of a 3D convolutional neural network, one tuned for speed and one for accuracy, targeting the identical ",{"type":21,"tag":26,"props":18349,"children":18350},{"href":14748},[18351],{"type":31,"value":18352},"decoding bottleneck this site has covered directly",{"type":31,"value":18354},": syndrome measurements have to be decoded and acted on inside a hard timing window, or the whole error-correction scheme falls apart regardless of qubit quality. NVIDIA's benchmark claims up to 2.5x faster decoding and 3x higher accuracy against PyMatching, the ",{"type":21,"tag":26,"props":18356,"children":18357},{"href":3446},[18358],{"type":31,"value":18359},"minimum-weight matching decoder",{"type":31,"value":18361}," this site already tracks as a maintained, widely used baseline. Beating the standard baseline by that margin, if it holds up independently, would be a real result. It's still NVIDIA's own comparison until someone outside NVIDIA reproduces it.",{"type":21,"tag":41,"props":18363,"children":18365},{"id":18364},"whos-using-it",[18366],{"type":31,"value":18367},"Who's using it",{"type":21,"tag":22,"props":18369,"children":18370},{},[18371],{"type":31,"value":18372},"The adopter list is a genuine mix of academic and national-lab institutions rather than only commercial partners: Academia Sinica, Fermi National Accelerator Laboratory, Harvard's John A. Paulson School of Engineering and Applied Sciences, Infleqtion, IQM, Lawrence Berkeley National Laboratory's Advanced Quantum Testbed, and the UK's National Physical Laboratory. That spread, spanning multiple countries and both hardware vendors and pure research institutions, is a stronger adoption signal than a partner list drawn entirely from NVIDIA's own commercial relationships, though it still doesn't substitute for a published, independently run benchmark.",{"type":21,"tag":41,"props":18374,"children":18376},{"id":18375},"why-an-ai-model-for-calibration-and-decoding-specifically",[18377],{"type":31,"value":18378},"Why an AI model for calibration and decoding, specifically",{"type":21,"tag":22,"props":18380,"children":18381},{},[18382,18384,18390],{"type":31,"value":18383},"Both problems share a structure that suits machine learning: large amounts of noisy, pattern-rich data (calibration sweeps, syndrome measurement streams) that a classical rules-based system handles slowly, and where a trained model plausibly recognizes the relevant pattern faster than an explicit algorithm re-derives it from scratch each time. That's the same logic behind ",{"type":21,"tag":26,"props":18385,"children":18387},{"href":18386},"\u002Fblog\u002Fgoogle-willow-reinforcement-learning-calibration",[18388],{"type":31,"value":18389},"Google's reinforcement-learning approach to Willow's calibration",{"type":31,"value":18391},", covered here separately: different company, different specific technique, equivalent underlying bet that AI-assisted operation beats hand-tuned classical control loops as systems scale.",{"type":21,"tag":41,"props":18393,"children":18394},{"id":3461},[18395],{"type":31,"value":3464},{"type":21,"tag":22,"props":18397,"children":18398},{},[18399,18401,18406],{"type":31,"value":18400},"The number worth tracking is whether Ising Decoding's 2.5x\u002F3x claims survive contact with a third-party benchmark using a public dataset, the same bar ",{"type":21,"tag":26,"props":18402,"children":18403},{"href":3446},[18404],{"type":31,"value":18405},"Mitiq",{"type":31,"value":18407}," and other maintained error-mitigation tools are held to on this site. Until that happens, treat this as a credible, well-adopted engineering tool with a vendor-reported performance claim attached, not yet an independently confirmed result.",{"title":7,"searchDepth":168,"depth":168,"links":18409},[18410,18411,18412,18413],{"id":18324,"depth":168,"text":18327},{"id":18364,"depth":168,"text":18367},{"id":18375,"depth":168,"text":18378},{"id":3461,"depth":168,"text":3464},"content:blog:nvidia-ising-quantum-ai-models.md","blog\u002Fnvidia-ising-quantum-ai-models.md","blog\u002Fnvidia-ising-quantum-ai-models",{"_path":16777,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":18418,"description":18419,"date":16766,"author":11,"tags":18420,"readingTime":273,"body":18421,"_type":1187,"_id":18485,"_source":1189,"_file":18486,"_stem":18487,"_extension":1192},"Oratomic Raised $300M Betting Fault Tolerance Needs 10,000 Qubits, Not Millions","Oratomic closed a $300 million Series A on July 10, 2026, built on Caltech research suggesting utility-scale fault-tolerant quantum computing needs as few as 10,000 reconfigurable atomic qubits, far below prior million-qubit estimates. A real funding round behind a theoretical resource estimate, not a working machine yet.",[3396,1207],{"type":18,"children":18422,"toc":18480},[18423,18428,18434,18446,18452,18457,18463],{"type":21,"tag":22,"props":18424,"children":18425},{},[18426],{"type":31,"value":18427},"Oratomic closed a $300 million Series A on July 10, 2026, a few weeks before this post, worth stating plainly since the round is no longer breaking news. It's still worth explaining, because the bet underneath it is unusual: Oratomic is building toward fault-tolerant quantum computing on the claim that a useful machine needs roughly 10,000 to 20,000 reconfigurable atomic qubits, not the millions most fault-tolerance roadmaps have assumed for years.",{"type":21,"tag":41,"props":18429,"children":18431},{"id":18430},"the-research-behind-the-number",[18432],{"type":31,"value":18433},"The research behind the number",{"type":21,"tag":22,"props":18435,"children":18436},{},[18437,18439,18444],{"type":31,"value":18438},"The company launched in March 2026 alongside research conducted with Caltech, arguing that utility-scale fault-tolerant quantum computers need around 10,000 reconfigurable atomic qubits, a dramatically lower hardware threshold than the million-plus qubit estimates common in earlier fault-tolerance literature. That's a theoretical resource estimate, the kind of result our ",{"type":21,"tag":26,"props":18440,"children":18441},{"href":4082},[18442],{"type":31,"value":18443},"logical qubits and fault tolerance explainer",{"type":31,"value":18445}," covers in general terms: it describes what a fault-tolerant algorithm requires under a given set of assumptions, not a machine that exists and runs it.",{"type":21,"tag":41,"props":18447,"children":18449},{"id":18448},"why-the-qubit-count-matters-more-than-usual-here",[18450],{"type":31,"value":18451},"Why the qubit count matters more than usual here",{"type":21,"tag":22,"props":18453,"children":18454},{},[18455],{"type":31,"value":18456},"Every fault-tolerance roadmap on this site gets read against the same question: how numerous physical qubits does the stated logical qubit count cost. Oratomic's pitch inverts the usual framing. Instead of a hardware milestone claiming progress toward a known target, it's a claim that the target itself has been overestimated for years, built on neutral-atom qubits' reconfigurability (the ability to rearrange atoms in an optical trap) as the mechanism that closes the gap. If the resource estimate holds up under independent scrutiny, it changes the scale everyone else is racing toward. If it doesn't, Oratomic is still a well-funded neutral-atom entrant competing with QuEra, Infleqtion, and Pasqal on the same physics.",{"type":21,"tag":41,"props":18458,"children":18460},{"id":18459},"what-this-funding-round-is-and-isnt",[18461],{"type":31,"value":18462},"What this funding round is, and isn't",{"type":21,"tag":22,"props":18464,"children":18465},{},[18466,18468,18472,18473,18478],{"type":31,"value":18467},"$300 million is real money and a real vote of confidence from investors, but it funds an engineering effort aimed at a target, not a working fault-tolerant computer. Oratomic has not shipped hardware. The Caltech collaboration is a paper, independently reviewable by anyone in the field, which is a stronger footing than a roadmap slide with no published reasoning behind it. Our ",{"type":21,"tag":26,"props":18469,"children":18470},{"href":1100},[18471],{"type":31,"value":16080},{"type":31,"value":3615},{"type":21,"tag":26,"props":18474,"children":18475},{"href":3712},[18476],{"type":31,"value":18477},"ranking of the top quantum computing companies",{"type":31,"value":18479}," track how Oratomic's claims stack up against the neutral-atom competitors already building toward the same fault-tolerance finish line.",{"title":7,"searchDepth":168,"depth":168,"links":18481},[18482,18483,18484],{"id":18430,"depth":168,"text":18433},{"id":18448,"depth":168,"text":18451},{"id":18459,"depth":168,"text":18462},"content:blog:oratomic-300-million-series-a-neutral-atom.md","blog\u002Foratomic-300-million-series-a-neutral-atom.md","blog\u002Foratomic-300-million-series-a-neutral-atom",{"_path":18489,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":18490,"description":18491,"date":16766,"author":11,"tags":18492,"readingTime":273,"body":18493,"_type":1187,"_id":18600,"_source":1189,"_file":18601,"_stem":18602,"_extension":1192},"\u002Fblog\u002Fqaoa-gpt-generative-circuit-synthesis","QAOA-GPT Replaces the Variational Optimization Loop With a Single Forward Pass","QAOA-GPT trains a generative transformer to output a good QAOA circuit directly, skipping the iterative classical optimization loop that usually dominates runtime. Its extension, DQAOA-GPT, has been evaluated on dense optimization problems with up to 100 decision variables.",[1206,2041,13882],{"type":18,"children":18494,"toc":18593},[18495,18505,18511,18516,18522,18533,18539,18551,18557,18568,18574],{"type":21,"tag":22,"props":18496,"children":18497},{},[18498,18499,18503],{"type":31,"value":4481},{"type":21,"tag":26,"props":18500,"children":18501},{"href":1244},[18502],{"type":31,"value":10440},{"type":31,"value":18504}," builds the algorithm the standard way: a parameterized circuit, a classical optimizer adjusting those parameters over numerous iterations, repeated until the cost function converges. That iterative loop, submit a circuit, measure, update parameters, repeat, is usually where the runtime goes, and it's a well-known bottleneck for scaling QAOA to bigger problems. QAOA-GPT, developed using NVIDIA's CUDA-Q platform, tries a different approach: train a generative model to output a good circuit directly, in one forward pass, and skip the loop.",{"type":21,"tag":41,"props":18506,"children":18508},{"id":18507},"what-changes",[18509],{"type":31,"value":18510},"What changes",{"type":21,"tag":22,"props":18512,"children":18513},{},[18514],{"type":31,"value":18515},"Standard QAOA treats circuit parameters as something to search for, iteration by iteration, guided by a classical optimizer reacting to each measurement. QAOA-GPT instead trains a GPT-style transformer on examples of the relationship between a issue instance (a graph, for Max-Cut) and a solid circuit for it, so that at inference time the model generates a full parameterized circuit for a new problem instance directly, without any per-instance optimization loop running afterward. The computationally expensive part moves from \"optimize this specific instance from scratch every time\" to \"train once, then generate quickly for new instances,\" a trade that only pays off if the training generalizes past the specific instances it saw.",{"type":21,"tag":41,"props":18517,"children":18519},{"id":18518},"why-this-specifically-targets-max-cut-first",[18520],{"type":31,"value":18521},"Why this specifically targets Max-Cut first",{"type":21,"tag":22,"props":18523,"children":18524},{},[18525,18527,18531],{"type":31,"value":18526},"Max-Cut is the standard QAOA benchmark for a reason: it's easy to generate huge numbers of labeled training examples (random graphs plus their known or well-approximated optimal cuts) to train a generative model against, and it's the same problem our own ",{"type":21,"tag":26,"props":18528,"children":18529},{"href":1244},[18530],{"type":31,"value":10440},{"type":31,"value":18532}," uses to build the algorithm from scratch. Starting there lets QAOA-GPT be evaluated against a well-understood, well-benchmarked baseline rather than a problem where \"good\" isn't clearly defined yet.",{"type":21,"tag":41,"props":18534,"children":18536},{"id":18535},"dqaoa-gpt-scaling-to-denser-larger-problems",[18537],{"type":31,"value":18538},"DQAOA-GPT: scaling to denser, larger problems",{"type":21,"tag":22,"props":18540,"children":18541},{},[18542,18544,18549],{"type":31,"value":18543},"A follow-on extension, DQAOA-GPT, was evaluated on dense Higher-Order Unconstrained Binary Optimization (HUBO) problems with up to 100 decision variables, a meaningfully harder and denser issue class than sparse Max-Cut graphs. The contribution there is the same core idea (generative circuit synthesis instead of a variational loop) applied to a problem family that's closer to real-world optimization use cases than a toy graph-cutting benchmark, the kind of problem our ",{"type":21,"tag":26,"props":18545,"children":18546},{"href":16160},[18547],{"type":31,"value":18548},"business case for quantum portfolio optimization",{"type":31,"value":18550}," is built around evaluating honestly against classical baselines.",{"type":21,"tag":41,"props":18552,"children":18554},{"id":18553},"the-obvious-question-this-doesnt-yet-answer",[18555],{"type":31,"value":18556},"The obvious question this doesn't yet answer",{"type":21,"tag":22,"props":18558,"children":18559},{},[18560,18562,18566],{"type":31,"value":18561},"A generative model is only as good as its training distribution. QAOA-GPT and DQAOA-GPT's published evaluations cover certain challenge sizes and structures. Whether a model trained on those generalizes to a genuinely out-of-distribution problem instance, larger, differently structured, or from a different application domain entirely, is the real test of whether this becomes a practical replacement for the variational loop or stays a promising result on the problems it was trained and shown on. That's the identical caveat this site applies to every quantum machine learning claim: read the ",{"type":21,"tag":26,"props":18563,"children":18564},{"href":3138},[18565],{"type":31,"value":12752},{"type":31,"value":18567}," for why \"works on the benchmark it was trained toward\" and \"works in general\" are different claims that gain conflated constantly.",{"type":21,"tag":41,"props":18569,"children":18571},{"id":18570},"why-this-is-worth-tracking-regardless",[18572],{"type":31,"value":18573},"Why this is worth tracking regardless",{"type":21,"tag":22,"props":18575,"children":18576},{},[18577,18579,18585,18587,18591],{"type":31,"value":18578},"Even if QAOA-GPT's specific generalization limits turn out to be real, the underlying idea, replacing a per-instance classical optimization loop with a trained generative model, is a genuinely varied strategy from every other approach to speeding up QAOA covered on this site, including ",{"type":21,"tag":26,"props":18580,"children":18582},{"href":18581},"\u002Fblog\u002Freduce-shot-count",[18583],{"type":31,"value":18584},"shot-count reduction techniques",{"type":31,"value":18586}," that make the loop itself cheaper rather than removing it. It's worth watching whether this pattern gets applied beyond QAOA to other variational algorithms like ",{"type":21,"tag":26,"props":18588,"children":18589},{"href":3610},[18590],{"type":31,"value":3613},{"type":31,"value":18592},", which has the exact same iterative-loop bottleneck at its core.",{"title":7,"searchDepth":168,"depth":168,"links":18594},[18595,18596,18597,18598,18599],{"id":18507,"depth":168,"text":18510},{"id":18518,"depth":168,"text":18521},{"id":18535,"depth":168,"text":18538},{"id":18553,"depth":168,"text":18556},{"id":18570,"depth":168,"text":18573},"content:blog:qaoa-gpt-generative-circuit-synthesis.md","blog\u002Fqaoa-gpt-generative-circuit-synthesis.md","blog\u002Fqaoa-gpt-generative-circuit-synthesis",{"_path":18604,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":18605,"description":18606,"date":16766,"author":11,"tags":18607,"readingTime":309,"body":18608,"_type":1187,"_id":18706,"_source":1189,"_file":18707,"_stem":18708,"_extension":1192},"\u002Fblog\u002Fquantum-computing-career-textbook-questions","Do You Need a PhD for Quantum Computing? Career and Textbook Questions, Answered","Is quantum computing a good career, do you need a PhD, and which textbook should a beginner start with. Real workforce data and real textbook recommendations for the four questions every newcomer asks first.",[3041,3396],{"type":18,"children":18609,"toc":18700},[18610,18615,18621,18626,18631,18637,18650,18656,18661,18667,18695],{"type":21,"tag":22,"props":18611,"children":18612},{},[18613],{"type":31,"value":18614},"Four questions come up first for almost anyone starting in quantum computing: whether the career is worth pursuing, whether a PhD is required, which textbook to start with, and where to begin. They deserve real numbers and real book recommendations.",{"type":21,"tag":41,"props":18616,"children":18618},{"id":18617},"is-quantum-computing-a-growing-job-market",[18619],{"type":31,"value":18620},"Is quantum computing a growing job market?",{"type":21,"tag":22,"props":18622,"children":18623},{},[18624],{"type":31,"value":18625},"Yes, with a real caveat attached. The global pure-play quantum workforce reached roughly 16,500 professionals in 2025, up about 14% in a single year, and quantum-related job and internship listings grew around 11% over the same period. Longer-range economic projections put the sector at 250,000 jobs by 2030 and 840,000 by 2035.",{"type":21,"tag":22,"props":18627,"children":18628},{},[18629],{"type":31,"value":18630},"The caveat: an EPJ Quantum Technology analysis of 3,641 job postings found that 75% of applicants for quantum computing roles lack the skills the posting asks for. That's not a sign the field is oversaturated. It's the opposite, a shortage of qualified candidates projected to exceed 10,000 skilled roles by 2026-27, which is also why senior quantum roles routinely clear $200,000 depending on expertise and location. Demand is real. So is the skills bar.",{"type":21,"tag":41,"props":18632,"children":18634},{"id":18633},"do-you-need-a-phd",[18635],{"type":31,"value":18636},"Do you need a PhD?",{"type":21,"tag":22,"props":18638,"children":18639},{},[18640,18642,18648],{"type":31,"value":18641},"For research roles at a hardware vendor or a national lab studying error correction or new qubit modalities, generally yes, a PhD in physics or a closely related field remains the standard entry point. For software, algorithms, and tooling roles, no. Companies building SDKs, compilers, and application layers hire people with strong linear algebra and software engineering skills who learned quantum computing as a specialty rather than a physics doctorate. ",{"type":21,"tag":26,"props":18643,"children":18645},{"href":18644},"\u002Fblog\u002Fquantum-computing-certifications",[18646],{"type":31,"value":18647},"Our certifications guide",{"type":31,"value":18649}," covers this from the credentialing angle: a demonstrated project (a working VQE implementation, a real error-mitigation writeup) tends to carry more weight in hiring than a credential, PhD included, when the role is software-facing rather than research-facing.",{"type":21,"tag":41,"props":18651,"children":18653},{"id":18652},"what-textbook-should-a-beginner-without-a-physics-background-beginning-with",[18654],{"type":31,"value":18655},"What textbook should a beginner without a physics background beginning with?",{"type":21,"tag":22,"props":18657,"children":18658},{},[18659],{"type":31,"value":18660},"Skip Nielsen and Chuang first. It's the field's standard graduate reference, but it assumes a physics background most beginners don't have yet, and starting there is a common way to stall out in week one. Two better first books for a programmer or a math-comfortable beginner: \"Quantum Computing for Computer Scientists\" by Yanofsky and Mannucci, which requires linear algebra rather than quantum mechanics and is written explicitly for readers coming from computer science, and \"Quantum Computer Science\" by N. David Mermin, which builds up gates, circuits, and algorithms from a computer-science framing rather than a physics one. Save Nielsen and Chuang for after the basics click, as the deeper reference it's meant to be.",{"type":21,"tag":41,"props":18662,"children":18664},{"id":18663},"where-to-start-for-free",[18665],{"type":31,"value":18666},"Where to start, for free",{"type":21,"tag":22,"props":18668,"children":18669},{},[18670,18672,18677,18679,18685,18687,18693],{"type":31,"value":18671},"If a textbook still feels like the wrong first step, start with something interactive instead. Our ",{"type":21,"tag":26,"props":18673,"children":18674},{"href":3333},[18675],{"type":31,"value":18676},"getting-started guide",{"type":31,"value":18678}," walks through running a first circuit in under an hour, no textbook required first. Our ",{"type":21,"tag":26,"props":18680,"children":18682},{"href":18681},"\u002Fguides\u002Fquantum-computing-learning-path-2026",[18683],{"type":31,"value":18684},"full learning path",{"type":31,"value":18686}," sequences prerequisites, first circuit, gates and entanglement, and the classic algorithms in order, and our ",{"type":21,"tag":26,"props":18688,"children":18690},{"href":18689},"\u002Fcourses",[18691],{"type":31,"value":18692},"courses page",{"type":31,"value":18694}," tracks the free options (IBM Quantum Learning, the PennyLane Codebook, MIT's 8.370x) that pair well with either textbook above once you're past the basics.",{"type":21,"tag":22,"props":18696,"children":18697},{},[18698],{"type":31,"value":18699},"Linear algebra, not quantum mechanics, is the actual prerequisite most beginners are missing, the same finding our learning path guide leads with. Fix that gap before picking a textbook, and the textbook question mostly answers itself.",{"title":7,"searchDepth":168,"depth":168,"links":18701},[18702,18703,18704,18705],{"id":18617,"depth":168,"text":18620},{"id":18633,"depth":168,"text":18636},{"id":18652,"depth":168,"text":18655},{"id":18663,"depth":168,"text":18666},"content:blog:quantum-computing-career-textbook-questions.md","blog\u002Fquantum-computing-career-textbook-questions.md","blog\u002Fquantum-computing-career-textbook-questions",{"_path":18710,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":18711,"description":18712,"date":16766,"author":11,"tags":18713,"readingTime":309,"body":18714,"_type":1187,"_id":18845,"_source":1189,"_file":18846,"_stem":18847,"_extension":1192},"\u002Fblog\u002Fquantum-computing-etfs-2026","Quantum Computing ETFs in 2026: What's Inside Each Fund","Five quantum computing ETFs trade today: QTUM, QNTM, WQTM, CHPX, and QANT. Here's what each one holds, how much it costs, and how much they overlap with each other. This is not investment advice, it's a comparison of fund composition.",[3396,1207],{"type":18,"children":18715,"toc":18835},[18716,18721,18727,18739,18745,18757,18763,18768,18774,18779,18785,18790,18796,18801,18807,18818,18824],{"type":21,"tag":22,"props":18717,"children":18718},{},[18719],{"type":31,"value":18720},"Five exchange-traded funds market themselves around quantum computing as of August 2026, and \"quantum computing ETF\" means quite varied things depending on which fund you're looking at.",{"type":21,"tag":41,"props":18722,"children":18724},{"id":18723},"defiance-quantum-etf-qtum",[18725],{"type":31,"value":18726},"Defiance Quantum ETF (QTUM)",{"type":21,"tag":22,"props":18728,"children":18729},{},[18730,18732,18737],{"type":31,"value":18731},"QTUM is the oldest fund in this category by a wide margin, launched September 4, 2018, years before quantum computing became a retail investing theme. It tracks the BlueStar Quantum Computing and Machine Learning Index, charges a 0.40% expense ratio, and held $6.31 billion in assets across 85 holdings as of June 24, 2026, making it by far the largest fund on this list. Read the index name carefully: quantum computing ",{"type":21,"tag":12756,"props":18733,"children":18734},{},[18735],{"type":31,"value":18736},"and",{"type":31,"value":18738}," machine learning. QTUM's holdings include Nvidia, Intel, Micron, and Teradyne alongside pure-play names like IonQ, Rigetti, and D-Wave, which makes it closer to a broad semiconductor-and-AI fund with quantum exposure mixed in than a pure quantum bet.",{"type":21,"tag":41,"props":18740,"children":18742},{"id":18741},"vaneck-quantum-computing-etf-qntm",[18743],{"type":31,"value":18744},"VanEck Quantum Computing ETF (QNTM)",{"type":21,"tag":22,"props":18746,"children":18747},{},[18748,18750,18755],{"type":31,"value":18749},"QNTM tracks the MarketVector Global Quantum Leaders Index, charges a 0.55% expense ratio, and held $811.8 million in assets as of July 31, 2026. Its top holdings as of that date: IonQ at 6.12%, Samsung Electronics at 6.01%, Honeywell at 4.69%, Boeing at 4.65%, and Infineon Technologies at 4.58%. That mix says something about how VanEck's index defines \"quantum leader\": alongside IonQ, a pure-play, it counts large industrial and semiconductor companies with quantum-relevant patent portfolios or business units, the same logic that puts ",{"type":21,"tag":26,"props":18751,"children":18752},{"href":3573},[18753],{"type":31,"value":18754},"Honeywell's Quantinuum stake",{"type":31,"value":18756}," and Samsung's semiconductor manufacturing capacity into a \"quantum\" fund.",{"type":21,"tag":41,"props":18758,"children":18760},{"id":18759},"wisdomtree-quantum-computing-fund-wqtm",[18761],{"type":31,"value":18762},"WisdomTree Quantum Computing Fund (WQTM)",{"type":21,"tag":22,"props":18764,"children":18765},{},[18766],{"type":31,"value":18767},"WQTM is the newest US-listed entrant, launched October 9, 2025, tracking the WisdomTree Classiq Quantum Computing Index with a 0.45% expense ratio and 41 holdings as of March 31, 2026. It's positioned against funds like QTUM specifically by stripping out the mega-cap technology names those funds lean on, aiming for concentration in companies more directly tied to quantum hardware, software, and cryptography. That positioning shows up in performance: WQTM was up roughly 19% year to date in 2026 against the Nasdaq-100's roughly 7% over the identical period, though a single year of outperformance from a fund barely a year old isn't evidence of a durable edge either way.",{"type":21,"tag":41,"props":18769,"children":18771},{"id":18770},"global-x-ai-semiconductor-quantum-etf-chpx",[18772],{"type":31,"value":18773},"Global X AI Semiconductor & Quantum ETF (CHPX)",{"type":21,"tag":22,"props":18775,"children":18776},{},[18777],{"type":31,"value":18778},"CHPX launched its US-listed version on September 30, 2025 (a separate Ireland-domiciled UCITS version launched November 25, 2025, aimed at European investors), and held $235.4 million across 38 holdings as of mid-2026. The name is honest about what it is: an AI-semiconductor fund with quantum computing folded in as a secondary theme, not a quantum-first fund. If you want quantum exposure specifically rather than AI-chip exposure with a quantum label attached, read the holdings before assuming the name means what it sounds like.",{"type":21,"tag":41,"props":18780,"children":18782},{"id":18781},"ishares-quantum-computing-ucits-etf-qant",[18783],{"type":31,"value":18784},"iShares Quantum Computing UCITS ETF (QANT)",{"type":21,"tag":22,"props":18786,"children":18787},{},[18788],{"type":31,"value":18789},"QANT launched December 3, 2025, tracks the STOXX Global Quantum Computing Index, charges a 0.50% expense ratio, and holds 30 positions. It's domiciled in Ireland as a UCITS fund, the European regulatory structure, which means it isn't typically available through an ordinary US brokerage account the way QTUM, QNTM, WQTM, and CHPX's US listing are. One caveat worth stating plainly: the holdings percentages showing up in current aggregator data for QANT are close enough to VanEck's QNTM figures that the overlap looks more like duplicated or miscached data than an independently verified snapshot of QANT's actual portfolio. Check iShares' own factsheet directly before treating any specific QANT holding percentage as confirmed.",{"type":21,"tag":41,"props":18791,"children":18793},{"id":18792},"arkq-isnt-a-quantum-computing-fund",[18794],{"type":31,"value":18795},"ARKQ isn't a quantum computing fund",{"type":21,"tag":22,"props":18797,"children":18798},{},[18799],{"type":31,"value":18800},"The ARK Autonomous Technology & Robotics ETF (ARKQ) appears on several \"best quantum ETFs\" roundups, but it's a broader autonomous-technology and robotics fund with some quantum-adjacent names inside it, not a quantum computing fund by mandate or index construction. Check the actual mandate before assuming a name on a listicle tracks the theme it's filed under.",{"type":21,"tag":41,"props":18802,"children":18804},{"id":18803},"the-overlap-problem",[18805],{"type":31,"value":18806},"The overlap problem",{"type":21,"tag":22,"props":18808,"children":18809},{},[18810,18812,18816],{"type":31,"value":18811},"IonQ and Honeywell show up as top holdings in more than one of these funds. Buying two or three of these ETFs for \"diversification\" often means paying two or three expense ratios for a meaningfully overlapping set of underlying positions, not independent bets. If you're comparing funds, checking the actual top-ten holdings list against each other matters more than the fund's name or marketing description, the equivalent lesson our ",{"type":21,"tag":26,"props":18813,"children":18814},{"href":18294},[18815],{"type":31,"value":18297},{"type":31,"value":18817}," covers from the company side rather than the fund side.",{"type":21,"tag":41,"props":18819,"children":18821},{"id":18820},"expense-ratios-run-well-above-a-typical-index-fund",[18822],{"type":31,"value":18823},"Expense ratios run well above a typical index fund",{"type":21,"tag":22,"props":18825,"children":18826},{},[18827,18829,18833],{"type":31,"value":18828},"Expense ratios here (0.40% to 0.55%) sit well above a typical broad-market index fund, the price of a concentrated, actively curated thematic index instead of a passive market-cap benchmark. This is not investment advice. For firm-level detail on the hardware vendors these funds hold, our ",{"type":21,"tag":26,"props":18830,"children":18831},{"href":3712},[18832],{"type":31,"value":18477},{"type":31,"value":18834}," is the place to go next.",{"title":7,"searchDepth":168,"depth":168,"links":18836},[18837,18838,18839,18840,18841,18842,18843,18844],{"id":18723,"depth":168,"text":18726},{"id":18741,"depth":168,"text":18744},{"id":18759,"depth":168,"text":18762},{"id":18770,"depth":168,"text":18773},{"id":18781,"depth":168,"text":18784},{"id":18792,"depth":168,"text":18795},{"id":18803,"depth":168,"text":18806},{"id":18820,"depth":168,"text":18823},"content:blog:quantum-computing-etfs-2026.md","blog\u002Fquantum-computing-etfs-2026.md","blog\u002Fquantum-computing-etfs-2026",{"_path":18294,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":18849,"description":18850,"date":16766,"author":11,"tags":18851,"readingTime":16,"body":18852,"_type":1187,"_id":19020,"_source":1189,"_file":19021,"_stem":19022,"_extension":1192},"Picks and Shovels for Quantum Computing: The Companies That Supply the Industry","What are the picks and shovels for quantum computing? A checkable supply chain map: dilution refrigerators, control electronics, lasers, and the compute layer connecting QPUs to classical hardware. This is not investment advice, it's a map of who builds the infrastructure.",[3396,1207],{"type":18,"children":18853,"toc":19010},[18854,18868,18874,18879,18885,18890,18896,18901,18907,18926,18932,18952,18958,18970,18976,18987,18993,18998],{"type":21,"tag":22,"props":18855,"children":18856},{},[18857,18859,18866],{"type":31,"value":18858},"\"What are the picks and shovels for quantum computing\" is a question that comes up regularly in investing circles, most recently on ",{"type":21,"tag":26,"props":18860,"children":18863},{"href":18861,"rel":18862},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FValueInvesting\u002Fcomments\u002F1t0t3wa\u002Fwhat_are_the_picks_and_shovels_for_quantum\u002F",[7123],[18864],{"type":31,"value":18865},"r\u002FValueInvesting",{"type":31,"value":18867},". It's a fair question and a real supply chain sits behind it. This is not stock-picking advice, and nothing here is a recommendation to buy anything. It's a map of who builds the infrastructure every quantum hardware company depends on, checked against real market data and real deployments rather than a forum thread's comments.",{"type":21,"tag":41,"props":18869,"children":18871},{"id":18870},"cryogenics-the-coldest-most-literal-bottleneck",[18872],{"type":31,"value":18873},"Cryogenics: the coldest, most literal bottleneck",{"type":21,"tag":22,"props":18875,"children":18876},{},[18877],{"type":31,"value":18878},"Superconducting qubits run at temperatures colder than deep space, and every superconducting quantum computer needs a dilution refrigerator to get there. Two companies dominate that market: Bluefors, a private Finnish company with roughly 34% global share, and Oxford Instruments (LSE: OXIG), whose NanoScience division holds close to 21% share with its Proteox and TritonXL systems. Together they cover more than 70% of the dilution refrigerator market, and quantum computing now drives roughly 64% of demand for that equipment. Bluefors isn't publicly traded, so Oxford Instruments is the direct public route into this specific bottleneck. It's also a diversified scientific instruments business, so a dilution refrigerator is one product line among several, not the whole business.",{"type":21,"tag":41,"props":18880,"children":18882},{"id":18881},"control-and-readout-electronics",[18883],{"type":31,"value":18884},"Control and readout electronics",{"type":21,"tag":22,"props":18886,"children":18887},{},[18888],{"type":31,"value":18889},"A quantum processor is useless without hardware that generates precisely timed microwave pulses to drive qubits and reads the result back. Keysight Technologies (NASDAQ: KEYS) built its Quantum Control System around exactly that problem, and it isn't a paper product. Keysight's QCS is embedded in Fujitsu and RIKEN's 256-qubit superconducting computer, and in mid-2025 the company installed what it describes as the world's largest commercial quantum control system, capable of driving more than 1,000 superconducting qubits, at Japan's AIST G-QuAT center. Zurich Instruments, a smaller private player, supplies similar control hardware and partnered with IQM and NVIDIA in March 2026 on a real-time error-correction demonstration, worth knowing about even though it isn't separately investable.",{"type":21,"tag":41,"props":18891,"children":18893},{"id":18892},"lasers-photonics-and-vacuum-systems",[18894],{"type":31,"value":18895},"Lasers, photonics, and vacuum systems",{"type":21,"tag":22,"props":18897,"children":18898},{},[18899],{"type":31,"value":18900},"Trapped-ion and neutral-atom qubits run on precisely tuned lasers, and every cryogenic system needs vacuum equipment to hold its insulating vacuum. MKS Instruments (NASDAQ: MKSI) sells both: tunable lasers used in quantum research, and vacuum- and gas-based process equipment used across the cryogenic stack. Coherent Corp (NYSE: COHR) is a direct photonics competitor to MKS. The two nearly merged in 2025, when MKS made a competing bid for Coherent during an acquisition battle Coherent ultimately settled with a different suitor, so they remain separate public companies today rather than one combined photonics supplier.",{"type":21,"tag":41,"props":18902,"children":18904},{"id":18903},"the-compute-layer-connecting-qpus-to-classical-hardware",[18905],{"type":31,"value":18906},"The compute layer connecting QPUs to classical hardware",{"type":21,"tag":22,"props":18908,"children":18909},{},[18910,18912,18917,18919,18924],{"type":31,"value":18911},"NVIDIA (NASDAQ: NVDA) builds no qubits at all, and that's the point of its quantum strategy. Its ",{"type":21,"tag":26,"props":18913,"children":18914},{"href":17294},[18915],{"type":31,"value":18916},"NVQLink architecture",{"type":31,"value":18918},", made generally available through the cudaq-realtime API at GTC 2026, is aimed at being the standard low-latency connection between GPUs and QPUs regardless of which hardware modality wins. The partner list is broad rather than narrow: IQM and Zurich Instruments' joint error-correction demo, Pacific Northwest National Laboratory's open-source GPU-QPU framework, Dell server validation for sub-4-microsecond real-time hosting, and integrations from Quantum Machines, Qblox, SDT, Infleqtion, and Quantinuum. Our ",{"type":21,"tag":26,"props":18920,"children":18921},{"href":14748},[18922],{"type":31,"value":18923},"own coverage of the real-time decoding bottleneck",{"type":31,"value":18925}," covers why that low-latency link matters as much as the qubits themselves. NVIDIA's quantum business is a rounding error against its AI chip revenue today, which cuts both ways: real diversification if quantum stalls, real dilution if it takes off.",{"type":21,"tag":41,"props":18927,"children":18929},{"id":18928},"domestic-semiconductor-fabrication",[18930],{"type":31,"value":18931},"Domestic semiconductor fabrication",{"type":21,"tag":22,"props":18933,"children":18934},{},[18935,18937,18943,18945,18950],{"type":31,"value":18936},"Every ion trap chip, photonic circuit, and control ASIC still needs a foundry, and the government contracts increasingly require a domestic one. GlobalFoundries (NASDAQ: GFS), ",{"type":21,"tag":26,"props":18938,"children":18940},{"href":18939},"\u002Fblog\u002Fglobalfoundries-chips-silicon-photonics-award",[18941],{"type":31,"value":18942},"which we covered in detail",{"type":31,"value":18944},", took a $300 million CHIPS Act award to scale US silicon photonics manufacturing, relevant to photonic quantum hardware even though the award itself targets AI infrastructure broadly. SkyWater Technology used to be the cleanest public solution to \"who fabricates quantum hardware's supporting electronics,\" until IonQ acquired it outright in July 2026. ",{"type":21,"tag":26,"props":18946,"children":18947},{"href":18151},[18948],{"type":31,"value":18949},"We examined what that deal changes here",{"type":31,"value":18951},": SkyWater is now a wholly owned IonQ subsidiary, not a separate, diversified supplier competitors also buy from.",{"type":21,"tag":41,"props":18953,"children":18955},{"id":18954},"indirect-exposure-through-a-diversified-parent",[18956],{"type":31,"value":18957},"Indirect exposure through a diversified parent",{"type":21,"tag":22,"props":18959,"children":18960},{},[18961,18963,18968],{"type":31,"value":18962},"Honeywell (NASDAQ: HON) isn't a supplier in the same sense as the companies above, but it's the closest thing to a backdoor into Quantinuum's technology without buying Quantinuum stock directly. Honeywell retained roughly 48-49% of Quantinuum after its June 2026 IPO, ",{"type":21,"tag":26,"props":18964,"children":18965},{"href":3573},[18966],{"type":31,"value":18967},"which we covered when it happened",{"type":31,"value":18969},", giving HON shareholders real economic exposure to Quantinuum's trapped-ion roadmap folded into a much larger, diversified industrial business.",{"type":21,"tag":41,"props":18971,"children":18973},{"id":18972},"none-of-these-suppliers-need-to-guess-which-qubit-modality-wins",[18974],{"type":31,"value":18975},"None of these suppliers need to guess which qubit modality wins",{"type":21,"tag":22,"props":18977,"children":18978},{},[18979,18981,18985],{"type":31,"value":18980},"A dilution refrigerator, a control system, a laser, and a low-latency compute link are useful whether the winning architecture turns out to be superconducting, trapped-ion, neutral-atom, or photonic. That's a genuinely different risk profile from betting on a single hardware vendor's roadmap, the kind of bet our ",{"type":21,"tag":26,"props":18982,"children":18983},{"href":3712},[18984],{"type":31,"value":18477},{"type":31,"value":18986}," covers directly.",{"type":21,"tag":41,"props":18988,"children":18990},{"id":18989},"quantum-computing-is-a-small-slice-of-these-companies-revenue",[18991],{"type":31,"value":18992},"Quantum computing is a small slice of these companies' revenue",{"type":21,"tag":22,"props":18994,"children":18995},{},[18996],{"type":31,"value":18997},"In an actual gold rush, the shovel seller's whole business was shovels. Here, quantum computing is a minor, early slice of Oxford Instruments', MKS's, Keysight's, and NVIDIA's total revenue, not the main event. That cuts two ways: these companies aren't exposed to quantum computing's risk the way a pure-play hardware vendor is, and quantum computing's success or failure won't move their results by much either, at least not yet. Treating this list as a shortcut to quantum-computing-sized returns from established, diversified industrial companies is a different bet than \"picks and shovels\" investing usually means.",{"type":21,"tag":22,"props":18999,"children":19000},{},[19001,19003,19008],{"type":31,"value":19002},"This is not investment advice. It's a supply chain map, verified against real market share data and real deployed systems. Our ",{"type":21,"tag":26,"props":19004,"children":19005},{"href":3712},[19006],{"type":31,"value":19007},"ranking of the hardware vendors themselves",{"type":31,"value":19009}," covers the firm-level comparison instead.",{"title":7,"searchDepth":168,"depth":168,"links":19011},[19012,19013,19014,19015,19016,19017,19018,19019],{"id":18870,"depth":168,"text":18873},{"id":18881,"depth":168,"text":18884},{"id":18892,"depth":168,"text":18895},{"id":18903,"depth":168,"text":18906},{"id":18928,"depth":168,"text":18931},{"id":18954,"depth":168,"text":18957},{"id":18972,"depth":168,"text":18975},{"id":18989,"depth":168,"text":18992},"content:blog:quantum-computing-picks-and-shovels-supply-chain.md","blog\u002Fquantum-computing-picks-and-shovels-supply-chain.md","blog\u002Fquantum-computing-picks-and-shovels-supply-chain",{"_path":19024,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":19025,"description":19026,"date":16766,"author":11,"tags":19027,"readingTime":234,"body":19028,"_type":1187,"_id":19100,"_source":1189,"_file":19101,"_stem":19102,"_extension":1192},"\u002Fblog\u002Fquantum-elements-orbit-qiskit-function","Quantum Elements' Orbit Automates Error Suppression Inside Qiskit","Quantum Elements launched Orbit, an automated error-suppression tool, as a Qiskit Function in IBM's Qiskit Functions Catalog on July 23, 2026. It bundles dynamical decoupling, hardware-aware transpilation, and measurement error mitigation into one call for IBM Quantum Network members.",[14720,14,13882],{"type":18,"children":19029,"toc":19095},[19030,19035,19041,19053,19059,19078,19084],{"type":21,"tag":22,"props":19031,"children":19032},{},[19033],{"type":31,"value":19034},"Quantum Elements launched Orbit on July 23, 2026, an automated error-suppression tool delivered as a Qiskit Function inside IBM's Qiskit Functions Catalog. The pitch is straightforward: instead of hand-tuning dynamical decoupling sequences, transpilation options, and measurement error mitigation separately for every circuit, Orbit bundles all three into one call, aimed at IBM Quantum Network member organizations running real workloads today rather than research demos.",{"type":21,"tag":41,"props":19036,"children":19038},{"id":19037},"what-orbit-automates",[19039],{"type":31,"value":19040},"What Orbit automates",{"type":21,"tag":22,"props":19042,"children":19043},{},[19044,19045,19051],{"type":31,"value":4481},{"type":21,"tag":26,"props":19046,"children":19048},{"href":19047},"\u002Fblog\u002Ferror-mitigation-practical-guide",[19049],{"type":31,"value":19050},"practical guide to error mitigation",{"type":31,"value":19052}," covers these three techniques individually: dynamical decoupling to suppress idle-qubit decoherence, hardware-aware transpilation to fit a circuit to a specific device's native gate set and connectivity, and measurement error mitigation to correct readout errors after the fact. Getting all three right, and right together, takes real expertise most application developers don't have time to build. Orbit's contribution is automating that combination rather than introducing a new mitigation technique, packaging existing published methods behind a single Qiskit Function call.",{"type":21,"tag":41,"props":19054,"children":19056},{"id":19055},"why-the-delivery-mechanism-is-the-actual-news",[19057],{"type":31,"value":19058},"Why the delivery mechanism is the actual news",{"type":21,"tag":22,"props":19060,"children":19061},{},[19062,19064,19070,19072,19076],{"type":31,"value":19063},"Qiskit Functions are IBM's model for distributing higher-level quantum software as callable services rather than libraries developers integrate by hand. A third party building error-suppression tooling that ships this way, instead of as a standalone package, says something about where the ecosystem is heading: toward fewer developers touching the noise-mitigation layer directly and more of them calling a function that handles it. That's consistent with this site's broader read on the ",{"type":21,"tag":26,"props":19065,"children":19067},{"href":19066},"\u002Fcompare",[19068],{"type":31,"value":19069},"SDK ecosystem",{"type":31,"value":19071},": the practical bottleneck for most teams running real circuits is not access to techniques, since ",{"type":21,"tag":26,"props":19073,"children":19074},{"href":3446},[19075],{"type":31,"value":18405},{"type":31,"value":19077}," and the built-in Qiskit primitives already cover the same ground, but the expertise needed to apply them correctly.",{"type":21,"tag":41,"props":19079,"children":19081},{"id":19080},"whats-still-unverified",[19082],{"type":31,"value":19083},"What's still unverified",{"type":21,"tag":22,"props":19085,"children":19086},{},[19087,19089,19093],{"type":31,"value":19088},"Quantum Elements' own claim is that Orbit \"significantly improves circuit execution fidelity on live processors.\" That's the company's language, not an independently reproduced benchmark, and no specific fidelity numbers or comparison baseline were disclosed in the launch announcement. Whether Orbit meaningfully outperforms a careful developer manually tuning the identical three techniques, or an existing tool like ",{"type":21,"tag":26,"props":19090,"children":19091},{"href":3446},[19092],{"type":31,"value":18405},{"type":31,"value":19094},", is the actual open question, and it's the kind of claim this site treats as a vendor statement until someone publishes a real comparison.",{"title":7,"searchDepth":168,"depth":168,"links":19096},[19097,19098,19099],{"id":19037,"depth":168,"text":19040},{"id":19055,"depth":168,"text":19058},{"id":19080,"depth":168,"text":19083},"content:blog:quantum-elements-orbit-qiskit-function.md","blog\u002Fquantum-elements-orbit-qiskit-function.md","blog\u002Fquantum-elements-orbit-qiskit-function",{"_path":13890,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":19104,"description":19105,"date":16766,"author":11,"tags":19106,"readingTime":309,"body":19107,"_type":1187,"_id":19855,"_source":1189,"_file":19856,"_stem":19857,"_extension":1192},"Quantum Volume: How to Measure It Yourself, Not Recite It","Build IBM's Quantum Volume benchmark from scratch in Qiskit: random square circuits, the heavy-output test, and the pass criterion that turns qubit count, connectivity, and gate fidelity into one comparable number.",[13,14,13882],{"type":18,"children":19108,"toc":19846},[19109,19121,19127,19139,19145,19150,19163,19168,19178,19188,19194,19207,19382,19387,19393,19398,19619,19624,19630,19643,19778,19783,19789,19800,19804,19842],{"type":21,"tag":22,"props":19110,"children":19111},{},[19112,19113,19119],{"type":31,"value":4481},{"type":21,"tag":26,"props":19114,"children":19116},{"href":19115},"\u002Fblog\u002Fquantum-benchmarking-eo-14413",[19117],{"type":31,"value":19118},"piece on the quantum benchmarking executive order",{"type":31,"value":19120}," makes the case that the field's biggest unsolved problem isn't hardware, it's the lack of a trustworthy, vendor-independent way to compare hardware at all. Quantum Volume, introduced by IBM in 2019, was one of the first serious attempts to fix that: a single number that folds qubit count, connectivity, and gate fidelity together into one comparable figure, instead of letting a vendor pick whichever number flatters them most.",{"type":21,"tag":41,"props":19122,"children":19124},{"id":19123},"what-the-number-measures",[19125],{"type":31,"value":19126},"What the number measures",{"type":21,"tag":22,"props":19128,"children":19129},{},[19130,19132,19137],{"type":31,"value":19131},"A device's Quantum Volume is 2ⁿ, where n is the size of the largest ",{"type":21,"tag":16802,"props":19133,"children":19134},{},[19135],{"type":31,"value":19136},"square circuit",{"type":31,"value":19138}," (n qubits, circuit depth also n) that the device executes correctly often enough to pass a defined statistical test. Square is deliberate. A wide, shallow circuit stresses qubit count and connectivity. A narrow, deep one stresses gate fidelity and coherence time. A square circuit stresses both at once, which is the whole point of using it as a single combined metric.",{"type":21,"tag":41,"props":19140,"children":19142},{"id":19141},"the-heavy-output-test",[19143],{"type":31,"value":19144},"The heavy output test",{"type":21,"tag":22,"props":19146,"children":19147},{},[19148],{"type":31,"value":19149},"The test circuit itself is built from randomness by design. For n qubits and depth n:",{"type":21,"tag":68,"props":19151,"children":19152},{},[19153,19158],{"type":21,"tag":72,"props":19154,"children":19155},{},[19156],{"type":31,"value":19157},"At each layer, randomly pair up the n qubits.",{"type":21,"tag":72,"props":19159,"children":19160},{},[19161],{"type":31,"value":19162},"Apply a random SU(4) unitary (a general 2-qubit gate) to each pair.",{"type":21,"tag":22,"props":19164,"children":19165},{},[19166],{"type":31,"value":19167},"That produces an output probability distribution with no special structure to exploit, which is exactly what makes it a fair stress test rather than something a device is specifically tuned to pass.",{"type":21,"tag":22,"props":19169,"children":19170},{},[19171,19176],{"type":21,"tag":16802,"props":19172,"children":19173},{},[19174],{"type":31,"value":19175},"Heavy outputs",{"type":31,"value":19177}," are defined relative to that distribution: compute the ideal (noiseless) output probabilities classically, take the median probability, and call any outcome above the median a \"heavy\" output. In the ideal case, heavy outputs cover a bit more than half the probability mass (a known property of Porter-Thomas-distributed random circuit outputs, not something you have to prove yourself each time).",{"type":21,"tag":22,"props":19179,"children":19180},{},[19181,19186],{"type":21,"tag":16802,"props":19182,"children":19183},{},[19184],{"type":31,"value":19185},"The pass criterion:",{"type":31,"value":19187}," run many random circuits of a given size on the real device, and check whether the fraction of shots landing on a heavy output exceeds 2\u002F3, with enough statistical confidence to rule out lucky guessing. If circuits of size n pass, QV = 2ⁿ. If size n+1 fails, that's the device's Quantum Volume.",{"type":21,"tag":41,"props":19189,"children":19191},{"id":19190},"building-the-circuit-in-qiskit",[19192],{"type":31,"value":19193},"Building the circuit in Qiskit",{"type":21,"tag":22,"props":19195,"children":19196},{},[19197,19199,19205],{"type":31,"value":19198},"Qiskit ships a ",{"type":21,"tag":104,"props":19200,"children":19202},{"className":19201},[],[19203],{"type":31,"value":19204},"QuantumVolume",{"type":31,"value":19206}," circuit class directly, which builds the randomized layer structure described above:",{"type":21,"tag":129,"props":19208,"children":19210},{"className":131,"code":19209,"language":133,"meta":7,"style":7},"from qiskit.circuit.library import QuantumVolume\nfrom qiskit.quantum_info import Statevector\nimport numpy as np\n\nn = 4  # qubits, and circuit depth, for a QV = 16 test\nseed = 42\n\nqv_circuit = QuantumVolume(n, depth=n, seed=seed)\nprint(qv_circuit.decompose().count_ops())\n",[19211],{"type":21,"tag":104,"props":19212,"children":19213},{"__ignoreMap":7},[19214,19234,19254,19273,19280,19302,19319,19326,19370],{"type":21,"tag":139,"props":19215,"children":19216},{"class":141,"line":142},[19217,19221,19225,19229],{"type":21,"tag":139,"props":19218,"children":19219},{"style":146},[19220],{"type":31,"value":149},{"type":21,"tag":139,"props":19222,"children":19223},{"style":152},[19224],{"type":31,"value":12829},{"type":21,"tag":139,"props":19226,"children":19227},{"style":146},[19228],{"type":31,"value":160},{"type":21,"tag":139,"props":19230,"children":19231},{"style":152},[19232],{"type":31,"value":19233}," QuantumVolume\n",{"type":21,"tag":139,"props":19235,"children":19236},{"class":141,"line":168},[19237,19241,19245,19249],{"type":21,"tag":139,"props":19238,"children":19239},{"style":146},[19240],{"type":31,"value":149},{"type":21,"tag":139,"props":19242,"children":19243},{"style":152},[19244],{"type":31,"value":17504},{"type":21,"tag":139,"props":19246,"children":19247},{"style":146},[19248],{"type":31,"value":160},{"type":21,"tag":139,"props":19250,"children":19251},{"style":152},[19252],{"type":31,"value":19253}," Statevector\n",{"type":21,"tag":139,"props":19255,"children":19256},{"class":141,"line":190},[19257,19261,19265,19269],{"type":21,"tag":139,"props":19258,"children":19259},{"style":146},[19260],{"type":31,"value":160},{"type":21,"tag":139,"props":19262,"children":19263},{"style":152},[19264],{"type":31,"value":8517},{"type":21,"tag":139,"props":19266,"children":19267},{"style":146},[19268],{"type":31,"value":5343},{"type":21,"tag":139,"props":19270,"children":19271},{"style":152},[19272],{"type":31,"value":8619},{"type":21,"tag":139,"props":19274,"children":19275},{"class":141,"line":200},[19276],{"type":21,"tag":139,"props":19277,"children":19278},{"emptyLinePlaceholder":194},[19279],{"type":31,"value":197},{"type":21,"tag":139,"props":19281,"children":19282},{"class":141,"line":226},[19283,19288,19292,19297],{"type":21,"tag":139,"props":19284,"children":19285},{"style":152},[19286],{"type":31,"value":19287},"n ",{"type":21,"tag":139,"props":19289,"children":19290},{"style":146},[19291],{"type":31,"value":211},{"type":21,"tag":139,"props":19293,"children":19294},{"style":214},[19295],{"type":31,"value":19296}," 4",{"type":21,"tag":139,"props":19298,"children":19299},{"style":220},[19300],{"type":31,"value":19301},"  # qubits, and circuit depth, for a QV = 16 test\n",{"type":21,"tag":139,"props":19303,"children":19304},{"class":141,"line":234},[19305,19310,19314],{"type":21,"tag":139,"props":19306,"children":19307},{"style":152},[19308],{"type":31,"value":19309},"seed ",{"type":21,"tag":139,"props":19311,"children":19312},{"style":146},[19313],{"type":31,"value":211},{"type":21,"tag":139,"props":19315,"children":19316},{"style":214},[19317],{"type":31,"value":19318}," 42\n",{"type":21,"tag":139,"props":19320,"children":19321},{"class":141,"line":273},[19322],{"type":21,"tag":139,"props":19323,"children":19324},{"emptyLinePlaceholder":194},[19325],{"type":31,"value":197},{"type":21,"tag":139,"props":19327,"children":19328},{"class":141,"line":309},[19329,19334,19338,19343,19348,19352,19357,19361,19365],{"type":21,"tag":139,"props":19330,"children":19331},{"style":152},[19332],{"type":31,"value":19333},"qv_circuit ",{"type":21,"tag":139,"props":19335,"children":19336},{"style":146},[19337],{"type":31,"value":211},{"type":21,"tag":139,"props":19339,"children":19340},{"style":152},[19341],{"type":31,"value":19342}," QuantumVolume(n, ",{"type":21,"tag":139,"props":19344,"children":19345},{"style":923},[19346],{"type":31,"value":19347},"depth",{"type":21,"tag":139,"props":19349,"children":19350},{"style":146},[19351],{"type":31,"value":211},{"type":21,"tag":139,"props":19353,"children":19354},{"style":152},[19355],{"type":31,"value":19356},"n, ",{"type":21,"tag":139,"props":19358,"children":19359},{"style":923},[19360],{"type":31,"value":14212},{"type":21,"tag":139,"props":19362,"children":19363},{"style":146},[19364],{"type":31,"value":211},{"type":21,"tag":139,"props":19366,"children":19367},{"style":152},[19368],{"type":31,"value":19369},"seed)\n",{"type":21,"tag":139,"props":19371,"children":19372},{"class":141,"line":16},[19373,19377],{"type":21,"tag":139,"props":19374,"children":19375},{"style":214},[19376],{"type":31,"value":948},{"type":21,"tag":139,"props":19378,"children":19379},{"style":152},[19380],{"type":31,"value":19381},"(qv_circuit.decompose().count_ops())\n",{"type":21,"tag":22,"props":19383,"children":19384},{},[19385],{"type":31,"value":19386},"Fixing a seed makes the circuit reproducible: the same seed always generates the same random layer structure, which is essential if you want to compare the identical test circuit's behavior on a simulator against real hardware later.",{"type":21,"tag":41,"props":19388,"children":19390},{"id":19389},"computing-the-heavy-outputs-classically",[19391],{"type":31,"value":19392},"Computing the heavy outputs classically",{"type":21,"tag":22,"props":19394,"children":19395},{},[19396],{"type":31,"value":19397},"Before running anything on noisy hardware, compute the ideal distribution to know what \"heavy\" means for this specific circuit:",{"type":21,"tag":129,"props":19399,"children":19401},{"className":131,"code":19400,"language":133,"meta":7,"style":7},"statevector = Statevector(qv_circuit)\nprobabilities = statevector.probabilities_dict()\n\nmedian_prob = np.median(list(probabilities.values()))\nheavy_outputs = {\n    bitstring for bitstring, p in probabilities.items()\n    if p > median_prob\n}\n\nprint(f\"{len(heavy_outputs)} heavy outputs out of {2**n} possible outcomes\")\n",[19402],{"type":21,"tag":104,"props":19403,"children":19404},{"__ignoreMap":7},[19405,19422,19439,19446,19473,19490,19516,19539,19547,19554],{"type":21,"tag":139,"props":19406,"children":19407},{"class":141,"line":142},[19408,19413,19417],{"type":21,"tag":139,"props":19409,"children":19410},{"style":152},[19411],{"type":31,"value":19412},"statevector ",{"type":21,"tag":139,"props":19414,"children":19415},{"style":146},[19416],{"type":31,"value":211},{"type":21,"tag":139,"props":19418,"children":19419},{"style":152},[19420],{"type":31,"value":19421}," Statevector(qv_circuit)\n",{"type":21,"tag":139,"props":19423,"children":19424},{"class":141,"line":168},[19425,19430,19434],{"type":21,"tag":139,"props":19426,"children":19427},{"style":152},[19428],{"type":31,"value":19429},"probabilities ",{"type":21,"tag":139,"props":19431,"children":19432},{"style":146},[19433],{"type":31,"value":211},{"type":21,"tag":139,"props":19435,"children":19436},{"style":152},[19437],{"type":31,"value":19438}," statevector.probabilities_dict()\n",{"type":21,"tag":139,"props":19440,"children":19441},{"class":141,"line":190},[19442],{"type":21,"tag":139,"props":19443,"children":19444},{"emptyLinePlaceholder":194},[19445],{"type":31,"value":197},{"type":21,"tag":139,"props":19447,"children":19448},{"class":141,"line":200},[19449,19454,19458,19463,19468],{"type":21,"tag":139,"props":19450,"children":19451},{"style":152},[19452],{"type":31,"value":19453},"median_prob ",{"type":21,"tag":139,"props":19455,"children":19456},{"style":146},[19457],{"type":31,"value":211},{"type":21,"tag":139,"props":19459,"children":19460},{"style":152},[19461],{"type":31,"value":19462}," np.median(",{"type":21,"tag":139,"props":19464,"children":19465},{"style":214},[19466],{"type":31,"value":19467},"list",{"type":21,"tag":139,"props":19469,"children":19470},{"style":152},[19471],{"type":31,"value":19472},"(probabilities.values()))\n",{"type":21,"tag":139,"props":19474,"children":19475},{"class":141,"line":226},[19476,19481,19485],{"type":21,"tag":139,"props":19477,"children":19478},{"style":152},[19479],{"type":31,"value":19480},"heavy_outputs ",{"type":21,"tag":139,"props":19482,"children":19483},{"style":146},[19484],{"type":31,"value":211},{"type":21,"tag":139,"props":19486,"children":19487},{"style":152},[19488],{"type":31,"value":19489}," {\n",{"type":21,"tag":139,"props":19491,"children":19492},{"class":141,"line":234},[19493,19498,19502,19507,19511],{"type":21,"tag":139,"props":19494,"children":19495},{"style":152},[19496],{"type":31,"value":19497},"    bitstring ",{"type":21,"tag":139,"props":19499,"children":19500},{"style":146},[19501],{"type":31,"value":1486},{"type":21,"tag":139,"props":19503,"children":19504},{"style":152},[19505],{"type":31,"value":19506}," bitstring, p ",{"type":21,"tag":139,"props":19508,"children":19509},{"style":146},[19510],{"type":31,"value":1496},{"type":21,"tag":139,"props":19512,"children":19513},{"style":152},[19514],{"type":31,"value":19515}," probabilities.items()\n",{"type":21,"tag":139,"props":19517,"children":19518},{"class":141,"line":273},[19519,19524,19529,19534],{"type":21,"tag":139,"props":19520,"children":19521},{"style":146},[19522],{"type":31,"value":19523},"    if",{"type":21,"tag":139,"props":19525,"children":19526},{"style":152},[19527],{"type":31,"value":19528}," p ",{"type":21,"tag":139,"props":19530,"children":19531},{"style":146},[19532],{"type":31,"value":19533},">",{"type":21,"tag":139,"props":19535,"children":19536},{"style":152},[19537],{"type":31,"value":19538}," median_prob\n",{"type":21,"tag":139,"props":19540,"children":19541},{"class":141,"line":309},[19542],{"type":21,"tag":139,"props":19543,"children":19544},{"style":152},[19545],{"type":31,"value":19546},"}\n",{"type":21,"tag":139,"props":19548,"children":19549},{"class":141,"line":16},[19550],{"type":21,"tag":139,"props":19551,"children":19552},{"emptyLinePlaceholder":194},[19553],{"type":31,"value":197},{"type":21,"tag":139,"props":19555,"children":19556},{"class":141,"line":361},[19557,19561,19565,19569,19573,19578,19583,19587,19592,19597,19601,19606,19610,19615],{"type":21,"tag":139,"props":19558,"children":19559},{"style":214},[19560],{"type":31,"value":948},{"type":21,"tag":139,"props":19562,"children":19563},{"style":152},[19564],{"type":31,"value":953},{"type":21,"tag":139,"props":19566,"children":19567},{"style":146},[19568],{"type":31,"value":7524},{"type":21,"tag":139,"props":19570,"children":19571},{"style":262},[19572],{"type":31,"value":15370},{"type":21,"tag":139,"props":19574,"children":19575},{"style":214},[19576],{"type":31,"value":19577},"{len",{"type":21,"tag":139,"props":19579,"children":19580},{"style":152},[19581],{"type":31,"value":19582},"(heavy_outputs)",{"type":21,"tag":139,"props":19584,"children":19585},{"style":214},[19586],{"type":31,"value":7543},{"type":21,"tag":139,"props":19588,"children":19589},{"style":262},[19590],{"type":31,"value":19591}," heavy outputs out of ",{"type":21,"tag":139,"props":19593,"children":19594},{"style":214},[19595],{"type":31,"value":19596},"{2",{"type":21,"tag":139,"props":19598,"children":19599},{"style":146},[19600],{"type":31,"value":4801},{"type":21,"tag":139,"props":19602,"children":19603},{"style":152},[19604],{"type":31,"value":19605},"n",{"type":21,"tag":139,"props":19607,"children":19608},{"style":214},[19609],{"type":31,"value":7543},{"type":21,"tag":139,"props":19611,"children":19612},{"style":262},[19613],{"type":31,"value":19614}," possible outcomes\"",{"type":21,"tag":139,"props":19616,"children":19617},{"style":152},[19618],{"type":31,"value":270},{"type":21,"tag":22,"props":19620,"children":19621},{},[19622],{"type":31,"value":19623},"For n = 4, there are 16 possible outcomes. Because heavy outputs are, by construction, everything above the median of a 16-value list, this returns 8 heavy outputs (the top half) for any generic (non-degenerate) probability distribution, a direct consequence of how the median is defined on a list of 16 distinct values, not something that depends on which particular circuit you generated.",{"type":21,"tag":41,"props":19625,"children":19627},{"id":19626},"checking-a-device-against-the-test",[19628],{"type":31,"value":19629},"Checking a device against the test",{"type":21,"tag":22,"props":19631,"children":19632},{},[19633,19635,19641],{"type":31,"value":19634},"The actual pass\u002Ffail check compares a device's measured shot distribution against the ",{"type":21,"tag":104,"props":19636,"children":19638},{"className":19637},[],[19639],{"type":31,"value":19640},"heavy_outputs",{"type":31,"value":19642}," set computed above:",{"type":21,"tag":129,"props":19644,"children":19646},{"className":131,"code":19645,"language":133,"meta":7,"style":7},"def heavy_output_fraction(counts, heavy_outputs, total_shots):\n    heavy_shots = sum(c for bitstring, c in counts.items() if bitstring in heavy_outputs)\n    return heavy_shots \u002F total_shots\n\n# counts = result from running qv_circuit on AerSimulator or real hardware\n# fraction = heavy_output_fraction(counts, heavy_outputs, shots)\n# passes = fraction > 2\u002F3 (with confidence interval accounting for shot noise)\n",[19647],{"type":21,"tag":104,"props":19648,"children":19649},{"__ignoreMap":7},[19650,19667,19726,19747,19754,19762,19770],{"type":21,"tag":139,"props":19651,"children":19652},{"class":141,"line":142},[19653,19657,19662],{"type":21,"tag":139,"props":19654,"children":19655},{"style":146},[19656],{"type":31,"value":5487},{"type":21,"tag":139,"props":19658,"children":19659},{"style":4509},[19660],{"type":31,"value":19661}," heavy_output_fraction",{"type":21,"tag":139,"props":19663,"children":19664},{"style":152},[19665],{"type":31,"value":19666},"(counts, heavy_outputs, total_shots):\n",{"type":21,"tag":139,"props":19668,"children":19669},{"class":141,"line":168},[19670,19675,19679,19684,19689,19693,19698,19702,19707,19712,19717,19721],{"type":21,"tag":139,"props":19671,"children":19672},{"style":152},[19673],{"type":31,"value":19674},"    heavy_shots ",{"type":21,"tag":139,"props":19676,"children":19677},{"style":146},[19678],{"type":31,"value":211},{"type":21,"tag":139,"props":19680,"children":19681},{"style":214},[19682],{"type":31,"value":19683}," sum",{"type":21,"tag":139,"props":19685,"children":19686},{"style":152},[19687],{"type":31,"value":19688},"(c ",{"type":21,"tag":139,"props":19690,"children":19691},{"style":146},[19692],{"type":31,"value":1486},{"type":21,"tag":139,"props":19694,"children":19695},{"style":152},[19696],{"type":31,"value":19697}," bitstring, c ",{"type":21,"tag":139,"props":19699,"children":19700},{"style":146},[19701],{"type":31,"value":1496},{"type":21,"tag":139,"props":19703,"children":19704},{"style":152},[19705],{"type":31,"value":19706}," counts.items() ",{"type":21,"tag":139,"props":19708,"children":19709},{"style":146},[19710],{"type":31,"value":19711},"if",{"type":21,"tag":139,"props":19713,"children":19714},{"style":152},[19715],{"type":31,"value":19716}," bitstring ",{"type":21,"tag":139,"props":19718,"children":19719},{"style":146},[19720],{"type":31,"value":1496},{"type":21,"tag":139,"props":19722,"children":19723},{"style":152},[19724],{"type":31,"value":19725}," heavy_outputs)\n",{"type":21,"tag":139,"props":19727,"children":19728},{"class":141,"line":190},[19729,19733,19738,19742],{"type":21,"tag":139,"props":19730,"children":19731},{"style":146},[19732],{"type":31,"value":5582},{"type":21,"tag":139,"props":19734,"children":19735},{"style":152},[19736],{"type":31,"value":19737}," heavy_shots ",{"type":21,"tag":139,"props":19739,"children":19740},{"style":146},[19741],{"type":31,"value":5062},{"type":21,"tag":139,"props":19743,"children":19744},{"style":152},[19745],{"type":31,"value":19746}," total_shots\n",{"type":21,"tag":139,"props":19748,"children":19749},{"class":141,"line":200},[19750],{"type":21,"tag":139,"props":19751,"children":19752},{"emptyLinePlaceholder":194},[19753],{"type":31,"value":197},{"type":21,"tag":139,"props":19755,"children":19756},{"class":141,"line":226},[19757],{"type":21,"tag":139,"props":19758,"children":19759},{"style":220},[19760],{"type":31,"value":19761},"# counts = result from running qv_circuit on AerSimulator or real hardware\n",{"type":21,"tag":139,"props":19763,"children":19764},{"class":141,"line":234},[19765],{"type":21,"tag":139,"props":19766,"children":19767},{"style":220},[19768],{"type":31,"value":19769},"# fraction = heavy_output_fraction(counts, heavy_outputs, shots)\n",{"type":21,"tag":139,"props":19771,"children":19772},{"class":141,"line":273},[19773],{"type":21,"tag":139,"props":19774,"children":19775},{"style":220},[19776],{"type":31,"value":19777},"# passes = fraction > 2\u002F3 (with confidence interval accounting for shot noise)\n",{"type":21,"tag":22,"props":19779,"children":19780},{},[19781],{"type":31,"value":19782},"Run this at increasing n (5, 6, 7...) against a real device until the pass criterion fails. Whatever the largest passing n was, that device's Quantum Volume is 2ⁿ.",{"type":21,"tag":41,"props":19784,"children":19786},{"id":19785},"why-this-matters-more-than-a-qubit-count",[19787],{"type":31,"value":19788},"Why this matters more than a qubit count",{"type":21,"tag":22,"props":19790,"children":19791},{},[19792,19794,19798],{"type":31,"value":19793},"A device might have a large qubit count and a modest Quantum Volume if its connectivity is poor or its two-qubit gate fidelity is weak, since either forces the transpiler to insert extra SWAP gates that eat into the circuit's effective depth budget. That's the entire reason the metric exists: to catch exactly the kind of headline that reports qubit count alone and lets a weak connectivity graph or a mediocre gate fidelity hide behind it. It has real limits too. Quantum Volume only tests up to the point where the device stops passing, so it says little about behavior far past that threshold, and its randomized-circuit structure doesn't necessarily reflect the specific circuits any particular application runs. Application-oriented benchmarks like the ones tracked on our ",{"type":21,"tag":26,"props":19795,"children":19796},{"href":3446},[19797],{"type":31,"value":3456},{"type":31,"value":19799}," exist partly to fill that gap.",{"type":21,"tag":41,"props":19801,"children":19802},{"id":5900},[19803],{"type":31,"value":5903},{"type":21,"tag":1112,"props":19805,"children":19806},{},[19807,19819,19831],{"type":21,"tag":72,"props":19808,"children":19809},{},[19810,19812,19817],{"type":31,"value":19811},"Generate ",{"type":21,"tag":104,"props":19813,"children":19815},{"className":19814},[],[19816],{"type":31,"value":19204},{"type":31,"value":19818}," circuits at increasing n and watch how quickly the transpiled two-qubit gate count grows once you target a real device's connectivity graph instead of an all-to-all simulator.",{"type":21,"tag":72,"props":19820,"children":19821},{},[19822,19824,19829],{"type":31,"value":19823},"Compare heavy-output fractions between a noiseless ",{"type":21,"tag":104,"props":19825,"children":19827},{"className":19826},[],[19828],{"type":31,"value":1673},{"type":31,"value":19830}," and a noisy one built with a realistic device noise model, and find the n where the pass criterion starts failing.",{"type":21,"tag":72,"props":19832,"children":19833},{},[19834,19835,19840],{"type":31,"value":13435},{"type":21,"tag":26,"props":19836,"children":19837},{"href":19115},[19838],{"type":31,"value":19839},"quantum benchmarking executive order piece",{"type":31,"value":19841}," for why the field still doesn't agree on a single trustworthy way to compare hardware, Quantum Volume included.",{"type":21,"tag":1168,"props":19843,"children":19844},{},[19845],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":19847},[19848,19849,19850,19851,19852,19853,19854],{"id":19123,"depth":168,"text":19126},{"id":19141,"depth":168,"text":19144},{"id":19190,"depth":168,"text":19193},{"id":19389,"depth":168,"text":19392},{"id":19626,"depth":168,"text":19629},{"id":19785,"depth":168,"text":19788},{"id":5900,"depth":168,"text":5903},"content:blog:quantum-volume-benchmarking-tutorial.md","blog\u002Fquantum-volume-benchmarking-tutorial.md","blog\u002Fquantum-volume-benchmarking-tutorial",{"_path":19859,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":19860,"description":19861,"date":16766,"author":11,"tags":19862,"readingTime":234,"body":19863,"_type":1187,"_id":19934,"_source":1189,"_file":19935,"_stem":19936,"_extension":1192},"\u002Fblog\u002Frigetti-hpe-pittsburgh-tanglelab","Rigetti, HPE, and Pittsburgh Build 'TangleLab,' a 9-Qubit Hybrid HPC Testbed","Rigetti, HPE, and the Pittsburgh Supercomputing Center are building TangleLab, an NSF-funded hybrid quantum-classical supercomputer pairing a 9-qubit Novera system with classical HPC. Construction starts September 1, 2026, with full operations targeted for 2027.",[3396,1207],{"type":18,"children":19864,"toc":19928},[19865,19870,19876,19887,19893,19904,19908,19913,19917],{"type":21,"tag":22,"props":19866,"children":19867},{},[19868],{"type":31,"value":19869},"Rigetti announced an expanded collaboration with HPE and the Pittsburgh Supercomputing Center on July 27, 2026, to build TangleLab, a hybrid quantum-classical supercomputing testbed. The project is funded by a $5 million National Science Foundation grant, pairs a 9-qubit Rigetti Novera system with a classical HPC system, and construction begins September 1, 2026, at PSC's new data center, targeting entire operations in 2027.",{"type":21,"tag":41,"props":19871,"children":19873},{"id":19872},"a-small-qubit-count-on-purpose",[19874],{"type":31,"value":19875},"A small qubit count, on purpose",{"type":21,"tag":22,"props":19877,"children":19878},{},[19879,19881,19885],{"type":31,"value":19880},"Nine qubits is a modest number next to the systems this site usually covers, and that's the point of a testbed rather than a production system. TangleLab exists to work out the integration problem, how a real quantum processor and a real classical supercomputer talk to each other under production HPC conditions, not to demonstrate a qubit-count milestone. Our ",{"type":21,"tag":26,"props":19882,"children":19883},{"href":3712},[19884],{"type":31,"value":18477},{"type":31,"value":19886}," already covers where Rigetti sits on pure hardware metrics: behind IBM, Google, IonQ, and Quantinuum on fidelity and commercial traction, with its strongest asset being a solid cash position. A federally funded integration testbed is a different kind of contribution, orthogonal to that ranking rather than a challenge to it.",{"type":21,"tag":41,"props":19888,"children":19890},{"id":19889},"a-varied-integration-model-than-nvidias",[19891],{"type":31,"value":19892},"A varied integration model than NVIDIA's",{"type":21,"tag":22,"props":19894,"children":19895},{},[19896,19897,19902],{"type":31,"value":4481},{"type":21,"tag":26,"props":19898,"children":19899},{"href":17294},[19900],{"type":31,"value":19901},"NVQLink page",{"type":31,"value":19903}," covers NVIDIA's approach to the same general problem, connecting GPU-accelerated classical compute to QPU control electronics with sub-4-microsecond latency, aimed at real-time error correction decoding. TangleLab is a different kind of integration project: an NSF-funded, academically hosted testbed built around one specific vendor's hardware (Rigetti's Novera) rather than an open, provider-agnostic architecture spanning many QPU builders. Both are real answers to \"how does a quantum processor plug into HPC infrastructure,\" built for different purposes, one a broad industry standard, one a focused research testbed.",{"type":21,"tag":41,"props":19905,"children":19906},{"id":3661},[19907],{"type":31,"value":3664},{"type":21,"tag":22,"props":19909,"children":19910},{},[19911],{"type":31,"value":19912},"Confirmed: the $5 million NSF grant, the 9-qubit Novera hardware, the September 1 construction start, and the 2027 full-operations goal. Not yet known: what specific research workloads TangleLab will run first, or what integration lessons it produces that might generalize beyond this one testbed. That's the part worth watching once construction finishes.",{"type":21,"tag":41,"props":19914,"children":19915},{"id":3461},[19916],{"type":31,"value":3464},{"type":21,"tag":22,"props":19918,"children":19919},{},[19920,19922,19926],{"type":31,"value":19921},"Whether TangleLab publishes real integration benchmarks (latency, throughput between the classical and quantum sides) once operational in 2027, the equivalent kind of number this site looks for in any hybrid quantum-classical assertion. Our ",{"type":21,"tag":26,"props":19923,"children":19924},{"href":1100},[19925],{"type":31,"value":16080},{"type":31,"value":19927}," tracks how testbeds like this compare with other paths to real QPU access.",{"title":7,"searchDepth":168,"depth":168,"links":19929},[19930,19931,19932,19933],{"id":19872,"depth":168,"text":19875},{"id":19889,"depth":168,"text":19892},{"id":3661,"depth":168,"text":3664},{"id":3461,"depth":168,"text":3464},"content:blog:rigetti-hpe-pittsburgh-tanglelab.md","blog\u002Frigetti-hpe-pittsburgh-tanglelab.md","blog\u002Frigetti-hpe-pittsburgh-tanglelab",{"_path":19938,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":19939,"description":19940,"date":16766,"author":11,"tags":19941,"readingTime":369,"body":19942,"_type":1187,"_id":21268,"_source":1189,"_file":21269,"_stem":21270,"_extension":1192},"\u002Fblog\u002Fshors-algorithm-tutorial","Shor's Algorithm in Qiskit: A Practical Tutorial","Build Shor's factoring algorithm from scratch in Qiskit: modular exponentiation, the quantum Fourier transform, and the continued-fractions post-processing that turns a measured phase into a real factor of 15.",[13,14,15],{"type":18,"children":19943,"toc":21258},[19944,19964,19969,19975,19995,20000,20006,20011,20408,20413,20419,20431,20684,20689,20695,20700,20708,20714,20719,20946,20951,20957,20962,21169,21174,21180,21205,21209,21254],{"type":21,"tag":22,"props":19945,"children":19946},{},[19947,19949,19955,19957,19962],{"type":31,"value":19948},"Shor's algorithm gets referenced constantly on this site, in our ",{"type":21,"tag":26,"props":19950,"children":19952},{"href":19951},"\u002Fblog\u002Fq-day-breaking-rsa-2048",[19953],{"type":31,"value":19954},"Q-Day piece",{"type":31,"value":19956}," and our ",{"type":21,"tag":26,"props":19958,"children":19959},{"href":18016},[19960],{"type":31,"value":19961},"QFT tutorial",{"type":31,"value":19963},", because it's the algorithm that makes RSA a finite-lifetime cryptosystem. It rarely gets built. This tutorial builds it, using the standard small textbook example (factoring 15) so every piece stays visible instead of disappearing into a circuit too large to reason about.",{"type":21,"tag":22,"props":19965,"children":19966},{},[19967],{"type":31,"value":19968},"A note on the code below: it targets Qiskit 2.5.0 and is written to run as shown. Where a step involves probabilistic measurement, we describe the theoretical distribution the math predicts rather than presenting a specific captured run as if it were the only possible outcome.",{"type":21,"tag":41,"props":19970,"children":19972},{"id":19971},"what-shors-algorithm-reduces-to",[19973],{"type":31,"value":19974},"What Shor's algorithm reduces to",{"type":21,"tag":22,"props":19976,"children":19977},{},[19978,19980,19985,19987,19993],{"type":31,"value":19979},"Factoring N reduces to a different problem: given some a coprime to N, find the smallest r such that a^r ≡ 1 (mod N). This is ",{"type":21,"tag":16802,"props":19981,"children":19982},{},[19983],{"type":31,"value":19984},"order finding",{"type":31,"value":19986},", and once you have r, classical post-processing (a GCD computation) usually hands you a real factor. The ",{"type":21,"tag":26,"props":19988,"children":19990},{"href":19989},"\u002Fresearch\u002Fshor-factoring-1994",[19991],{"type":31,"value":19992},"1994 paper",{"type":31,"value":19994}," is short precisely because almost all of it is number theory. The quantum part exists only to locate r fast, since finding it classically takes exponential time.",{"type":21,"tag":22,"props":19996,"children":19997},{},[19998],{"type":31,"value":19999},"For N = 15, pick a = 7 (coprime to 15, and a well-known example because the period is small enough to see clearly). The sequence 7¹, 7², 7³, 7⁴ mod 15 is 7, 4, 13, 1, so r = 4.",{"type":21,"tag":41,"props":20001,"children":20003},{"id":20002},"step-1-modular-exponentiation-as-a-quantum-operator",[20004],{"type":31,"value":20005},"Step 1: Modular exponentiation as a quantum operator",{"type":21,"tag":22,"props":20007,"children":20008},{},[20009],{"type":31,"value":20010},"The circuit needs a unitary U that maps |x⟩ to |a·x mod N⟩ for a work register, controlled by a counting register. Building a general modular exponentiation circuit is real engineering (see Qiskit's own algorithm library for the entire construction), so this tutorial uses the standard shortcut for the textbook case: since 7 mod 15 has order 4, the controlled-U operations reduce to a small, explicit permutation matrix on 4 qubits (one for the counting register bit being tested, plus a 4-state work register encoded in 2 qubits for the cycle 1 → 7 → 4 → 13 → 1).",{"type":21,"tag":129,"props":20012,"children":20014},{"code":20013,"language":133,"meta":7,"className":131,"style":7},"import numpy as np\nfrom qiskit import QuantumCircuit, transpile\nfrom qiskit.circuit.library import QFTGate\nfrom qiskit_aer import AerSimulator\nfrom fractions import Fraction\n\nN, a = 15, 7\n\ndef c_amod15(power):\n    \"\"\"Controlled multiplication by 7^power mod 15, built from the known 4-cycle.\"\"\"\n    qc = QuantumCircuit(4)\n    for _ in range(power):\n        qc.swap(2, 3)\n        qc.swap(1, 2)\n        qc.swap(0, 1)\n        for q in range(4):\n            qc.x(q)\n    U = qc.to_gate()\n    U.name = f\"7^{power} mod 15\"\n    return U.control()\n",[20015],{"type":21,"tag":104,"props":20016,"children":20017},{"__ignoreMap":7},[20018,20037,20057,20077,20096,20117,20124,20150,20157,20174,20182,20205,20228,20252,20275,20298,20331,20339,20356,20396],{"type":21,"tag":139,"props":20019,"children":20020},{"class":141,"line":142},[20021,20025,20029,20033],{"type":21,"tag":139,"props":20022,"children":20023},{"style":146},[20024],{"type":31,"value":160},{"type":21,"tag":139,"props":20026,"children":20027},{"style":152},[20028],{"type":31,"value":8517},{"type":21,"tag":139,"props":20030,"children":20031},{"style":146},[20032],{"type":31,"value":5343},{"type":21,"tag":139,"props":20034,"children":20035},{"style":152},[20036],{"type":31,"value":8619},{"type":21,"tag":139,"props":20038,"children":20039},{"class":141,"line":168},[20040,20044,20048,20052],{"type":21,"tag":139,"props":20041,"children":20042},{"style":146},[20043],{"type":31,"value":149},{"type":21,"tag":139,"props":20045,"children":20046},{"style":152},[20047],{"type":31,"value":155},{"type":21,"tag":139,"props":20049,"children":20050},{"style":146},[20051],{"type":31,"value":160},{"type":21,"tag":139,"props":20053,"children":20054},{"style":152},[20055],{"type":31,"value":20056}," QuantumCircuit, transpile\n",{"type":21,"tag":139,"props":20058,"children":20059},{"class":141,"line":190},[20060,20064,20068,20072],{"type":21,"tag":139,"props":20061,"children":20062},{"style":146},[20063],{"type":31,"value":149},{"type":21,"tag":139,"props":20065,"children":20066},{"style":152},[20067],{"type":31,"value":12829},{"type":21,"tag":139,"props":20069,"children":20070},{"style":146},[20071],{"type":31,"value":160},{"type":21,"tag":139,"props":20073,"children":20074},{"style":152},[20075],{"type":31,"value":20076}," QFTGate\n",{"type":21,"tag":139,"props":20078,"children":20079},{"class":141,"line":200},[20080,20084,20088,20092],{"type":21,"tag":139,"props":20081,"children":20082},{"style":146},[20083],{"type":31,"value":149},{"type":21,"tag":139,"props":20085,"children":20086},{"style":152},[20087],{"type":31,"value":178},{"type":21,"tag":139,"props":20089,"children":20090},{"style":146},[20091],{"type":31,"value":160},{"type":21,"tag":139,"props":20093,"children":20094},{"style":152},[20095],{"type":31,"value":187},{"type":21,"tag":139,"props":20097,"children":20098},{"class":141,"line":226},[20099,20103,20108,20112],{"type":21,"tag":139,"props":20100,"children":20101},{"style":146},[20102],{"type":31,"value":149},{"type":21,"tag":139,"props":20104,"children":20105},{"style":152},[20106],{"type":31,"value":20107}," fractions ",{"type":21,"tag":139,"props":20109,"children":20110},{"style":146},[20111],{"type":31,"value":160},{"type":21,"tag":139,"props":20113,"children":20114},{"style":152},[20115],{"type":31,"value":20116}," Fraction\n",{"type":21,"tag":139,"props":20118,"children":20119},{"class":141,"line":234},[20120],{"type":21,"tag":139,"props":20121,"children":20122},{"emptyLinePlaceholder":194},[20123],{"type":31,"value":197},{"type":21,"tag":139,"props":20125,"children":20126},{"class":141,"line":273},[20127,20132,20136,20141,20145],{"type":21,"tag":139,"props":20128,"children":20129},{"style":152},[20130],{"type":31,"value":20131},"N, a ",{"type":21,"tag":139,"props":20133,"children":20134},{"style":146},[20135],{"type":31,"value":211},{"type":21,"tag":139,"props":20137,"children":20138},{"style":214},[20139],{"type":31,"value":20140}," 15",{"type":21,"tag":139,"props":20142,"children":20143},{"style":152},[20144],{"type":31,"value":259},{"type":21,"tag":139,"props":20146,"children":20147},{"style":214},[20148],{"type":31,"value":20149},"7\n",{"type":21,"tag":139,"props":20151,"children":20152},{"class":141,"line":309},[20153],{"type":21,"tag":139,"props":20154,"children":20155},{"emptyLinePlaceholder":194},[20156],{"type":31,"value":197},{"type":21,"tag":139,"props":20158,"children":20159},{"class":141,"line":16},[20160,20164,20169],{"type":21,"tag":139,"props":20161,"children":20162},{"style":146},[20163],{"type":31,"value":5487},{"type":21,"tag":139,"props":20165,"children":20166},{"style":4509},[20167],{"type":31,"value":20168}," c_amod15",{"type":21,"tag":139,"props":20170,"children":20171},{"style":152},[20172],{"type":31,"value":20173},"(power):\n",{"type":21,"tag":139,"props":20175,"children":20176},{"class":141,"line":361},[20177],{"type":21,"tag":139,"props":20178,"children":20179},{"style":262},[20180],{"type":31,"value":20181},"    \"\"\"Controlled multiplication by 7^power mod 15, built from the known 4-cycle.\"\"\"\n",{"type":21,"tag":139,"props":20183,"children":20184},{"class":141,"line":369},[20185,20189,20193,20197,20201],{"type":21,"tag":139,"props":20186,"children":20187},{"style":152},[20188],{"type":31,"value":17771},{"type":21,"tag":139,"props":20190,"children":20191},{"style":146},[20192],{"type":31,"value":211},{"type":21,"tag":139,"props":20194,"children":20195},{"style":152},[20196],{"type":31,"value":6292},{"type":21,"tag":139,"props":20198,"children":20199},{"style":214},[20200],{"type":31,"value":17918},{"type":21,"tag":139,"props":20202,"children":20203},{"style":152},[20204],{"type":31,"value":270},{"type":21,"tag":139,"props":20206,"children":20207},{"class":141,"line":378},[20208,20212,20216,20220,20224],{"type":21,"tag":139,"props":20209,"children":20210},{"style":146},[20211],{"type":31,"value":17024},{"type":21,"tag":139,"props":20213,"children":20214},{"style":152},[20215],{"type":31,"value":17827},{"type":21,"tag":139,"props":20217,"children":20218},{"style":146},[20219],{"type":31,"value":1496},{"type":21,"tag":139,"props":20221,"children":20222},{"style":214},[20223],{"type":31,"value":7417},{"type":21,"tag":139,"props":20225,"children":20226},{"style":152},[20227],{"type":31,"value":20173},{"type":21,"tag":139,"props":20229,"children":20230},{"class":141,"line":387},[20231,20236,20240,20244,20248],{"type":21,"tag":139,"props":20232,"children":20233},{"style":152},[20234],{"type":31,"value":20235},"        qc.swap(",{"type":21,"tag":139,"props":20237,"children":20238},{"style":214},[20239],{"type":31,"value":293},{"type":21,"tag":139,"props":20241,"children":20242},{"style":152},[20243],{"type":31,"value":259},{"type":21,"tag":139,"props":20245,"children":20246},{"style":214},[20247],{"type":31,"value":254},{"type":21,"tag":139,"props":20249,"children":20250},{"style":152},[20251],{"type":31,"value":270},{"type":21,"tag":139,"props":20253,"children":20254},{"class":141,"line":396},[20255,20259,20263,20267,20271],{"type":21,"tag":139,"props":20256,"children":20257},{"style":152},[20258],{"type":31,"value":20235},{"type":21,"tag":139,"props":20260,"children":20261},{"style":214},[20262],{"type":31,"value":328},{"type":21,"tag":139,"props":20264,"children":20265},{"style":152},[20266],{"type":31,"value":259},{"type":21,"tag":139,"props":20268,"children":20269},{"style":214},[20270],{"type":31,"value":293},{"type":21,"tag":139,"props":20272,"children":20273},{"style":152},[20274],{"type":31,"value":270},{"type":21,"tag":139,"props":20276,"children":20277},{"class":141,"line":414},[20278,20282,20286,20290,20294],{"type":21,"tag":139,"props":20279,"children":20280},{"style":152},[20281],{"type":31,"value":20235},{"type":21,"tag":139,"props":20283,"children":20284},{"style":214},[20285],{"type":31,"value":407},{"type":21,"tag":139,"props":20287,"children":20288},{"style":152},[20289],{"type":31,"value":259},{"type":21,"tag":139,"props":20291,"children":20292},{"style":214},[20293],{"type":31,"value":328},{"type":21,"tag":139,"props":20295,"children":20296},{"style":152},[20297],{"type":31,"value":270},{"type":21,"tag":139,"props":20299,"children":20300},{"class":141,"line":12589},[20301,20306,20311,20315,20319,20323,20327],{"type":21,"tag":139,"props":20302,"children":20303},{"style":146},[20304],{"type":31,"value":20305},"        for",{"type":21,"tag":139,"props":20307,"children":20308},{"style":152},[20309],{"type":31,"value":20310}," q ",{"type":21,"tag":139,"props":20312,"children":20313},{"style":146},[20314],{"type":31,"value":1496},{"type":21,"tag":139,"props":20316,"children":20317},{"style":214},[20318],{"type":31,"value":7417},{"type":21,"tag":139,"props":20320,"children":20321},{"style":152},[20322],{"type":31,"value":953},{"type":21,"tag":139,"props":20324,"children":20325},{"style":214},[20326],{"type":31,"value":17918},{"type":21,"tag":139,"props":20328,"children":20329},{"style":152},[20330],{"type":31,"value":7430},{"type":21,"tag":139,"props":20332,"children":20333},{"class":141,"line":12606},[20334],{"type":21,"tag":139,"props":20335,"children":20336},{"style":152},[20337],{"type":31,"value":20338},"            qc.x(q)\n",{"type":21,"tag":139,"props":20340,"children":20341},{"class":141,"line":12622},[20342,20347,20351],{"type":21,"tag":139,"props":20343,"children":20344},{"style":152},[20345],{"type":31,"value":20346},"    U ",{"type":21,"tag":139,"props":20348,"children":20349},{"style":146},[20350],{"type":31,"value":211},{"type":21,"tag":139,"props":20352,"children":20353},{"style":152},[20354],{"type":31,"value":20355}," qc.to_gate()\n",{"type":21,"tag":139,"props":20357,"children":20358},{"class":141,"line":12630},[20359,20364,20368,20373,20378,20382,20387,20391],{"type":21,"tag":139,"props":20360,"children":20361},{"style":152},[20362],{"type":31,"value":20363},"    U.name ",{"type":21,"tag":139,"props":20365,"children":20366},{"style":146},[20367],{"type":31,"value":211},{"type":21,"tag":139,"props":20369,"children":20370},{"style":146},[20371],{"type":31,"value":20372}," f",{"type":21,"tag":139,"props":20374,"children":20375},{"style":262},[20376],{"type":31,"value":20377},"\"7^",{"type":21,"tag":139,"props":20379,"children":20380},{"style":214},[20381],{"type":31,"value":7534},{"type":21,"tag":139,"props":20383,"children":20384},{"style":152},[20385],{"type":31,"value":20386},"power",{"type":21,"tag":139,"props":20388,"children":20389},{"style":214},[20390],{"type":31,"value":7543},{"type":21,"tag":139,"props":20392,"children":20393},{"style":262},[20394],{"type":31,"value":20395}," mod 15\"\n",{"type":21,"tag":139,"props":20397,"children":20398},{"class":141,"line":17747},[20399,20403],{"type":21,"tag":139,"props":20400,"children":20401},{"style":146},[20402],{"type":31,"value":5582},{"type":21,"tag":139,"props":20404,"children":20405},{"style":152},[20406],{"type":31,"value":20407}," U.control()\n",{"type":21,"tag":22,"props":20409,"children":20410},{},[20411],{"type":31,"value":20412},"This is the standard construction used in introductory Shor's tutorials for N = 15 specifically. It is not a general modular exponentiation circuit, and it would not extend to a larger N without a real arithmetic circuit behind it, worth being upfront about rather than implying this scales.",{"type":21,"tag":41,"props":20414,"children":20416},{"id":20415},"step-2-the-counting-register-and-inverse-qft",[20417],{"type":31,"value":20418},"Step 2: The counting register and inverse QFT",{"type":21,"tag":22,"props":20420,"children":20421},{},[20422,20424,20429],{"type":31,"value":20423},"Order finding is ",{"type":21,"tag":26,"props":20425,"children":20426},{"href":18016},[20427],{"type":31,"value":20428},"quantum phase estimation",{"type":31,"value":20430}," applied to the operator \"multiply by a mod N.\" Three counting qubits are enough to resolve a period of 4 (since 2³ = 8 gives more than enough resolution for r = 4):",{"type":21,"tag":129,"props":20432,"children":20434},{"code":20433,"language":133,"meta":7,"className":131,"style":7},"n_count = 3\n\nqc = QuantumCircuit(n_count + 4, n_count)\n\nfor q in range(n_count):\n    qc.h(q)\n\nqc.x(n_count)  # work register starts in |1>\n\nfor q in range(n_count):\n    qc.append(c_amod15(2 ** q), [q] + list(range(n_count, n_count + 4)))\n\nqc.append(QFTGate(n_count).inverse(), range(n_count))\nqc.measure(range(n_count), range(n_count))\n",[20435],{"type":21,"tag":104,"props":20436,"children":20437},{"__ignoreMap":7},[20438,20455,20462,20491,20498,20522,20530,20537,20550,20557,20580,20636,20643,20660],{"type":21,"tag":139,"props":20439,"children":20440},{"class":141,"line":142},[20441,20446,20450],{"type":21,"tag":139,"props":20442,"children":20443},{"style":152},[20444],{"type":31,"value":20445},"n_count ",{"type":21,"tag":139,"props":20447,"children":20448},{"style":146},[20449],{"type":31,"value":211},{"type":21,"tag":139,"props":20451,"children":20452},{"style":214},[20453],{"type":31,"value":20454}," 3\n",{"type":21,"tag":139,"props":20456,"children":20457},{"class":141,"line":168},[20458],{"type":21,"tag":139,"props":20459,"children":20460},{"emptyLinePlaceholder":194},[20461],{"type":31,"value":197},{"type":21,"tag":139,"props":20463,"children":20464},{"class":141,"line":190},[20465,20469,20473,20478,20482,20486],{"type":21,"tag":139,"props":20466,"children":20467},{"style":152},[20468],{"type":31,"value":349},{"type":21,"tag":139,"props":20470,"children":20471},{"style":146},[20472],{"type":31,"value":211},{"type":21,"tag":139,"props":20474,"children":20475},{"style":152},[20476],{"type":31,"value":20477}," QuantumCircuit(n_count ",{"type":21,"tag":139,"props":20479,"children":20480},{"style":146},[20481],{"type":31,"value":1599},{"type":21,"tag":139,"props":20483,"children":20484},{"style":214},[20485],{"type":31,"value":19296},{"type":21,"tag":139,"props":20487,"children":20488},{"style":152},[20489],{"type":31,"value":20490},", n_count)\n",{"type":21,"tag":139,"props":20492,"children":20493},{"class":141,"line":200},[20494],{"type":21,"tag":139,"props":20495,"children":20496},{"emptyLinePlaceholder":194},[20497],{"type":31,"value":197},{"type":21,"tag":139,"props":20499,"children":20500},{"class":141,"line":226},[20501,20505,20509,20513,20517],{"type":21,"tag":139,"props":20502,"children":20503},{"style":146},[20504],{"type":31,"value":1486},{"type":21,"tag":139,"props":20506,"children":20507},{"style":152},[20508],{"type":31,"value":20310},{"type":21,"tag":139,"props":20510,"children":20511},{"style":146},[20512],{"type":31,"value":1496},{"type":21,"tag":139,"props":20514,"children":20515},{"style":214},[20516],{"type":31,"value":7417},{"type":21,"tag":139,"props":20518,"children":20519},{"style":152},[20520],{"type":31,"value":20521},"(n_count):\n",{"type":21,"tag":139,"props":20523,"children":20524},{"class":141,"line":234},[20525],{"type":21,"tag":139,"props":20526,"children":20527},{"style":152},[20528],{"type":31,"value":20529},"    qc.h(q)\n",{"type":21,"tag":139,"props":20531,"children":20532},{"class":141,"line":273},[20533],{"type":21,"tag":139,"props":20534,"children":20535},{"emptyLinePlaceholder":194},[20536],{"type":31,"value":197},{"type":21,"tag":139,"props":20538,"children":20539},{"class":141,"line":309},[20540,20545],{"type":21,"tag":139,"props":20541,"children":20542},{"style":152},[20543],{"type":31,"value":20544},"qc.x(n_count)  ",{"type":21,"tag":139,"props":20546,"children":20547},{"style":220},[20548],{"type":31,"value":20549},"# work register starts in |1>\n",{"type":21,"tag":139,"props":20551,"children":20552},{"class":141,"line":16},[20553],{"type":21,"tag":139,"props":20554,"children":20555},{"emptyLinePlaceholder":194},[20556],{"type":31,"value":197},{"type":21,"tag":139,"props":20558,"children":20559},{"class":141,"line":361},[20560,20564,20568,20572,20576],{"type":21,"tag":139,"props":20561,"children":20562},{"style":146},[20563],{"type":31,"value":1486},{"type":21,"tag":139,"props":20565,"children":20566},{"style":152},[20567],{"type":31,"value":20310},{"type":21,"tag":139,"props":20569,"children":20570},{"style":146},[20571],{"type":31,"value":1496},{"type":21,"tag":139,"props":20573,"children":20574},{"style":214},[20575],{"type":31,"value":7417},{"type":21,"tag":139,"props":20577,"children":20578},{"style":152},[20579],{"type":31,"value":20521},{"type":21,"tag":139,"props":20581,"children":20582},{"class":141,"line":369},[20583,20588,20592,20597,20602,20606,20610,20614,20618,20623,20627,20631],{"type":21,"tag":139,"props":20584,"children":20585},{"style":152},[20586],{"type":31,"value":20587},"    qc.append(c_amod15(",{"type":21,"tag":139,"props":20589,"children":20590},{"style":214},[20591],{"type":31,"value":293},{"type":21,"tag":139,"props":20593,"children":20594},{"style":146},[20595],{"type":31,"value":20596}," **",{"type":21,"tag":139,"props":20598,"children":20599},{"style":152},[20600],{"type":31,"value":20601}," q), [q] ",{"type":21,"tag":139,"props":20603,"children":20604},{"style":146},[20605],{"type":31,"value":1599},{"type":21,"tag":139,"props":20607,"children":20608},{"style":214},[20609],{"type":31,"value":11118},{"type":21,"tag":139,"props":20611,"children":20612},{"style":152},[20613],{"type":31,"value":953},{"type":21,"tag":139,"props":20615,"children":20616},{"style":214},[20617],{"type":31,"value":17713},{"type":21,"tag":139,"props":20619,"children":20620},{"style":152},[20621],{"type":31,"value":20622},"(n_count, n_count ",{"type":21,"tag":139,"props":20624,"children":20625},{"style":146},[20626],{"type":31,"value":1599},{"type":21,"tag":139,"props":20628,"children":20629},{"style":214},[20630],{"type":31,"value":19296},{"type":21,"tag":139,"props":20632,"children":20633},{"style":152},[20634],{"type":31,"value":20635},")))\n",{"type":21,"tag":139,"props":20637,"children":20638},{"class":141,"line":378},[20639],{"type":21,"tag":139,"props":20640,"children":20641},{"emptyLinePlaceholder":194},[20642],{"type":31,"value":197},{"type":21,"tag":139,"props":20644,"children":20645},{"class":141,"line":387},[20646,20651,20655],{"type":21,"tag":139,"props":20647,"children":20648},{"style":152},[20649],{"type":31,"value":20650},"qc.append(QFTGate(n_count).inverse(), ",{"type":21,"tag":139,"props":20652,"children":20653},{"style":214},[20654],{"type":31,"value":17713},{"type":21,"tag":139,"props":20656,"children":20657},{"style":152},[20658],{"type":31,"value":20659},"(n_count))\n",{"type":21,"tag":139,"props":20661,"children":20662},{"class":141,"line":396},[20663,20667,20671,20676,20680],{"type":21,"tag":139,"props":20664,"children":20665},{"style":152},[20666],{"type":31,"value":581},{"type":21,"tag":139,"props":20668,"children":20669},{"style":214},[20670],{"type":31,"value":17713},{"type":21,"tag":139,"props":20672,"children":20673},{"style":152},[20674],{"type":31,"value":20675},"(n_count), ",{"type":21,"tag":139,"props":20677,"children":20678},{"style":214},[20679],{"type":31,"value":17713},{"type":21,"tag":139,"props":20681,"children":20682},{"style":152},[20683],{"type":31,"value":20659},{"type":21,"tag":22,"props":20685,"children":20686},{},[20687],{"type":31,"value":20688},"The inverse QFT is doing exactly the job described in our QFT tutorial: pulling a phase that encodes the period out into a measurable computational-basis number.",{"type":21,"tag":41,"props":20690,"children":20692},{"id":20691},"step-3-what-the-counting-register-measures",[20693],{"type":31,"value":20694},"Step 3: What the counting register measures",{"type":21,"tag":22,"props":20696,"children":20697},{},[20698],{"type":31,"value":20699},"With 3 counting qubits and a true period of 4, quantum phase estimation concentrates the measurement outcomes on multiples of 8\u002F4 = 2: the states 0, 2, 4, and 6, each with a theoretical probability of 1\u002F4 in the ideal noiseless case. That's the mathematical prediction from the phase estimation formula, not a specific simulated run, and it's the number to check your own execution against if you run this yourself.",{"type":21,"tag":129,"props":20701,"children":20703},{"code":20702},"Expected measurement distribution (ideal, 3 counting qubits):\n000 (0) -> 1\u002F4\n010 (2) -> 1\u002F4\n100 (4) -> 1\u002F4\n110 (6) -> 1\u002F4\n",[20704],{"type":21,"tag":104,"props":20705,"children":20706},{"__ignoreMap":7},[20707],{"type":31,"value":20702},{"type":21,"tag":41,"props":20709,"children":20711},{"id":20710},"step-4-continued-fractions-turn-a-measurement-into-r",[20712],{"type":31,"value":20713},"Step 4: Continued fractions turn a measurement into r",{"type":21,"tag":22,"props":20715,"children":20716},{},[20717],{"type":31,"value":20718},"Each measured integer m encodes a phase s\u002Fr as m\u002F2^n_count. Continued fractions recovers the fraction in lowest terms:",{"type":21,"tag":129,"props":20720,"children":20722},{"code":20721,"language":133,"meta":7,"className":131,"style":7},"def phase_to_period(measured, n_count, N):\n    phase = measured \u002F (2 ** n_count)\n    frac = Fraction(phase).limit_denominator(N)\n    return frac.denominator\n\nfor measured in [0, 2, 4, 6]:\n    r_candidate = phase_to_period(measured, n_count, N)\n    print(f\"measured={measured}: candidate r = {r_candidate}\")\n",[20723],{"type":21,"tag":104,"props":20724,"children":20725},{"__ignoreMap":7},[20726,20743,20782,20799,20811,20818,20870,20887],{"type":21,"tag":139,"props":20727,"children":20728},{"class":141,"line":142},[20729,20733,20738],{"type":21,"tag":139,"props":20730,"children":20731},{"style":146},[20732],{"type":31,"value":5487},{"type":21,"tag":139,"props":20734,"children":20735},{"style":4509},[20736],{"type":31,"value":20737}," phase_to_period",{"type":21,"tag":139,"props":20739,"children":20740},{"style":152},[20741],{"type":31,"value":20742},"(measured, n_count, N):\n",{"type":21,"tag":139,"props":20744,"children":20745},{"class":141,"line":168},[20746,20751,20755,20760,20764,20769,20773,20777],{"type":21,"tag":139,"props":20747,"children":20748},{"style":152},[20749],{"type":31,"value":20750},"    phase ",{"type":21,"tag":139,"props":20752,"children":20753},{"style":146},[20754],{"type":31,"value":211},{"type":21,"tag":139,"props":20756,"children":20757},{"style":152},[20758],{"type":31,"value":20759}," measured ",{"type":21,"tag":139,"props":20761,"children":20762},{"style":146},[20763],{"type":31,"value":5062},{"type":21,"tag":139,"props":20765,"children":20766},{"style":152},[20767],{"type":31,"value":20768}," (",{"type":21,"tag":139,"props":20770,"children":20771},{"style":214},[20772],{"type":31,"value":293},{"type":21,"tag":139,"props":20774,"children":20775},{"style":146},[20776],{"type":31,"value":20596},{"type":21,"tag":139,"props":20778,"children":20779},{"style":152},[20780],{"type":31,"value":20781}," n_count)\n",{"type":21,"tag":139,"props":20783,"children":20784},{"class":141,"line":190},[20785,20790,20794],{"type":21,"tag":139,"props":20786,"children":20787},{"style":152},[20788],{"type":31,"value":20789},"    frac ",{"type":21,"tag":139,"props":20791,"children":20792},{"style":146},[20793],{"type":31,"value":211},{"type":21,"tag":139,"props":20795,"children":20796},{"style":152},[20797],{"type":31,"value":20798}," Fraction(phase).limit_denominator(N)\n",{"type":21,"tag":139,"props":20800,"children":20801},{"class":141,"line":200},[20802,20806],{"type":21,"tag":139,"props":20803,"children":20804},{"style":146},[20805],{"type":31,"value":5582},{"type":21,"tag":139,"props":20807,"children":20808},{"style":152},[20809],{"type":31,"value":20810}," frac.denominator\n",{"type":21,"tag":139,"props":20812,"children":20813},{"class":141,"line":226},[20814],{"type":21,"tag":139,"props":20815,"children":20816},{"emptyLinePlaceholder":194},[20817],{"type":31,"value":197},{"type":21,"tag":139,"props":20819,"children":20820},{"class":141,"line":234},[20821,20825,20829,20833,20837,20841,20845,20849,20853,20857,20861,20865],{"type":21,"tag":139,"props":20822,"children":20823},{"style":146},[20824],{"type":31,"value":1486},{"type":21,"tag":139,"props":20826,"children":20827},{"style":152},[20828],{"type":31,"value":20759},{"type":21,"tag":139,"props":20830,"children":20831},{"style":146},[20832],{"type":31,"value":1496},{"type":21,"tag":139,"props":20834,"children":20835},{"style":152},[20836],{"type":31,"value":8038},{"type":21,"tag":139,"props":20838,"children":20839},{"style":214},[20840],{"type":31,"value":407},{"type":21,"tag":139,"props":20842,"children":20843},{"style":152},[20844],{"type":31,"value":259},{"type":21,"tag":139,"props":20846,"children":20847},{"style":214},[20848],{"type":31,"value":293},{"type":21,"tag":139,"props":20850,"children":20851},{"style":152},[20852],{"type":31,"value":259},{"type":21,"tag":139,"props":20854,"children":20855},{"style":214},[20856],{"type":31,"value":17918},{"type":21,"tag":139,"props":20858,"children":20859},{"style":152},[20860],{"type":31,"value":259},{"type":21,"tag":139,"props":20862,"children":20863},{"style":214},[20864],{"type":31,"value":11420},{"type":21,"tag":139,"props":20866,"children":20867},{"style":152},[20868],{"type":31,"value":20869},"]:\n",{"type":21,"tag":139,"props":20871,"children":20872},{"class":141,"line":273},[20873,20878,20882],{"type":21,"tag":139,"props":20874,"children":20875},{"style":152},[20876],{"type":31,"value":20877},"    r_candidate ",{"type":21,"tag":139,"props":20879,"children":20880},{"style":146},[20881],{"type":31,"value":211},{"type":21,"tag":139,"props":20883,"children":20884},{"style":152},[20885],{"type":31,"value":20886}," phase_to_period(measured, n_count, N)\n",{"type":21,"tag":139,"props":20888,"children":20889},{"class":141,"line":309},[20890,20894,20898,20902,20907,20911,20916,20920,20925,20929,20934,20938,20942],{"type":21,"tag":139,"props":20891,"children":20892},{"style":214},[20893],{"type":31,"value":6212},{"type":21,"tag":139,"props":20895,"children":20896},{"style":152},[20897],{"type":31,"value":953},{"type":21,"tag":139,"props":20899,"children":20900},{"style":146},[20901],{"type":31,"value":7524},{"type":21,"tag":139,"props":20903,"children":20904},{"style":262},[20905],{"type":31,"value":20906},"\"measured=",{"type":21,"tag":139,"props":20908,"children":20909},{"style":214},[20910],{"type":31,"value":7534},{"type":21,"tag":139,"props":20912,"children":20913},{"style":152},[20914],{"type":31,"value":20915},"measured",{"type":21,"tag":139,"props":20917,"children":20918},{"style":214},[20919],{"type":31,"value":7543},{"type":21,"tag":139,"props":20921,"children":20922},{"style":262},[20923],{"type":31,"value":20924},": candidate r = ",{"type":21,"tag":139,"props":20926,"children":20927},{"style":214},[20928],{"type":31,"value":7534},{"type":21,"tag":139,"props":20930,"children":20931},{"style":152},[20932],{"type":31,"value":20933},"r_candidate",{"type":21,"tag":139,"props":20935,"children":20936},{"style":214},[20937],{"type":31,"value":7543},{"type":21,"tag":139,"props":20939,"children":20940},{"style":262},[20941],{"type":31,"value":15370},{"type":21,"tag":139,"props":20943,"children":20944},{"style":152},[20945],{"type":31,"value":270},{"type":21,"tag":22,"props":20947,"children":20948},{},[20949],{"type":31,"value":20950},"Feeding in 2 or 6 recovers r = 4 directly (measuring 0 gives no information and has to be discarded and retried, a known failure mode of the algorithm, not a bug in this implementation).",{"type":21,"tag":41,"props":20952,"children":20954},{"id":20953},"step-5-from-r-to-an-actual-factor",[20955],{"type":31,"value":20956},"Step 5: From r to an actual factor",{"type":21,"tag":22,"props":20958,"children":20959},{},[20960],{"type":31,"value":20961},"With r = 4 (even, which the algorithm requires) and a = 7:",{"type":21,"tag":129,"props":20963,"children":20965},{"code":20964,"language":133,"meta":7,"className":131,"style":7},"r = 4\nguess1 = np.gcd(a ** (r \u002F\u002F 2) - 1, N)\nguess2 = np.gcd(a ** (r \u002F\u002F 2) + 1, N)\nprint(f\"gcd(7^2 - 1, 15) = {guess1}\")\nprint(f\"gcd(7^2 + 1, 15) = {guess2}\")\n",[20966],{"type":21,"tag":104,"props":20967,"children":20968},{"__ignoreMap":7},[20969,20986,21039,21087,21128],{"type":21,"tag":139,"props":20970,"children":20971},{"class":141,"line":142},[20972,20977,20981],{"type":21,"tag":139,"props":20973,"children":20974},{"style":152},[20975],{"type":31,"value":20976},"r ",{"type":21,"tag":139,"props":20978,"children":20979},{"style":146},[20980],{"type":31,"value":211},{"type":21,"tag":139,"props":20982,"children":20983},{"style":214},[20984],{"type":31,"value":20985}," 4\n",{"type":21,"tag":139,"props":20987,"children":20988},{"class":141,"line":168},[20989,20994,20998,21003,21007,21012,21017,21022,21026,21030,21034],{"type":21,"tag":139,"props":20990,"children":20991},{"style":152},[20992],{"type":31,"value":20993},"guess1 ",{"type":21,"tag":139,"props":20995,"children":20996},{"style":146},[20997],{"type":31,"value":211},{"type":21,"tag":139,"props":20999,"children":21000},{"style":152},[21001],{"type":31,"value":21002}," np.gcd(a ",{"type":21,"tag":139,"props":21004,"children":21005},{"style":146},[21006],{"type":31,"value":4801},{"type":21,"tag":139,"props":21008,"children":21009},{"style":152},[21010],{"type":31,"value":21011}," (r ",{"type":21,"tag":139,"props":21013,"children":21014},{"style":146},[21015],{"type":31,"value":21016},"\u002F\u002F",{"type":21,"tag":139,"props":21018,"children":21019},{"style":214},[21020],{"type":31,"value":21021}," 2",{"type":21,"tag":139,"props":21023,"children":21024},{"style":152},[21025],{"type":31,"value":1527},{"type":21,"tag":139,"props":21027,"children":21028},{"style":146},[21029],{"type":31,"value":825},{"type":21,"tag":139,"props":21031,"children":21032},{"style":214},[21033],{"type":31,"value":17050},{"type":21,"tag":139,"props":21035,"children":21036},{"style":152},[21037],{"type":31,"value":21038},", N)\n",{"type":21,"tag":139,"props":21040,"children":21041},{"class":141,"line":190},[21042,21047,21051,21055,21059,21063,21067,21071,21075,21079,21083],{"type":21,"tag":139,"props":21043,"children":21044},{"style":152},[21045],{"type":31,"value":21046},"guess2 ",{"type":21,"tag":139,"props":21048,"children":21049},{"style":146},[21050],{"type":31,"value":211},{"type":21,"tag":139,"props":21052,"children":21053},{"style":152},[21054],{"type":31,"value":21002},{"type":21,"tag":139,"props":21056,"children":21057},{"style":146},[21058],{"type":31,"value":4801},{"type":21,"tag":139,"props":21060,"children":21061},{"style":152},[21062],{"type":31,"value":21011},{"type":21,"tag":139,"props":21064,"children":21065},{"style":146},[21066],{"type":31,"value":21016},{"type":21,"tag":139,"props":21068,"children":21069},{"style":214},[21070],{"type":31,"value":21021},{"type":21,"tag":139,"props":21072,"children":21073},{"style":152},[21074],{"type":31,"value":1527},{"type":21,"tag":139,"props":21076,"children":21077},{"style":146},[21078],{"type":31,"value":1599},{"type":21,"tag":139,"props":21080,"children":21081},{"style":214},[21082],{"type":31,"value":17050},{"type":21,"tag":139,"props":21084,"children":21085},{"style":152},[21086],{"type":31,"value":21038},{"type":21,"tag":139,"props":21088,"children":21089},{"class":141,"line":200},[21090,21094,21098,21102,21107,21111,21116,21120,21124],{"type":21,"tag":139,"props":21091,"children":21092},{"style":214},[21093],{"type":31,"value":948},{"type":21,"tag":139,"props":21095,"children":21096},{"style":152},[21097],{"type":31,"value":953},{"type":21,"tag":139,"props":21099,"children":21100},{"style":146},[21101],{"type":31,"value":7524},{"type":21,"tag":139,"props":21103,"children":21104},{"style":262},[21105],{"type":31,"value":21106},"\"gcd(7^2 - 1, 15) = ",{"type":21,"tag":139,"props":21108,"children":21109},{"style":214},[21110],{"type":31,"value":7534},{"type":21,"tag":139,"props":21112,"children":21113},{"style":152},[21114],{"type":31,"value":21115},"guess1",{"type":21,"tag":139,"props":21117,"children":21118},{"style":214},[21119],{"type":31,"value":7543},{"type":21,"tag":139,"props":21121,"children":21122},{"style":262},[21123],{"type":31,"value":15370},{"type":21,"tag":139,"props":21125,"children":21126},{"style":152},[21127],{"type":31,"value":270},{"type":21,"tag":139,"props":21129,"children":21130},{"class":141,"line":226},[21131,21135,21139,21143,21148,21152,21157,21161,21165],{"type":21,"tag":139,"props":21132,"children":21133},{"style":214},[21134],{"type":31,"value":948},{"type":21,"tag":139,"props":21136,"children":21137},{"style":152},[21138],{"type":31,"value":953},{"type":21,"tag":139,"props":21140,"children":21141},{"style":146},[21142],{"type":31,"value":7524},{"type":21,"tag":139,"props":21144,"children":21145},{"style":262},[21146],{"type":31,"value":21147},"\"gcd(7^2 + 1, 15) = ",{"type":21,"tag":139,"props":21149,"children":21150},{"style":214},[21151],{"type":31,"value":7534},{"type":21,"tag":139,"props":21153,"children":21154},{"style":152},[21155],{"type":31,"value":21156},"guess2",{"type":21,"tag":139,"props":21158,"children":21159},{"style":214},[21160],{"type":31,"value":7543},{"type":21,"tag":139,"props":21162,"children":21163},{"style":262},[21164],{"type":31,"value":15370},{"type":21,"tag":139,"props":21166,"children":21167},{"style":152},[21168],{"type":31,"value":270},{"type":21,"tag":22,"props":21170,"children":21171},{},[21172],{"type":31,"value":21173},"7² = 49. gcd(48, 15) = 3, and gcd(50, 15) = 5. Both nontrivial factors of 15, found without ever trying to divide 15 by anything directly.",{"type":21,"tag":41,"props":21175,"children":21177},{"id":21176},"why-this-doesnt-threaten-rsa-2048-today",[21178],{"type":31,"value":21179},"Why this doesn't threaten RSA-2048 today",{"type":21,"tag":22,"props":21181,"children":21182},{},[21183,21185,21190,21192,21196,21198,21203],{"type":31,"value":21184},"Everything above ran on 7 qubits for a 4-bit number. Factoring an RSA-2048 modulus needs a register sized to the number of bits in N, meaning thousands of logical qubits, and the ",{"type":21,"tag":26,"props":21186,"children":21187},{"href":4082},[21188],{"type":31,"value":21189},"logical qubit overhead",{"type":31,"value":21191}," to build even one of those on top of noisy physical hardware. Our ",{"type":21,"tag":26,"props":21193,"children":21194},{"href":19951},[21195],{"type":31,"value":19954},{"type":31,"value":21197}," covers the published resource estimates for that gap in detail, and why they disagree with each other by orders of magnitude depending on the assumed error-correction overhead. The algorithm in this tutorial is exactly the algorithm that would eventually run at that scale. The distance between 15 and a 2048-bit modulus is the entire reason ",{"type":21,"tag":26,"props":21199,"children":21200},{"href":3883},[21201],{"type":31,"value":21202},"post-quantum cryptography migration",{"type":31,"value":21204}," has a runway measured in years, not months.",{"type":21,"tag":41,"props":21206,"children":21207},{"id":5900},[21208],{"type":31,"value":5903},{"type":21,"tag":1112,"props":21210,"children":21211},{},[21212,21223,21249],{"type":21,"tag":72,"props":21213,"children":21214},{},[21215,21217,21221],{"type":31,"value":21216},"Run the counting-register measurement on ",{"type":21,"tag":26,"props":21218,"children":21219},{"href":3292},[21220],{"type":31,"value":1673},{"type":31,"value":21222}," yourself and compare your shot counts against the theoretical 1\u002F4, 1\u002F4, 1\u002F4, 1\u002F4 split above.",{"type":21,"tag":72,"props":21224,"children":21225},{},[21226,21227,21233,21234,21240,21241,21247],{"type":31,"value":12686},{"type":21,"tag":104,"props":21228,"children":21230},{"className":21229},[],[21231],{"type":31,"value":21232},"a = 7",{"type":31,"value":12694},{"type":21,"tag":104,"props":21235,"children":21237},{"className":21236},[],[21238],{"type":31,"value":21239},"a = 2",{"type":31,"value":7689},{"type":21,"tag":104,"props":21242,"children":21244},{"className":21243},[],[21245],{"type":31,"value":21246},"a = 4",{"type":31,"value":21248}," against N = 15 and work out the new order by hand first, then check the circuit agrees.",{"type":21,"tag":72,"props":21250,"children":21251},{},[21252],{"type":31,"value":21253},"Read Qiskit's own textbook chapter on Shor's algorithm for the general (non-shortcut) modular exponentiation construction, and compare gate counts against the toy version here.",{"type":21,"tag":1168,"props":21255,"children":21256},{},[21257],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":21259},[21260,21261,21262,21263,21264,21265,21266,21267],{"id":19971,"depth":168,"text":19974},{"id":20002,"depth":168,"text":20005},{"id":20415,"depth":168,"text":20418},{"id":20691,"depth":168,"text":20694},{"id":20710,"depth":168,"text":20713},{"id":20953,"depth":168,"text":20956},{"id":21176,"depth":168,"text":21179},{"id":5900,"depth":168,"text":5903},"content:blog:shors-algorithm-tutorial.md","blog\u002Fshors-algorithm-tutorial.md","blog\u002Fshors-algorithm-tutorial",{"_path":21272,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":21273,"description":21274,"date":16766,"author":11,"tags":21275,"readingTime":234,"body":21276,"_type":1187,"_id":21356,"_source":1189,"_file":21357,"_stem":21358,"_extension":1192},"\u002Fblog\u002Fuc-berkeley-quantrolox-partnership","UC Berkeley and QuantrolOx Sign a 5-Year Deal to Standardize Quantum Calibration","UC Berkeley and QuantrolOx signed a 5-year MOU aimed at standardized data pipelines and automated runtime environments for scaling superconducting quantum computers. An infrastructure partnership, not a hardware milestone, led by Irfan Siddiqi and Vishal Chatrath.",[3396,1207],{"type":18,"children":21277,"toc":21350},[21278,21283,21289,21300,21306,21324,21330,21335,21339],{"type":21,"tag":22,"props":21279,"children":21280},{},[21281],{"type":31,"value":21282},"UC Berkeley and QuantrolOx announced a 5-year memorandum of understanding on August 3, 2026, effective from July 7. The goal: standardized data pipelines and automated runtime environments for scaling superconducting quantum computers toward commercial deployment. The partnership is led by UC Berkeley physics professor Irfan Siddiqi and QuantrolOx CEO Vishal Chatrath, and will use the Roger Herst Quantum Nexus as a shared innovation space.",{"type":21,"tag":41,"props":21284,"children":21286},{"id":21285},"standardization-is-the-actual-news-here",[21287],{"type":31,"value":21288},"Standardization is the actual news here",{"type":21,"tag":22,"props":21290,"children":21291},{},[21292,21294,21298],{"type":31,"value":21293},"Calibration and runtime tooling are unglamorous compared to a qubit-count announcement, and that's exactly why partnerships like this matter more than they sound. Every lab and vendor currently runs its own bespoke calibration pipeline, which makes results hard to compare and hard to reproduce, the equivalent underlying problem our ",{"type":21,"tag":26,"props":21295,"children":21296},{"href":19115},[21297],{"type":31,"value":19839},{"type":31,"value":21299}," covers from the policy side: the field still lacks agreed, standardized ways to measure and operate quantum hardware. A named, multi-year effort to standardize data pipelines specifically for superconducting systems is a direct, useful attempt at that problem, not a research result.",{"type":21,"tag":41,"props":21301,"children":21303},{"id":21302},"where-this-fits-next-to-the-ai-calibration-story",[21304],{"type":31,"value":21305},"Where this fits next to the AI-calibration story",{"type":21,"tag":22,"props":21307,"children":21308},{},[21309,21311,21316,21317,21322],{"type":31,"value":21310},"This site recently covered two AI-driven approaches to the equivalent general calibration problem: ",{"type":21,"tag":26,"props":21312,"children":21313},{"href":18386},[21314],{"type":31,"value":21315},"Google's reinforcement-learning agent recalibrating Willow",{"type":31,"value":3615},{"type":21,"tag":26,"props":21318,"children":21319},{"href":18311},[21320],{"type":31,"value":21321},"NVIDIA Ising's vision-language calibration model",{"type":31,"value":21323},". The UC Berkeley and QuantrolOx partnership is a different kind of effort: building the standardized infrastructure and tooling layer underneath calibration, rather than a specific AI model for doing it. Both approaches point at the same underlying bottleneck (calibration doesn't scale by hand as systems grow), attacked from opposite ends: one with a smarter model, one with better shared infrastructure.",{"type":21,"tag":41,"props":21325,"children":21327},{"id":21326},"what-isnt-disclosed-yet",[21328],{"type":31,"value":21329},"What isn't disclosed yet",{"type":21,"tag":22,"props":21331,"children":21332},{},[21333],{"type":31,"value":21334},"No particular technical deliverable, timeline for a first shared pipeline, or funding figure was disclosed alongside the MOU announcement. This is a structural commitment between a major academic quantum program and a calibration-automation company, worth tracking for what it produces rather than treating the MOU itself as a result.",{"type":21,"tag":41,"props":21336,"children":21337},{"id":3461},[21338],{"type":31,"value":3464},{"type":21,"tag":22,"props":21340,"children":21341},{},[21342,21344,21348],{"type":31,"value":21343},"Whether UC Berkeley and QuantrolOx publish an actual standardized pipeline or toolset that other labs adopt, which would be the real test of whether this partnership changes anything beyond the two organizations involved. Our ",{"type":21,"tag":26,"props":21345,"children":21346},{"href":1100},[21347],{"type":31,"value":16080},{"type":31,"value":21349}," tracks the superconducting platforms this kind of tooling would eventually support.",{"title":7,"searchDepth":168,"depth":168,"links":21351},[21352,21353,21354,21355],{"id":21285,"depth":168,"text":21288},{"id":21302,"depth":168,"text":21305},{"id":21326,"depth":168,"text":21329},{"id":3461,"depth":168,"text":3464},"content:blog:uc-berkeley-quantrolox-partnership.md","blog\u002Fuc-berkeley-quantrolox-partnership.md","blog\u002Fuc-berkeley-quantrolox-partnership",{"_path":16822,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":21360,"description":21361,"date":16766,"author":11,"tags":21362,"readingTime":273,"body":21363,"_type":1187,"_id":21431,"_source":1189,"_file":21432,"_stem":21433,"_extension":1192},"China's 'Routing Codes' Cut Error-Correction Overhead by 8x on Paper","USTC and Origin Quantum Computing designed routing codes, a qLDPC family that simplifies hardware wiring and reduces physical-qubit overhead roughly 8x versus surface codes in circuit-level simulation. Real, but still a simulation result, not a hardware demonstration.",[3396,1207,14720],{"type":18,"children":21364,"toc":21426},[21365,21370,21376,21388,21393,21399,21411,21415],{"type":21,"tag":22,"props":21366,"children":21367},{},[21368],{"type":31,"value":21369},"A team from the University of Science and Technology of China and Origin Quantum Computing published a new family of quantum error-correcting codes on July 22, 2026, called routing codes. The headline number: weight-7 routing codes cut physical-qubit overhead by roughly a factor of 8 compared to surface codes at a similar logical error rate, in circuit-level simulation. That \"in simulation\" qualifier matters, and we'll come back to it.",{"type":21,"tag":41,"props":21371,"children":21373},{"id":21372},"what-routing-codes-change",[21374],{"type":31,"value":21375},"What routing codes change",{"type":21,"tag":22,"props":21377,"children":21378},{},[21379,21381,21386],{"type":31,"value":21380},"Surface codes, the workhorse of most current error-correction roadmaps, need only nearest-neighbor qubit connections, which is easy to build in hardware but expensive in physical-qubit count. The ",{"type":21,"tag":26,"props":21382,"children":21383},{"href":4082},[21384],{"type":31,"value":21385},"qLDPC family",{"type":31,"value":21387}," trades that simplicity for efficiency: qLDPC codes need far fewer physical qubits per logical qubit, but historically at the cost of long-range, non-local connections between qubits that are difficult to fabricate on real chips.",{"type":21,"tag":22,"props":21389,"children":21390},{},[21391],{"type":31,"value":21392},"Routing codes goal that exact trade-off. According to the team, the construction reduces required qubit connectivity and shortens the non-local couplings a qLDPC code otherwise demands, while also enabling parallel data transfer across the chip. That combination is what lets the design apply to both superconducting and neutral-atom platforms, two modalities with different physical connectivity constraints, without needing a bespoke code for each.",{"type":21,"tag":41,"props":21394,"children":21396},{"id":21395},"the-number-and-what-its-a-number-of",[21397],{"type":31,"value":21398},"The number, and what it's a number of",{"type":21,"tag":22,"props":21400,"children":21401},{},[21402,21404,21409],{"type":31,"value":21403},"The 8x overhead reduction comes from comparing weight-7 routing codes against surface codes at a matched logical error rate, using circuit-level noise simulations rather than a physical device. That's the standard, appropriate way to evaluate a new code family before hardware exists to test it on, and it's the equivalent category of result as ",{"type":21,"tag":26,"props":21405,"children":21406},{"href":4082},[21407],{"type":31,"value":21408},"QuEra's 2:1 physical-to-logical ratio work",{"type":31,"value":21410}," covered elsewhere on this site: a real, checkable theoretical contribution, not yet a measured finding from a working machine.",{"type":21,"tag":41,"props":21412,"children":21413},{"id":3461},[21414],{"type":31,"value":3464},{"type":21,"tag":22,"props":21416,"children":21417},{},[21418,21420,21424],{"type":31,"value":21419},"The test that matters is whether a hardware team, superconducting or neutral-atom, fabricates a routing-code-based logical qubit and reports a real logical error rate, not a simulated one. Our ",{"type":21,"tag":26,"props":21421,"children":21422},{"href":14748},[21423],{"type":31,"value":16850},{"type":31,"value":21425}," covers the other half of the fault-tolerance cost equation these overhead numbers feed into: a cheaper code still needs a decoder that keeps up with it in real time. Until a physical demonstration lands, treat the 8x figure as a credible simulation result worth tracking, not yet a hardware milestone.",{"title":7,"searchDepth":168,"depth":168,"links":21427},[21428,21429,21430],{"id":21372,"depth":168,"text":21375},{"id":21395,"depth":168,"text":21398},{"id":3461,"depth":168,"text":3464},"content:blog:ustc-origin-quantum-routing-codes-qldpc.md","blog\u002Fustc-origin-quantum-routing-codes-qldpc.md","blog\u002Fustc-origin-quantum-routing-codes-qldpc",{"_path":21435,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":21436,"description":21437,"date":16766,"author":11,"tags":21438,"readingTime":234,"body":21439,"_type":1187,"_id":21531,"_source":1189,"_file":21532,"_stem":21533,"_extension":1192},"\u002Fblog\u002Fzero-g-pre-decoder-aware-qec-decoder","A New Decoder Called 'Zero-G' Claims to Improve Real-Time QEC by Using Pre-Decoder Data","A preprint posted this week describes Zero-G, a pre-decoder-aware decoder architecture for quantum error correction. Unreviewed, not yet independently verified, covered here as a paper claim rather than a demonstrated result.",[14720,1207,13882],{"type":18,"children":21440,"toc":21525},[21441,21446,21452,21462,21468,21499,21505,21510,21514],{"type":21,"tag":22,"props":21442,"children":21443},{},[21444],{"type":31,"value":21445},"A paper titled \"Zero-G: A Pre-Decoder-Aware Decoder for Quantum Error Correction\" appeared on arXiv this week. Read that framing carefully: this is a preprint, not a peer-reviewed result, and NEWS.md's own standing instruction on arXiv sources is to treat what's there as a paper's claim rather than an established fact. This entry follows that instruction. Everything below describes what the paper reportedly claims, not something independently confirmed.",{"type":21,"tag":41,"props":21447,"children":21449},{"id":21448},"what-pre-decoder-aware-likely-means",[21450],{"type":31,"value":21451},"What \"pre-decoder-aware\" likely means",{"type":21,"tag":22,"props":21453,"children":21454},{},[21455,21456,21460],{"type":31,"value":4481},{"type":21,"tag":26,"props":21457,"children":21458},{"href":14748},[21459],{"type":31,"value":16850},{"type":31,"value":21461}," covers why decoding, turning syndrome measurements into an actual correction, has to happen inside a hard timing window or the whole error-correction scheme collapses. A \"pre-decoder\" step in this context typically refers to a lightweight processing stage that runs before the main decoder, filtering, compressing, or pre-classifying syndrome data so the heavier decoding step downstream has less work to do or better information to work with. A decoder architecture built to specifically account for what that pre-decoder stage already knows, rather than treating incoming syndrome data as raw and undifferentiated, is the general shape of what \"pre-decoder-aware\" suggests, though the paper's exact mechanism isn't something we've independently reviewed here.",{"type":21,"tag":41,"props":21463,"children":21465},{"id":21464},"why-this-is-worth-a-mention-despite-being-unverified",[21466],{"type":31,"value":21467},"Why this is worth a mention despite being unverified",{"type":21,"tag":22,"props":21469,"children":21470},{},[21471,21473,21478,21479,21484,21486,21491,21492,21497],{"type":31,"value":21472},"This site has covered a run of real decoder progress recently: ",{"type":21,"tag":26,"props":21474,"children":21475},{"href":18311},[21476],{"type":31,"value":21477},"NVIDIA's Ising decoding models",{"type":31,"value":259},{"type":21,"tag":26,"props":21480,"children":21481},{"href":18207},[21482],{"type":31,"value":21483},"independent GPU-decoder results from Alice & Bob and Quantum X Labs",{"type":31,"value":21485},", and the ",{"type":21,"tag":26,"props":21487,"children":21488},{"href":16822},[21489],{"type":31,"value":21490},"routing codes",{"type":31,"value":3615},{"type":21,"tag":26,"props":21493,"children":21494},{"href":16763},[21495],{"type":31,"value":21496},"mitten codes",{"type":31,"value":21498}," work on the code-design side. A new decoder architecture claim landing in the same window is consistent with where real engineering attention in the field currently sits, decoding and error-correction overhead, rather than an isolated one-off claim. That pattern is a reason to note it, not a reason to treat this specific paper's claims as confirmed.",{"type":21,"tag":41,"props":21500,"children":21502},{"id":21501},"what-we-dont-know",[21503],{"type":31,"value":21504},"What we don't know",{"type":21,"tag":22,"props":21506,"children":21507},{},[21508],{"type":31,"value":21509},"We don't know the paper's authors, institutional affiliation, what specific speedup or accuracy improvement it claims against which baseline, or whether it includes a hardware demonstration or is purely a simulation study. A fuller writeup would require reading the paper directly rather than relying on a secondary summary, and that's the honest limit of what this post covers.",{"type":21,"tag":41,"props":21511,"children":21512},{"id":3461},[21513],{"type":31,"value":3464},{"type":21,"tag":22,"props":21515,"children":21516},{},[21517,21519,21523],{"type":31,"value":21518},"Whether Zero-G gets picked up, cited, or benchmarked against the decoders already covered here (PyMatching, NVIDIA's Ising Decoding models, CUDA-Q QEC's RelayBP) is the real test of whether this specific claim holds up. Our ",{"type":21,"tag":26,"props":21520,"children":21521},{"href":3446},[21522],{"type":31,"value":3456},{"type":31,"value":21524}," tracks the maintained, working decoders worth relying on today.",{"title":7,"searchDepth":168,"depth":168,"links":21526},[21527,21528,21529,21530],{"id":21448,"depth":168,"text":21451},{"id":21464,"depth":168,"text":21467},{"id":21501,"depth":168,"text":21504},{"id":3461,"depth":168,"text":3464},"content:blog:zero-g-pre-decoder-aware-qec-decoder.md","blog\u002Fzero-g-pre-decoder-aware-qec-decoder.md","blog\u002Fzero-g-pre-decoder-aware-qec-decoder",{"_path":21535,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":21536,"description":21537,"date":16766,"author":11,"tags":21538,"readingTime":234,"body":21539,"_type":1187,"_id":21596,"_source":1189,"_file":21597,"_stem":21598,"_extension":1192},"\u002Fblog\u002Fzhongqi-wuliang-qinghe-server-rack-quantum-computer","A Chinese Startup Packed a Neutral-Atom Quantum Computer Into a Server Rack","Zhongqi Wuliang unveiled Qinghe No. 1 at WAIC 2026, a second-generation neutral-atom quantum computer built to fit inside a standard data-center server rack with no bulky cryogenic refrigeration. A different route to the same 'no cryostat' goal SAXON Q's diamond qubits already cover on this site.",[3396,1207],{"type":18,"children":21540,"toc":21591},[21541,21546,21552,21557,21563,21574,21580],{"type":21,"tag":22,"props":21542,"children":21543},{},[21544],{"type":31,"value":21545},"Zhongqi Wuliang, a spinout from the Chinese Academy of Sciences' Shanghai Institute of Optics and Fine Mechanics, unveiled Qinghe No. 1 at the World Artificial Intelligence Conference on July 18, 2026. The pitch: a second-generation neutral-atom quantum computer engineered to fit inside a standard data-center server rack, removing the bulky cryogenic refrigeration that normally keeps a quantum system physically separate from ordinary compute infrastructure.",{"type":21,"tag":41,"props":21547,"children":21549},{"id":21548},"what-got-packaged",[21550],{"type":31,"value":21551},"What got packaged",{"type":21,"tag":22,"props":21553,"children":21554},{},[21555],{"type":31,"value":21556},"Neutral-atom systems already run at room temperature for the qubits themselves, unlike superconducting platforms that need dilution refrigerators. The engineering problem Zhongqi Wuliang describes solving is packaging: fitting the vacuum chamber, control optics, and laser delivery systems, the parts that normally take up a lab bench, into a single rack-mounted chassis alongside classical servers. Founded by Lu Xudong, the company frames this as the step that lets a cloud provider deploy quantum hardware the same way it deploys any other rack unit, rather than as a separate specialized room.",{"type":21,"tag":41,"props":21558,"children":21560},{"id":21559},"a-distinct-route-to-a-goal-this-site-already-covers",[21561],{"type":31,"value":21562},"A distinct route to a goal this site already covers",{"type":21,"tag":22,"props":21564,"children":21565},{},[21566,21572],{"type":21,"tag":26,"props":21567,"children":21569},{"href":21568},"\u002Fblog\u002Fsaxon-q-room-temperature-diamond-quantum-computer",[21570],{"type":31,"value":21571},"SAXON Q's room-temperature diamond NV-center quantum computers",{"type":31,"value":21573},", covered here earlier, chase the same \"no cryostat\" goal through an entirely different qubit modality. Where SAXON Q eliminates cryogenics by using diamond defects that work at room temperature natively, Zhongqi Wuliang keeps the neutral-atom approach and instead solves the packaging and integration issue around it. Both are legitimate answers to the same practical deployment question, from opposite ends: change the physics, or repackage the hardware around the physics you already have.",{"type":21,"tag":41,"props":21575,"children":21577},{"id":21576},"what-wasnt-disclosed",[21578],{"type":31,"value":21579},"What wasn't disclosed",{"type":21,"tag":22,"props":21581,"children":21582},{},[21583,21585,21589],{"type":31,"value":21584},"The announcement, as reported, doesn't include a qubit count, gate fidelity, or coherence time for Qinghe No. 1, the numbers that would let anyone judge whether the system does useful work rather than only fitting in a rack. Packaging is a real engineering achievement worth tracking, especially from a CAS-affiliated team with direct optics and photonics expertise, but it answers a distinct question than \"how good is this quantum computer.\" Our ",{"type":21,"tag":26,"props":21586,"children":21587},{"href":1100},[21588],{"type":31,"value":16080},{"type":31,"value":21590}," tracks how neutral-atom entrants compare once real performance numbers land.",{"title":7,"searchDepth":168,"depth":168,"links":21592},[21593,21594,21595],{"id":21548,"depth":168,"text":21551},{"id":21559,"depth":168,"text":21562},{"id":21576,"depth":168,"text":21579},"content:blog:zhongqi-wuliang-qinghe-server-rack-quantum-computer.md","blog\u002Fzhongqi-wuliang-qinghe-server-rack-quantum-computer.md","blog\u002Fzhongqi-wuliang-qinghe-server-rack-quantum-computer",{"_path":18114,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":21600,"description":21601,"date":21602,"author":11,"tags":21603,"readingTime":273,"body":21604,"_type":1187,"_id":21700,"_source":1189,"_file":21701,"_stem":21702,"_extension":1192},"IonQ Is Putting a Quantum Memory Inside a Live Fiber Network in Chattanooga","IonQ and EPB are spending $15 million over five years on the Tennessee Quantum Communications Research Center, built around what they call the first commercial quantum memory embedded in a working communications network.","2026-08-03",[3396,1207,16315],{"type":18,"children":21605,"toc":21694},[21606,21611,21617,21634,21639,21645,21650,21655,21661,21672,21676],{"type":21,"tag":22,"props":21607,"children":21608},{},[21609],{"type":31,"value":21610},"IonQ and EPB, Chattanooga's municipal energy and fiber utility, announced the Tennessee Quantum Communications Research Center on August 3, 2026. IonQ is committing $15 million over five years. The center will run on EPB's existing fiber network and sit alongside the EPB Quantum Center, which already houses an IonQ Forte Enterprise system. The University of Tennessee at Chattanooga and Tennessee state officials are also named partners. IonQ's own framing is specific: the first commercial quantum memory embedded in a live, operational communications network, not a lab testbed built to demonstrate the idea once.",{"type":21,"tag":41,"props":21612,"children":21614},{"id":21613},"what-this-is-and-what-it-is-not",[21615],{"type":31,"value":21616},"What this is, and what it is not",{"type":21,"tag":22,"props":21618,"children":21619},{},[21620,21621,21626,21628,21632],{"type":31,"value":4481},{"type":21,"tag":26,"props":21622,"children":21623},{"href":1131},[21624],{"type":31,"value":21625},"quantum networking explainer",{"type":31,"value":21627}," splits \"quantum networking\" into three things that get conflated constantly: (a) linking QPUs so they compute as one machine, (b) quantum key distribution for the \"quantum internet,\" and (c) ordinary classical networking of quantum cloud services over TCP\u002FIP. A research center built around a quantum memory for entanglement distribution is squarely (a), the hard one. It has nothing to do with breaking or replacing encryption. If you're tracking the cryptographic threat instead, that's ",{"type":21,"tag":26,"props":21629,"children":21630},{"href":3883},[21631],{"type":31,"value":3964},{"type":31,"value":21633},", and it's a software migration, not recent fiber.",{"type":21,"tag":22,"props":21635,"children":21636},{},[21637],{"type":31,"value":21638},"A quantum memory is the component that makes entanglement swapping practical over distance. As the networking piece covers, quantum repeaters split a long link into short hops, generate entanglement across each hop independently, and then swap it together at intermediate nodes. That only works if a node holds its half of an entangled pair coherently while the neighboring hop keeps retrying after failures, since photon loss makes most attempts fail. That holding function is the memory. Without one, every hop has to succeed simultaneously, which is why long-distance entanglement distribution has been so hard to demonstrate outside a lab.",{"type":21,"tag":41,"props":21640,"children":21642},{"id":21641},"read-the-announcements-own-numbers-carefully",[21643],{"type":31,"value":21644},"Read the announcement's own numbers carefully",{"type":21,"tag":22,"props":21646,"children":21647},{},[21648],{"type":31,"value":21649},"The stated economic projection is $30-45 million in impact, two to three times the $15 million investment, and about 24 jobs. Treat those as the partnership's own projection, not a measured outcome. They describe an expected regional effect, not a technical result.",{"type":21,"tag":22,"props":21651,"children":21652},{},[21653],{"type":31,"value":21654},"What the announcement does not disclose is the number that would let you judge the science: entanglement generation rate and fidelity over EPB's fiber, or the memory's coherence time under real network conditions rather than lab conditions. That's consistent with how IonQ has described its broader photonic interconnect roadmap, where milestones (first ion-photon entanglement, then remote ion-ion entanglement) get announced without the rate and fidelity figures needed to tell whether a link is fast and clean enough to compute across. This is the same pattern, applied to a memory node instead of a QPU-to-QPU link. Worth watching for follow-up publications or technical reports that fill in those numbers, since a press release naming a location and a dollar figure isn't the same as a demonstrated coherence time.",{"type":21,"tag":41,"props":21656,"children":21658},{"id":21657},"why-chattanooga-specifically",[21659],{"type":31,"value":21660},"Why Chattanooga specifically",{"type":21,"tag":22,"props":21662,"children":21663},{},[21664,21666,21670],{"type":31,"value":21665},"EPB has run one of the first citywide gigabit fiber networks in the United States for over a decade, which makes it an unusually well-suited test bed: an existing, maintained, city-scale fiber plant rather than a purpose-built lab loop. Embedding a quantum memory in infrastructure that already carries real traffic is a meaningfully different claim than doing the same experiment on an isolated fiber spool, since it forces the work to contend with the noise, temperature variation, and splicing of an actual deployed network. That's also consistent with IonQ's post-",{"type":21,"tag":26,"props":21667,"children":21668},{"href":18151},[21669],{"type":31,"value":18154},{"type":31,"value":21671}," pattern of building out physical, domestic infrastructure around its trapped-ion platform rather than keeping everything at the research-paper stage.",{"type":21,"tag":41,"props":21673,"children":21674},{"id":3461},[21675],{"type":31,"value":3464},{"type":21,"tag":22,"props":21677,"children":21678},{},[21679,21681,21685,21687,21692],{"type":31,"value":21680},"The real test is whether this center publishes entanglement rates and fidelities over the live network, the same figures missing from IonQ's other networking milestones. Until those numbers appear, this is a credible, well-funded facility for doing the work, not yet evidence that the work has succeeded. Our ",{"type":21,"tag":26,"props":21682,"children":21683},{"href":4082},[21684],{"type":31,"value":15618},{"type":31,"value":21686}," piece and the ",{"type":21,"tag":26,"props":21688,"children":21689},{"href":1066},[21690],{"type":31,"value":21691},"glossary entry on quantum networks",{"type":31,"value":21693}," cover the vocabulary and the broader stakes if you want to follow the technical reports as they come out.",{"title":7,"searchDepth":168,"depth":168,"links":21695},[21696,21697,21698,21699],{"id":21613,"depth":168,"text":21616},{"id":21641,"depth":168,"text":21644},{"id":21657,"depth":168,"text":21660},{"id":3461,"depth":168,"text":3464},"content:blog:ionq-epb-tennessee-quantum-communications-center.md","blog\u002Fionq-epb-tennessee-quantum-communications-center.md","blog\u002Fionq-epb-tennessee-quantum-communications-center",{"_path":15694,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":21704,"description":21705,"date":21602,"author":11,"tags":21706,"readingTime":273,"body":21707,"_type":1187,"_id":21798,"_source":1189,"_file":21799,"_stem":21800,"_extension":1192},"NTT and OptQC Are Aiming for a Million-Qubit Photonic Computer by 2030","NTT and OptQC signed a capital and business alliance with a phased roadmap toward a fault-tolerant, million-qubit-class optical quantum computer by fiscal year 2030, starting with a 10,000-qubit proof of concept in 2028.",[3396,1207],{"type":18,"children":21708,"toc":21792},[21709,21714,21720,21725,21730,21736,21748,21760,21766,21783,21787],{"type":21,"tag":22,"props":21710,"children":21711},{},[21712],{"type":31,"value":21713},"NTT and OptQC signed a capital and business alliance on August 3, 2026, aimed at a fault-tolerant, million-qubit-class optical quantum computer by fiscal year 2030. What makes this worth reading past the headline number is the roadmap attached to it: a named sequence of milestones with dates, not a single target four years out with nothing in between.",{"type":21,"tag":41,"props":21715,"children":21717},{"id":21716},"the-actual-roadmap",[21718],{"type":31,"value":21719},"The actual roadmap",{"type":21,"tag":22,"props":21721,"children":21722},{},[21723],{"type":31,"value":21724},"The plan runs in phases. Fiscal year 2026 starts co-creation work with prospective users, industry partners, and research institutions to define use cases. Fiscal year 2027 focuses on building a supply chain toward practical application. Fiscal year 2028 is where the roadmap gets a checkable number: proof-of-concept projects with users based on a 10,000-qubit-class optical system. Fiscal year 2029 expands application development and verification, pushing toward real-world implementation. The million-qubit target sits at the end of that sequence, in fiscal year 2030.",{"type":21,"tag":22,"props":21726,"children":21727},{},[21728],{"type":31,"value":21729},"That 10,000-qubit PoC in 2028 is the milestone worth watching. It's roughly two years out, specific, and produces a real system other people get to evaluate directly, rather than a press-release qubit count with no interim checkpoint attached to it.",{"type":21,"tag":41,"props":21731,"children":21733},{"id":21732},"why-photonic-and-why-this-matters-next-to-psiquantum-and-xanadu",[21734],{"type":31,"value":21735},"Why photonic, and why this matters next to PsiQuantum and Xanadu",{"type":21,"tag":22,"props":21737,"children":21738},{},[21739,21741,21746],{"type":31,"value":21740},"Photonic quantum computing uses photons as qubits, encoded in properties like path, polarization, or time-bin. The appeal, and the reason PsiQuantum and Xanadu also work this modality, is that photons don't need the same cryogenic cooling as superconducting qubits and reuse parts of the existing telecom manufacturing base. Our ",{"type":21,"tag":26,"props":21742,"children":21743},{"href":19066},[21744],{"type":31,"value":21745},"modality comparison",{"type":31,"value":21747}," tracks all three companies. A fourth serious, well-capitalized entrant with a dated roadmap is a real data point on whether the photonic bet is paying off, rather than a repeat of a claim two other companies have already made.",{"type":21,"tag":22,"props":21749,"children":21750},{},[21751,21753,21758],{"type":31,"value":21752},"NTT brings something OptQC doesn't have on its own: an existing telecom-scale optical manufacturing and supply chain relationship, the same category of capacity that underlies the ",{"type":21,"tag":26,"props":21754,"children":21755},{"href":18939},[21756],{"type":31,"value":21757},"GlobalFoundries silicon photonics CHIPS Act award",{"type":31,"value":21759}," covered here recently. That overlap is not a coincidence. Photonic quantum hardware and following-generation optical telecom infrastructure draw on the same fabrication base, which is part of why government and corporate investment in one keeps showing up adjacent to the other.",{"type":21,"tag":41,"props":21761,"children":21763},{"id":21762},"what-the-announcement-does-not-commit-to",[21764],{"type":31,"value":21765},"What the announcement does not commit to",{"type":21,"tag":22,"props":21767,"children":21768},{},[21769,21771,21775,21777,21781],{"type":31,"value":21770},"A \"capital and business alliance\" is a real financial commitment, but the release does not disclose the size of NTT's investment, nor does it specify a fidelity, error rate, or gate count target for the 2028 proof of concept, only a qubit count. Qubit count alone tells you little about whether a system is useful, a point this site makes about every hardware headline: see our coverage of ",{"type":21,"tag":26,"props":21772,"children":21773},{"href":4082},[21774],{"type":31,"value":15618},{"type":31,"value":21776}," and of ",{"type":21,"tag":26,"props":21778,"children":21779},{"href":3573},[21780],{"type":31,"value":16552},{"type":31,"value":21782}," for why the ratio between physical and logical, or the error rate per operation, decides whether a number is a real result or a marketing figure.",{"type":21,"tag":41,"props":21784,"children":21785},{"id":3461},[21786],{"type":31,"value":3464},{"type":21,"tag":22,"props":21788,"children":21789},{},[21790],{"type":31,"value":21791},"Fiscal year 2028 is the checkpoint. If the 10,000-qubit proof of concept ships with disclosed error rates and real use-case results from named partners, that is meaningfully different from a slide reused at each fiscal year-end. Until then, treat this as a well-structured, credible roadmap from a company with real telecom manufacturing backing, not yet a hardware outcome.",{"title":7,"searchDepth":168,"depth":168,"links":21793},[21794,21795,21796,21797],{"id":21716,"depth":168,"text":21719},{"id":21732,"depth":168,"text":21735},{"id":21762,"depth":168,"text":21765},{"id":3461,"depth":168,"text":3464},"content:blog:optqc-ntt-million-qubit-photonic-alliance.md","blog\u002Foptqc-ntt-million-qubit-photonic-alliance.md","blog\u002Foptqc-ntt-million-qubit-photonic-alliance",{"_path":21802,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":21803,"description":21804,"date":21805,"author":11,"tags":21806,"readingTime":273,"body":21807,"_type":1187,"_id":21944,"_source":1189,"_file":21945,"_stem":21946,"_extension":1192},"\u002Fja\u002Fblog\u002Fquantinuum-helios-logical-qubits-2026","Quantinuum の Helios:2:1符号化による48論理量子ビットを解説","Quantinuum の最新イオントラップシステムは、わずか約96個の物理量子ビットから48個の誤り訂正済み論理量子ビットを実現したと主張しています。注目すべきは量子ビット数ではなく、その比率です。","2026-08-01",[14720,1207,16315],{"type":18,"children":21808,"toc":21938},[21809,21821,21831,21837,21849,21854,21866,21891,21896,21901,21906,21911],{"type":21,"tag":22,"props":21810,"children":21811},{},[21812,21814,21819],{"type":31,"value":21813},"Quantinuum は最新のイオントラップシステム Helios を発表し、約 ",{"type":21,"tag":16802,"props":21815,"children":21816},{},[21817],{"type":31,"value":21818},"2:1",{"type":31,"value":21820}," の比率で符号化された48個の誤り訂正済み論理量子ビットを実現したと主張しています——約96個の物理量子ビットが48個の論理量子ビット分の仕事をしているということです。この発表に関する報道の多くは量子ビット数を主な見出しにしていました。しかし本当に注目すべき数字は、この比率のほうです。",{"type":21,"tag":22,"props":21822,"children":21823},{},[21824,21829],{"type":21,"tag":26,"props":21825,"children":21826},{"href":4082},[21827],{"type":31,"value":21828},"論理量子ビットと耐障害性についての関連記事",{"type":31,"value":21830},"を読んでいれば、その理由はすでにお分かりでしょう。超伝導ハードウェア上の表面符号(サーフェスコード)の見積もりでは、基盤となるハードウェアが誤り閾値をどれだけ下回っているかによって、論理量子ビット1個あたり物理量子ビットが数百から数千個必要になるのが一般的です。ベンダーが報告する2:1に近い比率は、その数字の段階的な改善ではありません——設計空間のまったく別の領域に属するものであり、その数字を額面通りに受け取る前に、何がそれを可能にしているのかを理解する価値があります。",{"type":21,"tag":41,"props":21832,"children":21834},{"id":21833},"helios-とは何か",[21835],{"type":31,"value":21836},"Helios とは何か",{"type":21,"tag":22,"props":21838,"children":21839},{},[21840,21842,21847],{"type":31,"value":21841},"Helios は Quantinuum の最新の H-Series 世代イオントラップシステムです——このラインナップはこれまで何度も量子ボリュームの記録を保持してきており、イオントラップ分野における Quantinuum の主要な競合相手である IonQ も、これを超えるべき主要なベンチマークとし続けています。イオントラップ型ハードウェアは電磁場中に個々のイオンを捕捉し、レーザーパルスで操作します。これにより、ゲート速度(超伝導量子ビットのナノ秒に対し、マイクロ秒〜ミリ秒)を犠牲にする代わりに、誤り訂正にとって極めて重要な2つの利点——より高いゲート忠実度と、",{"type":21,"tag":16802,"props":21843,"children":21844},{},[21845],{"type":31,"value":21846},"全対全接続性",{"type":31,"value":21848},"(チェーン内のどのイオンも、中間の量子ビットを経由せずに他のどのイオンとも量子もつれを形成できること)——を得ています。",{"type":21,"tag":41,"props":21850,"children":21852},{"id":21851},"なぜこの比率がここで可能なのか",[21853],{"type":31,"value":21851},{"type":21,"tag":22,"props":21855,"children":21856},{},[21857,21859,21864],{"type":31,"value":21858},"Google の Willow のような超伝導チップで使われる標準的な誤り訂正符号である表面符号は、",{"type":21,"tag":16802,"props":21860,"children":21861},{},[21862],{"type":31,"value":21863},"最近接",{"type":31,"value":21865},"パリティチェックを基盤としています。これは平面的な2D超伝導チップが物理的にサポートできることそのものだからです。この制約こそが、そのオーバーヘッドが非常に高い大きな理由です——現実的な誤り率に対して論理量子ビット1個を保護するには、かなりの規模の2D格子状の物理量子ビットが必要になります。",{"type":21,"tag":22,"props":21867,"children":21868},{},[21869,21871,21876,21878,21883,21884,21889],{"type":31,"value":21870},"イオントラップにはこの制約がありません。どのイオンも他のどのイオンとも相互作用できるため、",{"type":21,"tag":16802,"props":21872,"children":21873},{},[21874],{"type":31,"value":21875},"非局所的な",{"type":31,"value":21877},"パリティチェックを必要とする符号——平面チップ上では配線コストが法外に高くつくタイプのもの——が直接実装可能になります。これにより、より量子ビット効率の良い符号族(大まかに言えば qLDPC 系の構成)への道が開かれ、より遅いゲートと引き換えに、物理量子ビットから論理量子ビットへのオーバーヘッドを劇的に削減できます。当サイトの",{"type":21,"tag":26,"props":21879,"children":21880},{"href":1100},[21881],{"type":31,"value":21882},"ハードウェア概観",{"type":31,"value":1071},{"type":21,"tag":26,"props":21885,"children":21886},{"href":19066},[21887],{"type":31,"value":21888},"方式比較",{"type":31,"value":21890},"ではこのトレードオフをより一般的な観点から扱っていますが、Helios は現在出荷されているものの中で、これを最も明確に示す具体例です。",{"type":21,"tag":41,"props":21892,"children":21894},{"id":21893},"この比率が教えてくれないこと",[21895],{"type":31,"value":21893},{"type":21,"tag":22,"props":21897,"children":21898},{},[21899],{"type":31,"value":21900},"オーバーヘッドは一つの軸にすぎず、唯一の軸ではありません。論理量子ビット1個あたりの物理量子ビット数が少ないからといって、自動的により実用的なマシンになるわけではありません。論理量子ビットについての記事で述べたように、論理量子ビットはオーバーヘッド、アイドル時の論理誤り率、論理ゲート忠実度、論理ゲート速度、ゲートセットの普遍性という複数の指標をまとめて評価すべきです。イオントラップのゲートは超伝導ゲートよりも桁違いに遅いため、1操作あたりミリ秒かかる2:1符号化の論理量子ビットは、千倍速く動作するもののコストが高い論理量子ビットより単純に「優れている」とは言えません——正しい比較は、デコヒーレンスが追いつくまでにアルゴリズムが必要とする論理演算の回数に完全に依存します。",{"type":21,"tag":22,"props":21902,"children":21903},{},[21904],{"type":31,"value":21905},"また、この業界のあらゆるハードウェアに関する主張と同様に、独立に再現されるまではベンダーが発表した数字として読むべきです。「2:1での48論理量子ビット」は、特定の運用条件下での具体的な実証を表すものであり、一般に利用可能なすぐ使える機能を意味するものではありません。",{"type":21,"tag":41,"props":21907,"children":21909},{"id":21908},"今学んでいる人にとっての意味",[21910],{"type":31,"value":21908},{"type":21,"tag":22,"props":21912,"children":21913},{},[21914,21916,21921,21923,21928,21930,21936],{"type":31,"value":21915},"Helios クラスのハードウェアは、",{"type":21,"tag":26,"props":21917,"children":21918},{"href":1970},[21919],{"type":31,"value":21920},"IBM の Open Plan",{"type":31,"value":21922}," のように無料枠のキューに並んで使えるものではありません——しかし、最終的にどのハードウェアが勝者になるとしても、そこにある考え方はそのまま応用できます。Quantinuum の TKET コンパイラはオープンソースであり、どのバックエンドを対象とするかにかかわらず今日から無料で使えます。そして本稿にある概念——符号化オーバーヘッド、接続性の制約、閾値定理——は、今後どんな発表が出てきてもそれを評価するために使う、同じ道具立てです。当サイトの",{"type":21,"tag":26,"props":21924,"children":21925},{"href":15609},[21926],{"type":31,"value":21927},"誤り訂正の解説記事",{"type":31,"value":21929},"ではその基礎的な仕組みを扱っており、",{"type":21,"tag":26,"props":21931,"children":21933},{"href":21932},"\u002Flandscape",[21934],{"type":31,"value":21935},"量子業界の全体像",{"type":31,"value":21937},"ではこの方式に限らず、あらゆる方式で誰が何を構築しているかを追跡しています。",{"title":7,"searchDepth":168,"depth":168,"links":21939},[21940,21941,21942,21943],{"id":21833,"depth":168,"text":21836},{"id":21851,"depth":168,"text":21851},{"id":21893,"depth":168,"text":21893},{"id":21908,"depth":168,"text":21908},"content:ja:blog:quantinuum-helios-logical-qubits-2026.md","ja\u002Fblog\u002Fquantinuum-helios-logical-qubits-2026.md","ja\u002Fblog\u002Fquantinuum-helios-logical-qubits-2026",{"_path":21948,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":21949,"description":21950,"date":21805,"author":11,"tags":21951,"readingTime":273,"body":21952,"_type":1187,"_id":22088,"_source":1189,"_file":22089,"_stem":22090,"_extension":1192},"\u002Fja\u002Fblog\u002Fquantum-chemistry-protein-scale-2026","量子コンピュータが本物のタンパク質をシミュレーション——その意味とは","クリーブランド・クリニックとIBMは、IBMのHeron r2チップ上で303原子のミニタンパク質の量子・古典ハイブリッドシミュレーションを実行しました。多くのVQEデモで使われるおもちゃのような分子からの本物の飛躍であり、同時に本物の留意点も伴います。",[3484,3613,1207],{"type":18,"children":21953,"toc":22081},[21954,21966,21971,21976,22000,22005,22011,22016,22022,22048,22053,22058,22062],{"type":21,"tag":22,"props":21955,"children":21956},{},[21957,21959,21964],{"type":31,"value":21958},"ネット上で見つかるほとんどの VQE チュートリアル——",{"type":21,"tag":26,"props":21960,"children":21961},{"href":3610},[21962],{"type":31,"value":21963},"当サイトのもの",{"type":31,"value":21965},"を含め——は、水素や水素化リチウムをシミュレーションします。原子数がわずかな分子が選ばれるのは、それが現在のハードウェアとノイズレベルで実際に扱える範囲だからです。2026年3月、クリーブランド・クリニックと IBM は、質的にまったく異なる、はるかに大きな成果を発表しました。IBM の Heron r2 プロセッサを用いて、303原子のミニタンパク質 Trp-cage の電子構造をモデル化する量子・古典ハイブリッドワークフローです。",{"type":21,"tag":22,"props":21967,"children":21968},{},[21969],{"type":31,"value":21970},"これは規模において本物の飛躍であり、それがなぜ難しいのか、そして見出しになった原子数が何を証明していて何を証明していないのかを理解する価値があります。",{"type":21,"tag":41,"props":21972,"children":21974},{"id":21973},"なぜ分子の大きさが問題の核心なのか",[21975],{"type":31,"value":21973},{"type":21,"tag":22,"props":21977,"children":21978},{},[21979,21984,21986,21990,21992,21998],{"type":21,"tag":26,"props":21980,"children":21981},{"href":17366},[21982],{"type":31,"value":21983},"ファインマンが1982年に量子計算を提唱した際の根拠",{"type":31,"value":21985},"は、まさにこの点にありました——量子系を古典コンピュータ上で厳密にシミュレーションするコストは、システムサイズに対して指数関数的に増大します。なぜなら電子の波動関数は、関わる軌道数に応じて次元が爆発的に増えるヒルベルト空間の中に存在するからです。化学者は通常これを近似によって回避しますが、小さな分子を超えるものについて厳密な答えを得ることは、古典計算では手が届きません。これこそが ",{"type":21,"tag":26,"props":21987,"children":21988},{"href":16267},[21989],{"type":31,"value":3613},{"type":31,"value":21991}," の存在意義そのものです——VQE を導入した",{"type":21,"tag":26,"props":21993,"children":21995},{"href":21994},"\u002Fresearch\u002Fperuzzo-vqe-2014",[21996],{"type":31,"value":21997},"Peruzzo の2014年の論文",{"type":31,"value":21999},"が量子・古典ハイブリッドループを用いたのは、まさに近い将来のハードウェアが計算全体を単独ではこなせないからでした。",{"type":21,"tag":22,"props":22001,"children":22002},{},[22003],{"type":31,"value":22004},"これはまた、「原子はいくつか?」が量子化学のデモンストレーションにとって本当に意味のある指標である理由でもあります——ランダム回路サンプリングのベンチマークなどとは違う点です。2原子の分子から303原子の分子へという飛躍は、同じ結果を誇張したマーケティングではありません——取り組んでいる問題の規模における、本物の飛躍なのです。",{"type":21,"tag":41,"props":22006,"children":22008},{"id":22007},"trp-cage-とは何かなぜ選ばれたのか",[22009],{"type":31,"value":22010},"Trp-cage とは何か、なぜ選ばれたのか",{"type":21,"tag":22,"props":22012,"children":22013},{},[22014],{"type":31,"value":22015},"Trp-cage はプレスリリースのために適当に選ばれた大きな分子ではありません——それは、扱いやすいほど小さく、かつ本物のタンパク質のように振る舞うほど現実的であるという理由から、長年にわたり分子動力学やタンパク質フォールディング研究の標準的なベンチマークとして使われてきた、よく研究された20残基のミニタンパク質です。新奇なシステムではなく確立された参照システムを使うことで、数十年にわたる既存の古典シミュレーションデータと結果を照合しやすくなります。",{"type":21,"tag":41,"props":22017,"children":22019},{"id":22018},"ここでのハイブリッドワークフローがほぼ確実に意味すること",[22020],{"type":31,"value":22021},"ここでの「ハイブリッドワークフロー」がほぼ確実に意味すること",{"type":21,"tag":22,"props":22023,"children":22024},{},[22025,22027,22032,22034,22040,22042,22046],{"type":31,"value":22026},"原子数を注意深く読んでください。303原子系の",{"type":21,"tag":12756,"props":22028,"children":22029},{},[22030],{"type":31,"value":22031},"完全な",{"type":31,"value":22033},"電子構造は、現在のどの QPU が直接扱える範囲もはるかに超えており、303個すべての原子の電子が実際に量子プロセッサ上で表現された可能性は非常に低いといえます。現実的な描像は——IBM が同種の大規模分子研究について発表してきた手法と一致するもので——ハイブリッド埋め込み方式です。注目する性質にとって最も重要な電子と軌道からなる、慎重に選ばれたアクティブスペースが量子ハードウェア上で処理され、残りのシステムは古典的に処理されて結果が統合されます。これは成果を貶めるものではありません——このサイズ範囲における「量子コンピュータが本物の分子をシミュレーションした」という主張は、現状すべてこの方式で成り立っており、まさに",{"type":21,"tag":26,"props":22035,"children":22037},{"href":22036},"\u002Fglossary\u002Fnisq",[22038],{"type":31,"value":22039},"NISQ 時代",{"type":31,"value":22041},"においてこの分野が落ち着いた",{"type":21,"tag":26,"props":22043,"children":22044},{"href":3315},[22045],{"type":31,"value":3318},{"type":31,"value":22047},"のパターンそのものです。誠実に言えば、見出しの数字が表しているのは研究対象となったシステムであり、QPU がすべての原子に等しく仕事をしたという証明ではありません。",{"type":21,"tag":41,"props":22049,"children":22051},{"id":22050},"それでも意義あるマイルストーンである理由",[22052],{"type":31,"value":22050},{"type":21,"tag":22,"props":22054,"children":22055},{},[22056],{"type":31,"value":22057},"留意点はあるにせよ、これらのハイブリッドパイプラインが扱える範囲における本物の進歩です。これまでの「量子コンピュータが化学をする」というデモの大半は、最小基底系で原子数がわずかな分子にとどまっていました。同じ種類の手法を、生物学的に意味があり、十分に特性評価された303原子系にまでスケールさせ、しかも量子部分を古典的な代替ではなく実際のハードウェア上で実行したことは、パイプライン自体がスケールすることを示しており、それこそが各社が競って解決しようとしている本当のボトルネックです。これは2026年の他の化学マイルストーン——たとえば Qubit Pharmaceuticals と Pasqal によるタンパク質ポケット内での水分子配置の量子アルゴリズムによるデモンストレーション(教科書的な課題ではなく、分子生物学レベルの課題)——と同じ方向に位置づけられます。",{"type":21,"tag":41,"props":22059,"children":22060},{"id":21908},[22061],{"type":31,"value":21908},{"type":21,"tag":22,"props":22063,"children":22064},{},[22065,22067,22072,22074,22079],{"type":31,"value":22066},"ここで使われている技術を学ぶのに、Heron r2 へのアクセスも、実機の QPU すら必要ありません。同じ VQE の構成要素(アンザッツの構築、アクティブスペースの選択、古典的な最適化ループ)は、",{"type":21,"tag":26,"props":22068,"children":22069},{"href":3292},[22070],{"type":31,"value":22071},"無料のローカルシミュレータ",{"type":31,"value":22073},"で H₂ をフィッティングする場合でも、303原子のタンパク質について読む場合でも変わりません。小分子バージョンを自分で実行してみたい場合は、当サイトの ",{"type":21,"tag":26,"props":22075,"children":22076},{"href":3610},[22077],{"type":31,"value":22078},"PennyLane VQE ガイド",{"type":31,"value":22080},"から始めてみてください。そして、こうした報道に出てくる見出しの原子数は、他のあらゆるハードウェアの主張と同じように扱いましょう——それは本物の成果であり、正確に理解する価値があり、そしてまだ話の全体ではないのです。",{"title":7,"searchDepth":168,"depth":168,"links":22082},[22083,22084,22085,22086,22087],{"id":21973,"depth":168,"text":21973},{"id":22007,"depth":168,"text":22010},{"id":22018,"depth":168,"text":22021},{"id":22050,"depth":168,"text":22050},{"id":21908,"depth":168,"text":21908},"content:ja:blog:quantum-chemistry-protein-scale-2026.md","ja\u002Fblog\u002Fquantum-chemistry-protein-scale-2026.md","ja\u002Fblog\u002Fquantum-chemistry-protein-scale-2026",{"_path":22092,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":22093,"description":22094,"date":21805,"author":11,"tags":22095,"readingTime":378,"body":22096,"_type":1187,"_id":22363,"_source":1189,"_file":22364,"_stem":22365,"_extension":1192},"\u002Fja\u002Fblog\u002Ftop-quantum-computing-companies-2026","2026年7月時点の量子コンピューティング企業ランキングと解説","2026年7月時点で本当に重要な量子コンピューティング企業を、プレスリリースの熱気ではなく実際の売上、実際のハードウェアの節目、実際の手元資金で評価したランキング。IonQの数字はその順位に見合っている。Rigettiの数字はまだ競合他社に及んでいない。",[3396,1207],{"type":18,"children":22097,"toc":22349},[22098,22103,22115,22121,22141,22147,22152,22158,22163,22182,22187,22193,22205,22211,22216,22222,22227,22232,22238,22243,22249,22254,22260,22265,22271,22276,22282,22319,22324],{"type":21,"tag":22,"props":22099,"children":22100},{},[22101],{"type":31,"value":22102},"「量子コンピューティング企業トップ」を謳うリストの多くは、見出しの量子ビット数か、直近のプレスリリースの新しさで順位を決めている。どちらもほとんど意味を持たない。フィデリティの数値が伴わない量子ビット数は、そのマシンが実際に役立つ仕事をしているかどうかを何も語らないし、プレスリリースはマーケティング予算を測るものであって、ハードウェアのロードマップを測るものではない。",{"type":21,"tag":22,"props":22104,"children":22105},{},[22106,22108,22113],{"type":31,"value":22107},"このランキングでは代わりに三つの基準を使う。実証された技術的進展（フィデリティ、論理量子ビット、見出しの主張だけではなく独立に再現可能な結果）、商業的な牽引力（売上、契約、受注残）、そして財務的な耐久力（資金消費率に対する手元資金の状況）だ。ある数字が企業自身の主張だけを根拠にしている場合は、その旨を明示している。当サイトの",{"type":21,"tag":26,"props":22109,"children":22110},{"href":21932},[22111],{"type":31,"value":22112},"業界一覧ページ",{"type":31,"value":22114},"には各カテゴリーで60社以上を収録している。この記事はその対極にある。誰が実際に先行していて、声の大きい名前の一部がなぜそうではないのかを短く、独自の視点でまとめたリストだ。",{"type":21,"tag":41,"props":22116,"children":22118},{"id":22117},"_1-ibm-quantum",[22119],{"type":31,"value":22120},"1. IBM Quantum",{"type":21,"tag":22,"props":22122,"children":22123},{},[22124,22126,22132,22134,22139],{"type":31,"value":22125},"IBMは業界で最も幅広いプラットフォームであり続けており、2026年7月は記録に残る中でも特に力強い月だった。三つの異なるパートナーと三つの異なる検証手法による、三件の別々の量子アドバンテージ成果が同日に発表された。",{"type":21,"tag":26,"props":22127,"children":22129},{"href":22128},"\u002Fblog\u002Fibm-quantum-advantage-triple-announcement-2026",[22130],{"type":31,"value":22131},"この発表の全容はこちらで取り上げている",{"type":31,"value":22133},"。Nighthawkプロセッサ（120量子ビット、218の可変結合器）はすでに稼働しており、IBMの公開ロードマップは一連の中間システムを経て2029年までのフォールトトレランス実現を目指し、表面符号に比べて誤り訂正のオーバーヘッドを約90%削減するqLDPC系の符号への移行を進めている。IBMのOpen Planも、誰もが無料で実機に回路を実行できる最も簡単な方法であり続けており、これが次世代の量子開発者の学び方の中心にIBMを位置づけている。自分で試してみたいなら",{"type":21,"tag":26,"props":22135,"children":22136},{"href":1970},[22137],{"type":31,"value":22138},"IBM Quantum無料プランのガイド",{"type":31,"value":22140},"を参照してほしい。IBMの弱点はその幅広さの裏返しでもある。これだけ多くのことが同時に起きていると、一つ一つの成果が受ける検証は、より小規模で焦点を絞った競合が受けるものより手薄になる。",{"type":21,"tag":41,"props":22142,"children":22144},{"id":22143},"_2-google-quantum-ai",[22145],{"type":31,"value":22146},"2. Google Quantum AI",{"type":21,"tag":22,"props":22148,"children":22149},{},[22150],{"type":31,"value":22151},"GoogleのWillowプロセッサは2025年末にQuantum Echoesの成果を出した（Nature誌に掲載）。論文はこの計算を、利用可能な最良の古典的手法よりも約1万3000倍高速だと見積もっている。その1年前のしきい値以下の誤り訂正実証は、この分野で完全に独立した検証を受けた数少ない節目の一つであり続けている。Googleは2026年3月、超伝導方式の研究に加えて中性原子の研究にも着手した。トランズモン量子ビットが最終的な答えではない可能性への備えだ。Googleは競合他社より発表頻度が少なく、発表と発表の間に語る情報も少ない。これは擁護できる研究戦略だが、月単位で進捗を追いにくくもしている。",{"type":21,"tag":41,"props":22153,"children":22155},{"id":22154},"_3-ionq",[22156],{"type":31,"value":22157},"3. IonQ",{"type":21,"tag":22,"props":22159,"children":22160},{},[22161],{"type":31,"value":22162},"純粋な量子ハードウェア企業の中で、IonQの数字は業界で最も強い。これは宣伝文句ではなく事実の記述だ。2026年第1四半期の売上高は6470万ドルに達し、前年同期比755%増となった。通期のガイダンスは2億6000万〜2億7000万ドルに引き上げられ、残存履行義務は4億7000万ドル、前年比554%増だった。これは希望的観測で運営している企業の姿ではない。政府部門での牽引力もそれを裏付けている。ミサイル防衛局との契約枠は上限1510億ドル（上限であって支出の保証ではないが、それでも異例の規模だ）、2026年4月には新規のDARPA契約、韓国のKISTI研究所とのソブリン量子HPC提携もある。",{"type":21,"tag":22,"props":22164,"children":22165},{},[22166,22168,22173,22175,22180],{"type":31,"value":22167},"ハードウェア面では、IonQのトラップイオン方式はOxford Ionics買収由来の「スムーズゲート」技術の恩恵を受けている。同社によれば、この技術は完全な基底状態冷却を必要とせずに2量子ビットゲートのフィデリティを99.99%超に引き上げるという。独立検証で裏付けられれば、本物の工学的近道になる。IonQはまた2025年12月、量子LDPC符号向けのデコーダー成果（Beam Search）を発表し、標準的なBP-OSDに対して論理エラー率を5.6〜17倍削減し、通常のCPUコア上でミリ秒未満のデコードを実現すると主張している。もしIonQの想定通りにスケールするなら、競合が追求しているFPGAやASICのルートよりもかなり安価なリアルタイムデコードへの道になる。この話題は",{"type":21,"tag":26,"props":22169,"children":22170},{"href":14748},[22171],{"type":31,"value":22172},"リアルタイムデコーディングのボトルネック",{"type":31,"value":22174},"でさらに掘り下げている。そして",{"type":21,"tag":26,"props":22176,"children":22177},{"href":18151},[22178],{"type":31,"value":22179},"詳しく検証した",{"type":31,"value":22181},"SkyWater Technology買収は、IonQに量子ビット周辺の電極、フォトニクス、制御用ハードウェアについて完全に国内で完結し防衛用途の認可を受けたサプライチェーンをもたらす。量子ビットの物理特性とは関係なく、政府調達に対する本物の強みだ。",{"type":21,"tag":22,"props":22183,"children":22184},{},[22185],{"type":31,"value":22186},"これらはいずれも、Googleのしきい値以下成果ほど独立に検証されてはいない。IonQのフィデリティ、デコーダー、ゲート速度に関する主張はIonQ自身の数字だ。しかし商業面と政府部門での牽引力はマーケティングの主張とは異なり、外部から報告され監査可能なものであり、これほど若いハードウェア企業が研究資金だけでなくこの規模の実際の売上成長を示すのは珍しい。この組み合わせ、実証された商業的な引き合いと筋の通ったハードウェアロードマップこそが、IonQが同等かそれ以上のラボ成果を持ちながら商業的な実績がはるかに薄い競合他社より上位にランクされる理由だ。",{"type":21,"tag":41,"props":22188,"children":22190},{"id":22189},"_4-quantinuum",[22191],{"type":31,"value":22192},"4. Quantinuum",{"type":21,"tag":22,"props":22194,"children":22195},{},[22196,22198,22203],{"type":31,"value":22197},"QuantinuumのHeliosシステムは、約96個の物理量子ビットから48個の誤り訂正済み論理量子ビットを実現したと主張しており、2対1という比率だ。これが確認されれば重要な意味を持つ。超伝導ハードウェア上の表面符号の見積もりは通常、論理量子ビット1個あたり物理量子ビットが数百から数千個に及ぶからだ。",{"type":21,"tag":26,"props":22199,"children":22200},{"href":3573},[22201],{"type":31,"value":22202},"この比率がそもそもなぜ可能なのかはこちらで解説している",{"type":31,"value":22204},"。トラップイオン方式の全対全接続性により、平面型の超伝導チップでは配線できない非局所的なパリティチェックが可能になる。Quantinuumは2026年に156億ドルの評価額で株式公開し、それは数か月前の直近の非公開ラウンドを50%以上上回る水準だった。ハネウェルは議決権の約48%を保持している。このIPOの反応は、市場が技術的な話を信じていることを示している。IonQのフィデリティに関する主張と同様、この2対1という数字もベンダー自身の報告であり、まだ独立に再現されていない。",{"type":21,"tag":41,"props":22206,"children":22208},{"id":22207},"_5-d-wave",[22209],{"type":31,"value":22210},"5. D-Wave",{"type":21,"tag":22,"props":22212,"children":22213},{},[22214],{"type":31,"value":22215},"D-Waveは別のカテゴリーに属する。ゲート方式ではなくアニーリング方式であり、そのために過小評価されやすい。2026年第1四半期の受注は前年比でほぼ20倍に急増し3340万ドルに達したが、計上済みの売上高は比較的少額の290万ドルにとどまり、受注残は本物だが計上までの遅れが長いことを示している。5億8800万ドルの手元資金がその間を待つ余裕を与えている。フロリダ・アトランティック大学やフォーチュン100企業との量子クラウドアクセス契約は、アニーリングに自然に当てはまる最適化問題というニッチに、依然として活発な商業需要があることを示している。",{"type":21,"tag":41,"props":22217,"children":22219},{"id":22218},"_6-rigetti-computing",[22220],{"type":31,"value":22221},"6. Rigetti Computing",{"type":21,"tag":22,"props":22223,"children":22224},{},[22225],{"type":31,"value":22226},"Rigettiは、このリストの中で語られている話と実際の数字との差が最も大きい企業だ。108量子ビットの超伝導システムCepheus-1は2026年4月に一般提供に達したが、当初の2025年第4四半期という目標からずれ込んでおり、可変結合器のフィデリティ問題が原因だった。出荷後に報告された2量子ビットゲートのフィデリティは99〜99.1%程度で、Rigetti自身の目標である99.5%を下回り、IonQとQuantinuumがそれぞれのプラットフォームについて主張する数字を大きく下回る。2026年第1四半期の売上高は440万ドルで、同じ四半期のIonQの6470万ドルのごく一部に過ぎない。公開情報ではDARPAプログラムの節目での後退も報じられており、現時点でロードマップの大半を自己資金でまかなっている企業にとって、さらなる圧力となっている。",{"type":21,"tag":22,"props":22228,"children":22229},{},[22230],{"type":31,"value":22231},"真に評価できる強みは一つ、財務基盤だ。約5億6900万ドルの現金、無借金、四半期あたり約2600万ドルの資金消費率で、これは本物の活動余地を買っている。これは率直に評価する価値がある。強固な手元資金は慰めではなく、本物の資産だからだ。しかし現金が買うのは時間であって競争上の地位ではない。そして量子コンピュータが実際に役立つ仕事をするかどうかを本当に予測する指標、フィデリティ、論理量子ビットの進展、独立した商業的牽引力において、RigettiはIBM、Google、IonQ、Quantinuumと並んでいるのではなく、その後ろを走っている。1000量子ビット超を目指す同社自身の公開ロードマップは、数字を見る限り、並走する道というより数年がかりの追い上げのように読める。",{"type":21,"tag":41,"props":22233,"children":22235},{"id":22234},"_7-psiquantum",[22236],{"type":31,"value":22237},"7. PsiQuantum",{"type":21,"tag":22,"props":22239,"children":22240},{},[22241],{"type":31,"value":22242},"フォトニック方式でフォールトトレランスを最優先するPsiQuantumは、2025年9月にシリーズEで10億ドルを調達し、オーストラリア連邦政府とクイーンズランド州政府から約9億4000万オーストラリアドル（約6億2000万米ドル）の資金コミットメントを取り付けた。ブリスベンの施設の建設は2026年6月に着工したが、納入予定は当初の2027年から2029年に後退している。PsiQuantumは商用システムを一度も出荷したことがなく、フォールトトレラントなマシンが大規模に構築された初回で動作することにすべてを賭けている。このリストにあるゲート方式の競合他社とは根本的に異なるリスクプロファイルであり、それらはいずれも今日、ノイズはあるものの実際に動くハードウェアを現場に持っている。",{"type":21,"tag":41,"props":22244,"children":22246},{"id":22245},"_8-xanadu",[22247],{"type":31,"value":22248},"8. Xanadu",{"type":21,"tag":22,"props":22250,"children":22251},{},[22252],{"type":31,"value":22253},"Xanaduは2026年3月にナスダックとトロント証券取引所に上場し、3億200万ドルを調達した。そのモジュール型フォトニックシステムAuroraはリアルタイム誤り訂正を実現したと主張しており、独立に検証されれば意味のある技術的な一歩となる。同社のPennyLaneフレームワークは、どのハードウェアを対象にするかにかかわらず、量子機械学習分野で最も広く使われているオープンソースツールの一つであり続けており、自社チップが勝つかどうかに依存しないエコシステム上の足場をXanaduに与えている。",{"type":21,"tag":41,"props":22255,"children":22257},{"id":22256},"_9-pasqal",[22258],{"type":31,"value":22259},"9. Pasqal",{"type":21,"tag":22,"props":22261,"children":22262},{},[22263],{"type":31,"value":22264},"中性原子方式のPasqalは3億4000万ユーロを調達し、2026年下半期に完了予定のSPAC合併で20億ドルの評価額を付けた。公開ロードマップでは2026年に250量子ビットでのアドバンテージ実証を目指し、VelaおよびCentaurusシステムで1万量子ビット超への道筋を描いている。中性原子はトラップイオンや超伝導量子ビットに比べて商業化の段階としてはまだ早いが、Pasqalの資金力と（特に欧州における）政府との関係は、その規模に到達するための本物の持久力を与えている。",{"type":21,"tag":41,"props":22266,"children":22268},{"id":22267},"_10-quera-computing",[22269],{"type":31,"value":22270},"10. QuEra Computing",{"type":21,"tag":22,"props":22272,"children":22273},{},[22274],{"type":31,"value":22275},"QuEraは2026年1月のNature誌の論文で、448個の物理量子ビット上に96個の論理量子ビットを符号化したと報告した。この比率がGoogleのしきい値以下成果と同様の検証に耐えれば、QuEraの論理量子ビット数はQuantinuumのHelios成果を上回ることになる。Googleやソフトバンクなどからの累計5億700万ドル超の資金調達は、中性原子方式をさらなる規模へと押し進める原資となっている。",{"type":21,"tag":41,"props":22277,"children":22279},{"id":22278},"その他の企業簡単に",[22280],{"type":31,"value":22281},"その他の企業、簡単に",{"type":21,"tag":22,"props":22283,"children":22284},{},[22285,22290,22292,22297,22299,22303,22305,22310,22312,22317],{"type":21,"tag":16802,"props":22286,"children":22287},{},[22288],{"type":31,"value":22289},"Atom Computing",{"type":31,"value":22291},"は、マイクロソフトのQuNorthグループと誤り訂正で協業しながら、2026年末までに1200以上の物理量子ビット上で50個の論理量子ビットを目指している。",{"type":21,"tag":16802,"props":22293,"children":22294},{},[22295],{"type":31,"value":22296},"IQM",{"type":31,"value":22298},"はブラックロックから5000万ユーロを調達し、18億ドルのSPAC評価額を達成、EU初の純粋な量子ハードウェア上場企業として自らを位置づけており、すでに13社の顧客に21台のシステムを販売済みだ。",{"type":21,"tag":16802,"props":22300,"children":22301},{},[22302],{"type":31,"value":10549},{"type":31,"value":22304},"は2026年2月にニューヨーク証券取引所に上場し、1600個の物理量子ビットとフィデリティ99.73%を報告している。",{"type":21,"tag":16802,"props":22306,"children":22307},{},[22308],{"type":31,"value":22309},"Microsoft",{"type":31,"value":22311},"は2026年6月にトポロジカル量子ビットのMajorana 2アップデートを出荷し、量子ビットの寿命が1000倍向上したと主張しているが、トポロジカル量子ビットに関する主張が歴史的に物議を醸してきたことを踏まえ、この結果は今なお物理学界からの本物の検証にさらされている。",{"type":21,"tag":16802,"props":22313,"children":22314},{},[22315],{"type":31,"value":22316},"NVIDIA",{"type":31,"value":22318},"は量子ビットを一切製造していないが、NVQLinkインフラを、Rigetti、SEEQC、Quantinuum、IQMのQPUと古典的なスーパーコンピューティングをつなぐ接続層として位置づけており、どのハードウェア方式が勝っても自社がその配線部分を握れるという賭けに出ている。",{"type":21,"tag":41,"props":22320,"children":22322},{"id":22321},"このリストの使い方",[22323],{"type":31,"value":22321},{"type":21,"tag":22,"props":22325,"children":22326},{},[22327,22329,22334,22336,22341,22342,22347],{"type":31,"value":22328},"こうしたランキングはすぐに古くなる。ここに載っている数字はどれも特定の四半期や発表に基づくものであり、1年もすれば古びて見えるだろう。それほど早く古びないのは方法論のほうだ。売上高をガイダンスと照らし合わせる、フィデリティを企業自身が掲げた目標と照らし合わせる、「論理量子ビット」や「アドバンテージ」の主張が独立に再現されたのか、それとも依然として一つのベンダーの言葉だけに乗っているのかを確認する。次に読む発表にも同じ方法を当てはめてほしい。当サイトの",{"type":21,"tag":26,"props":22330,"children":22331},{"href":19115},[22332],{"type":31,"value":22333},"量子ベンチマークに関する記事",{"type":31,"value":22335},"では、この分野になぜいまだにベンダーから独立した信頼できるハードウェア比較の手段が存在しないのかをさらに掘り下げている。実際にどのプラットフォームの上に構築するかを決めたいなら、ただ眺めるだけの対象を選ぶのではなく、当サイトの",{"type":21,"tag":26,"props":22337,"children":22338},{"href":1100},[22339],{"type":31,"value":22340},"ハードウェア概要",{"type":31,"value":1071},{"type":21,"tag":26,"props":22343,"children":22344},{"href":19066},[22345],{"type":31,"value":22346},"SDK比較",{"type":31,"value":22348},"が次に見るべき場所だ。",{"title":7,"searchDepth":168,"depth":168,"links":22350},[22351,22352,22353,22354,22355,22356,22357,22358,22359,22360,22361,22362],{"id":22117,"depth":168,"text":22120},{"id":22143,"depth":168,"text":22146},{"id":22154,"depth":168,"text":22157},{"id":22189,"depth":168,"text":22192},{"id":22207,"depth":168,"text":22210},{"id":22218,"depth":168,"text":22221},{"id":22234,"depth":168,"text":22237},{"id":22245,"depth":168,"text":22248},{"id":22256,"depth":168,"text":22259},{"id":22267,"depth":168,"text":22270},{"id":22278,"depth":168,"text":22281},{"id":22321,"depth":168,"text":22321},"content:ja:blog:top-quantum-computing-companies-2026.md","ja\u002Fblog\u002Ftop-quantum-computing-companies-2026.md","ja\u002Fblog\u002Ftop-quantum-computing-companies-2026",{"_path":22367,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":22368,"description":22369,"date":21805,"author":11,"tags":22370,"readingTime":273,"body":22371,"_type":1187,"_id":22458,"_source":1189,"_file":22459,"_stem":22460,"_extension":1192},"\u002Fblog\u002Fadapt-gqe-ai-quantum-circuit-design","AI Now Designs Quantum Chemistry Circuits Faster Than the Standard Method","Quantinuum, NVIDIA, and Pfizer built ADAPT-GQE, a transformer and reinforcement-learning system that generates VQE ansatz circuits an order of magnitude faster than ADAPT-VQE, demonstrated on a real drug molecule and run on Quantinuum's Helios hardware.",[3484,3613,1207],{"type":18,"children":22372,"toc":22452},[22373,22384,22390,22395,22400,22406,22417,22423,22435,22441],{"type":21,"tag":22,"props":22374,"children":22375},{},[22376,22378,22382],{"type":31,"value":22377},"Building a good ",{"type":21,"tag":26,"props":22379,"children":22380},{"href":16267},[22381],{"type":31,"value":3613},{"type":31,"value":22383}," circuit for a certain molecule is itself a hard, expensive search issue, before you ever run the circuit. Researchers from Quantinuum, NVIDIA, and Pfizer published a result on July 30, 2026 that automates that search: a system called ADAPT-GQE, which learns to generate the ansatz circuit directly instead of building it one operator at a time.",{"type":21,"tag":41,"props":22385,"children":22387},{"id":22386},"the-problem-adapt-gqe-targets",[22388],{"type":31,"value":22389},"The problem ADAPT-GQE targets",{"type":21,"tag":22,"props":22391,"children":22392},{},[22393],{"type":31,"value":22394},"The standard method, ADAPT-VQE, builds a molecule-certain ansatz by testing a pool of candidate operators at every step, picking the one that improves the energy estimate most, and repeating. That greedy search works, but it gets expensive fast as molecules expand, since every step re-evaluates the whole operator pool from scratch.",{"type":21,"tag":22,"props":22396,"children":22397},{},[22398],{"type":31,"value":22399},"ADAPT-GQE replaces that per-molecule greedy search with a trained model: a transformer combined with reinforcement learning, trained to generate the state-preparation circuit for a molecule's electronic ground state directly. Once trained, generating a new circuit is a forward pass through a model instead of a fresh greedy search.",{"type":21,"tag":41,"props":22401,"children":22403},{"id":22402},"what-the-results-show",[22404],{"type":31,"value":22405},"What the results show",{"type":21,"tag":22,"props":22407,"children":22408},{},[22409,22411,22416],{"type":31,"value":22410},"The team reports a 234 times speed-up in generating training data for complex molecules, and roughly one order of magnitude reduction in circuit generation time compared to ADAPT-VQE, while matching or improving accuracy in preparing molecular ground states on their benchmarks. They demonstrated the approach on imipramine, an approved tricyclic antidepressant used here as a realistic pharmaceutical test molecule, and ran the AI-generated circuits on Quantinuum's Helios trapped-ion system, the identical hardware we covered in our ",{"type":21,"tag":26,"props":22412,"children":22413},{"href":3573},[22414],{"type":31,"value":22415},"piece on Helios's logical qubit encoding",{"type":31,"value":6665},{"type":21,"tag":41,"props":22418,"children":22420},{"id":22419},"read-the-claim-at-the-scale-it-was-tested",[22421],{"type":31,"value":22422},"Read the claim at the scale it was tested",{"type":21,"tag":22,"props":22424,"children":22425},{},[22426,22428,22433],{"type":31,"value":22427},"This result is about circuit generation, not about simulating a bigger molecule than anyone has before. It is a different kind of advance from the ",{"type":21,"tag":26,"props":22429,"children":22430},{"href":3505},[22431],{"type":31,"value":22432},"Cleveland Clinic and IBM protein-scale simulation",{"type":31,"value":22434}," we covered separately, which pushed the size of the system being simulated. ADAPT-GQE instead pushes the speed and cost of building the circuit for a given molecule, tested here on one well-characterized drug compound. Whether the trained model generalizes to structurally different molecules without retraining, and how it performs as molecule size grows well past imipramine, are the open questions worth watching in follow-up work rather than assuming from this result alone.",{"type":21,"tag":41,"props":22436,"children":22438},{"id":22437},"why-this-fits-a-pattern-worth-naming",[22439],{"type":31,"value":22440},"Why this fits a pattern worth naming",{"type":21,"tag":22,"props":22442,"children":22443},{},[22444,22446,22450],{"type":31,"value":22445},"Pfizer's involvement gives this a real commercial angle instead of a research-only demonstration, and it points at a broader shift already visible across 2026 quantum chemistry news: less effort spent proving quantum computers touch a toy molecule, more effort spent removing the practical bottlenecks, molecule size in IBM's case, circuit design cost here, standing between a working method and something a pharmaceutical team would use. If you want to build the small-molecule version of this yourself on a free simulator, our ",{"type":21,"tag":26,"props":22447,"children":22448},{"href":3610},[22449],{"type":31,"value":11840},{"type":31,"value":22451}," walks through the manual ansatz-construction approach ADAPT-GQE is trying to replace.",{"title":7,"searchDepth":168,"depth":168,"links":22453},[22454,22455,22456,22457],{"id":22386,"depth":168,"text":22389},{"id":22402,"depth":168,"text":22405},{"id":22419,"depth":168,"text":22422},{"id":22437,"depth":168,"text":22440},"content:blog:adapt-gqe-ai-quantum-circuit-design.md","blog\u002Fadapt-gqe-ai-quantum-circuit-design.md","blog\u002Fadapt-gqe-ai-quantum-circuit-design",{"_path":18939,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":22462,"description":22463,"date":21805,"author":11,"tags":22464,"readingTime":234,"body":22465,"_type":1187,"_id":22530,"_source":1189,"_file":22531,"_stem":22532,"_extension":1192},"GlobalFoundries Gets $300 Million to Build Silicon Photonics in the US","GlobalFoundries signed a letter of intent for a $300 million CHIPS Act award to scale US silicon photonics manufacturing. It is not a quantum computing grant, but the manufacturing capacity it builds matters for photonic quantum hardware and quantum networking too.",[3396,1207],{"type":18,"children":22466,"toc":22525},[22467,22472,22478,22483,22489,22514,22520],{"type":21,"tag":22,"props":22468,"children":22469},{},[22470],{"type":31,"value":22471},"GlobalFoundries signed a letter of intent with the US Department of Commerce on July 29, 2026, for a $300 million CHIPS Act award to scale up US silicon photonics manufacturing. Read the headline carefully: this is not quantum computing funding. It is an AI-infrastructure story first. It belongs on this site because the manufacturing capacity it builds is the same capacity photonic quantum computing and quantum networking depend on.",{"type":21,"tag":41,"props":22473,"children":22475},{"id":22474},"what-the-award-funds",[22476],{"type":31,"value":22477},"What the award funds",{"type":21,"tag":22,"props":22479,"children":22480},{},[22481],{"type":31,"value":22482},"Silicon photonics moves data using light instead of electrical signals, which gives AI systems more bandwidth per watt of power drawn. The funding covers co-packaged optics, an approach that places photonic circuitry directly next to processors instead of routing signals through separate optical modules, along with next-generation optical materials, wafer technology, and advanced packaging. GlobalFoundries states target performance of 400 gigabits per second in throughput and energy consumption cut to a fifth of current-generation systems. The Department of Commerce receives roughly a 1 percent equity stake in GlobalFoundries as part of the deal. Work will run through GlobalFoundries' existing facilities in Malta, New York, and Burlington, Vermont.",{"type":21,"tag":41,"props":22484,"children":22486},{"id":22485},"why-a-chipmakers-ai-deal-shows-up-on-a-quantum-computing-site",[22487],{"type":31,"value":22488},"Why a chipmaker's AI deal shows up on a quantum computing site",{"type":21,"tag":22,"props":22490,"children":22491},{},[22492,22494,22499,22501,22506,22508,22513],{"type":31,"value":22493},"Much of today's silicon photonics and advanced optical packaging supply chain sits outside the United States, which is the same domestic-manufacturing motivation behind ",{"type":21,"tag":26,"props":22495,"children":22496},{"href":18151},[22497],{"type":31,"value":22498},"IonQ's acquisition of SkyWater Technology",{"type":31,"value":22500},". The connection to quantum computing is indirect but real: photonic quantum computing companies like Xanadu and PsiQuantum, tracked on our ",{"type":21,"tag":26,"props":22502,"children":22503},{"href":21932},[22504],{"type":31,"value":22505},"industry landscape",{"type":31,"value":22507},", depend on exactly this kind of silicon photonics fabrication and packaging capacity. So do quantum networking efforts aimed at linking separate QPUs with optical interconnects, the subject of our piece on ",{"type":21,"tag":26,"props":22509,"children":22510},{"href":1131},[22511],{"type":31,"value":22512},"quantum networking and distributed quantum computing",{"type":31,"value":6665},{"type":21,"tag":41,"props":22515,"children":22517},{"id":22516},"a-general-purpose-award-with-a-quantum-side-effect",[22518],{"type":31,"value":22519},"A general-purpose award with a quantum side effect",{"type":21,"tag":22,"props":22521,"children":22522},{},[22523],{"type":31,"value":22524},"This award funds general-purpose silicon photonics aimed at AI data centers, not a quantum-specific fabrication line, and no quantum hardware vendor is named as a direct beneficiary. The manufacturing base it builds still matters: photonic and optically networked quantum hardware depends on the same silicon photonics capacity, funded here for reasons that have nothing to do with quantum computing at all. That distinction is worth keeping straight when judging how much of the \"domestic quantum supply chain\" story making the rounds in 2026 is quantum-specific policy versus a broader chip and AI-infrastructure push that quantum hardware happens to benefit from as a side effect.",{"title":7,"searchDepth":168,"depth":168,"links":22526},[22527,22528,22529],{"id":22474,"depth":168,"text":22477},{"id":22485,"depth":168,"text":22488},{"id":22516,"depth":168,"text":22519},"content:blog:globalfoundries-chips-silicon-photonics-award.md","blog\u002Fglobalfoundries-chips-silicon-photonics-award.md","blog\u002Fglobalfoundries-chips-silicon-photonics-award",{"_path":18386,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":22534,"description":22535,"date":21805,"author":11,"tags":22536,"readingTime":309,"body":22537,"_type":1187,"_id":22663,"_source":1189,"_file":22664,"_stem":22665,"_extension":1192},"Google Taught Willow to Calibrate Itself While It Runs Error Correction","Google Quantum AI and DeepMind published a Nature paper showing a reinforcement learning agent recalibrates the Willow processor using the same error-detection data error correction already produces, setting a new logical error rate record for the surface code.",[1207,14720,3396],{"type":18,"children":22538,"toc":22657},[22539,22561,22567,22572,22582,22588,22600,22605,22611,22616,22628,22634,22639],{"type":21,"tag":22,"props":22540,"children":22541},{},[22542,22544,22551,22552,22559],{"type":31,"value":22543},"Google Quantum AI and Google DeepMind published a paper in Nature on July 10, 2026 showing that a reinforcement learning agent keeps a quantum processor calibrated using data the processor was already producing, rather than pausing to run a separate tune-up routine, according to ",{"type":21,"tag":26,"props":22545,"children":22548},{"href":22546,"rel":22547},"https:\u002F\u002Fthequantuminsider.com\u002F2026\u002F07\u002F10\u002Fgoogle-study-shows-quantum-computer-can-learn-from-its-own-errors-while-it-computes\u002F",[7123],[22549],{"type":31,"value":22550},"The Quantum Insider",{"type":31,"value":3615},{"type":21,"tag":26,"props":22553,"children":22556},{"href":22554,"rel":22555},"https:\u002F\u002Fwww.nature.com\u002Farticles\u002Fs41586-026-10759-2",[7123],[22557],{"type":31,"value":22558},"the paper itself",{"type":31,"value":22560},". The work ran on Google's Willow superconducting processor and was led by Volodymyr Sivak and Alexis Morvan, with 299 authors credited in total.",{"type":21,"tag":41,"props":22562,"children":22564},{"id":22563},"the-problem-this-solves",[22565],{"type":31,"value":22566},"The problem this solves",{"type":21,"tag":22,"props":22568,"children":22569},{},[22570],{"type":31,"value":22571},"Every quantum processor drifts. Control parameters, the microwave pulse amplitudes, frequencies, and coupling strengths that drive each qubit, slowly shift due to temperature changes, material aging, and electronic noise. The standard fix is periodic recalibration: pause the machine, run a dedicated tune-up sequence, then resume. That works, but it treats calibration and computation as separate activities competing for the equivalent hardware time, and it only catches drift at the moments you choose to check for it.",{"type":21,"tag":22,"props":22573,"children":22574},{},[22575,22580],{"type":21,"tag":26,"props":22576,"children":22577},{"href":15828},[22578],{"type":31,"value":22579},"Quantum error correction",{"type":31,"value":22581}," already generates a stream of error-detection events as a normal part of running any error-corrected circuit. Google's insight was that this data is not only useful for correcting the logical qubit's state. It also tells you, continuously, how well the underlying hardware is behaving, which is exactly the signal a calibration system needs.",{"type":21,"tag":41,"props":22583,"children":22585},{"id":22584},"what-the-reinforcement-learning-agent-does",[22586],{"type":31,"value":22587},"What the reinforcement learning agent does",{"type":21,"tag":22,"props":22589,"children":22590},{},[22591,22593,22598],{"type":31,"value":22592},"The system trains a reinforcement learning agent to read the error-detection events produced during normal error-correction cycles and use them to continuously adjust more than 1,000 control parameters, without stopping the computation to do it. Google tested the approach on distance-5 and distance-7 ",{"type":21,"tag":26,"props":22594,"children":22595},{"href":15609},[22596],{"type":31,"value":22597},"surface codes",{"type":31,"value":22599}," and a distance-5 color code on the 105-qubit Willow chip, and ran simulations extending to a distance-15 surface code involving roughly 40,000 parameters, to check whether the approach holds up at a scale beyond what current hardware supports.",{"type":21,"tag":22,"props":22601,"children":22602},{},[22603],{"type":31,"value":22604},"The results at the tested scale: a 20% reduction in logical error rate beyond what conventional calibration achieves, even after exhaustive manual tuning. Under artificially injected hardware drift, meant to simulate the kind of degradation a real system experiences over hours of operation, the reinforcement learning approach cut the logical error rate by 24% and made performance 2.4 times more stable than static calibration. Adding decoder-parameter adaptation on top pushed that to a 31% error reduction and 3.5 times more stability. On the distance-7 surface code specifically, the system reached a logical error rate of 7.72 × 10⁻⁴ per cycle, which the authors report as a recent record for that code family.",{"type":21,"tag":41,"props":22606,"children":22608},{"id":22607},"why-this-matters-more-than-the-specific-numbers",[22609],{"type":31,"value":22610},"Why this matters more than the specific numbers",{"type":21,"tag":22,"props":22612,"children":22613},{},[22614],{"type":31,"value":22615},"This is the first demonstration of reinforcement learning controlling error correction at the scale of a full error-corrected processor. Earlier experimental work applied similar reinforcement learning techniques to isolated gates or to bosonic codes, smaller, more contained systems. Running it across a full surface-code processor with over 1,000 live control parameters is a meaningfully harder engineering challenge, and the fact that it improved on hand-tuned calibration rather than merely matching it is the part worth sitting with.",{"type":21,"tag":22,"props":22617,"children":22618},{},[22619,22621,22626],{"type":31,"value":22620},"Drift is a problem that gets worse, not better, as machines scale up. A processor with a few dozen qubits is recalibrated by hand often enough to stay ahead of drift. A processor with thousands of qubits, the scale ",{"type":21,"tag":26,"props":22622,"children":22623},{"href":22128},[22624],{"type":31,"value":22625},"IBM's roadmap",{"type":31,"value":22627}," and others are explicitly building toward, cannot rely on manual tune-up passes keeping pace with how many parameters need adjusting. A system that recalibrates itself continuously, using data the machine produces anyway, is a more plausible path to keeping a much larger processor stable than scaling up the current manual approach.",{"type":21,"tag":41,"props":22629,"children":22631},{"id":22630},"what-is-still-unproven",[22632],{"type":31,"value":22633},"What is still unproven",{"type":21,"tag":22,"props":22635,"children":22636},{},[22637],{"type":31,"value":22638},"This finding was demonstrated on Google's own Willow hardware and published in a peer-reviewed venue, which puts it on firmer ground than a vendor press release. It does not yet tell you whether the same reinforcement learning approach transfers cleanly to a different qubit modality, a varied code family beyond the ones tested, or a processor an order of magnitude larger than Willow's 105 qubits. The distance-15 simulation results are exactly that: simulations, not a demonstration on real hardware at that scale.",{"type":21,"tag":22,"props":22640,"children":22641},{},[22642,22644,22649,22650,22655],{"type":31,"value":22643},"What is established is narrower and still significant: on real hardware, at the scale tested, learning from the error-correction data a processor already generates beats static calibration, and does so by a wide enough margin to set a new record for the surface code. Our ",{"type":21,"tag":26,"props":22645,"children":22646},{"href":15609},[22647],{"type":31,"value":22648},"error correction explainer",{"type":31,"value":3615},{"type":21,"tag":26,"props":22651,"children":22652},{"href":4082},[22653],{"type":31,"value":22654},"logical qubits and fault tolerance piece",{"type":31,"value":22656}," cover the broader context for why keeping a large processor calibrated is as hard a problem as building the qubits in the first place.",{"title":7,"searchDepth":168,"depth":168,"links":22658},[22659,22660,22661,22662],{"id":22563,"depth":168,"text":22566},{"id":22584,"depth":168,"text":22587},{"id":22607,"depth":168,"text":22610},{"id":22630,"depth":168,"text":22633},"content:blog:google-willow-reinforcement-learning-calibration.md","blog\u002Fgoogle-willow-reinforcement-learning-calibration.md","blog\u002Fgoogle-willow-reinforcement-learning-calibration",{"_path":22667,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":22668,"description":22669,"date":21805,"author":11,"tags":22670,"readingTime":273,"body":22671,"_type":1187,"_id":22766,"_source":1189,"_file":22767,"_stem":22768,"_extension":1192},"\u002Fblog\u002Fhrl-self-operating-silicon-quantum-processor","HRL Built a Silicon Quantum Processor That Runs Its Own Error Correction","HRL Laboratories published a silicon quantum processor in Nature that runs error correction with a control chip inside the cryostat, cutting the room-temperature wiring that limits how many qubits a machine holds.",[1207,14720,3396],{"type":18,"children":22672,"toc":22761},[22673,22684,22690,22695,22713,22719,22724,22729,22735,22746],{"type":21,"tag":22,"props":22674,"children":22675},{},[22676,22678,22682],{"type":31,"value":22677},"Most quantum computers depend on racks of room-temperature electronics wired down into a cryostat, one connection per control signal, per qubit. That wiring, not qubit physics, is one of the real limits on how many qubits a machine holds. On July 29, 2026, HRL Laboratories published a result in Nature that attacks this problem directly: a silicon quantum processor with its own control chip living inside the cryostat, running ",{"type":21,"tag":26,"props":22679,"children":22680},{"href":15828},[22681],{"type":31,"value":16062},{"type":31,"value":22683}," on its own.",{"type":21,"tag":41,"props":22685,"children":22687},{"id":22686},"what-hrl-built",[22688],{"type":31,"value":22689},"What HRL built",{"type":21,"tag":22,"props":22691,"children":22692},{},[22693],{"type":31,"value":22694},"The device holds 18 qubits. Next to them, inside the equivalent cryostat, sits a custom CMOS controller operating at around minus 450 degrees Fahrenheit, close to the qubits themselves rather than at room temperature. That controller generates every signal the error-correction routine needs and runs the whole cycle with no real-time input from outside the cold chamber. A high-density ribbon cable, 296 channels of superconducting niobium on polyimide, connects the pieces while managing the heat load a control chip normally cannot tolerate at those temperatures.",{"type":21,"tag":22,"props":22696,"children":22697},{},[22698,22700,22705,22706,22711],{"type":31,"value":22699},"The controller chip itself was manufactured at a commercial foundry, the same kind of manufacturing step behind ",{"type":21,"tag":26,"props":22701,"children":22702},{"href":18151},[22703],{"type":31,"value":22704},"IonQ's recent purchase of SkyWater Technology",{"type":31,"value":3615},{"type":21,"tag":26,"props":22707,"children":22708},{"href":18939},[22709],{"type":31,"value":22710},"GlobalFoundries' new silicon photonics funding",{"type":31,"value":22712},". None of these stories are about qubit physics. All three are about the unglamorous manufacturing and packaging work that decides whether a lab result becomes a machine you scale.",{"type":21,"tag":41,"props":22714,"children":22716},{"id":22715},"why-moving-the-controller-matters-more-than-it-sounds",[22717],{"type":31,"value":22718},"Why moving the controller matters more than it sounds",{"type":21,"tag":22,"props":22720,"children":22721},{},[22722],{"type":31,"value":22723},"Every wire running from room temperature into a cryostat carries heat with it, and heat is the enemy of a qubit that needs to stay near absolute zero. Today's largest machines manage this by keeping wiring counts down, which caps how many qubits fit on one system before the cooling and wiring overhead becomes the bottleneck rather than the qubits themselves. A control chip that lives in the cold zone and runs error correction locally removes a big share of that wiring, one wired connection per function instead of one per qubit.",{"type":21,"tag":22,"props":22725,"children":22726},{},[22727],{"type":31,"value":22728},"That is a real, checkable engineering claim, and it is a different kind of assertion than a qubit count or a fidelity figure. It says nothing about how good HRL's 18 qubits are compared to a superconducting or trapped-ion qubit elsewhere. It says something about whether a silicon-based approach scales its control infrastructure without the wiring problem growing linearly with qubit count.",{"type":21,"tag":41,"props":22730,"children":22732},{"id":22731},"where-this-sits-next-to-other-2026-scaling-work",[22733],{"type":31,"value":22734},"Where this sits next to other 2026 scaling work",{"type":21,"tag":22,"props":22736,"children":22737},{},[22738,22744],{"type":21,"tag":26,"props":22739,"children":22741},{"href":22740},"\u002Fblog\u002Fwarwick-quantum-phononic-links",[22742],{"type":31,"value":22743},"Warwick researchers published a different answer",{"type":31,"value":22745}," to a related scaling problem the identical week: how to let distant qubits on one chip communicate at all, rather than only their nearest neighbors. Read together, the two results point at the same underlying truth. Qubit count and gate fidelity get the headlines, but wiring, control electronics, and qubit-to-qubit communication are the problems that decide whether a design reaches a million qubits or stalls in the hundreds.",{"type":21,"tag":22,"props":22747,"children":22748},{},[22749,22751,22755,22756,22760],{"type":31,"value":22750},"HRL's result is a working 18-qubit device with a published, peer-reviewed result behind it, not a concept paper. That distinction is worth holding onto as you read coverage of scaling claims generally. A demonstrated device at a small scale is a different kind of evidence than a proposed mechanism aimed at a much larger one, even when both are genuine contributions. For more on how silicon-based qubits compare to the trapped-ion, superconducting, and photonic approaches competing for the same scaling problem, see our ",{"type":21,"tag":26,"props":22752,"children":22753},{"href":1100},[22754],{"type":31,"value":16080},{"type":31,"value":3615},{"type":21,"tag":26,"props":22757,"children":22758},{"href":21932},[22759],{"type":31,"value":22505},{"type":31,"value":6665},{"title":7,"searchDepth":168,"depth":168,"links":22762},[22763,22764,22765],{"id":22686,"depth":168,"text":22689},{"id":22715,"depth":168,"text":22718},{"id":22731,"depth":168,"text":22734},"content:blog:hrl-self-operating-silicon-quantum-processor.md","blog\u002Fhrl-self-operating-silicon-quantum-processor.md","blog\u002Fhrl-self-operating-silicon-quantum-processor",{"_path":22770,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":22771,"description":22772,"date":21805,"author":11,"tags":22773,"readingTime":309,"body":22774,"_type":1187,"_id":23002,"_source":1189,"_file":23003,"_stem":23004,"_extension":1192},"\u002Fblog\u002Fibm-hrl-laboratories-acquisition-explained","IBM Is Acquiring HRL Laboratories: What the Silicon Spin Qubit Deal Adds","IBM has signed a definitive agreement to acquire HRL Laboratories from Boeing and General Motors, days before HRL's own paper on a self-correcting 18-qubit silicon processor. Here is what the deal covers and what it does not.",[3396,1207,14720],{"type":18,"children":22775,"toc":22995},[22776,22790,22802,22808,22835,22854,22859,22865,22870,22875,22880,22886,22891,22896,22902,22907,22912,22918,22923,22939],{"type":21,"tag":22,"props":22777,"children":22778},{},[22779,22781,22788],{"type":31,"value":22780},"IBM announced on July 23, 2026 that it signed a definitive agreement to acquire HRL Laboratories, a research institution jointly owned by Boeing and General Motors, according to ",{"type":21,"tag":26,"props":22782,"children":22785},{"href":22783,"rel":22784},"https:\u002F\u002Fnewsroom.ibm.com\u002F2026-07-23-ibm-to-acquire-hrl-laboratories-to-power-the-future-of-quantum",[7123],[22786],{"type":31,"value":22787},"IBM's newsroom announcement",{"type":31,"value":22789},". Deal terms were not disclosed. The transaction is expected to close by the end of the third quarter of 2026, subject to regulatory approval. Boeing and GM will continue to partner with IBM on quantum applications after the deal closes.",{"type":21,"tag":22,"props":22791,"children":22792},{},[22793,22795,22800],{"type":31,"value":22794},"Six days later, HRL published the result that explains why IBM wanted the lab: a silicon quantum processor that runs its own error correction, ",{"type":21,"tag":26,"props":22796,"children":22797},{"href":22667},[22798],{"type":31,"value":22799},"which we covered here",{"type":31,"value":22801},". The timing is not a coincidence worth over-reading, since large acquisitions and peer-reviewed papers run on separate clocks, but it does mean the acquisition announcement and the technical proof point landed in the same week.",{"type":21,"tag":41,"props":22803,"children":22805},{"id":22804},"what-hrl-brings",[22806],{"type":31,"value":22807},"What HRL brings",{"type":21,"tag":22,"props":22809,"children":22810},{},[22811,22813,22820,22822,22827,22829,22834],{"type":31,"value":22812},"HRL specializes in silicon-spin qubit engineering, quantum sensing, and quantum materials, according to ",{"type":21,"tag":26,"props":22814,"children":22817},{"href":22815,"rel":22816},"https:\u002F\u002Fresearch.ibm.com\u002Fblog\u002Fhrl-laboratories-ibm",[7123],[22818],{"type":31,"value":22819},"IBM Research's own writeup",{"type":31,"value":22821},". That is a different qubit modality from IBM's existing superconducting transmon platform, the one behind ",{"type":21,"tag":26,"props":22823,"children":22824},{"href":22128},[22825],{"type":31,"value":22826},"Nighthawk",{"type":31,"value":22828}," and the ",{"type":21,"tag":26,"props":22830,"children":22831},{"href":19115},[22832],{"type":31,"value":22833},"Starling and Blue Jay roadmap",{"type":31,"value":6665},{"type":21,"tag":22,"props":22836,"children":22837},{},[22838,22840,22845,22847,22852],{"type":31,"value":22839},"Spin qubits encode information in the spin state of individual electrons held in quantum dots, tiny confined regions on a silicon chip. IBM Research describes HRL's most recent processor as 56 quantum dots configured to run as 18 ",{"type":21,"tag":26,"props":22841,"children":22842},{"href":3051},[22843],{"type":31,"value":22844},"qubits",{"type":31,"value":22846},", with a CMOS control chip inside the cryostat handling error correction locally instead of routing every signal through room-temperature electronics. Our ",{"type":21,"tag":26,"props":22848,"children":22849},{"href":22667},[22850],{"type":31,"value":22851},"earlier piece on that result",{"type":31,"value":22853}," goes into why moving the controller into the cold zone matters: it cuts the wiring count that otherwise limits how many qubits a machine holds.",{"type":21,"tag":22,"props":22855,"children":22856},{},[22857],{"type":31,"value":22858},"The pitch for spin qubits next to superconducting ones is manufacturing, not raw performance. Both approaches need cryogenic cooling, and both are built with silicon fabrication techniques closer to conventional chipmaking than to anything exotic. Spin qubits also occupy a smaller physical footprint per qubit than superconducting circuits, at least in principle, since a quantum dot is a nanometer-scale feature rather than a micron-scale resonator. Whether that footprint advantage survives contact with a full error-corrected system at scale is exactly the kind of claim this site treats skeptically until independent results confirm it. A demonstrated 18-qubit device is real progress. It is not yet evidence about what a 10,000-qubit spin system costs to build or run.",{"type":21,"tag":41,"props":22860,"children":22862},{"id":22861},"why-ibm-is-buying-instead-of-partnering",[22863],{"type":31,"value":22864},"Why IBM is buying instead of partnering",{"type":21,"tag":22,"props":22866,"children":22867},{},[22868],{"type":31,"value":22869},"IBM already runs the industry's broadest quantum platform on superconducting hardware. Betting on a second qubit modality by acquisition rather than an ordinary research partnership signals that IBM wants the engineering team and the intellectual property inside its own roadmap, not only access to a paper.",{"type":21,"tag":22,"props":22871,"children":22872},{},[22873],{"type":31,"value":22874},"This deal is not IBM's first move in that direction this year. In May 2026, IBM and the U.S. Department of Commerce announced Anderon, described as the first purpose-built quantum wafer foundry in the country, a 300-millimeter facility in Albany, New York, backed by a proposed $1 billion CHIPS Act award alongside $1 billion in IBM's own cash. Then on June 2, 2026, IBM committed more than $10 billion to quantum computing over five years, spanning research, manufacturing, ecosystem partnerships, and explicitly, mergers and acquisitions. The HRL deal, announced seven weeks later, is that acquisitions line item turning into an actual transaction.",{"type":21,"tag":22,"props":22876,"children":22877},{},[22878],{"type":31,"value":22879},"Read together, the sequence looks like a company building the manufacturing base first (Anderon), backing it with capital (the $10 billion commitment), and then acquiring a qubit modality it did not already have in-house (HRL). None of that guarantees the bet pays off. It does mean the acquisition fits a pattern rather than arriving as an isolated headline.",{"type":21,"tag":41,"props":22881,"children":22883},{"id":22882},"the-people-making-the-case",[22884],{"type":31,"value":22885},"The people making the case",{"type":21,"tag":22,"props":22887,"children":22888},{},[22889],{"type":31,"value":22890},"Jay Gambetta, IBM's Director of Research and an IBM Fellow, framed the deal as HRL helping IBM \"advance toward the frontiers of quantum innovation\" and strengthening its \"long-term plans to deliver quantum computing, sensing and networking advances,\" per IBM's announcement. HRL's president and CEO, Rob Vasquez, called the move the \"natural next chapter\" for a team that has spent years exploring how future quantum computers might be built at scales that seem impossible today.",{"type":21,"tag":22,"props":22892,"children":22893},{},[22894],{"type":31,"value":22895},"Those are the kinds of quotes every acquisition announcement produces, and they are worth reading as exactly that: the framing both companies agreed to put in front of the press, not an independent assessment. The parts of this deal that are checkable are the corporate facts (signed agreement, expected close date, the ownership change from Boeing and GM to IBM) and HRL's public research record. The parts that are not yet checkable are whether silicon-spin qubits reach useful scale faster inside IBM than they would have independently.",{"type":21,"tag":41,"props":22897,"children":22899},{"id":22898},"hrls-history-is-longer-than-the-quantum-story-suggests",[22900],{"type":31,"value":22901},"HRL's history is longer than the quantum story suggests",{"type":21,"tag":22,"props":22903,"children":22904},{},[22905],{"type":31,"value":22906},"HRL traces back to Hughes Research Laboratories, founded by Howard Hughes in 1948. Its best-known achievement predates quantum computing by six decades: Theodore Maiman built the world's first working laser at the lab's Malibu facility on May 16, 1960, using a synthetic ruby crystal. The lab reorganized as HRL Laboratories, LLC in 1997, after Hughes Aircraft's ownership was restructured, and has operated since under joint ownership by Boeing and General Motors, serving both commercial and U.S. government customers across sensing, communications, advanced manufacturing, and materials science, not only quantum computing.",{"type":21,"tag":22,"props":22908,"children":22909},{},[22910],{"type":31,"value":22911},"That history matters for one reason: HRL is an established, credentialed lab with a long track record of peer-reviewed, independently reproduced results, not a startup selling a roadmap. When it publishes a Nature paper, as it did on the self-operating silicon processor, the result carries the weight of that track record. That is a different kind of credibility than a press release, and it is worth distinguishing the two when reading coverage of this acquisition.",{"type":21,"tag":41,"props":22913,"children":22915},{"id":22914},"what-to-watch-once-the-deal-closes",[22916],{"type":31,"value":22917},"What to watch once the deal closes",{"type":21,"tag":22,"props":22919,"children":22920},{},[22921],{"type":31,"value":22922},"The close itself, expected by the end of Q3 2026, is the first checkable milestone. After that, watch whether IBM folds HRL's spin-qubit work into a named point on its public roadmap, the way Starling and Blue Jay are already named and dated, or keeps it as a longer-horizon research bet without a committed delivery date. Also watch whether Anderon's foundry plans expand beyond superconducting wafers to cover spin-qubit fabrication, since that would be the concrete sign that IBM intends to manufacture both modalities at scale rather than run HRL as a separate research track.",{"type":21,"tag":22,"props":22924,"children":22925},{},[22926,22928,22932,22933,22937],{"type":31,"value":22927},"For now, the honest summary is narrower than the headlines: IBM bought a credentialed silicon-spin qubit research team and its intellectual property, for an undisclosed price, weeks after committing capital to exactly this kind of move. The technology bet is real. Whether it changes IBM's timeline to a useful quantum computer is not something this announcement, or HRL's paper, answers on its own. Our ",{"type":21,"tag":26,"props":22929,"children":22930},{"href":1100},[22931],{"type":31,"value":16080},{"type":31,"value":3615},{"type":21,"tag":26,"props":22934,"children":22935},{"href":21932},[22936],{"type":31,"value":22505},{"type":31,"value":22938}," are the places to track how this compares against the trapped-ion, photonic, and neutral-atom approaches other companies are betting on instead.",{"type":21,"tag":22,"props":22940,"children":22941},{},[22942,22947,22949,22955,22956,22962,22963,22970,22971,22978,22979,22986,22987,22994],{"type":21,"tag":16802,"props":22943,"children":22944},{},[22945],{"type":31,"value":22946},"Sources:",{"type":31,"value":22948}," ",{"type":21,"tag":26,"props":22950,"children":22952},{"href":22783,"rel":22951},[7123],[22953],{"type":31,"value":22954},"IBM newsroom announcement",{"type":31,"value":259},{"type":21,"tag":26,"props":22957,"children":22959},{"href":22815,"rel":22958},[7123],[22960],{"type":31,"value":22961},"IBM Research blog",{"type":31,"value":259},{"type":21,"tag":26,"props":22964,"children":22967},{"href":22965,"rel":22966},"https:\u002F\u002Fsiliconangle.com\u002F2026\u002F07\u002F23\u002Fibm-acquires-quantum-computing-research-lab-hrl\u002F",[7123],[22968],{"type":31,"value":22969},"SiliconANGLE",{"type":31,"value":259},{"type":21,"tag":26,"props":22972,"children":22975},{"href":22973,"rel":22974},"https:\u002F\u002Fwww.govconwire.com\u002Farticles\u002Fibm-buy-hrl-laboratories-quantum-computing",[7123],[22976],{"type":31,"value":22977},"GovConWire",{"type":31,"value":259},{"type":21,"tag":26,"props":22980,"children":22983},{"href":22981,"rel":22982},"https:\u002F\u002Fnewsroom.ibm.com\u002F2026-06-02-ibm-commits-more-than-10-billion-to-quantum-computing,-funding-its-roadmap-from-todays-leading-systems-to-the-worlds-first-fault-tolerant-quantum-computers",[7123],[22984],{"type":31,"value":22985},"IBM's $10 billion quantum investment announcement",{"type":31,"value":259},{"type":21,"tag":26,"props":22988,"children":22991},{"href":22989,"rel":22990},"https:\u002F\u002Fwww.hrl.com\u002Fabout\u002Fhistory",[7123],[22992],{"type":31,"value":22993},"HRL Laboratories history",{"type":31,"value":6665},{"title":7,"searchDepth":168,"depth":168,"links":22996},[22997,22998,22999,23000,23001],{"id":22804,"depth":168,"text":22807},{"id":22861,"depth":168,"text":22864},{"id":22882,"depth":168,"text":22885},{"id":22898,"depth":168,"text":22901},{"id":22914,"depth":168,"text":22917},"content:blog:ibm-hrl-laboratories-acquisition-explained.md","blog\u002Fibm-hrl-laboratories-acquisition-explained.md","blog\u002Fibm-hrl-laboratories-acquisition-explained",{"_path":22128,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":23006,"description":23007,"date":21805,"author":11,"tags":23008,"readingTime":16,"body":23009,"_type":1187,"_id":23156,"_source":1189,"_file":23157,"_stem":23158,"_extension":1192},"IBM Claimed Quantum Advantage Three Times in One Day: What Each Result Shows","On July 30, 2026, IBM announced three separate quantum advantage results with three different partners. Here is what each one demonstrated, and why the verification method matters more than the headline.",[3396,1207,14],{"type":18,"children":23010,"toc":23149},[23011,23016,23022,23033,23045,23051,23056,23061,23067,23072,23077,23083,23104,23109,23115,23120],{"type":21,"tag":22,"props":23012,"children":23013},{},[23014],{"type":31,"value":23015},"On July 30, 2026, IBM announced three quantum advantage results in a single day. Three different partners. Three different physics problems. Three different verification methods. Notice that pattern before you read any single headline. IBM Research director Jay Gambetta called this \"the quantum advantage era.\" Treat that claim the way we treat every vendor headline on this site. Take the pieces apart. Check each one. Decide what it means for you.",{"type":21,"tag":41,"props":23017,"children":23019},{"id":23018},"result-one-ibm-and-the-university-of-chicago-logical-qubits-at-scale",[23020],{"type":31,"value":23021},"Result one: IBM and the University of Chicago, logical qubits at scale",{"type":21,"tag":22,"props":23023,"children":23024},{},[23025,23027,23031],{"type":31,"value":23026},"The team ran an encoded circuit using 70 ",{"type":21,"tag":26,"props":23028,"children":23029},{"href":15857},[23030],{"type":31,"value":16501},{"type":31,"value":23032}," through thousands of logical operations, with a logical error rate roughly 10 times lower than the physical error rate underneath it. The task finished in about 15 minutes on IBM hardware. Leading classical simulation methods faced runtimes described as prohibitive for the same task.",{"type":21,"tag":22,"props":23034,"children":23035},{},[23036,23038,23043],{"type":31,"value":23037},"Notice what the coverage did not state: the physical qubit count behind those 70 logical qubits. Our ",{"type":21,"tag":26,"props":23039,"children":23040},{"href":4082},[23041],{"type":31,"value":23042},"companion piece on logical qubits and fault tolerance",{"type":31,"value":23044}," covers why that ratio, not the logical qubit count alone, decides whether a result is efficient or brute-forced. Until that number surfaces, read \"70 logical qubits\" as a real result with one open question attached.",{"type":21,"tag":41,"props":23046,"children":23048},{"id":23047},"outcome-two-ibm-and-qedma-a-real-physics-question-checked-two-ways",[23049],{"type":31,"value":23050},"Outcome two: IBM and Qedma, a real physics question checked two ways",{"type":21,"tag":22,"props":23052,"children":23053},{},[23054],{"type":31,"value":23055},"This team simulated a 74-qubit two-dimensional Floquet Ising model on IBM Heron processors, using Qedma's QESEM error-mitigation software. RIKEN contributed, and BlueQubit supported the study. The team compared results against classical simulation methods, including Japan's Fugaku supercomputer, and found the quantum results held steady past the point where classical approaches stopped agreeing with each other.",{"type":21,"tag":22,"props":23057,"children":23058},{},[23059],{"type":31,"value":23060},"The trust-building step here is the part worth remembering. Two independent error-mitigation estimators, one heuristic and one rigorous, agreed with each other. The team then partially reproduced the experiment on a Quantinuum system, a competitor's hardware, and got consistent results. Cross-platform agreement is a stronger form of evidence than one vendor reporting a number from its own machine.",{"type":21,"tag":41,"props":23062,"children":23064},{"id":23063},"result-three-ibm-and-algorithmiq-checking-an-solution-nothing-else-verifies",[23065],{"type":31,"value":23066},"Result three: IBM and Algorithmiq, checking an solution nothing else verifies",{"type":21,"tag":22,"props":23068,"children":23069},{},[23070],{"type":31,"value":23071},"This is the hardest version of the issue. When no classical computer verifies a result at all, how do you know the quantum answer is right? IBM and Algorithmiq simulated a heterogeneous quantum material on IBM Heron hardware and built their case on noise modeling, error mitigation, and cross-platform testing rather than a classical ground truth.",{"type":21,"tag":22,"props":23073,"children":23074},{},[23075],{"type":31,"value":23076},"Algorithmiq also open-sourced a classical simulation package called monoprop, built specifically so outside researchers independently test future advantage claims instead of taking a press release at its word. That release matters more than it might look. It is the one part of this announcement any reader of this site is able to check directly.",{"type":21,"tag":41,"props":23078,"children":23080},{"id":23079},"why-the-trust-framing-matters-more-than-the-speed-framing",[23081],{"type":31,"value":23082},"Why the trust framing matters more than the speed framing",{"type":21,"tag":22,"props":23084,"children":23085},{},[23086,23088,23094,23096,23102],{"type":31,"value":23087},"\"Beyond classical simulation\" is not a fresh assertion. Google made a related claim in 2019 with its ",{"type":21,"tag":26,"props":23089,"children":23091},{"href":23090},"\u002Fresearch\u002Fgoogle-quantum-supremacy-2019",[23092],{"type":31,"value":23093},"quantum supremacy outcome",{"type":31,"value":23095},", and better classical algorithms later closed part of that gap. IBM made a related but weaker claim in 2023 with ",{"type":21,"tag":26,"props":23097,"children":23099},{"href":23098},"\u002Fresearch\u002Fibm-quantum-utility-2023",[23100],{"type":31,"value":23101},"quantum utility",{"type":31,"value":23103},", which did not require beating classical computation outright, only being useful and comparable to it.",{"type":21,"tag":22,"props":23105,"children":23106},{},[23107],{"type":31,"value":23108},"This round targets a harder bar than either: not only \"we finished faster than classical methods,\" but \"here is independently checkable evidence for why you should trust the answer.\" That second half, the verification method, is the actual news in all three results. The raw qubit and gate counts are the part every previous announcement already led with.",{"type":21,"tag":41,"props":23110,"children":23112},{"id":23111},"what-happens-next",[23113],{"type":31,"value":23114},"What happens next",{"type":21,"tag":22,"props":23116,"children":23117},{},[23118],{"type":31,"value":23119},"Peer review and independent replication are the steps that eventually narrowed Google's 2019 assertion, and they are the steps to watch for here too. Three equivalent-day press announcements are not the same thing as three peer-reviewed, independently replicated results. Given Algorithmiq's open monoprop release, at least one path to that independent check already exists. Watch whether other research groups pick it up and whether their numbers match.",{"type":21,"tag":22,"props":23121,"children":23122},{},[23123,23125,23129,23130,23134,23136,23141,23142,23147],{"type":31,"value":23124},"For a broader sense of how IBM's hardware and error-mitigation approach compares with competing modalities, see our ",{"type":21,"tag":26,"props":23126,"children":23127},{"href":1100},[23128],{"type":31,"value":16080},{"type":31,"value":3615},{"type":21,"tag":26,"props":23131,"children":23132},{"href":21932},[23133],{"type":31,"value":22505},{"type":31,"value":23135},". For the mechanics behind logical qubits and why overhead numbers matter more than headline qubit counts, our ",{"type":21,"tag":26,"props":23137,"children":23138},{"href":4082},[23139],{"type":31,"value":23140},"fault tolerance explainer",{"type":31,"value":3615},{"type":21,"tag":26,"props":23143,"children":23144},{"href":3573},[23145],{"type":31,"value":23146},"Quantinuum Helios piece",{"type":31,"value":23148}," cover the same questions from a different vendor's claims.",{"title":7,"searchDepth":168,"depth":168,"links":23150},[23151,23152,23153,23154,23155],{"id":23018,"depth":168,"text":23021},{"id":23047,"depth":168,"text":23050},{"id":23063,"depth":168,"text":23066},{"id":23079,"depth":168,"text":23082},{"id":23111,"depth":168,"text":23114},"content:blog:ibm-quantum-advantage-triple-announcement-2026.md","blog\u002Fibm-quantum-advantage-triple-announcement-2026.md","blog\u002Fibm-quantum-advantage-triple-announcement-2026",{"_path":10546,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":23160,"description":23161,"date":21805,"author":11,"tags":23162,"readingTime":273,"body":23163,"_type":1187,"_id":23277,"_source":1189,"_file":23278,"_stem":23279,"_extension":1192},"Infleqtion Will Put a 50-Logical-Qubit Machine in Chicago by 2027","Infleqtion is deploying Sqale, a neutral-atom quantum computer targeting 50 logical qubits, at the Illinois Quantum and Microelectronics Park in 2027. The company is also opening a Chicago center aimed specifically at energy-grid optimization problems.",[1207,3396],{"type":18,"children":23164,"toc":23272},[23165,23186,23192,23210,23229,23235,23240,23245,23251,23256],{"type":21,"tag":22,"props":23166,"children":23167},{},[23168,23170,23177,23178,23184],{"type":31,"value":23169},"On July 21, 2026, Infleqtion announced it will deploy a fault-tolerant, neutral-atom quantum computer named Sqale at the Illinois Quantum and Microelectronics Park (IQMP), with hardware delivery planned for 2027, according to ",{"type":21,"tag":26,"props":23171,"children":23174},{"href":23172,"rel":23173},"https:\u002F\u002Finfleqtion.com\u002Finfleqtion-to-deploy-fault-tolerant-neutral-atom-quantum-computer-in-illinois\u002F",[7123],[23175],{"type":31,"value":23176},"the company's own announcement",{"type":31,"value":3615},{"type":21,"tag":26,"props":23179,"children":23182},{"href":23180,"rel":23181},"https:\u002F\u002Fthequantuminsider.com\u002F2026\u002F07\u002F23\u002Finfleqtion-neutral-atom-quantum-computer-illinois\u002F",[7123],[23183],{"type":31,"value":22550},{"type":31,"value":23185},". What makes this worth a article rather than a routine roadmap update is how specific the commitment is: a named site, a named delivery year, and a named application area the company is building toward, rather than a general statement about future ambitions.",{"type":21,"tag":41,"props":23187,"children":23189},{"id":23188},"what-sqale-is-supposed-to-do",[23190],{"type":31,"value":23191},"What Sqale is supposed to do",{"type":21,"tag":22,"props":23193,"children":23194},{},[23195,23197,23201,23203,23208],{"type":31,"value":23196},"Sqale is designed to demonstrate more than 50 ",{"type":21,"tag":26,"props":23198,"children":23199},{"href":15857},[23200],{"type":31,"value":16501},{"type":31,"value":23202}," at launch, with a stated path to 100, built on a physical architecture Infleqtion says scales beyond 1,000 physical qubits. Like other ",{"type":21,"tag":26,"props":23204,"children":23205},{"href":1100},[23206],{"type":31,"value":23207},"neutral-atom systems",{"type":31,"value":23209},", it uses lasers to trap and control individual atoms, and Infleqtion says the system will couple with NVIDIA's NVQLink for low-latency communication with classical GPU hardware, a pairing several vendors are now building toward as quantum systems increasingly need fast classical co-processing for error correction and control.",{"type":21,"tag":22,"props":23211,"children":23212},{},[23213,23215,23220,23222,23227],{"type":31,"value":23214},"Fifty logical qubits would be a meaningful jump if it holds up. For comparison, ",{"type":21,"tag":26,"props":23216,"children":23217},{"href":3573},[23218],{"type":31,"value":23219},"Quantinuum's Helios system claims 48 logical qubits",{"type":31,"value":23221}," from roughly 96 physical qubits, and ",{"type":21,"tag":26,"props":23223,"children":23224},{"href":3712},[23225],{"type":31,"value":23226},"QuEra reported 96 logical qubits",{"type":31,"value":23228}," on 448 physical qubits in a January 2026 Nature paper. Sqale's ratio, more than 50 logical qubits on an architecture scaling past 1,000 physical qubits, would sit at a notably higher overhead than either of those results, at least based on the numbers disclosed so far. None of these figures are directly comparable without knowing the exact error rates and code distances each system targets, and Sqale's numbers are a 2027 target, not a measured finding.",{"type":21,"tag":41,"props":23230,"children":23232},{"id":23231},"the-energy-grid-angle-is-the-more-interesting-part",[23233],{"type":31,"value":23234},"The energy grid angle is the more interesting part",{"type":21,"tag":22,"props":23236,"children":23237},{},[23238],{"type":31,"value":23239},"Infleqtion is also opening a Chicago Quantum Innovation Center focused specifically on applying quantum optimization to the electrical grid: unit commitment (deciding which power plants run when), contingency analysis (planning for equipment failures), and nuclear fuel loading. Partners named in the announcement include the National Quantum Algorithm Center, University of Chicago professor Fred Chong, Constellation Energy, and EPRI, alongside existing ARPA-E funding for a related project called ENCODE.",{"type":21,"tag":22,"props":23241,"children":23242},{},[23243],{"type":31,"value":23244},"CTO Pranav Gokhale framed the choice deliberately: \"Energy is one of the best proving grounds for quantum computing because the problems are consequential and immediate.\" That is a more specific and checkable claim than most quantum-for-industry pitches, since grid optimization problems already have well-defined classical benchmarks. If a quantum approach beats those benchmarks on a real utility's data, that is a concrete result. If it does not, that will also be visible, which is more accountability than most quantum use-case announcements carry.",{"type":21,"tag":41,"props":23246,"children":23248},{"id":23247},"the-site-and-partners-are-confirmed-the-qubit-target-is-a-projection",[23249],{"type":31,"value":23250},"The site and partners are confirmed, the qubit target is a projection",{"type":21,"tag":22,"props":23252,"children":23253},{},[23254],{"type":31,"value":23255},"The site, the delivery year, and the named partners are concrete facts. The 50-logical-qubit target and the path to 100 are Infleqtion's own projections for a system that hasn't shipped yet. Infleqtion has a track record to weigh those projections against: the company already operates the only 100-physical-qubit neutral-atom system at the UK's National Quantum Computing Centre, plus a deployment in Japan, working hardware in the field already rather than a pre-revenue startup making a first claim.",{"type":21,"tag":22,"props":23257,"children":23258},{},[23259,23261,23265,23266,23270],{"type":31,"value":23260},"CEO Matthew Kinsella called the deployment \"a landmark moment for quantum computing in Chicago,\" which is the kind of framing every regional deployment announcement uses about itself. The part worth tracking independently of that framing is whether Sqale ships on the stated 2027 timeline, and whether the energy-grid partnership produces a published result against a real utility's optimization problem rather than a simulated one. Our ",{"type":21,"tag":26,"props":23262,"children":23263},{"href":1100},[23264],{"type":31,"value":16080},{"type":31,"value":3615},{"type":21,"tag":26,"props":23267,"children":23268},{"href":21932},[23269],{"type":31,"value":22505},{"type":31,"value":23271}," track how neutral-atom systems like this one compare against the trapped-ion, superconducting, and photonic platforms other companies are betting on.",{"title":7,"searchDepth":168,"depth":168,"links":23273},[23274,23275,23276],{"id":23188,"depth":168,"text":23191},{"id":23231,"depth":168,"text":23234},{"id":23247,"depth":168,"text":23250},"content:blog:infleqtion-sqale-illinois-quantum-park.md","blog\u002Finfleqtion-sqale-illinois-quantum-park.md","blog\u002Finfleqtion-sqale-illinois-quantum-park",{"_path":18151,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":23281,"description":23282,"date":21805,"author":11,"tags":23283,"readingTime":309,"body":23284,"_type":1187,"_id":23424,"_source":1189,"_file":23425,"_stem":23426,"_extension":1192},"IonQ Bought a $1.8 Billion Semiconductor Foundry: Here Is What Changes","IonQ completed its acquisition of SkyWater Technology, the largest US-based semiconductor foundry, and calls itself the only vertically integrated full-stack quantum platform company. Here is what that claim means and what it does not.",[3396,1207,16315],{"type":18,"children":23285,"toc":23416},[23286,23300,23306,23311,23317,23322,23327,23332,23338,23343,23360,23366,23371,23377,23395,23399],{"type":21,"tag":22,"props":23287,"children":23288},{},[23289,23291,23298],{"type":31,"value":23290},"IonQ completed its acquisition of SkyWater Technology on July 31, 2026. SkyWater is the largest semiconductor foundry operating entirely inside the United States. IonQ announced the deal in January 2026. Total equity value: roughly ",{"type":21,"tag":26,"props":23292,"children":23295},{"href":23293,"rel":23294},"https:\u002F\u002Finvestors.ionq.com\u002Fnews\u002Fnews-details\u002F2026\u002FIonQ-Completes-Acquisition-of-SkyWater-Technology\u002Fdefault.aspx",[7123],[23296],{"type":31,"value":23297},"$1.8 billion",{"type":31,"value":23299},". SkyWater shareholders got $15.00 in cash plus IonQ stock, subject to a collar, for each share held. IonQ calls the combined company the only vertically integrated full-stack quantum platform company. That claim is specific and checkable. Read the parts separately before you accept the headline.",{"type":21,"tag":41,"props":23301,"children":23303},{"id":23302},"what-skywater-builds",[23304],{"type":31,"value":23305},"What SkyWater builds",{"type":21,"tag":22,"props":23307,"children":23308},{},[23309],{"type":31,"value":23310},"SkyWater does not chase the newest logic node against TSMC or Samsung. Its specialty is foundational semiconductor nodes and advanced packaging: mature process technology, not leading edge. Facilities sit in Minnesota, Florida, and Texas. Customers include commercial buyers and federal defense agencies. This distinction decides whether the acquisition targets what IonQ's hardware needs.",{"type":21,"tag":41,"props":23312,"children":23314},{"id":23313},"the-part-of-ionqs-stack-this-touches",[23315],{"type":31,"value":23316},"The part of IonQ's stack this touches",{"type":21,"tag":22,"props":23318,"children":23319},{},[23320],{"type":31,"value":23321},"Most coverage of this deal skipped one detail. A trapped-ion qubit is a single atom held in an electromagnetic field. Nobody fabricates the qubit. Ytterbium and barium ions occur naturally. They are identical to each other. No factory improves them. So what does a semiconductor foundry have to do with trapped-ion hardware?",{"type":21,"tag":22,"props":23323,"children":23324},{},[23325],{"type":31,"value":23326},"Everything around the ion. The ion trap chip is a microfabricated electrode structure that confines and shuttles ions across a surface. It is a real semiconductor device. So are the photonic components used for laser addressing and readout, and the cryogenic and RF control electronics that drive the whole system. None of that needs a 3-nanometer process. It needs the mature-node fabrication and advanced packaging SkyWater already sells to other industries.",{"type":21,"tag":22,"props":23328,"children":23329},{},[23330],{"type":31,"value":23331},"Read that way, the acquisition targets a real supply chain need. IonQ is pulling a piece of its existing supply chain in-house instead of buying it from a third party.",{"type":21,"tag":41,"props":23333,"children":23335},{"id":23334},"what-vertically-integrated-means-precisely",[23336],{"type":31,"value":23337},"What \"vertically integrated\" means, precisely",{"type":21,"tag":22,"props":23339,"children":23340},{},[23341],{"type":31,"value":23342},"No other quantum hardware business owns its foundry outright as a subsidiary. IBM has a long history with its own fabs and partners with Albany NanoTech. PsiQuantum's photonic chips come from a partnership with GlobalFoundries, not an owned subsidiary. Quantinuum's manufacturing traces back through Honeywell's aerospace and controls businesses. Owned-and-operated differs from having a good manufacturing partner, and IonQ's claim holds up on that narrow point.",{"type":21,"tag":22,"props":23344,"children":23345},{},[23346,23348,23352,23353,23358],{"type":31,"value":23347},"The assertion does not hold up as a physics claim. Owning a foundry produces no new logical qubit and no fidelity gain by itself. Our ",{"type":21,"tag":26,"props":23349,"children":23350},{"href":1100},[23351],{"type":31,"value":16080},{"type":31,"value":19956},{"type":21,"tag":26,"props":23354,"children":23355},{"href":19066},[23356],{"type":31,"value":23357},"SDK and modality comparison",{"type":31,"value":23359}," cover how IonQ stacks up against competitors across every technology, not only this one.",{"type":21,"tag":41,"props":23361,"children":23363},{"id":23362},"why-the-size-of-the-deal-matters",[23364],{"type":31,"value":23365},"Why the size of the deal matters",{"type":21,"tag":22,"props":23367,"children":23368},{},[23369],{"type":31,"value":23370},"$1.8 billion is large next to IonQ's quantum computing revenue history. A large share of the payment was IonQ stock, not cash. SkyWater brings its own profitable semiconductor business, serving customers who have nothing to do with quantum computing. After this deal, IonQ is not a pure quantum computing company anymore. A real share of its revenue now comes from ordinary foundry services. Whether that helps the hardware roadmap or distracts from it is an open question. Future earnings reports will answer that, not this press release.",{"type":21,"tag":41,"props":23372,"children":23374},{"id":23373},"the-domestic-supply-chain-story-holds-up-best",[23375],{"type":31,"value":23376},"The domestic supply chain story holds up best",{"type":21,"tag":22,"props":23378,"children":23379},{},[23380,23382,23387,23388,23393],{"type":31,"value":23381},"SkyWater's federal defense customers and its US-only footprint match a pattern we track elsewhere on this site: the federal push toward domestically controlled, security-vetted quantum and cryptographic infrastructure. See our posts on the ",{"type":21,"tag":26,"props":23383,"children":23384},{"href":16720},[23385],{"type":31,"value":23386},"accelerated post-quantum migration deadlines",{"type":31,"value":22828},{"type":21,"tag":26,"props":23389,"children":23390},{"href":19115},[23391],{"type":31,"value":23392},"quantum benchmarking executive order",{"type":31,"value":23394},". A quantum hardware vendor with a fully domestic, defense-cleared fabrication and packaging pipeline has a real selling point with government buyers that competitors sourcing through shared or offshore fabs do not have. This part of IonQ's case holds up under scrutiny. It addresses a real, separate requirement: supply chain security, which increasingly gates government contracts regardless of qubit count.",{"type":21,"tag":41,"props":23396,"children":23397},{"id":3461},[23398],{"type":31,"value":3464},{"type":21,"tag":22,"props":23400,"children":23401},{},[23402,23404,23408,23410,23414],{"type":31,"value":23403},"A foundry shortens iteration cycles and cuts supply chain risk. It does not improve gate fidelity, connectivity, or logical qubit overhead on its own. Those are the numbers that show whether trapped-ion hardware is progressing. We cover them in ",{"type":21,"tag":26,"props":23405,"children":23406},{"href":4082},[23407],{"type":31,"value":15618},{"type":31,"value":23409}," and in our look at ",{"type":21,"tag":26,"props":23411,"children":23412},{"href":3573},[23413],{"type":31,"value":16552},{"type":31,"value":23415},". The real test of this acquisition is whether IonQ's next generation of Aria- or Forte-class systems ships faster, or with better specs, than it would have on the old supply chain. That is a multi-year claim, not a same-day one. Until the data arrives, treat \"vertically integrated full-stack quantum platform company\" the way you would treat any vendor headline. Check the structural fact first. SkyWater is now a wholly owned subsidiary. Set the framing aside until results confirm it.",{"title":7,"searchDepth":168,"depth":168,"links":23417},[23418,23419,23420,23421,23422,23423],{"id":23302,"depth":168,"text":23305},{"id":23313,"depth":168,"text":23316},{"id":23334,"depth":168,"text":23337},{"id":23362,"depth":168,"text":23365},{"id":23373,"depth":168,"text":23376},{"id":3461,"depth":168,"text":3464},"content:blog:ionq-skywater-acquisition-explained.md","blog\u002Fionq-skywater-acquisition-explained.md","blog\u002Fionq-skywater-acquisition-explained",{"_path":23428,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":23429,"description":23430,"date":21805,"author":11,"tags":23431,"readingTime":273,"body":23432,"_type":1187,"_id":23521,"_source":1189,"_file":23522,"_stem":23523,"_extension":1192},"\u002Fblog\u002Fiqm-qiss-shallow-circuit-qaoa","IQM's QISS Technique Beat Deep QAOA Using a Shallower Circuit and Classical Post-Processing","IQM ran Quantum-Informed Surrogate Sampling on its 54-qubit Emerald processor and reports that a 3-layer QAOA circuit, combined with classical post-processing, outperformed a 17-layer vanilla QAOA circuit on MaxCut.",[1206,2041,13882],{"type":18,"children":23433,"toc":23515},[23434,23445,23451,23456,23462,23481,23487,23499,23503],{"type":21,"tag":22,"props":23435,"children":23436},{},[23437,23439,23443],{"type":31,"value":23438},"IQM published results on August 1, 2026, from a technique it calls Quantum-Informed Surrogate Sampling, or QISS, run on its 54-qubit Emerald processor. The headline comparison: a QISS setup using a 3-layer (p=3) QAOA circuit reportedly outperformed a standard 17-layer (p=17) QAOA circuit on MaxCut, on average. If you've read our ",{"type":21,"tag":26,"props":23440,"children":23441},{"href":1244},[23442],{"type":31,"value":10440},{"type":31,"value":23444},", that gap should stand out immediately. Circuit depth is one of the main things that kills near-term quantum algorithms on noisy hardware, since every added layer adds more opportunities for error. A method that gets QAOA-level results at a fraction of the depth is worth understanding properly rather than skimming past.",{"type":21,"tag":41,"props":23446,"children":23448},{"id":23447},"what-qiss-does",[23449],{"type":31,"value":23450},"What QISS does",{"type":21,"tag":22,"props":23452,"children":23453},{},[23454],{"type":31,"value":23455},"The core idea is a shift in what the quantum circuit is for. Standard QAOA tries to directly sample the answer: run a deep circuit, measure, and hope the output distribution is concentrated on good solutions. QISS instead uses a shallow circuit to generate statistical data, specifically low-order correlators, that a classical optimizer then uses to search for a solution. IQM's framing is that a shallow circuit's effective capacity exceeds a much deeper one once you add this kind of classical post-processing, because the quantum hardware's job shrinks to producing informative statistics rather than the entire answer. The method requires only O(N) low-order correlators, meaning the amount of quantum-generated data needed scales linearly with the problem size rather than growing combinatorially.",{"type":21,"tag":41,"props":23457,"children":23459},{"id":23458},"why-shallower-matters-more-than-the-maxcut-number-itself",[23460],{"type":31,"value":23461},"Why shallower matters more than the MaxCut number itself",{"type":21,"tag":22,"props":23463,"children":23464},{},[23465,23467,23472,23474,23479],{"type":31,"value":23466},"MaxCut is the standard toy benchmark for this class of algorithm, useful for controlled comparison but not itself the point of the result. The point is what shallow circuits open up on real, noisy hardware. Deeper circuits accumulate gate errors and decoherence faster than today's NISQ-era error correction compensates for, which is the same problem our ",{"type":21,"tag":26,"props":23468,"children":23469},{"href":19047},[23470],{"type":31,"value":23471},"error mitigation guide",{"type":31,"value":23473}," covers from a different angle, and the same reason ",{"type":21,"tag":26,"props":23475,"children":23476},{"href":18581},[23477],{"type":31,"value":23478},"shot-reduction techniques",{"type":31,"value":23480}," matter for variational algorithms generally. A technique that reaches deep-circuit-quality output from a shallow circuit is attacking the noise issue structurally instead of patching around it after the fact.",{"type":21,"tag":41,"props":23482,"children":23484},{"id":23483},"what-to-check-before-taking-the-comparison-at-face-value",[23485],{"type":31,"value":23486},"What to check before taking the comparison at face value",{"type":21,"tag":22,"props":23488,"children":23489},{},[23490,23492,23497],{"type":31,"value":23491},"\"Outperforms on average\" invites the obvious question: average over what problem sizes, and by what margin? IQM's own release frames this as noise-resilience validation on real hardware rather than a simulated finding, which is a meaningfully stronger assertion than a purely theoretical proposal, but the comparison is still against vanilla QAOA specifically, not against every classical or hybrid solver. Our ",{"type":21,"tag":26,"props":23493,"children":23494},{"href":3138},[23495],{"type":31,"value":23496},"quantum machine learning reality check",{"type":31,"value":23498}," makes the general point that near-term quantum advantage claims need a genuine classical baseline, not only a same-hardware quantum comparison, to mean much. Whether QISS beats the best classical MaxCut heuristics on the identical instances is the harder and more useful question, and it isn't the one this result answers.",{"type":21,"tag":41,"props":23500,"children":23501},{"id":3461},[23502],{"type":31,"value":3464},{"type":21,"tag":22,"props":23504,"children":23505},{},[23506,23508,23513],{"type":31,"value":23507},"Two things would move this from \"promising technique validated on one benchmark\" to \"practically useful\": results on problem instances beyond MaxCut, particularly the kind of real-world graph and portfolio problems covered in our ",{"type":21,"tag":26,"props":23509,"children":23510},{"href":16160},[23511],{"type":31,"value":23512},"quantum portfolio optimization business case",{"type":31,"value":23514},", and a head-to-head comparison against strong classical solvers rather than only against deeper QAOA circuits.",{"title":7,"searchDepth":168,"depth":168,"links":23516},[23517,23518,23519,23520],{"id":23447,"depth":168,"text":23450},{"id":23458,"depth":168,"text":23461},{"id":23483,"depth":168,"text":23486},{"id":3461,"depth":168,"text":3464},"content:blog:iqm-qiss-shallow-circuit-qaoa.md","blog\u002Fiqm-qiss-shallow-circuit-qaoa.md","blog\u002Fiqm-qiss-shallow-circuit-qaoa",{"_path":23525,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":23526,"description":23527,"date":21805,"author":11,"tags":23528,"readingTime":273,"body":23529,"_type":1187,"_id":23638,"_source":1189,"_file":23639,"_stem":23640,"_extension":1192},"\u002Fblog\u002Fpsiquantum-darpa-quantum-benchmarking-125-million","DARPA Is Paying PsiQuantum $125 Million to Check Its Own Claims","PsiQuantum signed an expanded $125 million agreement with DARPA's Quantum Benchmarking Initiative, its largest U.S. government contract to date. The money funds outside verification of PsiQuantum's fault-tolerance roadmap, not new research.",[3396,1207],{"type":18,"children":23530,"toc":23632},[23531,23552,23557,23563,23568,23573,23579,23584,23596,23602,23607,23612,23616],{"type":21,"tag":22,"props":23532,"children":23533},{},[23534,23536,23542,23543,23550],{"type":31,"value":23535},"On July 22, 2026, PsiQuantum signed an expanded $125 million agreement with the Defense Advanced Research Projects Agency, its largest U.S. government contract to date, according to ",{"type":21,"tag":26,"props":23537,"children":23540},{"href":23538,"rel":23539},"https:\u002F\u002Fthequantuminsider.com\u002F2026\u002F07\u002F22\u002Fpsiquantum-signs-125-million-agreement-with-darpa\u002F",[7123],[23541],{"type":31,"value":22550},{"type":31,"value":3615},{"type":21,"tag":26,"props":23544,"children":23547},{"href":23545,"rel":23546},"https:\u002F\u002Fwww.psiquantum.com\u002Fnews-import\u002Fpsiquantum-signs-125-million-agreement-with-darpa",[7123],[23548],{"type":31,"value":23549},"PsiQuantum's own announcement",{"type":31,"value":23551},". The money sits under DARPA's Quantum Benchmarking Initiative (QBI), a program built around a specific, unglamorous question: is a practically useful quantum computer achievable by 2033, and does any company's roadmap survive an outside party checking it.",{"type":21,"tag":22,"props":23553,"children":23554},{},[23555],{"type":31,"value":23556},"That framing matters more than the dollar figure. This is not research funding for PsiQuantum to build something recent. It funds DARPA and independent evaluators testing whether what PsiQuantum has already built and claimed holds up.",{"type":21,"tag":41,"props":23558,"children":23560},{"id":23559},"what-qbi-tests",[23561],{"type":31,"value":23562},"What QBI tests",{"type":21,"tag":22,"props":23564,"children":23565},{},[23566],{"type":31,"value":23567},"DARPA started the Quantum Benchmarking Initiative's predecessor program, Underexplored Systems for Utility-Scale Quantum Computing, in January 2023, when it first selected PsiQuantum for an initial evaluation stage. The program has since progressed in stages: PsiQuantum advanced to a second stage in January 2024, then to Stage C in February 2025, the most advanced tier. In November 2025, DARPA moved 11 companies into an earlier stage of the broader QBI program, and PsiQuantum is one of only two companies reported to have reached Stage C, the tier reserved for the most credible utility-scale claims.",{"type":21,"tag":22,"props":23569,"children":23570},{},[23571],{"type":31,"value":23572},"Getting to Stage C is itself informative. DARPA does not let every company's roadmap through to detailed, funded, adversarial testing. A company that fails an earlier stage is quietly out. Reaching the final tier is a signal that PsiQuantum's claims survived scrutiny that most quantum hardware announcements never face at all.",{"type":21,"tag":41,"props":23574,"children":23576},{"id":23575},"what-the-money-funds",[23577],{"type":31,"value":23578},"What the money funds",{"type":21,"tag":22,"props":23580,"children":23581},{},[23582],{"type":31,"value":23583},"The $125 million follows a smaller $31.8 million agreement from September 2025 that funded on-site testing at PsiQuantum's facilities. This expanded agreement funds testing across PsiQuantum's hardware, software, system architecture, and infrastructure, spanning its Milpitas, California and Chicago, Illinois sites. It is structured as a performance-based award, meaning PsiQuantum gets paid for hitting defined technical milestones DARPA and its evaluators check, not simply for showing up.",{"type":21,"tag":22,"props":23585,"children":23586},{},[23587,23589,23594],{"type":31,"value":23588},"That structure is the point. ",{"type":21,"tag":26,"props":23590,"children":23591},{"href":3712},[23592],{"type":31,"value":23593},"PsiQuantum's photonic, fault-tolerance-first approach",{"type":31,"value":23595}," has never shipped a commercial system, and its timeline for a working fault-tolerant machine has already slipped once, from 2027 to 2029. A company at that stage benefits enormously from being able to say a federal agency is independently verifying its numbers rather than taking PsiQuantum's word for them.",{"type":21,"tag":41,"props":23597,"children":23599},{"id":23598},"why-this-is-a-different-kind-of-evidence-than-a-press-release",[23600],{"type":31,"value":23601},"Why this is a different kind of evidence than a press release",{"type":21,"tag":22,"props":23603,"children":23604},{},[23605],{"type":31,"value":23606},"Most of what this site covers about early-stage quantum hardware comes from company announcements: a qubit count, a fidelity number, a funding round. Those numbers are real, but they are self-reported, and this site treats them accordingly until someone outside the company checks them.",{"type":21,"tag":22,"props":23608,"children":23609},{},[23610],{"type":31,"value":23611},"A DARPA QBI contract is structurally different. The agency's stated purpose is separating hype from reality in quantum computing roadmaps, and it does that by paying independent evaluators to test specific claims rather than accepting a business's own benchmarks. That does not mean PsiQuantum's fault-tolerance timeline will hold. It means the timeline is now subject to a level of outside checking that most competitors in this space do not have applied to their own roadmaps.",{"type":21,"tag":41,"props":23613,"children":23614},{"id":3461},[23615],{"type":31,"value":3464},{"type":21,"tag":22,"props":23617,"children":23618},{},[23619,23621,23625,23626,23630],{"type":31,"value":23620},"QBI's own stated horizon is 2033, so there is no near-term result here to wait for. What is worth tracking is whether PsiQuantum publishes or DARPA discloses any of the specific benchmark results from this testing, rather than only the fact that testing is happening. A contract confirms that evaluation is underway. It does not tell you what the evaluation found. Our ",{"type":21,"tag":26,"props":23622,"children":23623},{"href":1100},[23624],{"type":31,"value":16080},{"type":31,"value":3615},{"type":21,"tag":26,"props":23627,"children":23628},{"href":21932},[23629],{"type":31,"value":22505},{"type":31,"value":23631}," track how PsiQuantum's photonic approach compares with the superconducting, trapped-ion, and neutral-atom platforms other companies are betting on for the same fault-tolerance goal.",{"title":7,"searchDepth":168,"depth":168,"links":23633},[23634,23635,23636,23637],{"id":23559,"depth":168,"text":23562},{"id":23575,"depth":168,"text":23578},{"id":23598,"depth":168,"text":23601},{"id":3461,"depth":168,"text":3464},"content:blog:psiquantum-darpa-quantum-benchmarking-125-million.md","blog\u002Fpsiquantum-darpa-quantum-benchmarking-125-million.md","blog\u002Fpsiquantum-darpa-quantum-benchmarking-125-million",{"_path":3524,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":23642,"description":23643,"date":21805,"author":11,"tags":23644,"readingTime":234,"body":23645,"_type":1187,"_id":23738,"_source":1189,"_file":23739,"_stem":23740,"_extension":1192},"Quantinuum and BMW Turned a Five-Year Research Project Into a Roadmap Commitment","Quantinuum and BMW Group expanded their quantum chemistry collaboration, running since 2021, into a multi-year partnership that gives BMW access to Quantinuum's Helios, Sol, and Apollo hardware generations through 2029. Here is what five years of actual results looks like next to a typical pilot announcement.",[3396,1207],{"type":18,"children":23646,"toc":23733},[23647,23668,23674,23679,23684,23690,23701,23706,23712,23717],{"type":21,"tag":22,"props":23648,"children":23649},{},[23650,23652,23659,23660,23666],{"type":31,"value":23651},"On May 5, 2026, Quantinuum and BMW Group announced they were expanding their quantum computing collaboration into a formal multi-year partnership, according to ",{"type":21,"tag":26,"props":23653,"children":23656},{"href":23654,"rel":23655},"https:\u002F\u002Fwww.quantinuum.com\u002Fpress-releases\u002Fquantinuum-and-bmw-group-expand-landmark-quantum-computing-collaboration-with-new-multi-year-partnership",[7123],[23657],{"type":31,"value":23658},"Quantinuum's press release",{"type":31,"value":3615},{"type":21,"tag":26,"props":23661,"children":23664},{"href":23662,"rel":23663},"https:\u002F\u002Fthequantuminsider.com\u002F2026\u002F05\u002F05\u002Fquantinuum-and-bmw-group-expand-quantum-computing-collaboration-with-new-multi-year-partnership\u002F",[7123],[23665],{"type":31,"value":22550},{"type":31,"value":23667},". This is not a new story breaking this week. It is worth covering anyway, because most quantum-for-industry partnerships announced with this much fanfare are pilots with no track record behind them, and this one has run since 2021.",{"type":21,"tag":41,"props":23669,"children":23671},{"id":23670},"five-years-is-the-actual-story-here",[23672],{"type":31,"value":23673},"Five years is the actual story here",{"type":21,"tag":22,"props":23675,"children":23676},{},[23677],{"type":31,"value":23678},"Quantinuum and BMW have collaborated on industrial chemistry problems since 2021, moving from early algorithm development to simulating real molecular systems relevant to next-generation mobility. The specific research area is electrochemistry for fuel cells and batteries, including modeling the oxygen reduction reaction at platinum catalysts, a issue that determines fuel cell efficiency and where classical simulation methods struggle with the electron correlation effects involved.",{"type":21,"tag":22,"props":23680,"children":23681},{},[23682],{"type":31,"value":23683},"That history matters more than the announcement itself. Most quantum industry partnerships get covered at the moment they are signed, before there is any way to know whether the collaboration produces results or quietly fades. A five-year run with published progress from early algorithm work to real molecular simulation is a track record, not a press release promise.",{"type":21,"tag":41,"props":23685,"children":23687},{"id":23686},"what-bmw-gets",[23688],{"type":31,"value":23689},"What BMW gets",{"type":21,"tag":22,"props":23691,"children":23692},{},[23693,23695,23699],{"type":31,"value":23694},"The expanded partnership gives BMW access to successive generations of Quantinuum's ",{"type":21,"tag":26,"props":23696,"children":23697},{"href":3573},[23698],{"type":31,"value":18135},{"type":31,"value":23700}," hardware on a defined timeline: Helios (the current 96-qubit system, available now as hardware-as-a-service), Sol (planned for 2027 as Quantinuum's first commercially available system built on a two-dimensional qubit grid), and Apollo (targeted for 2029 as a fully fault-tolerant system capable of executing millions of gates).",{"type":21,"tag":22,"props":23702,"children":23703},{},[23704],{"type":31,"value":23705},"Quantinuum CEO Rajeeb Hazra framed the deal around \"driving commercial adoption of quantum computing through close collaboration with industry leaders on high-impact applications.\" BMW's Vice President of New Technologies, Martin Tietze, said the companies \"translate advances in quantum hardware into real-world applications.\" Both statements are the kind of framing a joint press release always uses. The part that is independently checkable is the hardware access itself: BMW is committed to Quantinuum's roadmap through at least 2029, which is an unusually long horizon for a customer relationship in a field where most vendor roadmaps get revised within a year or two.",{"type":21,"tag":41,"props":23707,"children":23709},{"id":23708},"why-this-is-a-useful-comparison-point",[23710],{"type":31,"value":23711},"Why this is a useful comparison point",{"type":21,"tag":22,"props":23713,"children":23714},{},[23715],{"type":31,"value":23716},"Announcements about quantum computing partnerships with automakers, banks, and pharmaceutical companies are common, and most of them describe an exploratory pilot with no committed timeline and no disclosed technical finding. This partnership is a useful yardstick against those: a five-year history of published, incremental research progress, a named scientific problem (the oxygen reduction reaction) rather than a vague reference to \"materials science,\" and a hardware access commitment tied to specific, dated system generations rather than an open-ended promise to keep exploring.",{"type":21,"tag":22,"props":23718,"children":23719},{},[23720,23722,23726,23727,23731],{"type":31,"value":23721},"None of that guarantees the electrochemistry results translate into a better BMW battery or fuel cell. It does mean this collaboration has a longer, more specific paper trail than the average industry quantum pilot, and it is worth checking back against as Sol and Apollo ship, since the value of a roadmap commitment depends entirely on whether the hardware behind it arrives on schedule. Our ",{"type":21,"tag":26,"props":23723,"children":23724},{"href":1100},[23725],{"type":31,"value":16080},{"type":31,"value":3615},{"type":21,"tag":26,"props":23728,"children":23729},{"href":21932},[23730],{"type":31,"value":22505},{"type":31,"value":23732}," track how Quantinuum's trapped-ion roadmap compares with the superconducting, neutral-atom, and photonic platforms other vendors are building toward the same industrial-chemistry use cases.",{"title":7,"searchDepth":168,"depth":168,"links":23734},[23735,23736,23737],{"id":23670,"depth":168,"text":23673},{"id":23686,"depth":168,"text":23689},{"id":23708,"depth":168,"text":23711},"content:blog:quantinuum-bmw-multi-year-partnership.md","blog\u002Fquantinuum-bmw-multi-year-partnership.md","blog\u002Fquantinuum-bmw-multi-year-partnership",{"_path":16160,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":23742,"description":23743,"date":21805,"author":11,"tags":23744,"readingTime":16,"body":23745,"_type":1187,"_id":24401,"_source":1189,"_file":24402,"_stem":24403,"_extension":1192},"How to Build a Business Case for Quantum Portfolio Optimization","PortfolioQ is a small open-source tool that runs classical, penalty-method QAOA, and constraint-preserving QAOA side by side on real portfolio data, and produces the one chart every quantum business case needs.",[1206,2041,10536],{"type":18,"children":23746,"toc":24394},[23747,23759,23778,23784,23820,23826,23831,23841,23865,23898,23903,23909,23914,23930,23958,23964,23989,24022,24211,24309,24326,24336,24342,24353,24390],{"type":21,"tag":22,"props":23748,"children":23749},{},[23750,23752,23757],{"type":31,"value":23751},"Writing a QAOA circuit is a solved problem. Dozens of tutorials, including ",{"type":21,"tag":26,"props":23753,"children":23754},{"href":1244},[23755],{"type":31,"value":23756},"our own",{"type":31,"value":23758},", will get you there in an afternoon. Writing the two-page memo that convinces a risk committee to fund a pilot is a completely different skill, and almost nothing teaches it. Most \"quantum computing for finance\" content either stays purely technical (build a circuit, print a result) or purely promotional (quantum will transform portfolio optimization). Neither produces the artifact a real business case needs.",{"type":21,"tag":22,"props":23760,"children":23761},{},[23762,23769,23771,23776],{"type":21,"tag":26,"props":23763,"children":23766},{"href":23764,"rel":23765},"https:\u002F\u002Fgithub.com\u002FAlinDanielFerenczi\u002FPortfolioQ",[7123],[23767],{"type":31,"value":23768},"PortfolioQ",{"type":31,"value":23770}," is a small, open-source FastAPI project built specifically to produce that artifact. It's worth walking through, not because it's a production optimizer (its own README says explicitly that it isn't), but because its structure is a genuinely useful template for how to evaluate ",{"type":21,"tag":12756,"props":23772,"children":23773},{},[23774],{"type":31,"value":23775},"any",{"type":31,"value":23777}," quantum optimization claim honestly, portfolio selection or otherwise.",{"type":21,"tag":41,"props":23779,"children":23781},{"id":23780},"the-problem-it-solves",[23782],{"type":31,"value":23783},"The problem it solves",{"type":21,"tag":22,"props":23785,"children":23786},{},[23787,23789,23794,23796,23802,23804,23810,23812,23818],{"type":31,"value":23788},"PortfolioQ targets ",{"type":21,"tag":16802,"props":23790,"children":23791},{},[23792],{"type":31,"value":23793},"cardinality-constrained portfolio selection",{"type":31,"value":23795},": pick exactly K assets out of N candidates to minimize risk and maximize expected return, using the standard Markowitz mean-variance formulation: minimize ",{"type":21,"tag":104,"props":23797,"children":23799},{"className":23798},[],[23800],{"type":31,"value":23801},"risk_factor * wᵀΣw - μᵀw",{"type":31,"value":23803}," subject to ",{"type":21,"tag":104,"props":23805,"children":23807},{"className":23806},[],[23808],{"type":31,"value":23809},"sum(w) == budget",{"type":31,"value":23811},", with each ",{"type":21,"tag":104,"props":23813,"children":23815},{"className":23814},[],[23816],{"type":31,"value":23817},"w",{"type":31,"value":23819}," binary. That constraint (exactly K assets, not \"up to K\") is what makes this a good test case: it's a real, common portfolio-construction requirement, and it's exactly the kind of constraint that's simple to get wrong in a naive QAOA implementation.",{"type":21,"tag":41,"props":23821,"children":23823},{"id":23822},"three-solvers-run-side-by-side",[23824],{"type":31,"value":23825},"Three solvers, run side by side",{"type":21,"tag":22,"props":23827,"children":23828},{},[23829],{"type":31,"value":23830},"This is the part most quantum finance demos skip, and it's the part that matters for a business case: PortfolioQ doesn't run one method and report a number. It runs three, on the same data, and compares them.",{"type":21,"tag":22,"props":23832,"children":23833},{},[23834,23839],{"type":21,"tag":16802,"props":23835,"children":23836},{},[23837],{"type":31,"value":23838},"Classical exact enumeration.",{"type":31,"value":23840}," Brute-forces every feasible K-of-N combination directly. It's not a strawman. For portfolios in the 10-30 asset range this is fast and exact, which is precisely why it's the right baseline. Any quantum approach has to be measured against this, not against \"no answer at all.\"",{"type":21,"tag":22,"props":23842,"children":23843},{},[23844,23849,23851,23857,23859,23863],{"type":21,"tag":16802,"props":23845,"children":23846},{},[23847],{"type":31,"value":23848},"Penalty-method QAOA.",{"type":31,"value":23850}," The standard textbook approach: convert the constrained problem to a QUBO via ",{"type":21,"tag":104,"props":23852,"children":23854},{"className":23853},[],[23855],{"type":31,"value":23856},"QuadraticProgramToQubo",{"type":31,"value":23858},", encode it as an Ising Hamiltonian, run ",{"type":21,"tag":26,"props":23860,"children":23861},{"href":2038},[23862],{"type":31,"value":2041},{"type":31,"value":23864},". It works, but it spends circuit depth and classical tuning effort enforcing the budget constraint through a penalty term, and some fraction of measured samples violates the constraint outright, silently scored badly rather than rejected. If you're presenting quantum results to people without an SDK background, this is the mode most likely to embarrass you: \"why does the quantum solution sometimes pick the wrong number of stocks?\"",{"type":21,"tag":22,"props":23866,"children":23867},{},[23868,23873,23875,23881,23883,23889,23890,23896],{"type":21,"tag":16802,"props":23869,"children":23870},{},[23871],{"type":31,"value":23872},"Dicke-state \u002F XY-mixer QAOA.",{"type":31,"value":23874}," The constraint-preserving alternative. A Dicke-state initialization (built with a small ancilla \"running count\" register that provably lands on exactly ",{"type":21,"tag":104,"props":23876,"children":23878},{"className":23877},[],[23879],{"type":31,"value":23880},"|budget⟩",{"type":31,"value":23882},") combined with an XY-mixer (",{"type":21,"tag":104,"props":23884,"children":23886},{"className":23885},[],[23887],{"type":31,"value":23888},"RXX",{"type":31,"value":5062},{"type":21,"tag":104,"props":23891,"children":23893},{"className":23892},[],[23894],{"type":31,"value":23895},"RYY",{"type":31,"value":23897}," gates) keeps every single measurement inside the feasible K-of-N subspace by construction. No penalty tuning, no invalid answers to explain away. It's a heavier circuit, but it's the version you'd want in front of a non-technical audience. Every result respects the constraint they asked for, because the ansatz makes anything else geometrically impossible.",{"type":21,"tag":22,"props":23899,"children":23900},{},[23901],{"type":31,"value":23902},"That comparison (one classical baseline, two structurally different quantum approaches) is the shape a credible business case needs. A single quantum result with no classical comparison and no discussion of why the encoding was chosen isn't evidence of anything.",{"type":21,"tag":41,"props":23904,"children":23906},{"id":23905},"the-chart-thats-the-actual-deliverable",[23907],{"type":31,"value":23908},"The chart that's the actual deliverable",{"type":21,"tag":22,"props":23910,"children":23911},{},[23912],{"type":31,"value":23913},"Here's the part of PortfolioQ's own documentation worth repeating verbatim, because it's the most honest sentence you'll read about applied quantum optimization this year:",{"type":21,"tag":23915,"props":23916,"children":23917},"blockquote",{},[23918],{"type":21,"tag":22,"props":23919,"children":23920},{},[23921,23923,23928],{"type":31,"value":23922},"Run the same request against a real IBM backend and chart result quality vs. gate count as you increase ",{"type":21,"tag":104,"props":23924,"children":23926},{"className":23925},[],[23927],{"type":31,"value":12884},{"type":31,"value":23929},". This is the \"signal vs. noise crossover\" chart that's the actual deliverable for a business-case pitch.",{"type":21,"tag":22,"props":23931,"children":23932},{},[23933,23935,23941,23943,23949,23950,23956],{"type":31,"value":23934},"That's the whole exercise. Not \"we ran QAOA and it worked.\" Not \"quantum is X% faster.\" A chart with two axes: how close the quantum answer gets to the true optimum (",{"type":21,"tag":104,"props":23936,"children":23938},{"className":23937},[],[23939],{"type":31,"value":23940},"pct_of_optimal",{"type":31,"value":23942},": 100% means it matched classical exactly), against how much circuit you had to run to get there (",{"type":21,"tag":104,"props":23944,"children":23946},{"className":23945},[],[23947],{"type":31,"value":23948},"circuit_depth",{"type":31,"value":3615},{"type":21,"tag":104,"props":23951,"children":23953},{"className":23952},[],[23954],{"type":31,"value":23955},"two_qubit_gates",{"type":31,"value":23957},", both reported alongside every outcome). Run it on the simulator first, then on real hardware, and watch where the lines cross, or don't.",{"type":21,"tag":41,"props":23959,"children":23961},{"id":23960},"building-the-case-step-by-step",[23962],{"type":31,"value":23963},"Building the case, step by step",{"type":21,"tag":22,"props":23965,"children":23966},{},[23967,23972,23974,23979,23981,23987],{"type":21,"tag":16802,"props":23968,"children":23969},{},[23970],{"type":31,"value":23971},"1. Cap your problem size honestly.",{"type":31,"value":23973}," PortfolioQ's own README recommends 10-30 assets for anything run on real hardware, and explains why: current ",{"type":21,"tag":26,"props":23975,"children":23976},{"href":22036},[23977],{"type":31,"value":23978},"NISQ",{"type":31,"value":23980}," devices simply don't have the qubit count or gate fidelity to go further without the noise dominating the signal. A business case that quietly assumes a 500-stock universe on today's hardware isn't a business case, it's fiction. Start with the candidate universe you'd genuinely consider: real tickers, real historical prices (the tool fetches these automatically via ",{"type":21,"tag":104,"props":23982,"children":23984},{"className":23983},[],[23985],{"type":31,"value":23986},"yfinance",{"type":31,"value":23988}," if you don't supply your own).",{"type":21,"tag":22,"props":23990,"children":23991},{},[23992,23997,23999,24005,24006,24012,24014,24020],{"type":21,"tag":16802,"props":23993,"children":23994},{},[23995],{"type":31,"value":23996},"2. Establish the in-principle baseline on a simulator.",{"type":31,"value":23998}," Run ",{"type":21,"tag":104,"props":24000,"children":24002},{"className":24001},[],[24003],{"type":31,"value":24004},"\u002Foptimize\u002Fcompare-all",{"type":31,"value":9385},{"type":21,"tag":104,"props":24007,"children":24009},{"className":24008},[],[24010],{"type":31,"value":24011},"aer_simulator",{"type":31,"value":24013}," before touching real hardware. Check that ",{"type":21,"tag":104,"props":24015,"children":24017},{"className":24016},[],[24018],{"type":31,"value":24019},"feasible_fraction",{"type":31,"value":24021}," on the XY-mixer result is exactly 1.0. That's your sanity check that the constraint-preserving construction works as designed, with no hardware noise yet in the picture.",{"type":21,"tag":129,"props":24023,"children":24027},{"className":24024,"code":24025,"language":24026,"meta":7,"style":7},"language-json shiki shiki-themes github-dark","POST \u002Foptimize\u002Fcompare-all\n{\n  \"tickers\": [\"AAPL\", \"MSFT\", \"GOOGL\", \"AMZN\", \"NVDA\"],\n  \"budget\": 2,\n  \"risk_factor\": 0.5,\n  \"reps\": 2,\n  \"shots\": 1024,\n  \"backend\": \"aer_simulator\"\n}\n","json",[24028],{"type":21,"tag":104,"props":24029,"children":24030},{"__ignoreMap":7},[24031,24039,24047,24106,24126,24146,24166,24187,24204],{"type":21,"tag":139,"props":24032,"children":24033},{"class":141,"line":142},[24034],{"type":21,"tag":139,"props":24035,"children":24036},{"style":152},[24037],{"type":31,"value":24038},"POST \u002Foptimize\u002Fcompare-all\n",{"type":21,"tag":139,"props":24040,"children":24041},{"class":141,"line":168},[24042],{"type":21,"tag":139,"props":24043,"children":24044},{"style":152},[24045],{"type":31,"value":24046},"{\n",{"type":21,"tag":139,"props":24048,"children":24049},{"class":141,"line":190},[24050,24055,24060,24065,24069,24074,24078,24083,24087,24092,24096,24101],{"type":21,"tag":139,"props":24051,"children":24052},{"style":214},[24053],{"type":31,"value":24054},"  \"tickers\"",{"type":21,"tag":139,"props":24056,"children":24057},{"style":152},[24058],{"type":31,"value":24059},": [",{"type":21,"tag":139,"props":24061,"children":24062},{"style":262},[24063],{"type":31,"value":24064},"\"AAPL\"",{"type":21,"tag":139,"props":24066,"children":24067},{"style":152},[24068],{"type":31,"value":259},{"type":21,"tag":139,"props":24070,"children":24071},{"style":262},[24072],{"type":31,"value":24073},"\"MSFT\"",{"type":21,"tag":139,"props":24075,"children":24076},{"style":152},[24077],{"type":31,"value":259},{"type":21,"tag":139,"props":24079,"children":24080},{"style":262},[24081],{"type":31,"value":24082},"\"GOOGL\"",{"type":21,"tag":139,"props":24084,"children":24085},{"style":152},[24086],{"type":31,"value":259},{"type":21,"tag":139,"props":24088,"children":24089},{"style":262},[24090],{"type":31,"value":24091},"\"AMZN\"",{"type":21,"tag":139,"props":24093,"children":24094},{"style":152},[24095],{"type":31,"value":259},{"type":21,"tag":139,"props":24097,"children":24098},{"style":262},[24099],{"type":31,"value":24100},"\"NVDA\"",{"type":21,"tag":139,"props":24102,"children":24103},{"style":152},[24104],{"type":31,"value":24105},"],\n",{"type":21,"tag":139,"props":24107,"children":24108},{"class":141,"line":200},[24109,24114,24118,24122],{"type":21,"tag":139,"props":24110,"children":24111},{"style":214},[24112],{"type":31,"value":24113},"  \"budget\"",{"type":21,"tag":139,"props":24115,"children":24116},{"style":152},[24117],{"type":31,"value":1147},{"type":21,"tag":139,"props":24119,"children":24120},{"style":214},[24121],{"type":31,"value":293},{"type":21,"tag":139,"props":24123,"children":24124},{"style":152},[24125],{"type":31,"value":4811},{"type":21,"tag":139,"props":24127,"children":24128},{"class":141,"line":226},[24129,24134,24138,24142],{"type":21,"tag":139,"props":24130,"children":24131},{"style":214},[24132],{"type":31,"value":24133},"  \"risk_factor\"",{"type":21,"tag":139,"props":24135,"children":24136},{"style":152},[24137],{"type":31,"value":1147},{"type":21,"tag":139,"props":24139,"children":24140},{"style":214},[24141],{"type":31,"value":7845},{"type":21,"tag":139,"props":24143,"children":24144},{"style":152},[24145],{"type":31,"value":4811},{"type":21,"tag":139,"props":24147,"children":24148},{"class":141,"line":234},[24149,24154,24158,24162],{"type":21,"tag":139,"props":24150,"children":24151},{"style":214},[24152],{"type":31,"value":24153},"  \"reps\"",{"type":21,"tag":139,"props":24155,"children":24156},{"style":152},[24157],{"type":31,"value":1147},{"type":21,"tag":139,"props":24159,"children":24160},{"style":214},[24161],{"type":31,"value":293},{"type":21,"tag":139,"props":24163,"children":24164},{"style":152},[24165],{"type":31,"value":4811},{"type":21,"tag":139,"props":24167,"children":24168},{"class":141,"line":273},[24169,24174,24178,24183],{"type":21,"tag":139,"props":24170,"children":24171},{"style":214},[24172],{"type":31,"value":24173},"  \"shots\"",{"type":21,"tag":139,"props":24175,"children":24176},{"style":152},[24177],{"type":31,"value":1147},{"type":21,"tag":139,"props":24179,"children":24180},{"style":214},[24181],{"type":31,"value":24182},"1024",{"type":21,"tag":139,"props":24184,"children":24185},{"style":152},[24186],{"type":31,"value":4811},{"type":21,"tag":139,"props":24188,"children":24189},{"class":141,"line":309},[24190,24195,24199],{"type":21,"tag":139,"props":24191,"children":24192},{"style":214},[24193],{"type":31,"value":24194},"  \"backend\"",{"type":21,"tag":139,"props":24196,"children":24197},{"style":152},[24198],{"type":31,"value":1147},{"type":21,"tag":139,"props":24200,"children":24201},{"style":262},[24202],{"type":31,"value":24203},"\"aer_simulator\"\n",{"type":21,"tag":139,"props":24205,"children":24206},{"class":141,"line":16},[24207],{"type":21,"tag":139,"props":24208,"children":24209},{"style":152},[24210],{"type":31,"value":19546},{"type":21,"tag":22,"props":24212,"children":24213},{},[24214,24225,24227,24233,24235,24241,24243,24248,24250,24255,24257,24263,24264,24269,24271,24276,24278,24283,24285,24291,24293,24299,24301,24307],{"type":21,"tag":16802,"props":24215,"children":24216},{},[24217,24219,24224],{"type":31,"value":24218},"3. Move to real hardware and vary ",{"type":21,"tag":104,"props":24220,"children":24222},{"className":24221},[],[24223],{"type":31,"value":12884},{"type":31,"value":6665},{"type":31,"value":24226}," This is where the actual data comes from. Point ",{"type":21,"tag":104,"props":24228,"children":24230},{"className":24229},[],[24231],{"type":31,"value":24232},"\"backend\"",{"type":31,"value":24234}," at a real device (",{"type":21,"tag":104,"props":24236,"children":24238},{"className":24237},[],[24239],{"type":31,"value":24240},"\"ibm_torino\"",{"type":31,"value":24242},", for example. See our ",{"type":21,"tag":26,"props":24244,"children":24245},{"href":1970},[24246],{"type":31,"value":24247},"IBM Quantum free tier guide",{"type":31,"value":24249}," if you don't have hardware access set up yet) and rerun the same comparison as you increase ",{"type":21,"tag":104,"props":24251,"children":24253},{"className":24252},[],[24254],{"type":31,"value":12884},{"type":31,"value":24256},". ",{"type":21,"tag":104,"props":24258,"children":24260},{"className":24259},[],[24261],{"type":31,"value":24262},"qaoa_xy_pct_of_optimal",{"type":31,"value":3615},{"type":21,"tag":104,"props":24265,"children":24267},{"className":24266},[],[24268],{"type":31,"value":23955},{"type":31,"value":24270}," climbing together across a handful of ",{"type":21,"tag":104,"props":24272,"children":24274},{"className":24273},[],[24275],{"type":31,"value":12884},{"type":31,"value":24277}," values ",{"type":21,"tag":12756,"props":24279,"children":24280},{},[24281],{"type":31,"value":24282},"is",{"type":31,"value":24284}," the chart. Because each COBYLA iteration blocks on a real hardware job, use PortfolioQ's async ",{"type":21,"tag":104,"props":24286,"children":24288},{"className":24287},[],[24289],{"type":31,"value":24290},"\u002Fsubmit",{"type":31,"value":24292}," + ",{"type":21,"tag":104,"props":24294,"children":24296},{"className":24295},[],[24297],{"type":31,"value":24298},"\u002Fjobs\u002F{id}",{"type":31,"value":24300}," endpoints rather than the blocking ones. A ",{"type":21,"tag":104,"props":24302,"children":24304},{"className":24303},[],[24305],{"type":31,"value":24306},"maxiter",{"type":31,"value":24308}," of 100 means up to 100 hardware round-trips per optimization run, which will outlast most HTTP client timeouts on a queued device.",{"type":21,"tag":22,"props":24310,"children":24311},{},[24312,24317,24319,24324],{"type":21,"tag":16802,"props":24313,"children":24314},{},[24315],{"type":31,"value":24316},"4. Report the noise honestly, including where it breaks the guarantee.",{"type":31,"value":24318}," Expect ",{"type":21,"tag":104,"props":24320,"children":24322},{"className":24321},[],[24323],{"type":31,"value":24019},{"type":31,"value":24325}," to drop below 1.0 on real hardware even for the XY-mixer, despite the simulator showing a clean 1.0. That's not a bug and it's not a reason to hide the result. On real hardware, noise, not the algorithm, is what breaks the Hamming-weight preservation the Dicke-state construction guarantees in theory. That gap between simulator and hardware feasibility is itself a meaningful, quotable data point: it's a direct, measured picture of how much today's error rates cost you, expressed in a metric a risk committee reads directly.",{"type":21,"tag":22,"props":24327,"children":24328},{},[24329,24334],{"type":21,"tag":16802,"props":24330,"children":24331},{},[24332],{"type":31,"value":24333},"5. Write the recommendation the data supports.",{"type":31,"value":24335}," For 10-30 assets on current hardware, that recommendation is almost never \"replace the greedy heuristic in production today\". PortfolioQ's own greedy baseline exists precisely as \"what we'd run in production today,\" and it's rapid, classical, and usually close to optimal at this scale. The honest, defensible business case is: here is the exact crossover point we measured, here is what has to improve (gate fidelity, qubit count, queue economics) before it moves, and here is the monitoring plan for re-running this comparison as hardware improves. That's a real deliverable. \"We're not there yet, and here's precisely how we'll know when we are\" is a stronger memo than an inflated claim that won't survive the first follow-up question.",{"type":21,"tag":41,"props":24337,"children":24339},{"id":24338},"what-this-template-generalizes-to",[24340],{"type":31,"value":24341},"What this template generalizes to",{"type":21,"tag":22,"props":24343,"children":24344},{},[24345,24347,24351],{"type":31,"value":24346},"None of the above is specific to portfolios. The same shape (a credible classical baseline, more than one quantum encoding compared honestly, a simulator sanity check before hardware, and a quality-vs-noise chart instead of a single cherry-picked run) is exactly how you'd build a defensible case for QAOA on any other constrained optimization problem: routing, scheduling, or the Max-Cut-style problems in our ",{"type":21,"tag":26,"props":24348,"children":24349},{"href":1244},[24350],{"type":31,"value":10440},{"type":31,"value":24352},". The specific circuits change. The discipline of comparing against what you already have, and reporting where the noise wins, doesn't.",{"type":21,"tag":22,"props":24354,"children":24355},{},[24356,24358,24364,24366,24372,24374,24380,24382,24388],{"type":31,"value":24357},"If you want to see this pattern extended, PortfolioQ's ",{"type":21,"tag":26,"props":24359,"children":24361},{"href":23764,"rel":24360},[7123],[24362],{"type":31,"value":24363},"source on GitHub",{"type":31,"value":24365}," is modest enough to read end to end in an afternoon: ",{"type":21,"tag":104,"props":24367,"children":24369},{"className":24368},[],[24370],{"type":31,"value":24371},"portfolio.py",{"type":31,"value":24373}," for the QUBO construction, ",{"type":21,"tag":104,"props":24375,"children":24377},{"className":24376},[],[24378],{"type":31,"value":24379},"xy_mixer_solver.py",{"type":31,"value":24381}," for the constraint-preserving ansatz, and ",{"type":21,"tag":104,"props":24383,"children":24385},{"className":24384},[],[24386],{"type":31,"value":24387},"main.py",{"type":31,"value":24389}," for how the comparison endpoints are wired together. It's explicitly a pilot and capability-building scaffold rather than a production system, which, for the purpose of building a business case rather than shipping a trading system, is exactly the point.",{"type":21,"tag":1168,"props":24391,"children":24392},{},[24393],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":24395},[24396,24397,24398,24399,24400],{"id":23780,"depth":168,"text":23783},{"id":23822,"depth":168,"text":23825},{"id":23905,"depth":168,"text":23908},{"id":23960,"depth":168,"text":23963},{"id":24338,"depth":168,"text":24341},"content:blog:quantum-portfolio-optimization-business-case.md","blog\u002Fquantum-portfolio-optimization-business-case.md","blog\u002Fquantum-portfolio-optimization-business-case",{"_path":21568,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":24405,"description":24406,"date":21805,"author":11,"tags":24407,"readingTime":273,"body":24408,"_type":1187,"_id":24552,"_source":1189,"_file":24553,"_stem":24554,"_extension":1192},"SAXON Q Is Selling a Quantum Computer That Skips the Cryostat Entirely","SAXON Q, a Leipzig University spinout, launched the SXQ128 and SXQ512, diamond-based nitrogen-vacancy quantum computers that run at room temperature with no cryogenic cooling. Here is how the qubits work and what the claimed numbers mean.",[1207,3396],{"type":18,"children":24409,"toc":24546},[24410,24431,24436,24442,24456,24461,24467,24479,24484,24490,24502,24507,24513,24525,24541],{"type":21,"tag":22,"props":24411,"children":24412},{},[24413,24415,24421,24422,24429],{"type":31,"value":24414},"On July 21, 2026, SAXON Q announced commercial availability of the SXQ128 and SXQ512, diamond-based quantum computers built around nitrogen-vacancy (NV) centers, according to ",{"type":21,"tag":26,"props":24416,"children":24419},{"href":24417,"rel":24418},"https:\u002F\u002Fthequantuminsider.com\u002F2026\u002F07\u002F21\u002Fsaxon-q-diamond-nv-center-quantum-computers\u002F",[7123],[24420],{"type":31,"value":22550},{"type":31,"value":3615},{"type":21,"tag":26,"props":24423,"children":24426},{"href":24424,"rel":24425},"https:\u002F\u002Fwww.hpcwire.com\u002Foff-the-wire\u002Fsaxon-q-brings-room-temperature-diamond-quantum-computing-to-commercial-market\u002F",[7123],[24427],{"type":31,"value":24428},"HPCwire",{"type":31,"value":24430},". The headline claim is the one worth checking first: both systems run at room temperature, with no cryostat, no vacuum chamber, and no dilution refrigerator, plugged into an ordinary electrical outlet in a standard server rack.",{"type":21,"tag":22,"props":24432,"children":24433},{},[24434],{"type":31,"value":24435},"That single fact separates NV-center qubits from every hardware modality this site usually covers. Superconducting qubits and trapped ions both need cooling to near absolute zero, and most of the engineering difficulty in scaling those platforms traces back to that requirement. A qubit that works at room temperature sidesteps an entire category of problems, if the claim holds up.",{"type":21,"tag":41,"props":24437,"children":24439},{"id":24438},"what-saxon-q-built",[24440],{"type":31,"value":24441},"What SAXON Q built",{"type":21,"tag":22,"props":24443,"children":24444},{},[24445,24447,24454],{"type":31,"value":24446},"SAXON Q is a 2021 spinout from Leipzig University, founded by physicists who spent decades researching NV centers before commercializing the work. Marius Grundmann and Frank Schlichting hold the CEO title jointly, according to ",{"type":21,"tag":26,"props":24448,"children":24451},{"href":24449,"rel":24450},"https:\u002F\u002Fwww.saxonq.com\u002Fen\u002Funternehmen\u002F",[7123],[24452],{"type":31,"value":24453},"the firm's own site",{"type":31,"value":24455},", alongside co-founders Jan Meijer (CTO) and Bernd Burchard (CIPO).",{"type":21,"tag":22,"props":24457,"children":24458},{},[24459],{"type":31,"value":24460},"The SXQ128 packs 128 qubits, arranged as multiple cores of eight fully entangled qubits each. The SXQ512 scales that to 512 qubits across cores of 16. Both are available to order now, with SXQ128 deliveries beginning within three months and SXQ512 shipments starting in the second quarter of 2027.",{"type":21,"tag":41,"props":24462,"children":24464},{"id":24463},"what-an-nv-center-is",[24465],{"type":31,"value":24466},"What an NV center is",{"type":21,"tag":22,"props":24468,"children":24469},{},[24470,24472,24477],{"type":31,"value":24471},"A nitrogen-vacancy center is a specific defect in a diamond's carbon lattice: a nitrogen atom sits subsequent to an empty spot where a carbon atom should be. That defect traps a single electron whose spin state is initialized, manipulated, and read out with lasers and microwaves, and it behaves as a ",{"type":21,"tag":26,"props":24473,"children":24474},{"href":3051},[24475],{"type":31,"value":24476},"qubit",{"type":31,"value":24478}," at room temperature because diamond's rigid lattice isolates the trapped electron from the thermal noise that would otherwise destroy its quantum state.",{"type":21,"tag":22,"props":24480,"children":24481},{},[24482],{"type":31,"value":24483},"The company reports a fidelity of up to 99.92% and describes creating these defects through a proprietary sulfur co-implantation process during ion beam implantation, claiming a conversion yield above 85% (the share of implanted atoms that become working qubits) against a reported 1 to 10% for prior implantation methods. That yield number is the more interesting engineering claim here, since NV centers themselves are decades-old physics. The obstacle was always building enough of them reliably in one piece of diamond, not discovering that they exist.",{"type":21,"tag":41,"props":24485,"children":24487},{"id":24486},"what-to-treat-as-unverified",[24488],{"type":31,"value":24489},"What to treat as unverified",{"type":21,"tag":22,"props":24491,"children":24492},{},[24493,24495,24500],{"type":31,"value":24494},"Every number above comes from SAXON Q's own announcement. None of it has been independently reproduced or published in a peer-reviewed venue the way HRL's recent ",{"type":21,"tag":26,"props":24496,"children":24497},{"href":22667},[24498],{"type":31,"value":24499},"self-operating silicon processor",{"type":31,"value":24501}," was. A fidelity figure is only useful next to a clearly stated definition of which operation it measures, and a yield percentage is only useful once someone outside the company that reports it gets to check the diamond.",{"type":21,"tag":22,"props":24503,"children":24504},{},[24505],{"type":31,"value":24506},"The one data point that is not only a press release is a deployment: Fraunhofer IWU installed a SAXON Q system in mid-2025 for industrial optimization work in material processing and robotics, and the company says it has run continuously at room temperature since. A working deployment at a respected applied-research institute is a stronger signal than a spec sheet, though it still says nothing about how the same architecture performs at 128 or 512 qubits.",{"type":21,"tag":41,"props":24508,"children":24510},{"id":24509},"where-room-temperature-qubits-fit-against-everything-else",[24511],{"type":31,"value":24512},"Where room-temperature qubits fit against everything else",{"type":21,"tag":22,"props":24514,"children":24515},{},[24516,24518,24523],{"type":31,"value":24517},"Room-temperature operation does not automatically mean SAXON Q's qubits outperform cryogenic ones on the metrics that decide whether a quantum computer is useful: gate fidelity under load, coherence time during a real circuit, and how the system behaves as qubit count grows. Trapped ions and superconducting qubits have a multi-year head start on demonstrating those things at scale, with ",{"type":21,"tag":26,"props":24519,"children":24520},{"href":19115},[24521],{"type":31,"value":24522},"independently scrutinized results",{"type":31,"value":24524}," that NV-center systems do not yet have.",{"type":21,"tag":22,"props":24526,"children":24527},{},[24528,24530,24534,24535,24539],{"type":31,"value":24529},"What room temperature does buy, if the claims hold, is dramatically simpler infrastructure. No cryostat means no multi-week cooldown cycle, no liquid helium supply chain, and a system that fits in a standard rack instead of a dedicated lab. For applications like industrial optimization at a manufacturing site, that operational simplicity sometimes matters more than an extra order of magnitude of fidelity. Our ",{"type":21,"tag":26,"props":24531,"children":24532},{"href":1100},[24533],{"type":31,"value":16080},{"type":31,"value":3615},{"type":21,"tag":26,"props":24536,"children":24537},{"href":21932},[24538],{"type":31,"value":22505},{"type":31,"value":24540}," track how each modality trades those priorities differently.",{"type":21,"tag":22,"props":24542,"children":24543},{},[24544],{"type":31,"value":24545},"The honest read on SAXON Q today: a real, shipping product from a team with a genuine research background in the underlying physics, with commercial claims that have not yet been checked by anyone outside the company. That is a normal place for a new hardware vendor to be. It is not yet evidence that diamond NV centers compete with the platforms that have already survived a decade of outside scrutiny.",{"title":7,"searchDepth":168,"depth":168,"links":24547},[24548,24549,24550,24551],{"id":24438,"depth":168,"text":24441},{"id":24463,"depth":168,"text":24466},{"id":24486,"depth":168,"text":24489},{"id":24509,"depth":168,"text":24512},"content:blog:saxon-q-room-temperature-diamond-quantum-computer.md","blog\u002Fsaxon-q-room-temperature-diamond-quantum-computer.md","blog\u002Fsaxon-q-room-temperature-diamond-quantum-computer",{"_path":22740,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":24556,"description":24557,"date":21805,"author":11,"tags":24558,"readingTime":234,"body":24559,"_type":1187,"_id":24641,"_source":1189,"_file":24642,"_stem":24643,"_extension":1192},"Warwick's New Chip Concept Aims to Wire Together a Million Qubits","Warwick and NRC Canada proposed Quantum Phononic Links, a way to carry quantum information across an entire chip using engineered vibrations instead of only connecting neighboring qubits.",[1207,3396,15],{"type":18,"children":24560,"toc":24636},[24561,24566,24572,24577,24596,24602,24614,24619,24625],{"type":21,"tag":22,"props":24562,"children":24563},{},[24564],{"type":31,"value":24565},"Today's leading quantum chips mostly connect a qubit to its immediate neighbors and nothing else. A useful large-scale quantum computer needs coordination across millions of qubits spread over an entire chip, not only clusters sitting subsequent to each other. Researchers at the University of Warwick and NRC Canada published a proposed answer to that gap on July 29, 2026, in APL Quantum: a concept they call Quantum Phononic Links.",{"type":21,"tag":41,"props":24567,"children":24569},{"id":24568},"what-a-phononic-link-is",[24570],{"type":31,"value":24571},"What a phononic link is",{"type":21,"tag":22,"props":24573,"children":24574},{},[24575],{"type":31,"value":24576},"The idea uses phonons, sound-like vibrations traveling through a solid material, to carry quantum information between qubits that sit far apart on the same chip. The material behind it, compressively strained germanium on silicon, was developed at Warwick using advanced epitaxial growth techniques. Engineered correctly, the vibrations carry information whether the qubits involved sit side by side or are separated across a full semiconductor wafer up to 300 millimeters across.",{"type":21,"tag":22,"props":24578,"children":24579},{},[24580,24582,24587,24589,24594],{"type":31,"value":24581},"That distance matters. Nearest-neighbor-only connectivity is exactly the constraint that shapes which ",{"type":21,"tag":26,"props":24583,"children":24584},{"href":15828},[24585],{"type":31,"value":24586},"error-correcting codes",{"type":31,"value":24588}," a chip even attempts. Our ",{"type":21,"tag":26,"props":24590,"children":24591},{"href":3573},[24592],{"type":31,"value":24593},"companion piece on Quantinuum's Helios",{"type":31,"value":24595}," covers why trapped-ion hardware's all-to-all connectivity opens up error-correction codes that a nearest-neighbor superconducting chip cannot application efficiently. A phononic link aimed at chip-scale, non-local connectivity is targeting the same structural limitation from the silicon side.",{"type":21,"tag":41,"props":24597,"children":24599},{"id":24598},"read-the-maturity-level-accurately",[24600],{"type":31,"value":24601},"Read the maturity level accurately",{"type":21,"tag":22,"props":24603,"children":24604},{},[24605,24607,24612],{"type":31,"value":24606},"This is a concept and materials result, not an operating multi-qubit device. The paper proposes a mechanism and demonstrates the underlying material properties. It does not yet show a working chip moving quantum information between distant qubits using this method. That puts it in a different category of evidence than ",{"type":21,"tag":26,"props":24608,"children":24609},{"href":22667},[24610],{"type":31,"value":24611},"HRL's self-operating silicon processor",{"type":31,"value":24613},", published the same week, which is a working 18-qubit device with a control chip already running inside its cryostat.",{"type":21,"tag":22,"props":24615,"children":24616},{},[24617],{"type":31,"value":24618},"Both results matter, and they matter for different reasons. HRL solved a real engineering problem for a small, existing device. Warwick proposed a mechanism aimed at a target two or three orders of magnitude larger, with the harder work of building and testing an actual chip still ahead of it. Neither is more important than the other. They sit at different points on the path from proposal to product, and coverage that treats them as equally proven misses that distinction.",{"type":21,"tag":41,"props":24620,"children":24622},{"id":24621},"why-the-target-size-is-the-real-headline",[24623],{"type":31,"value":24624},"Why the target size is the real headline",{"type":21,"tag":22,"props":24626,"children":24627},{},[24628,24630,24634],{"type":31,"value":24629},"A million qubits is well beyond any current device, superconducting, trapped-ion, or silicon. Getting there needs progress on several fronts at once: qubit quality, error correction overhead, control electronics, and exactly the qubit-to-qubit communication issue this proposal addresses. No single result solves all of it. What is worth tracking is whether Warwick's group, or others building on the same cs-GoS material, demonstrates the mechanism working on an actual multi-qubit chip. That demonstration, not the concept paper, will be the point where this outcome earns a place next to HRL's on the list of things that shipped. See our ",{"type":21,"tag":26,"props":24631,"children":24632},{"href":1100},[24633],{"type":31,"value":16080},{"type":31,"value":24635}," for how silicon-based approaches compare to the rest of the field.",{"title":7,"searchDepth":168,"depth":168,"links":24637},[24638,24639,24640],{"id":24568,"depth":168,"text":24571},{"id":24598,"depth":168,"text":24601},{"id":24621,"depth":168,"text":24624},"content:blog:warwick-quantum-phononic-links.md","blog\u002Fwarwick-quantum-phononic-links.md","blog\u002Fwarwick-quantum-phononic-links",{"_path":24645,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":24646,"description":24647,"date":21805,"author":11,"tags":24648,"readingTime":273,"body":24649,"_type":1187,"_id":24749,"_source":1189,"_file":24750,"_stem":24751,"_extension":1192},"\u002Fblog\u002Fzuriq-2d-trapped-ion-seed-funding","ZuriQ Wants to Fix Trapped-Ion Scaling by Going 2D Instead of 1D","ZuriQ, an ETH Zurich spinout, raised $25.5 million to scale a two-dimensional trapped-ion architecture built on Penning micro-traps, a departure from the linear ion chains IonQ and Quantinuum use. Here is what the nine-ion demonstrator shows.",[1207,3396,16315],{"type":18,"children":24650,"toc":24744},[24651,24671,24682,24688,24700,24705,24711,24716,24721,24727,24732],{"type":21,"tag":22,"props":24652,"children":24653},{},[24654,24656,24662,24663,24669],{"type":31,"value":24655},"On July 28, 2026, ZuriQ announced a $25.5 million seed round to scale a trapped-ion architecture that departs from how every other trapped-ion company builds its qubits, according to ",{"type":21,"tag":26,"props":24657,"children":24660},{"href":24658,"rel":24659},"https:\u002F\u002Fthequantuminsider.com\u002F2026\u002F07\u002F28\u002Fzuriq-raises-25-5-million-2d-trapped-ion-quantum-processors\u002F",[7123],[24661],{"type":31,"value":22550},{"type":31,"value":3615},{"type":21,"tag":26,"props":24664,"children":24667},{"href":24665,"rel":24666},"https:\u002F\u002Fsiliconangle.com\u002F2026\u002F07\u002F28\u002Fquantum-computing-startup-zuriq-gets-25-5m-scale-2d-trapped-ion-processor-design\u002F",[7123],[24668],{"type":31,"value":22969},{"type":31,"value":24670},". The round was led by Quantonation, with Forward.one, Extantia, and Firgun Ventures joining alongside existing investors, following a $4.2 million pre-seed round in 2025.",{"type":21,"tag":22,"props":24672,"children":24673},{},[24674,24676,24680],{"type":31,"value":24675},"ZuriQ is a spinout from ETH Zurich, led by CEO Pavel Hrmo, who spent more than a decade in trapped-ion research before founding the company. Its pitch is narrow and specific: the standard way of building a ",{"type":21,"tag":26,"props":24677,"children":24678},{"href":1100},[24679],{"type":31,"value":18135},{"type":31,"value":24681}," quantum computer, a linear chain of ions connected through junctions, runs into a scaling wall that a two-dimensional layout avoids.",{"type":21,"tag":41,"props":24683,"children":24685},{"id":24684},"why-linear-chains-are-the-default-and-why-they-cap-out",[24686],{"type":31,"value":24687},"Why linear chains are the default and why they cap out",{"type":21,"tag":22,"props":24689,"children":24690},{},[24691,24693,24698],{"type":31,"value":24692},"IonQ and Quantinuum, ",{"type":21,"tag":26,"props":24694,"children":24695},{"href":3712},[24696],{"type":31,"value":24697},"the two companies furthest along commercially",{"type":31,"value":24699}," with trapped ions, both build on one-dimensional ion chains. Ions sit in a line inside a trap, and moving ions between varied zones of the chip requires junctions, physical structures where chains merge and split. Junctions work, but every one adds engineering complexity, and a chip built from linear segments scales roughly with how many segments you wire together, not with the raw area of the chip.",{"type":21,"tag":22,"props":24701,"children":24702},{},[24703],{"type":31,"value":24704},"ZuriQ's approach uses Penning micro-traps, which confine ions with static magnetic fields instead of the oscillating electric fields used in standard linear traps. According to the company, this lets ions move freely across two dimensions rather than being confined to a single line, so qubit density grows with the area of the chip rather than the number of chained segments. That is a real architectural difference, not a rebranding of the same idea, and it is the kind of claim worth watching for independent confirmation as the company scales past its current demonstrator.",{"type":21,"tag":41,"props":24706,"children":24708},{"id":24707},"what-has-been-built-so-far",[24709],{"type":31,"value":24710},"What has been built so far",{"type":21,"tag":22,"props":24712,"children":24713},{},[24714],{"type":31,"value":24715},"The concrete result behind the funding is a working 3-by-3 array of nine individually controlled ions, built in collaboration with ETH Zurich over 18 months and fabricated on Infineon's production lines. ZuriQ describes it as the largest two-dimensional trapped-ion array demonstrated to date, which is a claim about being first at a specific, small scale rather than a claim about being competitive with IonQ's or Quantinuum's qubit counts today.",{"type":21,"tag":22,"props":24717,"children":24718},{},[24719],{"type":31,"value":24720},"Nine ions is a long way from a useful quantum computer. What the demonstrator establishes is that the Penning-trap approach works in a real fabricated chip rather than only on paper, and that Infineon's existing manufacturing lines produce the hardware, which matters for whether the architecture eventually scales past a lab bench. Quantonation partner Nicolas Jurczak framed the round as evidence that real physics breakthroughs are still available in quantum hardware architecture, which is the kind of statement every early-stage investor makes about their own bet and is worth reading as exactly that.",{"type":21,"tag":41,"props":24722,"children":24724},{"id":24723},"a-seed-stage-claim-backed-by-a-working-chip",[24725],{"type":31,"value":24726},"A seed-stage claim, backed by a working chip",{"type":21,"tag":22,"props":24728,"children":24729},{},[24730],{"type":31,"value":24731},"ZuriQ is a seed-stage firm with a nine-qubit demonstrator, not a commercial system, and its scaling claims are projections rather than measured results at any meaningful qubit count. What makes the round worth tracking is the specificity behind it: a named physical mechanism (Penning micro-traps), a working fabricated device, and an industrial manufacturing partner, rather than a roadmap slide with no hardware behind it.",{"type":21,"tag":22,"props":24733,"children":24734},{},[24735,24737,24742],{"type":31,"value":24736},"If ZuriQ's 2D architecture scales the way it projects, it would address one of the structural bottlenecks in ",{"type":21,"tag":26,"props":24738,"children":24739},{"href":1131},[24740],{"type":31,"value":24741},"trapped-ion scaling",{"type":31,"value":24743}," that this site has covered before: connecting qubits without every additional connection point adding its own error budget. Whether it gets there is a multi-year question. For now, the honest summary is a well-funded, technically specific bet from a team with real trapped-ion research credentials, at a scale that proves the mechanism works and nothing more.",{"title":7,"searchDepth":168,"depth":168,"links":24745},[24746,24747,24748],{"id":24684,"depth":168,"text":24687},{"id":24707,"depth":168,"text":24710},{"id":24723,"depth":168,"text":24726},"content:blog:zuriq-2d-trapped-ion-seed-funding.md","blog\u002Fzuriq-2d-trapped-ion-seed-funding.md","blog\u002Fzuriq-2d-trapped-ion-seed-funding",{"_path":24753,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":24754,"description":24755,"date":24756,"author":11,"tags":24757,"readingTime":234,"body":24758,"_type":1187,"_id":24844,"_source":1189,"_file":24845,"_stem":24846,"_extension":1192},"\u002Fblog\u002Fey-on-site-quantum-computer-canada","EY Is Putting a Quantum Computer On-Site in Canada. Here's What's Missing From the Announcement","EY announced an on-site quantum computer in Canada as part of a $3 billion AI and frontier-tech investment, aimed at optimization, fraud detection, and data sovereignty for regulated clients. The release names no hardware vendor and no location.","2026-07-29",[3396,10536,1207],{"type":18,"children":24759,"toc":24837},[24760,24765,24771,24776,24782,24806,24812,24817,24823,24828,24832],{"type":21,"tag":22,"props":24761,"children":24762},{},[24763],{"type":31,"value":24764},"EY announced on July 29, 2026, that it is adding an on-site quantum computer as part of a global investment of more than $3 billion in AI and other frontier technologies, led by EY Canada. The stated goal is secure, in-house quantum application development for use cases including optimization, fraud detection, data protection, and large-scale risk management. Read past the topline number, though, and two important details are missing: which vendor's hardware EY is installing, and where in Canada it will sit.",{"type":21,"tag":41,"props":24766,"children":24768},{"id":24767},"the-actual-case-being-made-data-sovereignty-not-qubit-count",[24769],{"type":31,"value":24770},"The actual case being made: data sovereignty, not qubit count",{"type":21,"tag":22,"props":24772,"children":24773},{},[24774],{"type":31,"value":24775},"Unlike most hardware announcements this site covers, EY's isn't about a technical milestone at all. The argument is about control: hosting a quantum system in-house lets EY keep data location and governance in its own hands, which matters directly for corporate clients operating under strict regulatory regimes, particularly in finance and insurance, EY's core client base. That's a genuinely different pitch than a qubit count or an error rate. It's an argument about where compute happens and who controls the data around it, aimed at clients who need to demonstrate regulators exactly that.",{"type":21,"tag":41,"props":24777,"children":24779},{"id":24778},"what-ey-says-it-will-use-this-for",[24780],{"type":31,"value":24781},"What EY says it will use this for",{"type":21,"tag":22,"props":24783,"children":24784},{},[24785,24787,24791,24793,24798,24800,24804],{"type":31,"value":24786},"The named use cases, optimization, fraud detection, data protection, and large-scale risk management, all sit in the \"near-term, classically-competitive-but-worth-exploring\" bucket our ",{"type":21,"tag":26,"props":24788,"children":24789},{"href":16291},[24790],{"type":31,"value":16294},{"type":31,"value":24792}," tracks across the industry. None of them require fault-tolerant, error-corrected hardware to start experimenting with. That lines up with how ",{"type":21,"tag":26,"props":24794,"children":24795},{"href":16152},[24796],{"type":31,"value":24797},"Quantinuum and SoftBank's white paper",{"type":31,"value":24799},", covered separately, frames the same idea from a hardware vendor's side: real exploration work is possible before full fault tolerance arrives, provided the use case is chosen carefully. If you want a concrete sense of what \"optimization\" and \"risk management\" look like as a quantum use case rather than a buzzword, our ",{"type":21,"tag":26,"props":24801,"children":24802},{"href":16160},[24803],{"type":31,"value":23512},{"type":31,"value":24805}," builds one from real data, classical baseline included.",{"type":21,"tag":41,"props":24807,"children":24809},{"id":24808},"no-hardware-supplier-city-or-qubit-count-disclosed-yet",[24810],{"type":31,"value":24811},"No hardware supplier, city, or qubit count disclosed yet",{"type":21,"tag":22,"props":24813,"children":24814},{},[24815],{"type":31,"value":24816},"No hardware vendor is named. No specific city or facility is disclosed. No qubit count, modality, or timeline for when the system goes live is given. That's a meaningful gap for an announcement centered on a physical machine, closer to a capital allocation and strategic-positioning announcement than a hardware story. Most vendor announcements disclose a qubit count with no context for what it means. Here, it's the reverse: real dollar commitment, no hardware detail at all yet.",{"type":21,"tag":41,"props":24818,"children":24820},{"id":24819},"why-a-consulting-firm-buying-a-quantum-computer-is-still-worth-tracking",[24821],{"type":31,"value":24822},"Why a consulting firm buying a quantum computer is still worth tracking",{"type":21,"tag":22,"props":24824,"children":24825},{},[24826],{"type":31,"value":24827},"EY isn't a hardware or research company. Its business is advising other companies, which makes an internal, on-site quantum system a signal about anticipated client demand rather than a research investment. If EY expects enough regulated clients to need in-house-hosted quantum experimentation soon, that's a data point about market timing worth more attention than the machine itself. Whether that expectation is well-founded is a separate question this announcement doesn't answer.",{"type":21,"tag":41,"props":24829,"children":24830},{"id":3461},[24831],{"type":31,"value":3464},{"type":21,"tag":22,"props":24833,"children":24834},{},[24835],{"type":31,"value":24836},"The follow-up that would make this a complete story: which vendor EY selects, where the system is installed, and whether EY publishes any actual client results from it. Until those details surface, treat this as a funded intention, not yet a deployed capability.",{"title":7,"searchDepth":168,"depth":168,"links":24838},[24839,24840,24841,24842,24843],{"id":24767,"depth":168,"text":24770},{"id":24778,"depth":168,"text":24781},{"id":24808,"depth":168,"text":24811},{"id":24819,"depth":168,"text":24822},{"id":3461,"depth":168,"text":3464},"content:blog:ey-on-site-quantum-computer-canada.md","blog\u002Fey-on-site-quantum-computer-canada.md","blog\u002Fey-on-site-quantum-computer-canada",{"_path":16152,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":24848,"description":24849,"date":24850,"author":11,"tags":24851,"readingTime":273,"body":24852,"_type":1187,"_id":24938,"_source":1189,"_file":24939,"_stem":24940,"_extension":1192},"Quantinuum and SoftBank's White Paper Makes the Case for Quantum Value Before Fault Tolerance","Quantinuum and SoftBank published a joint white paper mapping quantum chemistry and graph analytics use cases to Quantinuum's hardware roadmap, arguing organizations don't need to wait for full fault tolerance to start getting value.","2026-07-22",[3396,10536,13],{"type":18,"children":24853,"toc":24931},[24854,24859,24865,24877,24883,24888,24894,24905,24911,24916,24920],{"type":21,"tag":22,"props":24855,"children":24856},{},[24857],{"type":31,"value":24858},"Quantinuum and SoftBank published a joint white paper on July 22, 2026, titled \"Quantum Computing Frontiers.\" Its central argument is that organizations do not need to wait for large-scale, fault-tolerant quantum computers to start finding real value, provided they map specific usage cases against a hardware roadmap rather than a generic timeline. That is a distinct, and more useful, claim than the usual \"quantum will transform your industry\" framing, because it names two concrete application areas SoftBank is already running on Quantinuum's systems and checks them against a stated hardware progression rather than a vague future.",{"type":21,"tag":41,"props":24860,"children":24862},{"id":24861},"the-two-use-cases-named",[24863],{"type":31,"value":24864},"The two use cases named",{"type":21,"tag":22,"props":24866,"children":24867},{},[24868,24870,24875],{"type":31,"value":24869},"The paper maps two areas SoftBank has been actively researching on Quantinuum hardware. The first is quantum chemistry for materials and energy research, the same general category covered in our piece on ",{"type":21,"tag":26,"props":24871,"children":24872},{"href":3524},[24873],{"type":31,"value":24874},"Quantinuum and BMW's multi-year partnership",{"type":31,"value":24876},", though this white paper is a business framework rather than a specific chemistry result. The second is large-scale graph analytics, with telecommunications fraud detection named as a specific target application, an area where SoftBank's own business gives it a direct commercial interest rather than a purely research one.",{"type":21,"tag":41,"props":24878,"children":24880},{"id":24879},"why-this-differs-from-the-bmw-partnership",[24881],{"type":31,"value":24882},"Why this differs from the BMW partnership",{"type":21,"tag":22,"props":24884,"children":24885},{},[24886],{"type":31,"value":24887},"BMW's collaboration with Quantinuum is a multi-year hardware access and chemistry research relationship running since 2021. This white paper is a different kind of document: a public framework for assessing when particular use cases become practical as hardware improves, explicitly pitched at helping other organizations decide how much quantum readiness to build now versus later. It also goes further afield, considering how quantum computing might integrate with AI and high-performance computing into shared data center infrastructure and future service models, a framing that treats quantum hardware as one component in a larger compute stack rather than a standalone system.",{"type":21,"tag":41,"props":24889,"children":24891},{"id":24890},"read-the-value-before-fault-tolerance-claim-against-the-encoding-numbers",[24892],{"type":31,"value":24893},"Read the \"value before fault tolerance\" claim against the encoding numbers",{"type":21,"tag":22,"props":24895,"children":24896},{},[24897,24899,24903],{"type":31,"value":24898},"\"Practical value before full fault tolerance\" is a real assertion worth taking seriously, and it lines up with how this site already covers Quantinuum's hardware: our piece on ",{"type":21,"tag":26,"props":24900,"children":24901},{"href":3573},[24902],{"type":31,"value":16552},{"type":31,"value":24904}," makes the case that the ratio between physical and logical qubits, not the raw logical qubit count, is what indicates real progress toward useful, error-corrected computation. A white paper arguing for near-term value is only as credible as the hardware roadmap underneath it, and that roadmap is the same one this site has already scrutinized rather than taken at face value.",{"type":21,"tag":41,"props":24906,"children":24908},{"id":24907},"co-published-by-a-vendor-and-its-customer-not-third-party-research",[24909],{"type":31,"value":24910},"Co-published by a vendor and its customer, not third-party research",{"type":21,"tag":22,"props":24912,"children":24913},{},[24914],{"type":31,"value":24915},"This document was co-published by the hardware vendor and a customer with a direct commercial stake in the outcome. That doesn't make its use-case mapping wrong, but the \"when this becomes practical\" timeline reflects Quantinuum's own roadmap projections, filtered through a customer motivated to make the near-term case. Readers evaluating whether to invest in quantum readiness now should treat the two named use cases (chemistry and graph analytics) as reasonable candidates to investigate, not as a guarantee that value arrives on the paper's schedule.",{"type":21,"tag":41,"props":24917,"children":24918},{"id":3461},[24919],{"type":31,"value":3464},{"type":21,"tag":22,"props":24921,"children":24922},{},[24923,24925,24929],{"type":31,"value":24924},"The paper's real test is whether SoftBank publishes actual results, cost comparisons, or fraud-detection outcomes from running these use cases on Quantinuum hardware, rather than only a forward-looking framework. Our ",{"type":21,"tag":26,"props":24926,"children":24927},{"href":16291},[24928],{"type":31,"value":16294},{"type":31,"value":24930}," tracks which quantum applications are production-ready, near-term, or still research-stage across the industry, and is a useful cross-check against any single vendor's roadmap claims.",{"title":7,"searchDepth":168,"depth":168,"links":24932},[24933,24934,24935,24936,24937],{"id":24861,"depth":168,"text":24864},{"id":24879,"depth":168,"text":24882},{"id":24890,"depth":168,"text":24893},{"id":24907,"depth":168,"text":24910},{"id":3461,"depth":168,"text":3464},"content:blog:quantinuum-softbank-white-paper-quantum-value.md","blog\u002Fquantinuum-softbank-white-paper-quantum-value.md","blog\u002Fquantinuum-softbank-white-paper-quantum-value",{"_path":24942,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":24943,"description":24944,"date":24945,"author":11,"tags":24946,"readingTime":273,"body":24947,"_type":1187,"_id":25040,"_source":1189,"_file":25041,"_stem":25042,"_extension":1192},"\u002Fblog\u002Fuchicago-topological-quantum-computing-waffle-circuit","A 'Waffle Grid' Superconducting Circuit Validates a Building Block for Topological Qubits","Researchers at the University of Chicago, Purdue, Boston University, and AppliedTQC built a 3x3 crossbar of Josephson junctions that reproduces a gauge symmetry theorists say topological quantum computing needs, a validated building block, not a working qubit.","2026-07-21",[1207,3396,15],{"type":18,"children":24948,"toc":25033},[24949,24954,24960,24965,24971,24976,24982,24987,24993,25024,25028],{"type":21,"tag":22,"props":24950,"children":24951},{},[24952],{"type":31,"value":24953},"A team from the University of Chicago, Purdue University, Boston University, and the startup AppliedTQC published a superconducting circuit design on July 21, 2026, that reproduces a Z3 combinatorial gauge symmetry, a property theorists consider essential for building topologically protected qubits. Read that sentence carefully. It's a validated building block, not a topological qubit, and the researchers themselves say so.",{"type":21,"tag":41,"props":24955,"children":24957},{"id":24956},"what-they-built",[24958],{"type":31,"value":24959},"What they built",{"type":21,"tag":22,"props":24961,"children":24962},{},[24963],{"type":31,"value":24964},"The device is a 3x3 crossbar array of Josephson junctions, nine junctions total, formed by three horizontal and three vertical superconducting wires crossing on a silicon substrate. The team calls it a \"waffle grid,\" and it deliberately breaks from the planar circuit layouts IBM and Google use in their superconducting processors. Under precisely tuned magnetic fields, the circuit exhibited six equivalent low-energy states, matching what theory predicted for this symmetry. The team validated the measurements using neural-network variational Monte Carlo simulations, and the device is currently operating in the semiclassical regime, meaning quantum tunneling between those states is present but weak.",{"type":21,"tag":41,"props":24966,"children":24968},{"id":24967},"why-gauge-symmetry-matters-for-topological-qubits",[24969],{"type":31,"value":24970},"Why gauge symmetry matters for topological qubits",{"type":21,"tag":22,"props":24972,"children":24973},{},[24974],{"type":31,"value":24975},"Topological qubits store information in the global, non-local properties of a system rather than in the state of any single physical object, which is the theoretical appeal: information encoded this way is supposed to be inherently resistant to the local noise that plagues conventional qubits. Microsoft's long-running, still-contested pursuit of Majorana-based topological qubits is the best-known attempt at this approach. This result is a different route to the same destination: rather than searching for exotic quasiparticles in a material, the UChicago-led team engineered the required symmetry directly into a superconducting circuit built from ordinary Josephson junctions.",{"type":21,"tag":41,"props":24977,"children":24979},{"id":24978},"what-the-researchers-themselves-say-is-next",[24980],{"type":31,"value":24981},"What the researchers themselves say is next",{"type":21,"tag":22,"props":24983,"children":24984},{},[24985],{"type":31,"value":24986},"The team frames this explicitly as validation of a foundational building block, not a functioning topological qubit. Their own stated next step is to push the device deeper into the quantum regime, where tunneling dominates over classical thermal noise, and then tile several of these waffle units into a honeycomb lattice to produce genuinely topologically ordered states. Both of those are separate, harder engineering problems that haven't been demonstrated yet.",{"type":21,"tag":41,"props":24988,"children":24990},{"id":24989},"how-to-read-this-next-to-other-qubit-modality-news",[24991],{"type":31,"value":24992},"How to read this next to other qubit modality news",{"type":21,"tag":22,"props":24994,"children":24995},{},[24996,24998,25003,25004,25009,25011,25016,25018,25022],{"type":31,"value":24997},"This site tracks a lot of \"new qubit modality\" announcements: ",{"type":21,"tag":26,"props":24999,"children":25000},{"href":21568},[25001],{"type":31,"value":25002},"SAXON Q's room-temperature diamond qubits",{"type":31,"value":259},{"type":21,"tag":26,"props":25005,"children":25006},{"href":22667},[25007],{"type":31,"value":25008},"HRL's self-correcting silicon spin processor",{"type":31,"value":25010},", and ",{"type":21,"tag":26,"props":25012,"children":25013},{"href":22740},[25014],{"type":31,"value":25015},"Warwick's phononic interconnect concept",{"type":31,"value":25017}," all landed in the same category: a real, checkable physics result that validates one piece of a much larger, unfinished architecture. None of these results, this one included, is a working error-corrected qubit available to buy or rent. Our ",{"type":21,"tag":26,"props":25019,"children":25020},{"href":19066},[25021],{"type":31,"value":21745},{"type":31,"value":25023}," covers where each approach stands relative to the superconducting and trapped-ion platforms that already have commercial systems in the field.",{"type":21,"tag":41,"props":25025,"children":25026},{"id":3461},[25027],{"type":31,"value":3464},{"type":21,"tag":22,"props":25029,"children":25030},{},[25031],{"type":31,"value":25032},"The two milestones the researchers named themselves are the ones to track: operation deep in the quantum regime, and a working honeycomb lattice of multiple waffle units showing topological order rather than a single cell's symmetry. Until either lands, this is a genuine and welcome physics result, and nothing more than that yet.",{"title":7,"searchDepth":168,"depth":168,"links":25034},[25035,25036,25037,25038,25039],{"id":24956,"depth":168,"text":24959},{"id":24967,"depth":168,"text":24970},{"id":24978,"depth":168,"text":24981},{"id":24989,"depth":168,"text":24992},{"id":3461,"depth":168,"text":3464},"content:blog:uchicago-topological-quantum-computing-waffle-circuit.md","blog\u002Fuchicago-topological-quantum-computing-waffle-circuit.md","blog\u002Fuchicago-topological-quantum-computing-waffle-circuit",{"_path":25044,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":25045,"description":25046,"date":25047,"author":11,"tags":25048,"readingTime":309,"body":25049,"_type":1187,"_id":25918,"_source":1189,"_file":25919,"_stem":25920,"_extension":1192},"\u002Fja\u002Fblog\u002Fquantum-benchmarking-eo-14413","新しい量子大統領令が明かす、この分野の本当の課題","EO 14413 を政治文書ではなく技術文書として読むと、量子コンピューティングがいまだに解決できていないことの率直なリストが見えてきます — その筆頭が、量子コンピュータの良し悪しを誰も確実に測定できないという事実です。","2026-07-18",[3396,1207,13882],{"type":18,"children":25050,"toc":25909},[25051,25063,25068,25073,25079,25084,25096,25101,25158,25163,25168,25633,25658,25664,25669,25674,25695,25707,25713,25725,25730,25756,25761,25766,25771,25776,25794,25799,25804,25809,25828,25833,25845,25850,25855,25860,25888,25893,25905],{"type":21,"tag":22,"props":25052,"children":25053},{},[25054,25056,25061],{"type":31,"value":25055},"2026年6月22日、大統領令 14413 — ",{"type":21,"tag":12756,"props":25057,"children":25058},{},[25059],{"type":31,"value":25060},"Ushering in the Next Frontier of Quantum Innovation",{"type":31,"value":25062}," — が署名されました。報道はそのほぼすべてが政治的な側面に集中していました。",{"type":21,"tag":22,"props":25064,"children":25065},{},[25066],{"type":31,"value":25067},"これは残念なことです。というのも、より興味深いのは技術的な読み方だからです。この種の政策文書は、量子プログラムを実際に運営している人々からの多大な意見を取り入れて起草されます。そして彼らが要求している内容は、この分野がいまだにできないことの、かなり率直な地図になっています。そのように読めば、EO 14413 は発表というより課題リストです。",{"type":21,"tag":22,"props":25069,"children":25070},{},[25071],{"type":31,"value":25072},"以下、特に目を引く点を挙げます。",{"type":21,"tag":41,"props":25074,"children":25076},{"id":25075},"量子コンピュータの良し悪しを誰も確実に測定できない",[25077],{"type":31,"value":25078},"量子コンピュータの良し悪しを、誰も確実に測定できない",{"type":21,"tag":22,"props":25080,"children":25081},{},[25082],{"type":31,"value":25083},"この大統領令の中で最も静かに注目すべき一文は、エネルギー省に対し、180日以内に「量子コンピューティングシステムの性能を正確に評価するために必要なツールと能力を開発するための国家センター」を設立するよう指示しているものです。",{"type":21,"tag":22,"props":25085,"children":25086},{},[25087,25089,25094],{"type":31,"value":25088},"少し立ち止まって考えてみてください。Feynman が量子コンピュータを提唱してからおよそ45年、最初の量子超越性の主張から7年が経った今、政府が機関を立ち上げているのは、",{"type":21,"tag":12756,"props":25090,"children":25091},{},[25092],{"type":31,"value":25093},"「この量子コンピュータは本当に優秀なのか？」",{"type":31,"value":25095}," という問いに答える信頼できる方法が我々にないからなのです。",{"type":21,"tag":22,"props":25097,"children":25098},{},[25099],{"type":31,"value":25100},"これはお役所的な前置きではありません。現実の問題であり、2つの QPU を比較しようとしたことのある人なら誰もが突き当たったことがあるはずです。問題は、ベンダーごとに報告する数値が異なることにあります。",{"type":21,"tag":1112,"props":25102,"children":25103},{},[25104,25114,25128,25138,25148],{"type":21,"tag":72,"props":25105,"children":25106},{},[25107,25112],{"type":21,"tag":16802,"props":25108,"children":25109},{},[25110],{"type":31,"value":25111},"量子ビット数",{"type":31,"value":25113}," は、それ単独ではほとんど意味がありません。実用的な作業では、質の悪い100量子ビットは、質の良い20量子ビットより劣ることがあります。",{"type":21,"tag":72,"props":25115,"children":25116},{},[25117,25126],{"type":21,"tag":16802,"props":25118,"children":25119},{},[25120],{"type":21,"tag":26,"props":25121,"children":25123},{"href":25122},"\u002Fglossary\u002Fquantum-volume",[25124],{"type":31,"value":25125},"量子ボリューム",{"type":31,"value":25127}," は、量子ビット数、結合性、誤り率を1つの数値にまとめたものです — しかし飽和してしまいますし、自分が関心のある特定の回路をその装置がどう扱うかについてはほとんど何も語りません。",{"type":21,"tag":72,"props":25129,"children":25130},{},[25131,25136],{"type":21,"tag":16802,"props":25132,"children":25133},{},[25134],{"type":31,"value":25135},"ゲート忠実度",{"type":31,"value":25137}," は通常、孤立した1量子ビットゲートおよび2量子ビットゲートについて示され、これは体系的にチップを実際より良く見せてしまいます。ゲートを並列に実行すると誤りの積み重なり方が変わりますし、クロストークは見出しの数値には現れません。",{"type":21,"tag":72,"props":25139,"children":25140},{},[25141,25146],{"type":21,"tag":16802,"props":25142,"children":25143},{},[25144],{"type":31,"value":25145},"CLOPS",{"type":31,"value":25147}," などのスループット指標は速度を測るものであって、精度を測るものではありません — ノイズを高速に返すマシンは役に立ちません。",{"type":21,"tag":72,"props":25149,"children":25150},{},[25151,25156],{"type":21,"tag":16802,"props":25152,"children":25153},{},[25154],{"type":31,"value":25155},"「アルゴリズミック量子ビット」",{"type":31,"value":25157}," をはじめとするベンダー独自の指標は、ベンダー間で比較できません。そしてしばしば、それこそが狙いなのです。",{"type":21,"tag":22,"props":25159,"children":25160},{},[25161],{"type":31,"value":25162},"この大統領令はさらに、「商用量子コンピューティング能力を評価する政府の能力を向上させる」ための省庁間の情報共有の仕組みも求めています — これは、ベンダーのマーケティング上の主張を現状では独立に検証するのが難しい、と丁寧に言い換えたものです。",{"type":21,"tag":22,"props":25164,"children":25165},{},[25166],{"type":31,"value":25167},"自分でハードウェアを評価するのであれば、実践的な教訓は、単一の数値を信じるのをやめ、自分自身のワークロードでベンチマークすることです。プレスリリースに頼るのではなく、実機のデバイス特性を直接取得できます。",{"type":21,"tag":129,"props":25169,"children":25171},{"className":131,"code":25170,"language":133,"meta":7,"style":7},"from qiskit_ibm_runtime import QiskitRuntimeService\n\nservice = QiskitRuntimeService()\nbackend = service.least_busy(operational=True, simulator=False)\n\nprint(f\"Backend:  {backend.name}\")\nprint(f\"Qubits:   {backend.num_qubits}\")\nprint(f\"Basis:    {backend.basis_gates}\")\n\n# Per-qubit error rates vary enormously across a single chip\nprops = backend.properties()\nerrors = [(q, props.readout_error(q)) for q in range(backend.num_qubits)]\nworst = max(errors, key=lambda x: x[1])\nbest = min(errors, key=lambda x: x[1])\nprint(f\"Readout error — best qubit: {best[1]:.4f}, worst: {worst[1]:.4f}\")\n",[25172],{"type":21,"tag":104,"props":25173,"children":25174},{"__ignoreMap":7},[25175,25194,25201,25217,25264,25271,25312,25353,25394,25401,25409,25426,25464,25508,25548],{"type":21,"tag":139,"props":25176,"children":25177},{"class":141,"line":142},[25178,25182,25186,25190],{"type":21,"tag":139,"props":25179,"children":25180},{"style":146},[25181],{"type":31,"value":149},{"type":21,"tag":139,"props":25183,"children":25184},{"style":152},[25185],{"type":31,"value":9705},{"type":21,"tag":139,"props":25187,"children":25188},{"style":146},[25189],{"type":31,"value":160},{"type":21,"tag":139,"props":25191,"children":25192},{"style":152},[25193],{"type":31,"value":9714},{"type":21,"tag":139,"props":25195,"children":25196},{"class":141,"line":168},[25197],{"type":21,"tag":139,"props":25198,"children":25199},{"emptyLinePlaceholder":194},[25200],{"type":31,"value":197},{"type":21,"tag":139,"props":25202,"children":25203},{"class":141,"line":190},[25204,25208,25212],{"type":21,"tag":139,"props":25205,"children":25206},{"style":152},[25207],{"type":31,"value":4637},{"type":21,"tag":139,"props":25209,"children":25210},{"style":146},[25211],{"type":31,"value":211},{"type":21,"tag":139,"props":25213,"children":25214},{"style":152},[25215],{"type":31,"value":25216}," QiskitRuntimeService()\n",{"type":21,"tag":139,"props":25218,"children":25219},{"class":141,"line":200},[25220,25224,25228,25232,25236,25240,25244,25248,25252,25256,25260],{"type":21,"tag":139,"props":25221,"children":25222},{"style":152},[25223],{"type":31,"value":6443},{"type":21,"tag":139,"props":25225,"children":25226},{"style":146},[25227],{"type":31,"value":211},{"type":21,"tag":139,"props":25229,"children":25230},{"style":152},[25231],{"type":31,"value":9789},{"type":21,"tag":139,"props":25233,"children":25234},{"style":923},[25235],{"type":31,"value":9794},{"type":21,"tag":139,"props":25237,"children":25238},{"style":146},[25239],{"type":31,"value":211},{"type":21,"tag":139,"props":25241,"children":25242},{"style":214},[25243],{"type":31,"value":8664},{"type":21,"tag":139,"props":25245,"children":25246},{"style":152},[25247],{"type":31,"value":259},{"type":21,"tag":139,"props":25249,"children":25250},{"style":923},[25251],{"type":31,"value":9811},{"type":21,"tag":139,"props":25253,"children":25254},{"style":146},[25255],{"type":31,"value":211},{"type":21,"tag":139,"props":25257,"children":25258},{"style":214},[25259],{"type":31,"value":9820},{"type":21,"tag":139,"props":25261,"children":25262},{"style":152},[25263],{"type":31,"value":270},{"type":21,"tag":139,"props":25265,"children":25266},{"class":141,"line":226},[25267],{"type":21,"tag":139,"props":25268,"children":25269},{"emptyLinePlaceholder":194},[25270],{"type":31,"value":197},{"type":21,"tag":139,"props":25272,"children":25273},{"class":141,"line":234},[25274,25278,25282,25286,25291,25295,25300,25304,25308],{"type":21,"tag":139,"props":25275,"children":25276},{"style":214},[25277],{"type":31,"value":948},{"type":21,"tag":139,"props":25279,"children":25280},{"style":152},[25281],{"type":31,"value":953},{"type":21,"tag":139,"props":25283,"children":25284},{"style":146},[25285],{"type":31,"value":7524},{"type":21,"tag":139,"props":25287,"children":25288},{"style":262},[25289],{"type":31,"value":25290},"\"Backend:  ",{"type":21,"tag":139,"props":25292,"children":25293},{"style":214},[25294],{"type":31,"value":7534},{"type":21,"tag":139,"props":25296,"children":25297},{"style":152},[25298],{"type":31,"value":25299},"backend.name",{"type":21,"tag":139,"props":25301,"children":25302},{"style":214},[25303],{"type":31,"value":7543},{"type":21,"tag":139,"props":25305,"children":25306},{"style":262},[25307],{"type":31,"value":15370},{"type":21,"tag":139,"props":25309,"children":25310},{"style":152},[25311],{"type":31,"value":270},{"type":21,"tag":139,"props":25313,"children":25314},{"class":141,"line":273},[25315,25319,25323,25327,25332,25336,25341,25345,25349],{"type":21,"tag":139,"props":25316,"children":25317},{"style":214},[25318],{"type":31,"value":948},{"type":21,"tag":139,"props":25320,"children":25321},{"style":152},[25322],{"type":31,"value":953},{"type":21,"tag":139,"props":25324,"children":25325},{"style":146},[25326],{"type":31,"value":7524},{"type":21,"tag":139,"props":25328,"children":25329},{"style":262},[25330],{"type":31,"value":25331},"\"Qubits:   ",{"type":21,"tag":139,"props":25333,"children":25334},{"style":214},[25335],{"type":31,"value":7534},{"type":21,"tag":139,"props":25337,"children":25338},{"style":152},[25339],{"type":31,"value":25340},"backend.num_qubits",{"type":21,"tag":139,"props":25342,"children":25343},{"style":214},[25344],{"type":31,"value":7543},{"type":21,"tag":139,"props":25346,"children":25347},{"style":262},[25348],{"type":31,"value":15370},{"type":21,"tag":139,"props":25350,"children":25351},{"style":152},[25352],{"type":31,"value":270},{"type":21,"tag":139,"props":25354,"children":25355},{"class":141,"line":309},[25356,25360,25364,25368,25373,25377,25382,25386,25390],{"type":21,"tag":139,"props":25357,"children":25358},{"style":214},[25359],{"type":31,"value":948},{"type":21,"tag":139,"props":25361,"children":25362},{"style":152},[25363],{"type":31,"value":953},{"type":21,"tag":139,"props":25365,"children":25366},{"style":146},[25367],{"type":31,"value":7524},{"type":21,"tag":139,"props":25369,"children":25370},{"style":262},[25371],{"type":31,"value":25372},"\"Basis:    ",{"type":21,"tag":139,"props":25374,"children":25375},{"style":214},[25376],{"type":31,"value":7534},{"type":21,"tag":139,"props":25378,"children":25379},{"style":152},[25380],{"type":31,"value":25381},"backend.basis_gates",{"type":21,"tag":139,"props":25383,"children":25384},{"style":214},[25385],{"type":31,"value":7543},{"type":21,"tag":139,"props":25387,"children":25388},{"style":262},[25389],{"type":31,"value":15370},{"type":21,"tag":139,"props":25391,"children":25392},{"style":152},[25393],{"type":31,"value":270},{"type":21,"tag":139,"props":25395,"children":25396},{"class":141,"line":16},[25397],{"type":21,"tag":139,"props":25398,"children":25399},{"emptyLinePlaceholder":194},[25400],{"type":31,"value":197},{"type":21,"tag":139,"props":25402,"children":25403},{"class":141,"line":361},[25404],{"type":21,"tag":139,"props":25405,"children":25406},{"style":220},[25407],{"type":31,"value":25408},"# Per-qubit error rates vary enormously across a single chip\n",{"type":21,"tag":139,"props":25410,"children":25411},{"class":141,"line":369},[25412,25417,25421],{"type":21,"tag":139,"props":25413,"children":25414},{"style":152},[25415],{"type":31,"value":25416},"props ",{"type":21,"tag":139,"props":25418,"children":25419},{"style":146},[25420],{"type":31,"value":211},{"type":21,"tag":139,"props":25422,"children":25423},{"style":152},[25424],{"type":31,"value":25425}," backend.properties()\n",{"type":21,"tag":139,"props":25427,"children":25428},{"class":141,"line":378},[25429,25434,25438,25443,25447,25451,25455,25459],{"type":21,"tag":139,"props":25430,"children":25431},{"style":152},[25432],{"type":31,"value":25433},"errors ",{"type":21,"tag":139,"props":25435,"children":25436},{"style":146},[25437],{"type":31,"value":211},{"type":21,"tag":139,"props":25439,"children":25440},{"style":152},[25441],{"type":31,"value":25442}," [(q, props.readout_error(q)) ",{"type":21,"tag":139,"props":25444,"children":25445},{"style":146},[25446],{"type":31,"value":1486},{"type":21,"tag":139,"props":25448,"children":25449},{"style":152},[25450],{"type":31,"value":20310},{"type":21,"tag":139,"props":25452,"children":25453},{"style":146},[25454],{"type":31,"value":1496},{"type":21,"tag":139,"props":25456,"children":25457},{"style":214},[25458],{"type":31,"value":7417},{"type":21,"tag":139,"props":25460,"children":25461},{"style":152},[25462],{"type":31,"value":25463},"(backend.num_qubits)]\n",{"type":21,"tag":139,"props":25465,"children":25466},{"class":141,"line":387},[25467,25472,25476,25481,25486,25490,25495,25500,25504],{"type":21,"tag":139,"props":25468,"children":25469},{"style":152},[25470],{"type":31,"value":25471},"worst ",{"type":21,"tag":139,"props":25473,"children":25474},{"style":146},[25475],{"type":31,"value":211},{"type":21,"tag":139,"props":25477,"children":25478},{"style":214},[25479],{"type":31,"value":25480}," max",{"type":21,"tag":139,"props":25482,"children":25483},{"style":152},[25484],{"type":31,"value":25485},"(errors, ",{"type":21,"tag":139,"props":25487,"children":25488},{"style":923},[25489],{"type":31,"value":4832},{"type":21,"tag":139,"props":25491,"children":25492},{"style":146},[25493],{"type":31,"value":25494},"=lambda",{"type":21,"tag":139,"props":25496,"children":25497},{"style":152},[25498],{"type":31,"value":25499}," x: x[",{"type":21,"tag":139,"props":25501,"children":25502},{"style":214},[25503],{"type":31,"value":328},{"type":21,"tag":139,"props":25505,"children":25506},{"style":152},[25507],{"type":31,"value":599},{"type":21,"tag":139,"props":25509,"children":25510},{"class":141,"line":396},[25511,25515,25519,25524,25528,25532,25536,25540,25544],{"type":21,"tag":139,"props":25512,"children":25513},{"style":152},[25514],{"type":31,"value":1749},{"type":21,"tag":139,"props":25516,"children":25517},{"style":146},[25518],{"type":31,"value":211},{"type":21,"tag":139,"props":25520,"children":25521},{"style":214},[25522],{"type":31,"value":25523}," min",{"type":21,"tag":139,"props":25525,"children":25526},{"style":152},[25527],{"type":31,"value":25485},{"type":21,"tag":139,"props":25529,"children":25530},{"style":923},[25531],{"type":31,"value":4832},{"type":21,"tag":139,"props":25533,"children":25534},{"style":146},[25535],{"type":31,"value":25494},{"type":21,"tag":139,"props":25537,"children":25538},{"style":152},[25539],{"type":31,"value":25499},{"type":21,"tag":139,"props":25541,"children":25542},{"style":214},[25543],{"type":31,"value":328},{"type":21,"tag":139,"props":25545,"children":25546},{"style":152},[25547],{"type":31,"value":599},{"type":21,"tag":139,"props":25549,"children":25550},{"class":141,"line":414},[25551,25555,25559,25563,25568,25572,25577,25581,25586,25591,25595,25600,25604,25609,25613,25617,25621,25625,25629],{"type":21,"tag":139,"props":25552,"children":25553},{"style":214},[25554],{"type":31,"value":948},{"type":21,"tag":139,"props":25556,"children":25557},{"style":152},[25558],{"type":31,"value":953},{"type":21,"tag":139,"props":25560,"children":25561},{"style":146},[25562],{"type":31,"value":7524},{"type":21,"tag":139,"props":25564,"children":25565},{"style":262},[25566],{"type":31,"value":25567},"\"Readout error — best qubit: ",{"type":21,"tag":139,"props":25569,"children":25570},{"style":214},[25571],{"type":31,"value":7534},{"type":21,"tag":139,"props":25573,"children":25574},{"style":152},[25575],{"type":31,"value":25576},"best[",{"type":21,"tag":139,"props":25578,"children":25579},{"style":214},[25580],{"type":31,"value":328},{"type":21,"tag":139,"props":25582,"children":25583},{"style":152},[25584],{"type":31,"value":25585},"]",{"type":21,"tag":139,"props":25587,"children":25588},{"style":146},[25589],{"type":31,"value":25590},":.4f",{"type":21,"tag":139,"props":25592,"children":25593},{"style":214},[25594],{"type":31,"value":7543},{"type":21,"tag":139,"props":25596,"children":25597},{"style":262},[25598],{"type":31,"value":25599},", worst: ",{"type":21,"tag":139,"props":25601,"children":25602},{"style":214},[25603],{"type":31,"value":7534},{"type":21,"tag":139,"props":25605,"children":25606},{"style":152},[25607],{"type":31,"value":25608},"worst[",{"type":21,"tag":139,"props":25610,"children":25611},{"style":214},[25612],{"type":31,"value":328},{"type":21,"tag":139,"props":25614,"children":25615},{"style":152},[25616],{"type":31,"value":25585},{"type":21,"tag":139,"props":25618,"children":25619},{"style":146},[25620],{"type":31,"value":25590},{"type":21,"tag":139,"props":25622,"children":25623},{"style":214},[25624],{"type":31,"value":7543},{"type":21,"tag":139,"props":25626,"children":25627},{"style":262},[25628],{"type":31,"value":15370},{"type":21,"tag":139,"props":25630,"children":25631},{"style":152},[25632],{"type":31,"value":270},{"type":21,"tag":22,"props":25634,"children":25635},{},[25636,25638,25643,25645,25650,25651,25656],{"type":31,"value":25637},"これを現行のほぼどのデバイスで実行しても、",{"type":21,"tag":12756,"props":25639,"children":25640},{},[25641],{"type":31,"value":25642},"同じチップ上",{"type":31,"value":25644}," での最良の量子ビットと最悪の量子ビットの差が、5倍以上になることが多いと分かるでしょう。この差は、あらゆる要約統計量からは見えません。だからこそ、トランスパイルと量子ビットの選択がこれほど重要になるのです。バックエンドの選び方については、",{"type":21,"tag":26,"props":25646,"children":25647},{"href":19066},[25648],{"type":31,"value":25649},"SDK 比較",{"type":31,"value":1071},{"type":21,"tag":26,"props":25652,"children":25653},{"href":1100},[25654],{"type":31,"value":25655},"ハードウェアガイド",{"type":31,"value":25657},"でさらに詳しく解説しています。",{"type":21,"tag":41,"props":25659,"children":25661},{"id":25660},"この分野は勝者となる量子ビット技術をまだ選んでいない",[25662],{"type":31,"value":25663},"この分野は、勝者となる量子ビット技術をまだ選んでいない",{"type":21,"tag":22,"props":25665,"children":25666},{},[25667],{"type":31,"value":25668},"その不在が注目に値するものがあります。この大統領令は、量子ビットの方式を一度も名指ししていません。超伝導回路、イオントラップ、光量子、中性原子、スピン量子ビットのいずれにも優先順位を付けていません。総称的に「量子を実現する構成要素技術」と述べるにとどまっています。",{"type":21,"tag":22,"props":25670,"children":25671},{},[25672],{"type":31,"value":25673},"これは意味のあるシグナルです。技術が成熟すると、調達文書は具体的になります。「何らかのスイッチング素子に基づく計算装置」のための国家戦略を書く人はいません。この意図的な曖昧さは、紛れもない現実を反映しています。2026年半ば時点で、明確に勝利した方式は存在しないのです。",{"type":21,"tag":22,"props":25675,"children":25676},{},[25677,25679,25685,25687,25693],{"type":31,"value":25678},"それぞれが異なる軸で先行しています — 超伝導チップはゲート速度と製造スケール、イオントラップは忠実度と全対全結合、中性原子は量子ビット数、光量子は室温動作とネットワーク接続性です。2026年の",{"type":21,"tag":26,"props":25680,"children":25682},{"href":25681},"\u002Fresearch\u002Fholographic-codes-quantum-gravity-2026",[25683],{"type":31,"value":25684},"ホログラフィック符号の実験",{"type":31,"value":25686},"はイオントラップ上で行われ、",{"type":21,"tag":26,"props":25688,"children":25690},{"href":25689},"\u002Fresearch\u002Fgoogle-below-threshold-2024",[25691],{"type":31,"value":25692},"Google の閾値以下の誤り訂正の成果",{"type":31,"value":25694},"は超伝導ハードウェア上で行われました。どちらも画期的な成果ですが、まったく異なるプラットフォーム上のものでした。",{"type":21,"tag":22,"props":25696,"children":25697},{},[25698,25700,25705],{"type":31,"value":25699},"量子コンピューティングを学ぶ人にとって、これは実は朗報であり、具体的な含意があります。",{"type":21,"tag":16802,"props":25701,"children":25702},{},[25703],{"type":31,"value":25704},"特定ベンダーのスタックに過度に特化しないこと。",{"type":31,"value":25706}," 回路、ゲート、測定、誤り緩和といった抽象概念はハードウェアを越えて通用します。ベンダー固有の API の詳細は、そうとは限りません。",{"type":21,"tag":41,"props":25708,"children":25710},{"id":25709},"いまや基準は現行の古典的能力を超えること",[25711],{"type":31,"value":25712},"いまや基準は「現行の古典的能力を超えること」",{"type":21,"tag":22,"props":25714,"children":25715},{},[25716,25718,25723],{"type":31,"value":25717},"この大統領令は、",{"type":21,"tag":16802,"props":25719,"children":25720},{},[25721],{"type":31,"value":25722},"Quantum Computer for Application Development and Discovery Science (QC-ADDS)",{"type":31,"value":25724}," の取り組みを立ち上げ、少なくとも1台のマシンをエネルギー省の施設に納入し、科学コミュニティが利用できるようにすることを目指しています。エネルギー長官は90日以内に、「変革的な科学応用……経済的に重要な応用へ、そして現行の古典コンピュータの能力を超える道筋の上にある」システムの仕様を特定しなければなりません。",{"type":21,"tag":22,"props":25726,"children":25727},{},[25728],{"type":31,"value":25729},"この言い回しには、注目すべき点が2つあります。",{"type":21,"tag":22,"props":25731,"children":25732},{},[25733,25735,25740,25742,25747,25749,25754],{"type":31,"value":25734},"第一に、その枠組みは商業的な優位性ではなく ",{"type":21,"tag":16802,"props":25736,"children":25737},{},[25738],{"type":31,"value":25739},"ディスカバリーサイエンス（発見のための科学）",{"type":31,"value":25741}," です。目標は、ビジネス上のタスクで古典コンピュータを打ち負かす製品ではなく、研究者が物事を知るために使う科学的な計測器です。これは実際に証拠が指し示す方向と一致しています。",{"type":21,"tag":26,"props":25743,"children":25744},{"href":23098},[25745],{"type":31,"value":25746},"IBM の2023年の量子ユーティリティの成果",{"type":31,"value":25748},"も、ホログラフィック符号の研究も、どちらも",{"type":21,"tag":12756,"props":25750,"children":25751},{},[25752],{"type":31,"value":25753},"物理学",{"type":31,"value":25755},"の実験でした。",{"type":21,"tag":22,"props":25757,"children":25758},{},[25759],{"type":31,"value":25760},"第二に、「〜への道筋の上にある」という表現は、この文中で実質的な役割を果たしています。仕様が定められようとしているマシンは到達点ではなく一段階だ、という認識の表れです。",{"type":21,"tag":41,"props":25762,"children":25764},{"id":25763},"分散量子コンピューティングが真剣な目標として登場する",[25765],{"type":31,"value":25763},{"type":21,"tag":22,"props":25767,"children":25768},{},[25769],{"type":31,"value":25770},"ネットワーキングに関する節に紛れ込んでいるのが、「分散量子コンピューティング」のための量子ネットワークを対象とした DOE の計画への要請です。",{"type":21,"tag":22,"props":25772,"children":25773},{},[25774],{"type":31,"value":25775},"これが重要なのは、スケーリングについての告白だからです。1台の巨大な量子プロセッサを構築するのは、とてつもなく困難です — 配線、冷却、クロストーク、歩留まりのすべてが、チップが大きくなるほど悪化します。複数の小さなプロセッサを1つの論理的なマシンに連結するのは代替となる道であり、それは別々の装置の間で、実用に足るだけの高い忠実度でもつれを分配できるかにかかっています。",{"type":21,"tag":22,"props":25777,"children":25778},{},[25779,25781,25786,25788,25792],{"type":31,"value":25780},"その基礎となるプリミティブが",{"type":21,"tag":26,"props":25782,"children":25784},{"href":25783},"\u002Fresearch\u002Fbennett-teleportation-1993",[25785],{"type":31,"value":32},{"type":31,"value":25787},"で、共有された",{"type":21,"tag":26,"props":25789,"children":25790},{"href":1150},[25791],{"type":31,"value":1153},{"type":31,"value":25793},"と2ビットの古典情報を使って、量子ビットの状態を場所から場所へ移動させます。実験的には何年も前から日常的に行われていますが — プロセッサ同士を編み上げられるほど高速に、かつ十分にクリーンに行うのは、そうではありません。これが5年間の計画目標として名指しされていることは、単一の巨大チップという戦略だけでは十分だと想定されていない証拠です。",{"type":21,"tag":41,"props":25795,"children":25797},{"id":25796},"人材ギャップがボトルネックとして扱われている",[25798],{"type":31,"value":25796},{"type":21,"tag":22,"props":25800,"children":25801},{},[25802],{"type":31,"value":25803},"この大統領令は NSF に対し、180日以内に「全米 QIST 人材育成研究所のネットワーク」を立ち上げるよう、採用・定着戦略とあわせて指示しています。",{"type":21,"tag":22,"props":25805,"children":25806},{},[25807],{"type":31,"value":25808},"人材に関する節は読み飛ばしがちですが、その記載は具体的なことを教えてくれます。量子分野の進展を縛る制約は、ハードウェアだけではないということです。量子プログラムを書き、デバッグし、その挙動を筋道立てて考えられる人材が足りていません — そしてその不足は今や、専用の機関を設けるに値するほど深刻だと見なされているのです。",{"type":21,"tag":22,"props":25810,"children":25811},{},[25812,25814,25819,25821,25826],{"type":31,"value":25813},"このサイトを読んでいる方にとって、これは文書全体の中で最も直接的に行動につながる部分です。希少だと言われているスキルは、今すぐ、無料で、実機のハードウェア上で習得できます。",{"type":21,"tag":26,"props":25815,"children":25816},{"href":18689},[25817],{"type":31,"value":25818},"コースページ",{"type":31,"value":25820},"には最良の体系的な選択肢をまとめてありますし、",{"type":21,"tag":26,"props":25822,"children":25823},{"href":3333},[25824],{"type":31,"value":25825},"入門ガイド",{"type":31,"value":25827},"を読めば、午後のひとときで実機の QPU 上に回路を走らせられるようになります。",{"type":21,"tag":41,"props":25829,"children":25831},{"id":25830},"この大統領令に含まれていないもの",[25832],{"type":31,"value":25830},{"type":21,"tag":22,"props":25834,"children":25835},{},[25836,25838,25843],{"type":31,"value":25837},"正確を期すために、はっきり述べておく価値があります。この大統領令には ",{"type":21,"tag":16802,"props":25839,"children":25840},{},[25841],{"type":31,"value":25842},"金額の記載が一切ありません",{"type":31,"value":25844},"。方向性を定め、責任を割り当て、期限を課してはいます — 各節にわたって90日、120日、180日、210日といった具合に — が、予算の充当は別のところから来ます。また、大統領令の期限は成果が出ることの保証でもありません。",{"type":21,"tag":22,"props":25846,"children":25847},{},[25848],{"type":31,"value":25849},"タイムラインは意図の表明として捉え、それを前提に計画を立てられるスケジュールとは考えないでください。",{"type":21,"tag":41,"props":25851,"children":25853},{"id":25852},"まとめ",[25854],{"type":31,"value":25852},{"type":21,"tag":22,"props":25856,"children":25857},{},[25858],{"type":31,"value":25859},"政治的な要素を取り除けば、EO 14413 は異例なほど率直な技術評価として読めます。",{"type":21,"tag":1112,"props":25861,"children":25862},{},[25863,25868,25873,25878,25883],{"type":21,"tag":72,"props":25864,"children":25865},{},[25866],{"type":31,"value":25867},"我々は量子コンピュータの性能を確実に測定できず、それは今や機関化を要するほど緊急の課題である。",{"type":21,"tag":72,"props":25869,"children":25870},{},[25871],{"type":31,"value":25872},"勝利した量子ビット技術はまだなく、賭けは分散されている。",{"type":21,"tag":72,"props":25874,"children":25875},{},[25876],{"type":31,"value":25877},"短期的な目標は商業的優位性ではなく、科学的発見である。",{"type":21,"tag":72,"props":25879,"children":25880},{},[25881],{"type":31,"value":25882},"スケーリングには、1台の巨大なチップを作るのではなく、チップ同士をネットワーク接続することが必要かもしれない。",{"type":21,"tag":72,"props":25884,"children":25885},{},[25886],{"type":31,"value":25887},"訓練された人材が足りておらず、それは一次的なボトルネックである。",{"type":21,"tag":22,"props":25889,"children":25890},{},[25891],{"type":31,"value":25892},"これらのどれも悲観的ではありません。「そもそもこれは動くのか」を通り越して、「どう測り、どうスケールさせ、どう人を配置するか」へ進んだ分野の姿です — これは、古典コンピューティングが1950年代に経た移行とおおむね同じものです。",{"type":21,"tag":22,"props":25894,"children":25895},{},[25896,25898,25903],{"type":31,"value":25897},"注目すべきは測定の問題です。ベンチマークは量子ビット数の記録に比べれば地味に聞こえますが、測定できないものは設計できませんし、量子優位性についての真剣な主張はすべて、最終的にはそこに立脚します。この分野が実際にどこへ向かっているのかを理解したいなら、見出しではなく誤り率を読めるようになりましょう — まずは",{"type":21,"tag":26,"props":25899,"children":25900},{"href":1142},[25901],{"type":31,"value":25902},"重要な用語の用語集",{"type":31,"value":25904},"から始めてください。",{"type":21,"tag":1168,"props":25906,"children":25907},{},[25908],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":25910},[25911,25912,25913,25914,25915,25916,25917],{"id":25075,"depth":168,"text":25078},{"id":25660,"depth":168,"text":25663},{"id":25709,"depth":168,"text":25712},{"id":25763,"depth":168,"text":25763},{"id":25796,"depth":168,"text":25796},{"id":25830,"depth":168,"text":25830},{"id":25852,"depth":168,"text":25852},"content:ja:blog:quantum-benchmarking-eo-14413.md","ja\u002Fblog\u002Fquantum-benchmarking-eo-14413.md","ja\u002Fblog\u002Fquantum-benchmarking-eo-14413",{"_path":19047,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":25922,"description":25923,"date":25047,"author":11,"tags":25924,"readingTime":361,"body":25925,"_type":1187,"_id":28994,"_source":1189,"_file":28995,"_stem":28996,"_extension":1192},"Quantum Error Mitigation: A Practical Guide (And When It Lies to You)","Hands-on error mitigation for NISQ hardware: readout calibration, zero-noise extrapolation, Pauli twirling, and dynamical decoupling, plus the ZNE failure mode that manufactures fake improvements.",[14720,14,13882],{"type":18,"children":25926,"toc":28983},[25927,25932,25937,25943,25948,25974,25995,26000,26108,26127,26133,26138,26181,27522,27532,27540,27568,27594,27600,27620,27631,27825,27830,27836,27848,27853,27865,27871,27883,27911,28641,28651,28659,28664,28670,28675,28683,28695,28722,28734,28744,28750,28755,28773,28805,28821,28827,28839,28852,28858,28863,28916,28939,28951,28979],{"type":21,"tag":22,"props":25928,"children":25929},{},[25930],{"type":31,"value":25931},"You ran your circuit on real hardware. The answer is wrong. Not catastrophically wrong. Wrong enough to be useless. Error mitigation is the set of tricks that gets you from \"wrong\" to \"usable\" without waiting a decade for fault tolerance.",{"type":21,"tag":22,"props":25933,"children":25934},{},[25935],{"type":31,"value":25936},"This guide covers what works, in the order you should try it, with runnable Qiskit code. It also covers the part most tutorials skip: how the most popular mitigation technique sometimes produces a convincing improvement that is entirely fictitious, and the one-line sanity check that catches it.",{"type":21,"tag":41,"props":25938,"children":25940},{"id":25939},"mitigation-is-not-correction",[25941],{"type":31,"value":25942},"Mitigation Is Not Correction",{"type":21,"tag":22,"props":25944,"children":25945},{},[25946],{"type":31,"value":25947},"These get conflated constantly, so let's be precise.",{"type":21,"tag":22,"props":25949,"children":25950},{},[25951,25958,25960,25965,25967,25972],{"type":21,"tag":16802,"props":25952,"children":25953},{},[25954],{"type":21,"tag":26,"props":25955,"children":25956},{"href":15828},[25957],{"type":31,"value":22579},{"type":31,"value":25959}," detects and fixes errors ",{"type":21,"tag":12756,"props":25961,"children":25962},{},[25963],{"type":31,"value":25964},"during",{"type":31,"value":25966}," the computation. It encodes one logical qubit across many physical qubits, measures syndromes with ancillas, and applies corrections in real time. It preserves arbitrary quantum states to arbitrary depth, but it demands hardware below the fault-tolerance threshold and roughly 1,000 times qubit overhead. Our ",{"type":21,"tag":26,"props":25968,"children":25969},{"href":15609},[25970],{"type":31,"value":25971},"error correction primer",{"type":31,"value":25973}," walks through how the surface code does this.",{"type":21,"tag":22,"props":25975,"children":25976},{},[25977,25986,25988,25993],{"type":21,"tag":16802,"props":25978,"children":25979},{},[25980],{"type":21,"tag":26,"props":25981,"children":25983},{"href":25982},"\u002Fglossary\u002Ferror-mitigation",[25984],{"type":31,"value":25985},"Error mitigation",{"type":31,"value":25987}," does nothing during the computation. It runs the noisy circuit, collects noisy results, and applies classical statistics afterwards to ",{"type":21,"tag":12756,"props":25989,"children":25990},{},[25991],{"type":31,"value":25992},"estimate",{"type":31,"value":25994}," what a noiseless machine would have said.",{"type":21,"tag":22,"props":25996,"children":25997},{},[25998],{"type":31,"value":25999},"The practical differences matter:",{"type":21,"tag":3150,"props":26001,"children":26002},{},[26003,26022],{"type":21,"tag":3154,"props":26004,"children":26005},{},[26006],{"type":21,"tag":3158,"props":26007,"children":26008},{},[26009,26012,26017],{"type":21,"tag":3162,"props":26010,"children":26011},{},[],{"type":21,"tag":3162,"props":26013,"children":26014},{},[26015],{"type":31,"value":26016},"Correction",{"type":21,"tag":3162,"props":26018,"children":26019},{},[26020],{"type":31,"value":26021},"Mitigation",{"type":21,"tag":3176,"props":26023,"children":26024},{},[26025,26054,26072,26090],{"type":21,"tag":3158,"props":26026,"children":26027},{},[26028,26033,26044],{"type":21,"tag":3183,"props":26029,"children":26030},{},[26031],{"type":31,"value":26032},"Cost",{"type":21,"tag":3183,"props":26034,"children":26035},{},[26036,26038,26042],{"type":31,"value":26037},"Extra ",{"type":21,"tag":16802,"props":26039,"children":26040},{},[26041],{"type":31,"value":22844},{"type":31,"value":26043}," (~1000×)",{"type":21,"tag":3183,"props":26045,"children":26046},{},[26047,26048,26052],{"type":31,"value":26037},{"type":21,"tag":16802,"props":26049,"children":26050},{},[26051],{"type":31,"value":926},{"type":31,"value":26053}," (2–100×)",{"type":21,"tag":3158,"props":26055,"children":26056},{},[26057,26062,26067],{"type":21,"tag":3183,"props":26058,"children":26059},{},[26060],{"type":31,"value":26061},"Recovers",{"type":21,"tag":3183,"props":26063,"children":26064},{},[26065],{"type":31,"value":26066},"The quantum state",{"type":21,"tag":3183,"props":26068,"children":26069},{},[26070],{"type":31,"value":26071},"An expectation value",{"type":21,"tag":3158,"props":26073,"children":26074},{},[26075,26080,26085],{"type":21,"tag":3183,"props":26076,"children":26077},{},[26078],{"type":31,"value":26079},"Scales to",{"type":21,"tag":3183,"props":26081,"children":26082},{},[26083],{"type":31,"value":26084},"Arbitrary depth",{"type":21,"tag":3183,"props":26086,"children":26087},{},[26088],{"type":31,"value":26089},"Shallow-to-moderate depth only",{"type":21,"tag":3158,"props":26091,"children":26092},{},[26093,26098,26103],{"type":21,"tag":3183,"props":26094,"children":26095},{},[26096],{"type":31,"value":26097},"Available today",{"type":21,"tag":3183,"props":26099,"children":26100},{},[26101],{"type":31,"value":26102},"Barely",{"type":21,"tag":3183,"props":26104,"children":26105},{},[26106],{"type":31,"value":26107},"Yes, right now",{"type":21,"tag":22,"props":26109,"children":26110},{},[26111,26113,26118,26120,26125],{"type":31,"value":26112},"That last row is why mitigation dominates ",{"type":21,"tag":26,"props":26114,"children":26115},{"href":22036},[26116],{"type":31,"value":26117},"NISQ-era",{"type":31,"value":26119}," work. But note row three: mitigation's overhead grows ",{"type":21,"tag":12756,"props":26121,"children":26122},{},[26123],{"type":31,"value":26124},"exponentially",{"type":31,"value":26126}," with circuit depth and error rate. There is a depth beyond which no amount of shots rescues you. Knowing where that wall is (for your circuit, on your device) is the entire skill.",{"type":21,"tag":41,"props":26128,"children":26130},{"id":26129},"step-1-readout-error-mitigation-do-this-first",[26131],{"type":31,"value":26132},"Step 1: Readout Error Mitigation (Do This First)",{"type":21,"tag":22,"props":26134,"children":26135},{},[26136],{"type":31,"value":26137},"Measurement errors are the cheapest thing to fix and often the biggest single contributor. A superconducting qubit typically misreads 1–5% of the time. On 4 qubits at 3% each, you're losing ~11% of your signal before any gate error is counted.",{"type":21,"tag":22,"props":26139,"children":26140},{},[26141,26143,26149,26151,26157,26159,26164,26166,26171,26173,26179],{"type":31,"value":26142},"The fix: characterize the readout with calibration circuits, then invert. Prepare each computational basis state, measure it, and record where the counts land. That gives you an assignment matrix ",{"type":21,"tag":104,"props":26144,"children":26146},{"className":26145},[],[26147],{"type":31,"value":26148},"M",{"type":31,"value":26150}," where ",{"type":21,"tag":104,"props":26152,"children":26154},{"className":26153},[],[26155],{"type":31,"value":26156},"M[i][j]",{"type":31,"value":26158}," is the probability of reading ",{"type":21,"tag":104,"props":26160,"children":26162},{"className":26161},[],[26163],{"type":31,"value":1833},{"type":31,"value":26165}," when the true state was ",{"type":21,"tag":104,"props":26167,"children":26169},{"className":26168},[],[26170],{"type":31,"value":1841},{"type":31,"value":26172},". Your observed distribution is ",{"type":21,"tag":104,"props":26174,"children":26176},{"className":26175},[],[26177],{"type":31,"value":26178},"M @ p_true",{"type":31,"value":26180},", so apply the pseudo-inverse.",{"type":21,"tag":129,"props":26182,"children":26184},{"code":26183,"language":133,"meta":7,"className":131,"style":7},"import numpy as np\nfrom qiskit import QuantumCircuit, transpile\nfrom qiskit_aer import AerSimulator\nfrom qiskit_aer.noise import NoiseModel, depolarizing_error, ReadoutError\n\ndef build_noise(p1=0.002, p2=0.02, p_read=0.05):\n    nm = NoiseModel()\n    nm.add_all_qubit_quantum_error(depolarizing_error(p1, 1), [\"rz\", \"sx\", \"x\", \"h\"])\n    nm.add_all_qubit_quantum_error(depolarizing_error(p2, 2), [\"cx\", \"cz\", \"ecr\"])\n    nm.add_all_qubit_readout_error(\n        ReadoutError([[1 - p_read, p_read], [p_read, 1 - p_read]])\n    )\n    return nm\n\nbackend = AerSimulator(noise_model=build_noise())\nSHOTS = 40000\n\ndef calibration_matrix(n, backend, shots=20000):\n    M = np.zeros((2**n, 2**n))\n    for i in range(2**n):\n        qc = QuantumCircuit(n, n)\n        bits = format(i, f\"0{n}b\")[::-1]      # Qiskit is little-endian\n        for q, b in enumerate(bits):\n            if b == \"1\":\n                qc.x(q)\n        qc.measure(range(n), range(n))\n        counts = backend.run(transpile(qc, backend), shots=shots).result().get_counts()\n        for key, v in counts.items():\n            M[int(key, 2), i] = v \u002F shots\n    return M\n\nn = 2\nMinv = np.linalg.pinv(calibration_matrix(n, backend))\n\nbell = QuantumCircuit(2, 2)\nbell.h(0)\nbell.cx(0, 1)\nbell.measure([0, 1], [0, 1])\n\nraw = backend.run(transpile(bell, backend), shots=SHOTS).result().get_counts()\nvec = np.array([raw.get(format(i, f\"0{n}b\"), 0) for i in range(2**n)], float) \u002F SHOTS\n\nmit = np.clip(Minv @ vec, 0, None)\nmit \u002F= mit.sum()\n\nprint(\"raw      :\", {format(i, \"02b\"): round(vec[i], 4) for i in range(4)})\nprint(\"mitigated:\", {format(i, \"02b\"): round(mit[i], 4) for i in range(4)})\n",[26185],{"type":21,"tag":104,"props":26186,"children":26187},{"__ignoreMap":7},[26188,26207,26226,26245,26265,26272,26330,26346,26396,26438,26446,26481,26489,26501,26508,26536,26554,26561,26591,26633,26669,26686,26757,26783,26810,26818,26844,26874,26895,26940,26953,26961,26977,26995,27003,27036,27053,27078,27119,27127,27161,27275,27283,27328,27346,27354,27440],{"type":21,"tag":139,"props":26189,"children":26190},{"class":141,"line":142},[26191,26195,26199,26203],{"type":21,"tag":139,"props":26192,"children":26193},{"style":146},[26194],{"type":31,"value":160},{"type":21,"tag":139,"props":26196,"children":26197},{"style":152},[26198],{"type":31,"value":8517},{"type":21,"tag":139,"props":26200,"children":26201},{"style":146},[26202],{"type":31,"value":5343},{"type":21,"tag":139,"props":26204,"children":26205},{"style":152},[26206],{"type":31,"value":8619},{"type":21,"tag":139,"props":26208,"children":26209},{"class":141,"line":168},[26210,26214,26218,26222],{"type":21,"tag":139,"props":26211,"children":26212},{"style":146},[26213],{"type":31,"value":149},{"type":21,"tag":139,"props":26215,"children":26216},{"style":152},[26217],{"type":31,"value":155},{"type":21,"tag":139,"props":26219,"children":26220},{"style":146},[26221],{"type":31,"value":160},{"type":21,"tag":139,"props":26223,"children":26224},{"style":152},[26225],{"type":31,"value":20056},{"type":21,"tag":139,"props":26227,"children":26228},{"class":141,"line":190},[26229,26233,26237,26241],{"type":21,"tag":139,"props":26230,"children":26231},{"style":146},[26232],{"type":31,"value":149},{"type":21,"tag":139,"props":26234,"children":26235},{"style":152},[26236],{"type":31,"value":178},{"type":21,"tag":139,"props":26238,"children":26239},{"style":146},[26240],{"type":31,"value":160},{"type":21,"tag":139,"props":26242,"children":26243},{"style":152},[26244],{"type":31,"value":187},{"type":21,"tag":139,"props":26246,"children":26247},{"class":141,"line":200},[26248,26252,26256,26260],{"type":21,"tag":139,"props":26249,"children":26250},{"style":146},[26251],{"type":31,"value":149},{"type":21,"tag":139,"props":26253,"children":26254},{"style":152},[26255],{"type":31,"value":14017},{"type":21,"tag":139,"props":26257,"children":26258},{"style":146},[26259],{"type":31,"value":160},{"type":21,"tag":139,"props":26261,"children":26262},{"style":152},[26263],{"type":31,"value":26264}," NoiseModel, depolarizing_error, ReadoutError\n",{"type":21,"tag":139,"props":26266,"children":26267},{"class":141,"line":226},[26268],{"type":21,"tag":139,"props":26269,"children":26270},{"emptyLinePlaceholder":194},[26271],{"type":31,"value":197},{"type":21,"tag":139,"props":26273,"children":26274},{"class":141,"line":234},[26275,26279,26284,26289,26293,26298,26303,26307,26312,26317,26321,26326],{"type":21,"tag":139,"props":26276,"children":26277},{"style":146},[26278],{"type":31,"value":5487},{"type":21,"tag":139,"props":26280,"children":26281},{"style":4509},[26282],{"type":31,"value":26283}," build_noise",{"type":21,"tag":139,"props":26285,"children":26286},{"style":152},[26287],{"type":31,"value":26288},"(p1",{"type":21,"tag":139,"props":26290,"children":26291},{"style":146},[26292],{"type":31,"value":211},{"type":21,"tag":139,"props":26294,"children":26295},{"style":214},[26296],{"type":31,"value":26297},"0.002",{"type":21,"tag":139,"props":26299,"children":26300},{"style":152},[26301],{"type":31,"value":26302},", p2",{"type":21,"tag":139,"props":26304,"children":26305},{"style":146},[26306],{"type":31,"value":211},{"type":21,"tag":139,"props":26308,"children":26309},{"style":214},[26310],{"type":31,"value":26311},"0.02",{"type":21,"tag":139,"props":26313,"children":26314},{"style":152},[26315],{"type":31,"value":26316},", p_read",{"type":21,"tag":139,"props":26318,"children":26319},{"style":146},[26320],{"type":31,"value":211},{"type":21,"tag":139,"props":26322,"children":26323},{"style":214},[26324],{"type":31,"value":26325},"0.05",{"type":21,"tag":139,"props":26327,"children":26328},{"style":152},[26329],{"type":31,"value":7430},{"type":21,"tag":139,"props":26331,"children":26332},{"class":141,"line":273},[26333,26338,26342],{"type":21,"tag":139,"props":26334,"children":26335},{"style":152},[26336],{"type":31,"value":26337},"    nm ",{"type":21,"tag":139,"props":26339,"children":26340},{"style":146},[26341],{"type":31,"value":211},{"type":21,"tag":139,"props":26343,"children":26344},{"style":152},[26345],{"type":31,"value":14494},{"type":21,"tag":139,"props":26347,"children":26348},{"class":141,"line":309},[26349,26354,26358,26362,26367,26371,26375,26379,26383,26387,26392],{"type":21,"tag":139,"props":26350,"children":26351},{"style":152},[26352],{"type":31,"value":26353},"    nm.add_all_qubit_quantum_error(depolarizing_error(p1, ",{"type":21,"tag":139,"props":26355,"children":26356},{"style":214},[26357],{"type":31,"value":328},{"type":21,"tag":139,"props":26359,"children":26360},{"style":152},[26361],{"type":31,"value":14520},{"type":21,"tag":139,"props":26363,"children":26364},{"style":262},[26365],{"type":31,"value":26366},"\"rz\"",{"type":21,"tag":139,"props":26368,"children":26369},{"style":152},[26370],{"type":31,"value":259},{"type":21,"tag":139,"props":26372,"children":26373},{"style":262},[26374],{"type":31,"value":14525},{"type":21,"tag":139,"props":26376,"children":26377},{"style":152},[26378],{"type":31,"value":259},{"type":21,"tag":139,"props":26380,"children":26381},{"style":262},[26382],{"type":31,"value":14534},{"type":21,"tag":139,"props":26384,"children":26385},{"style":152},[26386],{"type":31,"value":259},{"type":21,"tag":139,"props":26388,"children":26389},{"style":262},[26390],{"type":31,"value":26391},"\"h\"",{"type":21,"tag":139,"props":26393,"children":26394},{"style":152},[26395],{"type":31,"value":599},{"type":21,"tag":139,"props":26397,"children":26398},{"class":141,"line":16},[26399,26404,26408,26412,26416,26420,26425,26429,26434],{"type":21,"tag":139,"props":26400,"children":26401},{"style":152},[26402],{"type":31,"value":26403},"    nm.add_all_qubit_quantum_error(depolarizing_error(p2, ",{"type":21,"tag":139,"props":26405,"children":26406},{"style":214},[26407],{"type":31,"value":293},{"type":21,"tag":139,"props":26409,"children":26410},{"style":152},[26411],{"type":31,"value":14520},{"type":21,"tag":139,"props":26413,"children":26414},{"style":262},[26415],{"type":31,"value":14567},{"type":21,"tag":139,"props":26417,"children":26418},{"style":152},[26419],{"type":31,"value":259},{"type":21,"tag":139,"props":26421,"children":26422},{"style":262},[26423],{"type":31,"value":26424},"\"cz\"",{"type":21,"tag":139,"props":26426,"children":26427},{"style":152},[26428],{"type":31,"value":259},{"type":21,"tag":139,"props":26430,"children":26431},{"style":262},[26432],{"type":31,"value":26433},"\"ecr\"",{"type":21,"tag":139,"props":26435,"children":26436},{"style":152},[26437],{"type":31,"value":599},{"type":21,"tag":139,"props":26439,"children":26440},{"class":141,"line":361},[26441],{"type":21,"tag":139,"props":26442,"children":26443},{"style":152},[26444],{"type":31,"value":26445},"    nm.add_all_qubit_readout_error(\n",{"type":21,"tag":139,"props":26447,"children":26448},{"class":141,"line":369},[26449,26454,26458,26463,26468,26472,26476],{"type":21,"tag":139,"props":26450,"children":26451},{"style":152},[26452],{"type":31,"value":26453},"        ReadoutError([[",{"type":21,"tag":139,"props":26455,"children":26456},{"style":214},[26457],{"type":31,"value":328},{"type":21,"tag":139,"props":26459,"children":26460},{"style":146},[26461],{"type":31,"value":26462}," -",{"type":21,"tag":139,"props":26464,"children":26465},{"style":152},[26466],{"type":31,"value":26467}," p_read, p_read], [p_read, ",{"type":21,"tag":139,"props":26469,"children":26470},{"style":214},[26471],{"type":31,"value":328},{"type":21,"tag":139,"props":26473,"children":26474},{"style":146},[26475],{"type":31,"value":26462},{"type":21,"tag":139,"props":26477,"children":26478},{"style":152},[26479],{"type":31,"value":26480}," p_read]])\n",{"type":21,"tag":139,"props":26482,"children":26483},{"class":141,"line":378},[26484],{"type":21,"tag":139,"props":26485,"children":26486},{"style":152},[26487],{"type":31,"value":26488},"    )\n",{"type":21,"tag":139,"props":26490,"children":26491},{"class":141,"line":387},[26492,26496],{"type":21,"tag":139,"props":26493,"children":26494},{"style":146},[26495],{"type":31,"value":5582},{"type":21,"tag":139,"props":26497,"children":26498},{"style":152},[26499],{"type":31,"value":26500}," nm\n",{"type":21,"tag":139,"props":26502,"children":26503},{"class":141,"line":396},[26504],{"type":21,"tag":139,"props":26505,"children":26506},{"emptyLinePlaceholder":194},[26507],{"type":31,"value":197},{"type":21,"tag":139,"props":26509,"children":26510},{"class":141,"line":414},[26511,26515,26519,26523,26527,26531],{"type":21,"tag":139,"props":26512,"children":26513},{"style":152},[26514],{"type":31,"value":6443},{"type":21,"tag":139,"props":26516,"children":26517},{"style":146},[26518],{"type":31,"value":211},{"type":21,"tag":139,"props":26520,"children":26521},{"style":152},[26522],{"type":31,"value":14594},{"type":21,"tag":139,"props":26524,"children":26525},{"style":923},[26526],{"type":31,"value":14599},{"type":21,"tag":139,"props":26528,"children":26529},{"style":146},[26530],{"type":31,"value":211},{"type":21,"tag":139,"props":26532,"children":26533},{"style":152},[26534],{"type":31,"value":26535},"build_noise())\n",{"type":21,"tag":139,"props":26537,"children":26538},{"class":141,"line":12589},[26539,26544,26549],{"type":21,"tag":139,"props":26540,"children":26541},{"style":214},[26542],{"type":31,"value":26543},"SHOTS",{"type":21,"tag":139,"props":26545,"children":26546},{"style":146},[26547],{"type":31,"value":26548}," =",{"type":21,"tag":139,"props":26550,"children":26551},{"style":214},[26552],{"type":31,"value":26553}," 40000\n",{"type":21,"tag":139,"props":26555,"children":26556},{"class":141,"line":12606},[26557],{"type":21,"tag":139,"props":26558,"children":26559},{"emptyLinePlaceholder":194},[26560],{"type":31,"value":197},{"type":21,"tag":139,"props":26562,"children":26563},{"class":141,"line":12622},[26564,26568,26573,26578,26582,26587],{"type":21,"tag":139,"props":26565,"children":26566},{"style":146},[26567],{"type":31,"value":5487},{"type":21,"tag":139,"props":26569,"children":26570},{"style":4509},[26571],{"type":31,"value":26572}," calibration_matrix",{"type":21,"tag":139,"props":26574,"children":26575},{"style":152},[26576],{"type":31,"value":26577},"(n, backend, shots",{"type":21,"tag":139,"props":26579,"children":26580},{"style":146},[26581],{"type":31,"value":211},{"type":21,"tag":139,"props":26583,"children":26584},{"style":214},[26585],{"type":31,"value":26586},"20000",{"type":21,"tag":139,"props":26588,"children":26589},{"style":152},[26590],{"type":31,"value":7430},{"type":21,"tag":139,"props":26592,"children":26593},{"class":141,"line":12630},[26594,26599,26603,26608,26612,26616,26620,26624,26628],{"type":21,"tag":139,"props":26595,"children":26596},{"style":152},[26597],{"type":31,"value":26598},"    M ",{"type":21,"tag":139,"props":26600,"children":26601},{"style":146},[26602],{"type":31,"value":211},{"type":21,"tag":139,"props":26604,"children":26605},{"style":152},[26606],{"type":31,"value":26607}," np.zeros((",{"type":21,"tag":139,"props":26609,"children":26610},{"style":214},[26611],{"type":31,"value":293},{"type":21,"tag":139,"props":26613,"children":26614},{"style":146},[26615],{"type":31,"value":4801},{"type":21,"tag":139,"props":26617,"children":26618},{"style":152},[26619],{"type":31,"value":19356},{"type":21,"tag":139,"props":26621,"children":26622},{"style":214},[26623],{"type":31,"value":293},{"type":21,"tag":139,"props":26625,"children":26626},{"style":146},[26627],{"type":31,"value":4801},{"type":21,"tag":139,"props":26629,"children":26630},{"style":152},[26631],{"type":31,"value":26632},"n))\n",{"type":21,"tag":139,"props":26634,"children":26635},{"class":141,"line":17747},[26636,26640,26644,26648,26652,26656,26660,26664],{"type":21,"tag":139,"props":26637,"children":26638},{"style":146},[26639],{"type":31,"value":17024},{"type":21,"tag":139,"props":26641,"children":26642},{"style":152},[26643],{"type":31,"value":7408},{"type":21,"tag":139,"props":26645,"children":26646},{"style":146},[26647],{"type":31,"value":1496},{"type":21,"tag":139,"props":26649,"children":26650},{"style":214},[26651],{"type":31,"value":7417},{"type":21,"tag":139,"props":26653,"children":26654},{"style":152},[26655],{"type":31,"value":953},{"type":21,"tag":139,"props":26657,"children":26658},{"style":214},[26659],{"type":31,"value":293},{"type":21,"tag":139,"props":26661,"children":26662},{"style":146},[26663],{"type":31,"value":4801},{"type":21,"tag":139,"props":26665,"children":26666},{"style":152},[26667],{"type":31,"value":26668},"n):\n",{"type":21,"tag":139,"props":26670,"children":26671},{"class":141,"line":17765},[26672,26677,26681],{"type":21,"tag":139,"props":26673,"children":26674},{"style":152},[26675],{"type":31,"value":26676},"        qc ",{"type":21,"tag":139,"props":26678,"children":26679},{"style":146},[26680],{"type":31,"value":211},{"type":21,"tag":139,"props":26682,"children":26683},{"style":152},[26684],{"type":31,"value":26685}," QuantumCircuit(n, n)\n",{"type":21,"tag":139,"props":26687,"children":26688},{"class":141,"line":17790},[26689,26694,26698,26703,26708,26712,26717,26721,26725,26729,26734,26739,26743,26747,26752],{"type":21,"tag":139,"props":26690,"children":26691},{"style":152},[26692],{"type":31,"value":26693},"        bits ",{"type":21,"tag":139,"props":26695,"children":26696},{"style":146},[26697],{"type":31,"value":211},{"type":21,"tag":139,"props":26699,"children":26700},{"style":214},[26701],{"type":31,"value":26702}," format",{"type":21,"tag":139,"props":26704,"children":26705},{"style":152},[26706],{"type":31,"value":26707},"(i, ",{"type":21,"tag":139,"props":26709,"children":26710},{"style":146},[26711],{"type":31,"value":7524},{"type":21,"tag":139,"props":26713,"children":26714},{"style":262},[26715],{"type":31,"value":26716},"\"0",{"type":21,"tag":139,"props":26718,"children":26719},{"style":214},[26720],{"type":31,"value":7534},{"type":21,"tag":139,"props":26722,"children":26723},{"style":152},[26724],{"type":31,"value":19605},{"type":21,"tag":139,"props":26726,"children":26727},{"style":214},[26728],{"type":31,"value":7543},{"type":21,"tag":139,"props":26730,"children":26731},{"style":262},[26732],{"type":31,"value":26733},"b\"",{"type":21,"tag":139,"props":26735,"children":26736},{"style":152},[26737],{"type":31,"value":26738},")[::",{"type":21,"tag":139,"props":26740,"children":26741},{"style":146},[26742],{"type":31,"value":825},{"type":21,"tag":139,"props":26744,"children":26745},{"style":214},[26746],{"type":31,"value":328},{"type":21,"tag":139,"props":26748,"children":26749},{"style":152},[26750],{"type":31,"value":26751},"]      ",{"type":21,"tag":139,"props":26753,"children":26754},{"style":220},[26755],{"type":31,"value":26756},"# Qiskit is little-endian\n",{"type":21,"tag":139,"props":26758,"children":26759},{"class":141,"line":17817},[26760,26764,26769,26773,26778],{"type":21,"tag":139,"props":26761,"children":26762},{"style":146},[26763],{"type":31,"value":20305},{"type":21,"tag":139,"props":26765,"children":26766},{"style":152},[26767],{"type":31,"value":26768}," q, b ",{"type":21,"tag":139,"props":26770,"children":26771},{"style":146},[26772],{"type":31,"value":1496},{"type":21,"tag":139,"props":26774,"children":26775},{"style":214},[26776],{"type":31,"value":26777}," enumerate",{"type":21,"tag":139,"props":26779,"children":26780},{"style":152},[26781],{"type":31,"value":26782},"(bits):\n",{"type":21,"tag":139,"props":26784,"children":26785},{"class":141,"line":17843},[26786,26791,26796,26800,26805],{"type":21,"tag":139,"props":26787,"children":26788},{"style":146},[26789],{"type":31,"value":26790},"            if",{"type":21,"tag":139,"props":26792,"children":26793},{"style":152},[26794],{"type":31,"value":26795}," b ",{"type":21,"tag":139,"props":26797,"children":26798},{"style":146},[26799],{"type":31,"value":7335},{"type":21,"tag":139,"props":26801,"children":26802},{"style":262},[26803],{"type":31,"value":26804}," \"1\"",{"type":21,"tag":139,"props":26806,"children":26807},{"style":152},[26808],{"type":31,"value":26809},":\n",{"type":21,"tag":139,"props":26811,"children":26812},{"class":141,"line":17852},[26813],{"type":21,"tag":139,"props":26814,"children":26815},{"style":152},[26816],{"type":31,"value":26817},"                qc.x(q)\n",{"type":21,"tag":139,"props":26819,"children":26820},{"class":141,"line":17864},[26821,26826,26830,26835,26839],{"type":21,"tag":139,"props":26822,"children":26823},{"style":152},[26824],{"type":31,"value":26825},"        qc.measure(",{"type":21,"tag":139,"props":26827,"children":26828},{"style":214},[26829],{"type":31,"value":17713},{"type":21,"tag":139,"props":26831,"children":26832},{"style":152},[26833],{"type":31,"value":26834},"(n), ",{"type":21,"tag":139,"props":26836,"children":26837},{"style":214},[26838],{"type":31,"value":17713},{"type":21,"tag":139,"props":26840,"children":26841},{"style":152},[26842],{"type":31,"value":26843},"(n))\n",{"type":21,"tag":139,"props":26845,"children":26846},{"class":141,"line":17872},[26847,26852,26856,26861,26865,26869],{"type":21,"tag":139,"props":26848,"children":26849},{"style":152},[26850],{"type":31,"value":26851},"        counts ",{"type":21,"tag":139,"props":26853,"children":26854},{"style":146},[26855],{"type":31,"value":211},{"type":21,"tag":139,"props":26857,"children":26858},{"style":152},[26859],{"type":31,"value":26860}," backend.run(transpile(qc, backend), ",{"type":21,"tag":139,"props":26862,"children":26863},{"style":923},[26864],{"type":31,"value":926},{"type":21,"tag":139,"props":26866,"children":26867},{"style":146},[26868],{"type":31,"value":211},{"type":21,"tag":139,"props":26870,"children":26871},{"style":152},[26872],{"type":31,"value":26873},"shots).result().get_counts()\n",{"type":21,"tag":139,"props":26875,"children":26876},{"class":141,"line":17925},[26877,26881,26886,26890],{"type":21,"tag":139,"props":26878,"children":26879},{"style":146},[26880],{"type":31,"value":20305},{"type":21,"tag":139,"props":26882,"children":26883},{"style":152},[26884],{"type":31,"value":26885}," key, v ",{"type":21,"tag":139,"props":26887,"children":26888},{"style":146},[26889],{"type":31,"value":1496},{"type":21,"tag":139,"props":26891,"children":26892},{"style":152},[26893],{"type":31,"value":26894}," counts.items():\n",{"type":21,"tag":139,"props":26896,"children":26898},{"class":141,"line":26897},29,[26899,26904,26908,26913,26917,26922,26926,26931,26935],{"type":21,"tag":139,"props":26900,"children":26901},{"style":152},[26902],{"type":31,"value":26903},"            M[",{"type":21,"tag":139,"props":26905,"children":26906},{"style":214},[26907],{"type":31,"value":16981},{"type":21,"tag":139,"props":26909,"children":26910},{"style":152},[26911],{"type":31,"value":26912},"(key, ",{"type":21,"tag":139,"props":26914,"children":26915},{"style":214},[26916],{"type":31,"value":293},{"type":21,"tag":139,"props":26918,"children":26919},{"style":152},[26920],{"type":31,"value":26921},"), i] ",{"type":21,"tag":139,"props":26923,"children":26924},{"style":146},[26925],{"type":31,"value":211},{"type":21,"tag":139,"props":26927,"children":26928},{"style":152},[26929],{"type":31,"value":26930}," v ",{"type":21,"tag":139,"props":26932,"children":26933},{"style":146},[26934],{"type":31,"value":5062},{"type":21,"tag":139,"props":26936,"children":26937},{"style":152},[26938],{"type":31,"value":26939}," shots\n",{"type":21,"tag":139,"props":26941,"children":26943},{"class":141,"line":26942},30,[26944,26948],{"type":21,"tag":139,"props":26945,"children":26946},{"style":146},[26947],{"type":31,"value":5582},{"type":21,"tag":139,"props":26949,"children":26950},{"style":152},[26951],{"type":31,"value":26952}," M\n",{"type":21,"tag":139,"props":26954,"children":26956},{"class":141,"line":26955},31,[26957],{"type":21,"tag":139,"props":26958,"children":26959},{"emptyLinePlaceholder":194},[26960],{"type":31,"value":197},{"type":21,"tag":139,"props":26962,"children":26964},{"class":141,"line":26963},32,[26965,26969,26973],{"type":21,"tag":139,"props":26966,"children":26967},{"style":152},[26968],{"type":31,"value":19287},{"type":21,"tag":139,"props":26970,"children":26971},{"style":146},[26972],{"type":31,"value":211},{"type":21,"tag":139,"props":26974,"children":26975},{"style":214},[26976],{"type":31,"value":1604},{"type":21,"tag":139,"props":26978,"children":26980},{"class":141,"line":26979},33,[26981,26986,26990],{"type":21,"tag":139,"props":26982,"children":26983},{"style":152},[26984],{"type":31,"value":26985},"Minv ",{"type":21,"tag":139,"props":26987,"children":26988},{"style":146},[26989],{"type":31,"value":211},{"type":21,"tag":139,"props":26991,"children":26992},{"style":152},[26993],{"type":31,"value":26994}," np.linalg.pinv(calibration_matrix(n, backend))\n",{"type":21,"tag":139,"props":26996,"children":26998},{"class":141,"line":26997},34,[26999],{"type":21,"tag":139,"props":27000,"children":27001},{"emptyLinePlaceholder":194},[27002],{"type":31,"value":197},{"type":21,"tag":139,"props":27004,"children":27006},{"class":141,"line":27005},35,[27007,27012,27016,27020,27024,27028,27032],{"type":21,"tag":139,"props":27008,"children":27009},{"style":152},[27010],{"type":31,"value":27011},"bell ",{"type":21,"tag":139,"props":27013,"children":27014},{"style":146},[27015],{"type":31,"value":211},{"type":21,"tag":139,"props":27017,"children":27018},{"style":152},[27019],{"type":31,"value":6292},{"type":21,"tag":139,"props":27021,"children":27022},{"style":214},[27023],{"type":31,"value":293},{"type":21,"tag":139,"props":27025,"children":27026},{"style":152},[27027],{"type":31,"value":259},{"type":21,"tag":139,"props":27029,"children":27030},{"style":214},[27031],{"type":31,"value":293},{"type":21,"tag":139,"props":27033,"children":27034},{"style":152},[27035],{"type":31,"value":270},{"type":21,"tag":139,"props":27037,"children":27039},{"class":141,"line":27038},36,[27040,27045,27049],{"type":21,"tag":139,"props":27041,"children":27042},{"style":152},[27043],{"type":31,"value":27044},"bell.h(",{"type":21,"tag":139,"props":27046,"children":27047},{"style":214},[27048],{"type":31,"value":407},{"type":21,"tag":139,"props":27050,"children":27051},{"style":152},[27052],{"type":31,"value":270},{"type":21,"tag":139,"props":27054,"children":27056},{"class":141,"line":27055},37,[27057,27062,27066,27070,27074],{"type":21,"tag":139,"props":27058,"children":27059},{"style":152},[27060],{"type":31,"value":27061},"bell.cx(",{"type":21,"tag":139,"props":27063,"children":27064},{"style":214},[27065],{"type":31,"value":407},{"type":21,"tag":139,"props":27067,"children":27068},{"style":152},[27069],{"type":31,"value":259},{"type":21,"tag":139,"props":27071,"children":27072},{"style":214},[27073],{"type":31,"value":328},{"type":21,"tag":139,"props":27075,"children":27076},{"style":152},[27077],{"type":31,"value":270},{"type":21,"tag":139,"props":27079,"children":27081},{"class":141,"line":27080},38,[27082,27087,27091,27095,27099,27103,27107,27111,27115],{"type":21,"tag":139,"props":27083,"children":27084},{"style":152},[27085],{"type":31,"value":27086},"bell.measure([",{"type":21,"tag":139,"props":27088,"children":27089},{"style":214},[27090],{"type":31,"value":407},{"type":21,"tag":139,"props":27092,"children":27093},{"style":152},[27094],{"type":31,"value":259},{"type":21,"tag":139,"props":27096,"children":27097},{"style":214},[27098],{"type":31,"value":328},{"type":21,"tag":139,"props":27100,"children":27101},{"style":152},[27102],{"type":31,"value":6404},{"type":21,"tag":139,"props":27104,"children":27105},{"style":214},[27106],{"type":31,"value":407},{"type":21,"tag":139,"props":27108,"children":27109},{"style":152},[27110],{"type":31,"value":259},{"type":21,"tag":139,"props":27112,"children":27113},{"style":214},[27114],{"type":31,"value":328},{"type":21,"tag":139,"props":27116,"children":27117},{"style":152},[27118],{"type":31,"value":599},{"type":21,"tag":139,"props":27120,"children":27122},{"class":141,"line":27121},39,[27123],{"type":21,"tag":139,"props":27124,"children":27125},{"emptyLinePlaceholder":194},[27126],{"type":31,"value":197},{"type":21,"tag":139,"props":27128,"children":27130},{"class":141,"line":27129},40,[27131,27136,27140,27145,27149,27153,27157],{"type":21,"tag":139,"props":27132,"children":27133},{"style":152},[27134],{"type":31,"value":27135},"raw ",{"type":21,"tag":139,"props":27137,"children":27138},{"style":146},[27139],{"type":31,"value":211},{"type":21,"tag":139,"props":27141,"children":27142},{"style":152},[27143],{"type":31,"value":27144}," backend.run(transpile(bell, backend), ",{"type":21,"tag":139,"props":27146,"children":27147},{"style":923},[27148],{"type":31,"value":926},{"type":21,"tag":139,"props":27150,"children":27151},{"style":146},[27152],{"type":31,"value":211},{"type":21,"tag":139,"props":27154,"children":27155},{"style":214},[27156],{"type":31,"value":26543},{"type":21,"tag":139,"props":27158,"children":27159},{"style":152},[27160],{"type":31,"value":940},{"type":21,"tag":139,"props":27162,"children":27164},{"class":141,"line":27163},41,[27165,27170,27174,27179,27184,27188,27192,27196,27200,27204,27208,27212,27217,27221,27225,27229,27233,27237,27241,27245,27249,27253,27258,27262,27266,27270],{"type":21,"tag":139,"props":27166,"children":27167},{"style":152},[27168],{"type":31,"value":27169},"vec ",{"type":21,"tag":139,"props":27171,"children":27172},{"style":146},[27173],{"type":31,"value":211},{"type":21,"tag":139,"props":27175,"children":27176},{"style":152},[27177],{"type":31,"value":27178}," np.array([raw.get(",{"type":21,"tag":139,"props":27180,"children":27181},{"style":214},[27182],{"type":31,"value":27183},"format",{"type":21,"tag":139,"props":27185,"children":27186},{"style":152},[27187],{"type":31,"value":26707},{"type":21,"tag":139,"props":27189,"children":27190},{"style":146},[27191],{"type":31,"value":7524},{"type":21,"tag":139,"props":27193,"children":27194},{"style":262},[27195],{"type":31,"value":26716},{"type":21,"tag":139,"props":27197,"children":27198},{"style":214},[27199],{"type":31,"value":7534},{"type":21,"tag":139,"props":27201,"children":27202},{"style":152},[27203],{"type":31,"value":19605},{"type":21,"tag":139,"props":27205,"children":27206},{"style":214},[27207],{"type":31,"value":7543},{"type":21,"tag":139,"props":27209,"children":27210},{"style":262},[27211],{"type":31,"value":26733},{"type":21,"tag":139,"props":27213,"children":27214},{"style":152},[27215],{"type":31,"value":27216},"), ",{"type":21,"tag":139,"props":27218,"children":27219},{"style":214},[27220],{"type":31,"value":407},{"type":21,"tag":139,"props":27222,"children":27223},{"style":152},[27224],{"type":31,"value":1527},{"type":21,"tag":139,"props":27226,"children":27227},{"style":146},[27228],{"type":31,"value":1486},{"type":21,"tag":139,"props":27230,"children":27231},{"style":152},[27232],{"type":31,"value":7408},{"type":21,"tag":139,"props":27234,"children":27235},{"style":146},[27236],{"type":31,"value":1496},{"type":21,"tag":139,"props":27238,"children":27239},{"style":214},[27240],{"type":31,"value":7417},{"type":21,"tag":139,"props":27242,"children":27243},{"style":152},[27244],{"type":31,"value":953},{"type":21,"tag":139,"props":27246,"children":27247},{"style":214},[27248],{"type":31,"value":293},{"type":21,"tag":139,"props":27250,"children":27251},{"style":146},[27252],{"type":31,"value":4801},{"type":21,"tag":139,"props":27254,"children":27255},{"style":152},[27256],{"type":31,"value":27257},"n)], ",{"type":21,"tag":139,"props":27259,"children":27260},{"style":214},[27261],{"type":31,"value":11396},{"type":21,"tag":139,"props":27263,"children":27264},{"style":152},[27265],{"type":31,"value":1527},{"type":21,"tag":139,"props":27267,"children":27268},{"style":146},[27269],{"type":31,"value":5062},{"type":21,"tag":139,"props":27271,"children":27272},{"style":214},[27273],{"type":31,"value":27274}," SHOTS\n",{"type":21,"tag":139,"props":27276,"children":27278},{"class":141,"line":27277},42,[27279],{"type":21,"tag":139,"props":27280,"children":27281},{"emptyLinePlaceholder":194},[27282],{"type":31,"value":197},{"type":21,"tag":139,"props":27284,"children":27286},{"class":141,"line":27285},43,[27287,27292,27296,27301,27306,27311,27315,27319,27324],{"type":21,"tag":139,"props":27288,"children":27289},{"style":152},[27290],{"type":31,"value":27291},"mit ",{"type":21,"tag":139,"props":27293,"children":27294},{"style":146},[27295],{"type":31,"value":211},{"type":21,"tag":139,"props":27297,"children":27298},{"style":152},[27299],{"type":31,"value":27300}," np.clip(Minv ",{"type":21,"tag":139,"props":27302,"children":27303},{"style":146},[27304],{"type":31,"value":27305},"@",{"type":21,"tag":139,"props":27307,"children":27308},{"style":152},[27309],{"type":31,"value":27310}," vec, ",{"type":21,"tag":139,"props":27312,"children":27313},{"style":214},[27314],{"type":31,"value":407},{"type":21,"tag":139,"props":27316,"children":27317},{"style":152},[27318],{"type":31,"value":259},{"type":21,"tag":139,"props":27320,"children":27321},{"style":214},[27322],{"type":31,"value":27323},"None",{"type":21,"tag":139,"props":27325,"children":27326},{"style":152},[27327],{"type":31,"value":270},{"type":21,"tag":139,"props":27329,"children":27331},{"class":141,"line":27330},44,[27332,27336,27341],{"type":21,"tag":139,"props":27333,"children":27334},{"style":152},[27335],{"type":31,"value":27291},{"type":21,"tag":139,"props":27337,"children":27338},{"style":146},[27339],{"type":31,"value":27340},"\u002F=",{"type":21,"tag":139,"props":27342,"children":27343},{"style":152},[27344],{"type":31,"value":27345}," mit.sum()\n",{"type":21,"tag":139,"props":27347,"children":27349},{"class":141,"line":27348},45,[27350],{"type":21,"tag":139,"props":27351,"children":27352},{"emptyLinePlaceholder":194},[27353],{"type":31,"value":197},{"type":21,"tag":139,"props":27355,"children":27357},{"class":141,"line":27356},46,[27358,27362,27366,27371,27376,27380,27384,27389,27394,27398,27403,27407,27411,27415,27419,27423,27427,27431,27435],{"type":21,"tag":139,"props":27359,"children":27360},{"style":214},[27361],{"type":31,"value":948},{"type":21,"tag":139,"props":27363,"children":27364},{"style":152},[27365],{"type":31,"value":953},{"type":21,"tag":139,"props":27367,"children":27368},{"style":262},[27369],{"type":31,"value":27370},"\"raw      :\"",{"type":21,"tag":139,"props":27372,"children":27373},{"style":152},[27374],{"type":31,"value":27375},", {",{"type":21,"tag":139,"props":27377,"children":27378},{"style":214},[27379],{"type":31,"value":27183},{"type":21,"tag":139,"props":27381,"children":27382},{"style":152},[27383],{"type":31,"value":26707},{"type":21,"tag":139,"props":27385,"children":27386},{"style":262},[27387],{"type":31,"value":27388},"\"02b\"",{"type":21,"tag":139,"props":27390,"children":27391},{"style":152},[27392],{"type":31,"value":27393},"): ",{"type":21,"tag":139,"props":27395,"children":27396},{"style":214},[27397],{"type":31,"value":11387},{"type":21,"tag":139,"props":27399,"children":27400},{"style":152},[27401],{"type":31,"value":27402},"(vec[i], ",{"type":21,"tag":139,"props":27404,"children":27405},{"style":214},[27406],{"type":31,"value":17918},{"type":21,"tag":139,"props":27408,"children":27409},{"style":152},[27410],{"type":31,"value":1527},{"type":21,"tag":139,"props":27412,"children":27413},{"style":146},[27414],{"type":31,"value":1486},{"type":21,"tag":139,"props":27416,"children":27417},{"style":152},[27418],{"type":31,"value":7408},{"type":21,"tag":139,"props":27420,"children":27421},{"style":146},[27422],{"type":31,"value":1496},{"type":21,"tag":139,"props":27424,"children":27425},{"style":214},[27426],{"type":31,"value":7417},{"type":21,"tag":139,"props":27428,"children":27429},{"style":152},[27430],{"type":31,"value":953},{"type":21,"tag":139,"props":27432,"children":27433},{"style":214},[27434],{"type":31,"value":17918},{"type":21,"tag":139,"props":27436,"children":27437},{"style":152},[27438],{"type":31,"value":27439},")})\n",{"type":21,"tag":139,"props":27441,"children":27443},{"class":141,"line":27442},47,[27444,27448,27452,27457,27461,27465,27469,27473,27477,27481,27486,27490,27494,27498,27502,27506,27510,27514,27518],{"type":21,"tag":139,"props":27445,"children":27446},{"style":214},[27447],{"type":31,"value":948},{"type":21,"tag":139,"props":27449,"children":27450},{"style":152},[27451],{"type":31,"value":953},{"type":21,"tag":139,"props":27453,"children":27454},{"style":262},[27455],{"type":31,"value":27456},"\"mitigated:\"",{"type":21,"tag":139,"props":27458,"children":27459},{"style":152},[27460],{"type":31,"value":27375},{"type":21,"tag":139,"props":27462,"children":27463},{"style":214},[27464],{"type":31,"value":27183},{"type":21,"tag":139,"props":27466,"children":27467},{"style":152},[27468],{"type":31,"value":26707},{"type":21,"tag":139,"props":27470,"children":27471},{"style":262},[27472],{"type":31,"value":27388},{"type":21,"tag":139,"props":27474,"children":27475},{"style":152},[27476],{"type":31,"value":27393},{"type":21,"tag":139,"props":27478,"children":27479},{"style":214},[27480],{"type":31,"value":11387},{"type":21,"tag":139,"props":27482,"children":27483},{"style":152},[27484],{"type":31,"value":27485},"(mit[i], ",{"type":21,"tag":139,"props":27487,"children":27488},{"style":214},[27489],{"type":31,"value":17918},{"type":21,"tag":139,"props":27491,"children":27492},{"style":152},[27493],{"type":31,"value":1527},{"type":21,"tag":139,"props":27495,"children":27496},{"style":146},[27497],{"type":31,"value":1486},{"type":21,"tag":139,"props":27499,"children":27500},{"style":152},[27501],{"type":31,"value":7408},{"type":21,"tag":139,"props":27503,"children":27504},{"style":146},[27505],{"type":31,"value":1496},{"type":21,"tag":139,"props":27507,"children":27508},{"style":214},[27509],{"type":31,"value":7417},{"type":21,"tag":139,"props":27511,"children":27512},{"style":152},[27513],{"type":31,"value":953},{"type":21,"tag":139,"props":27515,"children":27516},{"style":214},[27517],{"type":31,"value":17918},{"type":21,"tag":139,"props":27519,"children":27520},{"style":152},[27521],{"type":31,"value":27439},{"type":21,"tag":22,"props":27523,"children":27524},{},[27525,27530],{"type":21,"tag":16802,"props":27526,"children":27527},{},[27528],{"type":31,"value":27529},"Actual output from running this",{"type":31,"value":27531}," (Qiskit 2.5.0, Aer 0.17.2, 5% readout error):",{"type":21,"tag":129,"props":27533,"children":27535},{"code":27534},"raw      : {'00': 0.4456, '01': 0.053, '10': 0.0501, '11': 0.4513}\nmitigated: {'00': 0.4931, '01': 0.0048, '10': 0.0033, '11': 0.4988}\n",[27536],{"type":21,"tag":104,"props":27537,"children":27538},{"__ignoreMap":7},[27539],{"type":31,"value":27534},{"type":21,"tag":22,"props":27541,"children":27542},{},[27543,27545,27551,27552,27558,27560,27566],{"type":31,"value":27544},"A Bell state should produce only ",{"type":21,"tag":104,"props":27546,"children":27548},{"className":27547},[],[27549],{"type":31,"value":27550},"00",{"type":31,"value":3615},{"type":21,"tag":104,"props":27553,"children":27555},{"className":27554},[],[27556],{"type":31,"value":27557},"11",{"type":31,"value":27559},". The raw run leaks 10.3% into forbidden outcomes. After mitigation, 0.8%. That is a 13× reduction in spurious counts for the cost of ",{"type":21,"tag":104,"props":27561,"children":27563},{"className":27562},[],[27564],{"type":31,"value":27565},"2^n",{"type":31,"value":27567}," short calibration circuits.",{"type":21,"tag":22,"props":27569,"children":27570},{},[27571,27573,27578,27580,27585,27587,27592],{"type":31,"value":27572},"Two caveats. The ",{"type":21,"tag":104,"props":27574,"children":27576},{"className":27575},[],[27577],{"type":31,"value":27565},{"type":31,"value":27579}," scaling means full calibration matrices die above ~10 qubits. Beyond that, use tensored (per-qubit) or correlated-subset calibration. And matrix inversion amplifies ",{"type":21,"tag":26,"props":27581,"children":27582},{"href":3102},[27583],{"type":31,"value":27584},"shot noise",{"type":31,"value":27586},", which is why the code clips negatives. Run your calibration circuits with ",{"type":21,"tag":12756,"props":27588,"children":27589},{},[27590],{"type":31,"value":27591},"more",{"type":31,"value":27593}," shots than your actual experiment, not fewer.",{"type":21,"tag":41,"props":27595,"children":27597},{"id":27596},"step-2-dynamical-decoupling-nearly-free",[27598],{"type":31,"value":27599},"Step 2: Dynamical Decoupling (Nearly Free)",{"type":21,"tag":22,"props":27601,"children":27602},{},[27603,27605,27610,27612,27618],{"type":31,"value":27604},"Idle qubits are not safe qubits. While one part of your circuit executes, everything else is dephasing at its ",{"type":21,"tag":26,"props":27606,"children":27607},{"href":15497},[27608],{"type":31,"value":27609},"T2 rate",{"type":31,"value":27611},". Dynamical decoupling inserts pulse sequences (typically ",{"type":21,"tag":104,"props":27613,"children":27615},{"className":27614},[],[27616],{"type":31,"value":27617},"X–delay–X–delay",{"type":31,"value":27619},") into idle windows, echoing away slow, low-frequency noise.",{"type":21,"tag":22,"props":27621,"children":27622},{},[27623,27625,27629],{"type":31,"value":27624},"In Qiskit this is a ",{"type":21,"tag":26,"props":27626,"children":27627},{"href":10334},[27628],{"type":31,"value":10337},{"type":31,"value":27630}," pass, not an algorithm change:",{"type":21,"tag":129,"props":27632,"children":27634},{"code":27633,"language":133,"meta":7,"className":131,"style":7},"from qiskit.transpiler import PassManager\nfrom qiskit.transpiler.passes import ALAPScheduleAnalysis, PadDynamicalDecoupling\nfrom qiskit.circuit.library import XGate\n\npm = PassManager([\n    ALAPScheduleAnalysis(durations=backend.instruction_durations),\n    PadDynamicalDecoupling(\n        durations=backend.instruction_durations,\n        dd_sequence=[XGate(), XGate()],   # XX sequence\n    ),\n])\ndd_circuit = pm.run(transpiled_circuit)\n",[27635],{"type":21,"tag":104,"props":27636,"children":27637},{"__ignoreMap":7},[27638,27659,27680,27700,27707,27724,27746,27754,27771,27793,27801,27808],{"type":21,"tag":139,"props":27639,"children":27640},{"class":141,"line":142},[27641,27645,27650,27654],{"type":21,"tag":139,"props":27642,"children":27643},{"style":146},[27644],{"type":31,"value":149},{"type":21,"tag":139,"props":27646,"children":27647},{"style":152},[27648],{"type":31,"value":27649}," qiskit.transpiler ",{"type":21,"tag":139,"props":27651,"children":27652},{"style":146},[27653],{"type":31,"value":160},{"type":21,"tag":139,"props":27655,"children":27656},{"style":152},[27657],{"type":31,"value":27658}," PassManager\n",{"type":21,"tag":139,"props":27660,"children":27661},{"class":141,"line":168},[27662,27666,27671,27675],{"type":21,"tag":139,"props":27663,"children":27664},{"style":146},[27665],{"type":31,"value":149},{"type":21,"tag":139,"props":27667,"children":27668},{"style":152},[27669],{"type":31,"value":27670}," qiskit.transpiler.passes ",{"type":21,"tag":139,"props":27672,"children":27673},{"style":146},[27674],{"type":31,"value":160},{"type":21,"tag":139,"props":27676,"children":27677},{"style":152},[27678],{"type":31,"value":27679}," ALAPScheduleAnalysis, PadDynamicalDecoupling\n",{"type":21,"tag":139,"props":27681,"children":27682},{"class":141,"line":190},[27683,27687,27691,27695],{"type":21,"tag":139,"props":27684,"children":27685},{"style":146},[27686],{"type":31,"value":149},{"type":21,"tag":139,"props":27688,"children":27689},{"style":152},[27690],{"type":31,"value":12829},{"type":21,"tag":139,"props":27692,"children":27693},{"style":146},[27694],{"type":31,"value":160},{"type":21,"tag":139,"props":27696,"children":27697},{"style":152},[27698],{"type":31,"value":27699}," XGate\n",{"type":21,"tag":139,"props":27701,"children":27702},{"class":141,"line":200},[27703],{"type":21,"tag":139,"props":27704,"children":27705},{"emptyLinePlaceholder":194},[27706],{"type":31,"value":197},{"type":21,"tag":139,"props":27708,"children":27709},{"class":141,"line":226},[27710,27715,27719],{"type":21,"tag":139,"props":27711,"children":27712},{"style":152},[27713],{"type":31,"value":27714},"pm ",{"type":21,"tag":139,"props":27716,"children":27717},{"style":146},[27718],{"type":31,"value":211},{"type":21,"tag":139,"props":27720,"children":27721},{"style":152},[27722],{"type":31,"value":27723}," PassManager([\n",{"type":21,"tag":139,"props":27725,"children":27726},{"class":141,"line":234},[27727,27732,27737,27741],{"type":21,"tag":139,"props":27728,"children":27729},{"style":152},[27730],{"type":31,"value":27731},"    ALAPScheduleAnalysis(",{"type":21,"tag":139,"props":27733,"children":27734},{"style":923},[27735],{"type":31,"value":27736},"durations",{"type":21,"tag":139,"props":27738,"children":27739},{"style":146},[27740],{"type":31,"value":211},{"type":21,"tag":139,"props":27742,"children":27743},{"style":152},[27744],{"type":31,"value":27745},"backend.instruction_durations),\n",{"type":21,"tag":139,"props":27747,"children":27748},{"class":141,"line":273},[27749],{"type":21,"tag":139,"props":27750,"children":27751},{"style":152},[27752],{"type":31,"value":27753},"    PadDynamicalDecoupling(\n",{"type":21,"tag":139,"props":27755,"children":27756},{"class":141,"line":309},[27757,27762,27766],{"type":21,"tag":139,"props":27758,"children":27759},{"style":923},[27760],{"type":31,"value":27761},"        durations",{"type":21,"tag":139,"props":27763,"children":27764},{"style":146},[27765],{"type":31,"value":211},{"type":21,"tag":139,"props":27767,"children":27768},{"style":152},[27769],{"type":31,"value":27770},"backend.instruction_durations,\n",{"type":21,"tag":139,"props":27772,"children":27773},{"class":141,"line":16},[27774,27779,27783,27788],{"type":21,"tag":139,"props":27775,"children":27776},{"style":923},[27777],{"type":31,"value":27778},"        dd_sequence",{"type":21,"tag":139,"props":27780,"children":27781},{"style":146},[27782],{"type":31,"value":211},{"type":21,"tag":139,"props":27784,"children":27785},{"style":152},[27786],{"type":31,"value":27787},"[XGate(), XGate()],   ",{"type":21,"tag":139,"props":27789,"children":27790},{"style":220},[27791],{"type":31,"value":27792},"# XX sequence\n",{"type":21,"tag":139,"props":27794,"children":27795},{"class":141,"line":361},[27796],{"type":21,"tag":139,"props":27797,"children":27798},{"style":152},[27799],{"type":31,"value":27800},"    ),\n",{"type":21,"tag":139,"props":27802,"children":27803},{"class":141,"line":369},[27804],{"type":21,"tag":139,"props":27805,"children":27806},{"style":152},[27807],{"type":31,"value":599},{"type":21,"tag":139,"props":27809,"children":27810},{"class":141,"line":378},[27811,27816,27820],{"type":21,"tag":139,"props":27812,"children":27813},{"style":152},[27814],{"type":31,"value":27815},"dd_circuit ",{"type":21,"tag":139,"props":27817,"children":27818},{"style":146},[27819],{"type":31,"value":211},{"type":21,"tag":139,"props":27821,"children":27822},{"style":152},[27823],{"type":31,"value":27824}," pm.run(transpiled_circuit)\n",{"type":21,"tag":22,"props":27826,"children":27827},{},[27828],{"type":31,"value":27829},"Cost: zero extra shots. Typical gain: 5–20% fidelity improvement on circuits with heterogeneous qubit usage. Circuits where every qubit is busy every cycle see nothing. Try it. It's the best effort-to-payoff ratio in the whole toolkit.",{"type":21,"tag":41,"props":27831,"children":27833},{"id":27832},"step-3-pauli-twirling-randomized-compiling",[27834],{"type":31,"value":27835},"Step 3: Pauli Twirling \u002F Randomized Compiling",{"type":21,"tag":22,"props":27837,"children":27838},{},[27839,27841,27846],{"type":31,"value":27840},"Coherent errors are the nasty kind. A systematic over-rotation of 0.5° per gate doesn't average out. It accumulates ",{"type":21,"tag":12756,"props":27842,"children":27843},{},[27844],{"type":31,"value":27845},"linearly",{"type":31,"value":27847}," in amplitude, so error in the expectation value grows quadratically with depth. Stochastic errors merely accumulate additively.",{"type":21,"tag":22,"props":27849,"children":27850},{},[27851],{"type":31,"value":27852},"Twirling converts the former into the latter. You compile many logically equivalent copies of your circuit, each wrapping the two-qubit gates in randomly chosen Pauli operators (with compensating Paulis so the ideal unitary is unchanged), then average the results. Coherent error terms average toward zero. What survives is a well-behaved stochastic Pauli channel.",{"type":21,"tag":22,"props":27854,"children":27855},{},[27856,27858,27863],{"type":31,"value":27857},"Twirling rarely improves accuracy much on its own. Its real value is that it makes the noise ",{"type":21,"tag":12756,"props":27859,"children":27860},{},[27861],{"type":31,"value":27862},"model-able",{"type":31,"value":27864},", and every other technique on this list (ZNE, PEC) assumes a stochastic noise channel. Twirling is what makes that assumption true. Run it underneath your other mitigation, not instead of it.",{"type":21,"tag":41,"props":27866,"children":27868},{"id":27867},"step-4-zero-noise-extrapolation",[27869],{"type":31,"value":27870},"Step 4: Zero-Noise Extrapolation",{"type":21,"tag":22,"props":27872,"children":27873},{},[27874,27876,27881],{"type":31,"value":27875},"ZNE is the technique behind most headline NISQ results, including IBM's ",{"type":21,"tag":26,"props":27877,"children":27878},{"href":23098},[27879],{"type":31,"value":27880},"quantum utility demonstration",{"type":31,"value":27882}," on a 127-qubit Eagle processor.",{"type":21,"tag":22,"props":27884,"children":27885},{},[27886,27888,27893,27895,27901,27903,27909],{"type":31,"value":27887},"The idea: you can't reduce hardware noise, but you ",{"type":21,"tag":12756,"props":27889,"children":27890},{},[27891],{"type":31,"value":27892},"increase",{"type":31,"value":27894}," it in a controlled way. Run the same circuit at noise scale factors λ = 1, 3, 5 (via unitary folding: replace ",{"type":21,"tag":104,"props":27896,"children":27898},{"className":27897},[],[27899],{"type":31,"value":27900},"U",{"type":31,"value":27902}," with ",{"type":21,"tag":104,"props":27904,"children":27906},{"className":27905},[],[27907],{"type":31,"value":27908},"U(U†U)^k",{"type":31,"value":27910},", which is logically identity-preserving but physically 3× or 5× as noisy), then fit a curve through the results and extrapolate back to λ = 0.",{"type":21,"tag":129,"props":27912,"children":27914},{"code":27913,"language":133,"meta":7,"className":131,"style":7},"def fold_global(qc, scale):\n    \"\"\"Odd integer scale: U -> U (U^dag U)^k\"\"\"\n    k = (scale - 1) \u002F\u002F 2\n    out, inv = qc.copy(), qc.inverse()\n    for _ in range(k):\n        out = out.compose(inv).compose(qc)\n    return out\n\ndef expval_parity(qc, backend, shots=40000):\n    c = qc.copy()\n    c.measure_all()\n    counts = backend.run(\n        transpile(c, backend, optimization_level=0), shots=shots\n    ).result().get_counts()\n    return sum((-1) ** (k.replace(\" \", \"\").count(\"1\") % 2) * v\n               for k, v in counts.items()) \u002F shots\n\n# 4-qubit GHZ padded with cancelling CX pairs, ideal \u003CZZZZ> = +1.0\nbase = QuantumCircuit(4)\nbase.h(0)\nfor q in range(3):\n    base.cx(q, q + 1)\nfor _ in range(4):\n    for q in range(3):\n        base.cx(q, q + 1)\n        base.cx(q, q + 1)\n\nscales = [1, 3, 5]\nvals = [expval_parity(fold_global(base, s), backend) for s in scales]\nzne = np.polyval(np.polyfit(scales, vals, 2), 0)   # Richardson, order 2\nprint(vals, \"->\", zne)\n",[27915],{"type":21,"tag":104,"props":27916,"children":27917},{"__ignoreMap":7},[27918,27935,27943,27980,27997,28021,28038,28050,28057,28087,28104,28112,28129,28167,28175,28261,28291,28298,28306,28330,28346,28377,28397,28428,28459,28479,28498,28505,28545,28580,28619],{"type":21,"tag":139,"props":27919,"children":27920},{"class":141,"line":142},[27921,27925,27930],{"type":21,"tag":139,"props":27922,"children":27923},{"style":146},[27924],{"type":31,"value":5487},{"type":21,"tag":139,"props":27926,"children":27927},{"style":4509},[27928],{"type":31,"value":27929}," fold_global",{"type":21,"tag":139,"props":27931,"children":27932},{"style":152},[27933],{"type":31,"value":27934},"(qc, scale):\n",{"type":21,"tag":139,"props":27936,"children":27937},{"class":141,"line":168},[27938],{"type":21,"tag":139,"props":27939,"children":27940},{"style":262},[27941],{"type":31,"value":27942},"    \"\"\"Odd integer scale: U -> U (U^dag U)^k\"\"\"\n",{"type":21,"tag":139,"props":27944,"children":27945},{"class":141,"line":190},[27946,27951,27955,27960,27964,27968,27972,27976],{"type":21,"tag":139,"props":27947,"children":27948},{"style":152},[27949],{"type":31,"value":27950},"    k ",{"type":21,"tag":139,"props":27952,"children":27953},{"style":146},[27954],{"type":31,"value":211},{"type":21,"tag":139,"props":27956,"children":27957},{"style":152},[27958],{"type":31,"value":27959}," (scale ",{"type":21,"tag":139,"props":27961,"children":27962},{"style":146},[27963],{"type":31,"value":825},{"type":21,"tag":139,"props":27965,"children":27966},{"style":214},[27967],{"type":31,"value":17050},{"type":21,"tag":139,"props":27969,"children":27970},{"style":152},[27971],{"type":31,"value":1527},{"type":21,"tag":139,"props":27973,"children":27974},{"style":146},[27975],{"type":31,"value":21016},{"type":21,"tag":139,"props":27977,"children":27978},{"style":214},[27979],{"type":31,"value":1604},{"type":21,"tag":139,"props":27981,"children":27982},{"class":141,"line":200},[27983,27988,27992],{"type":21,"tag":139,"props":27984,"children":27985},{"style":152},[27986],{"type":31,"value":27987},"    out, inv ",{"type":21,"tag":139,"props":27989,"children":27990},{"style":146},[27991],{"type":31,"value":211},{"type":21,"tag":139,"props":27993,"children":27994},{"style":152},[27995],{"type":31,"value":27996}," qc.copy(), qc.inverse()\n",{"type":21,"tag":139,"props":27998,"children":27999},{"class":141,"line":226},[28000,28004,28008,28012,28016],{"type":21,"tag":139,"props":28001,"children":28002},{"style":146},[28003],{"type":31,"value":17024},{"type":21,"tag":139,"props":28005,"children":28006},{"style":152},[28007],{"type":31,"value":17827},{"type":21,"tag":139,"props":28009,"children":28010},{"style":146},[28011],{"type":31,"value":1496},{"type":21,"tag":139,"props":28013,"children":28014},{"style":214},[28015],{"type":31,"value":7417},{"type":21,"tag":139,"props":28017,"children":28018},{"style":152},[28019],{"type":31,"value":28020},"(k):\n",{"type":21,"tag":139,"props":28022,"children":28023},{"class":141,"line":234},[28024,28029,28033],{"type":21,"tag":139,"props":28025,"children":28026},{"style":152},[28027],{"type":31,"value":28028},"        out ",{"type":21,"tag":139,"props":28030,"children":28031},{"style":146},[28032],{"type":31,"value":211},{"type":21,"tag":139,"props":28034,"children":28035},{"style":152},[28036],{"type":31,"value":28037}," out.compose(inv).compose(qc)\n",{"type":21,"tag":139,"props":28039,"children":28040},{"class":141,"line":273},[28041,28045],{"type":21,"tag":139,"props":28042,"children":28043},{"style":146},[28044],{"type":31,"value":5582},{"type":21,"tag":139,"props":28046,"children":28047},{"style":152},[28048],{"type":31,"value":28049}," out\n",{"type":21,"tag":139,"props":28051,"children":28052},{"class":141,"line":309},[28053],{"type":21,"tag":139,"props":28054,"children":28055},{"emptyLinePlaceholder":194},[28056],{"type":31,"value":197},{"type":21,"tag":139,"props":28058,"children":28059},{"class":141,"line":16},[28060,28064,28069,28074,28078,28083],{"type":21,"tag":139,"props":28061,"children":28062},{"style":146},[28063],{"type":31,"value":5487},{"type":21,"tag":139,"props":28065,"children":28066},{"style":4509},[28067],{"type":31,"value":28068}," expval_parity",{"type":21,"tag":139,"props":28070,"children":28071},{"style":152},[28072],{"type":31,"value":28073},"(qc, backend, shots",{"type":21,"tag":139,"props":28075,"children":28076},{"style":146},[28077],{"type":31,"value":211},{"type":21,"tag":139,"props":28079,"children":28080},{"style":214},[28081],{"type":31,"value":28082},"40000",{"type":21,"tag":139,"props":28084,"children":28085},{"style":152},[28086],{"type":31,"value":7430},{"type":21,"tag":139,"props":28088,"children":28089},{"class":141,"line":361},[28090,28095,28099],{"type":21,"tag":139,"props":28091,"children":28092},{"style":152},[28093],{"type":31,"value":28094},"    c ",{"type":21,"tag":139,"props":28096,"children":28097},{"style":146},[28098],{"type":31,"value":211},{"type":21,"tag":139,"props":28100,"children":28101},{"style":152},[28102],{"type":31,"value":28103}," qc.copy()\n",{"type":21,"tag":139,"props":28105,"children":28106},{"class":141,"line":369},[28107],{"type":21,"tag":139,"props":28108,"children":28109},{"style":152},[28110],{"type":31,"value":28111},"    c.measure_all()\n",{"type":21,"tag":139,"props":28113,"children":28114},{"class":141,"line":378},[28115,28120,28124],{"type":21,"tag":139,"props":28116,"children":28117},{"style":152},[28118],{"type":31,"value":28119},"    counts ",{"type":21,"tag":139,"props":28121,"children":28122},{"style":146},[28123],{"type":31,"value":211},{"type":21,"tag":139,"props":28125,"children":28126},{"style":152},[28127],{"type":31,"value":28128}," backend.run(\n",{"type":21,"tag":139,"props":28130,"children":28131},{"class":141,"line":387},[28132,28137,28142,28146,28150,28154,28158,28162],{"type":21,"tag":139,"props":28133,"children":28134},{"style":152},[28135],{"type":31,"value":28136},"        transpile(c, backend, ",{"type":21,"tag":139,"props":28138,"children":28139},{"style":923},[28140],{"type":31,"value":28141},"optimization_level",{"type":21,"tag":139,"props":28143,"children":28144},{"style":146},[28145],{"type":31,"value":211},{"type":21,"tag":139,"props":28147,"children":28148},{"style":214},[28149],{"type":31,"value":407},{"type":21,"tag":139,"props":28151,"children":28152},{"style":152},[28153],{"type":31,"value":27216},{"type":21,"tag":139,"props":28155,"children":28156},{"style":923},[28157],{"type":31,"value":926},{"type":21,"tag":139,"props":28159,"children":28160},{"style":146},[28161],{"type":31,"value":211},{"type":21,"tag":139,"props":28163,"children":28164},{"style":152},[28165],{"type":31,"value":28166},"shots\n",{"type":21,"tag":139,"props":28168,"children":28169},{"class":141,"line":396},[28170],{"type":21,"tag":139,"props":28171,"children":28172},{"style":152},[28173],{"type":31,"value":28174},"    ).result().get_counts()\n",{"type":21,"tag":139,"props":28176,"children":28177},{"class":141,"line":414},[28178,28182,28186,28191,28195,28199,28203,28207,28212,28217,28221,28225,28230,28235,28239,28244,28248,28252,28256],{"type":21,"tag":139,"props":28179,"children":28180},{"style":146},[28181],{"type":31,"value":5582},{"type":21,"tag":139,"props":28183,"children":28184},{"style":214},[28185],{"type":31,"value":19683},{"type":21,"tag":139,"props":28187,"children":28188},{"style":152},[28189],{"type":31,"value":28190},"((",{"type":21,"tag":139,"props":28192,"children":28193},{"style":146},[28194],{"type":31,"value":825},{"type":21,"tag":139,"props":28196,"children":28197},{"style":214},[28198],{"type":31,"value":328},{"type":21,"tag":139,"props":28200,"children":28201},{"style":152},[28202],{"type":31,"value":1527},{"type":21,"tag":139,"props":28204,"children":28205},{"style":146},[28206],{"type":31,"value":4801},{"type":21,"tag":139,"props":28208,"children":28209},{"style":152},[28210],{"type":31,"value":28211}," (k.replace(",{"type":21,"tag":139,"props":28213,"children":28214},{"style":262},[28215],{"type":31,"value":28216},"\" \"",{"type":21,"tag":139,"props":28218,"children":28219},{"style":152},[28220],{"type":31,"value":259},{"type":21,"tag":139,"props":28222,"children":28223},{"style":262},[28224],{"type":31,"value":4619},{"type":21,"tag":139,"props":28226,"children":28227},{"style":152},[28228],{"type":31,"value":28229},").count(",{"type":21,"tag":139,"props":28231,"children":28232},{"style":262},[28233],{"type":31,"value":28234},"\"1\"",{"type":21,"tag":139,"props":28236,"children":28237},{"style":152},[28238],{"type":31,"value":1527},{"type":21,"tag":139,"props":28240,"children":28241},{"style":146},[28242],{"type":31,"value":28243},"%",{"type":21,"tag":139,"props":28245,"children":28246},{"style":214},[28247],{"type":31,"value":21021},{"type":21,"tag":139,"props":28249,"children":28250},{"style":152},[28251],{"type":31,"value":1527},{"type":21,"tag":139,"props":28253,"children":28254},{"style":146},[28255],{"type":31,"value":11406},{"type":21,"tag":139,"props":28257,"children":28258},{"style":152},[28259],{"type":31,"value":28260}," v\n",{"type":21,"tag":139,"props":28262,"children":28263},{"class":141,"line":12589},[28264,28269,28274,28278,28283,28287],{"type":21,"tag":139,"props":28265,"children":28266},{"style":146},[28267],{"type":31,"value":28268},"               for",{"type":21,"tag":139,"props":28270,"children":28271},{"style":152},[28272],{"type":31,"value":28273}," k, v ",{"type":21,"tag":139,"props":28275,"children":28276},{"style":146},[28277],{"type":31,"value":1496},{"type":21,"tag":139,"props":28279,"children":28280},{"style":152},[28281],{"type":31,"value":28282}," counts.items()) ",{"type":21,"tag":139,"props":28284,"children":28285},{"style":146},[28286],{"type":31,"value":5062},{"type":21,"tag":139,"props":28288,"children":28289},{"style":152},[28290],{"type":31,"value":26939},{"type":21,"tag":139,"props":28292,"children":28293},{"class":141,"line":12606},[28294],{"type":21,"tag":139,"props":28295,"children":28296},{"emptyLinePlaceholder":194},[28297],{"type":31,"value":197},{"type":21,"tag":139,"props":28299,"children":28300},{"class":141,"line":12622},[28301],{"type":21,"tag":139,"props":28302,"children":28303},{"style":220},[28304],{"type":31,"value":28305},"# 4-qubit GHZ padded with cancelling CX pairs, ideal \u003CZZZZ> = +1.0\n",{"type":21,"tag":139,"props":28307,"children":28308},{"class":141,"line":12630},[28309,28314,28318,28322,28326],{"type":21,"tag":139,"props":28310,"children":28311},{"style":152},[28312],{"type":31,"value":28313},"base ",{"type":21,"tag":139,"props":28315,"children":28316},{"style":146},[28317],{"type":31,"value":211},{"type":21,"tag":139,"props":28319,"children":28320},{"style":152},[28321],{"type":31,"value":6292},{"type":21,"tag":139,"props":28323,"children":28324},{"style":214},[28325],{"type":31,"value":17918},{"type":21,"tag":139,"props":28327,"children":28328},{"style":152},[28329],{"type":31,"value":270},{"type":21,"tag":139,"props":28331,"children":28332},{"class":141,"line":17747},[28333,28338,28342],{"type":21,"tag":139,"props":28334,"children":28335},{"style":152},[28336],{"type":31,"value":28337},"base.h(",{"type":21,"tag":139,"props":28339,"children":28340},{"style":214},[28341],{"type":31,"value":407},{"type":21,"tag":139,"props":28343,"children":28344},{"style":152},[28345],{"type":31,"value":270},{"type":21,"tag":139,"props":28347,"children":28348},{"class":141,"line":17765},[28349,28353,28357,28361,28365,28369,28373],{"type":21,"tag":139,"props":28350,"children":28351},{"style":146},[28352],{"type":31,"value":1486},{"type":21,"tag":139,"props":28354,"children":28355},{"style":152},[28356],{"type":31,"value":20310},{"type":21,"tag":139,"props":28358,"children":28359},{"style":146},[28360],{"type":31,"value":1496},{"type":21,"tag":139,"props":28362,"children":28363},{"style":214},[28364],{"type":31,"value":7417},{"type":21,"tag":139,"props":28366,"children":28367},{"style":152},[28368],{"type":31,"value":953},{"type":21,"tag":139,"props":28370,"children":28371},{"style":214},[28372],{"type":31,"value":254},{"type":21,"tag":139,"props":28374,"children":28375},{"style":152},[28376],{"type":31,"value":7430},{"type":21,"tag":139,"props":28378,"children":28379},{"class":141,"line":17790},[28380,28385,28389,28393],{"type":21,"tag":139,"props":28381,"children":28382},{"style":152},[28383],{"type":31,"value":28384},"    base.cx(q, q ",{"type":21,"tag":139,"props":28386,"children":28387},{"style":146},[28388],{"type":31,"value":1599},{"type":21,"tag":139,"props":28390,"children":28391},{"style":214},[28392],{"type":31,"value":17050},{"type":21,"tag":139,"props":28394,"children":28395},{"style":152},[28396],{"type":31,"value":270},{"type":21,"tag":139,"props":28398,"children":28399},{"class":141,"line":17817},[28400,28404,28408,28412,28416,28420,28424],{"type":21,"tag":139,"props":28401,"children":28402},{"style":146},[28403],{"type":31,"value":1486},{"type":21,"tag":139,"props":28405,"children":28406},{"style":152},[28407],{"type":31,"value":17827},{"type":21,"tag":139,"props":28409,"children":28410},{"style":146},[28411],{"type":31,"value":1496},{"type":21,"tag":139,"props":28413,"children":28414},{"style":214},[28415],{"type":31,"value":7417},{"type":21,"tag":139,"props":28417,"children":28418},{"style":152},[28419],{"type":31,"value":953},{"type":21,"tag":139,"props":28421,"children":28422},{"style":214},[28423],{"type":31,"value":17918},{"type":21,"tag":139,"props":28425,"children":28426},{"style":152},[28427],{"type":31,"value":7430},{"type":21,"tag":139,"props":28429,"children":28430},{"class":141,"line":17843},[28431,28435,28439,28443,28447,28451,28455],{"type":21,"tag":139,"props":28432,"children":28433},{"style":146},[28434],{"type":31,"value":17024},{"type":21,"tag":139,"props":28436,"children":28437},{"style":152},[28438],{"type":31,"value":20310},{"type":21,"tag":139,"props":28440,"children":28441},{"style":146},[28442],{"type":31,"value":1496},{"type":21,"tag":139,"props":28444,"children":28445},{"style":214},[28446],{"type":31,"value":7417},{"type":21,"tag":139,"props":28448,"children":28449},{"style":152},[28450],{"type":31,"value":953},{"type":21,"tag":139,"props":28452,"children":28453},{"style":214},[28454],{"type":31,"value":254},{"type":21,"tag":139,"props":28456,"children":28457},{"style":152},[28458],{"type":31,"value":7430},{"type":21,"tag":139,"props":28460,"children":28461},{"class":141,"line":17852},[28462,28467,28471,28475],{"type":21,"tag":139,"props":28463,"children":28464},{"style":152},[28465],{"type":31,"value":28466},"        base.cx(q, q ",{"type":21,"tag":139,"props":28468,"children":28469},{"style":146},[28470],{"type":31,"value":1599},{"type":21,"tag":139,"props":28472,"children":28473},{"style":214},[28474],{"type":31,"value":17050},{"type":21,"tag":139,"props":28476,"children":28477},{"style":152},[28478],{"type":31,"value":270},{"type":21,"tag":139,"props":28480,"children":28481},{"class":141,"line":17864},[28482,28486,28490,28494],{"type":21,"tag":139,"props":28483,"children":28484},{"style":152},[28485],{"type":31,"value":28466},{"type":21,"tag":139,"props":28487,"children":28488},{"style":146},[28489],{"type":31,"value":1599},{"type":21,"tag":139,"props":28491,"children":28492},{"style":214},[28493],{"type":31,"value":17050},{"type":21,"tag":139,"props":28495,"children":28496},{"style":152},[28497],{"type":31,"value":270},{"type":21,"tag":139,"props":28499,"children":28500},{"class":141,"line":17872},[28501],{"type":21,"tag":139,"props":28502,"children":28503},{"emptyLinePlaceholder":194},[28504],{"type":31,"value":197},{"type":21,"tag":139,"props":28506,"children":28507},{"class":141,"line":17925},[28508,28513,28517,28521,28525,28529,28533,28537,28541],{"type":21,"tag":139,"props":28509,"children":28510},{"style":152},[28511],{"type":31,"value":28512},"scales ",{"type":21,"tag":139,"props":28514,"children":28515},{"style":146},[28516],{"type":31,"value":211},{"type":21,"tag":139,"props":28518,"children":28519},{"style":152},[28520],{"type":31,"value":8038},{"type":21,"tag":139,"props":28522,"children":28523},{"style":214},[28524],{"type":31,"value":328},{"type":21,"tag":139,"props":28526,"children":28527},{"style":152},[28528],{"type":31,"value":259},{"type":21,"tag":139,"props":28530,"children":28531},{"style":214},[28532],{"type":31,"value":254},{"type":21,"tag":139,"props":28534,"children":28535},{"style":152},[28536],{"type":31,"value":259},{"type":21,"tag":139,"props":28538,"children":28539},{"style":214},[28540],{"type":31,"value":11467},{"type":21,"tag":139,"props":28542,"children":28543},{"style":152},[28544],{"type":31,"value":14170},{"type":21,"tag":139,"props":28546,"children":28547},{"class":141,"line":26897},[28548,28553,28557,28562,28566,28571,28575],{"type":21,"tag":139,"props":28549,"children":28550},{"style":152},[28551],{"type":31,"value":28552},"vals ",{"type":21,"tag":139,"props":28554,"children":28555},{"style":146},[28556],{"type":31,"value":211},{"type":21,"tag":139,"props":28558,"children":28559},{"style":152},[28560],{"type":31,"value":28561}," [expval_parity(fold_global(base, s), backend) ",{"type":21,"tag":139,"props":28563,"children":28564},{"style":146},[28565],{"type":31,"value":1486},{"type":21,"tag":139,"props":28567,"children":28568},{"style":152},[28569],{"type":31,"value":28570}," s ",{"type":21,"tag":139,"props":28572,"children":28573},{"style":146},[28574],{"type":31,"value":1496},{"type":21,"tag":139,"props":28576,"children":28577},{"style":152},[28578],{"type":31,"value":28579}," scales]\n",{"type":21,"tag":139,"props":28581,"children":28582},{"class":141,"line":26942},[28583,28588,28592,28597,28601,28605,28609,28614],{"type":21,"tag":139,"props":28584,"children":28585},{"style":152},[28586],{"type":31,"value":28587},"zne ",{"type":21,"tag":139,"props":28589,"children":28590},{"style":146},[28591],{"type":31,"value":211},{"type":21,"tag":139,"props":28593,"children":28594},{"style":152},[28595],{"type":31,"value":28596}," np.polyval(np.polyfit(scales, vals, ",{"type":21,"tag":139,"props":28598,"children":28599},{"style":214},[28600],{"type":31,"value":293},{"type":21,"tag":139,"props":28602,"children":28603},{"style":152},[28604],{"type":31,"value":27216},{"type":21,"tag":139,"props":28606,"children":28607},{"style":214},[28608],{"type":31,"value":407},{"type":21,"tag":139,"props":28610,"children":28611},{"style":152},[28612],{"type":31,"value":28613},")   ",{"type":21,"tag":139,"props":28615,"children":28616},{"style":220},[28617],{"type":31,"value":28618},"# Richardson, order 2\n",{"type":21,"tag":139,"props":28620,"children":28621},{"class":141,"line":26955},[28622,28626,28631,28636],{"type":21,"tag":139,"props":28623,"children":28624},{"style":214},[28625],{"type":31,"value":948},{"type":21,"tag":139,"props":28627,"children":28628},{"style":152},[28629],{"type":31,"value":28630},"(vals, ",{"type":21,"tag":139,"props":28632,"children":28633},{"style":262},[28634],{"type":31,"value":28635},"\"->\"",{"type":21,"tag":139,"props":28637,"children":28638},{"style":152},[28639],{"type":31,"value":28640},", zne)\n",{"type":21,"tag":22,"props":28642,"children":28643},{},[28644,28649],{"type":21,"tag":16802,"props":28645,"children":28646},{},[28647],{"type":31,"value":28648},"Real measured output",{"type":31,"value":28650},", same versions, readout error switched off to isolate gate noise. With a 0.4% two-qubit error rate:",{"type":21,"tag":129,"props":28652,"children":28654},{"code":28653},"scale 1: 0.8973   scale 3: 0.7286   scale 5: 0.5767\nZNE estimate: 0.988   (exact: 1.000)\n",[28655],{"type":21,"tag":104,"props":28656,"children":28657},{"__ignoreMap":7},[28658],{"type":31,"value":28653},{"type":21,"tag":22,"props":28660,"children":28661},{},[28662],{"type":31,"value":28663},"Raw error 0.103, mitigated error 0.012. ZNE removed 88% of the bias. This is what the technique looks like when it works.",{"type":21,"tag":41,"props":28665,"children":28667},{"id":28666},"when-zne-lies",[28668],{"type":31,"value":28669},"When ZNE Lies",{"type":21,"tag":22,"props":28671,"children":28672},{},[28673],{"type":31,"value":28674},"Now turn the two-qubit error rate up to 4% and rerun the identical code:",{"type":21,"tag":129,"props":28676,"children":28678},{"code":28677},"scale 1: 0.3311   scale 3: 0.0320   scale 5: 0.0008\nZNE estimate: 0.581   (exact: 1.000)\n",[28679],{"type":21,"tag":104,"props":28680,"children":28681},{"__ignoreMap":7},[28682],{"type":31,"value":28677},{"type":21,"tag":22,"props":28684,"children":28685},{},[28686,28688,28693],{"type":31,"value":28687},"Look at what a results table would show: raw 0.33, mitigated 0.58, ideal 1.00. Mitigation \"recovered\" 76% more signal! It looks like a triumph. It is garbage. The λ=5 point is 0.0008. The signal is ",{"type":21,"tag":12756,"props":28689,"children":28690},{},[28691],{"type":31,"value":28692},"gone",{"type":31,"value":28694},". The fit is being driven by two nearly-zero numbers and one noisy one, and it happens to land somewhere between raw and truth because the curve shape forces it to.",{"type":21,"tag":22,"props":28696,"children":28697},{},[28698,28700,28706,28708,28713,28715,28720],{"type":31,"value":28699},"This is precisely the failure mode Köster and Mauerer characterize in ",{"type":21,"tag":26,"props":28701,"children":28703},{"href":28702},"\u002Fresearch\u002Fzne-artefactual-improvements-2026",[28704],{"type":31,"value":28705},"Artefactual Improvements in Zero-Noise Extrapolation",{"type":31,"value":28707}," (2026). Their finding: once noise amplification pushes past usable signal, ",{"type":21,"tag":16802,"props":28709,"children":28710},{},[28711],{"type":31,"value":28712},"Richardson extrapolation degenerates into a fixed rescaling of a single noisy measurement",{"type":31,"value":28714},". The output is no longer a function of the noise amplification it supposedly corrects for. The amplified points contribute nothing but their own vanishing. On real hardware they measured runs that ",{"type":21,"tag":12756,"props":28716,"children":28717},{},[28718],{"type":31,"value":28719},"overshot",{"type":31,"value":28721}," the ideal value by up to 21%.",{"type":21,"tag":22,"props":28723,"children":28724},{},[28725,28727,28732],{"type":31,"value":28726},"Their sharpest result is a negative control. They defined \"garbage folding\" (circuit modifications with no relationship to the identity-insertion ZNE requires, i.e. deliberately meaningless) and pushed those through the same pipeline. It produced ",{"type":21,"tag":12756,"props":28728,"children":28729},{},[28730],{"type":31,"value":28731},"larger",{"type":31,"value":28733}," apparent improvements than legitimate folding. If nonsense scores better than the real method, the score is not measuring what you think it is.",{"type":21,"tag":22,"props":28735,"children":28736},{},[28737,28742],{"type":21,"tag":16802,"props":28738,"children":28739},{},[28740],{"type":31,"value":28741},"The operational lesson: improvement magnitude never validates a mitigation result.",{"type":31,"value":28743}," A number moving toward the expected answer is not evidence the method worked. It might instead be evidence the method collapsed into a rescaling that happens to move numbers in that direction.",{"type":21,"tag":41,"props":28745,"children":28747},{"id":28746},"the-sanity-checks-that-catch-this",[28748],{"type":31,"value":28749},"The Sanity Checks That Catch This",{"type":21,"tag":22,"props":28751,"children":28752},{},[28753],{"type":31,"value":28754},"Three of them, none expensive:",{"type":21,"tag":22,"props":28756,"children":28757},{},[28758,28763,28765,28771],{"type":21,"tag":16802,"props":28759,"children":28760},{},[28761],{"type":31,"value":28762},"1. Inspect the raw scale-factor points, always.",{"type":31,"value":28764}," If your highest-λ value has collapsed toward the fully-depolarized value (0 for a parity observable, 1\u002F2^n for a probability), discard it. Fitting through dead points is fitting noise. In the failing run above, one glance at ",{"type":21,"tag":104,"props":28766,"children":28768},{"className":28767},[],[28769],{"type":31,"value":28770},"0.0008",{"type":31,"value":28772}," tells you the extrapolation is unsupported.",{"type":21,"tag":22,"props":28774,"children":28775},{},[28776,28781,28783,28788,28790,28796,28798,28803],{"type":21,"tag":16802,"props":28777,"children":28778},{},[28779],{"type":31,"value":28780},"2. Run a negative control.",{"type":31,"value":28782}," Build a variant of your folding that ",{"type":21,"tag":12756,"props":28784,"children":28785},{},[28786],{"type":31,"value":28787},"shouldn't",{"type":31,"value":28789}," work (random gates of comparable depth instead of ",{"type":21,"tag":104,"props":28791,"children":28793},{"className":28792},[],[28794],{"type":31,"value":28795},"U†U",{"type":31,"value":28797}," pairs) and push it through the identical pipeline. In my failing case, garbage folding returned 0.186 against a raw value of 0.329: it moved the answer ",{"type":21,"tag":12756,"props":28799,"children":28800},{},[28801],{"type":31,"value":28802},"away",{"type":31,"value":28804}," from truth. That divergence is the flag. Whether your control produces spurious improvement or spurious degradation, any large response to meaningless input means your pipeline is fitting artifacts.",{"type":21,"tag":22,"props":28806,"children":28807},{},[28808,28819],{"type":21,"tag":16802,"props":28809,"children":28810},{},[28811,28813,28817],{"type":31,"value":28812},"3. Verify against a ",{"type":21,"tag":26,"props":28814,"children":28815},{"href":3292},[28816],{"type":31,"value":9811},{"type":31,"value":28818}," at small scale.",{"type":31,"value":28820}," Run the same mitigation pipeline on a problem size you compute exactly. If ZNE doesn't recover the known response at 6 qubits, nothing about 60 qubits will be trustworthy.",{"type":21,"tag":41,"props":28822,"children":28824},{"id":28823},"probabilistic-error-cancellation-briefly",[28825],{"type":31,"value":28826},"Probabilistic Error Cancellation (Briefly)",{"type":21,"tag":22,"props":28828,"children":28829},{},[28830,28832,28837],{"type":31,"value":28831},"PEC is the rigorous option. Characterize the noise channel precisely, express the ",{"type":21,"tag":12756,"props":28833,"children":28834},{},[28835],{"type":31,"value":28836},"inverse",{"type":31,"value":28838}," channel as a quasi-probability distribution over implementable operations, then sample from it with signed weights. It's unbiased in principle. No extrapolation guesswork.",{"type":21,"tag":22,"props":28840,"children":28841},{},[28842,28844,28850],{"type":31,"value":28843},"The cost is brutal. Sampling overhead scales as γ², where γ grows exponentially in circuit depth × error rate. A modest circuit sometimes needs 100-10,000 times more shots than the unmitigated run, on top of an expensive noise-characterization phase (gate set tomography or cycle benchmarking). PEC is appropriate for small, high-value circuits where you need a trustworthy number and afford the ",{"type":21,"tag":26,"props":28845,"children":28847},{"href":28846},"\u002Fglossary\u002Fshot-budget",[28848],{"type":31,"value":28849},"shot budget",{"type":31,"value":28851},". For most work, it isn't.",{"type":21,"tag":41,"props":28853,"children":28855},{"id":28854},"what-to-do",[28856],{"type":31,"value":28857},"What To Do",{"type":21,"tag":22,"props":28859,"children":28860},{},[28861],{"type":31,"value":28862},"In order:",{"type":21,"tag":68,"props":28864,"children":28865},{},[28866,28876,28886,28896,28906],{"type":21,"tag":72,"props":28867,"children":28868},{},[28869,28874],{"type":21,"tag":16802,"props":28870,"children":28871},{},[28872],{"type":31,"value":28873},"Readout mitigation",{"type":31,"value":28875},": always. Cheap, bounded, low-risk.",{"type":21,"tag":72,"props":28877,"children":28878},{},[28879,28884],{"type":21,"tag":16802,"props":28880,"children":28881},{},[28882],{"type":31,"value":28883},"Dynamical decoupling",{"type":31,"value":28885},": always, if your circuit has idle qubits. Free.",{"type":21,"tag":72,"props":28887,"children":28888},{},[28889,28894],{"type":21,"tag":16802,"props":28890,"children":28891},{},[28892],{"type":31,"value":28893},"Twirling",{"type":31,"value":28895},": if you plan to use ZNE or PEC, so the noise is stochastic.",{"type":21,"tag":72,"props":28897,"children":28898},{},[28899,28904],{"type":21,"tag":16802,"props":28900,"children":28901},{},[28902],{"type":31,"value":28903},"ZNE",{"type":31,"value":28905},": only with scale-factor inspection and a negative control.",{"type":21,"tag":72,"props":28907,"children":28908},{},[28909,28914],{"type":21,"tag":16802,"props":28910,"children":28911},{},[28912],{"type":31,"value":28913},"PEC",{"type":31,"value":28915},": only when the circuit is little and the answer matters more than the cost.",{"type":21,"tag":22,"props":28917,"children":28918},{},[28919,28924,28926,28931,28933,28938],{"type":21,"tag":16802,"props":28920,"children":28921},{},[28922],{"type":31,"value":28923},"Skip mitigation entirely when:",{"type":31,"value":28925}," your raw signal is already below ~0.2 of its ideal magnitude (nothing to extrapolate from), your circuit is deep enough that the λ=3 run is fully depolarized, or you're doing variational optimization where the optimizer only needs the ",{"type":21,"tag":12756,"props":28927,"children":28928},{},[28929],{"type":31,"value":28930},"gradient direction",{"type":31,"value":28932},": bias that's roughly constant across parameter space often cancels out, and you're better off spending those shots on more iterations. Techniques for that are in ",{"type":21,"tag":26,"props":28934,"children":28935},{"href":18581},[28936],{"type":31,"value":28937},"cutting your shot count",{"type":31,"value":6665},{"type":21,"tag":22,"props":28940,"children":28941},{},[28942,28944,28949],{"type":31,"value":28943},"Mitigation buys you a few years of useful computation on machines that shouldn't be useful yet. It does not buy you fault tolerance, and it will happily hand you a confident wrong answer if you skip the controls. Get comfortable with the ",{"type":21,"tag":26,"props":28945,"children":28946},{"href":1120},[28947],{"type":31,"value":28948},"Qiskit tooling",{"type":31,"value":28950},", always sanity-check against exact simulation, and treat any unvalidated improvement as a hypothesis rather than a result.",{"type":21,"tag":22,"props":28952,"children":28953},{},[28954,28959,28960,28965,28967,28972,28973],{"type":21,"tag":16802,"props":28955,"children":28956},{},[28957],{"type":31,"value":28958},"Related:",{"type":31,"value":22948},{"type":21,"tag":26,"props":28961,"children":28962},{"href":15609},[28963],{"type":31,"value":28964},"Error correction explained",{"type":31,"value":28966}," · ",{"type":21,"tag":26,"props":28968,"children":28969},{"href":28702},[28970],{"type":31,"value":28971},"ZNE artefacts paper",{"type":31,"value":28966},{"type":21,"tag":26,"props":28974,"children":28976},{"href":28975},"\u002Fglossary\u002Fquantum-utility",[28977],{"type":31,"value":28978},"Quantum utility",{"type":21,"tag":1168,"props":28980,"children":28981},{},[28982],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":28984},[28985,28986,28987,28988,28989,28990,28991,28992,28993],{"id":25939,"depth":168,"text":25942},{"id":26129,"depth":168,"text":26132},{"id":27596,"depth":168,"text":27599},{"id":27832,"depth":168,"text":27835},{"id":27867,"depth":168,"text":27870},{"id":28666,"depth":168,"text":28669},{"id":28746,"depth":168,"text":28749},{"id":28823,"depth":168,"text":28826},{"id":28854,"depth":168,"text":28857},"content:blog:error-mitigation-practical-guide.md","blog\u002Ferror-mitigation-practical-guide.md","blog\u002Ferror-mitigation-practical-guide",{"_path":28998,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":28999,"description":29000,"date":25047,"author":11,"tags":29001,"readingTime":361,"body":29002,"_type":1187,"_id":30710,"_source":1189,"_file":30711,"_stem":30712,"_extension":1192},"\u002Fblog\u002Fgrover-algorithm-tutorial","Grover's Algorithm in Qiskit: A Practical Tutorial","Build Grover's search algorithm from scratch in Qiskit: oracle, diffuser, and the optimal iteration count, with complete runnable code and honest limits on the quadratic speedup.",[13,14,3041],{"type":18,"children":29003,"toc":30698},[29004,29014,29019,29025,29030,29035,29047,29053,29058,29088,29093,29099,29111,29261,29273,29279,29284,29305,29622,29650,29656,29661,29882,29894,29900,29905,29913,29923,29928,30338,30343,30351,30363,30369,30381,30386,30394,30406,30418,30424,30429,30446,30456,30480,30492,30498,30510,30578,30597,30616,30622,30694],{"type":21,"tag":22,"props":29005,"children":29006},{},[29007,29012],{"type":21,"tag":26,"props":29008,"children":29009},{"href":1223},[29010],{"type":31,"value":29011},"Grover's algorithm",{"type":31,"value":29013}," is the second-most-famous quantum algorithm after Shor's, and it is by far the easier one to build. You implement a working version in about forty lines of Qiskit and watch the marked state emerge from the noise floor.",{"type":21,"tag":22,"props":29015,"children":29016},{},[29017],{"type":31,"value":29018},"It's also the algorithm most commonly misunderstood. This guide builds it step by step, shows the mistake that almost every beginner makes, and is honest about what the speedup does and does not buy you.",{"type":21,"tag":41,"props":29020,"children":29022},{"id":29021},"the-problem-unstructured-search",[29023],{"type":31,"value":29024},"The Problem: Unstructured Search",{"type":21,"tag":22,"props":29026,"children":29027},{},[29028],{"type":31,"value":29029},"You have N possibilities. Exactly one of them (or a few) satisfies some condition. You have no structure to exploit: no sorting, no index, no gradient, nothing that lets you rule out half the space with one look. Your only tool is a checker function: hand it a candidate, it tells you yes or no.",{"type":21,"tag":22,"props":29031,"children":29032},{},[29033],{"type":31,"value":29034},"Classically, you have no choice but to try candidates one at a time. On average that's N\u002F2 checks, and N in the worst case. Grover's algorithm finds the answer in roughly (π\u002F4)√N checks. For N = 1,000,000 that's about 785 instead of 500,000.",{"type":21,"tag":22,"props":29036,"children":29037},{},[29038,29040,29045],{"type":31,"value":29039},"The word ",{"type":21,"tag":16802,"props":29041,"children":29042},{},[29043],{"type":31,"value":29044},"unstructured",{"type":31,"value":29046}," is doing enormous work here. It does not mean \"hard\". It means \"the only thing you do is test candidates\". If your problem has any exploitable structure (sorted data, a hash index, a metric that lets you prune), classical algorithms will use it and will crush Grover. The classic \"search a database of N records\" framing is genuinely misleading, and we'll come back to why.",{"type":21,"tag":41,"props":29048,"children":29050},{"id":29049},"the-core-idea-amplitude-amplification",[29051],{"type":31,"value":29052},"The Core Idea: Amplitude Amplification",{"type":21,"tag":22,"props":29054,"children":29055},{},[29056],{"type":31,"value":29057},"Start with every state equally likely. Then repeat two operations:",{"type":21,"tag":68,"props":29059,"children":29060},{},[29061,29078],{"type":21,"tag":72,"props":29062,"children":29063},{},[29064,29069,29071,29076],{"type":21,"tag":16802,"props":29065,"children":29066},{},[29067],{"type":31,"value":29068},"The oracle",{"type":31,"value":29070}," flips the ",{"type":21,"tag":12756,"props":29072,"children":29073},{},[29074],{"type":31,"value":29075},"sign",{"type":31,"value":29077}," of the amplitude of the marked state, leaving everything else alone. Probabilities don't change (all amplitudes are still ±1\u002F√N) but the marked one now points the other way.",{"type":21,"tag":72,"props":29079,"children":29080},{},[29081,29086],{"type":21,"tag":16802,"props":29082,"children":29083},{},[29084],{"type":31,"value":29085},"The diffusion operator",{"type":31,"value":29087}," reflects every amplitude about their mean. Since the marked amplitude is negative it sits far below the mean, so reflecting it sends it well above. Every other amplitude drops slightly.",{"type":21,"tag":22,"props":29089,"children":29090},{},[29091],{"type":31,"value":29092},"Each round is a rotation of the state vector toward the target by a fixed angle. That's the whole algorithm. The rotation angle is fixed, which is exactly why overshooting is possible. More on that shortly.",{"type":21,"tag":41,"props":29094,"children":29096},{"id":29095},"step-1-uniform-superposition",[29097],{"type":31,"value":29098},"Step 1: Uniform Superposition",{"type":21,"tag":22,"props":29100,"children":29101},{},[29102,29104,29109],{"type":31,"value":29103},"Apply a ",{"type":21,"tag":26,"props":29105,"children":29106},{"href":3083},[29107],{"type":31,"value":29108},"Hadamard gate",{"type":31,"value":29110}," to every qubit. Three qubits give eight basis states each with amplitude 1\u002F√8.",{"type":21,"tag":129,"props":29112,"children":29114},{"code":29113,"language":133,"meta":7,"className":131,"style":7},"from qiskit import QuantumCircuit, transpile\nfrom qiskit_aer import AerSimulator\nimport math\n\nn = 3                # 3 qubits -> N = 8 states\nmarked = \"101\"       # the state we want to find\n\nqc = QuantumCircuit(n, n)\nqc.h(range(n))       # uniform superposition\n",[29115],{"type":21,"tag":104,"props":29116,"children":29117},{"__ignoreMap":7},[29118,29137,29156,29168,29175,29196,29218,29225,29240],{"type":21,"tag":139,"props":29119,"children":29120},{"class":141,"line":142},[29121,29125,29129,29133],{"type":21,"tag":139,"props":29122,"children":29123},{"style":146},[29124],{"type":31,"value":149},{"type":21,"tag":139,"props":29126,"children":29127},{"style":152},[29128],{"type":31,"value":155},{"type":21,"tag":139,"props":29130,"children":29131},{"style":146},[29132],{"type":31,"value":160},{"type":21,"tag":139,"props":29134,"children":29135},{"style":152},[29136],{"type":31,"value":20056},{"type":21,"tag":139,"props":29138,"children":29139},{"class":141,"line":168},[29140,29144,29148,29152],{"type":21,"tag":139,"props":29141,"children":29142},{"style":146},[29143],{"type":31,"value":149},{"type":21,"tag":139,"props":29145,"children":29146},{"style":152},[29147],{"type":31,"value":178},{"type":21,"tag":139,"props":29149,"children":29150},{"style":146},[29151],{"type":31,"value":160},{"type":21,"tag":139,"props":29153,"children":29154},{"style":152},[29155],{"type":31,"value":187},{"type":21,"tag":139,"props":29157,"children":29158},{"class":141,"line":190},[29159,29163],{"type":21,"tag":139,"props":29160,"children":29161},{"style":146},[29162],{"type":31,"value":160},{"type":21,"tag":139,"props":29164,"children":29165},{"style":152},[29166],{"type":31,"value":29167}," math\n",{"type":21,"tag":139,"props":29169,"children":29170},{"class":141,"line":200},[29171],{"type":21,"tag":139,"props":29172,"children":29173},{"emptyLinePlaceholder":194},[29174],{"type":31,"value":197},{"type":21,"tag":139,"props":29176,"children":29177},{"class":141,"line":226},[29178,29182,29186,29191],{"type":21,"tag":139,"props":29179,"children":29180},{"style":152},[29181],{"type":31,"value":19287},{"type":21,"tag":139,"props":29183,"children":29184},{"style":146},[29185],{"type":31,"value":211},{"type":21,"tag":139,"props":29187,"children":29188},{"style":214},[29189],{"type":31,"value":29190}," 3",{"type":21,"tag":139,"props":29192,"children":29193},{"style":220},[29194],{"type":31,"value":29195},"                # 3 qubits -> N = 8 states\n",{"type":21,"tag":139,"props":29197,"children":29198},{"class":141,"line":234},[29199,29204,29208,29213],{"type":21,"tag":139,"props":29200,"children":29201},{"style":152},[29202],{"type":31,"value":29203},"marked ",{"type":21,"tag":139,"props":29205,"children":29206},{"style":146},[29207],{"type":31,"value":211},{"type":21,"tag":139,"props":29209,"children":29210},{"style":262},[29211],{"type":31,"value":29212}," \"101\"",{"type":21,"tag":139,"props":29214,"children":29215},{"style":220},[29216],{"type":31,"value":29217},"       # the state we want to find\n",{"type":21,"tag":139,"props":29219,"children":29220},{"class":141,"line":273},[29221],{"type":21,"tag":139,"props":29222,"children":29223},{"emptyLinePlaceholder":194},[29224],{"type":31,"value":197},{"type":21,"tag":139,"props":29226,"children":29227},{"class":141,"line":309},[29228,29232,29236],{"type":21,"tag":139,"props":29229,"children":29230},{"style":152},[29231],{"type":31,"value":349},{"type":21,"tag":139,"props":29233,"children":29234},{"style":146},[29235],{"type":31,"value":211},{"type":21,"tag":139,"props":29237,"children":29238},{"style":152},[29239],{"type":31,"value":26685},{"type":21,"tag":139,"props":29241,"children":29242},{"class":141,"line":16},[29243,29247,29251,29256],{"type":21,"tag":139,"props":29244,"children":29245},{"style":152},[29246],{"type":31,"value":442},{"type":21,"tag":139,"props":29248,"children":29249},{"style":214},[29250],{"type":31,"value":17713},{"type":21,"tag":139,"props":29252,"children":29253},{"style":152},[29254],{"type":31,"value":29255},"(n))       ",{"type":21,"tag":139,"props":29257,"children":29258},{"style":220},[29259],{"type":31,"value":29260},"# uniform superposition\n",{"type":21,"tag":22,"props":29262,"children":29263},{},[29264,29266,29271],{"type":31,"value":29265},"If you ",{"type":21,"tag":26,"props":29267,"children":29268},{"href":14867},[29269],{"type":31,"value":29270},"measure",{"type":31,"value":29272}," here you get a uniform random bitstring: 12.5% for each of the eight outcomes. That's the baseline to beat.",{"type":21,"tag":41,"props":29274,"children":29276},{"id":29275},"step-2-the-oracle",[29277],{"type":31,"value":29278},"Step 2: The Oracle",{"type":21,"tag":22,"props":29280,"children":29281},{},[29282],{"type":31,"value":29283},"The oracle must apply a phase of −1 to |101⟩ and +1 to everything else. The trick is a multi-controlled Z gate: it flips the sign of |111⟩ only. To mark a different pattern, sandwich it with X gates on the qubits that should be 0.",{"type":21,"tag":22,"props":29285,"children":29286},{},[29287,29289,29295,29297,29303],{"type":31,"value":29288},"Qiskit has no ",{"type":21,"tag":104,"props":29290,"children":29292},{"className":29291},[],[29293],{"type":31,"value":29294},"mcz",{"type":31,"value":29296},", so we build it the standard way: an H on the target, a multi-controlled X (",{"type":21,"tag":26,"props":29298,"children":29300},{"href":29299},"\u002Fglossary\u002Ftoffoli-gate",[29301],{"type":31,"value":29302},"Toffoli",{"type":31,"value":29304}," generalized), an H back:",{"type":21,"tag":129,"props":29306,"children":29308},{"code":29307,"language":133,"meta":7,"className":131,"style":7},"def oracle(n, marked):\n    \"\"\"Phase-flip the marked basis state.\"\"\"\n    qc = QuantumCircuit(n, name=\"Oracle\")\n    rev = marked[::-1]              # Qiskit is little-endian\n    for i, bit in enumerate(rev):\n        if bit == \"0\":\n            qc.x(i)\n    qc.h(n - 1)                     # multi-controlled Z\n    qc.mcx(list(range(n - 1)), n - 1)\n    qc.h(n - 1)\n    for i, bit in enumerate(rev):\n        if bit == \"0\":\n            qc.x(i)\n    return qc\n",[29309],{"type":21,"tag":104,"props":29310,"children":29311},{"__ignoreMap":7},[29312,29329,29337,29371,29405,29430,29456,29464,29490,29539,29558,29581,29604,29611],{"type":21,"tag":139,"props":29313,"children":29314},{"class":141,"line":142},[29315,29319,29324],{"type":21,"tag":139,"props":29316,"children":29317},{"style":146},[29318],{"type":31,"value":5487},{"type":21,"tag":139,"props":29320,"children":29321},{"style":4509},[29322],{"type":31,"value":29323}," oracle",{"type":21,"tag":139,"props":29325,"children":29326},{"style":152},[29327],{"type":31,"value":29328},"(n, marked):\n",{"type":21,"tag":139,"props":29330,"children":29331},{"class":141,"line":168},[29332],{"type":21,"tag":139,"props":29333,"children":29334},{"style":262},[29335],{"type":31,"value":29336},"    \"\"\"Phase-flip the marked basis state.\"\"\"\n",{"type":21,"tag":139,"props":29338,"children":29339},{"class":141,"line":190},[29340,29344,29348,29353,29358,29362,29367],{"type":21,"tag":139,"props":29341,"children":29342},{"style":152},[29343],{"type":31,"value":17771},{"type":21,"tag":139,"props":29345,"children":29346},{"style":146},[29347],{"type":31,"value":211},{"type":21,"tag":139,"props":29349,"children":29350},{"style":152},[29351],{"type":31,"value":29352}," QuantumCircuit(n, ",{"type":21,"tag":139,"props":29354,"children":29355},{"style":923},[29356],{"type":31,"value":29357},"name",{"type":21,"tag":139,"props":29359,"children":29360},{"style":146},[29361],{"type":31,"value":211},{"type":21,"tag":139,"props":29363,"children":29364},{"style":262},[29365],{"type":31,"value":29366},"\"Oracle\"",{"type":21,"tag":139,"props":29368,"children":29369},{"style":152},[29370],{"type":31,"value":270},{"type":21,"tag":139,"props":29372,"children":29373},{"class":141,"line":200},[29374,29379,29383,29388,29392,29396,29401],{"type":21,"tag":139,"props":29375,"children":29376},{"style":152},[29377],{"type":31,"value":29378},"    rev ",{"type":21,"tag":139,"props":29380,"children":29381},{"style":146},[29382],{"type":31,"value":211},{"type":21,"tag":139,"props":29384,"children":29385},{"style":152},[29386],{"type":31,"value":29387}," marked[::",{"type":21,"tag":139,"props":29389,"children":29390},{"style":146},[29391],{"type":31,"value":825},{"type":21,"tag":139,"props":29393,"children":29394},{"style":214},[29395],{"type":31,"value":328},{"type":21,"tag":139,"props":29397,"children":29398},{"style":152},[29399],{"type":31,"value":29400},"]              ",{"type":21,"tag":139,"props":29402,"children":29403},{"style":220},[29404],{"type":31,"value":26756},{"type":21,"tag":139,"props":29406,"children":29407},{"class":141,"line":226},[29408,29412,29417,29421,29425],{"type":21,"tag":139,"props":29409,"children":29410},{"style":146},[29411],{"type":31,"value":17024},{"type":21,"tag":139,"props":29413,"children":29414},{"style":152},[29415],{"type":31,"value":29416}," i, bit ",{"type":21,"tag":139,"props":29418,"children":29419},{"style":146},[29420],{"type":31,"value":1496},{"type":21,"tag":139,"props":29422,"children":29423},{"style":214},[29424],{"type":31,"value":26777},{"type":21,"tag":139,"props":29426,"children":29427},{"style":152},[29428],{"type":31,"value":29429},"(rev):\n",{"type":21,"tag":139,"props":29431,"children":29432},{"class":141,"line":234},[29433,29438,29443,29447,29452],{"type":21,"tag":139,"props":29434,"children":29435},{"style":146},[29436],{"type":31,"value":29437},"        if",{"type":21,"tag":139,"props":29439,"children":29440},{"style":152},[29441],{"type":31,"value":29442}," bit ",{"type":21,"tag":139,"props":29444,"children":29445},{"style":146},[29446],{"type":31,"value":7335},{"type":21,"tag":139,"props":29448,"children":29449},{"style":262},[29450],{"type":31,"value":29451}," \"0\"",{"type":21,"tag":139,"props":29453,"children":29454},{"style":152},[29455],{"type":31,"value":26809},{"type":21,"tag":139,"props":29457,"children":29458},{"class":141,"line":273},[29459],{"type":21,"tag":139,"props":29460,"children":29461},{"style":152},[29462],{"type":31,"value":29463},"            qc.x(i)\n",{"type":21,"tag":139,"props":29465,"children":29466},{"class":141,"line":309},[29467,29472,29476,29480,29485],{"type":21,"tag":139,"props":29468,"children":29469},{"style":152},[29470],{"type":31,"value":29471},"    qc.h(n ",{"type":21,"tag":139,"props":29473,"children":29474},{"style":146},[29475],{"type":31,"value":825},{"type":21,"tag":139,"props":29477,"children":29478},{"style":214},[29479],{"type":31,"value":17050},{"type":21,"tag":139,"props":29481,"children":29482},{"style":152},[29483],{"type":31,"value":29484},")                     ",{"type":21,"tag":139,"props":29486,"children":29487},{"style":220},[29488],{"type":31,"value":29489},"# multi-controlled Z\n",{"type":21,"tag":139,"props":29491,"children":29492},{"class":141,"line":16},[29493,29498,29502,29506,29510,29514,29518,29522,29527,29531,29535],{"type":21,"tag":139,"props":29494,"children":29495},{"style":152},[29496],{"type":31,"value":29497},"    qc.mcx(",{"type":21,"tag":139,"props":29499,"children":29500},{"style":214},[29501],{"type":31,"value":19467},{"type":21,"tag":139,"props":29503,"children":29504},{"style":152},[29505],{"type":31,"value":953},{"type":21,"tag":139,"props":29507,"children":29508},{"style":214},[29509],{"type":31,"value":17713},{"type":21,"tag":139,"props":29511,"children":29512},{"style":152},[29513],{"type":31,"value":17041},{"type":21,"tag":139,"props":29515,"children":29516},{"style":146},[29517],{"type":31,"value":825},{"type":21,"tag":139,"props":29519,"children":29520},{"style":214},[29521],{"type":31,"value":17050},{"type":21,"tag":139,"props":29523,"children":29524},{"style":152},[29525],{"type":31,"value":29526},")), n ",{"type":21,"tag":139,"props":29528,"children":29529},{"style":146},[29530],{"type":31,"value":825},{"type":21,"tag":139,"props":29532,"children":29533},{"style":214},[29534],{"type":31,"value":17050},{"type":21,"tag":139,"props":29536,"children":29537},{"style":152},[29538],{"type":31,"value":270},{"type":21,"tag":139,"props":29540,"children":29541},{"class":141,"line":361},[29542,29546,29550,29554],{"type":21,"tag":139,"props":29543,"children":29544},{"style":152},[29545],{"type":31,"value":29471},{"type":21,"tag":139,"props":29547,"children":29548},{"style":146},[29549],{"type":31,"value":825},{"type":21,"tag":139,"props":29551,"children":29552},{"style":214},[29553],{"type":31,"value":17050},{"type":21,"tag":139,"props":29555,"children":29556},{"style":152},[29557],{"type":31,"value":270},{"type":21,"tag":139,"props":29559,"children":29560},{"class":141,"line":369},[29561,29565,29569,29573,29577],{"type":21,"tag":139,"props":29562,"children":29563},{"style":146},[29564],{"type":31,"value":17024},{"type":21,"tag":139,"props":29566,"children":29567},{"style":152},[29568],{"type":31,"value":29416},{"type":21,"tag":139,"props":29570,"children":29571},{"style":146},[29572],{"type":31,"value":1496},{"type":21,"tag":139,"props":29574,"children":29575},{"style":214},[29576],{"type":31,"value":26777},{"type":21,"tag":139,"props":29578,"children":29579},{"style":152},[29580],{"type":31,"value":29429},{"type":21,"tag":139,"props":29582,"children":29583},{"class":141,"line":378},[29584,29588,29592,29596,29600],{"type":21,"tag":139,"props":29585,"children":29586},{"style":146},[29587],{"type":31,"value":29437},{"type":21,"tag":139,"props":29589,"children":29590},{"style":152},[29591],{"type":31,"value":29442},{"type":21,"tag":139,"props":29593,"children":29594},{"style":146},[29595],{"type":31,"value":7335},{"type":21,"tag":139,"props":29597,"children":29598},{"style":262},[29599],{"type":31,"value":29451},{"type":21,"tag":139,"props":29601,"children":29602},{"style":152},[29603],{"type":31,"value":26809},{"type":21,"tag":139,"props":29605,"children":29606},{"class":141,"line":387},[29607],{"type":21,"tag":139,"props":29608,"children":29609},{"style":152},[29610],{"type":31,"value":29463},{"type":21,"tag":139,"props":29612,"children":29613},{"class":141,"line":396},[29614,29618],{"type":21,"tag":139,"props":29615,"children":29616},{"style":146},[29617],{"type":31,"value":5582},{"type":21,"tag":139,"props":29619,"children":29620},{"style":152},[29621],{"type":31,"value":17737},{"type":21,"tag":22,"props":29623,"children":29624},{},[29625,29627,29632,29634,29640,29642,29648],{"type":31,"value":29626},"Watch the endianness. Qiskit orders bitstrings with qubit 0 on the ",{"type":21,"tag":16802,"props":29628,"children":29629},{},[29630],{"type":31,"value":29631},"right",{"type":31,"value":29633},", so ",{"type":21,"tag":104,"props":29635,"children":29637},{"className":29636},[],[29638],{"type":31,"value":29639},"marked[::-1]",{"type":31,"value":29641}," maps the string to qubit indices. Getting this backwards is the second most common bug in Grover implementations and it fails silently. You'll amplify ",{"type":21,"tag":104,"props":29643,"children":29645},{"className":29644},[],[29646],{"type":31,"value":29647},"101",{"type":31,"value":29649}," reversed and wonder why.",{"type":21,"tag":41,"props":29651,"children":29653},{"id":29652},"step-3-the-diffusion-operator",[29654],{"type":31,"value":29655},"Step 3: The Diffusion Operator",{"type":21,"tag":22,"props":29657,"children":29658},{},[29659],{"type":31,"value":29660},"Inversion about the mean is H⊗n, then X⊗n, then a multi-controlled Z, then X⊗n, then H⊗n. Structurally it's a reflection about the uniform superposition state:",{"type":21,"tag":129,"props":29662,"children":29664},{"code":29663,"language":133,"meta":7,"className":131,"style":7},"def diffuser(n):\n    \"\"\"Inversion about the mean.\"\"\"\n    qc = QuantumCircuit(n, name=\"Diffuser\")\n    qc.h(range(n))\n    qc.x(range(n))\n    qc.h(n - 1)\n    qc.mcx(list(range(n - 1)), n - 1)\n    qc.h(n - 1)\n    qc.x(range(n))\n    qc.h(range(n))\n    return qc\n",[29665],{"type":21,"tag":104,"props":29666,"children":29667},{"__ignoreMap":7},[29668,29685,29693,29725,29741,29756,29775,29822,29841,29856,29871],{"type":21,"tag":139,"props":29669,"children":29670},{"class":141,"line":142},[29671,29675,29680],{"type":21,"tag":139,"props":29672,"children":29673},{"style":146},[29674],{"type":31,"value":5487},{"type":21,"tag":139,"props":29676,"children":29677},{"style":4509},[29678],{"type":31,"value":29679}," diffuser",{"type":21,"tag":139,"props":29681,"children":29682},{"style":152},[29683],{"type":31,"value":29684},"(n):\n",{"type":21,"tag":139,"props":29686,"children":29687},{"class":141,"line":168},[29688],{"type":21,"tag":139,"props":29689,"children":29690},{"style":262},[29691],{"type":31,"value":29692},"    \"\"\"Inversion about the mean.\"\"\"\n",{"type":21,"tag":139,"props":29694,"children":29695},{"class":141,"line":190},[29696,29700,29704,29708,29712,29716,29721],{"type":21,"tag":139,"props":29697,"children":29698},{"style":152},[29699],{"type":31,"value":17771},{"type":21,"tag":139,"props":29701,"children":29702},{"style":146},[29703],{"type":31,"value":211},{"type":21,"tag":139,"props":29705,"children":29706},{"style":152},[29707],{"type":31,"value":29352},{"type":21,"tag":139,"props":29709,"children":29710},{"style":923},[29711],{"type":31,"value":29357},{"type":21,"tag":139,"props":29713,"children":29714},{"style":146},[29715],{"type":31,"value":211},{"type":21,"tag":139,"props":29717,"children":29718},{"style":262},[29719],{"type":31,"value":29720},"\"Diffuser\"",{"type":21,"tag":139,"props":29722,"children":29723},{"style":152},[29724],{"type":31,"value":270},{"type":21,"tag":139,"props":29726,"children":29727},{"class":141,"line":200},[29728,29733,29737],{"type":21,"tag":139,"props":29729,"children":29730},{"style":152},[29731],{"type":31,"value":29732},"    qc.h(",{"type":21,"tag":139,"props":29734,"children":29735},{"style":214},[29736],{"type":31,"value":17713},{"type":21,"tag":139,"props":29738,"children":29739},{"style":152},[29740],{"type":31,"value":26843},{"type":21,"tag":139,"props":29742,"children":29743},{"class":141,"line":226},[29744,29748,29752],{"type":21,"tag":139,"props":29745,"children":29746},{"style":152},[29747],{"type":31,"value":714},{"type":21,"tag":139,"props":29749,"children":29750},{"style":214},[29751],{"type":31,"value":17713},{"type":21,"tag":139,"props":29753,"children":29754},{"style":152},[29755],{"type":31,"value":26843},{"type":21,"tag":139,"props":29757,"children":29758},{"class":141,"line":234},[29759,29763,29767,29771],{"type":21,"tag":139,"props":29760,"children":29761},{"style":152},[29762],{"type":31,"value":29471},{"type":21,"tag":139,"props":29764,"children":29765},{"style":146},[29766],{"type":31,"value":825},{"type":21,"tag":139,"props":29768,"children":29769},{"style":214},[29770],{"type":31,"value":17050},{"type":21,"tag":139,"props":29772,"children":29773},{"style":152},[29774],{"type":31,"value":270},{"type":21,"tag":139,"props":29776,"children":29777},{"class":141,"line":273},[29778,29782,29786,29790,29794,29798,29802,29806,29810,29814,29818],{"type":21,"tag":139,"props":29779,"children":29780},{"style":152},[29781],{"type":31,"value":29497},{"type":21,"tag":139,"props":29783,"children":29784},{"style":214},[29785],{"type":31,"value":19467},{"type":21,"tag":139,"props":29787,"children":29788},{"style":152},[29789],{"type":31,"value":953},{"type":21,"tag":139,"props":29791,"children":29792},{"style":214},[29793],{"type":31,"value":17713},{"type":21,"tag":139,"props":29795,"children":29796},{"style":152},[29797],{"type":31,"value":17041},{"type":21,"tag":139,"props":29799,"children":29800},{"style":146},[29801],{"type":31,"value":825},{"type":21,"tag":139,"props":29803,"children":29804},{"style":214},[29805],{"type":31,"value":17050},{"type":21,"tag":139,"props":29807,"children":29808},{"style":152},[29809],{"type":31,"value":29526},{"type":21,"tag":139,"props":29811,"children":29812},{"style":146},[29813],{"type":31,"value":825},{"type":21,"tag":139,"props":29815,"children":29816},{"style":214},[29817],{"type":31,"value":17050},{"type":21,"tag":139,"props":29819,"children":29820},{"style":152},[29821],{"type":31,"value":270},{"type":21,"tag":139,"props":29823,"children":29824},{"class":141,"line":309},[29825,29829,29833,29837],{"type":21,"tag":139,"props":29826,"children":29827},{"style":152},[29828],{"type":31,"value":29471},{"type":21,"tag":139,"props":29830,"children":29831},{"style":146},[29832],{"type":31,"value":825},{"type":21,"tag":139,"props":29834,"children":29835},{"style":214},[29836],{"type":31,"value":17050},{"type":21,"tag":139,"props":29838,"children":29839},{"style":152},[29840],{"type":31,"value":270},{"type":21,"tag":139,"props":29842,"children":29843},{"class":141,"line":16},[29844,29848,29852],{"type":21,"tag":139,"props":29845,"children":29846},{"style":152},[29847],{"type":31,"value":714},{"type":21,"tag":139,"props":29849,"children":29850},{"style":214},[29851],{"type":31,"value":17713},{"type":21,"tag":139,"props":29853,"children":29854},{"style":152},[29855],{"type":31,"value":26843},{"type":21,"tag":139,"props":29857,"children":29858},{"class":141,"line":361},[29859,29863,29867],{"type":21,"tag":139,"props":29860,"children":29861},{"style":152},[29862],{"type":31,"value":29732},{"type":21,"tag":139,"props":29864,"children":29865},{"style":214},[29866],{"type":31,"value":17713},{"type":21,"tag":139,"props":29868,"children":29869},{"style":152},[29870],{"type":31,"value":26843},{"type":21,"tag":139,"props":29872,"children":29873},{"class":141,"line":369},[29874,29878],{"type":21,"tag":139,"props":29875,"children":29876},{"style":146},[29877],{"type":31,"value":5582},{"type":21,"tag":139,"props":29879,"children":29880},{"style":152},[29881],{"type":31,"value":17737},{"type":21,"tag":22,"props":29883,"children":29884},{},[29885,29887,29892],{"type":31,"value":29886},"Note the diffuser knows nothing about the marked state. It is the same ",{"type":21,"tag":26,"props":29888,"children":29889},{"href":4330},[29890],{"type":31,"value":29891},"circuit",{"type":31,"value":29893}," for every search problem. Only the oracle changes.",{"type":21,"tag":41,"props":29895,"children":29897},{"id":29896},"step-4-iterate-the-right-number-of-times",[29898],{"type":31,"value":29899},"Step 4: Iterate the Right Number of Times",{"type":21,"tag":22,"props":29901,"children":29902},{},[29903],{"type":31,"value":29904},"This is where people go wrong. The optimal count is:",{"type":21,"tag":129,"props":29906,"children":29908},{"code":29907},"k = floor( (π\u002F4) · √(N\u002FM) )\n",[29909],{"type":21,"tag":104,"props":29910,"children":29911},{"__ignoreMap":7},[29912],{"type":31,"value":29907},{"type":21,"tag":22,"props":29914,"children":29915},{},[29916,29918,29922],{"type":31,"value":29917},"where N = 2ⁿ and M is the number of marked states. For N = 8, M = 1: k = floor(2.22) = ",{"type":21,"tag":16802,"props":29919,"children":29920},{},[29921],{"type":31,"value":293},{"type":31,"value":6665},{"type":21,"tag":22,"props":29924,"children":29925},{},[29926],{"type":31,"value":29927},"Here's the complete program:",{"type":21,"tag":129,"props":29929,"children":29931},{"code":29930,"language":133,"meta":7,"className":131,"style":7},"def grover(n, marked, iterations):\n    qc = QuantumCircuit(n, n)\n    qc.h(range(n))                       # uniform superposition\n    orc, dif = oracle(n, marked), diffuser(n)\n    for _ in range(iterations):\n        qc.compose(orc, inplace=True)    # phase-flip the target\n        qc.compose(dif, inplace=True)    # amplify it\n    qc.measure(range(n), range(n))\n    return qc\n\nN = 2 ** n\noptimal = math.floor(math.pi \u002F 4 * math.sqrt(N))\nprint(f\"N = {N}, optimal iterations = {optimal}\")\n\nsim = AerSimulator()\nqc = grover(n, marked, optimal)\ncounts = sim.run(transpile(qc, sim), shots=4096).result().get_counts()\nprint(sorted(counts.items()))\n",[29932],{"type":21,"tag":104,"props":29933,"children":29934},{"__ignoreMap":7},[29935,29952,29967,29987,30004,30028,30059,30088,30112,30123,30130,30155,30190,30249,30256,30271,30287,30319],{"type":21,"tag":139,"props":29936,"children":29937},{"class":141,"line":142},[29938,29942,29947],{"type":21,"tag":139,"props":29939,"children":29940},{"style":146},[29941],{"type":31,"value":5487},{"type":21,"tag":139,"props":29943,"children":29944},{"style":4509},[29945],{"type":31,"value":29946}," grover",{"type":21,"tag":139,"props":29948,"children":29949},{"style":152},[29950],{"type":31,"value":29951},"(n, marked, iterations):\n",{"type":21,"tag":139,"props":29953,"children":29954},{"class":141,"line":168},[29955,29959,29963],{"type":21,"tag":139,"props":29956,"children":29957},{"style":152},[29958],{"type":31,"value":17771},{"type":21,"tag":139,"props":29960,"children":29961},{"style":146},[29962],{"type":31,"value":211},{"type":21,"tag":139,"props":29964,"children":29965},{"style":152},[29966],{"type":31,"value":26685},{"type":21,"tag":139,"props":29968,"children":29969},{"class":141,"line":190},[29970,29974,29978,29983],{"type":21,"tag":139,"props":29971,"children":29972},{"style":152},[29973],{"type":31,"value":29732},{"type":21,"tag":139,"props":29975,"children":29976},{"style":214},[29977],{"type":31,"value":17713},{"type":21,"tag":139,"props":29979,"children":29980},{"style":152},[29981],{"type":31,"value":29982},"(n))                       ",{"type":21,"tag":139,"props":29984,"children":29985},{"style":220},[29986],{"type":31,"value":29260},{"type":21,"tag":139,"props":29988,"children":29989},{"class":141,"line":200},[29990,29995,29999],{"type":21,"tag":139,"props":29991,"children":29992},{"style":152},[29993],{"type":31,"value":29994},"    orc, dif ",{"type":21,"tag":139,"props":29996,"children":29997},{"style":146},[29998],{"type":31,"value":211},{"type":21,"tag":139,"props":30000,"children":30001},{"style":152},[30002],{"type":31,"value":30003}," oracle(n, marked), diffuser(n)\n",{"type":21,"tag":139,"props":30005,"children":30006},{"class":141,"line":226},[30007,30011,30015,30019,30023],{"type":21,"tag":139,"props":30008,"children":30009},{"style":146},[30010],{"type":31,"value":17024},{"type":21,"tag":139,"props":30012,"children":30013},{"style":152},[30014],{"type":31,"value":17827},{"type":21,"tag":139,"props":30016,"children":30017},{"style":146},[30018],{"type":31,"value":1496},{"type":21,"tag":139,"props":30020,"children":30021},{"style":214},[30022],{"type":31,"value":7417},{"type":21,"tag":139,"props":30024,"children":30025},{"style":152},[30026],{"type":31,"value":30027},"(iterations):\n",{"type":21,"tag":139,"props":30029,"children":30030},{"class":141,"line":234},[30031,30036,30041,30045,30049,30054],{"type":21,"tag":139,"props":30032,"children":30033},{"style":152},[30034],{"type":31,"value":30035},"        qc.compose(orc, ",{"type":21,"tag":139,"props":30037,"children":30038},{"style":923},[30039],{"type":31,"value":30040},"inplace",{"type":21,"tag":139,"props":30042,"children":30043},{"style":146},[30044],{"type":31,"value":211},{"type":21,"tag":139,"props":30046,"children":30047},{"style":214},[30048],{"type":31,"value":8664},{"type":21,"tag":139,"props":30050,"children":30051},{"style":152},[30052],{"type":31,"value":30053},")    ",{"type":21,"tag":139,"props":30055,"children":30056},{"style":220},[30057],{"type":31,"value":30058},"# phase-flip the target\n",{"type":21,"tag":139,"props":30060,"children":30061},{"class":141,"line":273},[30062,30067,30071,30075,30079,30083],{"type":21,"tag":139,"props":30063,"children":30064},{"style":152},[30065],{"type":31,"value":30066},"        qc.compose(dif, ",{"type":21,"tag":139,"props":30068,"children":30069},{"style":923},[30070],{"type":31,"value":30040},{"type":21,"tag":139,"props":30072,"children":30073},{"style":146},[30074],{"type":31,"value":211},{"type":21,"tag":139,"props":30076,"children":30077},{"style":214},[30078],{"type":31,"value":8664},{"type":21,"tag":139,"props":30080,"children":30081},{"style":152},[30082],{"type":31,"value":30053},{"type":21,"tag":139,"props":30084,"children":30085},{"style":220},[30086],{"type":31,"value":30087},"# amplify it\n",{"type":21,"tag":139,"props":30089,"children":30090},{"class":141,"line":309},[30091,30096,30100,30104,30108],{"type":21,"tag":139,"props":30092,"children":30093},{"style":152},[30094],{"type":31,"value":30095},"    qc.measure(",{"type":21,"tag":139,"props":30097,"children":30098},{"style":214},[30099],{"type":31,"value":17713},{"type":21,"tag":139,"props":30101,"children":30102},{"style":152},[30103],{"type":31,"value":26834},{"type":21,"tag":139,"props":30105,"children":30106},{"style":214},[30107],{"type":31,"value":17713},{"type":21,"tag":139,"props":30109,"children":30110},{"style":152},[30111],{"type":31,"value":26843},{"type":21,"tag":139,"props":30113,"children":30114},{"class":141,"line":16},[30115,30119],{"type":21,"tag":139,"props":30116,"children":30117},{"style":146},[30118],{"type":31,"value":5582},{"type":21,"tag":139,"props":30120,"children":30121},{"style":152},[30122],{"type":31,"value":17737},{"type":21,"tag":139,"props":30124,"children":30125},{"class":141,"line":361},[30126],{"type":21,"tag":139,"props":30127,"children":30128},{"emptyLinePlaceholder":194},[30129],{"type":31,"value":197},{"type":21,"tag":139,"props":30131,"children":30132},{"class":141,"line":369},[30133,30138,30142,30146,30150],{"type":21,"tag":139,"props":30134,"children":30135},{"style":152},[30136],{"type":31,"value":30137},"N ",{"type":21,"tag":139,"props":30139,"children":30140},{"style":146},[30141],{"type":31,"value":211},{"type":21,"tag":139,"props":30143,"children":30144},{"style":214},[30145],{"type":31,"value":21021},{"type":21,"tag":139,"props":30147,"children":30148},{"style":146},[30149],{"type":31,"value":20596},{"type":21,"tag":139,"props":30151,"children":30152},{"style":152},[30153],{"type":31,"value":30154}," n\n",{"type":21,"tag":139,"props":30156,"children":30157},{"class":141,"line":378},[30158,30163,30167,30172,30176,30180,30185],{"type":21,"tag":139,"props":30159,"children":30160},{"style":152},[30161],{"type":31,"value":30162},"optimal ",{"type":21,"tag":139,"props":30164,"children":30165},{"style":146},[30166],{"type":31,"value":211},{"type":21,"tag":139,"props":30168,"children":30169},{"style":152},[30170],{"type":31,"value":30171}," math.floor(math.pi ",{"type":21,"tag":139,"props":30173,"children":30174},{"style":146},[30175],{"type":31,"value":5062},{"type":21,"tag":139,"props":30177,"children":30178},{"style":214},[30179],{"type":31,"value":19296},{"type":21,"tag":139,"props":30181,"children":30182},{"style":146},[30183],{"type":31,"value":30184}," *",{"type":21,"tag":139,"props":30186,"children":30187},{"style":152},[30188],{"type":31,"value":30189}," math.sqrt(N))\n",{"type":21,"tag":139,"props":30191,"children":30192},{"class":141,"line":387},[30193,30197,30201,30205,30210,30214,30219,30223,30228,30232,30237,30241,30245],{"type":21,"tag":139,"props":30194,"children":30195},{"style":214},[30196],{"type":31,"value":948},{"type":21,"tag":139,"props":30198,"children":30199},{"style":152},[30200],{"type":31,"value":953},{"type":21,"tag":139,"props":30202,"children":30203},{"style":146},[30204],{"type":31,"value":7524},{"type":21,"tag":139,"props":30206,"children":30207},{"style":262},[30208],{"type":31,"value":30209},"\"N = ",{"type":21,"tag":139,"props":30211,"children":30212},{"style":214},[30213],{"type":31,"value":7534},{"type":21,"tag":139,"props":30215,"children":30216},{"style":152},[30217],{"type":31,"value":30218},"N",{"type":21,"tag":139,"props":30220,"children":30221},{"style":214},[30222],{"type":31,"value":7543},{"type":21,"tag":139,"props":30224,"children":30225},{"style":262},[30226],{"type":31,"value":30227},", optimal iterations = ",{"type":21,"tag":139,"props":30229,"children":30230},{"style":214},[30231],{"type":31,"value":7534},{"type":21,"tag":139,"props":30233,"children":30234},{"style":152},[30235],{"type":31,"value":30236},"optimal",{"type":21,"tag":139,"props":30238,"children":30239},{"style":214},[30240],{"type":31,"value":7543},{"type":21,"tag":139,"props":30242,"children":30243},{"style":262},[30244],{"type":31,"value":15370},{"type":21,"tag":139,"props":30246,"children":30247},{"style":152},[30248],{"type":31,"value":270},{"type":21,"tag":139,"props":30250,"children":30251},{"class":141,"line":396},[30252],{"type":21,"tag":139,"props":30253,"children":30254},{"emptyLinePlaceholder":194},[30255],{"type":31,"value":197},{"type":21,"tag":139,"props":30257,"children":30258},{"class":141,"line":414},[30259,30263,30267],{"type":21,"tag":139,"props":30260,"children":30261},{"style":152},[30262],{"type":31,"value":877},{"type":21,"tag":139,"props":30264,"children":30265},{"style":146},[30266],{"type":31,"value":211},{"type":21,"tag":139,"props":30268,"children":30269},{"style":152},[30270],{"type":31,"value":886},{"type":21,"tag":139,"props":30272,"children":30273},{"class":141,"line":12589},[30274,30278,30282],{"type":21,"tag":139,"props":30275,"children":30276},{"style":152},[30277],{"type":31,"value":349},{"type":21,"tag":139,"props":30279,"children":30280},{"style":146},[30281],{"type":31,"value":211},{"type":21,"tag":139,"props":30283,"children":30284},{"style":152},[30285],{"type":31,"value":30286}," grover(n, marked, optimal)\n",{"type":21,"tag":139,"props":30288,"children":30289},{"class":141,"line":12606},[30290,30294,30298,30303,30307,30311,30315],{"type":21,"tag":139,"props":30291,"children":30292},{"style":152},[30293],{"type":31,"value":911},{"type":21,"tag":139,"props":30295,"children":30296},{"style":146},[30297],{"type":31,"value":211},{"type":21,"tag":139,"props":30299,"children":30300},{"style":152},[30301],{"type":31,"value":30302}," sim.run(transpile(qc, sim), ",{"type":21,"tag":139,"props":30304,"children":30305},{"style":923},[30306],{"type":31,"value":926},{"type":21,"tag":139,"props":30308,"children":30309},{"style":146},[30310],{"type":31,"value":211},{"type":21,"tag":139,"props":30312,"children":30313},{"style":214},[30314],{"type":31,"value":935},{"type":21,"tag":139,"props":30316,"children":30317},{"style":152},[30318],{"type":31,"value":940},{"type":21,"tag":139,"props":30320,"children":30321},{"class":141,"line":12622},[30322,30326,30330,30334],{"type":21,"tag":139,"props":30323,"children":30324},{"style":214},[30325],{"type":31,"value":948},{"type":21,"tag":139,"props":30327,"children":30328},{"style":152},[30329],{"type":31,"value":953},{"type":21,"tag":139,"props":30331,"children":30332},{"style":214},[30333],{"type":31,"value":958},{"type":21,"tag":139,"props":30335,"children":30336},{"style":152},[30337],{"type":31,"value":963},{"type":21,"tag":22,"props":30339,"children":30340},{},[30341],{"type":31,"value":30342},"Real output from this exact code (Qiskit 2.5, Aer 0.17):",{"type":21,"tag":129,"props":30344,"children":30346},{"code":30345},"N = 8, optimal iterations = 2\n[('000', 35), ('001', 34), ('010', 33), ('011', 27),\n ('100', 33), ('101', 3866), ('110', 35), ('111', 33)]\n",[30347],{"type":21,"tag":104,"props":30348,"children":30349},{"__ignoreMap":7},[30350],{"type":31,"value":30345},{"type":21,"tag":22,"props":30352,"children":30353},{},[30354,30356,30361],{"type":31,"value":30355},"94.4% on ",{"type":21,"tag":104,"props":30357,"children":30359},{"className":30358},[],[30360],{"type":31,"value":29647},{"type":31,"value":30362},", versus 12.5% by chance. Two oracle calls where classical search would need 4.5 on average.",{"type":21,"tag":41,"props":30364,"children":30366},{"id":30365},"the-mistake-more-iterations-make-it-worse",[30367],{"type":31,"value":30368},"The Mistake: More Iterations Make It Worse",{"type":21,"tag":22,"props":30370,"children":30371},{},[30372,30374,30379],{"type":31,"value":30373},"The intuition \"more amplification is better\" is wrong, and it's the single biggest trap in Grover's algorithm. Each iteration rotates the state by a ",{"type":21,"tag":16802,"props":30375,"children":30376},{},[30377],{"type":31,"value":30378},"fixed",{"type":31,"value":30380}," angle θ where sin(θ\u002F2) = √(M\u002FN). After the optimal number of rounds you're aligned with the target. Keep going and you rotate straight past it, back down toward the unmarked states, and eventually back to where you started. Success probability oscillates as sin²((2k+1)·θ\u002F2).",{"type":21,"tag":22,"props":30382,"children":30383},{},[30384],{"type":31,"value":30385},"Loop the iteration count and watch. Measured counts over 4096 shots each:",{"type":21,"tag":129,"props":30387,"children":30389},{"code":30388},"iters=0  P(101)=0.127   \u003C- uniform, no better than guessing\niters=1  P(101)=0.779\niters=2  P(101)=0.944   \u003C- optimal\niters=3  P(101)=0.320   \u003C- overshooting\niters=4  P(101)=0.013   \u003C- worse than random guessing!\niters=5  P(101)=0.556\niters=6  P(101)=1.000   \u003C- period brings it back around\niters=7  P(101)=0.586\n",[30390],{"type":21,"tag":104,"props":30391,"children":30392},{"__ignoreMap":7},[30393],{"type":31,"value":30388},{"type":21,"tag":22,"props":30395,"children":30396},{},[30397,30399,30404],{"type":31,"value":30398},"Four iterations gives you a 1.3% success rate. You did ",{"type":21,"tag":12756,"props":30400,"children":30401},{},[30402],{"type":31,"value":30403},"twice",{"type":31,"value":30405}," the optimal work and ended up nine times worse than doing nothing at all. This is not noise or a bug. It is exactly what the math says should happen, and it's the reason you must compute k in advance rather than \"running it a while\".",{"type":21,"tag":22,"props":30407,"children":30408},{},[30409,30411,30416],{"type":31,"value":30410},"The awkward corollary: computing k requires knowing M, the number of solutions. If you don't know how many marked states exist, you need ",{"type":21,"tag":16802,"props":30412,"children":30413},{},[30414],{"type":31,"value":30415},"quantum counting",{"type":31,"value":30417}," (an amplitude-estimation routine) first, or you employ randomized iteration counts, which costs you a constant factor. Textbook presentations tend to skip this.",{"type":21,"tag":41,"props":30419,"children":30421},{"id":30420},"what-the-speedup-buys-you",[30422],{"type":31,"value":30423},"What the Speedup Buys You",{"type":21,"tag":22,"props":30425,"children":30426},{},[30427],{"type":31,"value":30428},"Be precise about this, because a lot of writing on Grover is not.",{"type":21,"tag":22,"props":30430,"children":30431},{},[30432,30437,30439,30444],{"type":21,"tag":16802,"props":30433,"children":30434},{},[30435],{"type":31,"value":30436},"It is quadratic, not exponential.",{"type":31,"value":30438}," √N versus N. ",{"type":21,"tag":26,"props":30440,"children":30441},{"href":19989},[30442],{"type":31,"value":30443},"Shor's factoring algorithm",{"type":31,"value":30445}," is exponential. That's a categorically varied thing. A quadratic speedup is real and provably optimal (no quantum algorithm beats √N for unstructured search), but it is fragile: error correction's constant-factor overhead often eats it entirely, and that overhead is substantial.",{"type":21,"tag":22,"props":30447,"children":30448},{},[30449,30454],{"type":21,"tag":16802,"props":30450,"children":30451},{},[30452],{"type":31,"value":30453},"It does not make NP-hard problems easy.",{"type":31,"value":30455}," Apply Grover to brute-force SAT and go from 2ⁿ to 2^(n\u002F2). That's a genuine improvement, and it is also still exponential. NP-hard problems remain NP-hard. Real SAT solvers use clause learning and structure that Grover, by definition, cannot exploit. That is why classical solvers routinely handle instances with millions of variables.",{"type":21,"tag":22,"props":30457,"children":30458},{},[30459,30464,30466,30471,30473,30478],{"type":21,"tag":16802,"props":30460,"children":30461},{},[30462],{"type":31,"value":30463},"The \"database search\" framing is misleading.",{"type":31,"value":30465}," Grover needs an ",{"type":21,"tag":12756,"props":30467,"children":30468},{},[30469],{"type":31,"value":30470},"oracle",{"type":31,"value":30472}," (a circuit that recognizes the answer), not a stored database. If you had N records in memory, you would first need to load them into quantum superposition, which costs O(N) and destroys the speedup outright. Grover is useful when the marked item is ",{"type":21,"tag":12756,"props":30474,"children":30475},{},[30476],{"type":31,"value":30477},"defined by a computable property",{"type":31,"value":30479}," (this key decrypts the ciphertext, this input hashes to that digest) rather than looked up in a table.",{"type":21,"tag":22,"props":30481,"children":30482},{},[30483,30485,30491],{"type":31,"value":30484},"The real applications: cryptanalysis (Grover halves the effective key length of symmetric ciphers, which is exactly why AES-256 is recommended over AES-128 for post-quantum security), and as a subroutine inside larger algorithms via amplitude amplification. Grover's original 1996 paper is worth reading directly. See our ",{"type":21,"tag":26,"props":30486,"children":30488},{"href":30487},"\u002Fresearch\u002Fgrover-search-1996",[30489],{"type":31,"value":30490},"breakdown of the paper",{"type":31,"value":6665},{"type":21,"tag":41,"props":30493,"children":30495},{"id":30494},"running-on-real-hardware",[30496],{"type":31,"value":30497},"Running on Real Hardware",{"type":21,"tag":22,"props":30499,"children":30500},{},[30501,30503,30508],{"type":31,"value":30502},"Moving to a QPU, the picture changes fast. Multi-controlled X gates are not native to any hardware. ",{"type":21,"tag":26,"props":30504,"children":30505},{"href":10334},[30506],{"type":31,"value":30507},"Transpilation",{"type":31,"value":30509}," decomposes each one into a cascade of CNOTs and single-qubit rotations, and the cost grows steeply with the number of controls. A 4-qubit MCX becomes 20+ two-qubit gates. Multiply that by two per Grover iteration, times k iterations, and depth explodes.",{"type":21,"tag":129,"props":30511,"children":30513},{"code":30512,"language":133,"meta":7,"className":131,"style":7},"# Check what your circuit costs before submitting\nqc = grover(3, \"101\", 2)\nprint(qc.decompose().count_ops())\n",[30514],{"type":21,"tag":104,"props":30515,"children":30516},{"__ignoreMap":7},[30517,30525,30566],{"type":21,"tag":139,"props":30518,"children":30519},{"class":141,"line":142},[30520],{"type":21,"tag":139,"props":30521,"children":30522},{"style":220},[30523],{"type":31,"value":30524},"# Check what your circuit costs before submitting\n",{"type":21,"tag":139,"props":30526,"children":30527},{"class":141,"line":168},[30528,30532,30536,30541,30545,30549,30554,30558,30562],{"type":21,"tag":139,"props":30529,"children":30530},{"style":152},[30531],{"type":31,"value":349},{"type":21,"tag":139,"props":30533,"children":30534},{"style":146},[30535],{"type":31,"value":211},{"type":21,"tag":139,"props":30537,"children":30538},{"style":152},[30539],{"type":31,"value":30540}," grover(",{"type":21,"tag":139,"props":30542,"children":30543},{"style":214},[30544],{"type":31,"value":254},{"type":21,"tag":139,"props":30546,"children":30547},{"style":152},[30548],{"type":31,"value":259},{"type":21,"tag":139,"props":30550,"children":30551},{"style":262},[30552],{"type":31,"value":30553},"\"101\"",{"type":21,"tag":139,"props":30555,"children":30556},{"style":152},[30557],{"type":31,"value":259},{"type":21,"tag":139,"props":30559,"children":30560},{"style":214},[30561],{"type":31,"value":293},{"type":21,"tag":139,"props":30563,"children":30564},{"style":152},[30565],{"type":31,"value":270},{"type":21,"tag":139,"props":30567,"children":30568},{"class":141,"line":190},[30569,30573],{"type":21,"tag":139,"props":30570,"children":30571},{"style":214},[30572],{"type":31,"value":948},{"type":21,"tag":139,"props":30574,"children":30575},{"style":152},[30576],{"type":31,"value":30577},"(qc.decompose().count_ops())\n",{"type":21,"tag":22,"props":30579,"children":30580},{},[30581,30583,30589,30591,30595],{"type":31,"value":30582},"On ",{"type":21,"tag":26,"props":30584,"children":30586},{"href":30585},"\u002Fresearch\u002Fpreskill-nisq-2018",[30587],{"type":31,"value":30588},"NISQ devices",{"type":31,"value":30590},", two-qubit gate error sits around 0.5–1%. A few hundred entangling gates and your output is indistinguishable from uniform random. Published hardware demonstrations of Grover are almost all 2–3 qubits, and they are demonstrations, not useful computations. Add ",{"type":21,"tag":26,"props":30592,"children":30593},{"href":3102},[30594],{"type":31,"value":27584},{"type":31,"value":30596}," on top and you need enough samples to distinguish a modest peak from the floor.",{"type":21,"tag":22,"props":30598,"children":30599},{},[30600,30602,30607,30609,30614],{"type":31,"value":30601},"The practical advice: develop and debug on ",{"type":21,"tag":26,"props":30603,"children":30604},{"href":3292},[30605],{"type":31,"value":30606},"simulators",{"type":31,"value":30608},", where you verify correctness exactly. Only move to ",{"type":21,"tag":26,"props":30610,"children":30611},{"href":1100},[30612],{"type":31,"value":30613},"real hardware",{"type":31,"value":30615}," when you understand what your circuit costs in native gates, and expect degraded results.",{"type":21,"tag":41,"props":30617,"children":30619},{"id":30618},"next-steps",[30620],{"type":31,"value":30621},"Next Steps",{"type":21,"tag":1112,"props":30623,"children":30624},{},[30625,30638,30650,30670],{"type":21,"tag":72,"props":30626,"children":30627},{},[30628,30636],{"type":21,"tag":16802,"props":30629,"children":30630},{},[30631],{"type":21,"tag":26,"props":30632,"children":30633},{"href":1120},[30634],{"type":31,"value":30635},"Qiskit SDK guide",{"type":31,"value":30637},": full setup, backends, and transpiler options",{"type":21,"tag":72,"props":30639,"children":30640},{},[30641,30648],{"type":21,"tag":16802,"props":30642,"children":30643},{},[30644],{"type":21,"tag":26,"props":30645,"children":30646},{"href":1244},[30647],{"type":31,"value":10440},{"type":31,"value":30649},": the other sizable near-term algorithm, applied to Max-Cut",{"type":21,"tag":72,"props":30651,"children":30652},{},[30653,30661,30663,30668],{"type":21,"tag":16802,"props":30654,"children":30655},{},[30656],{"type":21,"tag":26,"props":30657,"children":30658},{"href":19066},[30659],{"type":31,"value":30660},"Compare the SDKs",{"type":31,"value":30662},": the same Grover circuit in ",{"type":21,"tag":26,"props":30664,"children":30666},{"href":30665},"\u002Fsdks\u002Fcirq",[30667],{"type":31,"value":4473},{"type":31,"value":30669}," or PennyLane",{"type":21,"tag":72,"props":30671,"children":30672},{},[30673,30681,30682,30687,30688,30692],{"type":21,"tag":16802,"props":30674,"children":30675},{},[30676],{"type":21,"tag":26,"props":30677,"children":30678},{"href":1142},[30679],{"type":31,"value":30680},"Glossary",{"type":31,"value":1147},{"type":21,"tag":26,"props":30683,"children":30684},{"href":3070},[30685],{"type":31,"value":30686},"superposition",{"type":31,"value":259},{"type":21,"tag":26,"props":30689,"children":30690},{"href":2045},[30691],{"type":31,"value":16377},{"type":31,"value":30693},", and the rest of the vocabulary",{"type":21,"tag":1168,"props":30695,"children":30696},{},[30697],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":30699},[30700,30701,30702,30703,30704,30705,30706,30707,30708,30709],{"id":29021,"depth":168,"text":29024},{"id":29049,"depth":168,"text":29052},{"id":29095,"depth":168,"text":29098},{"id":29275,"depth":168,"text":29278},{"id":29652,"depth":168,"text":29655},{"id":29896,"depth":168,"text":29899},{"id":30365,"depth":168,"text":30368},{"id":30420,"depth":168,"text":30423},{"id":30494,"depth":168,"text":30497},{"id":30618,"depth":168,"text":30621},"content:blog:grover-algorithm-tutorial.md","blog\u002Fgrover-algorithm-tutorial.md","blog\u002Fgrover-algorithm-tutorial",{"_path":4082,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":30714,"description":30715,"date":25047,"author":11,"tags":30716,"readingTime":309,"body":30718,"_type":1187,"_id":31159,"_source":1189,"_file":31160,"_stem":31161,"_extension":1192},"Logical Qubits and Fault Tolerance: What the Qubit Count Doesn't Tell You","A physical qubit is hardware. A logical qubit is an error-protected qubit built out of many of them. Understanding the difference is the fastest way to see through quantum computing headlines.",[14720,1207,30717],"QPU",{"type":18,"children":30719,"toc":31149},[30720,30725,30737,30743,30767,30781,30807,30813,30825,30830,30841,30859,30865,30870,30881,30894,30899,30904,30910,30922,30927,30946,30951,30957,30962,30972,30981,31003,31009,31014,31024,31034,31044,31054,31059,31065,31070,31075,31101,31119,31125,31137],{"type":21,"tag":22,"props":30721,"children":30722},{},[30723],{"type":31,"value":30724},"Every few months a press release announces a new record qubit count. Almost none of them tell you the number that decides whether the machine does anything: the error rate.",{"type":21,"tag":22,"props":30726,"children":30727},{},[30728,30730,30735],{"type":31,"value":30729},"This is not a pedantic complaint. The relationship between qubit count and computational power in quantum computing is not merely noisy. It sometimes inverts. Under the right conditions, a machine with more qubits is ",{"type":21,"tag":12756,"props":30731,"children":30732},{},[30733],{"type":31,"value":30734},"worse",{"type":31,"value":30736}," than one with fewer. Understanding why requires one distinction, and once you have it, most quantum computing news becomes far easier to read.",{"type":21,"tag":41,"props":30738,"children":30740},{"id":30739},"two-things-called-qubit",[30741],{"type":31,"value":30742},"Two things called \"qubit\"",{"type":21,"tag":22,"props":30744,"children":30745},{},[30746,30747,30752,30754,30759,30760,30765],{"type":31,"value":8367},{"type":21,"tag":16802,"props":30748,"children":30749},{},[30750],{"type":31,"value":30751},"physical qubit",{"type":31,"value":30753}," is a piece of hardware: a superconducting circuit on a chip, a trapped ion held in an electromagnetic field, a neutral atom in an optical tweezer. It is a real object subject to real physics, which means it drifts, absorbs stray energy, and loses its quantum state on a timescale measured in microseconds to seconds. That decay is ",{"type":21,"tag":26,"props":30755,"children":30756},{"href":4143},[30757],{"type":31,"value":30758},"decoherence",{"type":31,"value":21485},{"type":21,"tag":26,"props":30761,"children":30762},{"href":15497},[30763],{"type":31,"value":30764},"T1 and T2 times",{"type":31,"value":30766}," that quantify it are among the few hardware specs worth reading closely.",{"type":21,"tag":22,"props":30768,"children":30769},{},[30770,30771,30779],{"type":31,"value":8367},{"type":21,"tag":16802,"props":30772,"children":30773},{},[30774],{"type":21,"tag":26,"props":30775,"children":30776},{"href":15857},[30777],{"type":31,"value":30778},"logical qubit",{"type":31,"value":30780}," is not hardware. It is a qubit's worth of quantum information spread across many physical qubits, arranged so that errors on individual members are detected and undone without ever measuring, and thereby destroying, the encoded state. IonQ describes logical qubits as software-defined, and that framing is a good one: the logical qubit is a construction that hardware supports rather than a thing you point to.",{"type":21,"tag":22,"props":30782,"children":30783},{},[30784,30786,30790,30792,30797,30799,30805],{"type":31,"value":30785},"The technique is ",{"type":21,"tag":26,"props":30787,"children":30788},{"href":15828},[30789],{"type":31,"value":14732},{"type":31,"value":30791},", and our ",{"type":21,"tag":26,"props":30793,"children":30794},{"href":15609},[30795],{"type":31,"value":30796},"companion post on QEC",{"type":31,"value":30798}," covers the mechanics: parity checks, ",{"type":21,"tag":26,"props":30800,"children":30802},{"href":30801},"\u002Fglossary\u002Fancilla-qubit",[30803],{"type":31,"value":30804},"ancilla qubits",{"type":31,"value":30806},", the surface code lattice. This post is about the accounting: what encoding costs, when it pays off, and what else fault tolerance demands beyond the encoding itself.",{"type":21,"tag":41,"props":30808,"children":30810},{"id":30809},"why-how-many-qubits-is-nearly-meaningless",[30811],{"type":31,"value":30812},"Why \"how many qubits?\" is nearly meaningless",{"type":21,"tag":22,"props":30814,"children":30815},{},[30816,30818,30823],{"type":31,"value":30817},"Here is the uncomfortable arithmetic. If your physical error rate is above the threshold of your error-correcting code, encoding does not help. The extra qubits and the extra gates needed to perform parity checks each introduce errors of their own. Add more of them and you add more noise than you remove. A headline of 1,000 physical qubits with mediocre fidelity is compatible with ",{"type":21,"tag":16802,"props":30819,"children":30820},{},[30821],{"type":31,"value":30822},"zero",{"type":31,"value":30824}," logical qubits, not few, zero.",{"type":21,"tag":22,"props":30826,"children":30827},{},[30828],{"type":31,"value":30829},"Meanwhile a smaller, cleaner machine is sometimes strictly more useful. IonQ argues this point aggressively, claiming that a system of 100 physical qubits at 99.99% two-qubit gate fidelity would likely outperform a 10,000-qubit system of lower-quality qubits encoding 100 logical ones: on overhead, gate speed, universality, and energy. That's a vendor making a case for its own architecture and should be read as such, but the underlying logic is sound and widely accepted: quality compounds in a way that quantity does not.",{"type":21,"tag":22,"props":30831,"children":30832},{},[30833,30835,30839],{"type":31,"value":30834},"The compounding is the key mechanism. In a code that corrects one error, roughly speaking, halving the physical error rate quarters the logical error rate. In a code correcting two errors the same improvement gives about an eight-fold gain. IonQ makes this multiplicative argument explicitly, and it explains why hardware teams chase ",{"type":21,"tag":26,"props":30836,"children":30837},{"href":18181},[30838],{"type":31,"value":13086},{"type":31,"value":30840}," improvements that look small in isolation. A 2x hardware win is a 4x or 8x win after encoding.",{"type":21,"tag":22,"props":30842,"children":30843},{},[30844,30846,30850,30852,30857],{"type":31,"value":30845},"This is also why single-number benchmarks keep failing the field. ",{"type":21,"tag":26,"props":30847,"children":30848},{"href":25122},[30849],{"type":31,"value":13893},{"type":31,"value":30851},", algorithmic qubits, gate counts: each captures a slice and hides the rest. We wrote about that measurement problem ",{"type":21,"tag":26,"props":30853,"children":30854},{"href":19115},[30855],{"type":31,"value":30856},"in the context of EO 14413",{"type":31,"value":30858},", and it applies with full force here.",{"type":21,"tag":41,"props":30860,"children":30862},{"id":30861},"the-overhead-is-the-whole-story",[30863],{"type":31,"value":30864},"The overhead is the whole story",{"type":21,"tag":22,"props":30866,"children":30867},{},[30868],{"type":31,"value":30869},"How many physical qubits does one logical qubit cost? The honest answer is that it depends on two numbers you have to state together: your physical error rate and the logical error rate you're targeting.",{"type":21,"tag":22,"props":30871,"children":30872},{},[30873,30879],{"type":21,"tag":26,"props":30874,"children":30876},{"href":30875},"\u002Fresearch\u002Fshor-error-correction-1995",[30877],{"type":31,"value":30878},"Shor's 1995 code",{"type":31,"value":30880},", the first quantum error-correcting code ever written down, used nine physical qubits to protect one logical qubit against an arbitrary single-qubit error. That was a proof that the thing was possible at all. Before it, many physicists believed no-cloning made quantum computing hopeless in principle.",{"type":21,"tag":22,"props":30882,"children":30883},{},[30884,30886,30892],{"type":31,"value":30885},"Nine turned out to be optimistic for practical machines. ",{"type":21,"tag":26,"props":30887,"children":30889},{"href":30888},"\u002Fresearch\u002Fkitaev-anyons-1997",[30890],{"type":31,"value":30891},"Kitaev's 1997 work on anyons",{"type":31,"value":30893}," introduced topological codes, including the surface code, which stores information in global properties of a 2D lattice rather than in any individual site. Its great virtue is that every parity check involves only neighbouring qubits, which maps cleanly onto flat chips, and it tolerates physical error rates around 1%, high enough that real hardware plausibly reaches it.",{"type":21,"tag":22,"props":30895,"children":30896},{},[30897],{"type":31,"value":30898},"The price is scale. Surface code overhead grows with code distance, and realistic estimates for running a cryptographically relevant algorithm land at hundreds to a few thousand physical qubits per logical qubit, with total system requirements often quoted in the millions. Push your physical error rate down and that ratio falls fast. Let it drift up toward threshold and the ratio explodes. Overhead is not a fixed constant of the technology. It is a function of how good your hardware is.",{"type":21,"tag":22,"props":30900,"children":30901},{},[30902],{"type":31,"value":30903},"Newer code families are attacking the ratio directly. IonQ has promoted a bivariate bicycle variant it calls BB5, claiming an idle logical error rate around 5x10⁻⁵ using 50 physical qubits, roughly four times smaller than standard BB codes. Vendor-reported figures like that are worth tracking but not worth treating as settled until independently reproduced.",{"type":21,"tag":41,"props":30905,"children":30907},{"id":30906},"the-threshold-theorem-and-why-2024-mattered",[30908],{"type":31,"value":30909},"The threshold theorem, and why 2024 mattered",{"type":21,"tag":22,"props":30911,"children":30912},{},[30913,30915,30920],{"type":31,"value":30914},"The theoretical foundation under all of this is the ",{"type":21,"tag":16802,"props":30916,"children":30917},{},[30918],{"type":31,"value":30919},"threshold theorem",{"type":31,"value":30921},". It says there exists a critical physical error rate. Below it, increasing the size of your code suppresses logical errors exponentially. You build them as small as you like by spending more qubits. Above it, the opposite: bigger codes are worse codes.",{"type":21,"tag":22,"props":30923,"children":30924},{},[30925],{"type":31,"value":30926},"For decades this was a theorem without an experiment. Every roadmap in the industry assumed the crossing was achievable. None had demonstrated it.",{"type":21,"tag":22,"props":30928,"children":30929},{},[30930,30932,30937,30939,30944],{"type":31,"value":30931},"That changed with ",{"type":21,"tag":26,"props":30933,"children":30934},{"href":25689},[30935],{"type":31,"value":30936},"Google's below-threshold result in 2024",{"type":31,"value":30938},". Running surface codes at distances 3, 5, and 7 on its 105-qubit Willow processor, the team observed each increase in code distance roughly ",{"type":21,"tag":16802,"props":30940,"children":30941},{},[30942],{"type":31,"value":30943},"halving",{"type":31,"value":30945}," the logical error rate, the direction fault tolerance requires. Critically, the encoded logical qubit outlived the best individual physical qubit on the chip, which is the concrete test of whether error correction is a net win rather than an expensive way to add noise.",{"type":21,"tag":22,"props":30947,"children":30948},{},[30949],{"type":31,"value":30950},"It's hard to overstate the significance. That experiment converted large-scale quantum computing from an open physics question into a scaling and engineering problem. Engineering problems are hard, but they are a different category of hard.",{"type":21,"tag":41,"props":30952,"children":30954},{"id":30953},"different-hardware-different-arithmetic",[30955],{"type":31,"value":30956},"Different hardware, different arithmetic",{"type":21,"tag":22,"props":30958,"children":30959},{},[30960],{"type":31,"value":30961},"The threshold is not a single universal number. It depends on the code, and which codes are practical depends on your hardware's connectivity. This is where modality differences stop being trivia.",{"type":21,"tag":22,"props":30963,"children":30964},{},[30965,30970],{"type":21,"tag":16802,"props":30966,"children":30967},{},[30968],{"type":31,"value":30969},"Superconducting",{"type":31,"value":30971}," processors offer rapid gates (nanoseconds) and mature fabrication, but qubits interact only with their planar neighbours and fidelities are typically lower. That planar constraint is precisely what the surface code was designed around, which is why superconducting roadmaps are built on it.",{"type":21,"tag":22,"props":30973,"children":30974},{},[30975,30979],{"type":21,"tag":16802,"props":30976,"children":30977},{},[30978],{"type":31,"value":15599},{"type":31,"value":30980}," invert the trade: gates are far slower (microseconds to milliseconds), but fidelities are the highest of any modality and connectivity is effectively all-to-all: any ion in a chain is entangled with any other without a chain of intervening swap operations. IonQ argues this connectivity is a structural advantage for error correction, because codes requiring non-local checks become implementable rather than prohibitively expensive, and it has claimed 99.99% physical two-qubit gate fidelity via its Oxford Ionics acquisition. Again: vendor claim, vendor benchmark conditions.",{"type":21,"tag":22,"props":30982,"children":30983},{},[30984,30986,30990,30991,30995,30997,31001],{"type":31,"value":30985},"Neither is obviously winning. Our ",{"type":21,"tag":26,"props":30987,"children":30988},{"href":1100},[30989],{"type":31,"value":16080},{"type":31,"value":3615},{"type":21,"tag":26,"props":30992,"children":30993},{"href":19066},[30994],{"type":31,"value":21745},{"type":31,"value":30996}," go into the specifics, and the broader ",{"type":21,"tag":26,"props":30998,"children":30999},{"href":21932},[31000],{"type":31,"value":22505},{"type":31,"value":31002}," tracks who is betting on what. The practical takeaway for anyone learning is that connectivity and fidelity, not qubit count, are the specs that determine which error-correction strategies a machine even attempts.",{"type":21,"tag":41,"props":31004,"children":31006},{"id":31005},"encoding-is-necessary-not-sufficient",[31007],{"type":31,"value":31008},"Encoding is necessary, not sufficient",{"type":21,"tag":22,"props":31010,"children":31011},{},[31012],{"type":31,"value":31013},"A subtlety that gets lost in coverage: storing a logical qubit is the easy part of fault tolerance. Computing on one is harder. A genuinely fault-tolerant machine needs all of the following:",{"type":21,"tag":22,"props":31015,"children":31016},{},[31017,31022],{"type":21,"tag":16802,"props":31018,"children":31019},{},[31020],{"type":31,"value":31021},"Fault-tolerant gate operations.",{"type":31,"value":31023}," Logical gates must be implemented so that a single physical fault cannot propagate into an uncorrectable logical error. Some gates are cheap in a given code. Others are not.",{"type":21,"tag":22,"props":31025,"children":31026},{},[31027,31032],{"type":21,"tag":16802,"props":31028,"children":31029},{},[31030],{"type":31,"value":31031},"Continuous syndrome extraction.",{"type":31,"value":31033}," Parity checks run constantly, in rounds, throughout the computation. The measurement circuits are themselves noisy, so the scheme has to tolerate faults in its own error detection.",{"type":21,"tag":22,"props":31035,"children":31036},{},[31037,31042],{"type":21,"tag":16802,"props":31038,"children":31039},{},[31040],{"type":31,"value":31041},"Magic state distillation.",{"type":31,"value":31043}," Surface codes give you Clifford gates relatively cheaply, but Clifford gates alone are classically simulable. Universality needs a non-Clifford gate, typically T, and those are produced by distilling noisy \"magic states\" into clean ones. Distillation factories consume a large fraction of the total qubit budget in realistic architectures.",{"type":21,"tag":22,"props":31045,"children":31046},{},[31047,31052],{"type":21,"tag":16802,"props":31048,"children":31049},{},[31050],{"type":31,"value":31051},"Real-time decoding.",{"type":31,"value":31053}," Syndrome data must be interpreted and corrections applied faster than errors accumulate. This is a classical computing problem, running at microsecond latency alongside the QPU, and it's a serious engineering constraint in its own right.",{"type":21,"tag":22,"props":31055,"children":31056},{},[31057],{"type":31,"value":31058},"IonQ's framing here is useful regardless of the vendor context: a logical qubit should be characterised by several attributes together: overhead, idle logical error rate, logical gate fidelity, logical gate speed, and gate-set universality, rather than counted. A logical qubit that is stored but not usefully operated on is not much of a logical qubit.",{"type":21,"tag":41,"props":31060,"children":31062},{"id":31061},"where-the-field-stands",[31063],{"type":31,"value":31064},"Where the field stands",{"type":21,"tag":22,"props":31066,"children":31067},{},[31068],{"type":31,"value":31069},"Honest summary as of mid-2026: logical qubits are real, demonstrated, and few.",{"type":21,"tag":22,"props":31071,"children":31072},{},[31073],{"type":31,"value":31074},"Multiple groups have encoded them. Google has shown error suppression scaling in the right direction. Trapped-ion and neutral-atom teams have run algorithms on minor numbers of encoded qubits. These are genuine milestones, not marketing.",{"type":21,"tag":22,"props":31076,"children":31077},{},[31078,31080,31085,31087,31092,31094,31099],{"type":31,"value":31079},"But useful fault-tolerant computation needs hundreds to thousands of logical qubits executing millions of logical operations, and that means physical qubit counts several orders of magnitude beyond anything running today, with error rates comfortably below threshold across the whole device rather than on the best-behaved corner of a chip. Most working hardware remains firmly in the ",{"type":21,"tag":26,"props":31081,"children":31082},{"href":22036},[31083],{"type":31,"value":31084},"NISQ regime",{"type":31,"value":31086}," that ",{"type":21,"tag":26,"props":31088,"children":31089},{"href":30585},[31090],{"type":31,"value":31091},"Preskill named in 2018",{"type":31,"value":31093},", where ",{"type":21,"tag":26,"props":31095,"children":31096},{"href":25982},[31097],{"type":31,"value":31098},"error mitigation",{"type":31,"value":31100}," (statistical post-processing rather than true correction) is the practical tool.",{"type":21,"tag":22,"props":31102,"children":31103},{},[31104,31106,31111,31113,31117],{"type":31,"value":31105},"None of which means waiting around. The abstractions transfer: circuits, gates, measurement, and noise behave the equivalent way whether you're on a simulator or a fault-tolerant machine a decade out. You begin on ",{"type":21,"tag":26,"props":31107,"children":31108},{"href":3292},[31109],{"type":31,"value":31110},"free simulators",{"type":31,"value":31112}," or real QPUs today, and the ",{"type":21,"tag":26,"props":31114,"children":31115},{"href":18689},[31116],{"type":31,"value":18692},{"type":31,"value":31118}," collects structured routes in.",{"type":21,"tag":41,"props":31120,"children":31122},{"id":31121},"the-one-habit-worth-forming",[31123],{"type":31,"value":31124},"The one habit worth forming",{"type":21,"tag":22,"props":31126,"children":31127},{},[31128,31130,31135],{"type":31,"value":31129},"When you following see a qubit-count headline, ask three questions: what is the two-qubit gate fidelity, is it below the relevant threshold, and how many ",{"type":21,"tag":12756,"props":31131,"children":31132},{},[31133],{"type":31,"value":31134},"logical",{"type":31,"value":31136}," qubits does that imply?",{"type":21,"tag":22,"props":31138,"children":31139},{},[31140,31142,31147],{"type":31,"value":31141},"Frequently the answer to the third is zero, and the article won't have mentioned it. Learning to notice that gap is most of what separates informed reading from press-release reading. The ",{"type":21,"tag":26,"props":31143,"children":31144},{"href":1142},[31145],{"type":31,"value":31146},"glossary",{"type":31,"value":31148}," is a decent place to build the vocabulary for it.",{"title":7,"searchDepth":168,"depth":168,"links":31150},[31151,31152,31153,31154,31155,31156,31157,31158],{"id":30739,"depth":168,"text":30742},{"id":30809,"depth":168,"text":30812},{"id":30861,"depth":168,"text":30864},{"id":30906,"depth":168,"text":30909},{"id":30953,"depth":168,"text":30956},{"id":31005,"depth":168,"text":31008},{"id":31061,"depth":168,"text":31064},{"id":31121,"depth":168,"text":31124},"content:blog:logical-qubits-fault-tolerance-explained.md","blog\u002Flogical-qubits-fault-tolerance-explained.md","blog\u002Flogical-qubits-fault-tolerance-explained",{"_path":16720,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":31163,"description":31164,"date":25047,"author":11,"tags":31165,"readingTime":309,"body":31166,"_type":1187,"_id":32257,"_source":1189,"_file":32258,"_stem":32259,"_extension":1192},"The Post-Quantum Migration Clock: Real Deadlines and How to Plan Against Them","NIST says RSA and ECC are deprecated after 2030 and disallowed after 2035. NSA's CNSA 2.0 moves faster. Here's what the published timelines require, and how to build a migration plan that survives them.",[3849,3850,3851],{"type":18,"children":31167,"toc":32247},[31168,31186,31198,31204,31209,31319,31324,31343,31349,31354,31383,31393,31403,31415,31420,31426,31445,31450,31476,31487,31493,31498,31541,31547,31552,31970,31982,31988,32000,32012,32062,32067,32073,32078,32187,32193,32205,32210,32243],{"type":21,"tag":22,"props":31169,"children":31170},{},[31171,31173,31177,31179,31184],{"type":31,"value":31172},"Most discussions of ",{"type":21,"tag":26,"props":31174,"children":31175},{"href":16680},[31176],{"type":31,"value":3964},{"type":31,"value":31178}," stall at the same place: ",{"type":21,"tag":12756,"props":31180,"children":31181},{},[31182],{"type":31,"value":31183},"when do we have to do this?",{"type":31,"value":31185}," The honest answer used to be \"nobody knows.\" That's no longer true. Not because anyone predicts when a cryptographically relevant quantum computer arrives, but because regulators stopped waiting for that prediction and published dates anyway.",{"type":21,"tag":22,"props":31187,"children":31188},{},[31189,31191,31196],{"type":31,"value":31190},"If you already understand what PQC is and which algorithms replace which, our ",{"type":21,"tag":26,"props":31192,"children":31193},{"href":3883},[31194],{"type":31,"value":31195},"guide to post-quantum cryptography",{"type":31,"value":31197}," covers that ground. This post is about the calendar and the project plan.",{"type":21,"tag":41,"props":31199,"children":31201},{"id":31200},"the-standards-are-settled",[31202],{"type":31,"value":31203},"The standards are settled",{"type":21,"tag":22,"props":31205,"children":31206},{},[31207],{"type":31,"value":31208},"NIST finalized three post-quantum standards on August 13, 2024, after an eight-year competition:",{"type":21,"tag":3150,"props":31210,"children":31211},{},[31212,31238],{"type":21,"tag":3154,"props":31213,"children":31214},{},[31215],{"type":21,"tag":3158,"props":31216,"children":31217},{},[31218,31223,31228,31233],{"type":21,"tag":3162,"props":31219,"children":31220},{},[31221],{"type":31,"value":31222},"Standard",{"type":21,"tag":3162,"props":31224,"children":31225},{},[31226],{"type":31,"value":31227},"Algorithm",{"type":21,"tag":3162,"props":31229,"children":31230},{},[31231],{"type":31,"value":31232},"Formerly",{"type":21,"tag":3162,"props":31234,"children":31235},{},[31236],{"type":31,"value":31237},"Replaces",{"type":21,"tag":3176,"props":31239,"children":31240},{},[31241,31267,31293],{"type":21,"tag":3158,"props":31242,"children":31243},{},[31244,31252,31257,31262],{"type":21,"tag":3183,"props":31245,"children":31246},{},[31247],{"type":21,"tag":16802,"props":31248,"children":31249},{},[31250],{"type":31,"value":31251},"FIPS 203",{"type":21,"tag":3183,"props":31253,"children":31254},{},[31255],{"type":31,"value":31256},"ML-KEM",{"type":21,"tag":3183,"props":31258,"children":31259},{},[31260],{"type":31,"value":31261},"CRYSTALS-Kyber",{"type":21,"tag":3183,"props":31263,"children":31264},{},[31265],{"type":31,"value":31266},"RSA key transport, ECDH",{"type":21,"tag":3158,"props":31268,"children":31269},{},[31270,31278,31283,31288],{"type":21,"tag":3183,"props":31271,"children":31272},{},[31273],{"type":21,"tag":16802,"props":31274,"children":31275},{},[31276],{"type":31,"value":31277},"FIPS 204",{"type":21,"tag":3183,"props":31279,"children":31280},{},[31281],{"type":31,"value":31282},"ML-DSA",{"type":21,"tag":3183,"props":31284,"children":31285},{},[31286],{"type":31,"value":31287},"CRYSTALS-Dilithium",{"type":21,"tag":3183,"props":31289,"children":31290},{},[31291],{"type":31,"value":31292},"ECDSA, RSA-PSS signatures",{"type":21,"tag":3158,"props":31294,"children":31295},{},[31296,31304,31309,31314],{"type":21,"tag":3183,"props":31297,"children":31298},{},[31299],{"type":21,"tag":16802,"props":31300,"children":31301},{},[31302],{"type":31,"value":31303},"FIPS 205",{"type":21,"tag":3183,"props":31305,"children":31306},{},[31307],{"type":31,"value":31308},"SLH-DSA",{"type":21,"tag":3183,"props":31310,"children":31311},{},[31312],{"type":31,"value":31313},"SPHINCS+",{"type":21,"tag":3183,"props":31315,"children":31316},{},[31317],{"type":31,"value":31318},"Conservative hash-based signing",{"type":21,"tag":22,"props":31320,"children":31321},{},[31322],{"type":31,"value":31323},"Use the FIPS names in procurement documents and internal specs. \"Kyber\" and \"Dilithium\" refer to the competition submissions, which differ in little but real ways from the standardized versions. A provider claiming \"Kyber support\" does or doesn't mean FIPS 203 compliance, and that ambiguity has already caused interop problems.",{"type":21,"tag":22,"props":31325,"children":31326},{},[31327,31329,31334,31336,31341],{"type":31,"value":31328},"Two more are in flight. NIST selected ",{"type":21,"tag":16802,"props":31330,"children":31331},{},[31332],{"type":31,"value":31333},"HQC",{"type":31,"value":31335}," in March 2025 as a code-based backup KEM with different mathematical foundations from ML-KEM, with a draft standard expected around 2026 and finalization targeted for 2027. ",{"type":21,"tag":16802,"props":31337,"children":31338},{},[31339],{"type":31,"value":31340},"FN-DSA",{"type":31,"value":31342}," (FALCON) remains slated for standardization as a compact-signature option. Neither should hold up your migration. ML-KEM and ML-DSA are the workhorses.",{"type":21,"tag":41,"props":31344,"children":31346},{"id":31345},"the-deadlines-that-exist-on-paper",[31347],{"type":31,"value":31348},"The deadlines that exist on paper",{"type":21,"tag":22,"props":31350,"children":31351},{},[31352],{"type":31,"value":31353},"Three separate sets of dates matter, and they don't line up.",{"type":21,"tag":22,"props":31355,"children":31356},{},[31357,31362,31363,31368,31370,31375,31376,31381],{"type":21,"tag":16802,"props":31358,"children":31359},{},[31360],{"type":31,"value":31361},"NIST IR 8547",{"type":31,"value":20768},{"type":21,"tag":12756,"props":31364,"children":31365},{},[31366],{"type":31,"value":31367},"Transition to Post-Quantum Cryptography Standards",{"type":31,"value":31369},", initial public draft November 2024) is the broadest. It proposes that RSA, ECDSA, EdDSA, ECDH, DSA, and finite-field Diffie-Hellman become ",{"type":21,"tag":16802,"props":31371,"children":31372},{},[31373],{"type":31,"value":31374},"deprecated after 2030",{"type":31,"value":3615},{"type":21,"tag":16802,"props":31377,"children":31378},{},[31379],{"type":31,"value":31380},"disallowed after 2035",{"type":31,"value":31382},". Deprecated means continued use requires the data owner to document a risk acceptance. Disallowed means the option to accept that risk goes away.",{"type":21,"tag":22,"props":31384,"children":31385},{},[31386,31391],{"type":21,"tag":16802,"props":31387,"children":31388},{},[31389],{"type":31,"value":31390},"NSA's CNSA 2.0",{"type":31,"value":31392}," applies to National Security Systems and moves faster, with a staged schedule by product category. As published and updated through May 2025, software and firmware signing is the leading edge (exclusive use of CNSA 2.0 algorithms from January 1, 2027), with networking equipment following around 2030, and operating systems, custom applications, and cloud services around 2033. Full quantum resistance across NSS is expected by 2035.",{"type":21,"tag":22,"props":31394,"children":31395},{},[31396,31401],{"type":21,"tag":16802,"props":31397,"children":31398},{},[31399],{"type":31,"value":31400},"OMB M-23-02",{"type":31,"value":31402}," (November 2022) is the one that already bit. It directed federal agencies to inventory cryptography on prioritized systems, produce funding estimates, and report annually, with entire federal migration targeted for 2035.",{"type":21,"tag":22,"props":31404,"children":31405},{},[31406,31408,31413],{"type":31,"value":31407},"Two things follow from this. First, if you sell to the US federal government, especially anything involving signed firmware, your effective deadline is ",{"type":21,"tag":16802,"props":31409,"children":31410},{},[31411],{"type":31,"value":31412},"2027, not 2035",{"type":31,"value":31414},". Second, even for purely commercial work, NIST's deprecation calendar becomes the de facto compliance baseline the moment auditors and insurers start citing it, which historically happens well before the date itself.",{"type":21,"tag":22,"props":31416,"children":31417},{},[31418],{"type":31,"value":31419},"Note that none of these dates are predictions about quantum hardware. They are engineering schedules working backward from the migration itself taking a decade.",{"type":21,"tag":41,"props":31421,"children":31423},{"id":31422},"why-the-threat-model-has-no-start-date",[31424],{"type":31,"value":31425},"Why the threat model has no start date",{"type":21,"tag":22,"props":31427,"children":31428},{},[31429,31431,31436,31438,31443],{"type":31,"value":31430},"The reason a 2030 deadline is defensible even though nobody expects a code-breaking quantum computer by 2030 is ",{"type":21,"tag":16802,"props":31432,"children":31433},{},[31434],{"type":31,"value":31435},"harvest now, decrypt later",{"type":31,"value":31437},". An adversary records encrypted traffic today and decrypts it whenever ",{"type":21,"tag":26,"props":31439,"children":31440},{"href":1231},[31441],{"type":31,"value":31442},"Shor's algorithm",{"type":31,"value":31444}," becomes runnable at scale. Any data whose confidentiality must outlive that moment is already exposed.",{"type":21,"tag":22,"props":31446,"children":31447},{},[31448],{"type":31,"value":31449},"The practical calculation is Mosca's inequality: if the time your data must stay secret plus the time your migration takes exceeds the time until a capable quantum computer exists, you are already late. For medical records with a 50-year sensitivity horizon and a five-year migration, you needed to start before the standards existed.",{"type":21,"tag":22,"props":31451,"children":31452},{},[31453,31455,31460,31462,31466,31468,31474],{"type":31,"value":31454},"What makes this hard to plan against is that the hardware estimate keeps moving. ",{"type":21,"tag":26,"props":31456,"children":31457},{"href":19989},[31458],{"type":31,"value":31459},"Shor's 1994 paper",{"type":31,"value":31461}," established the algorithm. The resource question (how numerous ",{"type":21,"tag":26,"props":31463,"children":31464},{"href":15857},[31465],{"type":31,"value":16501},{"type":31,"value":31467}," and how many gates to break RSA-2048) has been re-estimated downward repeatedly as compilation techniques improved. Recent work ",{"type":21,"tag":26,"props":31469,"children":31471},{"href":31470},"\u002Fresearch\u002Fshor-lean-formalization-2026",[31472],{"type":31,"value":31473},"machine-checking those estimates in Lean",{"type":31,"value":31475}," is valuable precisely because it removes hand-waving from a figure that security planning depends on. The estimates remain far beyond current devices, but \"far\" has been shrinking, and the direction of travel is one-way.",{"type":21,"tag":22,"props":31477,"children":31478},{},[31479,31481,31485],{"type":31,"value":31480},"For the record: symmetric cryptography is fine. ",{"type":21,"tag":26,"props":31482,"children":31483},{"href":1223},[31484],{"type":31,"value":29011},{"type":31,"value":31486}," gives only a quadratic speedup, so AES-256 retains 128-bit effective security. The migration is an asymmetric-crypto migration.",{"type":21,"tag":41,"props":31488,"children":31490},{"id":31489},"why-this-takes-years",[31491],{"type":31,"value":31492},"Why this takes years",{"type":21,"tag":22,"props":31494,"children":31495},{},[31496],{"type":31,"value":31497},"Migration is slow for reasons that have nothing to do with the algorithms:",{"type":21,"tag":1112,"props":31499,"children":31500},{},[31501,31511,31521,31531],{"type":21,"tag":72,"props":31502,"children":31503},{},[31504,31509],{"type":21,"tag":16802,"props":31505,"children":31506},{},[31507],{"type":31,"value":31508},"You don't know where your crypto is.",{"type":31,"value":31510}," It's in TLS terminators, JWT libraries, database TDE, backup encryption, VPN tunnels, code-signing pipelines, HSMs, IoT firmware, and vendor SDKs you don't control.",{"type":21,"tag":72,"props":31512,"children":31513},{},[31514,31519],{"type":21,"tag":16802,"props":31515,"children":31516},{},[31517],{"type":31,"value":31518},"Key and signature sizes change.",{"type":31,"value":31520}," ML-DSA public keys are roughly 1.3 KB versus 32 bytes for Ed25519, and SLH-DSA signatures sometimes run tens of kilobytes. Protocols with fixed-size fields, embedded devices with constrained flash, and certificate chains with MTU assumptions all break.",{"type":21,"tag":72,"props":31522,"children":31523},{},[31524,31529],{"type":21,"tag":16802,"props":31525,"children":31526},{},[31527],{"type":31,"value":31528},"Both endpoints must upgrade.",{"type":31,"value":31530}," You migrate at the speed of your slowest counterparty.",{"type":21,"tag":72,"props":31532,"children":31533},{},[31534,31539],{"type":21,"tag":16802,"props":31535,"children":31536},{},[31537],{"type":31,"value":31538},"Hardware has a decade-long tail.",{"type":31,"value":31540}," HSMs and embedded devices deployed today will still be running in 2035.",{"type":21,"tag":41,"props":31542,"children":31544},{"id":31543},"inventory-first-a-starting-point",[31545],{"type":31,"value":31546},"Inventory first: a starting point",{"type":21,"tag":22,"props":31548,"children":31549},{},[31550],{"type":31,"value":31551},"You cannot migrate an unknown. Outset with automated discovery of what's negotiated in production, not what your architecture diagram claims.",{"type":21,"tag":129,"props":31553,"children":31555},{"className":4499,"code":31554,"language":4498,"meta":7,"style":7},"# What key exchange and signature algorithms is this endpoint using?\nopenssl s_client -connect example.com:443 -brief \u003C\u002Fdev\u002Fnull 2>&1 \\\n  | grep -Ei 'protocol|ciphersuite|group|peer signature'\n\n# Does the endpoint support hybrid post-quantum key exchange?\n# Requires OpenSSL 3.5+, which ships ML-KEM natively.\nopenssl s_client -connect example.com:443 \\\n  -groups X25519MLKEM768 \u003C\u002Fdev\u002Fnull 2>&1 | grep -i 'group\\|error'\n\n# Inventory certificate signature algorithms across an internal fleet\nwhile read -r host; do\n  alg=$(echo | openssl s_client -connect \"$host:443\" 2>\u002Fdev\u002Fnull \\\n    | openssl x509 -noout -text 2>\u002Fdev\u002Fnull \\\n    | awk '\u002FSignature Algorithm\u002F {print $3; exit}')\n  printf '%s\\t%s\\n' \"$host\" \"${alg:-UNREACHABLE}\"\ndone \u003C hosts.txt\n",[31556],{"type":21,"tag":104,"props":31557,"children":31558},{"__ignoreMap":7},[31559,31567,31615,31638,31645,31653,31661,31684,31728,31735,31743,31776,31843,31882,31903,31953],{"type":21,"tag":139,"props":31560,"children":31561},{"class":141,"line":142},[31562],{"type":21,"tag":139,"props":31563,"children":31564},{"style":220},[31565],{"type":31,"value":31566},"# What key exchange and signature algorithms is this endpoint using?\n",{"type":21,"tag":139,"props":31568,"children":31569},{"class":141,"line":168},[31570,31575,31580,31585,31590,31595,31600,31605,31610],{"type":21,"tag":139,"props":31571,"children":31572},{"style":4509},[31573],{"type":31,"value":31574},"openssl",{"type":21,"tag":139,"props":31576,"children":31577},{"style":262},[31578],{"type":31,"value":31579}," s_client",{"type":21,"tag":139,"props":31581,"children":31582},{"style":214},[31583],{"type":31,"value":31584}," -connect",{"type":21,"tag":139,"props":31586,"children":31587},{"style":262},[31588],{"type":31,"value":31589}," example.com:443",{"type":21,"tag":139,"props":31591,"children":31592},{"style":214},[31593],{"type":31,"value":31594}," -brief",{"type":21,"tag":139,"props":31596,"children":31597},{"style":146},[31598],{"type":31,"value":31599}," \u003C",{"type":21,"tag":139,"props":31601,"children":31602},{"style":262},[31603],{"type":31,"value":31604},"\u002Fdev\u002Fnull",{"type":21,"tag":139,"props":31606,"children":31607},{"style":146},[31608],{"type":31,"value":31609}," 2>&1",{"type":21,"tag":139,"props":31611,"children":31612},{"style":214},[31613],{"type":31,"value":31614}," \\\n",{"type":21,"tag":139,"props":31616,"children":31617},{"class":141,"line":190},[31618,31623,31628,31633],{"type":21,"tag":139,"props":31619,"children":31620},{"style":146},[31621],{"type":31,"value":31622},"  |",{"type":21,"tag":139,"props":31624,"children":31625},{"style":4509},[31626],{"type":31,"value":31627}," grep",{"type":21,"tag":139,"props":31629,"children":31630},{"style":214},[31631],{"type":31,"value":31632}," -Ei",{"type":21,"tag":139,"props":31634,"children":31635},{"style":262},[31636],{"type":31,"value":31637}," 'protocol|ciphersuite|group|peer signature'\n",{"type":21,"tag":139,"props":31639,"children":31640},{"class":141,"line":200},[31641],{"type":21,"tag":139,"props":31642,"children":31643},{"emptyLinePlaceholder":194},[31644],{"type":31,"value":197},{"type":21,"tag":139,"props":31646,"children":31647},{"class":141,"line":226},[31648],{"type":21,"tag":139,"props":31649,"children":31650},{"style":220},[31651],{"type":31,"value":31652},"# Does the endpoint support hybrid post-quantum key exchange?\n",{"type":21,"tag":139,"props":31654,"children":31655},{"class":141,"line":234},[31656],{"type":21,"tag":139,"props":31657,"children":31658},{"style":220},[31659],{"type":31,"value":31660},"# Requires OpenSSL 3.5+, which ships ML-KEM natively.\n",{"type":21,"tag":139,"props":31662,"children":31663},{"class":141,"line":273},[31664,31668,31672,31676,31680],{"type":21,"tag":139,"props":31665,"children":31666},{"style":4509},[31667],{"type":31,"value":31574},{"type":21,"tag":139,"props":31669,"children":31670},{"style":262},[31671],{"type":31,"value":31579},{"type":21,"tag":139,"props":31673,"children":31674},{"style":214},[31675],{"type":31,"value":31584},{"type":21,"tag":139,"props":31677,"children":31678},{"style":262},[31679],{"type":31,"value":31589},{"type":21,"tag":139,"props":31681,"children":31682},{"style":214},[31683],{"type":31,"value":31614},{"type":21,"tag":139,"props":31685,"children":31686},{"class":141,"line":309},[31687,31692,31697,31701,31705,31709,31714,31718,31723],{"type":21,"tag":139,"props":31688,"children":31689},{"style":214},[31690],{"type":31,"value":31691},"  -groups",{"type":21,"tag":139,"props":31693,"children":31694},{"style":262},[31695],{"type":31,"value":31696}," X25519MLKEM768",{"type":21,"tag":139,"props":31698,"children":31699},{"style":146},[31700],{"type":31,"value":31599},{"type":21,"tag":139,"props":31702,"children":31703},{"style":262},[31704],{"type":31,"value":31604},{"type":21,"tag":139,"props":31706,"children":31707},{"style":146},[31708],{"type":31,"value":31609},{"type":21,"tag":139,"props":31710,"children":31711},{"style":146},[31712],{"type":31,"value":31713}," |",{"type":21,"tag":139,"props":31715,"children":31716},{"style":4509},[31717],{"type":31,"value":31627},{"type":21,"tag":139,"props":31719,"children":31720},{"style":214},[31721],{"type":31,"value":31722}," -i",{"type":21,"tag":139,"props":31724,"children":31725},{"style":262},[31726],{"type":31,"value":31727}," 'group\\|error'\n",{"type":21,"tag":139,"props":31729,"children":31730},{"class":141,"line":16},[31731],{"type":21,"tag":139,"props":31732,"children":31733},{"emptyLinePlaceholder":194},[31734],{"type":31,"value":197},{"type":21,"tag":139,"props":31736,"children":31737},{"class":141,"line":361},[31738],{"type":21,"tag":139,"props":31739,"children":31740},{"style":220},[31741],{"type":31,"value":31742},"# Inventory certificate signature algorithms across an internal fleet\n",{"type":21,"tag":139,"props":31744,"children":31745},{"class":141,"line":369},[31746,31751,31756,31761,31766,31771],{"type":21,"tag":139,"props":31747,"children":31748},{"style":146},[31749],{"type":31,"value":31750},"while",{"type":21,"tag":139,"props":31752,"children":31753},{"style":214},[31754],{"type":31,"value":31755}," read",{"type":21,"tag":139,"props":31757,"children":31758},{"style":214},[31759],{"type":31,"value":31760}," -r",{"type":21,"tag":139,"props":31762,"children":31763},{"style":262},[31764],{"type":31,"value":31765}," host",{"type":21,"tag":139,"props":31767,"children":31768},{"style":152},[31769],{"type":31,"value":31770},"; ",{"type":21,"tag":139,"props":31772,"children":31773},{"style":146},[31774],{"type":31,"value":31775},"do\n",{"type":21,"tag":139,"props":31777,"children":31778},{"class":141,"line":378},[31779,31784,31788,31793,31798,31802,31807,31811,31815,31820,31825,31830,31835,31839],{"type":21,"tag":139,"props":31780,"children":31781},{"style":152},[31782],{"type":31,"value":31783},"  alg",{"type":21,"tag":139,"props":31785,"children":31786},{"style":146},[31787],{"type":31,"value":211},{"type":21,"tag":139,"props":31789,"children":31790},{"style":152},[31791],{"type":31,"value":31792},"$(",{"type":21,"tag":139,"props":31794,"children":31795},{"style":214},[31796],{"type":31,"value":31797},"echo",{"type":21,"tag":139,"props":31799,"children":31800},{"style":146},[31801],{"type":31,"value":31713},{"type":21,"tag":139,"props":31803,"children":31804},{"style":4509},[31805],{"type":31,"value":31806}," openssl",{"type":21,"tag":139,"props":31808,"children":31809},{"style":262},[31810],{"type":31,"value":31579},{"type":21,"tag":139,"props":31812,"children":31813},{"style":214},[31814],{"type":31,"value":31584},{"type":21,"tag":139,"props":31816,"children":31817},{"style":262},[31818],{"type":31,"value":31819}," \"",{"type":21,"tag":139,"props":31821,"children":31822},{"style":152},[31823],{"type":31,"value":31824},"$host",{"type":21,"tag":139,"props":31826,"children":31827},{"style":262},[31828],{"type":31,"value":31829},":443\"",{"type":21,"tag":139,"props":31831,"children":31832},{"style":146},[31833],{"type":31,"value":31834}," 2>",{"type":21,"tag":139,"props":31836,"children":31837},{"style":262},[31838],{"type":31,"value":31604},{"type":21,"tag":139,"props":31840,"children":31841},{"style":214},[31842],{"type":31,"value":31614},{"type":21,"tag":139,"props":31844,"children":31845},{"class":141,"line":387},[31846,31851,31855,31860,31865,31870,31874,31878],{"type":21,"tag":139,"props":31847,"children":31848},{"style":146},[31849],{"type":31,"value":31850},"    |",{"type":21,"tag":139,"props":31852,"children":31853},{"style":4509},[31854],{"type":31,"value":31806},{"type":21,"tag":139,"props":31856,"children":31857},{"style":262},[31858],{"type":31,"value":31859}," x509",{"type":21,"tag":139,"props":31861,"children":31862},{"style":214},[31863],{"type":31,"value":31864}," -noout",{"type":21,"tag":139,"props":31866,"children":31867},{"style":214},[31868],{"type":31,"value":31869}," -text",{"type":21,"tag":139,"props":31871,"children":31872},{"style":146},[31873],{"type":31,"value":31834},{"type":21,"tag":139,"props":31875,"children":31876},{"style":262},[31877],{"type":31,"value":31604},{"type":21,"tag":139,"props":31879,"children":31880},{"style":214},[31881],{"type":31,"value":31614},{"type":21,"tag":139,"props":31883,"children":31884},{"class":141,"line":396},[31885,31889,31894,31899],{"type":21,"tag":139,"props":31886,"children":31887},{"style":146},[31888],{"type":31,"value":31850},{"type":21,"tag":139,"props":31890,"children":31891},{"style":4509},[31892],{"type":31,"value":31893}," awk",{"type":21,"tag":139,"props":31895,"children":31896},{"style":262},[31897],{"type":31,"value":31898}," '\u002FSignature Algorithm\u002F {print $3; exit}'",{"type":21,"tag":139,"props":31900,"children":31901},{"style":152},[31902],{"type":31,"value":270},{"type":21,"tag":139,"props":31904,"children":31905},{"class":141,"line":414},[31906,31911,31916,31920,31924,31928,31933,31938,31943,31948],{"type":21,"tag":139,"props":31907,"children":31908},{"style":214},[31909],{"type":31,"value":31910},"  printf",{"type":21,"tag":139,"props":31912,"children":31913},{"style":262},[31914],{"type":31,"value":31915}," '%s\\t%s\\n'",{"type":21,"tag":139,"props":31917,"children":31918},{"style":262},[31919],{"type":31,"value":31819},{"type":21,"tag":139,"props":31921,"children":31922},{"style":152},[31923],{"type":31,"value":31824},{"type":21,"tag":139,"props":31925,"children":31926},{"style":262},[31927],{"type":31,"value":15370},{"type":21,"tag":139,"props":31929,"children":31930},{"style":262},[31931],{"type":31,"value":31932}," \"${",{"type":21,"tag":139,"props":31934,"children":31935},{"style":152},[31936],{"type":31,"value":31937},"alg",{"type":21,"tag":139,"props":31939,"children":31940},{"style":146},[31941],{"type":31,"value":31942},":-",{"type":21,"tag":139,"props":31944,"children":31945},{"style":152},[31946],{"type":31,"value":31947},"UNREACHABLE",{"type":21,"tag":139,"props":31949,"children":31950},{"style":262},[31951],{"type":31,"value":31952},"}\"\n",{"type":21,"tag":139,"props":31954,"children":31955},{"class":141,"line":12589},[31956,31961,31965],{"type":21,"tag":139,"props":31957,"children":31958},{"style":146},[31959],{"type":31,"value":31960},"done",{"type":21,"tag":139,"props":31962,"children":31963},{"style":146},[31964],{"type":31,"value":31599},{"type":21,"tag":139,"props":31966,"children":31967},{"style":152},[31968],{"type":31,"value":31969}," hosts.txt\n",{"type":21,"tag":22,"props":31971,"children":31972},{},[31973,31975,31980],{"type":31,"value":31974},"Feed the results into a register that records, per system: the algorithm, key size, protocol, certificate authority, library and version, the owner, and, most importantly, ",{"type":21,"tag":16802,"props":31976,"children":31977},{},[31978],{"type":31,"value":31979},"how long the data it protects must stay confidential",{"type":31,"value":31981},". That last column is what turns an inventory into a prioritized migration order.",{"type":21,"tag":41,"props":31983,"children":31985},{"id":31984},"hybrid-deployment-is-the-low-risk-path",[31986],{"type":31,"value":31987},"Hybrid deployment is the low-risk path",{"type":21,"tag":22,"props":31989,"children":31990},{},[31991,31993,31998],{"type":31,"value":31992},"The consensus deployment pattern is hybrid: run a classical and a post-quantum key exchange together and combine both shared secrets, so the connection is safe unless ",{"type":21,"tag":12756,"props":31994,"children":31995},{},[31996],{"type":31,"value":31997},"both",{"type":31,"value":31999}," are broken. This hedges against implementation bugs and undiscovered cryptanalysis in the newer lattice schemes.",{"type":21,"tag":22,"props":32001,"children":32002},{},[32003,32005,32010],{"type":31,"value":32004},"This is no longer experimental. ",{"type":21,"tag":16802,"props":32006,"children":32007},{},[32008],{"type":31,"value":32009},"X25519MLKEM768",{"type":31,"value":32011}," is the standardized hybrid group, enabled by default in Chrome since version 131 and Firefox since 132, and OpenSSL 3.5 (April 2025) ships ML-KEM natively. Its default group list prefers the hybrid, meaning two OpenSSL 3.5 endpoints negotiate post-quantum key exchange with no configuration at all.",{"type":21,"tag":129,"props":32013,"children":32015},{"className":4499,"code":32014,"language":4498,"meta":7,"style":7},"# nginx with OpenSSL 3.5+: explicit hybrid preference, classical fallback\nssl_protocols TLSv1.3;\nssl_ecdh_curve X25519MLKEM768:X25519:P-256;\n",[32016],{"type":21,"tag":104,"props":32017,"children":32018},{"__ignoreMap":7},[32019,32027,32045],{"type":21,"tag":139,"props":32020,"children":32021},{"class":141,"line":142},[32022],{"type":21,"tag":139,"props":32023,"children":32024},{"style":220},[32025],{"type":31,"value":32026},"# nginx with OpenSSL 3.5+: explicit hybrid preference, classical fallback\n",{"type":21,"tag":139,"props":32028,"children":32029},{"class":141,"line":168},[32030,32035,32040],{"type":21,"tag":139,"props":32031,"children":32032},{"style":4509},[32033],{"type":31,"value":32034},"ssl_protocols",{"type":21,"tag":139,"props":32036,"children":32037},{"style":262},[32038],{"type":31,"value":32039}," TLSv1.3",{"type":21,"tag":139,"props":32041,"children":32042},{"style":152},[32043],{"type":31,"value":32044},";\n",{"type":21,"tag":139,"props":32046,"children":32047},{"class":141,"line":190},[32048,32053,32058],{"type":21,"tag":139,"props":32049,"children":32050},{"style":4509},[32051],{"type":31,"value":32052},"ssl_ecdh_curve",{"type":21,"tag":139,"props":32054,"children":32055},{"style":262},[32056],{"type":31,"value":32057}," X25519MLKEM768:X25519:P-256",{"type":21,"tag":139,"props":32059,"children":32060},{"style":152},[32061],{"type":31,"value":32044},{"type":21,"tag":22,"props":32063,"children":32064},{},[32065],{"type":31,"value":32066},"Signatures are further behind. Public CAs are not yet issuing ML-DSA certificates at scale, so key exchange is where you gain real HNDL protection today, and it's the cheapest win available.",{"type":21,"tag":41,"props":32068,"children":32070},{"id":32069},"what-to-do-this-quarter",[32071],{"type":31,"value":32072},"What to do this quarter",{"type":21,"tag":22,"props":32074,"children":32075},{},[32076],{"type":31,"value":32077},"A realistic 90-day slice:",{"type":21,"tag":68,"props":32079,"children":32080},{},[32081,32091,32130,32140,32150,32160,32177],{"type":21,"tag":72,"props":32082,"children":32083},{},[32084,32089],{"type":21,"tag":16802,"props":32085,"children":32086},{},[32087],{"type":31,"value":32088},"Appoint an owner.",{"type":31,"value":32090}," Migrations without a named accountable person do not happen. This is a multi-year program, not a ticket.",{"type":21,"tag":72,"props":32092,"children":32093},{},[32094,32099,32101,32107,32108,32114,32115,32121,32122,32128],{"type":21,"tag":16802,"props":32095,"children":32096},{},[32097],{"type":31,"value":32098},"Run automated discovery",{"type":31,"value":32100}," across external endpoints, internal service mesh, and code repositories. Grep your codebases for ",{"type":21,"tag":104,"props":32102,"children":32104},{"className":32103},[],[32105],{"type":31,"value":32106},"RSA",{"type":31,"value":259},{"type":21,"tag":104,"props":32109,"children":32111},{"className":32110},[],[32112],{"type":31,"value":32113},"ECDSA",{"type":31,"value":259},{"type":21,"tag":104,"props":32116,"children":32118},{"className":32117},[],[32119],{"type":31,"value":32120},"secp256",{"type":31,"value":259},{"type":21,"tag":104,"props":32123,"children":32125},{"className":32124},[],[32126],{"type":31,"value":32127},"PKCS1",{"type":31,"value":32129},", and hardcoded algorithm identifiers.",{"type":21,"tag":72,"props":32131,"children":32132},{},[32133,32138],{"type":21,"tag":16802,"props":32134,"children":32135},{},[32136],{"type":31,"value":32137},"Classify by data lifetime.",{"type":31,"value":32139}," Sort systems by how long their data must stay secret. Anything over ten years is priority one.",{"type":21,"tag":72,"props":32141,"children":32142},{},[32143,32148],{"type":21,"tag":16802,"props":32144,"children":32145},{},[32146],{"type":31,"value":32147},"Turn on hybrid TLS where it's free.",{"type":31,"value":32149}," Upgrade to OpenSSL 3.5+ or a TLS terminator that supports X25519MLKEM768. For numerous organizations this is a load-balancer config change covering the majority of traffic.",{"type":21,"tag":72,"props":32151,"children":32152},{},[32153,32158],{"type":21,"tag":16802,"props":32154,"children":32155},{},[32156],{"type":31,"value":32157},"Send the supplier questionnaire.",{"type":31,"value":32159}," Ask every crypto-touching vendor for their FIPS 203\u002F204\u002F205 roadmap with dates. Slow answers are your long pole. You need them on record now.",{"type":21,"tag":72,"props":32161,"children":32162},{},[32163,32168,32170,32175],{"type":21,"tag":16802,"props":32164,"children":32165},{},[32166],{"type":31,"value":32167},"Fix crypto-agility in new code.",{"type":31,"value":32169}," Stop hardcoding algorithms. Route every operation through an abstraction that takes the algorithm from configuration, so the ",{"type":21,"tag":12756,"props":32171,"children":32172},{},[32173],{"type":31,"value":32174},"next",{"type":31,"value":32176}," transition (HQC, FN-DSA, or whatever follows) is a config change rather than a rewrite. This is the single highest-leverage engineering change, because the 2035 deadline is not the last one.",{"type":21,"tag":72,"props":32178,"children":32179},{},[32180,32185],{"type":21,"tag":16802,"props":32181,"children":32182},{},[32183],{"type":31,"value":32184},"Move code signing early.",{"type":31,"value":32186}," It has the earliest federal deadline, the longest verification tail, and signatures that must remain verifiable for decades.",{"type":21,"tag":41,"props":32188,"children":32190},{"id":32189},"the-bottom-line",[32191],{"type":31,"value":32192},"The bottom line",{"type":21,"tag":22,"props":32194,"children":32195},{},[32196,32198,32203],{"type":31,"value":32197},"The deadlines are published, they're closer than the hardware timeline suggests, and they were set by people who assume migration takes ten years. Two dates are worth memorizing: ",{"type":21,"tag":16802,"props":32199,"children":32200},{},[32201],{"type":31,"value":32202},"after 2030, classical asymmetric crypto is deprecated, and after 2035, it's disallowed",{"type":31,"value":32204},", with federal national-security systems running years ahead of that.",{"type":21,"tag":22,"props":32206,"children":32207},{},[32208],{"type":31,"value":32209},"The work that pays off regardless of when quantum hardware arrives is the boring part: knowing where your cryptography lives and being able to change it without a rewrite. Everything else is a config flag.",{"type":21,"tag":22,"props":32211,"children":32212},{},[32213,32218,32219,32224,32225,32230,32231,32236,32237],{"type":21,"tag":16802,"props":32214,"children":32215},{},[32216],{"type":31,"value":32217},"Further reading:",{"type":31,"value":22948},{"type":21,"tag":26,"props":32220,"children":32221},{"href":3883},[32222],{"type":31,"value":32223},"What PQC is",{"type":31,"value":28966},{"type":21,"tag":26,"props":32226,"children":32227},{"href":19115},[32228],{"type":31,"value":32229},"Reading policy documents as technical assessments",{"type":31,"value":28966},{"type":21,"tag":26,"props":32232,"children":32233},{"href":1142},[32234],{"type":31,"value":32235},"Quantum computing glossary",{"type":31,"value":28966},{"type":21,"tag":26,"props":32238,"children":32240},{"href":32239},"\u002Fnews",[32241],{"type":31,"value":32242},"Latest developments",{"type":21,"tag":1168,"props":32244,"children":32245},{},[32246],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":32248},[32249,32250,32251,32252,32253,32254,32255,32256],{"id":31200,"depth":168,"text":31203},{"id":31345,"depth":168,"text":31348},{"id":31422,"depth":168,"text":31425},{"id":31489,"depth":168,"text":31492},{"id":31543,"depth":168,"text":31546},{"id":31984,"depth":168,"text":31987},{"id":32069,"depth":168,"text":32072},{"id":32189,"depth":168,"text":32192},"content:blog:post-quantum-migration-deadlines.md","blog\u002Fpost-quantum-migration-deadlines.md","blog\u002Fpost-quantum-migration-deadlines",{"_path":19951,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":32261,"description":32262,"date":25047,"author":11,"tags":32263,"readingTime":16,"body":32264,"_type":1187,"_id":32829,"_source":1189,"_file":32830,"_stem":32831,"_extension":1192},"Q-Day and What Breaking RSA-2048 Requires","Q-Day is one of the most abused terms in quantum computing. Here's a precise definition, the published resource estimates for factoring RSA-2048 with Shor's algorithm, and why those estimates disagree by orders of magnitude.",[3849,3850,3851],{"type":18,"children":32265,"toc":32819},[32266,32271,32276,32282,32306,32318,32323,32329,32347,32359,32365,32384,32423,32452,32458,32492,32519,32545,32571,32576,32629,32639,32645,32669,32681,32687,32692,32704,32710,32715,32741,32753,32759,32764,32776,32788],{"type":21,"tag":22,"props":32267,"children":32268},{},[32269],{"type":31,"value":32270},"\"Q-Day\" appears in vendor decks, government strategy documents, and newspaper headlines, usually with a countdown clock attached. It is rarely defined. That vagueness is doing a lot of work, because the term is used to mean at least two distinct things, and the gap between them is measured in years and billions of dollars of engineering.",{"type":21,"tag":22,"props":32272,"children":32273},{},[32274],{"type":31,"value":32275},"This article does the part that most coverage skips: what a machine capable of breaking RSA-2048 would have to be, according to published estimates, and why those estimates have ranged from twenty million qubits to under one million within six years.",{"type":21,"tag":41,"props":32277,"children":32279},{"id":32278},"defining-the-term-precisely",[32280],{"type":31,"value":32281},"Defining the term precisely",{"type":21,"tag":22,"props":32283,"children":32284},{},[32285,32291,32293,32298,32300,32304],{"type":21,"tag":26,"props":32286,"children":32288},{"href":32287},"\u002Fglossary\u002Fq-day",[32289],{"type":31,"value":32290},"Q-Day",{"type":31,"value":32292}," is most usefully defined as ",{"type":21,"tag":16802,"props":32294,"children":32295},{},[32296],{"type":31,"value":32297},"the day a cryptographically relevant quantum computer (CRQC) first exists",{"type":31,"value":32299},": a machine that runs ",{"type":21,"tag":26,"props":32301,"children":32302},{"href":1231},[32303],{"type":31,"value":31442},{"type":31,"value":32305}," against real-world key sizes within an operationally useful time.",{"type":21,"tag":22,"props":32307,"children":32308},{},[32309,32311,32316],{"type":31,"value":32310},"The looseness creeps in around \"real-world key sizes.\" Some writers use Q-Day to mean specifically ",{"type":21,"tag":12756,"props":32312,"children":32313},{},[32314],{"type":31,"value":32315},"RSA-2048 is broken",{"type":31,"value":32317},". Others use it for any CRQC, which would include a machine that breaks NIST P-256 elliptic-curve keys, a meaningfully easier goal, since ECC uses far smaller keys for equivalent classical security, and the elliptic-curve variant of Shor's needs a smaller register. A third group uses it loosely for \"quantum computers become scary,\" which is not a technical claim at all.",{"type":21,"tag":22,"props":32319,"children":32320},{},[32321],{"type":31,"value":32322},"Precision matters because these events do not happen on the same day. If P-256 falls before RSA-2048, the practical consequences differ sharply: ECDSA underpins TLS certificates, SSH, code signing, and most cryptocurrency, while RSA-2048 still guards a large installed base of older infrastructure. A plan built around one date risks being badly calibrated for the other.",{"type":21,"tag":41,"props":32324,"children":32326},{"id":32325},"why-the-date-matters-less-than-youd-think",[32327],{"type":31,"value":32328},"Why the date matters less than you'd think",{"type":21,"tag":22,"props":32330,"children":32331},{},[32332,32334,32338,32340,32345],{"type":31,"value":32333},"The instinct on hearing \"Q-Day\" is to ask when. That question is less decision-relevant than it feels, because of ",{"type":21,"tag":16802,"props":32335,"children":32336},{},[32337],{"type":31,"value":31435},{"type":31,"value":32339},": an adversary records encrypted traffic today and stores it until a CRQC exists. Any data whose confidentiality must outlive Q-Day is exposed ",{"type":21,"tag":12756,"props":32341,"children":32342},{},[32343],{"type":31,"value":32344},"now",{"type":31,"value":32346},", regardless of when Q-Day lands.",{"type":21,"tag":22,"props":32348,"children":32349},{},[32350,32352,32357],{"type":31,"value":32351},"So the question that drives decisions is not \"when is Q-Day\" but \"how long must this data stay secret, and how long will my migration take.\" Regulators have already answered on organizations' behalf with published deprecation dates. We cover those in detail in ",{"type":21,"tag":26,"props":32353,"children":32354},{"href":16720},[32355],{"type":31,"value":32356},"the entry-quantum migration clock",{"type":31,"value":32358},", and they are deliberately independent of any hardware forecast.",{"type":21,"tag":41,"props":32360,"children":32362},{"id":32361},"the-core-question-what-would-the-machine-look-like",[32363],{"type":31,"value":32364},"The core question: what would the machine look like?",{"type":21,"tag":22,"props":32366,"children":32367},{},[32368,32370,32375,32377,32382],{"type":31,"value":32369},"Shor's algorithm, ",{"type":21,"tag":26,"props":32371,"children":32372},{"href":19989},[32373],{"type":31,"value":32374},"introduced in 1994",{"type":31,"value":32376},", reduces factoring to period-finding, which it solves using ",{"type":21,"tag":26,"props":32378,"children":32380},{"href":32379},"\u002Fglossary\u002Fphase-estimation",[32381],{"type":31,"value":20428},{"type":31,"value":32383}," over a modular exponentiation circuit. The algorithmic cost is polynomial. The engineering cost is where the difficulty lives, and it splits into two different numbers.",{"type":21,"tag":22,"props":32385,"children":32386},{},[32387,32392,32394,32400,32402,32406,32408,32413,32415,32421],{"type":21,"tag":16802,"props":32388,"children":32389},{},[32390],{"type":31,"value":32391},"Logical qubits",{"type":31,"value":32393}," are the idealized, error-free qubits the algorithm is written against. Gidney and Ekerå's 2019 construction expresses this as ",{"type":21,"tag":104,"props":32395,"children":32397},{"className":32396},[],[32398],{"type":31,"value":32399},"3n + 0.002·n·lg n",{"type":31,"value":32401}," logical qubits for an ",{"type":21,"tag":12756,"props":32403,"children":32404},{},[32405],{"type":31,"value":19605},{"type":31,"value":32407},"-bit modulus. For RSA-2048 that works out to roughly ",{"type":21,"tag":16802,"props":32409,"children":32410},{},[32411],{"type":31,"value":32412},"6,200 logical qubits",{"type":31,"value":32414},", alongside a Toffoli gate count on the order of ",{"type":21,"tag":104,"props":32416,"children":32418},{"className":32417},[],[32419],{"type":31,"value":32420},"0.3n³",{"type":31,"value":32422},", billions of gates.",{"type":21,"tag":22,"props":32424,"children":32425},{},[32426,32431,32433,32437,32439,32443,32445,32450],{"type":21,"tag":16802,"props":32427,"children":32428},{},[32429],{"type":31,"value":32430},"Physical qubits",{"type":31,"value":32432}," are what you build. The ratio between them is the overhead imposed by ",{"type":21,"tag":26,"props":32434,"children":32435},{"href":15828},[32436],{"type":31,"value":14732},{"type":31,"value":32438},", and it is brutal. Under the surface code, each ",{"type":21,"tag":26,"props":32440,"children":32441},{"href":15857},[32442],{"type":31,"value":30778},{"type":31,"value":32444}," is encoded across a patch of physical qubits whose size grows with the ",{"type":21,"tag":12756,"props":32446,"children":32447},{},[32448],{"type":31,"value":32449},"code distance",{"type":31,"value":32451},", which must be chosen large enough that the total error across billions of gates stays below one. Getting from ~6,200 logical qubits to a working machine is where the millions come from.",{"type":21,"tag":41,"props":32453,"children":32455},{"id":32454},"the-published-estimates-and-why-they-moved",[32456],{"type":31,"value":32457},"The published estimates, and why they moved",{"type":21,"tag":22,"props":32459,"children":32460},{},[32461,32463,32468,32470,32475,32476,32483,32485,32490],{"type":31,"value":32462},"The most-cited figure comes from ",{"type":21,"tag":16802,"props":32464,"children":32465},{},[32466],{"type":31,"value":32467},"Gidney and Ekerå (2019)",{"type":31,"value":32469},": factoring a 2048-bit RSA integer in ",{"type":21,"tag":16802,"props":32471,"children":32472},{},[32473],{"type":31,"value":32474},"8 hours using 20 million noisy physical qubits",{"type":31,"value":20768},{"type":21,"tag":26,"props":32477,"children":32480},{"href":32478,"rel":32479},"https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.09749",[7123],[32481],{"type":31,"value":32482},"arXiv:1905.09749",{"type":31,"value":32484},", later published in ",{"type":21,"tag":12756,"props":32486,"children":32487},{},[32488],{"type":31,"value":32489},"Quantum",{"type":31,"value":32491},"). That was already a hundredfold reduction in spacetime volume over prior proposals.",{"type":21,"tag":22,"props":32493,"children":32494},{},[32495,32497,32502,32504,32509,32510,32517],{"type":31,"value":32496},"In May 2025, ",{"type":21,"tag":16802,"props":32498,"children":32499},{},[32500],{"type":31,"value":32501},"Gidney",{"type":31,"value":32503}," published a revised analysis: ",{"type":21,"tag":16802,"props":32505,"children":32506},{},[32507],{"type":31,"value":32508},"fewer than one million noisy physical qubits, running for under a week",{"type":31,"value":20768},{"type":21,"tag":26,"props":32511,"children":32514},{"href":32512,"rel":32513},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.15917",[7123],[32515],{"type":31,"value":32516},"arXiv:2505.15917",{"type":31,"value":32518},"). That is roughly a 20× reduction in qubit count against his own earlier number, traded for a longer runtime.",{"type":21,"tag":22,"props":32520,"children":32521},{},[32522,32524,32529,32531,32536,32538,32543],{"type":31,"value":32523},"Both papers assume broadly the same hardware model: a planar square grid of superconducting qubits with nearest-neighbour connectivity, a ",{"type":21,"tag":16802,"props":32525,"children":32526},{},[32527],{"type":31,"value":32528},"0.1% gate error rate",{"type":31,"value":32530},", a ",{"type":21,"tag":16802,"props":32532,"children":32533},{},[32534],{"type":31,"value":32535},"1 microsecond",{"type":31,"value":32537}," surface code cycle, and a ",{"type":21,"tag":16802,"props":32539,"children":32540},{},[32541],{"type":31,"value":32542},"10 microsecond",{"type":31,"value":32544}," control-system reaction time.",{"type":21,"tag":22,"props":32546,"children":32547},{},[32548,32550,32555,32557,32562,32564,32569],{"type":31,"value":32549},"That is the key insight about the discrepancy: ",{"type":21,"tag":16802,"props":32551,"children":32552},{},[32553],{"type":31,"value":32554},"the hardware assumptions barely changed. The algorithms and codes did.",{"type":31,"value":32556}," The 2025 reduction comes from three certain advances: approximate residue arithmetic (fewer operations), ",{"type":21,"tag":12756,"props":32558,"children":32559},{},[32560],{"type":31,"value":32561},"yoked surface codes",{"type":31,"value":32563}," (roughly tripling storage density for idle logical qubits), and ",{"type":21,"tag":12756,"props":32565,"children":32566},{},[32567],{"type":31,"value":32568},"magic state cultivation",{"type":31,"value":32570},", which makes producing the high-fidelity non-Clifford resource states that dominate the cost far cheaper than traditional distillation.",{"type":21,"tag":22,"props":32572,"children":32573},{},[32574],{"type":31,"value":32575},"This is why estimates in the wild vary so wildly. Any published number is a function of at least five assumptions:",{"type":21,"tag":1112,"props":32577,"children":32578},{},[32579,32589,32599,32609,32619],{"type":21,"tag":72,"props":32580,"children":32581},{},[32582,32587],{"type":21,"tag":16802,"props":32583,"children":32584},{},[32585],{"type":31,"value":32586},"Physical error rate.",{"type":31,"value":32588}," The required code distance depends on how far below threshold the hardware sits. A 10× better physical error rate cuts the overhead dramatically.",{"type":21,"tag":72,"props":32590,"children":32591},{},[32592,32597],{"type":21,"tag":16802,"props":32593,"children":32594},{},[32595],{"type":31,"value":32596},"Code choice.",{"type":31,"value":32598}," Surface codes are the conservative baseline. Higher-rate qLDPC codes are likely to reduce overhead substantially, at the cost of harder connectivity requirements.",{"type":21,"tag":72,"props":32600,"children":32601},{},[32602,32607],{"type":21,"tag":16802,"props":32603,"children":32604},{},[32605],{"type":31,"value":32606},"Cycle and reaction time.",{"type":31,"value":32608}," These set wall-clock runtime, and runtime feeds back into how much error correction you need.",{"type":21,"tag":72,"props":32610,"children":32611},{},[32612,32617],{"type":21,"tag":16802,"props":32613,"children":32614},{},[32615],{"type":31,"value":32616},"Magic state strategy.",{"type":31,"value":32618}," Distillation factories historically consumed the majority of the machine's footprint. Cultivation changes that budget.",{"type":21,"tag":72,"props":32620,"children":32621},{},[32622,32627],{"type":21,"tag":16802,"props":32623,"children":32624},{},[32625],{"type":31,"value":32626},"Space–time tradeoff.",{"type":31,"value":32628}," You nearly always buy fewer qubits with more hours, which is exactly what happened between the 2019 and 2025 papers. Quoting a qubit count without a runtime is meaningless.",{"type":21,"tag":22,"props":32630,"children":32631},{},[32632,32637],{"type":21,"tag":16802,"props":32633,"children":32634},{},[32635],{"type":31,"value":32636},"The direction of travel is the important dynamic.",{"type":31,"value":32638}," Over three decades, published estimates have moved consistently downward, driven by compilation and error-correction improvements rather than by hardware surprises. A migration plan that assumes today's estimate is the floor is planning against a number that has never yet stopped falling.",{"type":21,"tag":41,"props":32640,"children":32642},{"id":32641},"where-hardware-stands",[32643],{"type":31,"value":32644},"Where hardware stands",{"type":21,"tag":22,"props":32646,"children":32647},{},[32648,32650,32655,32657,32661,32663,32667],{"type":31,"value":32649},"Current devices carry roughly 100 to 1,000 physical qubits. Google's Willow processor, used in the 2024 ",{"type":21,"tag":26,"props":32651,"children":32652},{"href":25689},[32653],{"type":31,"value":32654},"below-threshold demonstration",{"type":31,"value":32656},", has 105. Even against the optimistic 2025 estimate, that is three orders of magnitude short in qubit count, before accounting for the ",{"type":21,"tag":26,"props":32658,"children":32659},{"href":18181},[32660],{"type":31,"value":13086},{"type":31,"value":32662},", connectivity, and control requirements those papers assume. Our ",{"type":21,"tag":26,"props":32664,"children":32665},{"href":1100},[32666],{"type":31,"value":16080},{"type":31,"value":32668}," tracks what is available.",{"type":21,"tag":22,"props":32670,"children":32671},{},[32672,32674,32679],{"type":31,"value":32673},"But the 2024 result matters more than the raw gap suggests. Google ran surface codes at distances 3, 5, and 7 and showed each increase roughly ",{"type":21,"tag":12756,"props":32675,"children":32676},{},[32677],{"type":31,"value":32678},"halved",{"type":31,"value":32680}," the logical error rate: the logical qubit outperformed its best constituent physical qubit. Every fault-tolerance roadmap assumes that adding qubits makes the encoded qubit better rather than worse. Until that experiment, it was an assumption. Crossing the threshold converted the remaining problem from an open physics question into a scaling and manufacturing one. Scaling problems are still extremely hard and sometimes take decades. They are a varied category of tough.",{"type":21,"tag":41,"props":32682,"children":32684},{"id":32683},"machine-checking-the-numbers",[32685],{"type":31,"value":32686},"Machine-checking the numbers",{"type":21,"tag":22,"props":32688,"children":32689},{},[32690],{"type":31,"value":32691},"A subtlety that rarely surfaces: these resource estimates are long, detailed, hand-written analyses, and migration budgets running into the billions are set on the basis of them. An arithmetic slip or an unstated assumption in a compilation argument propagates straight into policy.",{"type":21,"tag":22,"props":32693,"children":32694},{},[32695,32697,32702],{"type":31,"value":32696},"That is why the 2026 ",{"type":21,"tag":26,"props":32698,"children":32699},{"href":31470},[32700],{"type":31,"value":32701},"Lean formalization of Shor's algorithm",{"type":31,"value":32703}," is worth attention beyond its novelty. It formalizes order finding and the reversible circuits for modular and elliptic-curve arithmetic in a proof assistant, and machine-checks the logical resource estimates for both RSA-2048 and P-256. It does not settle the physical-qubit question (that still depends on the hardware assumptions above), but it puts the logical layer on an auditable footing. When a number drives a budget, \"a machine verified this derivation\" is a meaningfully stronger claim than \"several experts read the appendix.\"",{"type":21,"tag":41,"props":32705,"children":32707},{"id":32706},"the-vendor-perspective-clearly-labelled",[32708],{"type":31,"value":32709},"The vendor perspective, clearly labelled",{"type":21,"tag":22,"props":32711,"children":32712},{},[32713],{"type":31,"value":32714},"Quantum hardware companies publish extensively on Q-Day, and their framing deserves an explicit caveat: they sell the machines whose urgency they are describing.",{"type":21,"tag":22,"props":32716,"children":32717},{},[32718,32720,32725,32727,32732,32734,32739],{"type":31,"value":32719},"IonQ's December 2024 post ",{"type":21,"tag":12756,"props":32721,"children":32722},{},[32723],{"type":31,"value":32724},"Q-Day and the Impact of Breaking RSA2048",{"type":31,"value":32726},", by SVP of Product and Applications Ariel Braunstein, is a reasonable example. ",{"type":21,"tag":16802,"props":32728,"children":32729},{},[32730],{"type":31,"value":32731},"IonQ argues",{"type":31,"value":32733}," that harvest-now-decrypt-later is already underway, describing nation states collecting encrypted data in anticipation of future decryption capability, and that the unpredictability of algorithmic breakthroughs is itself a reason not to wait. To its credit, the post declines to name a year, presenting a spread of estimates across research organizations instead, and ",{"type":21,"tag":16802,"props":32735,"children":32736},{},[32737],{"type":31,"value":32738},"IonQ's recommendation",{"type":31,"value":32740}," (that organizations begin exploring quantum-resistant algorithms now, while acknowledging urgency varies with the timeline one assumes) is close to the mainstream security-community position.",{"type":21,"tag":22,"props":32742,"children":32743},{},[32744,32746,32751],{"type":31,"value":32745},"Note also what it does not contain. ",{"type":21,"tag":16802,"props":32747,"children":32748},{},[32749],{"type":31,"value":32750},"The IonQ post cites no qubit count or resource estimate for RSA-2048 at all.",{"type":31,"value":32752}," Its one concrete figure is an unrelated materials-simulation algorithm reduced from 1.5 trillion gate operations to 410,000. That is a genuine result about a varied workload, and it is not evidence about factoring. Treat provider content as a directionally useful signal about industry expectations, not as a neutral source for the resource question.",{"type":21,"tag":41,"props":32754,"children":32756},{"id":32755},"how-to-reason-about-it-yourself",[32757],{"type":31,"value":32758},"How to reason about it yourself",{"type":21,"tag":22,"props":32760,"children":32761},{},[32762],{"type":31,"value":32763},"The framing that survives contact with the uncertainty is Mosca's inequality: if your data's required confidentiality lifetime plus your migration time exceeds the time until a CRQC exists, you are already late. Only the third term is unknown, and the first two are usually large enough that the third barely changes the answer.",{"type":21,"tag":22,"props":32765,"children":32766},{},[32767,32769,32774],{"type":31,"value":32768},"So the honest conclusion is an uncomfortable one: ",{"type":21,"tag":16802,"props":32770,"children":32771},{},[32772],{"type":31,"value":32773},"nobody credible gives you a date, and anyone who does is telling you about their business model or their priors, not about physics.",{"type":31,"value":32775}," What we say precisely is what the machine would need to be, that the requirement has been revised downward repeatedly, and that the error-correction threshold has been crossed.",{"type":21,"tag":22,"props":32777,"children":32778},{},[32779,32781,32786],{"type":31,"value":32780},"The responsible posture is to migrate on a schedule that does not depend on knowing the date. Start with ",{"type":21,"tag":26,"props":32782,"children":32783},{"href":3883},[32784],{"type":31,"value":32785},"what PQC is",{"type":31,"value":32787},", then work the calendar. If your plan breaks when the estimate drops another 10×, it was never a plan.",{"type":21,"tag":22,"props":32789,"children":32790},{},[32791,32795,32796,32801,32802,32807,32808,32814,32815],{"type":21,"tag":16802,"props":32792,"children":32793},{},[32794],{"type":31,"value":32217},{"type":31,"value":22948},{"type":21,"tag":26,"props":32797,"children":32798},{"href":16720},[32799],{"type":31,"value":32800},"Post-quantum migration deadlines",{"type":31,"value":28966},{"type":21,"tag":26,"props":32803,"children":32804},{"href":15609},[32805],{"type":31,"value":32806},"Quantum error correction explained",{"type":31,"value":28966},{"type":21,"tag":26,"props":32809,"children":32811},{"href":32810},"\u002Fresearch",[32812],{"type":31,"value":32813},"Landmark research papers",{"type":31,"value":28966},{"type":21,"tag":26,"props":32816,"children":32817},{"href":32239},[32818],{"type":31,"value":32242},{"title":7,"searchDepth":168,"depth":168,"links":32820},[32821,32822,32823,32824,32825,32826,32827,32828],{"id":32278,"depth":168,"text":32281},{"id":32325,"depth":168,"text":32328},{"id":32361,"depth":168,"text":32364},{"id":32454,"depth":168,"text":32457},{"id":32641,"depth":168,"text":32644},{"id":32683,"depth":168,"text":32686},{"id":32706,"depth":168,"text":32709},{"id":32755,"depth":168,"text":32758},"content:blog:q-day-breaking-rsa-2048.md","blog\u002Fq-day-breaking-rsa-2048.md","blog\u002Fq-day-breaking-rsa-2048",{"_path":14748,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":32833,"description":32834,"date":25047,"author":11,"tags":32835,"readingTime":16,"body":32836,"_type":1187,"_id":33325,"_source":1189,"_file":33326,"_stem":33327,"_extension":1192},"The Real-Time Decoding Bottleneck: Quantum Error Correction's Classical Problem","Syndrome measurement tells you something broke, not what broke. Working that out is decoding, and if your classical decoder can't keep pace with the syndrome stream, the whole error-correction scheme collapses.",[14720,1207,13882],{"type":18,"children":32837,"toc":33315},[32838,32855,32867,32873,32884,32897,32909,32921,32927,32932,32937,32942,32954,32966,32978,32990,32996,33001,33011,33021,33031,33037,33042,33047,33059,33078,33083,33088,33094,33105,33110,33141,33153,33159,33164,33196,33201,33207,33219,33224,33243,33249,33254,33259,33270],{"type":21,"tag":22,"props":32839,"children":32840},{},[32841,32843,32847,32849,32853],{"type":31,"value":32842},"Most explanations of ",{"type":21,"tag":26,"props":32844,"children":32845},{"href":15828},[32846],{"type":31,"value":14732},{"type":31,"value":32848}," end at the same place. You encode a logical qubit across several physical ones, you run parity checks with ",{"type":21,"tag":26,"props":32850,"children":32851},{"href":30801},[32852],{"type":31,"value":30804},{"type":31,"value":32854},", you detect errors without collapsing the state, and then the article stops, having implied that detection is correction.",{"type":21,"tag":22,"props":32856,"children":32857},{},[32858,32860,32865],{"type":31,"value":32859},"It isn't. In our ",{"type":21,"tag":26,"props":32861,"children":32862},{"href":4082},[32863],{"type":31,"value":32864},"companion post on logical qubits and fault tolerance",{"type":31,"value":32866},", we listed real-time decoding as one of four things a fault-tolerant machine needs, and then moved on. This post picks up that thread, because it is the requirement least likely to be explained anywhere else, and it has a property the others don't: it is not fundamentally a quantum problem at all. It is a classical computing problem sitting inside the quantum computer, and it is currently one of the harder ones.",{"type":21,"tag":41,"props":32868,"children":32870},{"id":32869},"what-syndrome-measurement-gives-you",[32871],{"type":31,"value":32872},"What syndrome measurement gives you",{"type":21,"tag":22,"props":32874,"children":32875},{},[32876,32877,32882],{"type":31,"value":11026},{"type":21,"tag":26,"props":32878,"children":32879},{"href":15609},[32880],{"type":31,"value":32881},"QEC basics post",{"type":31,"value":32883}," covers the mechanics of parity checks, so we won't re-derive them. The relevant point is what comes out.",{"type":21,"tag":22,"props":32885,"children":32886},{},[32887,32889,32895],{"type":31,"value":32888},"A round of syndrome extraction hands you a list of bits. Each bit says whether one particular parity check agreed with its previous value or flipped. A flipped check means an error touched at least one of the qubits it monitors. That's it. You do not learn which qubit. You do not learn whether it was an X, Z, or Y error. See the ",{"type":21,"tag":26,"props":32890,"children":32892},{"href":32891},"\u002Fglossary\u002Fpauli-operators",[32893],{"type":31,"value":32894},"Pauli operator",{"type":31,"value":32896}," breakdown for why those are the only cases that matter. You learn only that the parity structure has been violated somewhere in the neighbourhood of that check.",{"type":21,"tag":22,"props":32898,"children":32899},{},[32900,32902,32907],{"type":31,"value":32901},"Worse, the ",{"type":21,"tag":26,"props":32903,"children":32904},{"href":14867},[32905],{"type":31,"value":32906},"measurement",{"type":31,"value":32908}," circuits are themselves noisy, so some flipped checks correspond to no data error at all. The check itself misfired. And errors that happen to straddle two checks flip both, while an error in the middle of a chain of errors sometimes flips nothing, because two violations cancel.",{"type":21,"tag":22,"props":32910,"children":32911},{},[32912,32914,32919],{"type":31,"value":32913},"So the syndrome is not a diagnosis. It is a constraint. The job is to find the most probable physical error consistent with that constraint, then apply (or, more often, simply record) the correction. That inference step is ",{"type":21,"tag":16802,"props":32915,"children":32916},{},[32917],{"type":31,"value":32918},"decoding",{"type":31,"value":32920},", and it is a genuine combinatorial optimisation problem.",{"type":21,"tag":41,"props":32922,"children":32924},{"id":32923},"the-part-that-makes-it-urgent",[32925],{"type":31,"value":32926},"The part that makes it urgent",{"type":21,"tag":22,"props":32928,"children":32929},{},[32930],{"type":31,"value":32931},"Here is where it stops being an interesting algorithms question and becomes an engineering crisis.",{"type":21,"tag":22,"props":32933,"children":32934},{},[32935],{"type":31,"value":32936},"Syndrome extraction is not a one-off. It runs continuously, in rounds, for the entire duration of the computation. On superconducting hardware a round takes roughly a microsecond. Google's Willow experiments ran a cycle time of about 1.1 µs. Every one of those cycles emits a fresh syndrome frame from every logical qubit on the chip. For a machine of any interesting size, the syndrome data rate runs into millions of measurements per second.",{"type":21,"tag":22,"props":32938,"children":32939},{},[32940],{"type":31,"value":32941},"Your decoder has to consume that stream at least as fast as it arrives. Not \"reasonably fast.\" At least as fast, sustained, forever.",{"type":21,"tag":22,"props":32943,"children":32944},{},[32945,32947,32952],{"type":31,"value":32946},"If it doesn't, you get the ",{"type":21,"tag":16802,"props":32948,"children":32949},{},[32950],{"type":31,"value":32951},"backlog problem",{"type":31,"value":32953},", and the backlog problem does not degrade gracefully. Suppose your decoder processes each round 10% slower than rounds are produced. Undecoded frames pile up. The queue grows linearly in wall-clock time, which sounds survivable until you remember why you needed the decode result in the first place.",{"type":21,"tag":22,"props":32955,"children":32956},{},[32957,32959,32964],{"type":31,"value":32958},"Certain operations in a fault-tolerant computation are ",{"type":21,"tag":12756,"props":32960,"children":32961},{},[32962],{"type":31,"value":32963},"conditional",{"type":31,"value":32965},": what gate you apply next depends on the decoded outcome of measurements already taken. The canonical case is a non-Clifford gate implemented via magic state injection, where a correction is applied or not depending on a measurement result that must first be decoded. At each such branch point, the machine must stop and wait for the decoder to catch up to the present moment. But while it waits, more syndrome rounds are being produced. The qubits don't stop decohering only because the classical side is busy. So the wait itself extends the backlog, which lengthens the next wait, which extends the backlog further.",{"type":21,"tag":22,"props":32967,"children":32968},{},[32969,32971,32976],{"type":31,"value":32970},"The result is an ",{"type":21,"tag":16802,"props":32972,"children":32973},{},[32974],{"type":31,"value":32975},"exponential slowdown",{"type":31,"value":32977},". Each conditional operation takes longer than the last by a compounding factor, and the computation grinds to a halt long before it finishes. A decoder that is 10% too slow doesn't cost you 10%. It costs you the entire computation. The requirement is a difficult throughput threshold, not a performance preference.",{"type":21,"tag":22,"props":32979,"children":32980},{},[32981,32983,32988],{"type":31,"value":32982},"This is why the word \"real-time\" is load-bearing. Offline decoding (recording the syndrome stream and analysing it afterwards) is perfectly fine for a ",{"type":21,"tag":12756,"props":32984,"children":32985},{},[32986],{"type":31,"value":32987},"memory",{"type":31,"value":32989}," experiment, where you only want to know whether the stored state survived. It is useless for computation.",{"type":21,"tag":41,"props":32991,"children":32993},{"id":32992},"the-decoder-families-and-their-bargains",[32994],{"type":31,"value":32995},"The decoder families, and their bargains",{"type":21,"tag":22,"props":32997,"children":32998},{},[32999],{"type":31,"value":33000},"The decoding challenge has a beautiful structure in the surface code, and a much uglier one elsewhere.",{"type":21,"tag":22,"props":33002,"children":33003},{},[33004,33009],{"type":21,"tag":16802,"props":33005,"children":33006},{},[33007],{"type":31,"value":33008},"Minimum-weight perfect matching (MWPM).",{"type":31,"value":33010}," In the surface code, errors have a geometric signature: a chain of errors flips exactly the two checks at its endpoints. Syndrome violations therefore come in pairs, and finding the most likely error reduces to pairing up the flipped checks so that the total length of the connecting paths is minimised. That's a classic graph problem with a classic polynomial-time solution, Edmonds' blossom algorithm. MWPM has long been the accuracy benchmark for surface-code decoding: roughly a 0.94% threshold on weighted decoder graphs in commonly cited comparisons. Its problem is speed: polynomial time is not the same as fast enough, and the constant factors are unfriendly at microsecond deadlines.",{"type":21,"tag":22,"props":33012,"children":33013},{},[33014,33019],{"type":21,"tag":16802,"props":33015,"children":33016},{},[33017],{"type":31,"value":33018},"Union-find.",{"type":31,"value":33020}," The pragmatic answer. Union-find grows clusters around syndrome violations until each cluster is explained by an internal error, using disjoint-set data structures that run in almost-linear time. It's a rapid approximation of what matching does, and the accuracy cost is real but modest, with reported thresholds around 0.83% weighted versus MWPM's 0.94%. That trade has made it the workhorse for hardware implementations, particularly FPGA ones.",{"type":21,"tag":22,"props":33022,"children":33023},{},[33024,33029],{"type":21,"tag":16802,"props":33025,"children":33026},{},[33027],{"type":31,"value":33028},"Belief propagation plus ordered statistics (BP-OSD).",{"type":31,"value":33030}," This is what you reach for when the matching trick stops working, which is exactly what happens with quantum LDPC codes.",{"type":21,"tag":41,"props":33032,"children":33034},{"id":33033},"why-qldpc-decoding-is-genuinely-harder",[33035],{"type":31,"value":33036},"Why qLDPC decoding is genuinely harder",{"type":21,"tag":22,"props":33038,"children":33039},{},[33040],{"type":31,"value":33041},"The surface code's decoding advantage comes from a property most codes don't share: each error chain flips precisely two checks, so the syndrome maps onto a matching problem. Take that away and you're back to general belief propagation over a Tanner graph: the same message-passing machinery used for classical LDPC codes in modern telecoms.",{"type":21,"tag":22,"props":33043,"children":33044},{},[33045],{"type":31,"value":33046},"Except it works worse in the quantum case, for two structural reasons.",{"type":21,"tag":22,"props":33048,"children":33049},{},[33050,33052,33057],{"type":31,"value":33051},"First, ",{"type":21,"tag":16802,"props":33053,"children":33054},{},[33055],{"type":31,"value":33056},"short cycles",{"type":31,"value":33058},". Belief propagation assumes the graph is locally tree-like. The loops in quantum code Tanner graphs break that assumption and hurt convergence.",{"type":21,"tag":22,"props":33060,"children":33061},{},[33062,33064,33069,33071,33076],{"type":31,"value":33063},"Second, and more fundamentally, ",{"type":21,"tag":16802,"props":33065,"children":33066},{},[33067],{"type":31,"value":33068},"degeneracy",{"type":31,"value":33070},". In a quantum code, genuinely different physical error patterns are sometimes ",{"type":21,"tag":12756,"props":33072,"children":33073},{},[33074],{"type":31,"value":33075},"equivalent",{"type":31,"value":33077},": they differ by a stabilizer and therefore have identical syndromes and identical effects on the logical state. Classically, this doesn't happen. Each syndrome points toward one most likely error. Quantum mechanically, belief propagation gets stuck oscillating between equally valid candidates it has no basis to choose between. It's not that the decoder can't find the answer. It's that there are several answers and the algorithm's tie-breaking machinery wasn't designed for that.",{"type":21,"tag":22,"props":33079,"children":33080},{},[33081],{"type":31,"value":33082},"The standard fix is to bolt ordered statistics decoding onto the back: when BP fails to converge, OSD solves a linear system to pick a candidate. It works, and it costs you. Plain BP scales roughly linearly in code size. The OSD post-processing step is around O(N³). For a decoder on a microsecond budget, cubic scaling is precisely the wrong shape.",{"type":21,"tag":22,"props":33084,"children":33085},{},[33086],{"type":31,"value":33087},"So qLDPC codes present the field with an awkward bargain: better codes, worse decoders.",{"type":21,"tag":41,"props":33089,"children":33091},{"id":33090},"why-anyone-puts-up-with-it",[33092],{"type":31,"value":33093},"Why anyone puts up with it",{"type":21,"tag":22,"props":33095,"children":33096},{},[33097,33099,33103],{"type":31,"value":33098},"Because the encoding rate is dramatically better. Surface codes are extravagant: the ",{"type":21,"tag":26,"props":33100,"children":33101},{"href":15857},[33102],{"type":31,"value":21189},{"type":31,"value":33104}," runs to hundreds or thousands of physical qubits each, and the fault-tolerance estimates that produce headline figures of millions of physical qubits are mostly surface-code estimates. qLDPC codes, including the bivariate bicycle family, promise far more logical qubits per physical qubit. If that holds up, it moves the timeline for useful fault tolerance by a large margin. That is a prize worth accepting a harder decoding problem for.",{"type":21,"tag":22,"props":33106,"children":33107},{},[33108],{"type":31,"value":33109},"This is where vendors have entered the picture, and where the claims need careful handling.",{"type":21,"tag":22,"props":33111,"children":33112},{},[33113,33118,33120,33125,33127,33132,33134,33139],{"type":21,"tag":16802,"props":33114,"children":33115},{},[33116],{"type":31,"value":33117},"IonQ reports",{"type":31,"value":33119}," having developed a \"Beam Search\" decoder intended to replace BP-OSD for quantum LDPC codes. On bivariate bicycle codes, ",{"type":21,"tag":16802,"props":33121,"children":33122},{},[33123],{"type":31,"value":33124},"IonQ claims",{"type":31,"value":33126}," a 17x reduction in logical error rate relative to standard BP-OSD, along with a 26x reduction in worst-case (99.9th percentile) runtime, which ",{"type":21,"tag":16802,"props":33128,"children":33129},{},[33130],{"type":31,"value":33131},"IonQ states",{"type":31,"value":33133}," it brought under one millisecond on a single core of a commercial CPU. ",{"type":21,"tag":16802,"props":33135,"children":33136},{},[33137],{"type":31,"value":33138},"IonQ further estimates",{"type":31,"value":33140}," that three 32-core CPUs would suffice to decode 1,000 logical qubits in its trapped-ion architecture, contrasting that with roughly 1,000 FPGAs for surface-code approaches and 84 FPGAs for superconducting LDPC implementations.",{"type":21,"tag":22,"props":33142,"children":33143},{},[33144,33146,33151],{"type":31,"value":33145},"Those are vendor-reported figures, measured under vendor-chosen conditions, on vendor-selected codes and noise models, and IonQ is a hardware company with a commercial interest in the conclusion that its architecture needs less classical support than its competitors'. The direction of the work is credible and the problem is real. The particular multipliers should be treated as claims pending independent reproduction, in the same way we'd treat any ",{"type":21,"tag":26,"props":33147,"children":33148},{"href":19115},[33149],{"type":31,"value":33150},"benchmark",{"type":31,"value":33152}," that hasn't been replicated by a disinterested party.",{"type":21,"tag":41,"props":33154,"children":33156},{"id":33155},"why-you-cant-simply-pick-the-fast-decoder",[33157],{"type":31,"value":33158},"Why you can't simply pick the fast decoder",{"type":21,"tag":22,"props":33160,"children":33161},{},[33162],{"type":31,"value":33163},"The obvious response to a latency problem is to accept a worse answer faster. In decoding, that instinct is sometimes fatal.",{"type":21,"tag":22,"props":33165,"children":33166},{},[33167,33169,33174,33176,33181,33183,33188,33190,33194],{"type":31,"value":33168},"A less accurate decoder produces a higher logical error rate for the same physical error rate. And the logical error rate is exactly the quantity the threshold theorem is about. ",{"type":21,"tag":26,"props":33170,"children":33171},{"href":25689},[33172],{"type":31,"value":33173},"Google's 2024 below-threshold result",{"type":31,"value":33175}," (the first experimental demonstration that increasing code distance suppresses logical errors rather than amplifying them, descending from ",{"type":21,"tag":26,"props":33177,"children":33178},{"href":30888},[33179],{"type":31,"value":33180},"Kitaev's topological codes",{"type":31,"value":33182}," and ultimately ",{"type":21,"tag":26,"props":33184,"children":33185},{"href":30875},[33186],{"type":31,"value":33187},"Shor's original 1995 code",{"type":31,"value":33189},") was a narrow win. Each distance increase roughly halved the error rate. A decoder that degrades logical ",{"type":21,"tag":26,"props":33191,"children":33192},{"href":18181},[33193],{"type":31,"value":13086},{"type":31,"value":33195}," enough eats that margin entirely and puts you back above threshold, at which point adding qubits makes things worse and the whole exercise inverts.",{"type":21,"tag":22,"props":33197,"children":33198},{},[33199],{"type":31,"value":33200},"So the decoder isn't a peripheral. It sits inside the threshold calculation. You cannot report a threshold crossing without saying which decoder produced it, and a below-threshold result obtained with an offline MWPM decoder is a weaker claim than the identical result obtained in real time. Notably, Google's experiment did decode in real time, reporting average decoder latency around 63 µs at distance 5 while sustaining below-threshold performance across up to a million cycles, using an ensemble of neural-network and matching approaches rather than a single clean algorithm.",{"type":21,"tag":41,"props":33202,"children":33204},{"id":33203},"where-the-decoder-physically-lives",[33205],{"type":31,"value":33206},"Where the decoder physically lives",{"type":21,"tag":22,"props":33208,"children":33209},{},[33210,33212,33217],{"type":31,"value":33211},"The last constraint is a plumbing one. Syndrome bits have to travel from the ",{"type":21,"tag":26,"props":33213,"children":33215},{"href":33214},"\u002Fglossary\u002Fqpu",[33216],{"type":31,"value":30717},{"type":31,"value":33218}," to whatever computes on them, and the answer has to travel back, inside the error-correction cycle time.",{"type":21,"tag":22,"props":33220,"children":33221},{},[33222],{"type":31,"value":33223},"That budget covers readout, digitisation, transmission over the classical link, the decode itself, and the return trip. On superconducting hardware the qubits sit in a dilution refrigerator and the classical processor generally doesn't, so the link crosses a temperature boundary. Implementations split roughly three ways: software decoders on CPUs or GPUs (flexible and straightforward to iterate on, but carrying OS-level latency jitter), FPGA decoders (the current sweet spot for real-time surface-code work), and ASICs (fastest, but freezing your algorithm into silicon in a field where decoding algorithms are still actively improving).",{"type":21,"tag":22,"props":33225,"children":33226},{},[33227,33229,33234,33236,33241],{"type":31,"value":33228},"Slower gate speeds change the maths considerably. Trapped-ion systems operate on microsecond-to-millisecond gate timescales rather than nanoseconds, which relaxes the per-round decoding deadline by orders of magnitude. Part of why a sub-millisecond software decoder is a plausible proposition in that setting and not in a superconducting one. This is another place where ",{"type":21,"tag":26,"props":33230,"children":33231},{"href":19066},[33232],{"type":31,"value":33233},"modality differences",{"type":31,"value":33235}," drive architecture rather than being incidental, and it's visible in the ",{"type":21,"tag":26,"props":33237,"children":33238},{"href":21932},[33239],{"type":31,"value":33240},"hardware landscape",{"type":31,"value":33242}," if you know to appear for it.",{"type":21,"tag":41,"props":33244,"children":33246},{"id":33245},"the-honest-state-of-things",[33247],{"type":31,"value":33248},"The honest state of things",{"type":21,"tag":22,"props":33250,"children":33251},{},[33252],{"type":31,"value":33253},"Real-time decoding is not solved. It is an active, competitive, genuinely open engineering problem, and it scales in an uncomfortable direction: more logical qubits means more syndrome streams, and the classical side has to grow with the quantum side.",{"type":21,"tag":22,"props":33255,"children":33256},{},[33257],{"type":31,"value":33258},"What makes it worth understanding is what it reveals about the shape of the machine. A fault-tolerant quantum computer is not a QPU with a control rack attached. It is a quantum processor and a substantial classical real-time computing system operating as one device, where the classical half's throughput is a hard constraint on whether the quantum half works at all. The decoder is not support equipment. It is part of the computer.",{"type":21,"tag":22,"props":33260,"children":33261},{},[33262,33264,33269],{"type":31,"value":33263},"That framing also explains why progress here is slower to make headlines than qubit counts. There is no satisfying number to announce. But if you're tracking whether fault tolerance is arriving, decoder latency and accuracy under real-time conditions are among the more informative things to watch, more so than most of what appears in ",{"type":21,"tag":26,"props":33265,"children":33266},{"href":32239},[33267],{"type":31,"value":33268},"quantum news",{"type":31,"value":6665},{"type":21,"tag":22,"props":33271,"children":33272},{},[33273,33275,33279,33281,33285,33287,33291,33293,33298,33300,33306,33308,33313],{"type":31,"value":33274},"None of this is a reason to wait. The concepts underneath (noise, ",{"type":21,"tag":26,"props":33276,"children":33277},{"href":4143},[33278],{"type":31,"value":30758},{"type":31,"value":33280},", what a ",{"type":21,"tag":26,"props":33282,"children":33283},{"href":3051},[33284],{"type":31,"value":24476},{"type":31,"value":33286}," does under measurement) are the same ones you'd work with on a fault-tolerant machine, and you build that intuition now on ",{"type":21,"tag":26,"props":33288,"children":33289},{"href":3292},[33290],{"type":31,"value":31110},{"type":31,"value":33292},". The ",{"type":21,"tag":26,"props":33294,"children":33295},{"href":32810},[33296],{"type":31,"value":33297},"research library",{"type":31,"value":33299}," has the primary sources, ",{"type":21,"tag":26,"props":33301,"children":33303},{"href":33302},"\u002Fglossary\u002Fsyndrome-decoding",[33304],{"type":31,"value":33305},"syndrome decoding",{"type":31,"value":33307}," has the compact definition, and if you want to see what problems this infrastructure is ultimately being built for, the ",{"type":21,"tag":26,"props":33309,"children":33310},{"href":16291},[33311],{"type":31,"value":33312},"use cases page",{"type":31,"value":33314}," is the place to begin.",{"title":7,"searchDepth":168,"depth":168,"links":33316},[33317,33318,33319,33320,33321,33322,33323,33324],{"id":32869,"depth":168,"text":32872},{"id":32923,"depth":168,"text":32926},{"id":32992,"depth":168,"text":32995},{"id":33033,"depth":168,"text":33036},{"id":33090,"depth":168,"text":33093},{"id":33155,"depth":168,"text":33158},{"id":33203,"depth":168,"text":33206},{"id":33245,"depth":168,"text":33248},"content:blog:quantum-error-decoding-bottleneck.md","blog\u002Fquantum-error-decoding-bottleneck.md","blog\u002Fquantum-error-decoding-bottleneck",{"_path":18016,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":33329,"description":33330,"date":25047,"author":11,"tags":33331,"readingTime":361,"body":33332,"_type":1187,"_id":35563,"_source":1189,"_file":35564,"_stem":35565,"_extension":1192},"The Quantum Fourier Transform: Build It Yourself in Qiskit","A hands-on tutorial that builds the QFT gate by gate in Qiskit, verifies it against the library implementation, and explains why an exponentially faster Fourier transform gives you no speedup on its own.",[13,14,15],{"type":18,"children":33333,"toc":35552},[33334,33346,33351,33359,33365,33377,33382,33390,33418,33429,33435,33447,33452,33475,33487,33493,33498,33549,33566,33572,33583,33611,33616,34179,34184,34192,34197,34203,34215,34395,34399,34407,34427,34433,34444,34782,34786,34794,34806,34811,34985,34989,34997,35002,35008,35031,35041,35066,35071,35077,35089,35393,35398,35489,35500,35504,35543,35548],{"type":21,"tag":22,"props":33335,"children":33336},{},[33337,33338,33344],{"type":31,"value":11026},{"type":21,"tag":26,"props":33339,"children":33341},{"href":33340},"\u002Fglossary\u002Fqft",[33342],{"type":31,"value":33343},"Quantum Fourier Transform",{"type":31,"value":33345}," is the single most significant subroutine in quantum computing. It's the engine inside Shor's factoring algorithm, quantum phase estimation, and order finding. It's also the most commonly misunderstood algorithm in the field, because on paper it looks like an exponentially faster FFT, and it absolutely is not.",{"type":21,"tag":22,"props":33347,"children":33348},{},[33349],{"type":31,"value":33350},"This tutorial builds the QFT from scratch in Qiskit, proves the implementation is correct against Qiskit's own, and then explains carefully where the speedup goes.",{"type":21,"tag":22,"props":33352,"children":33353},{},[33354],{"type":21,"tag":16802,"props":33355,"children":33356},{},[33357],{"type":31,"value":33358},"All code in this post was executed against Qiskit 2.5.0 and Qiskit Aer 0.17.2 on Python 3.11. The outputs shown are real.",{"type":21,"tag":41,"props":33360,"children":33362},{"id":33361},"what-the-qft-does",[33363],{"type":31,"value":33364},"What the QFT does",{"type":21,"tag":22,"props":33366,"children":33367},{},[33368,33370,33375],{"type":31,"value":33369},"The classical Discrete Fourier Transform takes a vector of N numbers and returns N Fourier coefficients. The QFT does exactly the same linear map, but the input vector is the ",{"type":21,"tag":12756,"props":33371,"children":33372},{},[33373],{"type":31,"value":33374},"amplitude vector",{"type":31,"value":33376}," of an n-qubit state, so N = 2ⁿ.",{"type":21,"tag":22,"props":33378,"children":33379},{},[33380],{"type":31,"value":33381},"On basis states it acts as:",{"type":21,"tag":129,"props":33383,"children":33385},{"code":33384},"QFT |x⟩ = (1\u002F√N) Σ_{k=0}^{N-1} e^{2πi·xk\u002FN} |k⟩\n",[33386],{"type":21,"tag":104,"props":33387,"children":33388},{"__ignoreMap":7},[33389],{"type":31,"value":33384},{"type":21,"tag":22,"props":33391,"children":33392},{},[33393,33395,33400,33402,33408,33410,33416],{"type":31,"value":33394},"Notice what's on the right: every basis state gets amplitude of the ",{"type":21,"tag":12756,"props":33396,"children":33397},{},[33398],{"type":31,"value":33399},"same magnitude",{"type":31,"value":33401}," (1\u002F√N), and all the information about ",{"type":21,"tag":104,"props":33403,"children":33405},{"className":33404},[],[33406],{"type":31,"value":33407},"x",{"type":31,"value":33409}," lives in the complex phase ",{"type":21,"tag":104,"props":33411,"children":33413},{"className":33412},[],[33414],{"type":31,"value":33415},"e^{2πi·xk\u002FN}",{"type":31,"value":33417},". The QFT takes information that was sitting in the computational basis and pushes it into the phases.",{"type":21,"tag":22,"props":33419,"children":33420},{},[33421,33423,33427],{"type":31,"value":33422},"That single fact is the whole story of the QFT. It's a perfectly uniform state, as far as any ",{"type":21,"tag":26,"props":33424,"children":33425},{"href":14867},[33426],{"type":31,"value":32906},{"type":31,"value":33428}," in the computational basis is concerned. If you QFT a basis state and measure, you get a uniformly random n-bit string. Every time. You learn nothing.",{"type":21,"tag":41,"props":33430,"children":33432},{"id":33431},"the-readout-problem-stated-plainly",[33433],{"type":31,"value":33434},"The readout problem, stated plainly",{"type":21,"tag":22,"props":33436,"children":33437},{},[33438,33440,33445],{"type":31,"value":33439},"Here's the trap. The QFT on n qubits takes O(n²) gates. Classically, an FFT on the same 2ⁿ amplitudes takes O(n·2ⁿ) operations. That is a genuine exponential gap in ",{"type":21,"tag":12756,"props":33441,"children":33442},{},[33443],{"type":31,"value":33444},"gate count",{"type":31,"value":33446},", and it's the number everybody quotes.",{"type":21,"tag":22,"props":33448,"children":33449},{},[33450],{"type":31,"value":33451},"But it isn't a usable speedup, for two reasons:",{"type":21,"tag":68,"props":33453,"children":33454},{},[33455,33465],{"type":21,"tag":72,"props":33456,"children":33457},{},[33458,33463],{"type":21,"tag":16802,"props":33459,"children":33460},{},[33461],{"type":31,"value":33462},"You can't load the input.",{"type":31,"value":33464}," Getting 2ⁿ arbitrary classical amplitudes into a quantum register generally costs O(2ⁿ) gates, wiping out the advantage before you start.",{"type":21,"tag":72,"props":33466,"children":33467},{},[33468,33473],{"type":21,"tag":16802,"props":33469,"children":33470},{},[33471],{"type":31,"value":33472},"You can't read the output.",{"type":31,"value":33474}," The Fourier coefficients are amplitudes. You cannot look at amplitudes. You only sample from their squared magnitudes, one n-bit string per shot. Extracting all 2ⁿ coefficients would take exponentially many repetitions.",{"type":21,"tag":22,"props":33476,"children":33477},{},[33478,33480,33485],{"type":31,"value":33479},"So the QFT is never a drop-in replacement for the FFT. It is a ",{"type":21,"tag":12756,"props":33481,"children":33482},{},[33483],{"type":31,"value":33484},"transform you apply in the middle of a larger circuit",{"type":31,"value":33486},", where the goal isn't to read the spectrum but to convert a periodicity that was hidden in phases into a peak you sample directly. That's the shape every real application takes.",{"type":21,"tag":41,"props":33488,"children":33490},{"id":33489},"the-circuit-hadamard-rotate-recurse-swap",[33491],{"type":31,"value":33492},"The circuit: Hadamard, rotate, recurse, swap",{"type":21,"tag":22,"props":33494,"children":33495},{},[33496],{"type":31,"value":33497},"The construction follows directly from factoring the exponential above into a product over qubits. For the most significant qubit:",{"type":21,"tag":68,"props":33499,"children":33500},{},[33501,33518,33539,33544],{"type":21,"tag":72,"props":33502,"children":33503},{},[33504,33505,33510,33512,33516],{"type":31,"value":29103},{"type":21,"tag":26,"props":33506,"children":33507},{"href":3083},[33508],{"type":31,"value":33509},"Hadamard",{"type":31,"value":33511},". This creates a ",{"type":21,"tag":26,"props":33513,"children":33514},{"href":3070},[33515],{"type":31,"value":30686},{"type":31,"value":33517}," whose relative phase encodes one bit of the input.",{"type":21,"tag":72,"props":33519,"children":33520},{},[33521,33523,33529,33531,33537],{"type":31,"value":33522},"Apply controlled-phase gates ",{"type":21,"tag":104,"props":33524,"children":33526},{"className":33525},[],[33527],{"type":31,"value":33528},"CP(π\u002F2^k)",{"type":31,"value":33530}," from each less significant qubit, controlled onto that same qubit. Qubit distance ",{"type":21,"tag":104,"props":33532,"children":33534},{"className":33533},[],[33535],{"type":31,"value":33536},"k",{"type":31,"value":33538}," contributes a rotation of π\u002F2^k: the further away, the smaller the correction.",{"type":21,"tag":72,"props":33540,"children":33541},{},[33542],{"type":31,"value":33543},"Recurse on the remaining n−1 qubits.",{"type":21,"tag":72,"props":33545,"children":33546},{},[33547],{"type":31,"value":33548},"Swap the qubit order at the end.",{"type":21,"tag":22,"props":33550,"children":33551},{},[33552,33557,33559,33564],{"type":21,"tag":16802,"props":33553,"children":33554},{},[33555],{"type":31,"value":33556},"Why the swaps?",{"type":31,"value":33558}," The recursion naturally produces the output register in reverse bit order. Qubit 0 ends up holding what should be the most significant output bit, and vice versa. This is a real bug, not a bookkeeping convention. If you feed an unswapped QFT into phase estimation you obtain a bit-reversed answer. The swaps fix it. (In hardware-aware compilation you sometimes ",{"type":21,"tag":12756,"props":33560,"children":33561},{},[33562],{"type":31,"value":33563},"do",{"type":31,"value":33565}," drop the swaps and relabel the wires downstream instead, which is free. But if your QFT is a standalone reusable block, keep them.)",{"type":21,"tag":41,"props":33567,"children":33569},{"id":33568},"building-it-in-qiskit",[33570],{"type":31,"value":33571},"Building it in Qiskit",{"type":21,"tag":22,"props":33573,"children":33574},{},[33575,33577,33581],{"type":31,"value":33576},"Make sure you have ",{"type":21,"tag":26,"props":33578,"children":33579},{"href":1120},[33580],{"type":31,"value":14},{"type":31,"value":33582}," and the Aer simulator installed:",{"type":21,"tag":129,"props":33584,"children":33586},{"code":33585,"language":4498,"meta":7,"className":4499,"style":7},"pip install qiskit qiskit-aer\n",[33587],{"type":21,"tag":104,"props":33588,"children":33589},{"__ignoreMap":7},[33590],{"type":21,"tag":139,"props":33591,"children":33592},{"class":141,"line":142},[33593,33597,33601,33606],{"type":21,"tag":139,"props":33594,"children":33595},{"style":4509},[33596],{"type":31,"value":4512},{"type":21,"tag":139,"props":33598,"children":33599},{"style":262},[33600],{"type":31,"value":4517},{"type":21,"tag":139,"props":33602,"children":33603},{"style":262},[33604],{"type":31,"value":33605}," qiskit",{"type":21,"tag":139,"props":33607,"children":33608},{"style":262},[33609],{"type":31,"value":33610}," qiskit-aer\n",{"type":21,"tag":22,"props":33612,"children":33613},{},[33614],{"type":31,"value":33615},"Now the construction, written recursively so it mirrors the math:",{"type":21,"tag":129,"props":33617,"children":33619},{"code":33618,"language":133,"meta":7,"className":131,"style":7},"import numpy as np\nfrom qiskit import QuantumCircuit, transpile\nfrom qiskit.quantum_info import Statevector, Operator\nfrom qiskit_aer import AerSimulator\n\n\ndef qft_rotations(circuit, n):\n    \"\"\"Hadamard + controlled phases on the top qubit, then recurse.\"\"\"\n    if n == 0:\n        return circuit\n    n -= 1                      # index of the most significant qubit\n    circuit.h(n)\n    for qubit in range(n):\n        # qubit is (n - qubit) positions below the target\n        circuit.cp(np.pi \u002F 2 ** (n - qubit), qubit, n)\n    qft_rotations(circuit, n)   # recurse on the rest\n    return circuit\n\n\ndef swap_registers(circuit, n):\n    \"\"\"Reverse the qubit order to undo the bit reversal.\"\"\"\n    for qubit in range(n \u002F\u002F 2):\n        circuit.swap(qubit, n - qubit - 1)\n    return circuit\n\n\ndef qft(n):\n    qc = QuantumCircuit(n, name=\"QFT\")\n    qft_rotations(qc, n)\n    swap_registers(qc, n)\n    return qc\n\n\nmy_qft = qft(4)\nprint(my_qft.draw(output=\"text\"))\nprint(my_qft.count_ops())\n",[33620],{"type":21,"tag":104,"props":33621,"children":33622},{"__ignoreMap":7},[33623,33642,33661,33681,33700,33707,33714,33731,33739,33764,33777,33799,33807,33831,33839,33873,33886,33897,33904,33911,33927,33935,33970,33998,34009,34016,34023,34039,34071,34079,34087,34098,34105,34112,34137,34167],{"type":21,"tag":139,"props":33624,"children":33625},{"class":141,"line":142},[33626,33630,33634,33638],{"type":21,"tag":139,"props":33627,"children":33628},{"style":146},[33629],{"type":31,"value":160},{"type":21,"tag":139,"props":33631,"children":33632},{"style":152},[33633],{"type":31,"value":8517},{"type":21,"tag":139,"props":33635,"children":33636},{"style":146},[33637],{"type":31,"value":5343},{"type":21,"tag":139,"props":33639,"children":33640},{"style":152},[33641],{"type":31,"value":8619},{"type":21,"tag":139,"props":33643,"children":33644},{"class":141,"line":168},[33645,33649,33653,33657],{"type":21,"tag":139,"props":33646,"children":33647},{"style":146},[33648],{"type":31,"value":149},{"type":21,"tag":139,"props":33650,"children":33651},{"style":152},[33652],{"type":31,"value":155},{"type":21,"tag":139,"props":33654,"children":33655},{"style":146},[33656],{"type":31,"value":160},{"type":21,"tag":139,"props":33658,"children":33659},{"style":152},[33660],{"type":31,"value":20056},{"type":21,"tag":139,"props":33662,"children":33663},{"class":141,"line":190},[33664,33668,33672,33676],{"type":21,"tag":139,"props":33665,"children":33666},{"style":146},[33667],{"type":31,"value":149},{"type":21,"tag":139,"props":33669,"children":33670},{"style":152},[33671],{"type":31,"value":17504},{"type":21,"tag":139,"props":33673,"children":33674},{"style":146},[33675],{"type":31,"value":160},{"type":21,"tag":139,"props":33677,"children":33678},{"style":152},[33679],{"type":31,"value":33680}," Statevector, Operator\n",{"type":21,"tag":139,"props":33682,"children":33683},{"class":141,"line":200},[33684,33688,33692,33696],{"type":21,"tag":139,"props":33685,"children":33686},{"style":146},[33687],{"type":31,"value":149},{"type":21,"tag":139,"props":33689,"children":33690},{"style":152},[33691],{"type":31,"value":178},{"type":21,"tag":139,"props":33693,"children":33694},{"style":146},[33695],{"type":31,"value":160},{"type":21,"tag":139,"props":33697,"children":33698},{"style":152},[33699],{"type":31,"value":187},{"type":21,"tag":139,"props":33701,"children":33702},{"class":141,"line":226},[33703],{"type":21,"tag":139,"props":33704,"children":33705},{"emptyLinePlaceholder":194},[33706],{"type":31,"value":197},{"type":21,"tag":139,"props":33708,"children":33709},{"class":141,"line":234},[33710],{"type":21,"tag":139,"props":33711,"children":33712},{"emptyLinePlaceholder":194},[33713],{"type":31,"value":197},{"type":21,"tag":139,"props":33715,"children":33716},{"class":141,"line":273},[33717,33721,33726],{"type":21,"tag":139,"props":33718,"children":33719},{"style":146},[33720],{"type":31,"value":5487},{"type":21,"tag":139,"props":33722,"children":33723},{"style":4509},[33724],{"type":31,"value":33725}," qft_rotations",{"type":21,"tag":139,"props":33727,"children":33728},{"style":152},[33729],{"type":31,"value":33730},"(circuit, n):\n",{"type":21,"tag":139,"props":33732,"children":33733},{"class":141,"line":309},[33734],{"type":21,"tag":139,"props":33735,"children":33736},{"style":262},[33737],{"type":31,"value":33738},"    \"\"\"Hadamard + controlled phases on the top qubit, then recurse.\"\"\"\n",{"type":21,"tag":139,"props":33740,"children":33741},{"class":141,"line":16},[33742,33746,33751,33755,33760],{"type":21,"tag":139,"props":33743,"children":33744},{"style":146},[33745],{"type":31,"value":19523},{"type":21,"tag":139,"props":33747,"children":33748},{"style":152},[33749],{"type":31,"value":33750}," n ",{"type":21,"tag":139,"props":33752,"children":33753},{"style":146},[33754],{"type":31,"value":7335},{"type":21,"tag":139,"props":33756,"children":33757},{"style":214},[33758],{"type":31,"value":33759}," 0",{"type":21,"tag":139,"props":33761,"children":33762},{"style":152},[33763],{"type":31,"value":26809},{"type":21,"tag":139,"props":33765,"children":33766},{"class":141,"line":361},[33767,33772],{"type":21,"tag":139,"props":33768,"children":33769},{"style":146},[33770],{"type":31,"value":33771},"        return",{"type":21,"tag":139,"props":33773,"children":33774},{"style":152},[33775],{"type":31,"value":33776}," circuit\n",{"type":21,"tag":139,"props":33778,"children":33779},{"class":141,"line":369},[33780,33785,33790,33794],{"type":21,"tag":139,"props":33781,"children":33782},{"style":152},[33783],{"type":31,"value":33784},"    n ",{"type":21,"tag":139,"props":33786,"children":33787},{"style":146},[33788],{"type":31,"value":33789},"-=",{"type":21,"tag":139,"props":33791,"children":33792},{"style":214},[33793],{"type":31,"value":17050},{"type":21,"tag":139,"props":33795,"children":33796},{"style":220},[33797],{"type":31,"value":33798},"                      # index of the most significant qubit\n",{"type":21,"tag":139,"props":33800,"children":33801},{"class":141,"line":378},[33802],{"type":21,"tag":139,"props":33803,"children":33804},{"style":152},[33805],{"type":31,"value":33806},"    circuit.h(n)\n",{"type":21,"tag":139,"props":33808,"children":33809},{"class":141,"line":387},[33810,33814,33819,33823,33827],{"type":21,"tag":139,"props":33811,"children":33812},{"style":146},[33813],{"type":31,"value":17024},{"type":21,"tag":139,"props":33815,"children":33816},{"style":152},[33817],{"type":31,"value":33818}," qubit ",{"type":21,"tag":139,"props":33820,"children":33821},{"style":146},[33822],{"type":31,"value":1496},{"type":21,"tag":139,"props":33824,"children":33825},{"style":214},[33826],{"type":31,"value":7417},{"type":21,"tag":139,"props":33828,"children":33829},{"style":152},[33830],{"type":31,"value":29684},{"type":21,"tag":139,"props":33832,"children":33833},{"class":141,"line":396},[33834],{"type":21,"tag":139,"props":33835,"children":33836},{"style":220},[33837],{"type":31,"value":33838},"        # qubit is (n - qubit) positions below the target\n",{"type":21,"tag":139,"props":33840,"children":33841},{"class":141,"line":414},[33842,33847,33851,33855,33859,33864,33868],{"type":21,"tag":139,"props":33843,"children":33844},{"style":152},[33845],{"type":31,"value":33846},"        circuit.cp(np.pi ",{"type":21,"tag":139,"props":33848,"children":33849},{"style":146},[33850],{"type":31,"value":5062},{"type":21,"tag":139,"props":33852,"children":33853},{"style":214},[33854],{"type":31,"value":21021},{"type":21,"tag":139,"props":33856,"children":33857},{"style":146},[33858],{"type":31,"value":20596},{"type":21,"tag":139,"props":33860,"children":33861},{"style":152},[33862],{"type":31,"value":33863}," (n ",{"type":21,"tag":139,"props":33865,"children":33866},{"style":146},[33867],{"type":31,"value":825},{"type":21,"tag":139,"props":33869,"children":33870},{"style":152},[33871],{"type":31,"value":33872}," qubit), qubit, n)\n",{"type":21,"tag":139,"props":33874,"children":33875},{"class":141,"line":12589},[33876,33881],{"type":21,"tag":139,"props":33877,"children":33878},{"style":152},[33879],{"type":31,"value":33880},"    qft_rotations(circuit, n)   ",{"type":21,"tag":139,"props":33882,"children":33883},{"style":220},[33884],{"type":31,"value":33885},"# recurse on the rest\n",{"type":21,"tag":139,"props":33887,"children":33888},{"class":141,"line":12606},[33889,33893],{"type":21,"tag":139,"props":33890,"children":33891},{"style":146},[33892],{"type":31,"value":5582},{"type":21,"tag":139,"props":33894,"children":33895},{"style":152},[33896],{"type":31,"value":33776},{"type":21,"tag":139,"props":33898,"children":33899},{"class":141,"line":12622},[33900],{"type":21,"tag":139,"props":33901,"children":33902},{"emptyLinePlaceholder":194},[33903],{"type":31,"value":197},{"type":21,"tag":139,"props":33905,"children":33906},{"class":141,"line":12630},[33907],{"type":21,"tag":139,"props":33908,"children":33909},{"emptyLinePlaceholder":194},[33910],{"type":31,"value":197},{"type":21,"tag":139,"props":33912,"children":33913},{"class":141,"line":17747},[33914,33918,33923],{"type":21,"tag":139,"props":33915,"children":33916},{"style":146},[33917],{"type":31,"value":5487},{"type":21,"tag":139,"props":33919,"children":33920},{"style":4509},[33921],{"type":31,"value":33922}," swap_registers",{"type":21,"tag":139,"props":33924,"children":33925},{"style":152},[33926],{"type":31,"value":33730},{"type":21,"tag":139,"props":33928,"children":33929},{"class":141,"line":17765},[33930],{"type":21,"tag":139,"props":33931,"children":33932},{"style":262},[33933],{"type":31,"value":33934},"    \"\"\"Reverse the qubit order to undo the bit reversal.\"\"\"\n",{"type":21,"tag":139,"props":33936,"children":33937},{"class":141,"line":17790},[33938,33942,33946,33950,33954,33958,33962,33966],{"type":21,"tag":139,"props":33939,"children":33940},{"style":146},[33941],{"type":31,"value":17024},{"type":21,"tag":139,"props":33943,"children":33944},{"style":152},[33945],{"type":31,"value":33818},{"type":21,"tag":139,"props":33947,"children":33948},{"style":146},[33949],{"type":31,"value":1496},{"type":21,"tag":139,"props":33951,"children":33952},{"style":214},[33953],{"type":31,"value":7417},{"type":21,"tag":139,"props":33955,"children":33956},{"style":152},[33957],{"type":31,"value":17041},{"type":21,"tag":139,"props":33959,"children":33960},{"style":146},[33961],{"type":31,"value":21016},{"type":21,"tag":139,"props":33963,"children":33964},{"style":214},[33965],{"type":31,"value":21021},{"type":21,"tag":139,"props":33967,"children":33968},{"style":152},[33969],{"type":31,"value":7430},{"type":21,"tag":139,"props":33971,"children":33972},{"class":141,"line":17817},[33973,33978,33982,33986,33990,33994],{"type":21,"tag":139,"props":33974,"children":33975},{"style":152},[33976],{"type":31,"value":33977},"        circuit.swap(qubit, n ",{"type":21,"tag":139,"props":33979,"children":33980},{"style":146},[33981],{"type":31,"value":825},{"type":21,"tag":139,"props":33983,"children":33984},{"style":152},[33985],{"type":31,"value":33818},{"type":21,"tag":139,"props":33987,"children":33988},{"style":146},[33989],{"type":31,"value":825},{"type":21,"tag":139,"props":33991,"children":33992},{"style":214},[33993],{"type":31,"value":17050},{"type":21,"tag":139,"props":33995,"children":33996},{"style":152},[33997],{"type":31,"value":270},{"type":21,"tag":139,"props":33999,"children":34000},{"class":141,"line":17843},[34001,34005],{"type":21,"tag":139,"props":34002,"children":34003},{"style":146},[34004],{"type":31,"value":5582},{"type":21,"tag":139,"props":34006,"children":34007},{"style":152},[34008],{"type":31,"value":33776},{"type":21,"tag":139,"props":34010,"children":34011},{"class":141,"line":17852},[34012],{"type":21,"tag":139,"props":34013,"children":34014},{"emptyLinePlaceholder":194},[34015],{"type":31,"value":197},{"type":21,"tag":139,"props":34017,"children":34018},{"class":141,"line":17864},[34019],{"type":21,"tag":139,"props":34020,"children":34021},{"emptyLinePlaceholder":194},[34022],{"type":31,"value":197},{"type":21,"tag":139,"props":34024,"children":34025},{"class":141,"line":17872},[34026,34030,34035],{"type":21,"tag":139,"props":34027,"children":34028},{"style":146},[34029],{"type":31,"value":5487},{"type":21,"tag":139,"props":34031,"children":34032},{"style":4509},[34033],{"type":31,"value":34034}," qft",{"type":21,"tag":139,"props":34036,"children":34037},{"style":152},[34038],{"type":31,"value":29684},{"type":21,"tag":139,"props":34040,"children":34041},{"class":141,"line":17925},[34042,34046,34050,34054,34058,34062,34067],{"type":21,"tag":139,"props":34043,"children":34044},{"style":152},[34045],{"type":31,"value":17771},{"type":21,"tag":139,"props":34047,"children":34048},{"style":146},[34049],{"type":31,"value":211},{"type":21,"tag":139,"props":34051,"children":34052},{"style":152},[34053],{"type":31,"value":29352},{"type":21,"tag":139,"props":34055,"children":34056},{"style":923},[34057],{"type":31,"value":29357},{"type":21,"tag":139,"props":34059,"children":34060},{"style":146},[34061],{"type":31,"value":211},{"type":21,"tag":139,"props":34063,"children":34064},{"style":262},[34065],{"type":31,"value":34066},"\"QFT\"",{"type":21,"tag":139,"props":34068,"children":34069},{"style":152},[34070],{"type":31,"value":270},{"type":21,"tag":139,"props":34072,"children":34073},{"class":141,"line":26897},[34074],{"type":21,"tag":139,"props":34075,"children":34076},{"style":152},[34077],{"type":31,"value":34078},"    qft_rotations(qc, n)\n",{"type":21,"tag":139,"props":34080,"children":34081},{"class":141,"line":26942},[34082],{"type":21,"tag":139,"props":34083,"children":34084},{"style":152},[34085],{"type":31,"value":34086},"    swap_registers(qc, n)\n",{"type":21,"tag":139,"props":34088,"children":34089},{"class":141,"line":26955},[34090,34094],{"type":21,"tag":139,"props":34091,"children":34092},{"style":146},[34093],{"type":31,"value":5582},{"type":21,"tag":139,"props":34095,"children":34096},{"style":152},[34097],{"type":31,"value":17737},{"type":21,"tag":139,"props":34099,"children":34100},{"class":141,"line":26963},[34101],{"type":21,"tag":139,"props":34102,"children":34103},{"emptyLinePlaceholder":194},[34104],{"type":31,"value":197},{"type":21,"tag":139,"props":34106,"children":34107},{"class":141,"line":26979},[34108],{"type":21,"tag":139,"props":34109,"children":34110},{"emptyLinePlaceholder":194},[34111],{"type":31,"value":197},{"type":21,"tag":139,"props":34113,"children":34114},{"class":141,"line":26997},[34115,34120,34124,34129,34133],{"type":21,"tag":139,"props":34116,"children":34117},{"style":152},[34118],{"type":31,"value":34119},"my_qft ",{"type":21,"tag":139,"props":34121,"children":34122},{"style":146},[34123],{"type":31,"value":211},{"type":21,"tag":139,"props":34125,"children":34126},{"style":152},[34127],{"type":31,"value":34128}," qft(",{"type":21,"tag":139,"props":34130,"children":34131},{"style":214},[34132],{"type":31,"value":17918},{"type":21,"tag":139,"props":34134,"children":34135},{"style":152},[34136],{"type":31,"value":270},{"type":21,"tag":139,"props":34138,"children":34139},{"class":141,"line":27005},[34140,34144,34149,34154,34158,34163],{"type":21,"tag":139,"props":34141,"children":34142},{"style":214},[34143],{"type":31,"value":948},{"type":21,"tag":139,"props":34145,"children":34146},{"style":152},[34147],{"type":31,"value":34148},"(my_qft.draw(",{"type":21,"tag":139,"props":34150,"children":34151},{"style":923},[34152],{"type":31,"value":34153},"output",{"type":21,"tag":139,"props":34155,"children":34156},{"style":146},[34157],{"type":31,"value":211},{"type":21,"tag":139,"props":34159,"children":34160},{"style":262},[34161],{"type":31,"value":34162},"\"text\"",{"type":21,"tag":139,"props":34164,"children":34165},{"style":152},[34166],{"type":31,"value":5596},{"type":21,"tag":139,"props":34168,"children":34169},{"class":141,"line":27038},[34170,34174],{"type":21,"tag":139,"props":34171,"children":34172},{"style":214},[34173],{"type":31,"value":948},{"type":21,"tag":139,"props":34175,"children":34176},{"style":152},[34177],{"type":31,"value":34178},"(my_qft.count_ops())\n",{"type":21,"tag":22,"props":34180,"children":34181},{},[34182],{"type":31,"value":34183},"Real output:",{"type":21,"tag":129,"props":34185,"children":34187},{"code":34186},"                                                                          ┌───┐»\nq_0: ──────■───────────────────────────────■──────────────────────■───────┤ H ├»\n           │                               │                ┌───┐ │P(π\u002F2) └───┘»\nq_1: ──────┼────────■──────────────────────┼────────■───────┤ H ├─■─────────X──»\n           │        │                ┌───┐ │P(π\u002F4)  │P(π\u002F2) └───┘           │  »\nq_2: ──────┼────────┼────────■───────┤ H ├─■────────■───────────────────────X──»\n     ┌───┐ │P(π\u002F8)  │P(π\u002F4)  │P(π\u002F2) └───┘                                     »\nq_3: ┤ H ├─■────────■────────■─────────────────────────────────────────────────»\n     └───┘\n\nOrderedDict([('cp', 6), ('h', 4), ('swap', 2)])\n",[34188],{"type":21,"tag":104,"props":34189,"children":34190},{"__ignoreMap":7},[34191],{"type":31,"value":34186},{"type":21,"tag":22,"props":34193,"children":34194},{},[34195],{"type":31,"value":34196},"Four Hadamards, six controlled-phase gates, two swaps. That matches the count: n Hadamards and n(n−1)\u002F2 = 6 rotations. The angles descend π\u002F2, π\u002F4, π\u002F8 as the control qubit gets further from the target, exactly as expected.",{"type":21,"tag":41,"props":34198,"children":34200},{"id":34199},"proving-its-correct",[34201],{"type":31,"value":34202},"Proving it's correct",{"type":21,"tag":22,"props":34204,"children":34205},{},[34206,34208,34214],{"type":31,"value":34207},"Never trust a hand-built QFT. Compare the full unitary against Qiskit's ",{"type":21,"tag":104,"props":34209,"children":34211},{"className":34210},[],[34212],{"type":31,"value":34213},"QFTGate",{"type":31,"value":14627},{"type":21,"tag":129,"props":34216,"children":34218},{"code":34217,"language":133,"meta":7,"className":131,"style":7},"from qiskit.circuit.library import QFTGate\n\nn = 4\nmine = qft(n)\n\nreference = QuantumCircuit(n)\nreference.append(QFTGate(n), range(n))\n\na, b = Operator(mine), Operator(reference)\nprint(\"Equivalent:\", a.equiv(b))\nprint(\"Max element difference:\", np.abs(a.data - b.data).max())\n",[34219],{"type":21,"tag":104,"props":34220,"children":34221},{"__ignoreMap":7},[34222,34241,34248,34263,34280,34287,34304,34320,34327,34344,34365],{"type":21,"tag":139,"props":34223,"children":34224},{"class":141,"line":142},[34225,34229,34233,34237],{"type":21,"tag":139,"props":34226,"children":34227},{"style":146},[34228],{"type":31,"value":149},{"type":21,"tag":139,"props":34230,"children":34231},{"style":152},[34232],{"type":31,"value":12829},{"type":21,"tag":139,"props":34234,"children":34235},{"style":146},[34236],{"type":31,"value":160},{"type":21,"tag":139,"props":34238,"children":34239},{"style":152},[34240],{"type":31,"value":20076},{"type":21,"tag":139,"props":34242,"children":34243},{"class":141,"line":168},[34244],{"type":21,"tag":139,"props":34245,"children":34246},{"emptyLinePlaceholder":194},[34247],{"type":31,"value":197},{"type":21,"tag":139,"props":34249,"children":34250},{"class":141,"line":190},[34251,34255,34259],{"type":21,"tag":139,"props":34252,"children":34253},{"style":152},[34254],{"type":31,"value":19287},{"type":21,"tag":139,"props":34256,"children":34257},{"style":146},[34258],{"type":31,"value":211},{"type":21,"tag":139,"props":34260,"children":34261},{"style":214},[34262],{"type":31,"value":20985},{"type":21,"tag":139,"props":34264,"children":34265},{"class":141,"line":200},[34266,34271,34275],{"type":21,"tag":139,"props":34267,"children":34268},{"style":152},[34269],{"type":31,"value":34270},"mine ",{"type":21,"tag":139,"props":34272,"children":34273},{"style":146},[34274],{"type":31,"value":211},{"type":21,"tag":139,"props":34276,"children":34277},{"style":152},[34278],{"type":31,"value":34279}," qft(n)\n",{"type":21,"tag":139,"props":34281,"children":34282},{"class":141,"line":226},[34283],{"type":21,"tag":139,"props":34284,"children":34285},{"emptyLinePlaceholder":194},[34286],{"type":31,"value":197},{"type":21,"tag":139,"props":34288,"children":34289},{"class":141,"line":234},[34290,34295,34299],{"type":21,"tag":139,"props":34291,"children":34292},{"style":152},[34293],{"type":31,"value":34294},"reference ",{"type":21,"tag":139,"props":34296,"children":34297},{"style":146},[34298],{"type":31,"value":211},{"type":21,"tag":139,"props":34300,"children":34301},{"style":152},[34302],{"type":31,"value":34303}," QuantumCircuit(n)\n",{"type":21,"tag":139,"props":34305,"children":34306},{"class":141,"line":273},[34307,34312,34316],{"type":21,"tag":139,"props":34308,"children":34309},{"style":152},[34310],{"type":31,"value":34311},"reference.append(QFTGate(n), ",{"type":21,"tag":139,"props":34313,"children":34314},{"style":214},[34315],{"type":31,"value":17713},{"type":21,"tag":139,"props":34317,"children":34318},{"style":152},[34319],{"type":31,"value":26843},{"type":21,"tag":139,"props":34321,"children":34322},{"class":141,"line":309},[34323],{"type":21,"tag":139,"props":34324,"children":34325},{"emptyLinePlaceholder":194},[34326],{"type":31,"value":197},{"type":21,"tag":139,"props":34328,"children":34329},{"class":141,"line":16},[34330,34335,34339],{"type":21,"tag":139,"props":34331,"children":34332},{"style":152},[34333],{"type":31,"value":34334},"a, b ",{"type":21,"tag":139,"props":34336,"children":34337},{"style":146},[34338],{"type":31,"value":211},{"type":21,"tag":139,"props":34340,"children":34341},{"style":152},[34342],{"type":31,"value":34343}," Operator(mine), Operator(reference)\n",{"type":21,"tag":139,"props":34345,"children":34346},{"class":141,"line":361},[34347,34351,34355,34360],{"type":21,"tag":139,"props":34348,"children":34349},{"style":214},[34350],{"type":31,"value":948},{"type":21,"tag":139,"props":34352,"children":34353},{"style":152},[34354],{"type":31,"value":953},{"type":21,"tag":139,"props":34356,"children":34357},{"style":262},[34358],{"type":31,"value":34359},"\"Equivalent:\"",{"type":21,"tag":139,"props":34361,"children":34362},{"style":152},[34363],{"type":31,"value":34364},", a.equiv(b))\n",{"type":21,"tag":139,"props":34366,"children":34367},{"class":141,"line":369},[34368,34372,34376,34381,34386,34390],{"type":21,"tag":139,"props":34369,"children":34370},{"style":214},[34371],{"type":31,"value":948},{"type":21,"tag":139,"props":34373,"children":34374},{"style":152},[34375],{"type":31,"value":953},{"type":21,"tag":139,"props":34377,"children":34378},{"style":262},[34379],{"type":31,"value":34380},"\"Max element difference:\"",{"type":21,"tag":139,"props":34382,"children":34383},{"style":152},[34384],{"type":31,"value":34385},", np.abs(a.data ",{"type":21,"tag":139,"props":34387,"children":34388},{"style":146},[34389],{"type":31,"value":825},{"type":21,"tag":139,"props":34391,"children":34392},{"style":152},[34393],{"type":31,"value":34394}," b.data).max())\n",{"type":21,"tag":22,"props":34396,"children":34397},{},[34398],{"type":31,"value":34183},{"type":21,"tag":129,"props":34400,"children":34402},{"code":34401},"Equivalent: True\nMax element difference: 2.285583597498884e-15\n",[34403],{"type":21,"tag":104,"props":34404,"children":34405},{"__ignoreMap":7},[34406],{"type":31,"value":34401},{"type":21,"tag":22,"props":34408,"children":34409},{},[34410,34412,34418,34419,34425],{"type":31,"value":34411},"Identical to floating-point precision, not merely equal up to a global phase. If you're on an older Qiskit, use ",{"type":21,"tag":104,"props":34413,"children":34415},{"className":34414},[],[34416],{"type":31,"value":34417},"from qiskit.circuit.library import QFT",{"type":31,"value":3615},{"type":21,"tag":104,"props":34420,"children":34422},{"className":34421},[],[34423],{"type":31,"value":34424},"QFT(n).decompose()",{"type":31,"value":34426}," instead.",{"type":21,"tag":41,"props":34428,"children":34430},{"id":34429},"seeing-it-identify-a-period",[34431],{"type":31,"value":34432},"Seeing it identify a period",{"type":21,"tag":22,"props":34434,"children":34435},{},[34436,34438,34442],{"type":31,"value":34437},"This is the one demonstration that shows what the QFT is ",{"type":21,"tag":12756,"props":34439,"children":34440},{},[34441],{"type":31,"value":1486},{"type":31,"value":34443},". Prepare a state that's a uniform superposition over multiples of 4 (a comb with period 4) and transform it:",{"type":21,"tag":129,"props":34445,"children":34447},{"code":34446,"language":133,"meta":7,"className":131,"style":7},"n = 4\npsi = np.zeros(2 ** n, dtype=complex)\nfor x in range(0, 2 ** n, 4):   # |0> + |4> + |8> + |12>\n    psi[x] = 1\npsi \u002F= np.linalg.norm(psi)\n\nout = Statevector(psi).evolve(qft(n))\nfor i, p in enumerate(out.probabilities()):\n    if p > 1e-6:\n        print(f\"|{i:0{n}b}> = {i:2d}   p = {p:.4f}\")\n",[34448],{"type":21,"tag":104,"props":34449,"children":34450},{"__ignoreMap":7},[34451,34466,34514,34572,34588,34604,34611,34628,34653,34676],{"type":21,"tag":139,"props":34452,"children":34453},{"class":141,"line":142},[34454,34458,34462],{"type":21,"tag":139,"props":34455,"children":34456},{"style":152},[34457],{"type":31,"value":19287},{"type":21,"tag":139,"props":34459,"children":34460},{"style":146},[34461],{"type":31,"value":211},{"type":21,"tag":139,"props":34463,"children":34464},{"style":214},[34465],{"type":31,"value":20985},{"type":21,"tag":139,"props":34467,"children":34468},{"class":141,"line":168},[34469,34474,34478,34483,34487,34491,34496,34501,34505,34510],{"type":21,"tag":139,"props":34470,"children":34471},{"style":152},[34472],{"type":31,"value":34473},"psi ",{"type":21,"tag":139,"props":34475,"children":34476},{"style":146},[34477],{"type":31,"value":211},{"type":21,"tag":139,"props":34479,"children":34480},{"style":152},[34481],{"type":31,"value":34482}," np.zeros(",{"type":21,"tag":139,"props":34484,"children":34485},{"style":214},[34486],{"type":31,"value":293},{"type":21,"tag":139,"props":34488,"children":34489},{"style":146},[34490],{"type":31,"value":20596},{"type":21,"tag":139,"props":34492,"children":34493},{"style":152},[34494],{"type":31,"value":34495}," n, ",{"type":21,"tag":139,"props":34497,"children":34498},{"style":923},[34499],{"type":31,"value":34500},"dtype",{"type":21,"tag":139,"props":34502,"children":34503},{"style":146},[34504],{"type":31,"value":211},{"type":21,"tag":139,"props":34506,"children":34507},{"style":214},[34508],{"type":31,"value":34509},"complex",{"type":21,"tag":139,"props":34511,"children":34512},{"style":152},[34513],{"type":31,"value":270},{"type":21,"tag":139,"props":34515,"children":34516},{"class":141,"line":190},[34517,34521,34526,34530,34534,34538,34542,34546,34550,34554,34558,34562,34567],{"type":21,"tag":139,"props":34518,"children":34519},{"style":146},[34520],{"type":31,"value":1486},{"type":21,"tag":139,"props":34522,"children":34523},{"style":152},[34524],{"type":31,"value":34525}," x ",{"type":21,"tag":139,"props":34527,"children":34528},{"style":146},[34529],{"type":31,"value":1496},{"type":21,"tag":139,"props":34531,"children":34532},{"style":214},[34533],{"type":31,"value":7417},{"type":21,"tag":139,"props":34535,"children":34536},{"style":152},[34537],{"type":31,"value":953},{"type":21,"tag":139,"props":34539,"children":34540},{"style":214},[34541],{"type":31,"value":407},{"type":21,"tag":139,"props":34543,"children":34544},{"style":152},[34545],{"type":31,"value":259},{"type":21,"tag":139,"props":34547,"children":34548},{"style":214},[34549],{"type":31,"value":293},{"type":21,"tag":139,"props":34551,"children":34552},{"style":146},[34553],{"type":31,"value":20596},{"type":21,"tag":139,"props":34555,"children":34556},{"style":152},[34557],{"type":31,"value":34495},{"type":21,"tag":139,"props":34559,"children":34560},{"style":214},[34561],{"type":31,"value":17918},{"type":21,"tag":139,"props":34563,"children":34564},{"style":152},[34565],{"type":31,"value":34566},"):   ",{"type":21,"tag":139,"props":34568,"children":34569},{"style":220},[34570],{"type":31,"value":34571},"# |0> + |4> + |8> + |12>\n",{"type":21,"tag":139,"props":34573,"children":34574},{"class":141,"line":200},[34575,34580,34584],{"type":21,"tag":139,"props":34576,"children":34577},{"style":152},[34578],{"type":31,"value":34579},"    psi[x] ",{"type":21,"tag":139,"props":34581,"children":34582},{"style":146},[34583],{"type":31,"value":211},{"type":21,"tag":139,"props":34585,"children":34586},{"style":214},[34587],{"type":31,"value":1536},{"type":21,"tag":139,"props":34589,"children":34590},{"class":141,"line":226},[34591,34595,34599],{"type":21,"tag":139,"props":34592,"children":34593},{"style":152},[34594],{"type":31,"value":34473},{"type":21,"tag":139,"props":34596,"children":34597},{"style":146},[34598],{"type":31,"value":27340},{"type":21,"tag":139,"props":34600,"children":34601},{"style":152},[34602],{"type":31,"value":34603}," np.linalg.norm(psi)\n",{"type":21,"tag":139,"props":34605,"children":34606},{"class":141,"line":234},[34607],{"type":21,"tag":139,"props":34608,"children":34609},{"emptyLinePlaceholder":194},[34610],{"type":31,"value":197},{"type":21,"tag":139,"props":34612,"children":34613},{"class":141,"line":273},[34614,34619,34623],{"type":21,"tag":139,"props":34615,"children":34616},{"style":152},[34617],{"type":31,"value":34618},"out ",{"type":21,"tag":139,"props":34620,"children":34621},{"style":146},[34622],{"type":31,"value":211},{"type":21,"tag":139,"props":34624,"children":34625},{"style":152},[34626],{"type":31,"value":34627}," Statevector(psi).evolve(qft(n))\n",{"type":21,"tag":139,"props":34629,"children":34630},{"class":141,"line":309},[34631,34635,34640,34644,34648],{"type":21,"tag":139,"props":34632,"children":34633},{"style":146},[34634],{"type":31,"value":1486},{"type":21,"tag":139,"props":34636,"children":34637},{"style":152},[34638],{"type":31,"value":34639}," i, p ",{"type":21,"tag":139,"props":34641,"children":34642},{"style":146},[34643],{"type":31,"value":1496},{"type":21,"tag":139,"props":34645,"children":34646},{"style":214},[34647],{"type":31,"value":26777},{"type":21,"tag":139,"props":34649,"children":34650},{"style":152},[34651],{"type":31,"value":34652},"(out.probabilities()):\n",{"type":21,"tag":139,"props":34654,"children":34655},{"class":141,"line":16},[34656,34660,34664,34668,34672],{"type":21,"tag":139,"props":34657,"children":34658},{"style":146},[34659],{"type":31,"value":19523},{"type":21,"tag":139,"props":34661,"children":34662},{"style":152},[34663],{"type":31,"value":19528},{"type":21,"tag":139,"props":34665,"children":34666},{"style":146},[34667],{"type":31,"value":19533},{"type":21,"tag":139,"props":34669,"children":34670},{"style":214},[34671],{"type":31,"value":11411},{"type":21,"tag":139,"props":34673,"children":34674},{"style":152},[34675],{"type":31,"value":26809},{"type":21,"tag":139,"props":34677,"children":34678},{"class":141,"line":361},[34679,34684,34688,34692,34697,34701,34705,34710,34714,34718,34722,34727,34731,34736,34740,34744,34749,34753,34758,34762,34766,34770,34774,34778],{"type":21,"tag":139,"props":34680,"children":34681},{"style":214},[34682],{"type":31,"value":34683},"        print",{"type":21,"tag":139,"props":34685,"children":34686},{"style":152},[34687],{"type":31,"value":953},{"type":21,"tag":139,"props":34689,"children":34690},{"style":146},[34691],{"type":31,"value":7524},{"type":21,"tag":139,"props":34693,"children":34694},{"style":262},[34695],{"type":31,"value":34696},"\"|",{"type":21,"tag":139,"props":34698,"children":34699},{"style":214},[34700],{"type":31,"value":7534},{"type":21,"tag":139,"props":34702,"children":34703},{"style":152},[34704],{"type":31,"value":1833},{"type":21,"tag":139,"props":34706,"children":34707},{"style":146},[34708],{"type":31,"value":34709},":0",{"type":21,"tag":139,"props":34711,"children":34712},{"style":214},[34713],{"type":31,"value":7534},{"type":21,"tag":139,"props":34715,"children":34716},{"style":152},[34717],{"type":31,"value":19605},{"type":21,"tag":139,"props":34719,"children":34720},{"style":214},[34721],{"type":31,"value":7543},{"type":21,"tag":139,"props":34723,"children":34724},{"style":146},[34725],{"type":31,"value":34726},"b",{"type":21,"tag":139,"props":34728,"children":34729},{"style":214},[34730],{"type":31,"value":7543},{"type":21,"tag":139,"props":34732,"children":34733},{"style":262},[34734],{"type":31,"value":34735},"> = ",{"type":21,"tag":139,"props":34737,"children":34738},{"style":214},[34739],{"type":31,"value":7534},{"type":21,"tag":139,"props":34741,"children":34742},{"style":152},[34743],{"type":31,"value":1833},{"type":21,"tag":139,"props":34745,"children":34746},{"style":146},[34747],{"type":31,"value":34748},":2d",{"type":21,"tag":139,"props":34750,"children":34751},{"style":214},[34752],{"type":31,"value":7543},{"type":21,"tag":139,"props":34754,"children":34755},{"style":262},[34756],{"type":31,"value":34757},"   p = ",{"type":21,"tag":139,"props":34759,"children":34760},{"style":214},[34761],{"type":31,"value":7534},{"type":21,"tag":139,"props":34763,"children":34764},{"style":152},[34765],{"type":31,"value":22},{"type":21,"tag":139,"props":34767,"children":34768},{"style":146},[34769],{"type":31,"value":25590},{"type":21,"tag":139,"props":34771,"children":34772},{"style":214},[34773],{"type":31,"value":7543},{"type":21,"tag":139,"props":34775,"children":34776},{"style":262},[34777],{"type":31,"value":15370},{"type":21,"tag":139,"props":34779,"children":34780},{"style":152},[34781],{"type":31,"value":270},{"type":21,"tag":22,"props":34783,"children":34784},{},[34785],{"type":31,"value":34183},{"type":21,"tag":129,"props":34787,"children":34789},{"code":34788},"|0000> =  0   p = 0.2500\n|0100> =  4   p = 0.2500\n|1000> =  8   p = 0.2500\n|1100> = 12   p = 0.2500\n",[34790],{"type":21,"tag":104,"props":34791,"children":34792},{"__ignoreMap":7},[34793],{"type":31,"value":34788},{"type":21,"tag":22,"props":34795,"children":34796},{},[34797,34799,34804],{"type":31,"value":34798},"The input had period 4 in position space. The output is concentrated on multiples of 16\u002F4 = 4 in frequency space. Sample this a few times, take the greatest common divisor of the outcomes, and you recover the period. ",{"type":21,"tag":16802,"props":34800,"children":34801},{},[34802],{"type":31,"value":34803},"That",{"type":31,"value":34805}," is the readable signal: not the coefficients, but a periodicity converted into a sampling distribution.",{"type":21,"tag":22,"props":34807,"children":34808},{},[34809],{"type":31,"value":34810},"Confirm it on the simulator with actual shots:",{"type":21,"tag":129,"props":34812,"children":34814},{"code":34813,"language":133,"meta":7,"className":131,"style":7},"qc = QuantumCircuit(n)\nqc.initialize(psi, range(n))\nqc.compose(qft(n), inplace=True)\nqc.measure_all()\n\nsim = AerSimulator()\ncounts = sim.run(transpile(qc, sim), shots=4096).result().get_counts()\nprint(sorted(counts.items(), key=lambda kv: -kv[1]))\n",[34815],{"type":21,"tag":104,"props":34816,"children":34817},{"__ignoreMap":7},[34818,34833,34849,34873,34881,34888,34903,34934],{"type":21,"tag":139,"props":34819,"children":34820},{"class":141,"line":142},[34821,34825,34829],{"type":21,"tag":139,"props":34822,"children":34823},{"style":152},[34824],{"type":31,"value":349},{"type":21,"tag":139,"props":34826,"children":34827},{"style":146},[34828],{"type":31,"value":211},{"type":21,"tag":139,"props":34830,"children":34831},{"style":152},[34832],{"type":31,"value":34303},{"type":21,"tag":139,"props":34834,"children":34835},{"class":141,"line":168},[34836,34841,34845],{"type":21,"tag":139,"props":34837,"children":34838},{"style":152},[34839],{"type":31,"value":34840},"qc.initialize(psi, ",{"type":21,"tag":139,"props":34842,"children":34843},{"style":214},[34844],{"type":31,"value":17713},{"type":21,"tag":139,"props":34846,"children":34847},{"style":152},[34848],{"type":31,"value":26843},{"type":21,"tag":139,"props":34850,"children":34851},{"class":141,"line":190},[34852,34857,34861,34865,34869],{"type":21,"tag":139,"props":34853,"children":34854},{"style":152},[34855],{"type":31,"value":34856},"qc.compose(qft(n), ",{"type":21,"tag":139,"props":34858,"children":34859},{"style":923},[34860],{"type":31,"value":30040},{"type":21,"tag":139,"props":34862,"children":34863},{"style":146},[34864],{"type":31,"value":211},{"type":21,"tag":139,"props":34866,"children":34867},{"style":214},[34868],{"type":31,"value":8664},{"type":21,"tag":139,"props":34870,"children":34871},{"style":152},[34872],{"type":31,"value":270},{"type":21,"tag":139,"props":34874,"children":34875},{"class":141,"line":200},[34876],{"type":21,"tag":139,"props":34877,"children":34878},{"style":152},[34879],{"type":31,"value":34880},"qc.measure_all()\n",{"type":21,"tag":139,"props":34882,"children":34883},{"class":141,"line":226},[34884],{"type":21,"tag":139,"props":34885,"children":34886},{"emptyLinePlaceholder":194},[34887],{"type":31,"value":197},{"type":21,"tag":139,"props":34889,"children":34890},{"class":141,"line":234},[34891,34895,34899],{"type":21,"tag":139,"props":34892,"children":34893},{"style":152},[34894],{"type":31,"value":877},{"type":21,"tag":139,"props":34896,"children":34897},{"style":146},[34898],{"type":31,"value":211},{"type":21,"tag":139,"props":34900,"children":34901},{"style":152},[34902],{"type":31,"value":886},{"type":21,"tag":139,"props":34904,"children":34905},{"class":141,"line":273},[34906,34910,34914,34918,34922,34926,34930],{"type":21,"tag":139,"props":34907,"children":34908},{"style":152},[34909],{"type":31,"value":911},{"type":21,"tag":139,"props":34911,"children":34912},{"style":146},[34913],{"type":31,"value":211},{"type":21,"tag":139,"props":34915,"children":34916},{"style":152},[34917],{"type":31,"value":30302},{"type":21,"tag":139,"props":34919,"children":34920},{"style":923},[34921],{"type":31,"value":926},{"type":21,"tag":139,"props":34923,"children":34924},{"style":146},[34925],{"type":31,"value":211},{"type":21,"tag":139,"props":34927,"children":34928},{"style":214},[34929],{"type":31,"value":935},{"type":21,"tag":139,"props":34931,"children":34932},{"style":152},[34933],{"type":31,"value":940},{"type":21,"tag":139,"props":34935,"children":34936},{"class":141,"line":309},[34937,34941,34945,34949,34954,34958,34962,34967,34971,34976,34980],{"type":21,"tag":139,"props":34938,"children":34939},{"style":214},[34940],{"type":31,"value":948},{"type":21,"tag":139,"props":34942,"children":34943},{"style":152},[34944],{"type":31,"value":953},{"type":21,"tag":139,"props":34946,"children":34947},{"style":214},[34948],{"type":31,"value":958},{"type":21,"tag":139,"props":34950,"children":34951},{"style":152},[34952],{"type":31,"value":34953},"(counts.items(), ",{"type":21,"tag":139,"props":34955,"children":34956},{"style":923},[34957],{"type":31,"value":4832},{"type":21,"tag":139,"props":34959,"children":34960},{"style":146},[34961],{"type":31,"value":25494},{"type":21,"tag":139,"props":34963,"children":34964},{"style":152},[34965],{"type":31,"value":34966}," kv: ",{"type":21,"tag":139,"props":34968,"children":34969},{"style":146},[34970],{"type":31,"value":825},{"type":21,"tag":139,"props":34972,"children":34973},{"style":152},[34974],{"type":31,"value":34975},"kv[",{"type":21,"tag":139,"props":34977,"children":34978},{"style":214},[34979],{"type":31,"value":328},{"type":21,"tag":139,"props":34981,"children":34982},{"style":152},[34983],{"type":31,"value":34984},"]))\n",{"type":21,"tag":22,"props":34986,"children":34987},{},[34988],{"type":31,"value":34183},{"type":21,"tag":129,"props":34990,"children":34992},{"code":34991},"[('0100', 1079), ('1000', 1030), ('0000', 1018), ('1100', 969)]\n",[34993],{"type":21,"tag":104,"props":34994,"children":34995},{"__ignoreMap":7},[34996],{"type":31,"value":34991},{"type":21,"tag":22,"props":34998,"children":34999},{},[35000],{"type":31,"value":35001},"Four peaks, roughly 1024 counts each. Nothing else appears.",{"type":21,"tag":41,"props":35003,"children":35005},{"id":35004},"where-the-qft-earns-its-keep",[35006],{"type":31,"value":35007},"Where the QFT earns its keep",{"type":21,"tag":22,"props":35009,"children":35010},{},[35011,35016,35018,35022,35024,35030],{"type":21,"tag":16802,"props":35012,"children":35013},{},[35014],{"type":31,"value":35015},"Quantum phase estimation (QPE).",{"type":31,"value":35017}," Given a unitary U and an eigenstate |ψ⟩ with U|ψ⟩ = e^{2πiθ}|ψ⟩, QPE writes θ into a register's phases using controlled-U powers, then applies the ",{"type":21,"tag":12756,"props":35019,"children":35020},{},[35021],{"type":31,"value":28836},{"type":31,"value":35023}," QFT to convert those phases into a binary number you measure. Note the direction: QPE uses QFT⁻¹, because the phases are already there and the job is to pull them out. In Qiskit that's ",{"type":21,"tag":104,"props":35025,"children":35027},{"className":35026},[],[35028],{"type":31,"value":35029},"qft(n).inverse()",{"type":31,"value":6665},{"type":21,"tag":22,"props":35032,"children":35033},{},[35034,35039],{"type":21,"tag":16802,"props":35035,"children":35036},{},[35037],{"type":31,"value":35038},"Order finding.",{"type":31,"value":35040}," Given a and N, find the smallest r with a^r ≡ 1 (mod N). Modular exponentiation creates a register periodic in r. The QFT turns that period into measurable peaks, exactly as in the demo above.",{"type":21,"tag":22,"props":35042,"children":35043},{},[35044,35052,35054,35058,35060,35064],{"type":21,"tag":16802,"props":35045,"children":35046},{},[35047,35051],{"type":21,"tag":26,"props":35048,"children":35049},{"href":1231},[35050],{"type":31,"value":31442},{"type":31,"value":6665},{"type":31,"value":35053}," Factoring reduces to order finding, so Shor's is order finding plus classical post-processing (continued fractions and a GCD). The ",{"type":21,"tag":26,"props":35055,"children":35056},{"href":19989},[35057],{"type":31,"value":19992},{"type":31,"value":35059}," is worth reading precisely because the QFT is the only quantum part: everything else is figure theory. This is also why the algorithm threatens RSA, and why ",{"type":21,"tag":26,"props":35061,"children":35062},{"href":3883},[35063],{"type":31,"value":3964},{"type":31,"value":35065}," migration is happening now rather than later.",{"type":21,"tag":22,"props":35067,"children":35068},{},[35069],{"type":31,"value":35070},"In all three cases the QFT is doing the identical job: turning phase information into position information so a measurement sees it.",{"type":21,"tag":41,"props":35072,"children":35074},{"id":35073},"approximate-qft-drop-the-tiny-rotations",[35075],{"type":31,"value":35076},"Approximate QFT: drop the tiny rotations",{"type":21,"tag":22,"props":35078,"children":35079},{},[35080,35082,35087],{"type":31,"value":35081},"On real hardware, ",{"type":21,"tag":104,"props":35083,"children":35085},{"className":35084},[],[35086],{"type":31,"value":33528},{"type":31,"value":35088}," for large k is a rotation smaller than your gate error. Executing it adds noise and buys nothing. The Approximate QFT (AQFT) simply skips every rotation with k above a cutoff, reducing the gate count from O(n²) to O(n log n):",{"type":21,"tag":129,"props":35090,"children":35092},{"code":35091,"language":133,"meta":7,"className":131,"style":7},"def aqft(n, k_max):\n    qc = QuantumCircuit(n, name=\"AQFT\")\n    for size in range(n, 0, -1):\n        m = size - 1\n        qc.h(m)\n        for qubit in range(m):\n            k = m - qubit\n            if k \u003C= k_max:\n                qc.cp(np.pi \u002F 2 ** k, qubit, m)\n    for q in range(n \u002F\u002F 2):\n        qc.swap(q, n - q - 1)\n    return qc\n",[35093],{"type":21,"tag":104,"props":35094,"children":35095},{"__ignoreMap":7},[35096,35113,35145,35190,35214,35222,35246,35272,35294,35319,35354,35382],{"type":21,"tag":139,"props":35097,"children":35098},{"class":141,"line":142},[35099,35103,35108],{"type":21,"tag":139,"props":35100,"children":35101},{"style":146},[35102],{"type":31,"value":5487},{"type":21,"tag":139,"props":35104,"children":35105},{"style":4509},[35106],{"type":31,"value":35107}," aqft",{"type":21,"tag":139,"props":35109,"children":35110},{"style":152},[35111],{"type":31,"value":35112},"(n, k_max):\n",{"type":21,"tag":139,"props":35114,"children":35115},{"class":141,"line":168},[35116,35120,35124,35128,35132,35136,35141],{"type":21,"tag":139,"props":35117,"children":35118},{"style":152},[35119],{"type":31,"value":17771},{"type":21,"tag":139,"props":35121,"children":35122},{"style":146},[35123],{"type":31,"value":211},{"type":21,"tag":139,"props":35125,"children":35126},{"style":152},[35127],{"type":31,"value":29352},{"type":21,"tag":139,"props":35129,"children":35130},{"style":923},[35131],{"type":31,"value":29357},{"type":21,"tag":139,"props":35133,"children":35134},{"style":146},[35135],{"type":31,"value":211},{"type":21,"tag":139,"props":35137,"children":35138},{"style":262},[35139],{"type":31,"value":35140},"\"AQFT\"",{"type":21,"tag":139,"props":35142,"children":35143},{"style":152},[35144],{"type":31,"value":270},{"type":21,"tag":139,"props":35146,"children":35147},{"class":141,"line":190},[35148,35152,35157,35161,35165,35170,35174,35178,35182,35186],{"type":21,"tag":139,"props":35149,"children":35150},{"style":146},[35151],{"type":31,"value":17024},{"type":21,"tag":139,"props":35153,"children":35154},{"style":152},[35155],{"type":31,"value":35156}," size ",{"type":21,"tag":139,"props":35158,"children":35159},{"style":146},[35160],{"type":31,"value":1496},{"type":21,"tag":139,"props":35162,"children":35163},{"style":214},[35164],{"type":31,"value":7417},{"type":21,"tag":139,"props":35166,"children":35167},{"style":152},[35168],{"type":31,"value":35169},"(n, ",{"type":21,"tag":139,"props":35171,"children":35172},{"style":214},[35173],{"type":31,"value":407},{"type":21,"tag":139,"props":35175,"children":35176},{"style":152},[35177],{"type":31,"value":259},{"type":21,"tag":139,"props":35179,"children":35180},{"style":146},[35181],{"type":31,"value":825},{"type":21,"tag":139,"props":35183,"children":35184},{"style":214},[35185],{"type":31,"value":328},{"type":21,"tag":139,"props":35187,"children":35188},{"style":152},[35189],{"type":31,"value":7430},{"type":21,"tag":139,"props":35191,"children":35192},{"class":141,"line":200},[35193,35198,35202,35206,35210],{"type":21,"tag":139,"props":35194,"children":35195},{"style":152},[35196],{"type":31,"value":35197},"        m ",{"type":21,"tag":139,"props":35199,"children":35200},{"style":146},[35201],{"type":31,"value":211},{"type":21,"tag":139,"props":35203,"children":35204},{"style":152},[35205],{"type":31,"value":35156},{"type":21,"tag":139,"props":35207,"children":35208},{"style":146},[35209],{"type":31,"value":825},{"type":21,"tag":139,"props":35211,"children":35212},{"style":214},[35213],{"type":31,"value":1536},{"type":21,"tag":139,"props":35215,"children":35216},{"class":141,"line":226},[35217],{"type":21,"tag":139,"props":35218,"children":35219},{"style":152},[35220],{"type":31,"value":35221},"        qc.h(m)\n",{"type":21,"tag":139,"props":35223,"children":35224},{"class":141,"line":234},[35225,35229,35233,35237,35241],{"type":21,"tag":139,"props":35226,"children":35227},{"style":146},[35228],{"type":31,"value":20305},{"type":21,"tag":139,"props":35230,"children":35231},{"style":152},[35232],{"type":31,"value":33818},{"type":21,"tag":139,"props":35234,"children":35235},{"style":146},[35236],{"type":31,"value":1496},{"type":21,"tag":139,"props":35238,"children":35239},{"style":214},[35240],{"type":31,"value":7417},{"type":21,"tag":139,"props":35242,"children":35243},{"style":152},[35244],{"type":31,"value":35245},"(m):\n",{"type":21,"tag":139,"props":35247,"children":35248},{"class":141,"line":273},[35249,35254,35258,35263,35267],{"type":21,"tag":139,"props":35250,"children":35251},{"style":152},[35252],{"type":31,"value":35253},"            k ",{"type":21,"tag":139,"props":35255,"children":35256},{"style":146},[35257],{"type":31,"value":211},{"type":21,"tag":139,"props":35259,"children":35260},{"style":152},[35261],{"type":31,"value":35262}," m ",{"type":21,"tag":139,"props":35264,"children":35265},{"style":146},[35266],{"type":31,"value":825},{"type":21,"tag":139,"props":35268,"children":35269},{"style":152},[35270],{"type":31,"value":35271}," qubit\n",{"type":21,"tag":139,"props":35273,"children":35274},{"class":141,"line":309},[35275,35279,35284,35289],{"type":21,"tag":139,"props":35276,"children":35277},{"style":146},[35278],{"type":31,"value":26790},{"type":21,"tag":139,"props":35280,"children":35281},{"style":152},[35282],{"type":31,"value":35283}," k ",{"type":21,"tag":139,"props":35285,"children":35286},{"style":146},[35287],{"type":31,"value":35288},"\u003C=",{"type":21,"tag":139,"props":35290,"children":35291},{"style":152},[35292],{"type":31,"value":35293}," k_max:\n",{"type":21,"tag":139,"props":35295,"children":35296},{"class":141,"line":16},[35297,35302,35306,35310,35314],{"type":21,"tag":139,"props":35298,"children":35299},{"style":152},[35300],{"type":31,"value":35301},"                qc.cp(np.pi ",{"type":21,"tag":139,"props":35303,"children":35304},{"style":146},[35305],{"type":31,"value":5062},{"type":21,"tag":139,"props":35307,"children":35308},{"style":214},[35309],{"type":31,"value":21021},{"type":21,"tag":139,"props":35311,"children":35312},{"style":146},[35313],{"type":31,"value":20596},{"type":21,"tag":139,"props":35315,"children":35316},{"style":152},[35317],{"type":31,"value":35318}," k, qubit, m)\n",{"type":21,"tag":139,"props":35320,"children":35321},{"class":141,"line":361},[35322,35326,35330,35334,35338,35342,35346,35350],{"type":21,"tag":139,"props":35323,"children":35324},{"style":146},[35325],{"type":31,"value":17024},{"type":21,"tag":139,"props":35327,"children":35328},{"style":152},[35329],{"type":31,"value":20310},{"type":21,"tag":139,"props":35331,"children":35332},{"style":146},[35333],{"type":31,"value":1496},{"type":21,"tag":139,"props":35335,"children":35336},{"style":214},[35337],{"type":31,"value":7417},{"type":21,"tag":139,"props":35339,"children":35340},{"style":152},[35341],{"type":31,"value":17041},{"type":21,"tag":139,"props":35343,"children":35344},{"style":146},[35345],{"type":31,"value":21016},{"type":21,"tag":139,"props":35347,"children":35348},{"style":214},[35349],{"type":31,"value":21021},{"type":21,"tag":139,"props":35351,"children":35352},{"style":152},[35353],{"type":31,"value":7430},{"type":21,"tag":139,"props":35355,"children":35356},{"class":141,"line":369},[35357,35362,35366,35370,35374,35378],{"type":21,"tag":139,"props":35358,"children":35359},{"style":152},[35360],{"type":31,"value":35361},"        qc.swap(q, n ",{"type":21,"tag":139,"props":35363,"children":35364},{"style":146},[35365],{"type":31,"value":825},{"type":21,"tag":139,"props":35367,"children":35368},{"style":152},[35369],{"type":31,"value":20310},{"type":21,"tag":139,"props":35371,"children":35372},{"style":146},[35373],{"type":31,"value":825},{"type":21,"tag":139,"props":35375,"children":35376},{"style":214},[35377],{"type":31,"value":17050},{"type":21,"tag":139,"props":35379,"children":35380},{"style":152},[35381],{"type":31,"value":270},{"type":21,"tag":139,"props":35383,"children":35384},{"class":141,"line":378},[35385,35389],{"type":21,"tag":139,"props":35386,"children":35387},{"style":146},[35388],{"type":31,"value":5582},{"type":21,"tag":139,"props":35390,"children":35391},{"style":152},[35392],{"type":31,"value":17737},{"type":21,"tag":22,"props":35394,"children":35395},{},[35396],{"type":31,"value":35397},"Measured fidelity against the exact 4-qubit QFT:",{"type":21,"tag":3150,"props":35399,"children":35400},{},[35401,35422],{"type":21,"tag":3154,"props":35402,"children":35403},{},[35404],{"type":21,"tag":3158,"props":35405,"children":35406},{},[35407,35412,35417],{"type":21,"tag":3162,"props":35408,"children":35409},{},[35410],{"type":31,"value":35411},"k_max",{"type":21,"tag":3162,"props":35413,"children":35414},{},[35415],{"type":31,"value":35416},"CP gates",{"type":21,"tag":3162,"props":35418,"children":35419},{},[35420],{"type":31,"value":35421},"Fidelity",{"type":21,"tag":3176,"props":35423,"children":35424},{},[35425,35441,35457,35473],{"type":21,"tag":3158,"props":35426,"children":35427},{},[35428,35432,35436],{"type":21,"tag":3183,"props":35429,"children":35430},{},[35431],{"type":31,"value":328},{"type":21,"tag":3183,"props":35433,"children":35434},{},[35435],{"type":31,"value":254},{"type":21,"tag":3183,"props":35437,"children":35438},{},[35439],{"type":31,"value":35440},"0.8456",{"type":21,"tag":3158,"props":35442,"children":35443},{},[35444,35448,35452],{"type":21,"tag":3183,"props":35445,"children":35446},{},[35447],{"type":31,"value":293},{"type":21,"tag":3183,"props":35449,"children":35450},{},[35451],{"type":31,"value":11467},{"type":21,"tag":3183,"props":35453,"children":35454},{},[35455],{"type":31,"value":35456},"0.9856",{"type":21,"tag":3158,"props":35458,"children":35459},{},[35460,35464,35468],{"type":21,"tag":3183,"props":35461,"children":35462},{},[35463],{"type":31,"value":254},{"type":21,"tag":3183,"props":35465,"children":35466},{},[35467],{"type":31,"value":11420},{"type":21,"tag":3183,"props":35469,"children":35470},{},[35471],{"type":31,"value":35472},"1.0000",{"type":21,"tag":3158,"props":35474,"children":35475},{},[35476,35481,35485],{"type":21,"tag":3183,"props":35477,"children":35478},{},[35479],{"type":31,"value":35480},"exact",{"type":21,"tag":3183,"props":35482,"children":35483},{},[35484],{"type":31,"value":11420},{"type":21,"tag":3183,"props":35486,"children":35487},{},[35488],{"type":31,"value":35472},{"type":21,"tag":22,"props":35490,"children":35491},{},[35492,35494,35498],{"type":31,"value":35493},"Keeping rotations down to π\u002F4 recovers 98.6% fidelity with 17% fewer two-qubit gates. On larger registers the saving is dramatic: keeping only k ≤ O(log n) rotations is provably enough for Shor's algorithm to succeed, and on a noisy device the AQFT often outperforms the exact QFT because the errors you avoid outweigh the approximation you introduce. Always benchmark both on a ",{"type":21,"tag":26,"props":35495,"children":35496},{"href":3292},[35497],{"type":31,"value":9811},{"type":31,"value":35499}," with a realistic noise model before committing.",{"type":21,"tag":41,"props":35501,"children":35502},{"id":5900},[35503],{"type":31,"value":5903},{"type":21,"tag":1112,"props":35505,"children":35506},{},[35507,35519,35532],{"type":21,"tag":72,"props":35508,"children":35509},{},[35510,35512,35517],{"type":31,"value":35511},"Build ",{"type":21,"tag":104,"props":35513,"children":35515},{"className":35514},[],[35516],{"type":31,"value":35029},{"type":31,"value":35518}," and use it to implement phase estimation on a T gate. You should recover θ = 1\u002F8 exactly with 3 counting qubits.",{"type":21,"tag":72,"props":35520,"children":35521},{},[35522,35524,35530],{"type":31,"value":35523},"Run the 4-qubit QFT through ",{"type":21,"tag":104,"props":35525,"children":35527},{"className":35526},[],[35528],{"type":31,"value":35529},"transpile(qc, backend, optimization_level=3)",{"type":31,"value":35531}," for a real device and watch the CP gates decompose into CNOTs. The depth increase is sobering.",{"type":21,"tag":72,"props":35533,"children":35534},{},[35535,35537,35541],{"type":31,"value":35536},"Compare against a variational algorithm like ",{"type":21,"tag":26,"props":35538,"children":35539},{"href":1244},[35540],{"type":31,"value":2041},{"type":31,"value":35542}," to see the contrast between structured algorithms with proven speedups and heuristic NISQ ones.",{"type":21,"tag":22,"props":35544,"children":35545},{},[35546],{"type":31,"value":35547},"The takeaway to keep: the QFT is rapid, exact, and useless by itself. Its power is entirely in what you wrap around it.",{"type":21,"tag":1168,"props":35549,"children":35550},{},[35551],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":35553},[35554,35555,35556,35557,35558,35559,35560,35561,35562],{"id":33361,"depth":168,"text":33364},{"id":33431,"depth":168,"text":33434},{"id":33489,"depth":168,"text":33492},{"id":33568,"depth":168,"text":33571},{"id":34199,"depth":168,"text":34202},{"id":34429,"depth":168,"text":34432},{"id":35004,"depth":168,"text":35007},{"id":35073,"depth":168,"text":35076},{"id":5900,"depth":168,"text":5903},"content:blog:quantum-fourier-transform-tutorial.md","blog\u002Fquantum-fourier-transform-tutorial.md","blog\u002Fquantum-fourier-transform-tutorial",{"_path":3138,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":35567,"description":35568,"date":25047,"author":11,"tags":35569,"readingTime":16,"body":35570,"_type":1187,"_id":37401,"_source":1189,"_file":37402,"_stem":37403,"_extension":1192},"Quantum Machine Learning: A Reality Check","What QML is, what the evidence currently shows about whether it beats classical models, and which parts of it are genuinely promising: grounded in the Biamonte review, the barren plateaus result, and a 2026 head-to-head comparison.",[12741,4474,13],{"type":18,"children":35571,"toc":37392},[35572,35577,35589,35594,35600,35605,35636,35646,35662,35672,35678,35690,35702,35707,35717,35723,35735,35747,35758,35763,35769,35774,35785,35790,35823,35828,35840,35846,35857,37174,37186,37241,37253,37272,37278,37283,37306,37316,37326,37332,37348,37360,37370,37388],{"type":21,"tag":22,"props":35573,"children":35574},{},[35575],{"type":31,"value":35576},"\"Quantum computing will supercharge AI\" is the single most repeated claim in quantum marketing. It is also the claim with the weakest evidence behind it.",{"type":21,"tag":22,"props":35578,"children":35579},{},[35580,35582,35587],{"type":31,"value":35581},"This isn't a takedown. Quantum machine learning is a real research area with real results and a handful of genuinely interesting open directions. But the gap between what QML is often ",{"type":21,"tag":12756,"props":35583,"children":35584},{},[35585],{"type":31,"value":35586},"said",{"type":31,"value":35588}," to do and what has been demonstrated is wider than in almost any other corner of the field. If you're deciding whether to invest time here, you deserve the honest version.",{"type":21,"tag":22,"props":35590,"children":35591},{},[35592],{"type":31,"value":35593},"So: what QML is, what the evidence shows, and what's still worth watching.",{"type":21,"tag":41,"props":35595,"children":35597},{"id":35596},"what-quantum-machine-learning-means",[35598],{"type":31,"value":35599},"What quantum machine learning means",{"type":21,"tag":22,"props":35601,"children":35602},{},[35603],{"type":31,"value":35604},"The term covers several quite distinct things that get blurred together.",{"type":21,"tag":22,"props":35606,"children":35607},{},[35608,35613,35615,35621,35623,35628,35630,35634],{"type":21,"tag":16802,"props":35609,"children":35610},{},[35611],{"type":31,"value":35612},"Variational circuits as trainable models.",{"type":31,"value":35614}," This is what most people building QML today are doing. You write a parameterized quantum circuit, a ",{"type":21,"tag":26,"props":35616,"children":35618},{"href":35617},"\u002Fglossary\u002Fvariational-circuit",[35619],{"type":31,"value":35620},"variational circuit",{"type":31,"value":35622},", feed data in, measure an output, and use a classical optimizer to adjust the parameters until the output matches your labels. Structurally it's the same ",{"type":21,"tag":26,"props":35624,"children":35625},{"href":3315},[35626],{"type":31,"value":35627},"hybrid algorithm",{"type":31,"value":35629}," pattern as ",{"type":21,"tag":26,"props":35631,"children":35632},{"href":16267},[35633],{"type":31,"value":3613},{"type":31,"value":35635},", only with a loss function instead of an energy. The circuit is the model. The rotation angles are the weights.",{"type":21,"tag":22,"props":35637,"children":35638},{},[35639,35644],{"type":21,"tag":16802,"props":35640,"children":35641},{},[35642],{"type":31,"value":35643},"Quantum kernels.",{"type":31,"value":35645}," Instead of training a quantum model directly, you use the quantum computer only to compute similarities between data points: encode two inputs into quantum states and measure their overlap. That similarity matrix then feeds an entirely classical support vector machine. The quantum device does one narrow job, which makes this approach far more resilient to noise than end-to-end variational training.",{"type":21,"tag":22,"props":35647,"children":35648},{},[35649,35654,35656,35660],{"type":21,"tag":16802,"props":35650,"children":35651},{},[35652],{"type":31,"value":35653},"Data encoding.",{"type":31,"value":35655}," Both approaches need classical numbers turned into quantum states, and this choice matters more than anything else in the pipeline. Angle encoding maps each feature to a rotation angle. Simple, but it needs one ",{"type":21,"tag":26,"props":35657,"children":35658},{"href":3051},[35659],{"type":31,"value":24476},{"type":31,"value":35661}," per feature. Amplitude encoding packs 2ⁿ values into n qubits, which sounds magical until you look at the circuit depth required to prepare that state.",{"type":21,"tag":22,"props":35663,"children":35664},{},[35665,35670],{"type":21,"tag":16802,"props":35666,"children":35667},{},[35668],{"type":31,"value":35669},"Quantum-accelerated linear algebra.",{"type":31,"value":35671}," The original, most theoretically ambitious branch: algorithms like HHL for solving linear systems with exponential speedups on paper. This is where the big speedup numbers in QML pitches come from, and where the caveats bite hardest.",{"type":21,"tag":41,"props":35673,"children":35675},{"id":35674},"the-data-loading-bottleneck",[35676],{"type":31,"value":35677},"The data-loading bottleneck",{"type":21,"tag":22,"props":35679,"children":35680},{},[35681,35682,35688],{"type":31,"value":11026},{"type":21,"tag":26,"props":35683,"children":35685},{"href":35684},"\u002Fresearch\u002Fbiamonte-quantum-machine-learning-2017",[35686],{"type":31,"value":35687},"Biamonte et al. review",{"type":31,"value":35689},", still the standard reference for the field, is unusually direct about the central problem, and it applies to that fourth category above.",{"type":21,"tag":22,"props":35691,"children":35692},{},[35693,35695,35700],{"type":31,"value":35694},"Many quantum ML algorithms with proven exponential speedups assume your data is ",{"type":21,"tag":12756,"props":35696,"children":35697},{},[35698],{"type":31,"value":35699},"already",{"type":31,"value":35701}," sitting in quantum RAM, in a convenient superposition, ready to be operated on. That's a big assumption. If you have to load N classical data points into a quantum state, and loading takes time proportional to N, then an algorithm that runs in log(N) time once loaded still costs you O(N) overall. The speedup evaporates in the preprocessing step.",{"type":21,"tag":22,"props":35703,"children":35704},{},[35705],{"type":31,"value":35706},"This isn't a hardware engineering problem that better devices will fix. It's structural. And it got worse: over the past decade, a series of \"dequantization\" results showed that several proposed quantum ML speedups had classical algorithms achieving comparable scaling once you granted the classical side similar sampling access to the data. The quantum advantage in those cases turned out to be an artifact of comparing a quantum algorithm with quantum data access against a classical algorithm without equivalent access.",{"type":21,"tag":22,"props":35708,"children":35709},{},[35710,35712],{"type":31,"value":35711},"The pragmatic rule: ",{"type":21,"tag":16802,"props":35713,"children":35714},{},[35715],{"type":31,"value":35716},"be suspicious of any quantum ML speedup claim that doesn't account for how the data got in.",{"type":21,"tag":41,"props":35718,"children":35720},{"id":35719},"barren-plateaus",[35721],{"type":31,"value":35722},"Barren plateaus",{"type":21,"tag":22,"props":35724,"children":35725},{},[35726,35728,35734],{"type":31,"value":35727},"The variational approach (the one most people build with) has its own structural obstacle, and it's the one described in ",{"type":21,"tag":26,"props":35729,"children":35731},{"href":35730},"\u002Fresearch\u002Fmcclean-barren-plateaus-2018",[35732],{"type":31,"value":35733},"McClean et al.",{"type":31,"value":6665},{"type":21,"tag":22,"props":35736,"children":35737},{},[35738,35740,35745],{"type":31,"value":35739},"Training a variational model means computing gradients and stepping downhill. McClean and colleagues showed that for randomly initialized circuits, the ",{"type":21,"tag":12756,"props":35741,"children":35742},{},[35743],{"type":31,"value":35744},"variance",{"type":31,"value":35746}," of the gradient shrinks exponentially as you add qubits. The optimization terrain flattens into a featureless plain (a barren plateau) where every direction looks the same.",{"type":21,"tag":22,"props":35748,"children":35749},{},[35750,35752,35756],{"type":31,"value":35751},"Why this is fatal rather than merely annoying: gradients on quantum hardware are estimated from measurement statistics, so they come with ",{"type":21,"tag":26,"props":35753,"children":35754},{"href":3102},[35755],{"type":31,"value":27584},{"type":31,"value":35757},". Once the true gradient is smaller than your sampling error, you need exponentially many shots only to tell which way is down. At a few dozen qubits with a generic ansatz, the training signal is gone.",{"type":21,"tag":22,"props":35759,"children":35760},{},[35761],{"type":31,"value":35762},"Mitigations exist and are actively researched: structured problem-informed ansätze, layerwise training, smart initialization, local rather than global cost functions. None is a general solution. Any assertion that a variational quantum model scales to useful problem sizes has to explain how it escapes this, and most don't.",{"type":21,"tag":41,"props":35764,"children":35766},{"id":35765},"the-2026-head-to-head-comparison",[35767],{"type":31,"value":35768},"The 2026 head-to-head comparison",{"type":21,"tag":22,"props":35770,"children":35771},{},[35772],{"type":31,"value":35773},"Theoretical caveats are one thing. The more useful question is what happens when someone runs the models side by side, and that's rarer than you'd expect. QML papers usually benchmark against other QML papers.",{"type":21,"tag":22,"props":35775,"children":35776},{},[35777,35783],{"type":21,"tag":26,"props":35778,"children":35780},{"href":35779},"\u002Fresearch\u002Fquantum-vs-classical-ml-2026",[35781],{"type":31,"value":35782},"Yu et al. (2026)",{"type":31,"value":35784}," did the like-for-like version: seven matched quantum\u002Fclassical model pairs, spanning both supervised learning and reinforcement learning, run on the same problems with the comparison held as fair as possible.",{"type":21,"tag":22,"props":35786,"children":35787},{},[35788],{"type":31,"value":35789},"The quantum models lost. Not on one axis: on three:",{"type":21,"tag":1112,"props":35791,"children":35792},{},[35793,35803,35813],{"type":21,"tag":72,"props":35794,"children":35795},{},[35796,35801],{"type":21,"tag":16802,"props":35797,"children":35798},{},[35799],{"type":31,"value":35800},"Prediction performance.",{"type":31,"value":35802}," Classical baselines were more accurate.",{"type":21,"tag":72,"props":35804,"children":35805},{},[35806,35811],{"type":21,"tag":16802,"props":35807,"children":35808},{},[35809],{"type":31,"value":35810},"Policy stability.",{"type":31,"value":35812}," In the reinforcement learning tasks, the quantum models produced less stable policies.",{"type":21,"tag":72,"props":35814,"children":35815},{},[35816,35821],{"type":21,"tag":16802,"props":35817,"children":35818},{},[35819],{"type":31,"value":35820},"Training time.",{"type":31,"value":35822}," The quantum models were slower to train.",{"type":21,"tag":22,"props":35824,"children":35825},{},[35826],{"type":31,"value":35827},"That last one deserves emphasis, because \"quantum is slower\" is the opposite of the entire pitch. Circuit execution overhead, the shot counts needed for gradient estimation, and the classical-quantum round trips add up.",{"type":21,"tag":22,"props":35829,"children":35830},{},[35831,35833,35838],{"type":31,"value":35832},"One careful negative result doesn't close a research field. But it's the right kind of evidence, and it points the same direction as the theory. ",{"type":21,"tag":16802,"props":35834,"children":35835},{},[35836],{"type":31,"value":35837},"As of mid-2026, \"quantum will make AI faster\" is not supported by the evidence.",{"type":31,"value":35839}," If someone tells you otherwise, ask them for the head-to-head benchmark.",{"type":21,"tag":41,"props":35841,"children":35843},{"id":35842},"try-it-yourself",[35844],{"type":31,"value":35845},"Try it yourself",{"type":21,"tag":22,"props":35847,"children":35848},{},[35849,35851,35855],{"type":31,"value":35850},"The best way to develop intuition here is to build one. This is a complete variational quantum classifier in ",{"type":21,"tag":26,"props":35852,"children":35853},{"href":17319},[35854],{"type":31,"value":4474},{"type":31,"value":35856},": angle encoding, a trainable entangling ansatz, and a gradient-descent loop:",{"type":21,"tag":129,"props":35858,"children":35860},{"className":131,"code":35859,"language":133,"meta":7,"style":7},"import pennylane as qml\nfrom pennylane import numpy as np\nfrom sklearn.datasets import make_moons\nfrom sklearn.model_selection import train_test_split\n\nn_qubits = 2\nn_layers = 3\n\ndev = qml.device(\"default.qubit\", wires=n_qubits)\n\n@qml.qnode(dev)\ndef circuit(weights, x):\n    # Data encoding: each feature becomes a rotation angle\n    qml.AngleEmbedding(x, wires=range(n_qubits), rotation=\"Y\")\n\n    # Trainable ansatz: rotations plus entangling CNOTs\n    qml.BasicEntanglerLayers(weights, wires=range(n_qubits))\n\n    return qml.expval(qml.PauliZ(0))\n\ndef variational_classifier(weights, bias, x):\n    return circuit(weights, x) + bias\n\ndef square_loss(labels, preds):\n    return np.mean((labels - qml.math.stack(preds)) ** 2)\n\ndef cost(weights, bias, X, Y):\n    preds = [variational_classifier(weights, bias, x) for x in X]\n    return square_loss(Y, preds)\n\n# Two-moons dataset, labels mapped to -1 \u002F +1 to match \u003CZ>\nX, y = make_moons(n_samples=200, noise=0.15, random_state=42)\ny = 2 * y - 1\nX_train, X_test, y_train, y_test = train_test_split(\n    X, y, test_size=0.3, random_state=42\n)\n\nshape = qml.BasicEntanglerLayers.shape(n_layers=n_layers, n_wires=n_qubits)\nrng = np.random.default_rng(42)\nweights = np.array(rng.normal(0, 0.1, shape), requires_grad=True)\nbias = np.array(0.0, requires_grad=True)\n\nopt = qml.AdamOptimizer(stepsize=0.1)\nbatch_size = 20\n\nfor step in range(60):\n    idx = np.random.randint(0, len(X_train), (batch_size,))\n    X_batch, y_batch = X_train[idx], y_train[idx]\n    weights, bias, _, _ = opt.step(cost, weights, bias, X_batch, y_batch)\n\n    if step % 15 == 0:\n        preds = [np.sign(variational_classifier(weights, bias, x)) for x in X_train]\n        acc = np.mean(np.array(preds) == y_train)\n        print(f\"Step {step:2d} | cost {cost(weights, bias, X_train, y_train):.4f} | acc {acc:.3f}\")\n\ntest_preds = [np.sign(variational_classifier(weights, bias, x)) for x in X_test]\nprint(f\"\\nTest accuracy: {np.mean(np.array(test_preds) == y_test):.3f}\")\n",[35861],{"type":21,"tag":104,"props":35862,"children":35863},{"__ignoreMap":7},[35864,35883,35910,35931,35952,35959,35975,35991,35998,36034,36041,36052,36068,36076,36119,36126,36134,36159,36166,36185,36192,36209,36230,36237,36254,36287,36294,36311,36345,36357,36364,36372,36442,36475,36492,36531,36538,36545,36589,36614,36664,36705,36712,36746,36763,36770,36803,36838,36856,36874,36882,36915,36950,36977,37068,37076,37110],{"type":21,"tag":139,"props":35865,"children":35866},{"class":141,"line":142},[35867,35871,35875,35879],{"type":21,"tag":139,"props":35868,"children":35869},{"style":146},[35870],{"type":31,"value":160},{"type":21,"tag":139,"props":35872,"children":35873},{"style":152},[35874],{"type":31,"value":5338},{"type":21,"tag":139,"props":35876,"children":35877},{"style":146},[35878],{"type":31,"value":5343},{"type":21,"tag":139,"props":35880,"children":35881},{"style":152},[35882],{"type":31,"value":5348},{"type":21,"tag":139,"props":35884,"children":35885},{"class":141,"line":168},[35886,35890,35894,35898,35902,35906],{"type":21,"tag":139,"props":35887,"children":35888},{"style":146},[35889],{"type":31,"value":149},{"type":21,"tag":139,"props":35891,"children":35892},{"style":152},[35893],{"type":31,"value":5338},{"type":21,"tag":139,"props":35895,"children":35896},{"style":146},[35897],{"type":31,"value":160},{"type":21,"tag":139,"props":35899,"children":35900},{"style":152},[35901],{"type":31,"value":8517},{"type":21,"tag":139,"props":35903,"children":35904},{"style":146},[35905],{"type":31,"value":5343},{"type":21,"tag":139,"props":35907,"children":35908},{"style":152},[35909],{"type":31,"value":8619},{"type":21,"tag":139,"props":35911,"children":35912},{"class":141,"line":190},[35913,35917,35922,35926],{"type":21,"tag":139,"props":35914,"children":35915},{"style":146},[35916],{"type":31,"value":149},{"type":21,"tag":139,"props":35918,"children":35919},{"style":152},[35920],{"type":31,"value":35921}," sklearn.datasets ",{"type":21,"tag":139,"props":35923,"children":35924},{"style":146},[35925],{"type":31,"value":160},{"type":21,"tag":139,"props":35927,"children":35928},{"style":152},[35929],{"type":31,"value":35930}," make_moons\n",{"type":21,"tag":139,"props":35932,"children":35933},{"class":141,"line":200},[35934,35938,35943,35947],{"type":21,"tag":139,"props":35935,"children":35936},{"style":146},[35937],{"type":31,"value":149},{"type":21,"tag":139,"props":35939,"children":35940},{"style":152},[35941],{"type":31,"value":35942}," sklearn.model_selection ",{"type":21,"tag":139,"props":35944,"children":35945},{"style":146},[35946],{"type":31,"value":160},{"type":21,"tag":139,"props":35948,"children":35949},{"style":152},[35950],{"type":31,"value":35951}," train_test_split\n",{"type":21,"tag":139,"props":35953,"children":35954},{"class":141,"line":226},[35955],{"type":21,"tag":139,"props":35956,"children":35957},{"emptyLinePlaceholder":194},[35958],{"type":31,"value":197},{"type":21,"tag":139,"props":35960,"children":35961},{"class":141,"line":234},[35962,35967,35971],{"type":21,"tag":139,"props":35963,"children":35964},{"style":152},[35965],{"type":31,"value":35966},"n_qubits ",{"type":21,"tag":139,"props":35968,"children":35969},{"style":146},[35970],{"type":31,"value":211},{"type":21,"tag":139,"props":35972,"children":35973},{"style":214},[35974],{"type":31,"value":1604},{"type":21,"tag":139,"props":35976,"children":35977},{"class":141,"line":273},[35978,35983,35987],{"type":21,"tag":139,"props":35979,"children":35980},{"style":152},[35981],{"type":31,"value":35982},"n_layers ",{"type":21,"tag":139,"props":35984,"children":35985},{"style":146},[35986],{"type":31,"value":211},{"type":21,"tag":139,"props":35988,"children":35989},{"style":214},[35990],{"type":31,"value":20454},{"type":21,"tag":139,"props":35992,"children":35993},{"class":141,"line":309},[35994],{"type":21,"tag":139,"props":35995,"children":35996},{"emptyLinePlaceholder":194},[35997],{"type":31,"value":197},{"type":21,"tag":139,"props":35999,"children":36000},{"class":141,"line":16},[36001,36005,36009,36013,36017,36021,36025,36029],{"type":21,"tag":139,"props":36002,"children":36003},{"style":152},[36004],{"type":31,"value":8713},{"type":21,"tag":139,"props":36006,"children":36007},{"style":146},[36008],{"type":31,"value":211},{"type":21,"tag":139,"props":36010,"children":36011},{"style":152},[36012],{"type":31,"value":5433},{"type":21,"tag":139,"props":36014,"children":36015},{"style":262},[36016],{"type":31,"value":5438},{"type":21,"tag":139,"props":36018,"children":36019},{"style":152},[36020],{"type":31,"value":259},{"type":21,"tag":139,"props":36022,"children":36023},{"style":923},[36024],{"type":31,"value":5447},{"type":21,"tag":139,"props":36026,"children":36027},{"style":146},[36028],{"type":31,"value":211},{"type":21,"tag":139,"props":36030,"children":36031},{"style":152},[36032],{"type":31,"value":36033},"n_qubits)\n",{"type":21,"tag":139,"props":36035,"children":36036},{"class":141,"line":361},[36037],{"type":21,"tag":139,"props":36038,"children":36039},{"emptyLinePlaceholder":194},[36040],{"type":31,"value":197},{"type":21,"tag":139,"props":36042,"children":36043},{"class":141,"line":369},[36044,36048],{"type":21,"tag":139,"props":36045,"children":36046},{"style":4509},[36047],{"type":31,"value":5474},{"type":21,"tag":139,"props":36049,"children":36050},{"style":152},[36051],{"type":31,"value":8765},{"type":21,"tag":139,"props":36053,"children":36054},{"class":141,"line":378},[36055,36059,36063],{"type":21,"tag":139,"props":36056,"children":36057},{"style":146},[36058],{"type":31,"value":5487},{"type":21,"tag":139,"props":36060,"children":36061},{"style":4509},[36062],{"type":31,"value":5492},{"type":21,"tag":139,"props":36064,"children":36065},{"style":152},[36066],{"type":31,"value":36067},"(weights, x):\n",{"type":21,"tag":139,"props":36069,"children":36070},{"class":141,"line":387},[36071],{"type":21,"tag":139,"props":36072,"children":36073},{"style":220},[36074],{"type":31,"value":36075},"    # Data encoding: each feature becomes a rotation angle\n",{"type":21,"tag":139,"props":36077,"children":36078},{"class":141,"line":396},[36079,36084,36088,36092,36096,36101,36106,36110,36115],{"type":21,"tag":139,"props":36080,"children":36081},{"style":152},[36082],{"type":31,"value":36083},"    qml.AngleEmbedding(x, ",{"type":21,"tag":139,"props":36085,"children":36086},{"style":923},[36087],{"type":31,"value":5447},{"type":21,"tag":139,"props":36089,"children":36090},{"style":146},[36091],{"type":31,"value":211},{"type":21,"tag":139,"props":36093,"children":36094},{"style":214},[36095],{"type":31,"value":17713},{"type":21,"tag":139,"props":36097,"children":36098},{"style":152},[36099],{"type":31,"value":36100},"(n_qubits), ",{"type":21,"tag":139,"props":36102,"children":36103},{"style":923},[36104],{"type":31,"value":36105},"rotation",{"type":21,"tag":139,"props":36107,"children":36108},{"style":146},[36109],{"type":31,"value":211},{"type":21,"tag":139,"props":36111,"children":36112},{"style":262},[36113],{"type":31,"value":36114},"\"Y\"",{"type":21,"tag":139,"props":36116,"children":36117},{"style":152},[36118],{"type":31,"value":270},{"type":21,"tag":139,"props":36120,"children":36121},{"class":141,"line":414},[36122],{"type":21,"tag":139,"props":36123,"children":36124},{"emptyLinePlaceholder":194},[36125],{"type":31,"value":197},{"type":21,"tag":139,"props":36127,"children":36128},{"class":141,"line":12589},[36129],{"type":21,"tag":139,"props":36130,"children":36131},{"style":220},[36132],{"type":31,"value":36133},"    # Trainable ansatz: rotations plus entangling CNOTs\n",{"type":21,"tag":139,"props":36135,"children":36136},{"class":141,"line":12606},[36137,36142,36146,36150,36154],{"type":21,"tag":139,"props":36138,"children":36139},{"style":152},[36140],{"type":31,"value":36141},"    qml.BasicEntanglerLayers(weights, ",{"type":21,"tag":139,"props":36143,"children":36144},{"style":923},[36145],{"type":31,"value":5447},{"type":21,"tag":139,"props":36147,"children":36148},{"style":146},[36149],{"type":31,"value":211},{"type":21,"tag":139,"props":36151,"children":36152},{"style":214},[36153],{"type":31,"value":17713},{"type":21,"tag":139,"props":36155,"children":36156},{"style":152},[36157],{"type":31,"value":36158},"(n_qubits))\n",{"type":21,"tag":139,"props":36160,"children":36161},{"class":141,"line":12622},[36162],{"type":21,"tag":139,"props":36163,"children":36164},{"emptyLinePlaceholder":194},[36165],{"type":31,"value":197},{"type":21,"tag":139,"props":36167,"children":36168},{"class":141,"line":12630},[36169,36173,36177,36181],{"type":21,"tag":139,"props":36170,"children":36171},{"style":146},[36172],{"type":31,"value":5582},{"type":21,"tag":139,"props":36174,"children":36175},{"style":152},[36176],{"type":31,"value":5587},{"type":21,"tag":139,"props":36178,"children":36179},{"style":214},[36180],{"type":31,"value":407},{"type":21,"tag":139,"props":36182,"children":36183},{"style":152},[36184],{"type":31,"value":5596},{"type":21,"tag":139,"props":36186,"children":36187},{"class":141,"line":17747},[36188],{"type":21,"tag":139,"props":36189,"children":36190},{"emptyLinePlaceholder":194},[36191],{"type":31,"value":197},{"type":21,"tag":139,"props":36193,"children":36194},{"class":141,"line":17765},[36195,36199,36204],{"type":21,"tag":139,"props":36196,"children":36197},{"style":146},[36198],{"type":31,"value":5487},{"type":21,"tag":139,"props":36200,"children":36201},{"style":4509},[36202],{"type":31,"value":36203}," variational_classifier",{"type":21,"tag":139,"props":36205,"children":36206},{"style":152},[36207],{"type":31,"value":36208},"(weights, bias, x):\n",{"type":21,"tag":139,"props":36210,"children":36211},{"class":141,"line":17790},[36212,36216,36221,36225],{"type":21,"tag":139,"props":36213,"children":36214},{"style":146},[36215],{"type":31,"value":5582},{"type":21,"tag":139,"props":36217,"children":36218},{"style":152},[36219],{"type":31,"value":36220}," circuit(weights, x) ",{"type":21,"tag":139,"props":36222,"children":36223},{"style":146},[36224],{"type":31,"value":1599},{"type":21,"tag":139,"props":36226,"children":36227},{"style":152},[36228],{"type":31,"value":36229}," bias\n",{"type":21,"tag":139,"props":36231,"children":36232},{"class":141,"line":17817},[36233],{"type":21,"tag":139,"props":36234,"children":36235},{"emptyLinePlaceholder":194},[36236],{"type":31,"value":197},{"type":21,"tag":139,"props":36238,"children":36239},{"class":141,"line":17843},[36240,36244,36249],{"type":21,"tag":139,"props":36241,"children":36242},{"style":146},[36243],{"type":31,"value":5487},{"type":21,"tag":139,"props":36245,"children":36246},{"style":4509},[36247],{"type":31,"value":36248}," square_loss",{"type":21,"tag":139,"props":36250,"children":36251},{"style":152},[36252],{"type":31,"value":36253},"(labels, preds):\n",{"type":21,"tag":139,"props":36255,"children":36256},{"class":141,"line":17852},[36257,36261,36266,36270,36275,36279,36283],{"type":21,"tag":139,"props":36258,"children":36259},{"style":146},[36260],{"type":31,"value":5582},{"type":21,"tag":139,"props":36262,"children":36263},{"style":152},[36264],{"type":31,"value":36265}," np.mean((labels ",{"type":21,"tag":139,"props":36267,"children":36268},{"style":146},[36269],{"type":31,"value":825},{"type":21,"tag":139,"props":36271,"children":36272},{"style":152},[36273],{"type":31,"value":36274}," qml.math.stack(preds)) ",{"type":21,"tag":139,"props":36276,"children":36277},{"style":146},[36278],{"type":31,"value":4801},{"type":21,"tag":139,"props":36280,"children":36281},{"style":214},[36282],{"type":31,"value":21021},{"type":21,"tag":139,"props":36284,"children":36285},{"style":152},[36286],{"type":31,"value":270},{"type":21,"tag":139,"props":36288,"children":36289},{"class":141,"line":17864},[36290],{"type":21,"tag":139,"props":36291,"children":36292},{"emptyLinePlaceholder":194},[36293],{"type":31,"value":197},{"type":21,"tag":139,"props":36295,"children":36296},{"class":141,"line":17872},[36297,36301,36306],{"type":21,"tag":139,"props":36298,"children":36299},{"style":146},[36300],{"type":31,"value":5487},{"type":21,"tag":139,"props":36302,"children":36303},{"style":4509},[36304],{"type":31,"value":36305}," cost",{"type":21,"tag":139,"props":36307,"children":36308},{"style":152},[36309],{"type":31,"value":36310},"(weights, bias, X, Y):\n",{"type":21,"tag":139,"props":36312,"children":36313},{"class":141,"line":17925},[36314,36319,36323,36328,36332,36336,36340],{"type":21,"tag":139,"props":36315,"children":36316},{"style":152},[36317],{"type":31,"value":36318},"    preds ",{"type":21,"tag":139,"props":36320,"children":36321},{"style":146},[36322],{"type":31,"value":211},{"type":21,"tag":139,"props":36324,"children":36325},{"style":152},[36326],{"type":31,"value":36327}," [variational_classifier(weights, bias, x) ",{"type":21,"tag":139,"props":36329,"children":36330},{"style":146},[36331],{"type":31,"value":1486},{"type":21,"tag":139,"props":36333,"children":36334},{"style":152},[36335],{"type":31,"value":34525},{"type":21,"tag":139,"props":36337,"children":36338},{"style":146},[36339],{"type":31,"value":1496},{"type":21,"tag":139,"props":36341,"children":36342},{"style":152},[36343],{"type":31,"value":36344}," X]\n",{"type":21,"tag":139,"props":36346,"children":36347},{"class":141,"line":26897},[36348,36352],{"type":21,"tag":139,"props":36349,"children":36350},{"style":146},[36351],{"type":31,"value":5582},{"type":21,"tag":139,"props":36353,"children":36354},{"style":152},[36355],{"type":31,"value":36356}," square_loss(Y, preds)\n",{"type":21,"tag":139,"props":36358,"children":36359},{"class":141,"line":26942},[36360],{"type":21,"tag":139,"props":36361,"children":36362},{"emptyLinePlaceholder":194},[36363],{"type":31,"value":197},{"type":21,"tag":139,"props":36365,"children":36366},{"class":141,"line":26955},[36367],{"type":21,"tag":139,"props":36368,"children":36369},{"style":220},[36370],{"type":31,"value":36371},"# Two-moons dataset, labels mapped to -1 \u002F +1 to match \u003CZ>\n",{"type":21,"tag":139,"props":36373,"children":36374},{"class":141,"line":26963},[36375,36380,36384,36389,36394,36398,36402,36406,36411,36415,36420,36424,36429,36433,36438],{"type":21,"tag":139,"props":36376,"children":36377},{"style":152},[36378],{"type":31,"value":36379},"X, y ",{"type":21,"tag":139,"props":36381,"children":36382},{"style":146},[36383],{"type":31,"value":211},{"type":21,"tag":139,"props":36385,"children":36386},{"style":152},[36387],{"type":31,"value":36388}," make_moons(",{"type":21,"tag":139,"props":36390,"children":36391},{"style":923},[36392],{"type":31,"value":36393},"n_samples",{"type":21,"tag":139,"props":36395,"children":36396},{"style":146},[36397],{"type":31,"value":211},{"type":21,"tag":139,"props":36399,"children":36400},{"style":214},[36401],{"type":31,"value":14106},{"type":21,"tag":139,"props":36403,"children":36404},{"style":152},[36405],{"type":31,"value":259},{"type":21,"tag":139,"props":36407,"children":36408},{"style":923},[36409],{"type":31,"value":36410},"noise",{"type":21,"tag":139,"props":36412,"children":36413},{"style":146},[36414],{"type":31,"value":211},{"type":21,"tag":139,"props":36416,"children":36417},{"style":214},[36418],{"type":31,"value":36419},"0.15",{"type":21,"tag":139,"props":36421,"children":36422},{"style":152},[36423],{"type":31,"value":259},{"type":21,"tag":139,"props":36425,"children":36426},{"style":923},[36427],{"type":31,"value":36428},"random_state",{"type":21,"tag":139,"props":36430,"children":36431},{"style":146},[36432],{"type":31,"value":211},{"type":21,"tag":139,"props":36434,"children":36435},{"style":214},[36436],{"type":31,"value":36437},"42",{"type":21,"tag":139,"props":36439,"children":36440},{"style":152},[36441],{"type":31,"value":270},{"type":21,"tag":139,"props":36443,"children":36444},{"class":141,"line":26979},[36445,36450,36454,36458,36462,36467,36471],{"type":21,"tag":139,"props":36446,"children":36447},{"style":152},[36448],{"type":31,"value":36449},"y ",{"type":21,"tag":139,"props":36451,"children":36452},{"style":146},[36453],{"type":31,"value":211},{"type":21,"tag":139,"props":36455,"children":36456},{"style":214},[36457],{"type":31,"value":21021},{"type":21,"tag":139,"props":36459,"children":36460},{"style":146},[36461],{"type":31,"value":30184},{"type":21,"tag":139,"props":36463,"children":36464},{"style":152},[36465],{"type":31,"value":36466}," y ",{"type":21,"tag":139,"props":36468,"children":36469},{"style":146},[36470],{"type":31,"value":825},{"type":21,"tag":139,"props":36472,"children":36473},{"style":214},[36474],{"type":31,"value":1536},{"type":21,"tag":139,"props":36476,"children":36477},{"class":141,"line":26997},[36478,36483,36487],{"type":21,"tag":139,"props":36479,"children":36480},{"style":152},[36481],{"type":31,"value":36482},"X_train, X_test, y_train, y_test ",{"type":21,"tag":139,"props":36484,"children":36485},{"style":146},[36486],{"type":31,"value":211},{"type":21,"tag":139,"props":36488,"children":36489},{"style":152},[36490],{"type":31,"value":36491}," train_test_split(\n",{"type":21,"tag":139,"props":36493,"children":36494},{"class":141,"line":27005},[36495,36500,36505,36509,36514,36518,36522,36526],{"type":21,"tag":139,"props":36496,"children":36497},{"style":152},[36498],{"type":31,"value":36499},"    X, y, ",{"type":21,"tag":139,"props":36501,"children":36502},{"style":923},[36503],{"type":31,"value":36504},"test_size",{"type":21,"tag":139,"props":36506,"children":36507},{"style":146},[36508],{"type":31,"value":211},{"type":21,"tag":139,"props":36510,"children":36511},{"style":214},[36512],{"type":31,"value":36513},"0.3",{"type":21,"tag":139,"props":36515,"children":36516},{"style":152},[36517],{"type":31,"value":259},{"type":21,"tag":139,"props":36519,"children":36520},{"style":923},[36521],{"type":31,"value":36428},{"type":21,"tag":139,"props":36523,"children":36524},{"style":146},[36525],{"type":31,"value":211},{"type":21,"tag":139,"props":36527,"children":36528},{"style":214},[36529],{"type":31,"value":36530},"42\n",{"type":21,"tag":139,"props":36532,"children":36533},{"class":141,"line":27038},[36534],{"type":21,"tag":139,"props":36535,"children":36536},{"style":152},[36537],{"type":31,"value":270},{"type":21,"tag":139,"props":36539,"children":36540},{"class":141,"line":27055},[36541],{"type":21,"tag":139,"props":36542,"children":36543},{"emptyLinePlaceholder":194},[36544],{"type":31,"value":197},{"type":21,"tag":139,"props":36546,"children":36547},{"class":141,"line":27080},[36548,36553,36557,36562,36567,36571,36576,36581,36585],{"type":21,"tag":139,"props":36549,"children":36550},{"style":152},[36551],{"type":31,"value":36552},"shape ",{"type":21,"tag":139,"props":36554,"children":36555},{"style":146},[36556],{"type":31,"value":211},{"type":21,"tag":139,"props":36558,"children":36559},{"style":152},[36560],{"type":31,"value":36561}," qml.BasicEntanglerLayers.shape(",{"type":21,"tag":139,"props":36563,"children":36564},{"style":923},[36565],{"type":31,"value":36566},"n_layers",{"type":21,"tag":139,"props":36568,"children":36569},{"style":146},[36570],{"type":31,"value":211},{"type":21,"tag":139,"props":36572,"children":36573},{"style":152},[36574],{"type":31,"value":36575},"n_layers, ",{"type":21,"tag":139,"props":36577,"children":36578},{"style":923},[36579],{"type":31,"value":36580},"n_wires",{"type":21,"tag":139,"props":36582,"children":36583},{"style":146},[36584],{"type":31,"value":211},{"type":21,"tag":139,"props":36586,"children":36587},{"style":152},[36588],{"type":31,"value":36033},{"type":21,"tag":139,"props":36590,"children":36591},{"class":141,"line":27121},[36592,36597,36601,36606,36610],{"type":21,"tag":139,"props":36593,"children":36594},{"style":152},[36595],{"type":31,"value":36596},"rng ",{"type":21,"tag":139,"props":36598,"children":36599},{"style":146},[36600],{"type":31,"value":211},{"type":21,"tag":139,"props":36602,"children":36603},{"style":152},[36604],{"type":31,"value":36605}," np.random.default_rng(",{"type":21,"tag":139,"props":36607,"children":36608},{"style":214},[36609],{"type":31,"value":36437},{"type":21,"tag":139,"props":36611,"children":36612},{"style":152},[36613],{"type":31,"value":270},{"type":21,"tag":139,"props":36615,"children":36616},{"class":141,"line":27129},[36617,36622,36626,36631,36635,36639,36643,36648,36652,36656,36660],{"type":21,"tag":139,"props":36618,"children":36619},{"style":152},[36620],{"type":31,"value":36621},"weights ",{"type":21,"tag":139,"props":36623,"children":36624},{"style":146},[36625],{"type":31,"value":211},{"type":21,"tag":139,"props":36627,"children":36628},{"style":152},[36629],{"type":31,"value":36630}," np.array(rng.normal(",{"type":21,"tag":139,"props":36632,"children":36633},{"style":214},[36634],{"type":31,"value":407},{"type":21,"tag":139,"props":36636,"children":36637},{"style":152},[36638],{"type":31,"value":259},{"type":21,"tag":139,"props":36640,"children":36641},{"style":214},[36642],{"type":31,"value":8553},{"type":21,"tag":139,"props":36644,"children":36645},{"style":152},[36646],{"type":31,"value":36647},", shape), ",{"type":21,"tag":139,"props":36649,"children":36650},{"style":923},[36651],{"type":31,"value":8655},{"type":21,"tag":139,"props":36653,"children":36654},{"style":146},[36655],{"type":31,"value":211},{"type":21,"tag":139,"props":36657,"children":36658},{"style":214},[36659],{"type":31,"value":8664},{"type":21,"tag":139,"props":36661,"children":36662},{"style":152},[36663],{"type":31,"value":270},{"type":21,"tag":139,"props":36665,"children":36666},{"class":141,"line":27163},[36667,36672,36676,36681,36685,36689,36693,36697,36701],{"type":21,"tag":139,"props":36668,"children":36669},{"style":152},[36670],{"type":31,"value":36671},"bias ",{"type":21,"tag":139,"props":36673,"children":36674},{"style":146},[36675],{"type":31,"value":211},{"type":21,"tag":139,"props":36677,"children":36678},{"style":152},[36679],{"type":31,"value":36680}," np.array(",{"type":21,"tag":139,"props":36682,"children":36683},{"style":214},[36684],{"type":31,"value":12565},{"type":21,"tag":139,"props":36686,"children":36687},{"style":152},[36688],{"type":31,"value":259},{"type":21,"tag":139,"props":36690,"children":36691},{"style":923},[36692],{"type":31,"value":8655},{"type":21,"tag":139,"props":36694,"children":36695},{"style":146},[36696],{"type":31,"value":211},{"type":21,"tag":139,"props":36698,"children":36699},{"style":214},[36700],{"type":31,"value":8664},{"type":21,"tag":139,"props":36702,"children":36703},{"style":152},[36704],{"type":31,"value":270},{"type":21,"tag":139,"props":36706,"children":36707},{"class":141,"line":27277},[36708],{"type":21,"tag":139,"props":36709,"children":36710},{"emptyLinePlaceholder":194},[36711],{"type":31,"value":197},{"type":21,"tag":139,"props":36713,"children":36714},{"class":141,"line":27285},[36715,36720,36724,36729,36734,36738,36742],{"type":21,"tag":139,"props":36716,"children":36717},{"style":152},[36718],{"type":31,"value":36719},"opt ",{"type":21,"tag":139,"props":36721,"children":36722},{"style":146},[36723],{"type":31,"value":211},{"type":21,"tag":139,"props":36725,"children":36726},{"style":152},[36727],{"type":31,"value":36728}," qml.AdamOptimizer(",{"type":21,"tag":139,"props":36730,"children":36731},{"style":923},[36732],{"type":31,"value":36733},"stepsize",{"type":21,"tag":139,"props":36735,"children":36736},{"style":146},[36737],{"type":31,"value":211},{"type":21,"tag":139,"props":36739,"children":36740},{"style":214},[36741],{"type":31,"value":8553},{"type":21,"tag":139,"props":36743,"children":36744},{"style":152},[36745],{"type":31,"value":270},{"type":21,"tag":139,"props":36747,"children":36748},{"class":141,"line":27330},[36749,36754,36758],{"type":21,"tag":139,"props":36750,"children":36751},{"style":152},[36752],{"type":31,"value":36753},"batch_size ",{"type":21,"tag":139,"props":36755,"children":36756},{"style":146},[36757],{"type":31,"value":211},{"type":21,"tag":139,"props":36759,"children":36760},{"style":214},[36761],{"type":31,"value":36762}," 20\n",{"type":21,"tag":139,"props":36764,"children":36765},{"class":141,"line":27348},[36766],{"type":21,"tag":139,"props":36767,"children":36768},{"emptyLinePlaceholder":194},[36769],{"type":31,"value":197},{"type":21,"tag":139,"props":36771,"children":36772},{"class":141,"line":27356},[36773,36777,36782,36786,36790,36794,36799],{"type":21,"tag":139,"props":36774,"children":36775},{"style":146},[36776],{"type":31,"value":1486},{"type":21,"tag":139,"props":36778,"children":36779},{"style":152},[36780],{"type":31,"value":36781}," step ",{"type":21,"tag":139,"props":36783,"children":36784},{"style":146},[36785],{"type":31,"value":1496},{"type":21,"tag":139,"props":36787,"children":36788},{"style":214},[36789],{"type":31,"value":7417},{"type":21,"tag":139,"props":36791,"children":36792},{"style":152},[36793],{"type":31,"value":953},{"type":21,"tag":139,"props":36795,"children":36796},{"style":214},[36797],{"type":31,"value":36798},"60",{"type":21,"tag":139,"props":36800,"children":36801},{"style":152},[36802],{"type":31,"value":7430},{"type":21,"tag":139,"props":36804,"children":36805},{"class":141,"line":27442},[36806,36811,36815,36820,36824,36828,36833],{"type":21,"tag":139,"props":36807,"children":36808},{"style":152},[36809],{"type":31,"value":36810},"    idx ",{"type":21,"tag":139,"props":36812,"children":36813},{"style":146},[36814],{"type":31,"value":211},{"type":21,"tag":139,"props":36816,"children":36817},{"style":152},[36818],{"type":31,"value":36819}," np.random.randint(",{"type":21,"tag":139,"props":36821,"children":36822},{"style":214},[36823],{"type":31,"value":407},{"type":21,"tag":139,"props":36825,"children":36826},{"style":152},[36827],{"type":31,"value":259},{"type":21,"tag":139,"props":36829,"children":36830},{"style":214},[36831],{"type":31,"value":36832},"len",{"type":21,"tag":139,"props":36834,"children":36835},{"style":152},[36836],{"type":31,"value":36837},"(X_train), (batch_size,))\n",{"type":21,"tag":139,"props":36839,"children":36841},{"class":141,"line":36840},48,[36842,36847,36851],{"type":21,"tag":139,"props":36843,"children":36844},{"style":152},[36845],{"type":31,"value":36846},"    X_batch, y_batch ",{"type":21,"tag":139,"props":36848,"children":36849},{"style":146},[36850],{"type":31,"value":211},{"type":21,"tag":139,"props":36852,"children":36853},{"style":152},[36854],{"type":31,"value":36855}," X_train[idx], y_train[idx]\n",{"type":21,"tag":139,"props":36857,"children":36859},{"class":141,"line":36858},49,[36860,36865,36869],{"type":21,"tag":139,"props":36861,"children":36862},{"style":152},[36863],{"type":31,"value":36864},"    weights, bias, _, _ ",{"type":21,"tag":139,"props":36866,"children":36867},{"style":146},[36868],{"type":31,"value":211},{"type":21,"tag":139,"props":36870,"children":36871},{"style":152},[36872],{"type":31,"value":36873}," opt.step(cost, weights, bias, X_batch, y_batch)\n",{"type":21,"tag":139,"props":36875,"children":36877},{"class":141,"line":36876},50,[36878],{"type":21,"tag":139,"props":36879,"children":36880},{"emptyLinePlaceholder":194},[36881],{"type":31,"value":197},{"type":21,"tag":139,"props":36883,"children":36885},{"class":141,"line":36884},51,[36886,36890,36894,36898,36902,36907,36911],{"type":21,"tag":139,"props":36887,"children":36888},{"style":146},[36889],{"type":31,"value":19523},{"type":21,"tag":139,"props":36891,"children":36892},{"style":152},[36893],{"type":31,"value":36781},{"type":21,"tag":139,"props":36895,"children":36896},{"style":146},[36897],{"type":31,"value":28243},{"type":21,"tag":139,"props":36899,"children":36900},{"style":214},[36901],{"type":31,"value":20140},{"type":21,"tag":139,"props":36903,"children":36904},{"style":146},[36905],{"type":31,"value":36906}," ==",{"type":21,"tag":139,"props":36908,"children":36909},{"style":214},[36910],{"type":31,"value":33759},{"type":21,"tag":139,"props":36912,"children":36913},{"style":152},[36914],{"type":31,"value":26809},{"type":21,"tag":139,"props":36916,"children":36918},{"class":141,"line":36917},52,[36919,36924,36928,36933,36937,36941,36945],{"type":21,"tag":139,"props":36920,"children":36921},{"style":152},[36922],{"type":31,"value":36923},"        preds ",{"type":21,"tag":139,"props":36925,"children":36926},{"style":146},[36927],{"type":31,"value":211},{"type":21,"tag":139,"props":36929,"children":36930},{"style":152},[36931],{"type":31,"value":36932}," [np.sign(variational_classifier(weights, bias, x)) ",{"type":21,"tag":139,"props":36934,"children":36935},{"style":146},[36936],{"type":31,"value":1486},{"type":21,"tag":139,"props":36938,"children":36939},{"style":152},[36940],{"type":31,"value":34525},{"type":21,"tag":139,"props":36942,"children":36943},{"style":146},[36944],{"type":31,"value":1496},{"type":21,"tag":139,"props":36946,"children":36947},{"style":152},[36948],{"type":31,"value":36949}," X_train]\n",{"type":21,"tag":139,"props":36951,"children":36953},{"class":141,"line":36952},53,[36954,36959,36963,36968,36972],{"type":21,"tag":139,"props":36955,"children":36956},{"style":152},[36957],{"type":31,"value":36958},"        acc ",{"type":21,"tag":139,"props":36960,"children":36961},{"style":146},[36962],{"type":31,"value":211},{"type":21,"tag":139,"props":36964,"children":36965},{"style":152},[36966],{"type":31,"value":36967}," np.mean(np.array(preds) ",{"type":21,"tag":139,"props":36969,"children":36970},{"style":146},[36971],{"type":31,"value":7335},{"type":21,"tag":139,"props":36973,"children":36974},{"style":152},[36975],{"type":31,"value":36976}," y_train)\n",{"type":21,"tag":139,"props":36978,"children":36980},{"class":141,"line":36979},54,[36981,36985,36989,36993,36998,37002,37007,37011,37015,37020,37024,37029,37033,37037,37042,37046,37051,37056,37060,37064],{"type":21,"tag":139,"props":36982,"children":36983},{"style":214},[36984],{"type":31,"value":34683},{"type":21,"tag":139,"props":36986,"children":36987},{"style":152},[36988],{"type":31,"value":953},{"type":21,"tag":139,"props":36990,"children":36991},{"style":146},[36992],{"type":31,"value":7524},{"type":21,"tag":139,"props":36994,"children":36995},{"style":262},[36996],{"type":31,"value":36997},"\"Step ",{"type":21,"tag":139,"props":36999,"children":37000},{"style":214},[37001],{"type":31,"value":7534},{"type":21,"tag":139,"props":37003,"children":37004},{"style":152},[37005],{"type":31,"value":37006},"step",{"type":21,"tag":139,"props":37008,"children":37009},{"style":146},[37010],{"type":31,"value":34748},{"type":21,"tag":139,"props":37012,"children":37013},{"style":214},[37014],{"type":31,"value":7543},{"type":21,"tag":139,"props":37016,"children":37017},{"style":262},[37018],{"type":31,"value":37019}," | cost ",{"type":21,"tag":139,"props":37021,"children":37022},{"style":214},[37023],{"type":31,"value":7534},{"type":21,"tag":139,"props":37025,"children":37026},{"style":152},[37027],{"type":31,"value":37028},"cost(weights, bias, X_train, y_train)",{"type":21,"tag":139,"props":37030,"children":37031},{"style":146},[37032],{"type":31,"value":25590},{"type":21,"tag":139,"props":37034,"children":37035},{"style":214},[37036],{"type":31,"value":7543},{"type":21,"tag":139,"props":37038,"children":37039},{"style":262},[37040],{"type":31,"value":37041}," | acc ",{"type":21,"tag":139,"props":37043,"children":37044},{"style":214},[37045],{"type":31,"value":7534},{"type":21,"tag":139,"props":37047,"children":37048},{"style":152},[37049],{"type":31,"value":37050},"acc",{"type":21,"tag":139,"props":37052,"children":37053},{"style":146},[37054],{"type":31,"value":37055},":.3f",{"type":21,"tag":139,"props":37057,"children":37058},{"style":214},[37059],{"type":31,"value":7543},{"type":21,"tag":139,"props":37061,"children":37062},{"style":262},[37063],{"type":31,"value":15370},{"type":21,"tag":139,"props":37065,"children":37066},{"style":152},[37067],{"type":31,"value":270},{"type":21,"tag":139,"props":37069,"children":37071},{"class":141,"line":37070},55,[37072],{"type":21,"tag":139,"props":37073,"children":37074},{"emptyLinePlaceholder":194},[37075],{"type":31,"value":197},{"type":21,"tag":139,"props":37077,"children":37079},{"class":141,"line":37078},56,[37080,37085,37089,37093,37097,37101,37105],{"type":21,"tag":139,"props":37081,"children":37082},{"style":152},[37083],{"type":31,"value":37084},"test_preds ",{"type":21,"tag":139,"props":37086,"children":37087},{"style":146},[37088],{"type":31,"value":211},{"type":21,"tag":139,"props":37090,"children":37091},{"style":152},[37092],{"type":31,"value":36932},{"type":21,"tag":139,"props":37094,"children":37095},{"style":146},[37096],{"type":31,"value":1486},{"type":21,"tag":139,"props":37098,"children":37099},{"style":152},[37100],{"type":31,"value":34525},{"type":21,"tag":139,"props":37102,"children":37103},{"style":146},[37104],{"type":31,"value":1496},{"type":21,"tag":139,"props":37106,"children":37107},{"style":152},[37108],{"type":31,"value":37109}," X_test]\n",{"type":21,"tag":139,"props":37111,"children":37113},{"class":141,"line":37112},57,[37114,37118,37122,37126,37130,37135,37140,37144,37149,37153,37158,37162,37166,37170],{"type":21,"tag":139,"props":37115,"children":37116},{"style":214},[37117],{"type":31,"value":948},{"type":21,"tag":139,"props":37119,"children":37120},{"style":152},[37121],{"type":31,"value":953},{"type":21,"tag":139,"props":37123,"children":37124},{"style":146},[37125],{"type":31,"value":7524},{"type":21,"tag":139,"props":37127,"children":37128},{"style":262},[37129],{"type":31,"value":15370},{"type":21,"tag":139,"props":37131,"children":37132},{"style":214},[37133],{"type":31,"value":37134},"\\n",{"type":21,"tag":139,"props":37136,"children":37137},{"style":262},[37138],{"type":31,"value":37139},"Test accuracy: ",{"type":21,"tag":139,"props":37141,"children":37142},{"style":214},[37143],{"type":31,"value":7534},{"type":21,"tag":139,"props":37145,"children":37146},{"style":152},[37147],{"type":31,"value":37148},"np.mean(np.array(test_preds) ",{"type":21,"tag":139,"props":37150,"children":37151},{"style":146},[37152],{"type":31,"value":7335},{"type":21,"tag":139,"props":37154,"children":37155},{"style":152},[37156],{"type":31,"value":37157}," y_test)",{"type":21,"tag":139,"props":37159,"children":37160},{"style":146},[37161],{"type":31,"value":37055},{"type":21,"tag":139,"props":37163,"children":37164},{"style":214},[37165],{"type":31,"value":7543},{"type":21,"tag":139,"props":37167,"children":37168},{"style":262},[37169],{"type":31,"value":15370},{"type":21,"tag":139,"props":37171,"children":37172},{"style":152},[37173],{"type":31,"value":270},{"type":21,"tag":22,"props":37175,"children":37176},{},[37177,37179,37184],{"type":31,"value":37178},"Running it (PennyLane 0.45, ",{"type":21,"tag":104,"props":37180,"children":37182},{"className":37181},[],[37183],{"type":31,"value":5607},{"type":31,"value":37185},") gives:",{"type":21,"tag":129,"props":37187,"children":37190},{"className":37188,"code":37189,"language":31,"meta":7,"style":7},"language-text shiki shiki-themes github-dark","Step  0 | cost 1.6158 | acc 0.336\nStep 15 | cost 0.6775 | acc 0.764\nStep 30 | cost 0.6466 | acc 0.779\nStep 45 | cost 0.6372 | acc 0.850\n\nTest accuracy: 0.817\n",[37191],{"type":21,"tag":104,"props":37192,"children":37193},{"__ignoreMap":7},[37194,37202,37210,37218,37226,37233],{"type":21,"tag":139,"props":37195,"children":37196},{"class":141,"line":142},[37197],{"type":21,"tag":139,"props":37198,"children":37199},{},[37200],{"type":31,"value":37201},"Step  0 | cost 1.6158 | acc 0.336\n",{"type":21,"tag":139,"props":37203,"children":37204},{"class":141,"line":168},[37205],{"type":21,"tag":139,"props":37206,"children":37207},{},[37208],{"type":31,"value":37209},"Step 15 | cost 0.6775 | acc 0.764\n",{"type":21,"tag":139,"props":37211,"children":37212},{"class":141,"line":190},[37213],{"type":21,"tag":139,"props":37214,"children":37215},{},[37216],{"type":31,"value":37217},"Step 30 | cost 0.6466 | acc 0.779\n",{"type":21,"tag":139,"props":37219,"children":37220},{"class":141,"line":200},[37221],{"type":21,"tag":139,"props":37222,"children":37223},{},[37224],{"type":31,"value":37225},"Step 45 | cost 0.6372 | acc 0.850\n",{"type":21,"tag":139,"props":37227,"children":37228},{"class":141,"line":226},[37229],{"type":21,"tag":139,"props":37230,"children":37231},{"emptyLinePlaceholder":194},[37232],{"type":31,"value":197},{"type":21,"tag":139,"props":37234,"children":37235},{"class":141,"line":234},[37236],{"type":21,"tag":139,"props":37237,"children":37238},{},[37239],{"type":31,"value":37240},"Test accuracy: 0.817\n",{"type":21,"tag":22,"props":37242,"children":37243},{},[37244,37246,37251],{"type":31,"value":37245},"So it trains, and 82% on two moons is respectable. It is also worth noting what it doesn't do: an RBF-kernel SVM from scikit-learn scores ",{"type":21,"tag":16802,"props":37247,"children":37248},{},[37249],{"type":31,"value":37250},"0.983",{"type":31,"value":37252}," on the identical split, and fits in under a millisecond on your laptop. That comparison isn't a criticism of the code. It's the honest baseline that a lot of QML demos quietly omit.",{"type":21,"tag":22,"props":37254,"children":37255},{},[37256,37258,37264,37266,37270],{"type":31,"value":37257},"Try scaling it. Push ",{"type":21,"tag":104,"props":37259,"children":37261},{"className":37260},[],[37262],{"type":31,"value":37263},"n_qubits",{"type":31,"value":37265}," up, widen the ansatz, and watch the gradients shrink. You reproduce the barren-plateau effect on a ",{"type":21,"tag":26,"props":37267,"children":37268},{"href":3292},[37269],{"type":31,"value":9811},{"type":31,"value":37271}," in an afternoon, which is a far better education than reading about it.",{"type":21,"tag":41,"props":37273,"children":37275},{"id":37274},"whats-genuinely-promising",[37276],{"type":31,"value":37277},"What's genuinely promising",{"type":21,"tag":22,"props":37279,"children":37280},{},[37281],{"type":31,"value":37282},"None of the above means QML is a dead end. Three directions look genuinely worth pursuing, and they share a feature: they avoid the problems above rather than hoping to power through them.",{"type":21,"tag":22,"props":37284,"children":37285},{},[37286,37291,37293,37298,37300,37304],{"type":21,"tag":16802,"props":37287,"children":37288},{},[37289],{"type":31,"value":37290},"Quantum data instead of classical data.",{"type":31,"value":37292}," The data-loading bottleneck exists because we're forcing classical numbers into quantum states. If your data is ",{"type":21,"tag":12756,"props":37294,"children":37295},{},[37296],{"type":31,"value":37297},"already quantum",{"type":31,"value":37299}," (states produced by a physics experiment, molecular ground states, outputs of a quantum sensor), there's nothing to load. Learning tasks on quantum data have the cleanest theoretical case for advantage, and unlike most QML claims, the argument survives scrutiny. This overlaps heavily with where quantum computing is delivering results generally: physics and chemistry, not business analytics. Our ",{"type":21,"tag":26,"props":37301,"children":37302},{"href":16291},[37303],{"type":31,"value":33312},{"type":31,"value":37305}," covers the distinction.",{"type":21,"tag":22,"props":37307,"children":37308},{},[37309,37314],{"type":21,"tag":16802,"props":37310,"children":37311},{},[37312],{"type":31,"value":37313},"Quantum kernels for structured data.",{"type":31,"value":37315}," Because the quantum device only computes similarities, kernel methods sidestep barren plateaus entirely. There's no deep variational terrain to descend. For data with structure that maps naturally onto a quantum feature space (group-theoretic structure, certain periodic problems), there are constructed examples with provable separations. The honest caveat is that these are usually engineered problems rather than datasets anyone had lying around.",{"type":21,"tag":22,"props":37317,"children":37318},{},[37319,37324],{"type":21,"tag":16802,"props":37320,"children":37321},{},[37322],{"type":31,"value":37323},"Noise filtering.",{"type":31,"value":37325}," Notably, the Yu et al. comparison that found quantum models losing on every headline metric also identified noise filtering and false-positive control as areas where quantum approaches still looked promising. That's a narrow, specific niche, and narrow, particular niches are how technologies gain footholds.",{"type":21,"tag":41,"props":37327,"children":37329},{"id":37328},"where-this-leaves-you",[37330],{"type":31,"value":37331},"Where this leaves you",{"type":21,"tag":22,"props":37333,"children":37334},{},[37335,37337,37341,37342,37346],{"type":31,"value":37336},"If you're learning quantum computing, QML is still worth your time, only for the right reasons. The techniques transfer. Data encoding, ansatz design, gradient estimation, and the hybrid loop are the same skills that ",{"type":21,"tag":26,"props":37338,"children":37339},{"href":3610},[37340],{"type":31,"value":3613},{"type":31,"value":3615},{"type":21,"tag":26,"props":37343,"children":37344},{"href":1244},[37345],{"type":31,"value":2041},{"type":31,"value":37347}," need, and those have clearer near-term paths. Learning QML makes you better at variational quantum computing generally.",{"type":21,"tag":22,"props":37349,"children":37350},{},[37351,37353,37358],{"type":31,"value":37352},"What to avoid is building a business case on a speedup that hasn't been demonstrated. The same discipline applies here as in ",{"type":21,"tag":26,"props":37354,"children":37355},{"href":19115},[37356],{"type":31,"value":37357},"benchmarking hardware claims",{"type":31,"value":37359},": ask what the classical baseline was, ask whether data loading was counted, ask how numerous qubits the result scales to.",{"type":21,"tag":22,"props":37361,"children":37362},{},[37363,37368],{"type":21,"tag":26,"props":37364,"children":37365},{"href":30585},[37366],{"type":31,"value":37367},"Preskill's NISQ paper",{"type":31,"value":37369}," set the tone for this kind of honesty about near-term devices, and it has aged well precisely because it under-promised. QML would benefit from the same posture.",{"type":21,"tag":22,"props":37371,"children":37372},{},[37373,37375,37380,37382,37386],{"type":31,"value":37374},"The field is more interesting when you stop needing it to be revolutionary. Start with the ",{"type":21,"tag":26,"props":37376,"children":37377},{"href":17319},[37378],{"type":31,"value":37379},"PennyLane SDK guide",{"type":31,"value":37381},", keep the ",{"type":21,"tag":26,"props":37383,"children":37384},{"href":1142},[37385],{"type":31,"value":31146},{"type":31,"value":37387}," open, and run the experiments yourself. The evidence is more useful than the pitch.",{"type":21,"tag":1168,"props":37389,"children":37390},{},[37391],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":37393},[37394,37395,37396,37397,37398,37399,37400],{"id":35596,"depth":168,"text":35599},{"id":35674,"depth":168,"text":35677},{"id":35719,"depth":168,"text":35722},{"id":35765,"depth":168,"text":35768},{"id":35842,"depth":168,"text":35845},{"id":37274,"depth":168,"text":37277},{"id":37328,"depth":168,"text":37331},"content:blog:quantum-machine-learning-reality-check.md","blog\u002Fquantum-machine-learning-reality-check.md","blog\u002Fquantum-machine-learning-reality-check",{"_path":1131,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":37405,"description":37406,"date":25047,"author":11,"tags":37407,"readingTime":16,"body":37408,"_type":1187,"_id":37777,"_source":1189,"_file":37778,"_stem":37779,"_extension":1192},"Quantum Networking and Distributed Quantum Computing: Wiring QPUs Together","Building one enormous quantum processor gets harder the bigger it gets. Linking smaller ones is the alternative, and it depends on distributing entanglement between machines, which is far harder than it sounds.",[1207,30717,3396],{"type":18,"children":37409,"toc":37768},[37410,37415,37420,37439,37444,37450,37455,37465,37496,37506,37511,37517,37522,37533,37538,37566,37584,37590,37602,37607,37619,37624,37630,37635,37640,37645,37656,37662,37667,37676,37692,37703,37709,37714,37719,37724,37729,37735,37740,37757],{"type":21,"tag":22,"props":37411,"children":37412},{},[37413],{"type":31,"value":37414},"There is a ceiling problem in quantum hardware that doesn't get discussed as often as qubit counts do.",{"type":21,"tag":22,"props":37416,"children":37417},{},[37418],{"type":31,"value":37419},"Every approach to building a quantum processor gets harder as the device grows. Superconducting chips need a control line for essentially every qubit, and those lines carry heat into a dilution refrigerator that has a finite cooling budget. Trapped-ion chains get slower and more fragile as you add ions to a single trap. Crosstalk between neighbouring qubits rises with density. Fabrication yield (the probability that every qubit on a chip is good) falls off a cliff as area increases. None of these are fundamental physics barriers. They are engineering walls, and engineering walls have a habit of arriving sooner than expected.",{"type":21,"tag":22,"props":37421,"children":37422},{},[37423,37425,37430,37432,37437],{"type":31,"value":37424},"The alternative is the one classical computing took decades ago: stop building one bigger machine and start connecting smaller ones. That is what ",{"type":21,"tag":26,"props":37426,"children":37427},{"href":1074},[37428],{"type":31,"value":37429},"distributed quantum computing",{"type":31,"value":37431}," means, and it is why quantum networking has moved from a communications curiosity to a scaling strategy. When we ",{"type":21,"tag":26,"props":37433,"children":37434},{"href":19115},[37435],{"type":31,"value":37436},"read EO 14413 as a technical document",{"type":31,"value":37438},", distributed quantum computing showed up as a named five-year planning target, which is a fairly direct admission that nobody is confident the single-big-chip route gets all the way there.",{"type":21,"tag":22,"props":37440,"children":37441},{},[37442],{"type":31,"value":37443},"The catch is that connecting quantum computers is nothing like connecting classical ones.",{"type":21,"tag":41,"props":37445,"children":37447},{"id":37446},"three-different-things-people-call-quantum-networking",[37448],{"type":31,"value":37449},"Three different things people call \"quantum networking\"",{"type":21,"tag":22,"props":37451,"children":37452},{},[37453],{"type":31,"value":37454},"Before anything else, a disambiguation, because these get conflated constantly and the confusion makes most coverage of the topic unreadable.",{"type":21,"tag":22,"props":37456,"children":37457},{},[37458,37463],{"type":21,"tag":16802,"props":37459,"children":37460},{},[37461],{"type":31,"value":37462},"(a) Quantum networking for distributed computation.",{"type":31,"value":37464}," Linking two or more QPUs with a quantum channel so they behave as one larger computer. Quantum information genuinely moves between them. This is the subject of this post.",{"type":21,"tag":22,"props":37466,"children":37467},{},[37468,37473,37475,37480,37482,37488,37490,37494],{"type":21,"tag":16802,"props":37469,"children":37470},{},[37471],{"type":31,"value":37472},"(b) Quantum key distribution and the \"quantum internet.\"",{"type":31,"value":37474}," Using quantum states to establish a shared secret key whose security rests on physics rather than on computational hardness. This is a ",{"type":21,"tag":12756,"props":37476,"children":37477},{},[37478],{"type":31,"value":37479},"communications security",{"type":31,"value":37481}," technology, descending from ",{"type":21,"tag":26,"props":37483,"children":37485},{"href":37484},"\u002Fresearch\u002Fbennett-brassard-bb84-1984",[37486],{"type":31,"value":37487},"Bennett and Brassard's BB84 protocol",{"type":31,"value":37489},". It does not make any computer faster. It's also frequently misrepresented as the answer to the quantum threat against public-key cryptography. In practice that threat is being addressed by ",{"type":21,"tag":26,"props":37491,"children":37492},{"href":3883},[37493],{"type":31,"value":3964},{"type":31,"value":37495},", which is software you deploy today, not hardware that needs new fibre.",{"type":21,"tag":22,"props":37497,"children":37498},{},[37499,37504],{"type":21,"tag":16802,"props":37500,"children":37501},{},[37502],{"type":31,"value":37503},"(c) Classical networking of quantum computers.",{"type":31,"value":37505}," Running one circuit on a QPU in Maryland from a laptop in Berlin. This is what every cloud quantum service already does. It is ordinary TCP\u002FIP carrying circuit descriptions and measurement results, and nothing quantum crosses the wire.",{"type":21,"tag":22,"props":37507,"children":37508},{},[37509],{"type":31,"value":37510},"Press releases blur (a) and (c) especially often. If a headline says \"networked quantum computers\" and the mechanism is an API, it's (c).",{"type":21,"tag":41,"props":37512,"children":37514},{"id":37513},"why-you-cannot-simply-amplify-a-qubit",[37515],{"type":31,"value":37516},"Why you cannot simply amplify a qubit",{"type":21,"tag":22,"props":37518,"children":37519},{},[37520],{"type":31,"value":37521},"Classical networking works because signals are copied. A repeater reads a degraded bit, decides whether it was a 0 or a 1, and transmits a fresh clean copy. Errors are stripped out at every hop, which is why a fibre link spans an ocean.",{"type":21,"tag":22,"props":37523,"children":37524},{},[37525,37527,37531],{"type":31,"value":37526},"Quantum information forbids this. The no-cloning theorem says there is no operation that duplicates an arbitrary unknown quantum state. There is no such thing as reading a qubit to see what it is and sending a fresh one, because measurement collapses the state and destroys the ",{"type":21,"tag":26,"props":37528,"children":37529},{"href":3070},[37530],{"type":31,"value":30686},{"type":31,"value":37532}," you were trying to preserve. A quantum repeater that worked like a classical repeater would be a quantum repeater that deletes your data.",{"type":21,"tag":22,"props":37534,"children":37535},{},[37536],{"type":31,"value":37537},"Meanwhile the physical channel is brutally lossy. Photons in optical fibre attenuate exponentially with distance, and unlike classical light you can't compensate by turning up the power. A single photon either arrives or it doesn't. Beyond a few hundred kilometres, the odds of a photon surviving the trip get small enough that you'd wait a long time for one success.",{"type":21,"tag":22,"props":37539,"children":37540},{},[37541,37543,37550,37552,37557,37559,37564],{"type":31,"value":37542},"Quantum repeaters solve this by a genuinely different mechanism. Rather than relaying the qubit, they relay ",{"type":21,"tag":12756,"props":37544,"children":37545},{},[37546],{"type":21,"tag":26,"props":37547,"children":37548},{"href":1150},[37549],{"type":31,"value":4235},{"type":31,"value":37551},". Split a long link into short segments. Establish an entangled pair across each segment independently: short hops, so the loss per hop is manageable, and success is heralded, meaning you know when it worked and simply retry when it didn't. Then perform ",{"type":21,"tag":16802,"props":37553,"children":37554},{},[37555],{"type":31,"value":37556},"entanglement swapping",{"type":31,"value":37558},": at each intermediate node, jointly measure the two local halves of two adjacent pairs in the ",{"type":21,"tag":26,"props":37560,"children":37561},{"href":489},[37562],{"type":31,"value":37563},"Bell basis",{"type":31,"value":37565},". That measurement consumes both short pairs and leaves the two far-end qubits entangled with each other, despite never having interacted. Chain this along the route and you have entanglement spanning the whole distance.",{"type":21,"tag":22,"props":37567,"children":37568},{},[37569,37571,37575,37577,37582],{"type":31,"value":37570},"The ingredients this demands are exactly the tough parts: heralded entanglement generation, quantum memories that hold a half-pair coherently while the neighbouring segment keeps retrying, and some form of purification or error correction to keep ",{"type":21,"tag":26,"props":37572,"children":37573},{"href":18181},[37574],{"type":31,"value":13086},{"type":31,"value":37576}," from degrading across hops. ",{"type":21,"tag":26,"props":37578,"children":37579},{"href":4143},[37580],{"type":31,"value":37581},"Decoherence",{"type":31,"value":37583}," in the memory sets a hard clock on the whole procedure. If a stored qubit dies while its partner segment is still failing, the attempt is wasted.",{"type":21,"tag":41,"props":37585,"children":37587},{"id":37586},"teleportation-is-the-transport-primitive",[37588],{"type":31,"value":37589},"Teleportation is the transport primitive",{"type":21,"tag":22,"props":37591,"children":37592},{},[37593,37595,37600],{"type":31,"value":37594},"Once two nodes share an entangled pair, moving an actual qubit between them is a solved protocol: ",{"type":21,"tag":26,"props":37596,"children":37597},{"href":25783},[37598],{"type":31,"value":37599},"quantum teleportation",{"type":31,"value":37601},", from Bennett and colleagues in 1993.",{"type":21,"tag":22,"props":37603,"children":37604},{},[37605],{"type":31,"value":37606},"The sender performs a joint measurement on the qubit to be transmitted and their half of the entangled pair, obtaining two classical bits. Those bits are sent over an ordinary classical channel. The receiver applies one of four corrections determined by those bits, and their half of the pair becomes the original state. One entangled pair and two classical bits per qubit transported.",{"type":21,"tag":22,"props":37608,"children":37609},{},[37610,37612,37617],{"type":31,"value":37611},"Two consequences are worth stating explicitly because both get mangled in popular coverage. First, the original state is destroyed by the sender's measurement. Teleportation moves a qubit, it does not copy one, which is precisely how it stays consistent with no-cloning. Second, ",{"type":21,"tag":16802,"props":37613,"children":37614},{},[37615],{"type":31,"value":37616},"the classical channel is mandatory",{"type":31,"value":37618},". Without those two bits the receiver's qubit is in a completely random state and useless. Entanglement alone signals nothing. Nothing travels faster than light, and no amount of entanglement between two labs lets them communicate without a conventional link.",{"type":21,"tag":22,"props":37620,"children":37621},{},[37622],{"type":31,"value":37623},"That second point is the whole reason quantum networks are not a physics loophole. They are a way to move fragile information, not a way to move it instantly.",{"type":21,"tag":41,"props":37625,"children":37627},{"id":37626},"the-interconnect-is-the-bottleneck",[37628],{"type":31,"value":37629},"The interconnect is the bottleneck",{"type":21,"tag":22,"props":37631,"children":37632},{},[37633],{"type":31,"value":37634},"Now the engineering reality of stitching QPUs together.",{"type":21,"tag":22,"props":37636,"children":37637},{},[37638],{"type":31,"value":37639},"Inside a single processor, two-qubit gates take microseconds or less and land fidelities that, on good hardware, exceed 99.9%. Between two processors, you must first generate a shared entangled pair over a photonic link (a probabilistic, lossy process) and only then teleport a gate or a qubit across it. Inter-node entanglement generation is currently orders of magnitude slower than local gates, and arrives at meaningfully lower fidelity.",{"type":21,"tag":22,"props":37641,"children":37642},{},[37643],{"type":31,"value":37644},"This changes how you have to think about programming such a machine. A distributed QPU is not a flat pool of qubits. It is a strongly non-uniform architecture where some pairs of qubits are cheap to entangle and others are extremely expensive, and where the expensive operations also happen to be the noisy ones. Circuit compilers have to partition algorithms to minimise cross-node operations, in much the same spirit as minimising communication in classical HPC, except the penalty for getting it wrong is not only latency but error accumulation. And because entanglement must be produced faster than the memories holding it decohere, a slow interconnect doesn't merely reduce throughput. Past a certain point it stops working at all.",{"type":21,"tag":22,"props":37646,"children":37647},{},[37648,37650,37654],{"type":31,"value":37649},"There is a genuinely appealing upside, though, and it's the reason serious people pursue this: ",{"type":21,"tag":26,"props":37651,"children":37652},{"href":4082},[37653],{"type":31,"value":16062},{"type":31,"value":37655}," needs physical qubit counts in the millions for useful algorithms, and no one has a credible plan to put a million high-quality qubits in one enclosure. Modularity is one of the few routes to that number that doesn't require a single manufacturing miracle.",{"type":21,"tag":41,"props":37657,"children":37659},{"id":37658},"modality-matters-here-more-than-usual",[37660],{"type":31,"value":37661},"Modality matters here more than usual",{"type":21,"tag":22,"props":37663,"children":37664},{},[37665],{"type":31,"value":37666},"The photonic interface is where hardware platforms diverge sharply.",{"type":21,"tag":22,"props":37668,"children":37669},{},[37670,37674],{"type":21,"tag":16802,"props":37671,"children":37672},{},[37673],{"type":31,"value":15599},{"type":31,"value":37675}," have a natural optical interface. An ion is excited with a laser and made to emit a single photon whose polarisation or frequency is entangled with the ion's internal state. The qubit is already coupled to light at optical wavelengths that fibre transmits well. IonQ argues that this photonic compatibility was a central reason it chose trapped ions in the first place, and that the platform is particularly suited to multi-QPU networking. That is an architectural argument from a provider whose commercial strategy depends on modular scaling, and should be read as advocacy rather than a neutral survey, but the underlying physics of atom-photon coupling is standard, well-studied quantum optics and is not in dispute.",{"type":21,"tag":22,"props":37677,"children":37678},{},[37679,37683,37685,37690],{"type":21,"tag":16802,"props":37680,"children":37681},{},[37682],{"type":31,"value":15592},{"type":31,"value":37684}," face a harder problem. They operate at microwave frequencies inside a millikelvin refrigerator, and microwave photons cannot travel any meaningful distance at room temperature. Thermal noise swamps them. Networking them optically requires ",{"type":21,"tag":16802,"props":37686,"children":37687},{},[37688],{"type":31,"value":37689},"microwave-to-optical transduction",{"type":31,"value":37691},": coherently converting a gigahertz photon into a telecom-wavelength one without destroying the quantum state. This is an active and legitimate research field, with electro-optic, optomechanical, magneto-optic and atomic-ensemble approaches all under investigation, but efficiency and added noise remain the limiting factors. IonQ makes this contrast a talking point, characterising the conversion process as slow and not yet well matched to quantum computers. The general difficulty is widely acknowledged in the literature, though the framing is naturally sharper coming from a competitor. NIST, among others, is building optical channels for remote microwave entanglement precisely because the problem is considered tractable rather than hopeless.",{"type":21,"tag":22,"props":37693,"children":37694},{},[37695,37697,37701],{"type":31,"value":37696},"Neutral atoms sit closer to the ion story optically. Photonic qubits are their own case, since the information is already in flight. Our ",{"type":21,"tag":26,"props":37698,"children":37699},{"href":19066},[37700],{"type":31,"value":21745},{"type":31,"value":37702}," covers the broader trade-offs.",{"type":21,"tag":41,"props":37704,"children":37706},{"id":37705},"where-this-stands",[37707],{"type":31,"value":37708},"Where this stands",{"type":21,"tag":22,"props":37710,"children":37711},{},[37712],{"type":31,"value":37713},"Plainly: early.",{"type":21,"tag":22,"props":37715,"children":37716},{},[37717],{"type":31,"value":37718},"The building blocks are real. Ion-photon entanglement (the first milestone, where a photon leaves a trapped ion carrying entanglement with it) has been demonstrated, and IonQ reports having done so outside an academic setting. Remote ion-ion entanglement has followed, with IonQ describing a setup that collects photons from two separate trap wells, interferes them at a shared detection hub, and leaves the two distant ions entangled. IonQ frames these as the first and second of four milestones on its own roadmap to photonic interconnects, with the remaining two being the transfer of that remote entanglement onto computation qubits via swap gates, and programmable multi-QPU entanglement using single-photon switching. In 2026 the company announced it had photonically interconnected two independent trapped-ion systems.",{"type":21,"tag":22,"props":37720,"children":37721},{},[37722],{"type":31,"value":37723},"Read those carefully. They are milestone announcements on a vendor's internal roadmap, and the public write-ups notably do not disclose entanglement rates, fidelities, or success probabilities: the numbers that would let anyone judge whether the link is quick and clean enough to compute across. IonQ itself acknowledges low entanglement rates as a current limitation. Its broader case (that networking is what carries quantum computing from research demos to commercial scale, and that modular systems are faster to build and easier to service than monolithic ones) is a coherent argument, but it is a firm describing why its own architecture wins.",{"type":21,"tag":22,"props":37725,"children":37726},{},[37727],{"type":31,"value":37728},"What is not in doubt is that the demonstrated capability sits far below what distributed computing requires. Getting two qubits in different traps entangled occasionally is a real physics achievement. Sustaining entanglement generation at rates and fidelities that let two processors execute a single fault-tolerant algorithm together is a different order of problem, and nobody has done it.",{"type":21,"tag":41,"props":37730,"children":37732},{"id":37731},"the-takeaway",[37733],{"type":31,"value":37734},"The takeaway",{"type":21,"tag":22,"props":37736,"children":37737},{},[37738],{"type":31,"value":37739},"Quantum networking is not a faster internet and not a security product, though it shares physics with one. It is a proposed answer to a hardware scaling wall, built on entanglement distribution, entanglement swapping, and teleportation, all constrained by the fact that quantum information cannot be copied and therefore cannot be amplified.",{"type":21,"tag":22,"props":37741,"children":37742},{},[37743,37745,37750,37751,37755],{"type":31,"value":37744},"If you're evaluating claims in this space, three questions do most of the work. Is the link genuinely quantum, or is it an API? What is the entanglement generation ",{"type":21,"tag":12756,"props":37746,"children":37747},{},[37748],{"type":31,"value":37749},"rate",{"type":31,"value":3615},{"type":21,"tag":12756,"props":37752,"children":37753},{},[37754],{"type":31,"value":13086},{"type":31,"value":37756}," between nodes, not whether entanglement was achieved once? And is the demonstration between two nodes in adjacent racks, or over a distance where photon loss genuinely bites?",{"type":21,"tag":22,"props":37758,"children":37759},{},[37760,37762,37766],{"type":31,"value":37761},"Answers to those tend to be absent from the announcements, which is itself informative. The ",{"type":21,"tag":26,"props":37763,"children":37764},{"href":1066},[37765],{"type":31,"value":31146},{"type":31,"value":37767}," covers the vocabulary if you want to read the primary sources yourself.",{"title":7,"searchDepth":168,"depth":168,"links":37769},[37770,37771,37772,37773,37774,37775,37776],{"id":37446,"depth":168,"text":37449},{"id":37513,"depth":168,"text":37516},{"id":37586,"depth":168,"text":37589},{"id":37626,"depth":168,"text":37629},{"id":37658,"depth":168,"text":37661},{"id":37705,"depth":168,"text":37708},{"id":37731,"depth":168,"text":37734},"content:blog:quantum-networking-distributed-computing.md","blog\u002Fquantum-networking-distributed-computing.md","blog\u002Fquantum-networking-distributed-computing",{"_path":37781,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":37782,"description":37783,"date":25047,"author":11,"tags":37784,"readingTime":369,"body":37785,"_type":1187,"_id":39867,"_source":1189,"_file":39868,"_stem":39869,"_extension":1192},"\u002Fblog\u002Fquantum-phase-estimation-tutorial","Quantum Phase Estimation: The Missing Link Between the QFT and Shor's Algorithm","A hands-on Qiskit tutorial on quantum phase estimation: phase kickback, the inverse QFT, and precision limits, with complete runnable code and real measured output.",[13,14,15],{"type":18,"children":37786,"toc":39855},[37787,37803,37821,37826,37834,37840,37845,37853,37858,37869,37908,37913,37925,37931,37936,37947,37955,37979,37987,37997,38002,38010,38030,38036,38047,38052,38062,38067,38095,38099,38135,39080,39084,39092,39102,39110,39115,39121,39153,39166,39174,39193,39198,39204,39209,39452,39456,39464,39476,39487,39495,39507,39519,39525,39548,39565,39593,39691,39715,39721,39732,39743,39785,39790,39796,39851],{"type":21,"tag":22,"props":37788,"children":37789},{},[37790,37791,37795,37797,37801],{"type":31,"value":4481},{"type":21,"tag":26,"props":37792,"children":37793},{"href":18016},[37794],{"type":31,"value":19961},{"type":31,"value":37796}," ended on a deliberately unsatisfying note: the ",{"type":21,"tag":26,"props":37798,"children":37799},{"href":33340},[37800],{"type":31,"value":33343},{"type":31,"value":37802}," is fast, exact, and useless on its own. You can't load its input efficiently and you can't read its output. Measure a transformed basis state and you get a uniformly random bitstring.",{"type":21,"tag":22,"props":37804,"children":37805},{},[37806,37808,37812,37814,37819],{"type":31,"value":37807},"This post is the sequel that resolves that. Quantum phase estimation (QPE) is the machine that turns the ",{"type":21,"tag":12756,"props":37809,"children":37810},{},[37811],{"type":31,"value":28836},{"type":31,"value":37813}," QFT into a readout primitive. It's the reason the QFT matters, and it is the algorithm sitting underneath ",{"type":21,"tag":26,"props":37815,"children":37816},{"href":1231},[37817],{"type":31,"value":37818},"Shor's",{"type":31,"value":37820},": Shor's is QPE applied to modular exponentiation, plus number theory.",{"type":21,"tag":22,"props":37822,"children":37823},{},[37824],{"type":31,"value":37825},"Read the QFT post first if you haven't. This one assumes the construction and won't rebuild it.",{"type":21,"tag":22,"props":37827,"children":37828},{},[37829],{"type":21,"tag":16802,"props":37830,"children":37831},{},[37832],{"type":31,"value":37833},"All code below was executed against Qiskit 2.5.0 and Qiskit Aer 0.17.2 on Python 3.11. The outputs shown are real.",{"type":21,"tag":41,"props":37835,"children":37837},{"id":37836},"the-problem-qpe-solves",[37838],{"type":31,"value":37839},"The problem QPE solves",{"type":21,"tag":22,"props":37841,"children":37842},{},[37843],{"type":31,"value":37844},"Given a unitary U and an eigenstate |ψ⟩ satisfying",{"type":21,"tag":129,"props":37846,"children":37848},{"code":37847},"U|ψ⟩ = e^{2πiθ} |ψ⟩\n",[37849],{"type":21,"tag":104,"props":37850,"children":37851},{"__ignoreMap":7},[37852],{"type":31,"value":37847},{"type":21,"tag":22,"props":37854,"children":37855},{},[37856],{"type":31,"value":37857},"estimate θ ∈ [0, 1).",{"type":21,"tag":22,"props":37859,"children":37860},{},[37861,37863,37868],{"type":31,"value":37862},"That sounds like a linear-algebra exercise, not an application. It is in fact one of the most consequential problems in the field, because ",{"type":21,"tag":12756,"props":37864,"children":37865},{},[37866],{"type":31,"value":37867},"enormous numbers of questions are secretly eigenvalue questions",{"type":31,"value":14627},{"type":21,"tag":1112,"props":37870,"children":37871},{},[37872,37882,37892],{"type":21,"tag":72,"props":37873,"children":37874},{},[37875,37880],{"type":21,"tag":16802,"props":37876,"children":37877},{},[37878],{"type":31,"value":37879},"What is a molecule's ground-state energy?",{"type":31,"value":37881}," Build U = e^{-iHt} for the molecular Hamiltonian H. Its eigenphases are the energy levels. Estimating θ estimates the energy.",{"type":21,"tag":72,"props":37883,"children":37884},{},[37885,37890],{"type":21,"tag":16802,"props":37886,"children":37887},{},[37888],{"type":31,"value":37889},"What is the order of a mod N?",{"type":31,"value":37891}," Build U|y⟩ = |ay mod N⟩. Its eigenphases are multiples of 1\u002Fr where r is the order. Estimating θ gives you r, and factoring falls out.",{"type":21,"tag":72,"props":37893,"children":37894},{},[37895,37900,37902,37907],{"type":21,"tag":16802,"props":37896,"children":37897},{},[37898],{"type":31,"value":37899},"How many solutions does an oracle mark?",{"type":31,"value":37901}," Amplitude estimation is QPE on the Grover operator, whose eigenphase encodes the count. That's the quantum-counting subroutine we flagged as a missing piece in the ",{"type":21,"tag":26,"props":37903,"children":37904},{"href":28998},[37905],{"type":31,"value":37906},"Grover tutorial",{"type":31,"value":6665},{"type":21,"tag":22,"props":37909,"children":37910},{},[37911],{"type":31,"value":37912},"One primitive, three flagship algorithms. That's why \"estimate an eigenphase\" is worth a dedicated circuit.",{"type":21,"tag":22,"props":37914,"children":37915},{},[37916,37918,37923],{"type":31,"value":37917},"Note the precondition, which people gloss over: you need to ",{"type":21,"tag":12756,"props":37919,"children":37920},{},[37921],{"type":31,"value":37922},"have",{"type":31,"value":37924}," the eigenstate |ψ⟩, or at least a state with decent overlap with it. Preparing good eigenstates is its own hard problem, and in chemistry it's often the binding constraint.",{"type":21,"tag":41,"props":37926,"children":37928},{"id":37927},"phase-kickback-the-key-insight",[37929],{"type":31,"value":37930},"Phase kickback: the key insight",{"type":21,"tag":22,"props":37932,"children":37933},{},[37934],{"type":31,"value":37935},"Here's the thing that makes QPE work, and it's worth slowing down for.",{"type":21,"tag":22,"props":37937,"children":37938},{},[37939,37941,37945],{"type":31,"value":37940},"A controlled-U applied to a control ",{"type":21,"tag":26,"props":37942,"children":37943},{"href":3051},[37944],{"type":31,"value":24476},{"type":31,"value":37946}," in state |1⟩ and a target in the eigenstate |ψ⟩ gives:",{"type":21,"tag":129,"props":37948,"children":37950},{"code":37949},"CU |1⟩|ψ⟩ = |1⟩ ⊗ U|ψ⟩ = |1⟩ ⊗ e^{2πiθ}|ψ⟩ = e^{2πiθ} |1⟩|ψ⟩\n",[37951],{"type":21,"tag":104,"props":37952,"children":37953},{"__ignoreMap":7},[37954],{"type":31,"value":37949},{"type":21,"tag":22,"props":37956,"children":37957},{},[37958,37960,37965,37967,37971,37973,37977],{"type":31,"value":37959},"The eigenstate came out unchanged. The phase e^{2πiθ} is a scalar, so it's now attached to the whole state, and since it only appeared for the |1⟩ branch of the control, it's a ",{"type":21,"tag":12756,"props":37961,"children":37962},{},[37963],{"type":31,"value":37964},"relative",{"type":31,"value":37966}," phase on the control qubit. Put the control in ",{"type":21,"tag":26,"props":37968,"children":37969},{"href":3070},[37970],{"type":31,"value":30686},{"type":31,"value":37972}," with a ",{"type":21,"tag":26,"props":37974,"children":37975},{"href":3083},[37976],{"type":31,"value":33509},{"type":31,"value":37978}," and you get:",{"type":21,"tag":129,"props":37980,"children":37982},{"code":37981},"CU (|0⟩+|1⟩)\u002F√2 ⊗ |ψ⟩ = (|0⟩ + e^{2πiθ}|1⟩)\u002F√2 ⊗ |ψ⟩\n",[37983],{"type":21,"tag":104,"props":37984,"children":37985},{"__ignoreMap":7},[37986],{"type":31,"value":37981},{"type":21,"tag":22,"props":37988,"children":37989},{},[37990,37995],{"type":21,"tag":16802,"props":37991,"children":37992},{},[37993],{"type":31,"value":37994},"The phase kicked back from the target onto the control.",{"type":31,"value":37996}," The target register is untouched and unentangled. It's a catalyst. All of the information now lives in the control's phase.",{"type":21,"tag":22,"props":37998,"children":37999},{},[38000],{"type":31,"value":38001},"Do this with n control qubits, and give control qubit k a controlled-U^(2^k) instead, so it picks up phase e^{2πi·2^k·θ}. The counting register ends up in:",{"type":21,"tag":129,"props":38003,"children":38005},{"code":38004},"(1\u002F√N) Σ_{x=0}^{N-1} e^{2πi·x·θ} |x⟩\n",[38006],{"type":21,"tag":104,"props":38007,"children":38008},{"__ignoreMap":7},[38009],{"type":31,"value":38004},{"type":21,"tag":22,"props":38011,"children":38012},{},[38013,38015,38021,38023,38028],{"type":31,"value":38014},"Stare at that and compare it to the QFT formula from the previous post: ",{"type":21,"tag":104,"props":38016,"children":38018},{"className":38017},[],[38019],{"type":31,"value":38020},"QFT|j⟩ = (1\u002F√N) Σ_x e^{2πi·jx\u002FN}|x⟩",{"type":31,"value":38022},". They are the ",{"type":21,"tag":12756,"props":38024,"children":38025},{},[38026],{"type":31,"value":38027},"same state",{"type":31,"value":38029},", with j\u002FN = θ. The counting register is holding the QFT of the number j = Nθ.",{"type":21,"tag":41,"props":38031,"children":38033},{"id":38032},"why-the-inverse-qft",[38034],{"type":31,"value":38035},"Why the inverse QFT",{"type":21,"tag":22,"props":38037,"children":38038},{},[38039,38041,38045],{"type":31,"value":38040},"So the controlled-U powers have written θ into the counting register's phases, and, as the QFT post hammered, phases are invisible to ",{"type":21,"tag":26,"props":38042,"children":38043},{"href":14867},[38044],{"type":31,"value":32906},{"type":31,"value":38046},". Measure now and you get uniform noise.",{"type":21,"tag":22,"props":38048,"children":38049},{},[38050],{"type":31,"value":38051},"But we know exactly what transform produced this state. So we undo it. Apply QFT⁻¹ and the register collapses to |j⟩ where j = Nθ, a plain binary integer you read off in one shot.",{"type":21,"tag":22,"props":38053,"children":38054},{},[38055,38057,38061],{"type":31,"value":38056},"That's the payoff the QFT post set up. The QFT direction moves position information into phases. The inverse direction pulls phase information back out into a readable number. QPE is the canonical example of the pattern we described there: the QFT is never the whole algorithm, it's the readout stage of a larger ",{"type":21,"tag":26,"props":38058,"children":38059},{"href":4330},[38060],{"type":31,"value":29891},{"type":31,"value":6665},{"type":21,"tag":22,"props":38063,"children":38064},{},[38065],{"type":31,"value":38066},"The full recipe:",{"type":21,"tag":68,"props":38068,"children":38069},{},[38070,38075,38080,38085,38090],{"type":21,"tag":72,"props":38071,"children":38072},{},[38073],{"type":31,"value":38074},"n counting qubits + enough qubits to hold |ψ⟩.",{"type":21,"tag":72,"props":38076,"children":38077},{},[38078],{"type":31,"value":38079},"Hadamard the counting register.",{"type":21,"tag":72,"props":38081,"children":38082},{},[38083],{"type":31,"value":38084},"For k = 0…n−1: apply controlled-U^(2^k) from counting qubit k onto the eigenstate register.",{"type":21,"tag":72,"props":38086,"children":38087},{},[38088],{"type":31,"value":38089},"Apply the inverse QFT to the counting register.",{"type":21,"tag":72,"props":38091,"children":38092},{},[38093],{"type":31,"value":38094},"Measure the counting register. The result, read as a binary fraction, is θ.",{"type":21,"tag":41,"props":38096,"children":38097},{"id":33568},[38098],{"type":31,"value":33571},{"type":21,"tag":22,"props":38100,"children":38101},{},[38102,38104,38110,38112,38118,38120,38125,38127,38133],{"type":31,"value":38103},"Simplest possible U with a known answer: the phase gate ",{"type":21,"tag":104,"props":38105,"children":38107},{"className":38106},[],[38108],{"type":31,"value":38109},"P(λ)",{"type":31,"value":38111},", which maps |1⟩ → e^{iλ}|1⟩. So |1⟩ is an eigenstate, and setting λ = 2πθ makes the eigenphase exactly θ. We'll reuse the ",{"type":21,"tag":104,"props":38113,"children":38115},{"className":38114},[],[38116],{"type":31,"value":38117},"qft",{"type":31,"value":38119}," function from the ",{"type":21,"tag":26,"props":38121,"children":38122},{"href":18016},[38123],{"type":31,"value":38124},"previous post",{"type":31,"value":38126}," and simply call ",{"type":21,"tag":104,"props":38128,"children":38130},{"className":38129},[],[38131],{"type":31,"value":38132},".inverse()",{"type":31,"value":38134}," on it.",{"type":21,"tag":129,"props":38136,"children":38138},{"code":38137,"language":133,"meta":7,"className":131,"style":7},"import numpy as np\nfrom qiskit import QuantumCircuit, transpile\nfrom qiskit_aer import AerSimulator\n\n\ndef qft_rotations(circuit, n):\n    if n == 0:\n        return circuit\n    n -= 1\n    circuit.h(n)\n    for qubit in range(n):\n        circuit.cp(np.pi \u002F 2 ** (n - qubit), qubit, n)\n    qft_rotations(circuit, n)\n    return circuit\n\n\ndef qft(n):\n    qc = QuantumCircuit(n, name=\"QFT\")\n    qft_rotations(qc, n)\n    for q in range(n \u002F\u002F 2):          # the swaps matter here, see below\n        qc.swap(q, n - q - 1)\n    return qc\n\n\ndef qpe_phase_gate(n_count, theta):\n    \"\"\"QPE for U = P(2*pi*theta), whose eigenstate is |1>.\"\"\"\n    qc = QuantumCircuit(n_count + 1, n_count)\n    qc.h(range(n_count))             # counting register in superposition\n    qc.x(n_count)                    # prepare the eigenstate |1>\n\n    for k in range(n_count):         # controlled-U^(2^k) = CP(2*pi*theta*2^k)\n        qc.cp(2 * np.pi * theta * 2 ** k, k, n_count)\n\n    qc.compose(qft(n_count).inverse(), qubits=range(n_count), inplace=True)\n    qc.measure(range(n_count), range(n_count))\n    return qc\n\n\nsim = AerSimulator()\nqc = qpe_phase_gate(4, 0.625)        # theta = 0.625 = 0.1010 in binary\ncounts = sim.run(transpile(qc, sim), shots=4096).result().get_counts()\n\nfor bits, c in sorted(counts.items(), key=lambda kv: -kv[1]):\n    est = int(bits, 2) \u002F 2 ** 4\n    print(f\"{bits} -> theta = {int(bits, 2)}\u002F16 = {est:.4f}   counts = {c}\")\n",[38139],{"type":21,"tag":104,"props":38140,"children":38141},{"__ignoreMap":7},[38142,38161,38180,38199,38206,38213,38228,38251,38262,38277,38284,38307,38338,38346,38357,38364,38371,38386,38417,38424,38465,38492,38503,38510,38517,38534,38542,38569,38590,38603,38610,38639,38686,38693,38733,38756,38767,38774,38781,38796,38835,38866,38873,38927,38973],{"type":21,"tag":139,"props":38143,"children":38144},{"class":141,"line":142},[38145,38149,38153,38157],{"type":21,"tag":139,"props":38146,"children":38147},{"style":146},[38148],{"type":31,"value":160},{"type":21,"tag":139,"props":38150,"children":38151},{"style":152},[38152],{"type":31,"value":8517},{"type":21,"tag":139,"props":38154,"children":38155},{"style":146},[38156],{"type":31,"value":5343},{"type":21,"tag":139,"props":38158,"children":38159},{"style":152},[38160],{"type":31,"value":8619},{"type":21,"tag":139,"props":38162,"children":38163},{"class":141,"line":168},[38164,38168,38172,38176],{"type":21,"tag":139,"props":38165,"children":38166},{"style":146},[38167],{"type":31,"value":149},{"type":21,"tag":139,"props":38169,"children":38170},{"style":152},[38171],{"type":31,"value":155},{"type":21,"tag":139,"props":38173,"children":38174},{"style":146},[38175],{"type":31,"value":160},{"type":21,"tag":139,"props":38177,"children":38178},{"style":152},[38179],{"type":31,"value":20056},{"type":21,"tag":139,"props":38181,"children":38182},{"class":141,"line":190},[38183,38187,38191,38195],{"type":21,"tag":139,"props":38184,"children":38185},{"style":146},[38186],{"type":31,"value":149},{"type":21,"tag":139,"props":38188,"children":38189},{"style":152},[38190],{"type":31,"value":178},{"type":21,"tag":139,"props":38192,"children":38193},{"style":146},[38194],{"type":31,"value":160},{"type":21,"tag":139,"props":38196,"children":38197},{"style":152},[38198],{"type":31,"value":187},{"type":21,"tag":139,"props":38200,"children":38201},{"class":141,"line":200},[38202],{"type":21,"tag":139,"props":38203,"children":38204},{"emptyLinePlaceholder":194},[38205],{"type":31,"value":197},{"type":21,"tag":139,"props":38207,"children":38208},{"class":141,"line":226},[38209],{"type":21,"tag":139,"props":38210,"children":38211},{"emptyLinePlaceholder":194},[38212],{"type":31,"value":197},{"type":21,"tag":139,"props":38214,"children":38215},{"class":141,"line":234},[38216,38220,38224],{"type":21,"tag":139,"props":38217,"children":38218},{"style":146},[38219],{"type":31,"value":5487},{"type":21,"tag":139,"props":38221,"children":38222},{"style":4509},[38223],{"type":31,"value":33725},{"type":21,"tag":139,"props":38225,"children":38226},{"style":152},[38227],{"type":31,"value":33730},{"type":21,"tag":139,"props":38229,"children":38230},{"class":141,"line":273},[38231,38235,38239,38243,38247],{"type":21,"tag":139,"props":38232,"children":38233},{"style":146},[38234],{"type":31,"value":19523},{"type":21,"tag":139,"props":38236,"children":38237},{"style":152},[38238],{"type":31,"value":33750},{"type":21,"tag":139,"props":38240,"children":38241},{"style":146},[38242],{"type":31,"value":7335},{"type":21,"tag":139,"props":38244,"children":38245},{"style":214},[38246],{"type":31,"value":33759},{"type":21,"tag":139,"props":38248,"children":38249},{"style":152},[38250],{"type":31,"value":26809},{"type":21,"tag":139,"props":38252,"children":38253},{"class":141,"line":309},[38254,38258],{"type":21,"tag":139,"props":38255,"children":38256},{"style":146},[38257],{"type":31,"value":33771},{"type":21,"tag":139,"props":38259,"children":38260},{"style":152},[38261],{"type":31,"value":33776},{"type":21,"tag":139,"props":38263,"children":38264},{"class":141,"line":16},[38265,38269,38273],{"type":21,"tag":139,"props":38266,"children":38267},{"style":152},[38268],{"type":31,"value":33784},{"type":21,"tag":139,"props":38270,"children":38271},{"style":146},[38272],{"type":31,"value":33789},{"type":21,"tag":139,"props":38274,"children":38275},{"style":214},[38276],{"type":31,"value":1536},{"type":21,"tag":139,"props":38278,"children":38279},{"class":141,"line":361},[38280],{"type":21,"tag":139,"props":38281,"children":38282},{"style":152},[38283],{"type":31,"value":33806},{"type":21,"tag":139,"props":38285,"children":38286},{"class":141,"line":369},[38287,38291,38295,38299,38303],{"type":21,"tag":139,"props":38288,"children":38289},{"style":146},[38290],{"type":31,"value":17024},{"type":21,"tag":139,"props":38292,"children":38293},{"style":152},[38294],{"type":31,"value":33818},{"type":21,"tag":139,"props":38296,"children":38297},{"style":146},[38298],{"type":31,"value":1496},{"type":21,"tag":139,"props":38300,"children":38301},{"style":214},[38302],{"type":31,"value":7417},{"type":21,"tag":139,"props":38304,"children":38305},{"style":152},[38306],{"type":31,"value":29684},{"type":21,"tag":139,"props":38308,"children":38309},{"class":141,"line":378},[38310,38314,38318,38322,38326,38330,38334],{"type":21,"tag":139,"props":38311,"children":38312},{"style":152},[38313],{"type":31,"value":33846},{"type":21,"tag":139,"props":38315,"children":38316},{"style":146},[38317],{"type":31,"value":5062},{"type":21,"tag":139,"props":38319,"children":38320},{"style":214},[38321],{"type":31,"value":21021},{"type":21,"tag":139,"props":38323,"children":38324},{"style":146},[38325],{"type":31,"value":20596},{"type":21,"tag":139,"props":38327,"children":38328},{"style":152},[38329],{"type":31,"value":33863},{"type":21,"tag":139,"props":38331,"children":38332},{"style":146},[38333],{"type":31,"value":825},{"type":21,"tag":139,"props":38335,"children":38336},{"style":152},[38337],{"type":31,"value":33872},{"type":21,"tag":139,"props":38339,"children":38340},{"class":141,"line":387},[38341],{"type":21,"tag":139,"props":38342,"children":38343},{"style":152},[38344],{"type":31,"value":38345},"    qft_rotations(circuit, n)\n",{"type":21,"tag":139,"props":38347,"children":38348},{"class":141,"line":396},[38349,38353],{"type":21,"tag":139,"props":38350,"children":38351},{"style":146},[38352],{"type":31,"value":5582},{"type":21,"tag":139,"props":38354,"children":38355},{"style":152},[38356],{"type":31,"value":33776},{"type":21,"tag":139,"props":38358,"children":38359},{"class":141,"line":414},[38360],{"type":21,"tag":139,"props":38361,"children":38362},{"emptyLinePlaceholder":194},[38363],{"type":31,"value":197},{"type":21,"tag":139,"props":38365,"children":38366},{"class":141,"line":12589},[38367],{"type":21,"tag":139,"props":38368,"children":38369},{"emptyLinePlaceholder":194},[38370],{"type":31,"value":197},{"type":21,"tag":139,"props":38372,"children":38373},{"class":141,"line":12606},[38374,38378,38382],{"type":21,"tag":139,"props":38375,"children":38376},{"style":146},[38377],{"type":31,"value":5487},{"type":21,"tag":139,"props":38379,"children":38380},{"style":4509},[38381],{"type":31,"value":34034},{"type":21,"tag":139,"props":38383,"children":38384},{"style":152},[38385],{"type":31,"value":29684},{"type":21,"tag":139,"props":38387,"children":38388},{"class":141,"line":12622},[38389,38393,38397,38401,38405,38409,38413],{"type":21,"tag":139,"props":38390,"children":38391},{"style":152},[38392],{"type":31,"value":17771},{"type":21,"tag":139,"props":38394,"children":38395},{"style":146},[38396],{"type":31,"value":211},{"type":21,"tag":139,"props":38398,"children":38399},{"style":152},[38400],{"type":31,"value":29352},{"type":21,"tag":139,"props":38402,"children":38403},{"style":923},[38404],{"type":31,"value":29357},{"type":21,"tag":139,"props":38406,"children":38407},{"style":146},[38408],{"type":31,"value":211},{"type":21,"tag":139,"props":38410,"children":38411},{"style":262},[38412],{"type":31,"value":34066},{"type":21,"tag":139,"props":38414,"children":38415},{"style":152},[38416],{"type":31,"value":270},{"type":21,"tag":139,"props":38418,"children":38419},{"class":141,"line":12630},[38420],{"type":21,"tag":139,"props":38421,"children":38422},{"style":152},[38423],{"type":31,"value":34078},{"type":21,"tag":139,"props":38425,"children":38426},{"class":141,"line":17747},[38427,38431,38435,38439,38443,38447,38451,38455,38460],{"type":21,"tag":139,"props":38428,"children":38429},{"style":146},[38430],{"type":31,"value":17024},{"type":21,"tag":139,"props":38432,"children":38433},{"style":152},[38434],{"type":31,"value":20310},{"type":21,"tag":139,"props":38436,"children":38437},{"style":146},[38438],{"type":31,"value":1496},{"type":21,"tag":139,"props":38440,"children":38441},{"style":214},[38442],{"type":31,"value":7417},{"type":21,"tag":139,"props":38444,"children":38445},{"style":152},[38446],{"type":31,"value":17041},{"type":21,"tag":139,"props":38448,"children":38449},{"style":146},[38450],{"type":31,"value":21016},{"type":21,"tag":139,"props":38452,"children":38453},{"style":214},[38454],{"type":31,"value":21021},{"type":21,"tag":139,"props":38456,"children":38457},{"style":152},[38458],{"type":31,"value":38459},"):          ",{"type":21,"tag":139,"props":38461,"children":38462},{"style":220},[38463],{"type":31,"value":38464},"# the swaps matter here, see below\n",{"type":21,"tag":139,"props":38466,"children":38467},{"class":141,"line":17765},[38468,38472,38476,38480,38484,38488],{"type":21,"tag":139,"props":38469,"children":38470},{"style":152},[38471],{"type":31,"value":35361},{"type":21,"tag":139,"props":38473,"children":38474},{"style":146},[38475],{"type":31,"value":825},{"type":21,"tag":139,"props":38477,"children":38478},{"style":152},[38479],{"type":31,"value":20310},{"type":21,"tag":139,"props":38481,"children":38482},{"style":146},[38483],{"type":31,"value":825},{"type":21,"tag":139,"props":38485,"children":38486},{"style":214},[38487],{"type":31,"value":17050},{"type":21,"tag":139,"props":38489,"children":38490},{"style":152},[38491],{"type":31,"value":270},{"type":21,"tag":139,"props":38493,"children":38494},{"class":141,"line":17790},[38495,38499],{"type":21,"tag":139,"props":38496,"children":38497},{"style":146},[38498],{"type":31,"value":5582},{"type":21,"tag":139,"props":38500,"children":38501},{"style":152},[38502],{"type":31,"value":17737},{"type":21,"tag":139,"props":38504,"children":38505},{"class":141,"line":17817},[38506],{"type":21,"tag":139,"props":38507,"children":38508},{"emptyLinePlaceholder":194},[38509],{"type":31,"value":197},{"type":21,"tag":139,"props":38511,"children":38512},{"class":141,"line":17843},[38513],{"type":21,"tag":139,"props":38514,"children":38515},{"emptyLinePlaceholder":194},[38516],{"type":31,"value":197},{"type":21,"tag":139,"props":38518,"children":38519},{"class":141,"line":17852},[38520,38524,38529],{"type":21,"tag":139,"props":38521,"children":38522},{"style":146},[38523],{"type":31,"value":5487},{"type":21,"tag":139,"props":38525,"children":38526},{"style":4509},[38527],{"type":31,"value":38528}," qpe_phase_gate",{"type":21,"tag":139,"props":38530,"children":38531},{"style":152},[38532],{"type":31,"value":38533},"(n_count, theta):\n",{"type":21,"tag":139,"props":38535,"children":38536},{"class":141,"line":17864},[38537],{"type":21,"tag":139,"props":38538,"children":38539},{"style":262},[38540],{"type":31,"value":38541},"    \"\"\"QPE for U = P(2*pi*theta), whose eigenstate is |1>.\"\"\"\n",{"type":21,"tag":139,"props":38543,"children":38544},{"class":141,"line":17872},[38545,38549,38553,38557,38561,38565],{"type":21,"tag":139,"props":38546,"children":38547},{"style":152},[38548],{"type":31,"value":17771},{"type":21,"tag":139,"props":38550,"children":38551},{"style":146},[38552],{"type":31,"value":211},{"type":21,"tag":139,"props":38554,"children":38555},{"style":152},[38556],{"type":31,"value":20477},{"type":21,"tag":139,"props":38558,"children":38559},{"style":146},[38560],{"type":31,"value":1599},{"type":21,"tag":139,"props":38562,"children":38563},{"style":214},[38564],{"type":31,"value":17050},{"type":21,"tag":139,"props":38566,"children":38567},{"style":152},[38568],{"type":31,"value":20490},{"type":21,"tag":139,"props":38570,"children":38571},{"class":141,"line":17925},[38572,38576,38580,38585],{"type":21,"tag":139,"props":38573,"children":38574},{"style":152},[38575],{"type":31,"value":29732},{"type":21,"tag":139,"props":38577,"children":38578},{"style":214},[38579],{"type":31,"value":17713},{"type":21,"tag":139,"props":38581,"children":38582},{"style":152},[38583],{"type":31,"value":38584},"(n_count))             ",{"type":21,"tag":139,"props":38586,"children":38587},{"style":220},[38588],{"type":31,"value":38589},"# counting register in superposition\n",{"type":21,"tag":139,"props":38591,"children":38592},{"class":141,"line":26897},[38593,38598],{"type":21,"tag":139,"props":38594,"children":38595},{"style":152},[38596],{"type":31,"value":38597},"    qc.x(n_count)                    ",{"type":21,"tag":139,"props":38599,"children":38600},{"style":220},[38601],{"type":31,"value":38602},"# prepare the eigenstate |1>\n",{"type":21,"tag":139,"props":38604,"children":38605},{"class":141,"line":26942},[38606],{"type":21,"tag":139,"props":38607,"children":38608},{"emptyLinePlaceholder":194},[38609],{"type":31,"value":197},{"type":21,"tag":139,"props":38611,"children":38612},{"class":141,"line":26955},[38613,38617,38621,38625,38629,38634],{"type":21,"tag":139,"props":38614,"children":38615},{"style":146},[38616],{"type":31,"value":17024},{"type":21,"tag":139,"props":38618,"children":38619},{"style":152},[38620],{"type":31,"value":35283},{"type":21,"tag":139,"props":38622,"children":38623},{"style":146},[38624],{"type":31,"value":1496},{"type":21,"tag":139,"props":38626,"children":38627},{"style":214},[38628],{"type":31,"value":7417},{"type":21,"tag":139,"props":38630,"children":38631},{"style":152},[38632],{"type":31,"value":38633},"(n_count):         ",{"type":21,"tag":139,"props":38635,"children":38636},{"style":220},[38637],{"type":31,"value":38638},"# controlled-U^(2^k) = CP(2*pi*theta*2^k)\n",{"type":21,"tag":139,"props":38640,"children":38641},{"class":141,"line":26963},[38642,38647,38651,38655,38660,38664,38669,38673,38677,38681],{"type":21,"tag":139,"props":38643,"children":38644},{"style":152},[38645],{"type":31,"value":38646},"        qc.cp(",{"type":21,"tag":139,"props":38648,"children":38649},{"style":214},[38650],{"type":31,"value":293},{"type":21,"tag":139,"props":38652,"children":38653},{"style":146},[38654],{"type":31,"value":30184},{"type":21,"tag":139,"props":38656,"children":38657},{"style":152},[38658],{"type":31,"value":38659}," np.pi ",{"type":21,"tag":139,"props":38661,"children":38662},{"style":146},[38663],{"type":31,"value":11406},{"type":21,"tag":139,"props":38665,"children":38666},{"style":152},[38667],{"type":31,"value":38668}," theta ",{"type":21,"tag":139,"props":38670,"children":38671},{"style":146},[38672],{"type":31,"value":11406},{"type":21,"tag":139,"props":38674,"children":38675},{"style":214},[38676],{"type":31,"value":21021},{"type":21,"tag":139,"props":38678,"children":38679},{"style":146},[38680],{"type":31,"value":20596},{"type":21,"tag":139,"props":38682,"children":38683},{"style":152},[38684],{"type":31,"value":38685}," k, k, n_count)\n",{"type":21,"tag":139,"props":38687,"children":38688},{"class":141,"line":26979},[38689],{"type":21,"tag":139,"props":38690,"children":38691},{"emptyLinePlaceholder":194},[38692],{"type":31,"value":197},{"type":21,"tag":139,"props":38694,"children":38695},{"class":141,"line":26997},[38696,38701,38705,38709,38713,38717,38721,38725,38729],{"type":21,"tag":139,"props":38697,"children":38698},{"style":152},[38699],{"type":31,"value":38700},"    qc.compose(qft(n_count).inverse(), ",{"type":21,"tag":139,"props":38702,"children":38703},{"style":923},[38704],{"type":31,"value":22844},{"type":21,"tag":139,"props":38706,"children":38707},{"style":146},[38708],{"type":31,"value":211},{"type":21,"tag":139,"props":38710,"children":38711},{"style":214},[38712],{"type":31,"value":17713},{"type":21,"tag":139,"props":38714,"children":38715},{"style":152},[38716],{"type":31,"value":20675},{"type":21,"tag":139,"props":38718,"children":38719},{"style":923},[38720],{"type":31,"value":30040},{"type":21,"tag":139,"props":38722,"children":38723},{"style":146},[38724],{"type":31,"value":211},{"type":21,"tag":139,"props":38726,"children":38727},{"style":214},[38728],{"type":31,"value":8664},{"type":21,"tag":139,"props":38730,"children":38731},{"style":152},[38732],{"type":31,"value":270},{"type":21,"tag":139,"props":38734,"children":38735},{"class":141,"line":27005},[38736,38740,38744,38748,38752],{"type":21,"tag":139,"props":38737,"children":38738},{"style":152},[38739],{"type":31,"value":30095},{"type":21,"tag":139,"props":38741,"children":38742},{"style":214},[38743],{"type":31,"value":17713},{"type":21,"tag":139,"props":38745,"children":38746},{"style":152},[38747],{"type":31,"value":20675},{"type":21,"tag":139,"props":38749,"children":38750},{"style":214},[38751],{"type":31,"value":17713},{"type":21,"tag":139,"props":38753,"children":38754},{"style":152},[38755],{"type":31,"value":20659},{"type":21,"tag":139,"props":38757,"children":38758},{"class":141,"line":27038},[38759,38763],{"type":21,"tag":139,"props":38760,"children":38761},{"style":146},[38762],{"type":31,"value":5582},{"type":21,"tag":139,"props":38764,"children":38765},{"style":152},[38766],{"type":31,"value":17737},{"type":21,"tag":139,"props":38768,"children":38769},{"class":141,"line":27055},[38770],{"type":21,"tag":139,"props":38771,"children":38772},{"emptyLinePlaceholder":194},[38773],{"type":31,"value":197},{"type":21,"tag":139,"props":38775,"children":38776},{"class":141,"line":27080},[38777],{"type":21,"tag":139,"props":38778,"children":38779},{"emptyLinePlaceholder":194},[38780],{"type":31,"value":197},{"type":21,"tag":139,"props":38782,"children":38783},{"class":141,"line":27121},[38784,38788,38792],{"type":21,"tag":139,"props":38785,"children":38786},{"style":152},[38787],{"type":31,"value":877},{"type":21,"tag":139,"props":38789,"children":38790},{"style":146},[38791],{"type":31,"value":211},{"type":21,"tag":139,"props":38793,"children":38794},{"style":152},[38795],{"type":31,"value":886},{"type":21,"tag":139,"props":38797,"children":38798},{"class":141,"line":27129},[38799,38803,38807,38812,38816,38820,38825,38830],{"type":21,"tag":139,"props":38800,"children":38801},{"style":152},[38802],{"type":31,"value":349},{"type":21,"tag":139,"props":38804,"children":38805},{"style":146},[38806],{"type":31,"value":211},{"type":21,"tag":139,"props":38808,"children":38809},{"style":152},[38810],{"type":31,"value":38811}," qpe_phase_gate(",{"type":21,"tag":139,"props":38813,"children":38814},{"style":214},[38815],{"type":31,"value":17918},{"type":21,"tag":139,"props":38817,"children":38818},{"style":152},[38819],{"type":31,"value":259},{"type":21,"tag":139,"props":38821,"children":38822},{"style":214},[38823],{"type":31,"value":38824},"0.625",{"type":21,"tag":139,"props":38826,"children":38827},{"style":152},[38828],{"type":31,"value":38829},")        ",{"type":21,"tag":139,"props":38831,"children":38832},{"style":220},[38833],{"type":31,"value":38834},"# theta = 0.625 = 0.1010 in binary\n",{"type":21,"tag":139,"props":38836,"children":38837},{"class":141,"line":27163},[38838,38842,38846,38850,38854,38858,38862],{"type":21,"tag":139,"props":38839,"children":38840},{"style":152},[38841],{"type":31,"value":911},{"type":21,"tag":139,"props":38843,"children":38844},{"style":146},[38845],{"type":31,"value":211},{"type":21,"tag":139,"props":38847,"children":38848},{"style":152},[38849],{"type":31,"value":30302},{"type":21,"tag":139,"props":38851,"children":38852},{"style":923},[38853],{"type":31,"value":926},{"type":21,"tag":139,"props":38855,"children":38856},{"style":146},[38857],{"type":31,"value":211},{"type":21,"tag":139,"props":38859,"children":38860},{"style":214},[38861],{"type":31,"value":935},{"type":21,"tag":139,"props":38863,"children":38864},{"style":152},[38865],{"type":31,"value":940},{"type":21,"tag":139,"props":38867,"children":38868},{"class":141,"line":27277},[38869],{"type":21,"tag":139,"props":38870,"children":38871},{"emptyLinePlaceholder":194},[38872],{"type":31,"value":197},{"type":21,"tag":139,"props":38874,"children":38875},{"class":141,"line":27285},[38876,38880,38885,38889,38894,38898,38902,38906,38910,38914,38918,38922],{"type":21,"tag":139,"props":38877,"children":38878},{"style":146},[38879],{"type":31,"value":1486},{"type":21,"tag":139,"props":38881,"children":38882},{"style":152},[38883],{"type":31,"value":38884}," bits, c ",{"type":21,"tag":139,"props":38886,"children":38887},{"style":146},[38888],{"type":31,"value":1496},{"type":21,"tag":139,"props":38890,"children":38891},{"style":214},[38892],{"type":31,"value":38893}," sorted",{"type":21,"tag":139,"props":38895,"children":38896},{"style":152},[38897],{"type":31,"value":34953},{"type":21,"tag":139,"props":38899,"children":38900},{"style":923},[38901],{"type":31,"value":4832},{"type":21,"tag":139,"props":38903,"children":38904},{"style":146},[38905],{"type":31,"value":25494},{"type":21,"tag":139,"props":38907,"children":38908},{"style":152},[38909],{"type":31,"value":34966},{"type":21,"tag":139,"props":38911,"children":38912},{"style":146},[38913],{"type":31,"value":825},{"type":21,"tag":139,"props":38915,"children":38916},{"style":152},[38917],{"type":31,"value":34975},{"type":21,"tag":139,"props":38919,"children":38920},{"style":214},[38921],{"type":31,"value":328},{"type":21,"tag":139,"props":38923,"children":38924},{"style":152},[38925],{"type":31,"value":38926},"]):\n",{"type":21,"tag":139,"props":38928,"children":38929},{"class":141,"line":27330},[38930,38935,38939,38944,38949,38953,38957,38961,38965,38969],{"type":21,"tag":139,"props":38931,"children":38932},{"style":152},[38933],{"type":31,"value":38934},"    est ",{"type":21,"tag":139,"props":38936,"children":38937},{"style":146},[38938],{"type":31,"value":211},{"type":21,"tag":139,"props":38940,"children":38941},{"style":214},[38942],{"type":31,"value":38943}," int",{"type":21,"tag":139,"props":38945,"children":38946},{"style":152},[38947],{"type":31,"value":38948},"(bits, ",{"type":21,"tag":139,"props":38950,"children":38951},{"style":214},[38952],{"type":31,"value":293},{"type":21,"tag":139,"props":38954,"children":38955},{"style":152},[38956],{"type":31,"value":1527},{"type":21,"tag":139,"props":38958,"children":38959},{"style":146},[38960],{"type":31,"value":5062},{"type":21,"tag":139,"props":38962,"children":38963},{"style":214},[38964],{"type":31,"value":21021},{"type":21,"tag":139,"props":38966,"children":38967},{"style":146},[38968],{"type":31,"value":20596},{"type":21,"tag":139,"props":38970,"children":38971},{"style":214},[38972],{"type":31,"value":20985},{"type":21,"tag":139,"props":38974,"children":38975},{"class":141,"line":27348},[38976,38980,38984,38988,38992,38996,39001,39005,39010,39015,39019,39023,39028,39032,39037,39041,39046,39050,39054,39059,39063,39068,39072,39076],{"type":21,"tag":139,"props":38977,"children":38978},{"style":214},[38979],{"type":31,"value":6212},{"type":21,"tag":139,"props":38981,"children":38982},{"style":152},[38983],{"type":31,"value":953},{"type":21,"tag":139,"props":38985,"children":38986},{"style":146},[38987],{"type":31,"value":7524},{"type":21,"tag":139,"props":38989,"children":38990},{"style":262},[38991],{"type":31,"value":15370},{"type":21,"tag":139,"props":38993,"children":38994},{"style":214},[38995],{"type":31,"value":7534},{"type":21,"tag":139,"props":38997,"children":38998},{"style":152},[38999],{"type":31,"value":39000},"bits",{"type":21,"tag":139,"props":39002,"children":39003},{"style":214},[39004],{"type":31,"value":7543},{"type":21,"tag":139,"props":39006,"children":39007},{"style":262},[39008],{"type":31,"value":39009}," -> theta = ",{"type":21,"tag":139,"props":39011,"children":39012},{"style":214},[39013],{"type":31,"value":39014},"{int",{"type":21,"tag":139,"props":39016,"children":39017},{"style":152},[39018],{"type":31,"value":38948},{"type":21,"tag":139,"props":39020,"children":39021},{"style":214},[39022],{"type":31,"value":293},{"type":21,"tag":139,"props":39024,"children":39025},{"style":152},[39026],{"type":31,"value":39027},")",{"type":21,"tag":139,"props":39029,"children":39030},{"style":214},[39031],{"type":31,"value":7543},{"type":21,"tag":139,"props":39033,"children":39034},{"style":262},[39035],{"type":31,"value":39036},"\u002F16 = ",{"type":21,"tag":139,"props":39038,"children":39039},{"style":214},[39040],{"type":31,"value":7534},{"type":21,"tag":139,"props":39042,"children":39043},{"style":152},[39044],{"type":31,"value":39045},"est",{"type":21,"tag":139,"props":39047,"children":39048},{"style":146},[39049],{"type":31,"value":25590},{"type":21,"tag":139,"props":39051,"children":39052},{"style":214},[39053],{"type":31,"value":7543},{"type":21,"tag":139,"props":39055,"children":39056},{"style":262},[39057],{"type":31,"value":39058},"   counts = ",{"type":21,"tag":139,"props":39060,"children":39061},{"style":214},[39062],{"type":31,"value":7534},{"type":21,"tag":139,"props":39064,"children":39065},{"style":152},[39066],{"type":31,"value":39067},"c",{"type":21,"tag":139,"props":39069,"children":39070},{"style":214},[39071],{"type":31,"value":7543},{"type":21,"tag":139,"props":39073,"children":39074},{"style":262},[39075],{"type":31,"value":15370},{"type":21,"tag":139,"props":39077,"children":39078},{"style":152},[39079],{"type":31,"value":270},{"type":21,"tag":22,"props":39081,"children":39082},{},[39083],{"type":31,"value":34183},{"type":21,"tag":129,"props":39085,"children":39087},{"code":39086},"1010 -> theta = 10\u002F16 = 0.6250   counts = 4096\n",[39088],{"type":21,"tag":104,"props":39089,"children":39090},{"__ignoreMap":7},[39091],{"type":31,"value":39086},{"type":21,"tag":22,"props":39093,"children":39094},{},[39095,39100],{"type":21,"tag":16802,"props":39096,"children":39097},{},[39098],{"type":31,"value":39099},"4096 out of 4096 shots.",{"type":31,"value":39101}," θ = 0.625 is exactly representable in 4 bits (0.1010₂ = 1\u002F2 + 1\u002F8), so QPE returns it with certainty. Three counting qubits and θ = 0.125 behaves the same way:",{"type":21,"tag":129,"props":39103,"children":39105},{"code":39104},"[('001', 4096)]\n",[39106],{"type":21,"tag":104,"props":39107,"children":39108},{"__ignoreMap":7},[39109],{"type":31,"value":39104},{"type":21,"tag":22,"props":39111,"children":39112},{},[39113],{"type":31,"value":39114},"001 = 1, and 1\u002F8 = 0.125. Exact again.",{"type":21,"tag":422,"props":39116,"children":39118},{"id":39117},"the-endianness-trap",[39119],{"type":31,"value":39120},"The endianness trap",{"type":21,"tag":22,"props":39122,"children":39123},{},[39124,39130,39132,39137,39139,39143,39145,39151],{"type":21,"tag":104,"props":39125,"children":39127},{"className":39126},[],[39128],{"type":31,"value":39129},"int(bits, 2) \u002F 2**n",{"type":31,"value":39131}," worked above, and it is worth understanding ",{"type":21,"tag":12756,"props":39133,"children":39134},{},[39135],{"type":31,"value":39136},"why",{"type":31,"value":39138}," rather than copying it. Qiskit prints bitstrings with classical bit 0 on the ",{"type":21,"tag":16802,"props":39140,"children":39141},{},[39142],{"type":31,"value":29631},{"type":31,"value":39144},", and our counting qubit 0 (the one that got the smallest rotation, ",{"type":21,"tag":104,"props":39146,"children":39148},{"className":39147},[],[39149],{"type":31,"value":39150},"U^1",{"type":31,"value":39152},") is the least significant bit of j. The QFT's final swap network is what lines those two conventions up.",{"type":21,"tag":22,"props":39154,"children":39155},{},[39156,39158,39164],{"type":31,"value":39157},"Drop the swaps from ",{"type":21,"tag":104,"props":39159,"children":39161},{"className":39160},[],[39162],{"type":31,"value":39163},"qft()",{"type":31,"value":39165}," (a tempting \"optimization\", since they look cosmetic) and rerun the exact θ = 0.625 case. Real output over 2048 shots:",{"type":21,"tag":129,"props":39167,"children":39169},{"code":39168},"{'1101': 1007, '0101': 470, '0001': 251, '0100': 80, '1100': 77,\n '0010': 66, '1110': 64, '0110': 16, '1010': 9, '1001': 8}\n",[39170],{"type":21,"tag":104,"props":39171,"children":39172},{"__ignoreMap":7},[39173],{"type":31,"value":39168},{"type":21,"tag":22,"props":39175,"children":39176},{},[39177,39179,39184,39186,39191],{"type":31,"value":39178},"The correct response ",{"type":21,"tag":104,"props":39180,"children":39182},{"className":39181},[],[39183],{"type":31,"value":14221},{"type":31,"value":39185}," now gets ",{"type":21,"tag":16802,"props":39187,"children":39188},{},[39189],{"type":31,"value":39190},"9 shots out of 2048",{"type":31,"value":39192},". The distribution smeared across the register with its largest peak at 1101, a confidently wrong 0.8125. Nothing errors. Nothing warns. You publish the wrong number, and with a θ you didn't already know you would have no way to tell. This is the same silent-failure class as the endianness bug in the Grover oracle, and it's why the QFT post insisted on keeping the swaps in a reusable block.",{"type":21,"tag":22,"props":39194,"children":39195},{},[39196],{"type":31,"value":39197},"Always sanity-check a QPE implementation against a θ you already know before pointing it at one you don't.",{"type":21,"tag":41,"props":39199,"children":39201},{"id":39200},"when-θ-doesnt-fit-in-n-bits",[39202],{"type":31,"value":39203},"When θ doesn't fit in n bits",{"type":21,"tag":22,"props":39205,"children":39206},{},[39207],{"type":31,"value":39208},"Real eigenphases are not tidy binary fractions. Try θ = 0.3, which has an infinite binary expansion, with 4 counting qubits:",{"type":21,"tag":129,"props":39210,"children":39212},{"code":39211,"language":133,"meta":7,"className":131,"style":7},"qc = qpe_phase_gate(4, 0.3)\ncounts = sim.run(transpile(qc, sim), shots=4096).result().get_counts()\nfor bits, c in sorted(counts.items(), key=lambda kv: -kv[1])[:6]:\n    print(f\"{bits}  theta_est = {int(bits, 2) \u002F 2**4:.4f}   p = {c \u002F 4096:.4f}\")\n",[39213],{"type":21,"tag":104,"props":39214,"children":39215},{"__ignoreMap":7},[39216,39247,39278,39338],{"type":21,"tag":139,"props":39217,"children":39218},{"class":141,"line":142},[39219,39223,39227,39231,39235,39239,39243],{"type":21,"tag":139,"props":39220,"children":39221},{"style":152},[39222],{"type":31,"value":349},{"type":21,"tag":139,"props":39224,"children":39225},{"style":146},[39226],{"type":31,"value":211},{"type":21,"tag":139,"props":39228,"children":39229},{"style":152},[39230],{"type":31,"value":38811},{"type":21,"tag":139,"props":39232,"children":39233},{"style":214},[39234],{"type":31,"value":17918},{"type":21,"tag":139,"props":39236,"children":39237},{"style":152},[39238],{"type":31,"value":259},{"type":21,"tag":139,"props":39240,"children":39241},{"style":214},[39242],{"type":31,"value":36513},{"type":21,"tag":139,"props":39244,"children":39245},{"style":152},[39246],{"type":31,"value":270},{"type":21,"tag":139,"props":39248,"children":39249},{"class":141,"line":168},[39250,39254,39258,39262,39266,39270,39274],{"type":21,"tag":139,"props":39251,"children":39252},{"style":152},[39253],{"type":31,"value":911},{"type":21,"tag":139,"props":39255,"children":39256},{"style":146},[39257],{"type":31,"value":211},{"type":21,"tag":139,"props":39259,"children":39260},{"style":152},[39261],{"type":31,"value":30302},{"type":21,"tag":139,"props":39263,"children":39264},{"style":923},[39265],{"type":31,"value":926},{"type":21,"tag":139,"props":39267,"children":39268},{"style":146},[39269],{"type":31,"value":211},{"type":21,"tag":139,"props":39271,"children":39272},{"style":214},[39273],{"type":31,"value":935},{"type":21,"tag":139,"props":39275,"children":39276},{"style":152},[39277],{"type":31,"value":940},{"type":21,"tag":139,"props":39279,"children":39280},{"class":141,"line":190},[39281,39285,39289,39293,39297,39301,39305,39309,39313,39317,39321,39325,39330,39334],{"type":21,"tag":139,"props":39282,"children":39283},{"style":146},[39284],{"type":31,"value":1486},{"type":21,"tag":139,"props":39286,"children":39287},{"style":152},[39288],{"type":31,"value":38884},{"type":21,"tag":139,"props":39290,"children":39291},{"style":146},[39292],{"type":31,"value":1496},{"type":21,"tag":139,"props":39294,"children":39295},{"style":214},[39296],{"type":31,"value":38893},{"type":21,"tag":139,"props":39298,"children":39299},{"style":152},[39300],{"type":31,"value":34953},{"type":21,"tag":139,"props":39302,"children":39303},{"style":923},[39304],{"type":31,"value":4832},{"type":21,"tag":139,"props":39306,"children":39307},{"style":146},[39308],{"type":31,"value":25494},{"type":21,"tag":139,"props":39310,"children":39311},{"style":152},[39312],{"type":31,"value":34966},{"type":21,"tag":139,"props":39314,"children":39315},{"style":146},[39316],{"type":31,"value":825},{"type":21,"tag":139,"props":39318,"children":39319},{"style":152},[39320],{"type":31,"value":34975},{"type":21,"tag":139,"props":39322,"children":39323},{"style":214},[39324],{"type":31,"value":328},{"type":21,"tag":139,"props":39326,"children":39327},{"style":152},[39328],{"type":31,"value":39329},"])[:",{"type":21,"tag":139,"props":39331,"children":39332},{"style":214},[39333],{"type":31,"value":11420},{"type":21,"tag":139,"props":39335,"children":39336},{"style":152},[39337],{"type":31,"value":20869},{"type":21,"tag":139,"props":39339,"children":39340},{"class":141,"line":200},[39341,39345,39349,39353,39357,39361,39365,39369,39374,39378,39382,39386,39390,39394,39398,39402,39406,39410,39414,39418,39422,39427,39431,39436,39440,39444,39448],{"type":21,"tag":139,"props":39342,"children":39343},{"style":214},[39344],{"type":31,"value":6212},{"type":21,"tag":139,"props":39346,"children":39347},{"style":152},[39348],{"type":31,"value":953},{"type":21,"tag":139,"props":39350,"children":39351},{"style":146},[39352],{"type":31,"value":7524},{"type":21,"tag":139,"props":39354,"children":39355},{"style":262},[39356],{"type":31,"value":15370},{"type":21,"tag":139,"props":39358,"children":39359},{"style":214},[39360],{"type":31,"value":7534},{"type":21,"tag":139,"props":39362,"children":39363},{"style":152},[39364],{"type":31,"value":39000},{"type":21,"tag":139,"props":39366,"children":39367},{"style":214},[39368],{"type":31,"value":7543},{"type":21,"tag":139,"props":39370,"children":39371},{"style":262},[39372],{"type":31,"value":39373},"  theta_est = ",{"type":21,"tag":139,"props":39375,"children":39376},{"style":214},[39377],{"type":31,"value":39014},{"type":21,"tag":139,"props":39379,"children":39380},{"style":152},[39381],{"type":31,"value":38948},{"type":21,"tag":139,"props":39383,"children":39384},{"style":214},[39385],{"type":31,"value":293},{"type":21,"tag":139,"props":39387,"children":39388},{"style":152},[39389],{"type":31,"value":1527},{"type":21,"tag":139,"props":39391,"children":39392},{"style":146},[39393],{"type":31,"value":5062},{"type":21,"tag":139,"props":39395,"children":39396},{"style":214},[39397],{"type":31,"value":21021},{"type":21,"tag":139,"props":39399,"children":39400},{"style":146},[39401],{"type":31,"value":4801},{"type":21,"tag":139,"props":39403,"children":39404},{"style":214},[39405],{"type":31,"value":17918},{"type":21,"tag":139,"props":39407,"children":39408},{"style":146},[39409],{"type":31,"value":25590},{"type":21,"tag":139,"props":39411,"children":39412},{"style":214},[39413],{"type":31,"value":7543},{"type":21,"tag":139,"props":39415,"children":39416},{"style":262},[39417],{"type":31,"value":34757},{"type":21,"tag":139,"props":39419,"children":39420},{"style":214},[39421],{"type":31,"value":7534},{"type":21,"tag":139,"props":39423,"children":39424},{"style":152},[39425],{"type":31,"value":39426},"c ",{"type":21,"tag":139,"props":39428,"children":39429},{"style":146},[39430],{"type":31,"value":5062},{"type":21,"tag":139,"props":39432,"children":39433},{"style":214},[39434],{"type":31,"value":39435}," 4096",{"type":21,"tag":139,"props":39437,"children":39438},{"style":146},[39439],{"type":31,"value":25590},{"type":21,"tag":139,"props":39441,"children":39442},{"style":214},[39443],{"type":31,"value":7543},{"type":21,"tag":139,"props":39445,"children":39446},{"style":262},[39447],{"type":31,"value":15370},{"type":21,"tag":139,"props":39449,"children":39450},{"style":152},[39451],{"type":31,"value":270},{"type":21,"tag":22,"props":39453,"children":39454},{},[39455],{"type":31,"value":34183},{"type":21,"tag":129,"props":39457,"children":39459},{"code":39458},"0101  theta_est = 0.3125   p = 0.8823\n0100  theta_est = 0.2500   p = 0.0542\n0110  theta_est = 0.3750   p = 0.0220\n0011  theta_est = 0.1875   p = 0.0093\n0111  theta_est = 0.4375   p = 0.0063\n0010  theta_est = 0.1250   p = 0.0049\n",[39460],{"type":21,"tag":104,"props":39461,"children":39462},{"__ignoreMap":7},[39463],{"type":31,"value":39458},{"type":21,"tag":22,"props":39465,"children":39466},{},[39467,39469,39474],{"type":31,"value":39468},"The distribution is peaked, not delta-shaped. 88% of shots land on 5\u002F16 = 0.3125, the closest 4-bit value to 0.3. The rest spread out, decaying fast as you move away from the peak. This is the generic behaviour: ",{"type":21,"tag":16802,"props":39470,"children":39471},{},[39472],{"type":31,"value":39473},"you get the nearest n-bit value with high probability, not certainty.",{"type":31,"value":39475}," The standard guarantee is that the best n-bit estimate appears with probability at least 4\u002Fπ² ≈ 40.5%. Here we're comfortably above that.",{"type":21,"tag":22,"props":39477,"children":39478},{},[39479,39481,39485],{"type":31,"value":39480},"Two things improve together when you add counting qubits: finer resolution ",{"type":21,"tag":12756,"props":39482,"children":39483},{},[39484],{"type":31,"value":18736},{"type":31,"value":39486}," a tighter peak. Same θ = 0.3 with 8 counting qubits:",{"type":21,"tag":129,"props":39488,"children":39490},{"code":39489},"01001101  theta_est = 0.30078   p = 0.8718\n01001100  theta_est = 0.29688   p = 0.0596\n01001110  theta_est = 0.30469   p = 0.0276\n01001111  theta_est = 0.30859   p = 0.0076\n01001011  theta_est = 0.29297   p = 0.0073\n",[39491],{"type":21,"tag":104,"props":39492,"children":39493},{"__ignoreMap":7},[39494],{"type":31,"value":39489},{"type":21,"tag":22,"props":39496,"children":39497},{},[39498,39500,39505],{"type":31,"value":39499},"Resolution went from ±0.031 to ±0.002, and the peak stayed at 87%. In general, to get n bits of precision with success probability 1 − ε you use n + O(log(1\u002Fε)) counting qubits. A handful of extra ",{"type":21,"tag":26,"props":39501,"children":39502},{"href":30801},[39503],{"type":31,"value":39504},"ancillas",{"type":31,"value":39506}," buys you a lot of confidence.",{"type":21,"tag":22,"props":39508,"children":39509},{},[39510,39512,39517],{"type":31,"value":39511},"The cost is the part people underestimate. Counting qubit k needs U applied 2^k times. Total controlled-U applications across the register: 2ⁿ − 1. Every bit of precision ",{"type":21,"tag":16802,"props":39513,"children":39514},{},[39515],{"type":31,"value":39516},"doubles",{"type":31,"value":39518}," the circuit depth. That's fine when U^(2^k) has an efficient closed form. For a phase gate it's only one gate with a bigger angle, which is why the demo above is cheap. For modular exponentiation in Shor's it's a genuine arithmetic circuit repeated exponentially many times, and the depth is brutal.",{"type":21,"tag":41,"props":39520,"children":39522},{"id":39521},"where-qpe-gets-used",[39523],{"type":31,"value":39524},"Where QPE gets used",{"type":21,"tag":22,"props":39526,"children":39527},{},[39528,39533,39535,39539,39541,39546],{"type":21,"tag":16802,"props":39529,"children":39530},{},[39531],{"type":31,"value":39532},"Shor's algorithm.",{"type":31,"value":39534}," Take U|y⟩ = |ay mod N⟩. Its eigenphases are s\u002Fr for integer s, where r is the multiplicative order of a mod N. Run QPE, measure s\u002Fr as a binary fraction, recover r by continued fractions, and factor N with a GCD. That's the whole quantum part. Everything else in ",{"type":21,"tag":26,"props":39536,"children":39537},{"href":19989},[39538],{"type":31,"value":31459},{"type":31,"value":39540}," is number theory. Order finding is QPE. QPE is controlled powers plus an inverse QFT. The chain from the QFT post now closes. (The algorithm was recently ",{"type":21,"tag":26,"props":39542,"children":39543},{"href":31470},[39544],{"type":31,"value":39545},"machine-verified in Lean",{"type":31,"value":39547},", if you want the formal treatment.)",{"type":21,"tag":22,"props":39549,"children":39550},{},[39551,39556,39558,39563],{"type":21,"tag":16802,"props":39552,"children":39553},{},[39554],{"type":31,"value":39555},"Quantum chemistry.",{"type":31,"value":39557}," Set U = e^{-iHt}. QPE returns the ground-state energy to whatever precision you're willing to pay depth for, and crucially, it returns it with a ",{"type":21,"tag":12756,"props":39559,"children":39560},{},[39561],{"type":31,"value":39562},"provable",{"type":31,"value":39564}," error bound rather than a variational estimate. This is the long-term goal of quantum simulation, and it's the application most likely to matter commercially before cryptanalysis does.",{"type":21,"tag":22,"props":39566,"children":39567},{},[39568,39573,39574,39578,39580,39584,39586,39591],{"type":21,"tag":16802,"props":39569,"children":39570},{},[39571],{"type":31,"value":39572},"Contrast with VQE.",{"type":31,"value":22948},{"type":21,"tag":26,"props":39575,"children":39576},{"href":16267},[39577],{"type":31,"value":3613},{"type":31,"value":39579}," attacks the identical chemistry problem from the opposite direction. Instead of one deep coherent circuit, it uses a shallow ",{"type":21,"tag":26,"props":39581,"children":39582},{"href":35617},[39583],{"type":31,"value":35620},{"type":31,"value":39585}," plus a classical optimizer, as introduced in ",{"type":21,"tag":26,"props":39587,"children":39588},{"href":21994},[39589],{"type":31,"value":39590},"Peruzzo et al. 2014",{"type":31,"value":39592},". The trade is explicit:",{"type":21,"tag":3150,"props":39594,"children":39595},{},[39596,39614],{"type":21,"tag":3154,"props":39597,"children":39598},{},[39599],{"type":21,"tag":3158,"props":39600,"children":39601},{},[39602,39605,39610],{"type":21,"tag":3162,"props":39603,"children":39604},{},[],{"type":21,"tag":3162,"props":39606,"children":39607},{},[39608],{"type":31,"value":39609},"QPE",{"type":21,"tag":3162,"props":39611,"children":39612},{},[39613],{"type":31,"value":3613},{"type":21,"tag":3176,"props":39615,"children":39616},{},[39617,39635,39653,39671],{"type":21,"tag":3158,"props":39618,"children":39619},{},[39620,39625,39630],{"type":21,"tag":3183,"props":39621,"children":39622},{},[39623],{"type":31,"value":39624},"Circuit depth",{"type":21,"tag":3183,"props":39626,"children":39627},{},[39628],{"type":31,"value":39629},"Deep, grows as 2ⁿ in precision bits",{"type":21,"tag":3183,"props":39631,"children":39632},{},[39633],{"type":31,"value":39634},"Shallow, fixed ansatz",{"type":21,"tag":3158,"props":39636,"children":39637},{},[39638,39643,39648],{"type":21,"tag":3183,"props":39639,"children":39640},{},[39641],{"type":31,"value":39642},"Precision",{"type":21,"tag":3183,"props":39644,"children":39645},{},[39646],{"type":31,"value":39647},"Provable, arbitrary",{"type":21,"tag":3183,"props":39649,"children":39650},{},[39651],{"type":31,"value":39652},"Heuristic, ansatz-limited",{"type":21,"tag":3158,"props":39654,"children":39655},{},[39656,39661,39666],{"type":21,"tag":3183,"props":39657,"children":39658},{},[39659],{"type":31,"value":39660},"Measurements",{"type":21,"tag":3183,"props":39662,"children":39663},{},[39664],{"type":31,"value":39665},"Few shots",{"type":21,"tag":3183,"props":39667,"children":39668},{},[39669],{"type":31,"value":39670},"Many thousands per iteration",{"type":21,"tag":3158,"props":39672,"children":39673},{},[39674,39679,39684],{"type":21,"tag":3183,"props":39675,"children":39676},{},[39677],{"type":31,"value":39678},"Hardware era",{"type":21,"tag":3183,"props":39680,"children":39681},{},[39682],{"type":31,"value":39683},"Fault-tolerant",{"type":21,"tag":3183,"props":39685,"children":39686},{},[39687],{"type":21,"tag":26,"props":39688,"children":39689},{"href":22036},[39690],{"type":31,"value":23978},{"type":21,"tag":22,"props":39692,"children":39693},{},[39694,39696,39701,39703,39707,39709,39713],{"type":31,"value":39695},"VQE runs today and gives you an answer you can't fully trust. QPE gives you an answer you trust and can't run today. Our ",{"type":21,"tag":26,"props":39697,"children":39698},{"href":3610},[39699],{"type":31,"value":39700},"VQE walkthrough in PennyLane",{"type":31,"value":39702}," covers the near-term side. ",{"type":21,"tag":26,"props":39704,"children":39705},{"href":17319},[39706],{"type":31,"value":4474},{"type":31,"value":39708}," is generally the better fit for variational work while ",{"type":21,"tag":26,"props":39710,"children":39711},{"href":1120},[39712],{"type":31,"value":14},{"type":31,"value":39714}," suits structured circuits like this one.",{"type":21,"tag":41,"props":39716,"children":39718},{"id":39717},"the-honest-caveat",[39719],{"type":31,"value":39720},"The honest caveat",{"type":21,"tag":22,"props":39722,"children":39723},{},[39724,39726,39730],{"type":31,"value":39725},"QPE is not a NISQ algorithm and no amount of clever ",{"type":21,"tag":26,"props":39727,"children":39728},{"href":10334},[39729],{"type":31,"value":10337},{"type":31,"value":39731}," will make it one.",{"type":21,"tag":22,"props":39733,"children":39734},{},[39735,39737,39741],{"type":31,"value":39736},"The circuit must stay coherent through 2ⁿ − 1 controlled-U applications, each of which decomposes into several native two-qubit gates. With two-qubit error around 0.5% on current hardware, a few hundred entangling gates leaves you with noise. ",{"type":21,"tag":26,"props":39738,"children":39739},{"href":4143},[39740],{"type":31,"value":37581},{"type":31,"value":39742}," sets a hard wall long before you reach chemically useful precision. Published hardware demonstrations of QPE are toy instances with 2-4 counting qubits, real, but not computations anyone needed done.",{"type":21,"tag":22,"props":39744,"children":39745},{},[39746,39748,39752,39754,39759,39761,39765,39767,39771,39773,39777,39779,39784],{"type":31,"value":39747},"QPE becomes practical when circuits run on ",{"type":21,"tag":26,"props":39749,"children":39750},{"href":15857},[39751],{"type":31,"value":16501},{"type":31,"value":39753}," rather than physical ones. Google's ",{"type":21,"tag":26,"props":39755,"children":39756},{"href":25689},[39757],{"type":31,"value":39758},"below-threshold result",{"type":31,"value":39760}," is the first real evidence that path is open, and our ",{"type":21,"tag":26,"props":39762,"children":39763},{"href":4082},[39764],{"type":31,"value":23140},{"type":31,"value":39766}," covers what still has to happen. Until then: develop QPE on ",{"type":21,"tag":26,"props":39768,"children":39769},{"href":3292},[39770],{"type":31,"value":30606},{"type":31,"value":39772},", where you verify it exactly, and reach for VQE or ",{"type":21,"tag":26,"props":39774,"children":39775},{"href":19047},[39776],{"type":31,"value":31098},{"type":31,"value":39778}," if you need results from ",{"type":21,"tag":26,"props":39780,"children":39781},{"href":1100},[39782],{"type":31,"value":39783},"today's hardware",{"type":31,"value":6665},{"type":21,"tag":22,"props":39786,"children":39787},{},[39788],{"type":31,"value":39789},"That's not a reason to skip learning it. QPE is the template for what a fault-tolerant algorithm looks like (deep, exact, and structured) and it's the piece that makes the QFT worth building.",{"type":21,"tag":41,"props":39791,"children":39793},{"id":39792},"following-steps",[39794],{"type":31,"value":39795},"Following steps",{"type":21,"tag":1112,"props":39797,"children":39798},{},[39799,39811,39824,39846],{"type":21,"tag":72,"props":39800,"children":39801},{},[39802,39809],{"type":21,"tag":16802,"props":39803,"children":39804},{},[39805],{"type":21,"tag":26,"props":39806,"children":39807},{"href":19066},[39808],{"type":31,"value":30660},{"type":31,"value":39810},": build the same QPE circuit in Cirq or Braket",{"type":21,"tag":72,"props":39812,"children":39813},{},[39814,39822],{"type":21,"tag":16802,"props":39815,"children":39816},{},[39817],{"type":21,"tag":26,"props":39818,"children":39819},{"href":18689},[39820],{"type":31,"value":39821},"Courses",{"type":31,"value":39823},": structured paths through the algorithm canon",{"type":21,"tag":72,"props":39825,"children":39826},{},[39827,39834,39835,39839,39840,39845],{"type":21,"tag":16802,"props":39828,"children":39829},{},[39830],{"type":21,"tag":26,"props":39831,"children":39832},{"href":1142},[39833],{"type":31,"value":30680},{"type":31,"value":1147},{"type":21,"tag":26,"props":39836,"children":39837},{"href":16030},[39838],{"type":31,"value":16033},{"type":31,"value":259},{"type":21,"tag":26,"props":39841,"children":39842},{"href":30801},[39843],{"type":31,"value":39844},"ancilla qubit",{"type":31,"value":30693},{"type":21,"tag":72,"props":39847,"children":39848},{},[39849],{"type":31,"value":39850},"Extend the code above to a 2-qubit U with two eigenstates, feed in a superposition of both, and watch the counting register entangle with the eigenstate register. That's the mechanism behind order finding.",{"type":21,"tag":1168,"props":39852,"children":39853},{},[39854],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":39856},[39857,39858,39859,39860,39863,39864,39865,39866],{"id":37836,"depth":168,"text":37839},{"id":37927,"depth":168,"text":37930},{"id":38032,"depth":168,"text":38035},{"id":33568,"depth":168,"text":33571,"children":39861},[39862],{"id":39117,"depth":190,"text":39120},{"id":39200,"depth":168,"text":39203},{"id":39521,"depth":168,"text":39524},{"id":39717,"depth":168,"text":39720},{"id":39792,"depth":168,"text":39795},"content:blog:quantum-phase-estimation-tutorial.md","blog\u002Fquantum-phase-estimation-tutorial.md","blog\u002Fquantum-phase-estimation-tutorial",{"_path":39871,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":39872,"description":39873,"date":39874,"author":11,"tags":39875,"readingTime":16,"body":39877,"_type":1187,"_id":40888,"_source":1189,"_file":40889,"_stem":40890,"_extension":1192},"\u002Fja\u002Fblog\u002Fquantum-computing-new-vocabulary","量子コンピューティングの新しい語彙: 主流になる16の用語","AIが私たちに『トークン』『ハルシネーション』『ファインチューニング』を与えたように、量子コンピューティングも独自の語彙を築き上げつつあります。ここでは、数年以内に開発者や企業が使うようになる用語を紹介します。","2026-03-15",[3041,3396,39876],"Terminology",{"type":18,"children":39878,"toc":40869},[39879,39915,39920,39925,39929,39935,39943,39948,39974,39979,39982,39988,39996,40015,40020,40028,40033,40036,40042,40050,40062,40073,40085,40088,40094,40102,40113,40125,40128,40134,40142,40154,40242,40247,40250,40256,40264,40289,40301,40309,40314,40317,40323,40331,40343,40348,40351,40357,40365,40374,40379,40382,40388,40396,40420,40432,40437,40442,40445,40451,40459,40471,40483,40495,40498,40504,40512,40524,40529,40532,40538,40546,40562,40567,40570,40576,40584,40593,40598,40601,40607,40615,40634,40639,40642,40648,40656,40661,40671,40687,40692,40695,40701,40709,40721,40744,40755,40758,40763,40768,40841,40846,40851,40865],{"type":21,"tag":22,"props":39880,"children":39881},{},[39882,39884,39889,39890,39895,39896,39901,39902,39907,39908,39913],{"type":31,"value":39883},"ディープラーニングが2022〜2023年頃に主流へと躍り出たとき、それはまったく新しい語彙を日常の会話へと引きずり込みました。突如として誰もが ",{"type":21,"tag":12756,"props":39885,"children":39886},{},[39887],{"type":31,"value":39888},"tokens",{"type":31,"value":1155},{"type":21,"tag":12756,"props":39891,"children":39892},{},[39893],{"type":31,"value":39894},"hallucinations",{"type":31,"value":1155},{"type":21,"tag":12756,"props":39897,"children":39898},{},[39899],{"type":31,"value":39900},"context windows",{"type":31,"value":1155},{"type":21,"tag":12756,"props":39903,"children":39904},{},[39905],{"type":31,"value":39906},"fine-tuning",{"type":31,"value":1155},{"type":21,"tag":12756,"props":39909,"children":39910},{},[39911],{"type":31,"value":39912},"prompt engineering",{"type":31,"value":39914}," について語り始めたのです。これらは10年前には一般的な開発者の語彙にほとんど存在しなかった用語です。新世代の「AIエンジニア」が登場し、GPU時間は貴重な資源となり、「推論コスト」はエンジニアリング予算の項目になりました。",{"type":21,"tag":22,"props":39916,"children":39917},{},[39918],{"type":31,"value":39919},"量子コンピューティングも同様の軌道をたどっています。曲線上ではまだ早い段階にありますが、変曲点は近づいています。そしてそれとともに、研究論文から求人票、スタートアップのピッチ、そしてStack Overflowの質問へと移っていく新しい用語群が現れます。これらの中には、すでに量子コミュニティで存在するものもあります。ほとんどはその外では知られていません。しかしそのすべてが、他の誰よりも先に、今のうちに学ぶ価値があります。",{"type":21,"tag":22,"props":39921,"children":39922},{},[39923],{"type":31,"value":39924},"ここでは、主流になる態勢が整っている量子コンピューティングの世界の16の用語を紹介します。",{"type":21,"tag":39926,"props":39927,"children":39928},"hr",{},[],{"type":21,"tag":41,"props":39930,"children":39932},{"id":39931},"_1-qpu-quantum-processing-unit",[39933],{"type":31,"value":39934},"1. QPU (Quantum Processing Unit)",{"type":21,"tag":22,"props":39936,"children":39937},{},[39938],{"type":21,"tag":16802,"props":39939,"children":39940},{},[39941],{"type":31,"value":39942},"AIとの対応: GPU",{"type":21,"tag":22,"props":39944,"children":39945},{},[39946],{"type":31,"value":39947},"「GPUへのアクセスはある?」は、MLチームで標準的な質問になりました。「QPUへのアクセスはある?」は、その量子版になるでしょう。",{"type":21,"tag":22,"props":39949,"children":39950},{},[39951,39953,39958,39960,39965,39967,39972],{"type":31,"value":39952},"QPUは量子回路を実行するハードウェアチップです。IBMは自社のシステムを ",{"type":21,"tag":12756,"props":39954,"children":39955},{},[39956],{"type":31,"value":39957},"quantum computers",{"type":31,"value":39959}," と呼び、NVIDIAはGPUアクセラレーテッドなシミュレーションのための ",{"type":21,"tag":16802,"props":39961,"children":39962},{},[39963],{"type":31,"value":39964},"CUDA-Q",{"type":31,"value":39966}," を持ち、IonQのトラップイオン方式のシステムは今日利用可能な中で最も高忠実度のQPUです。「GPU時間」がエンジニアたちが奪い合う資源になったのと同じように、",{"type":21,"tag":16802,"props":39968,"children":39969},{},[39970],{"type":31,"value":39971},"QPU時間",{"type":31,"value":39973}," — 量子ハードウェア上での実際の実行サイクル — は、プレミアムでスケジュール可能な資源になるでしょう。",{"type":21,"tag":22,"props":39975,"children":39976},{},[39977],{"type":31,"value":39978},"この用語はすでにクラウドの価格ページ (AWS Braket、Azure Quantum) に登場しています。5年以内には求人票に載るでしょう。",{"type":21,"tag":39926,"props":39980,"children":39981},{},[],{"type":21,"tag":41,"props":39983,"children":39985},{"id":39984},"_2-shot-budget",[39986],{"type":31,"value":39987},"2. Shot Budget",{"type":21,"tag":22,"props":39989,"children":39990},{},[39991],{"type":21,"tag":16802,"props":39992,"children":39993},{},[39994],{"type":31,"value":39995},"AIとの対応: トークン予算 \u002F コンテキストウィンドウ",{"type":21,"tag":22,"props":39997,"children":39998},{},[39999,40001,40006,40008,40013],{"type":31,"value":40000},"量子回路を実行するとき、あなたは単一の答えを得るのではありません。回路を何度も実行することでサンプリングされた ",{"type":21,"tag":12756,"props":40002,"children":40003},{},[40004],{"type":31,"value":40005},"確率分布",{"type":31,"value":40007}," を得るのです。1回の実行は ",{"type":21,"tag":16802,"props":40009,"children":40010},{},[40011],{"type":31,"value":40012},"shot",{"type":31,"value":40014}," と呼ばれます。1,000回実行される回路は、同じ回路を100回実行するよりも多くのQPU時間を要します。",{"type":21,"tag":22,"props":40016,"children":40017},{},[40018],{"type":31,"value":40019},"「shot budget」 — 自分が支払える実行回数 — は、QPUアクセスが拡大するにつれて現実的な最適化の関心事になるでしょう。開発者がトークン制限内に収めるためにプロンプトを削ることを学んだのと同じように、量子開発者は最小のshot budgetから最大の信号を引き出す回路を設計することを学ぶでしょう。",{"type":21,"tag":23915,"props":40021,"children":40022},{},[40023],{"type":21,"tag":22,"props":40024,"children":40025},{},[40026],{"type":31,"value":40027},"「VQEを2,000ではなく200 shotで収束させました。これでQPUコストが90%削減されました。」",{"type":21,"tag":22,"props":40029,"children":40030},{},[40031],{"type":31,"value":40032},"これはすでにVQEやQAOAのような変分アルゴリズムにおける現実的な関心事であり、そこではショットノイズが結果の品質に直接影響します。",{"type":21,"tag":39926,"props":40034,"children":40035},{},[],{"type":21,"tag":41,"props":40037,"children":40039},{"id":40038},"_3-quantum-advantage",[40040],{"type":31,"value":40041},"3. Quantum Advantage",{"type":21,"tag":22,"props":40043,"children":40044},{},[40045],{"type":21,"tag":16802,"props":40046,"children":40047},{},[40048],{"type":31,"value":40049},"AIとの対応: 10倍の高速化、「人間より優れている」",{"type":21,"tag":22,"props":40051,"children":40052},{},[40053,40055,40060],{"type":31,"value":40054},"「Quantum advantage」とは、量子コンピュータが特定の実世界の問題を、いかなる古典コンピュータよりも ",{"type":21,"tag":12756,"props":40056,"children":40057},{},[40058],{"type":31,"value":40059},"速く、あるいはより良く",{"type":31,"value":40061}," 解く瞬間のことです。これはAIベンチマークにおける「超人的な性能」の量子版です。",{"type":21,"tag":22,"props":40063,"children":40064},{},[40065,40067,40071],{"type":31,"value":40066},"IBMは2023年に関連する用語 ",{"type":21,"tag":16802,"props":40068,"children":40069},{},[40070],{"type":31,"value":23101},{"type":31,"value":40072}," を導入しました。これは古典的にシミュレートするには複雑すぎるが実用的に有用な回路を表すもので、完全なquantum advantageへのより地に足の着いた前段階です。ハードウェアが成熟するにつれて、両方の用語がプレスリリース、資金調達の発表、規制に関する議論に登場することを予想してください。",{"type":21,"tag":22,"props":40074,"children":40075},{},[40076,40078,40083],{"type":31,"value":40077},"この区別は重要です。quantum advantageは ",{"type":21,"tag":12756,"props":40079,"children":40080},{},[40081],{"type":31,"value":40082},"問題とハードウェアの組み合わせ",{"type":31,"value":40084}," の性質であり、量子コンピュータが「より優れている」という包括的な主張ではありません。これを理解することが、情報に基づいた量子の会話を誇大宣伝から分けることになります。",{"type":21,"tag":39926,"props":40086,"children":40087},{},[],{"type":21,"tag":41,"props":40089,"children":40091},{"id":40090},"_4-quantum-utility",[40092],{"type":31,"value":40093},"4. Quantum Utility",{"type":21,"tag":22,"props":40095,"children":40096},{},[40097],{"type":21,"tag":16802,"props":40098,"children":40099},{},[40100],{"type":31,"value":40101},"AIとの対応: 「本番AI」対 研究デモ",{"type":21,"tag":22,"props":40103,"children":40104},{},[40105,40107,40111],{"type":31,"value":40106},"quantum advantageと密接に関連する ",{"type":21,"tag":16802,"props":40108,"children":40109},{},[40110],{"type":31,"value":23101},{"type":31,"value":40112}," は、具体的には次のことを意味します。すなわち、そのまさに同じ回路の古典的シミュレーションが原理上まだ可能であっても実用的ではない場合に、実際のアプリケーションに有用な結果を生み出す量子回路のことです。",{"type":21,"tag":22,"props":40114,"children":40115},{},[40116,40118,40123],{"type":31,"value":40117},"IBMは2023年の ",{"type":21,"tag":12756,"props":40119,"children":40120},{},[40121],{"type":31,"value":40122},"Nature",{"type":31,"value":40124}," 論文で初めてこの用語を使い、自社のEagleプロセッサ上で動作する特定の量子回路が、古典的シミュレーションでは容易に検証できない結果を生み出すことを実証しました。これは完全なquantum advantageよりも達成可能で近い将来のマイルストーンであり、今後数年で最も耳にする可能性が高いものです。",{"type":21,"tag":39926,"props":40126,"children":40127},{},[],{"type":21,"tag":41,"props":40129,"children":40131},{"id":40130},"_5-transpilation",[40132],{"type":31,"value":40133},"5. Transpilation",{"type":21,"tag":22,"props":40135,"children":40136},{},[40137],{"type":21,"tag":16802,"props":40138,"children":40139},{},[40140],{"type":31,"value":40141},"AIとの対応: モデルのコンパイル \u002F 量子化",{"type":21,"tag":22,"props":40143,"children":40144},{},[40145,40147,40152],{"type":31,"value":40146},"量子回路が実際のハードウェア上で実行される前に、それは ",{"type":21,"tag":12756,"props":40148,"children":40149},{},[40150],{"type":31,"value":40151},"トランスパイル",{"type":31,"value":40153}," されなければなりません。すなわち、抽象的な演算からハードウェアのネイティブなゲートセットへと変換され、量子ビットの演算は物理的な接続性の制約を尊重するように再ルーティングされます。これは、ディープラーニングモデルが特定のチップアーキテクチャ向けにコンパイルされ最適化されなければならないのと類似しています。",{"type":21,"tag":129,"props":40155,"children":40157},{"className":131,"code":40156,"language":133,"meta":7,"style":7},"from qiskit.compiler import transpile\n\n# Circuit written in abstract gates\ntranspiled = transpile(circuit, backend=real_qpu, optimization_level=3)\n",[40158],{"type":21,"tag":104,"props":40159,"children":40160},{"__ignoreMap":7},[40161,40181,40188,40196],{"type":21,"tag":139,"props":40162,"children":40163},{"class":141,"line":142},[40164,40168,40173,40177],{"type":21,"tag":139,"props":40165,"children":40166},{"style":146},[40167],{"type":31,"value":149},{"type":21,"tag":139,"props":40169,"children":40170},{"style":152},[40171],{"type":31,"value":40172}," qiskit.compiler ",{"type":21,"tag":139,"props":40174,"children":40175},{"style":146},[40176],{"type":31,"value":160},{"type":21,"tag":139,"props":40178,"children":40179},{"style":152},[40180],{"type":31,"value":9261},{"type":21,"tag":139,"props":40182,"children":40183},{"class":141,"line":168},[40184],{"type":21,"tag":139,"props":40185,"children":40186},{"emptyLinePlaceholder":194},[40187],{"type":31,"value":197},{"type":21,"tag":139,"props":40189,"children":40190},{"class":141,"line":190},[40191],{"type":21,"tag":139,"props":40192,"children":40193},{"style":220},[40194],{"type":31,"value":40195},"# Circuit written in abstract gates\n",{"type":21,"tag":139,"props":40197,"children":40198},{"class":141,"line":200},[40199,40204,40208,40213,40217,40221,40226,40230,40234,40238],{"type":21,"tag":139,"props":40200,"children":40201},{"style":152},[40202],{"type":31,"value":40203},"transpiled ",{"type":21,"tag":139,"props":40205,"children":40206},{"style":146},[40207],{"type":31,"value":211},{"type":21,"tag":139,"props":40209,"children":40210},{"style":152},[40211],{"type":31,"value":40212}," transpile(circuit, ",{"type":21,"tag":139,"props":40214,"children":40215},{"style":923},[40216],{"type":31,"value":10987},{"type":21,"tag":139,"props":40218,"children":40219},{"style":146},[40220],{"type":31,"value":211},{"type":21,"tag":139,"props":40222,"children":40223},{"style":152},[40224],{"type":31,"value":40225},"real_qpu, ",{"type":21,"tag":139,"props":40227,"children":40228},{"style":923},[40229],{"type":31,"value":28141},{"type":21,"tag":139,"props":40231,"children":40232},{"style":146},[40233],{"type":31,"value":211},{"type":21,"tag":139,"props":40235,"children":40236},{"style":214},[40237],{"type":31,"value":254},{"type":21,"tag":139,"props":40239,"children":40240},{"style":152},[40241],{"type":31,"value":270},{"type":21,"tag":22,"props":40243,"children":40244},{},[40245],{"type":31,"value":40246},"量子が本番環境へと移行するにつれて、「トランスパイルのオーバーヘッド」や「トランスパイルの深さ」が標準的なエンジニアリングの関心事になるでしょう。ちょうど今日、推論のレイテンシやモデルの量子化がそうであるように。",{"type":21,"tag":39926,"props":40248,"children":40249},{},[],{"type":21,"tag":41,"props":40251,"children":40253},{"id":40252},"_6-coherence-time-t1-t2",[40254],{"type":31,"value":40255},"6. Coherence Time (T1 \u002F T2)",{"type":21,"tag":22,"props":40257,"children":40258},{},[40259],{"type":21,"tag":16802,"props":40260,"children":40261},{},[40262],{"type":31,"value":40263},"AIとの対応: コンテキストウィンドウ \u002F メモリ制限",{"type":21,"tag":22,"props":40265,"children":40266},{},[40267,40269,40273,40275,40280,40282,40287],{"type":31,"value":40268},"量子ビットは永遠に量子のままではいられません。それは崩壊します。",{"type":21,"tag":12756,"props":40270,"children":40271},{},[40272],{"type":31,"value":30758},{"type":31,"value":40274}," と呼ばれるプロセスにおいて、環境ノイズを通じて重ね合わせを失うのです。",{"type":21,"tag":16802,"props":40276,"children":40277},{},[40278],{"type":31,"value":40279},"T1時間",{"type":31,"value":40281}," (エネルギー緩和) と ",{"type":21,"tag":16802,"props":40283,"children":40284},{},[40285],{"type":31,"value":40286},"T2時間",{"type":31,"value":40288}," (位相コヒーレンス) は、量子ビットがどれだけ長く使用可能な状態を保つかを測定します。",{"type":21,"tag":22,"props":40290,"children":40291},{},[40292,40294,40299],{"type":31,"value":40293},"これはコンテキストウィンドウの量子版です。それは、量子ビットが古典的ノイズになる前に実行できる ",{"type":21,"tag":12756,"props":40295,"children":40296},{},[40297],{"type":31,"value":40298},"最大回路深さ",{"type":31,"value":40300}," を定義します。IBMの超伝導量子ビットのT2時間は約100〜300マイクロ秒です。IonQのトラップイオン量子ビットのT2時間は1秒を超えており、これが彼らの回路がはるかに深くなれる理由です。",{"type":21,"tag":23915,"props":40302,"children":40303},{},[40304],{"type":21,"tag":22,"props":40305,"children":40306},{},[40307],{"type":31,"value":40308},"「私たちの回路はこのバックエンドには深すぎます。最後のゲートが実行される前にT2に到達してしまうでしょう。」",{"type":21,"tag":22,"props":40310,"children":40311},{},[40312],{"type":31,"value":40313},"開発者は、メモリを予算立てするのと同じように、コヒーレンス時間を予算立てすることを学ぶでしょう。",{"type":21,"tag":39926,"props":40315,"children":40316},{},[],{"type":21,"tag":41,"props":40318,"children":40320},{"id":40319},"_7-decoherence-budget",[40321],{"type":31,"value":40322},"7. Decoherence Budget",{"type":21,"tag":22,"props":40324,"children":40325},{},[40326],{"type":21,"tag":16802,"props":40327,"children":40328},{},[40329],{"type":31,"value":40330},"AIとの対応: レイテンシ予算 \u002F 計算予算",{"type":21,"tag":22,"props":40332,"children":40333},{},[40334,40336,40341],{"type":31,"value":40335},"T1\u002FT2の自然な拡張です。",{"type":21,"tag":16802,"props":40337,"children":40338},{},[40339],{"type":31,"value":40340},"decoherence budget",{"type":31,"value":40342}," とは、エラーが有用性を超えて蓄積する前に回路が完了するために利用できる「コヒーレンス時間」の総量です。長い回路ほど多くのdecoherence budgetを消費します。",{"type":21,"tag":22,"props":40344,"children":40345},{},[40346],{"type":31,"value":40347},"量子アプリケーションがより複雑になるにつれて、アーキテクトはdecoherence budget内に収まるシステムを設計するようになるでしょう。回路の深さ対結果の忠実度をトレードオフしながら、それは今日、バックエンドエンジニアが応答レイテンシ対計算コストをトレードオフするのと似ています。",{"type":21,"tag":39926,"props":40349,"children":40350},{},[],{"type":21,"tag":41,"props":40352,"children":40354},{"id":40353},"_8-circuit-fidelity",[40355],{"type":31,"value":40356},"8. Circuit Fidelity",{"type":21,"tag":22,"props":40358,"children":40359},{},[40360],{"type":21,"tag":16802,"props":40361,"children":40362},{},[40363],{"type":31,"value":40364},"AIとの対応: モデルの精度 \u002F F1スコア",{"type":21,"tag":22,"props":40366,"children":40367},{},[40368,40372],{"type":21,"tag":16802,"props":40369,"children":40370},{},[40371],{"type":31,"value":35421},{"type":31,"value":40373}," は、回路によって生成された実際の量子状態が、理想的な理論上の状態にどれだけ近いかを測定します。99%の忠実度を持つ回路は優秀です。90%の回路は精度が求められるアプリケーションには役に立たないかもしれません。",{"type":21,"tag":22,"props":40375,"children":40376},{},[40377],{"type":31,"value":40378},"Fidelityは適用されるすべてのゲートとともに劣化し (各ゲートにはエラー率があります)、回路の深さとともに劣化します (長い回路ほど多くデコヒーレンスを起こします)。それはQPUの結果に対する主要な品質指標になるでしょう。ベンチマーク上のモデル精度の量子版です。",{"type":21,"tag":39926,"props":40380,"children":40381},{},[],{"type":21,"tag":41,"props":40383,"children":40385},{"id":40384},"_9-physical-vs-logical-qubit",[40386],{"type":31,"value":40387},"9. Physical vs. Logical Qubit",{"type":21,"tag":22,"props":40389,"children":40390},{},[40391],{"type":21,"tag":16802,"props":40392,"children":40393},{},[40394],{"type":31,"value":40395},"AIとの対応: 生のパラメータ数 対 実効的なモデル容量",{"type":21,"tag":22,"props":40397,"children":40398},{},[40399,40401,40405,40407,40411,40413,40418],{"type":31,"value":40400},"主流になりつつある最も重要な区別の一つです。",{"type":21,"tag":16802,"props":40402,"children":40403},{},[40404],{"type":31,"value":30751},{"type":31,"value":40406}," は実際のハードウェア量子ビット (ノイズが多く、エラーを起こしやすい) です。",{"type":21,"tag":16802,"props":40408,"children":40409},{},[40410],{"type":31,"value":30778},{"type":31,"value":40412}," は、多数の物理量子ビットにまたがってエンコードされた ",{"type":21,"tag":12756,"props":40414,"children":40415},{},[40416],{"type":31,"value":40417},"エラー訂正された",{"type":31,"value":40419}," 量子ビットであり、信頼性は高いですがコストがかかります。",{"type":21,"tag":22,"props":40421,"children":40422},{},[40423,40425,40430],{"type":31,"value":40424},"今日の最良のハードウェア (IBM、IonQ) は物理量子ビットで動作しています。完全な誤り耐性量子コンピューティングには論理量子ビットが必要です。現在の推定では、表面符号によるエラー訂正のために ",{"type":21,"tag":16802,"props":40426,"children":40427},{},[40428],{"type":31,"value":40429},"論理量子ビット1個あたり物理量子ビット1,000〜10,000個",{"type":31,"value":40431}," という比率が置かれています。",{"type":21,"tag":22,"props":40433,"children":40434},{},[40435],{"type":31,"value":40436},"「IBMは1,000量子ビットを持っている」と聞くとき、それは物理量子ビットのことです。RSA-2048に対してShorのアルゴリズムを実行できる誤り耐性コンピュータには、数百万個の物理量子ビットが必要になるでしょう。",{"type":21,"tag":22,"props":40438,"children":40439},{},[40440],{"type":31,"value":40441},"この区別を理解することは、量子ハードウェアのマーケティングを技術的現実から分けるために不可欠となるでしょう。",{"type":21,"tag":39926,"props":40443,"children":40444},{},[],{"type":21,"tag":41,"props":40446,"children":40448},{"id":40447},"_10-quantum-safe-post-quantum-cryptography",[40449],{"type":31,"value":40450},"10. Quantum-Safe \u002F Post-Quantum Cryptography",{"type":21,"tag":22,"props":40452,"children":40453},{},[40454],{"type":21,"tag":16802,"props":40455,"children":40456},{},[40457],{"type":31,"value":40458},"AIとの対応: 「AI耐性」 (あまり適切ではない) → 実際には「アルゴリズムのためのGDPR」に近い",{"type":21,"tag":22,"props":40460,"children":40461},{},[40462,40464,40469],{"type":31,"value":40463},"これはすでに研究の世界を離れつつあります。",{"type":21,"tag":16802,"props":40465,"children":40466},{},[40467],{"type":31,"value":40468},"Post-quantum cryptography",{"type":31,"value":40470}," (PQC) とは、量子コンピュータからの攻撃に耐えるように設計された古典的な暗号アルゴリズムを指します。脅威とは、ShorのアルゴリズムがRSAの基盤となる大きな素数を因数分解でき、今日のほとんどの公開鍵暗号を破ってしまうことです。",{"type":21,"tag":22,"props":40472,"children":40473},{},[40474,40476,40481],{"type":31,"value":40475},"NISTは2024年に最初のポスト量子暗号標準 (CRYSTALS-Kyber、CRYSTALS-Dilithium) を確定しました。",{"type":21,"tag":16802,"props":40477,"children":40478},{},[40479],{"type":31,"value":40480},"「Quantum-safe」",{"type":31,"value":40482}," は5年以内に認証およびコンプライアンスの用語となり、セキュリティ監査、調達要件、クラウドプロバイダーのドキュメントに登場するでしょう。",{"type":21,"tag":22,"props":40484,"children":40485},{},[40486,40488,40493],{"type":31,"value":40487},"ほとんどの組織が備えるべき攻撃ベクトルは ",{"type":21,"tag":16802,"props":40489,"children":40490},{},[40491],{"type":31,"value":40492},"「harvest now, decrypt later」",{"type":31,"value":40494}," です。すなわち、量子コンピュータが十分に高性能になった時点で復号する意図をもって、今日暗号化されたデータを収集する敵対者のことです。",{"type":21,"tag":39926,"props":40496,"children":40497},{},[],{"type":21,"tag":41,"props":40499,"children":40501},{"id":40500},"_11-hybrid-algorithm-quantum-classical-hybrid",[40502],{"type":31,"value":40503},"11. Hybrid Algorithm \u002F Quantum-Classical Hybrid",{"type":21,"tag":22,"props":40505,"children":40506},{},[40507],{"type":21,"tag":16802,"props":40508,"children":40509},{},[40510],{"type":31,"value":40511},"AIとの対応: 「AI支援」ワークフロー、CPU+GPUヘテロジニアスコンピューティング",{"type":21,"tag":22,"props":40513,"children":40514},{},[40515,40517,40522],{"type":31,"value":40516},"ほぼすべての近未来の量子アプリケーションは ",{"type":21,"tag":16802,"props":40518,"children":40519},{},[40520],{"type":31,"value":40521},"hybrid",{"type":31,"value":40523}," です。古典的なオプティマイザが量子回路を繰り返し呼び出し、古典コンピュータが苦手とする部分 (状態準備、干渉) には量子ハードウェアを使い、一方で古典コンピュータが最適化ループを処理します。",{"type":21,"tag":22,"props":40525,"children":40526},{},[40527],{"type":31,"value":40528},"VQEとQAOAは典型的なハイブリッドアルゴリズムです。量子プログラミングフレームワークが成熟するにつれて、「ハイブリッドワークフローのオーケストレーション」 — 古典と量子の計算間の受け渡しを管理すること — が標準的なソフトウェアエンジニアリングの問題になるでしょう。それを中心に構築されたツール、フレームワーク、職種を予想してください。",{"type":21,"tag":39926,"props":40530,"children":40531},{},[],{"type":21,"tag":41,"props":40533,"children":40535},{"id":40534},"_12-variational-circuit-parameterized-quantum-circuit",[40536],{"type":31,"value":40537},"12. Variational Circuit (Parameterized Quantum Circuit)",{"type":21,"tag":22,"props":40539,"children":40540},{},[40541],{"type":21,"tag":16802,"props":40542,"children":40543},{},[40544],{"type":31,"value":40545},"AIとの対応: ニューラルネットワーク (訓練可能な重み)",{"type":21,"tag":22,"props":40547,"children":40548},{},[40549,40553,40555,40560],{"type":21,"tag":16802,"props":40550,"children":40551},{},[40552],{"type":31,"value":35620},{"type":31,"value":40554}," または ",{"type":21,"tag":16802,"props":40556,"children":40557},{},[40558],{"type":31,"value":40559},"parameterized quantum circuit (PQC)",{"type":31,"value":40561}," は、調整可能な回転角を持つ量子回路であり、本質的には量子ニューラルネットワークの層です。パラメータは、コスト関数を最小化するために古典的なオプティマイザによって調整されます。",{"type":21,"tag":22,"props":40563,"children":40564},{},[40565],{"type":31,"value":40566},"VQEは変分回路をエネルギー推定器として使用します。QAOAはそれを最適化問題をエンコードするために使用します。量子機械学習が発展するにつれて、「量子回路を訓練する」は「ニューラルネットワークを訓練する」と同じくらい自然な言い回しになるでしょう。",{"type":21,"tag":39926,"props":40568,"children":40569},{},[],{"type":21,"tag":41,"props":40571,"children":40573},{"id":40572},"_13-quantum-volume-qv",[40574],{"type":31,"value":40575},"13. Quantum Volume (QV)",{"type":21,"tag":22,"props":40577,"children":40578},{},[40579],{"type":21,"tag":16802,"props":40580,"children":40581},{},[40582],{"type":31,"value":40583},"AIとの対応: FLOPS、ベンチマークスコア (MLPerf)",{"type":21,"tag":22,"props":40585,"children":40586},{},[40587,40591],{"type":21,"tag":16802,"props":40588,"children":40589},{},[40590],{"type":31,"value":13893},{"type":31,"value":40592}," はIBMによって導入された単一の数値ベンチマークで、QPUの性能を総合的に捉えるものです。量子ビット数、ゲート忠実度、接続性、実行可能な最大回路深さを同時に考慮します。",{"type":21,"tag":22,"props":40594,"children":40595},{},[40596],{"type":31,"value":40597},"QV 128 (= 2^7、7量子ビット相当の回路) を持つQPUは、たとえQVの低いマシンの方が生の量子ビット数が多くても、QV 64を持つものを上回ります。これは量子の世界の「MLPerfスコア」です。ベンダーが宣伝し、開発者がハードウェアを比較するために使う数値です。",{"type":21,"tag":39926,"props":40599,"children":40600},{},[],{"type":21,"tag":41,"props":40602,"children":40604},{"id":40603},"_14-quantum-job-quantum-queue",[40605],{"type":31,"value":40606},"14. Quantum Job \u002F Quantum Queue",{"type":21,"tag":22,"props":40608,"children":40609},{},[40610],{"type":21,"tag":16802,"props":40611,"children":40612},{},[40613],{"type":31,"value":40614},"AIとの対応: バッチ推論ジョブ、GPUキュー",{"type":21,"tag":22,"props":40616,"children":40617},{},[40618,40620,40625,40627,40632],{"type":31,"value":40619},"実際のQPUに回路を投入するとき、あなたは ",{"type":21,"tag":16802,"props":40621,"children":40622},{},[40623],{"type":31,"value":40624},"quantum queue",{"type":31,"value":40626}," に入る ",{"type":21,"tag":16802,"props":40628,"children":40629},{},[40630],{"type":31,"value":40631},"quantum job",{"type":31,"value":40633}," を投入します。これは共有ハードウェアへのアクセスを管理するスケジューリングシステムです。IBM Quantumの無料枠のジョブは、有料枠の顧客の後ろで、しばしば数分から数時間キューで待機します。",{"type":21,"tag":22,"props":40635,"children":40636},{},[40637],{"type":31,"value":40638},"「ジョブスループット」「キューの深さ」「ジョブ優先度」が、量子インフラチームにとっての運用指標になるでしょう。これは今日GPUクラスタのジョブキューを管理するのと精神的に同一です。",{"type":21,"tag":39926,"props":40640,"children":40641},{},[],{"type":21,"tag":41,"props":40643,"children":40645},{"id":40644},"_15-error-mitigation-vs-error-correction",[40646],{"type":31,"value":40647},"15. Error Mitigation vs. Error Correction",{"type":21,"tag":22,"props":40649,"children":40650},{},[40651],{"type":21,"tag":16802,"props":40652,"children":40653},{},[40654],{"type":31,"value":40655},"AIとの対応: 正則化 (mitigation) 対 ハードウェアECC (correction)",{"type":21,"tag":22,"props":40657,"children":40658},{},[40659],{"type":31,"value":40660},"この区別は重要であり、量子が主流になれば絶えず誤用されるでしょう。",{"type":21,"tag":22,"props":40662,"children":40663},{},[40664,40669],{"type":21,"tag":16802,"props":40665,"children":40666},{},[40667],{"type":31,"value":40668},"Error correction",{"type":31,"value":40670}," — 冗長性をもって論理量子ビットをエンコードし、エラーを検出して修正できるようにすること。約1,000:1の物理対論理量子ビットのオーバーヘッドを必要とします。まだ大規模には利用できません。",{"type":21,"tag":22,"props":40672,"children":40673},{},[40674,40678,40680,40685],{"type":21,"tag":16802,"props":40675,"children":40676},{},[40677],{"type":31,"value":25985},{"type":31,"value":40679}," — ノイズを物理的に修正 ",{"type":21,"tag":12756,"props":40681,"children":40682},{},[40683],{"type":31,"value":40684},"することなく",{"type":31,"value":40686}," 、その影響を統計的に低減する古典的な後処理技術。ゼロノイズ外挿、確率的エラーキャンセル、測定エラー緩和など。NISQハードウェア上で、今すぐ利用可能です。",{"type":21,"tag":22,"props":40688,"children":40689},{},[40690],{"type":31,"value":40691},"ベンダーが自社のQPUが「エラーを処理する」と主張するときは、常にどちらを意味しているのか尋ねてください。",{"type":21,"tag":39926,"props":40693,"children":40694},{},[],{"type":21,"tag":41,"props":40696,"children":40698},{"id":40697},"_16-quantum-developer-quantum-engineer",[40699],{"type":31,"value":40700},"16. Quantum Developer \u002F Quantum Engineer",{"type":21,"tag":22,"props":40702,"children":40703},{},[40704],{"type":21,"tag":16802,"props":40705,"children":40706},{},[40707],{"type":31,"value":40708},"AIとの対応: MLエンジニア、AIエンジニア、プロンプトエンジニア",{"type":21,"tag":22,"props":40710,"children":40711},{},[40712,40714,40719],{"type":31,"value":40713},"おそらく最も重大な新しい用語は ",{"type":21,"tag":16802,"props":40715,"children":40716},{},[40717],{"type":31,"value":40718},"quantum developer",{"type":31,"value":40720}," です。「AIエンジニア」の役割が2023年頃に結晶化したのと同じように — 従来のソフトウェアエンジニアリングともML研究とも異なるものとして — 「quantum developer」の役割は特定のスキルセットを中心に生まれつつあります。",{"type":21,"tag":1112,"props":40722,"children":40723},{},[40724,40729,40734,40739],{"type":21,"tag":72,"props":40725,"children":40726},{},[40727],{"type":31,"value":40728},"Qiskit、Cirq、HLQuantumのようなフレームワークで回路を書くこと",{"type":21,"tag":72,"props":40730,"children":40731},{},[40732],{"type":31,"value":40733},"ハードウェアの制約 (接続性、ノイズ、コヒーレンス) を理解すること",{"type":21,"tag":72,"props":40735,"children":40736},{},[40737],{"type":31,"value":40738},"ハイブリッドな古典-量子ワークフローを設計すること",{"type":21,"tag":72,"props":40740,"children":40741},{},[40742],{"type":31,"value":40743},"確率的な結果と忠実度指標を解釈すること",{"type":21,"tag":22,"props":40745,"children":40746},{},[40747,40753],{"type":21,"tag":26,"props":40748,"children":40750},{"href":40749},"\u002Fhlquantum",[40751],{"type":31,"value":40752},"HLQuantum",{"type":31,"value":40754}," のようなツール — すべてのバックエンドにまたがる統一されたAPIを提供する — は、開発者が各SDKの癖に深い専門知識を持たずとも移植可能な量子コードを書けるようにすることで、これを加速しています。2028年の「quantum developer」は、今日のWeb開発者がフレームワークを使うのと同じように抽象化レイヤーを使い、各バックエンドごとに生の回路を書くことはおそらくないでしょう。",{"type":21,"tag":39926,"props":40756,"children":40757},{},[],{"type":21,"tag":41,"props":40759,"children":40761},{"id":40760},"パターン",[40762],{"type":31,"value":40760},{"type":21,"tag":22,"props":40764,"children":40765},{},[40766],{"type":31,"value":40767},"これら16の用語を見渡すと、あるパターンが浮かび上がります。あらゆる主要なプラットフォームの転換は次のものを生み出します。",{"type":21,"tag":68,"props":40769,"children":40770},{},[40771,40781,40791,40801,40811,40821,40831],{"type":21,"tag":72,"props":40772,"children":40773},{},[40774,40779],{"type":21,"tag":16802,"props":40775,"children":40776},{},[40777],{"type":31,"value":40778},"新しい計算の単位",{"type":31,"value":40780}," — GPU → QPU、tokens → shots",{"type":21,"tag":72,"props":40782,"children":40783},{},[40784,40789],{"type":21,"tag":16802,"props":40785,"children":40786},{},[40787],{"type":31,"value":40788},"新しい資源の制約",{"type":31,"value":40790}," — VRAM、コンテキストウィンドウ → コヒーレンス時間、shot budget",{"type":21,"tag":72,"props":40792,"children":40793},{},[40794,40799],{"type":21,"tag":16802,"props":40795,"children":40796},{},[40797],{"type":31,"value":40798},"新しい品質指標",{"type":31,"value":40800}," — 精度、F1 → 忠実度、quantum volume",{"type":21,"tag":72,"props":40802,"children":40803},{},[40804,40809],{"type":21,"tag":16802,"props":40805,"children":40806},{},[40807],{"type":31,"value":40808},"新しいコンパイルステップ",{"type":31,"value":40810}," — モデルの量子化 → トランスパイル",{"type":21,"tag":72,"props":40812,"children":40813},{},[40814,40819],{"type":21,"tag":16802,"props":40815,"children":40816},{},[40817],{"type":31,"value":40818},"新しいハイブリッドアーキテクチャ",{"type":31,"value":40820}," — CPU+GPU → 古典+量子",{"type":21,"tag":72,"props":40822,"children":40823},{},[40824,40829],{"type":21,"tag":16802,"props":40825,"children":40826},{},[40827],{"type":31,"value":40828},"新しいセキュリティの領域",{"type":31,"value":40830}," — 敵対的ML → ポスト量子暗号",{"type":21,"tag":72,"props":40832,"children":40833},{},[40834,40839],{"type":21,"tag":16802,"props":40835,"children":40836},{},[40837],{"type":31,"value":40838},"新しい職種",{"type":31,"value":40840}," — MLエンジニア → 量子エンジニア",{"type":21,"tag":22,"props":40842,"children":40843},{},[40844],{"type":31,"value":40845},"量子コンピューティングの語彙は単なる専門用語ではありません。それは実際のエンジニアリングの制約、実際のトレードオフ、実際の機会に直接対応しています。主流の波が到来する前にそれを学ぶことは、初期のクラウドエンジニアが、ほとんどの開発者よりも先に「レイテンシ」や「スループット」を気にかけ始めたときに賭けたのと同じ賭けです。",{"type":21,"tag":22,"props":40847,"children":40848},{},[40849],{"type":31,"value":40850},"始めるのに最も良い時期は5年前でした。次に良い時期は今です。ハードウェアがまだ無料でアクセスでき、学習曲線が最も低いうちに。",{"type":21,"tag":22,"props":40852,"children":40853},{},[40854,40859,40860],{"type":21,"tag":16802,"props":40855,"children":40856},{},[40857],{"type":31,"value":40858},"ここから始めましょう:",{"type":31,"value":22948},{"type":21,"tag":26,"props":40861,"children":40862},{"href":3292},[40863],{"type":31,"value":40864},"初めての量子回路を無料で実行する →",{"type":21,"tag":1168,"props":40866,"children":40867},{},[40868],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":40870},[40871,40872,40873,40874,40875,40876,40877,40878,40879,40880,40881,40882,40883,40884,40885,40886,40887],{"id":39931,"depth":168,"text":39934},{"id":39984,"depth":168,"text":39987},{"id":40038,"depth":168,"text":40041},{"id":40090,"depth":168,"text":40093},{"id":40130,"depth":168,"text":40133},{"id":40252,"depth":168,"text":40255},{"id":40319,"depth":168,"text":40322},{"id":40353,"depth":168,"text":40356},{"id":40384,"depth":168,"text":40387},{"id":40447,"depth":168,"text":40450},{"id":40500,"depth":168,"text":40503},{"id":40534,"depth":168,"text":40537},{"id":40572,"depth":168,"text":40575},{"id":40603,"depth":168,"text":40606},{"id":40644,"depth":168,"text":40647},{"id":40697,"depth":168,"text":40700},{"id":40760,"depth":168,"text":40760},"content:ja:blog:quantum-computing-new-vocabulary.md","ja\u002Fblog\u002Fquantum-computing-new-vocabulary.md","ja\u002Fblog\u002Fquantum-computing-new-vocabulary",{"_path":40892,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":40893,"description":40894,"date":40895,"author":11,"tags":40896,"readingTime":16,"body":40897,"_type":1187,"_id":41905,"_source":1189,"_file":41906,"_stem":41907,"_extension":1192},"\u002Fja\u002Fblog\u002Fquantum-use-cases-2026","2026年に量子コンピューターが実際にできること","どの量子コンピューティング応用が今すぐ本番投入できるのか、どれが近い将来のものなのか、どれが依然として長期的な研究目標のままなのかを現実的に見つめ、本物の進歩を誇大宣伝から切り分ける。","2026-03-12",[3396,10536,13],{"type":18,"children":40898,"toc":41885},[40899,40904,40909,40914,40919,40952,40957,40960,40966,40972,40982,40992,41002,41012,41022,41185,41188,41194,41203,41212,41230,41240,41249,41252,41258,41267,41284,41293,41310,41313,41319,41328,41337,41354,41364,41367,41373,41378,41387,41396,41406,41416,41419,41425,41450,41459,41468,41471,41477,41486,41495,41504,41513,41516,41522,41528,41537,41547,41557,41574,41577,41583,41592,41601,41610,41613,41618,41627,41636,41645,41648,41653,41819,41838,41850,41855,41881],{"type":21,"tag":22,"props":40900,"children":40901},{},[40902],{"type":31,"value":40903},"「量子コンピューターは創薬に革命を起こし、あらゆる暗号を破り、気候変動を解決する」。そんな売り文句を聞いたことがあるでしょう。では正直な答えをお伝えします。2026年、今日存在するハードウェア上で、量子コンピューターは実際に何ができるのでしょうか。",{"type":21,"tag":22,"props":40905,"children":40906},{},[40907],{"type":31,"value":40908},"正直な答えは微妙なニュアンスを含んでいます。そして、誇大宣伝や懐疑論のどちらが示唆するよりも興味深いものです。",{"type":21,"tag":41,"props":40910,"children":40912},{"id":40911},"量子の実用度をどう考えるか",[40913],{"type":31,"value":40911},{"type":21,"tag":22,"props":40915,"children":40916},{},[40917],{"type":31,"value":40918},"量子応用は3つのカテゴリーに分けられます。",{"type":21,"tag":1112,"props":40920,"children":40921},{},[40922,40932,40942],{"type":21,"tag":72,"props":40923,"children":40924},{},[40925,40930],{"type":21,"tag":16802,"props":40926,"children":40927},{},[40928],{"type":31,"value":40929},"NISQ時代の応用(現在):",{"type":31,"value":40931}," 限られた回路深度を持つ、今日のノイズの多い50〜1000量子ビットのハードウェア上で動作するアルゴリズム。結果は近似的である場合があります。価値は探索的またはデモンストレーション的なものです。",{"type":21,"tag":72,"props":40933,"children":40934},{},[40935,40940],{"type":21,"tag":16802,"props":40936,"children":40937},{},[40938],{"type":31,"value":40939},"近い将来の応用(2〜7年):",{"type":31,"value":40941}," 適度な誤り訂正(数百から数千の論理量子ビット)を必要とします。特定の問題インスタンスに対する実用的な高速化が現れ始めます。",{"type":21,"tag":72,"props":40943,"children":40944},{},[40945,40950],{"type":21,"tag":16802,"props":40946,"children":40947},{},[40948],{"type":31,"value":40949},"長期的な応用(7〜20年以上):",{"type":31,"value":40951}," 数百万の物理量子ビットと完全なフォールトトレランスを必要とします。変革的なインパクトをもたらします。",{"type":21,"tag":22,"props":40953,"children":40954},{},[40955],{"type":31,"value":40956},"誇大宣伝と現実の間のギャップは、主にこれら3つのカテゴリーを混同することから生じます。",{"type":21,"tag":39926,"props":40958,"children":40959},{},[],{"type":21,"tag":41,"props":40961,"children":40963},{"id":40962},"今できることnisq時代",[40964],{"type":31,"value":40965},"今できること(NISQ時代)",{"type":21,"tag":422,"props":40967,"children":40969},{"id":40968},"量子化学シミュレーション-限られた分子",[40970],{"type":31,"value":40971},"量子化学シミュレーション — 限られた分子",{"type":21,"tag":22,"props":40973,"children":40974},{},[40975,40980],{"type":21,"tag":16802,"props":40976,"children":40977},{},[40978],{"type":31,"value":40979},"何を:",{"type":31,"value":40981}," VQEを用いた小分子の基底状態エネルギーのシミュレーション。",{"type":21,"tag":22,"props":40983,"children":40984},{},[40985,40990],{"type":21,"tag":16802,"props":40986,"children":40987},{},[40988],{"type":31,"value":40989},"実証済み:",{"type":31,"value":40991}," IBMなどが、実際のQPU上でH₂、LiH、BeH₂、および小さな炭化水素の基底状態エネルギーを計算しました。4〜12量子ビットの問題では、結果が古典的手法と一致しています。",{"type":21,"tag":22,"props":40993,"children":40994},{},[40995,41000],{"type":21,"tag":16802,"props":40996,"children":40997},{},[40998],{"type":31,"value":40999},"現在の実用的価値:",{"type":31,"value":41001}," 研究とベンチマーク。古典コンピューターでも正確にシミュレートできる分子については優位性はありませんが、手法の検証は進んでいます。",{"type":21,"tag":22,"props":41003,"children":41004},{},[41005,41010],{"type":21,"tag":16802,"props":41006,"children":41007},{},[41008],{"type":31,"value":41009},"ボトルネック:",{"type":31,"value":41011}," 実用的な製薬上の関連性を持つ分子(50原子以上)へのスケールアップには数百の論理量子ビットが必要です。現在のノイズの多いハードウェアでは不可能です。",{"type":21,"tag":22,"props":41013,"children":41014},{},[41015,41020],{"type":21,"tag":16802,"props":41016,"children":41017},{},[41018],{"type":31,"value":41019},"取り組んでいるのは:",{"type":31,"value":41021}," IBM Quantum、IonQ(創薬パートナーシップ向け)、Quantinuum。",{"type":21,"tag":129,"props":41023,"children":41025},{"className":131,"code":41024,"language":133,"meta":7,"style":7},"import hlquantum as hlq\n\n# VQE for H2 — works today, results match classical\nresult = hlq.algorithms.vqe(molecule='H2', basis='sto-3g', backend='qiskit')\nprint(f\"Ground state: {result.energy:.4f} Ha\")  # -1.1372 Ha\n",[41026],{"type":21,"tag":104,"props":41027,"children":41028},{"__ignoreMap":7},[41029,41050,41057,41065,41134],{"type":21,"tag":139,"props":41030,"children":41031},{"class":141,"line":142},[41032,41036,41041,41045],{"type":21,"tag":139,"props":41033,"children":41034},{"style":146},[41035],{"type":31,"value":160},{"type":21,"tag":139,"props":41037,"children":41038},{"style":152},[41039],{"type":31,"value":41040}," hlquantum ",{"type":21,"tag":139,"props":41042,"children":41043},{"style":146},[41044],{"type":31,"value":5343},{"type":21,"tag":139,"props":41046,"children":41047},{"style":152},[41048],{"type":31,"value":41049}," hlq\n",{"type":21,"tag":139,"props":41051,"children":41052},{"class":141,"line":168},[41053],{"type":21,"tag":139,"props":41054,"children":41055},{"emptyLinePlaceholder":194},[41056],{"type":31,"value":197},{"type":21,"tag":139,"props":41058,"children":41059},{"class":141,"line":190},[41060],{"type":21,"tag":139,"props":41061,"children":41062},{"style":220},[41063],{"type":31,"value":41064},"# VQE for H2 — works today, results match classical\n",{"type":21,"tag":139,"props":41066,"children":41067},{"class":141,"line":200},[41068,41072,41076,41081,41086,41090,41095,41099,41104,41108,41113,41117,41121,41125,41130],{"type":21,"tag":139,"props":41069,"children":41070},{"style":152},[41071],{"type":31,"value":4868},{"type":21,"tag":139,"props":41073,"children":41074},{"style":146},[41075],{"type":31,"value":211},{"type":21,"tag":139,"props":41077,"children":41078},{"style":152},[41079],{"type":31,"value":41080}," hlq.algorithms.vqe(",{"type":21,"tag":139,"props":41082,"children":41083},{"style":923},[41084],{"type":31,"value":41085},"molecule",{"type":21,"tag":139,"props":41087,"children":41088},{"style":146},[41089],{"type":31,"value":211},{"type":21,"tag":139,"props":41091,"children":41092},{"style":262},[41093],{"type":31,"value":41094},"'H2'",{"type":21,"tag":139,"props":41096,"children":41097},{"style":152},[41098],{"type":31,"value":259},{"type":21,"tag":139,"props":41100,"children":41101},{"style":923},[41102],{"type":31,"value":41103},"basis",{"type":21,"tag":139,"props":41105,"children":41106},{"style":146},[41107],{"type":31,"value":211},{"type":21,"tag":139,"props":41109,"children":41110},{"style":262},[41111],{"type":31,"value":41112},"'sto-3g'",{"type":21,"tag":139,"props":41114,"children":41115},{"style":152},[41116],{"type":31,"value":259},{"type":21,"tag":139,"props":41118,"children":41119},{"style":923},[41120],{"type":31,"value":10987},{"type":21,"tag":139,"props":41122,"children":41123},{"style":146},[41124],{"type":31,"value":211},{"type":21,"tag":139,"props":41126,"children":41127},{"style":262},[41128],{"type":31,"value":41129},"'qiskit'",{"type":21,"tag":139,"props":41131,"children":41132},{"style":152},[41133],{"type":31,"value":270},{"type":21,"tag":139,"props":41135,"children":41136},{"class":141,"line":226},[41137,41141,41145,41149,41154,41158,41163,41167,41171,41176,41180],{"type":21,"tag":139,"props":41138,"children":41139},{"style":214},[41140],{"type":31,"value":948},{"type":21,"tag":139,"props":41142,"children":41143},{"style":152},[41144],{"type":31,"value":953},{"type":21,"tag":139,"props":41146,"children":41147},{"style":146},[41148],{"type":31,"value":7524},{"type":21,"tag":139,"props":41150,"children":41151},{"style":262},[41152],{"type":31,"value":41153},"\"Ground state: ",{"type":21,"tag":139,"props":41155,"children":41156},{"style":214},[41157],{"type":31,"value":7534},{"type":21,"tag":139,"props":41159,"children":41160},{"style":152},[41161],{"type":31,"value":41162},"result.energy",{"type":21,"tag":139,"props":41164,"children":41165},{"style":146},[41166],{"type":31,"value":25590},{"type":21,"tag":139,"props":41168,"children":41169},{"style":214},[41170],{"type":31,"value":7543},{"type":21,"tag":139,"props":41172,"children":41173},{"style":262},[41174],{"type":31,"value":41175}," Ha\"",{"type":21,"tag":139,"props":41177,"children":41178},{"style":152},[41179],{"type":31,"value":4624},{"type":21,"tag":139,"props":41181,"children":41182},{"style":220},[41183],{"type":31,"value":41184},"# -1.1372 Ha\n",{"type":21,"tag":39926,"props":41186,"children":41187},{},[],{"type":21,"tag":422,"props":41189,"children":41191},{"id":41190},"量子機械学習-概念実証",[41192],{"type":31,"value":41193},"量子機械学習 — 概念実証",{"type":21,"tag":22,"props":41195,"children":41196},{},[41197,41201],{"type":21,"tag":16802,"props":41198,"children":41199},{},[41200],{"type":31,"value":40979},{"type":31,"value":41202}," 分類のための量子ニューラルネットワーク(QNN)と量子カーネル法。",{"type":21,"tag":22,"props":41204,"children":41205},{},[41206,41210],{"type":21,"tag":16802,"props":41207,"children":41208},{},[41209],{"type":31,"value":40989},{"type":31,"value":41211}," 量子カーネルはおもちゃのデータセット上で機能することが示されています。実用的なデータセットに対して、古典的な機械学習に対する量子優位性は実証されていません。",{"type":21,"tag":22,"props":41213,"children":41214},{},[41215,41219,41221,41228],{"type":21,"tag":16802,"props":41216,"children":41217},{},[41218],{"type":31,"value":40999},{"type":31,"value":41220}," 研究。「",{"type":21,"tag":26,"props":41222,"children":41225},{"href":41223,"rel":41224},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.01aborting",[7123],[41226],{"type":31,"value":41227},"ノーフリーランチ",{"type":31,"value":41229},"」問題が当てはまります。QMLにおける量子優位性は、もし存在するとすれば、特定の量子構造を持つ特定のデータに対するものになるでしょう。",{"type":21,"tag":22,"props":41231,"children":41232},{},[41233,41238],{"type":21,"tag":16802,"props":41234,"children":41235},{},[41236],{"type":31,"value":41237},"現れつつある現実的なユースケース:",{"type":31,"value":41239}," 量子物理実験から生じるデータセット向けの量子カーネルは、本質的な量子構造を持つ可能性があり、量子機械学習が古典的手法よりもうまくそれを活用できるかもしれません。",{"type":21,"tag":22,"props":41241,"children":41242},{},[41243,41247],{"type":21,"tag":16802,"props":41244,"children":41245},{},[41246],{"type":31,"value":41019},{"type":31,"value":41248}," PennyLane\u002FXanadu(QML重視)、IBM、Google(Quantum AI)。",{"type":21,"tag":39926,"props":41250,"children":41251},{},[],{"type":21,"tag":422,"props":41253,"children":41255},{"id":41254},"最適化のベンチマークqaoa",[41256],{"type":31,"value":41257},"最適化のベンチマーク(QAOA)",{"type":21,"tag":22,"props":41259,"children":41260},{},[41261,41265],{"type":21,"tag":16802,"props":41262,"children":41263},{},[41264],{"type":31,"value":40979},{"type":31,"value":41266}," Max-Cut、ポートフォリオ最適化、車両ルーティングに適用されるQAOA。",{"type":21,"tag":22,"props":41268,"children":41269},{},[41270,41274,41276,41282],{"type":21,"tag":16802,"props":41271,"children":41272},{},[41273],{"type":31,"value":40989},{"type":31,"value":41275}," QAOA回路は実際のハードウェア上で実行されてきました。",{"type":21,"tag":104,"props":41277,"children":41279},{"className":41278},[],[41280],{"type":31,"value":41281},"p=1",{"type":31,"value":41283},"では、Max-Cutにおいて約0.75の近似比がNISQデバイス上で達成可能です。",{"type":21,"tag":22,"props":41285,"children":41286},{},[41287,41291],{"type":21,"tag":16802,"props":41288,"children":41289},{},[41290],{"type":31,"value":40999},{"type":31,"value":41292}," 現実的な問題規模では古典ソルバー(シミュレーテッドアニーリング、GUROBI)に対して競争力はありません。研究とハードウェアのベンチマークには価値があります。",{"type":21,"tag":22,"props":41294,"children":41295},{},[41296,41301,41303,41308],{"type":21,"tag":16802,"props":41297,"children":41298},{},[41299],{"type":31,"value":41300},"それが重要になるとき:",{"type":31,"value":41302}," 大きな優位性を得られるほど",{"type":21,"tag":104,"props":41304,"children":41306},{"className":41305},[],[41307],{"type":31,"value":22},{"type":31,"value":41309},"が大きくなると、回路がNISQデバイスには深すぎます。誤り訂正が必要です。",{"type":21,"tag":39926,"props":41311,"children":41312},{},[],{"type":21,"tag":422,"props":41314,"children":41316},{"id":41315},"ランダム回路サンプリング量子超越性の主張",[41317],{"type":31,"value":41318},"ランダム回路サンプリング(量子超越性の主張)",{"type":21,"tag":22,"props":41320,"children":41321},{},[41322,41326],{"type":21,"tag":16802,"props":41323,"children":41324},{},[41325],{"type":31,"value":40979},{"type":31,"value":41327}," ランダム量子回路からのサンプリング。",{"type":21,"tag":22,"props":41329,"children":41330},{},[41331,41335],{"type":21,"tag":16802,"props":41332,"children":41333},{},[41334],{"type":31,"value":40989},{"type":31,"value":41336}," Google(2019年、Sycamore)、IBM(2023年、Eagle)、中国のグループ(2020年、2021年)。",{"type":21,"tag":22,"props":41338,"children":41339},{},[41340,41345,41347,41352],{"type":21,"tag":16802,"props":41341,"children":41342},{},[41343],{"type":31,"value":41344},"実用的価値:",{"type":31,"value":41346}," 現在のところなし。ランダム回路サンプリングには既知の応用がありません。これは、量子デバイスが古典コンピューターにはシミュレートしにくい",{"type":21,"tag":12756,"props":41348,"children":41349},{},[41350],{"type":31,"value":41351},"何か",{"type":31,"value":41353},"を行っていることを示すハードウェアのベンチマークです。",{"type":21,"tag":22,"props":41355,"children":41356},{},[41357,41362],{"type":21,"tag":16802,"props":41358,"children":41359},{},[41360],{"type":31,"value":41361},"それが重要な理由:",{"type":31,"value":41363}," 量子ハードウェアが正しく動作していること、そして特定の回路サイズにおいて古典的シミュレーションが手に負えなくなりつつあることを検証します。",{"type":21,"tag":39926,"props":41365,"children":41366},{},[],{"type":21,"tag":41,"props":41368,"children":41370},{"id":41369},"近い将来のこと27年",[41371],{"type":31,"value":41372},"近い将来のこと(2〜7年)",{"type":21,"tag":422,"props":41374,"children":41376},{"id":41375},"量子支援による創薬",[41377],{"type":31,"value":41375},{"type":21,"tag":22,"props":41379,"children":41380},{},[41381,41385],{"type":21,"tag":16802,"props":41382,"children":41383},{},[41384],{"type":31,"value":40979},{"type":31,"value":41386}," 量子シミュレーションを用いてタンパク質-リガンド結合エネルギーをモデル化し、どの候補薬が合成する価値があるかを予測します。",{"type":21,"tag":22,"props":41388,"children":41389},{},[41390,41394],{"type":21,"tag":16802,"props":41391,"children":41392},{},[41393],{"type":31,"value":41361},{"type":31,"value":41395}," 創薬には承認薬1つあたり約25億ドルのコストがかかります。より優れた計算的スクリーニングによって失敗する臨床試験を減らすことは、非常に大きな価値があります。",{"type":21,"tag":22,"props":41397,"children":41398},{},[41399,41404],{"type":21,"tag":16802,"props":41400,"children":41401},{},[41402],{"type":31,"value":41403},"現状:",{"type":31,"value":41405}," IBMと製薬パートナー(Pfizer、AstraZeneca、JSR)は、量子ハードウェア上で最大約50量子ビットの分子に対してVQEを実行しています。まだデモンストレーション段階であり、商業的に関連する分子については古典的手法の方が依然として正確です。",{"type":21,"tag":22,"props":41407,"children":41408},{},[41409,41414],{"type":21,"tag":16802,"props":41410,"children":41411},{},[41412],{"type":31,"value":41413},"それが現実になるとき:",{"type":31,"value":41415}," 論理量子ビット数が約1,000〜5,000に達したとき。そうすれば、主要な分子クラスにおいて量子シミュレーションが古典を上回ることができます。現在の推定では5〜10年。",{"type":21,"tag":39926,"props":41417,"children":41418},{},[],{"type":21,"tag":422,"props":41420,"children":41422},{"id":41421},"量子金融モンテカルロの高速化",[41423],{"type":31,"value":41424},"量子金融:モンテカルロの高速化",{"type":21,"tag":22,"props":41426,"children":41427},{},[41428,41432,41434,41440,41442,41448],{"type":21,"tag":16802,"props":41429,"children":41430},{},[41431],{"type":31,"value":40979},{"type":31,"value":41433}," 量子振幅推定は理論的にモンテカルロ積分を",{"type":21,"tag":104,"props":41435,"children":41437},{"className":41436},[],[41438],{"type":31,"value":41439},"O(1\u002Fε²)",{"type":31,"value":41441},"から",{"type":21,"tag":104,"props":41443,"children":41445},{"className":41444},[],[41446],{"type":31,"value":41447},"O(1\u002Fε)",{"type":31,"value":41449},"へと高速化できます。これはオプション価格計算やリスクシミュレーションに極めて重要な二次的高速化です。",{"type":21,"tag":22,"props":41451,"children":41452},{},[41453,41457],{"type":21,"tag":16802,"props":41454,"children":41455},{},[41456],{"type":31,"value":41403},{"type":31,"value":41458}," Goldman Sachs、JPMorgan、BBVAが積極的にこれを研究しています。小規模なデモンストレーションが行われてきました。まだ本番規模ではありません。",{"type":21,"tag":22,"props":41460,"children":41461},{},[41462,41466],{"type":21,"tag":16802,"props":41463,"children":41464},{},[41465],{"type":31,"value":41413},{"type":31,"value":41467}," 適度なフォールトトレランス(数千の論理量子ビット)が必要です。実用的な金融面での高速化までの推定は5〜15年の幅があります。",{"type":21,"tag":39926,"props":41469,"children":41470},{},[],{"type":21,"tag":422,"props":41472,"children":41474},{"id":41473},"材料科学電池と太陽電池の設計",[41475],{"type":31,"value":41476},"材料科学:電池と太陽電池の設計",{"type":21,"tag":22,"props":41478,"children":41479},{},[41480,41484],{"type":21,"tag":16802,"props":41481,"children":41482},{},[41483],{"type":31,"value":40979},{"type":31,"value":41485}," リチウム空気電池、窒素固定触媒(ハーバー・ボッシュ法を置き換えるもの)、光起電力材料の候補材料の量子シミュレーション。",{"type":21,"tag":22,"props":41487,"children":41488},{},[41489,41493],{"type":21,"tag":16802,"props":41490,"children":41491},{},[41492],{"type":31,"value":41361},{"type":31,"value":41494}," より優れた電池 = EV革命。効率的なN₂固定 = 肥料のエネルギー使用量の大幅な削減(現在は世界のエネルギー消費の1〜2%)。これらは数兆ドル規模の問題です。",{"type":21,"tag":22,"props":41496,"children":41497},{},[41498,41502],{"type":21,"tag":16802,"props":41499,"children":41500},{},[41501],{"type":31,"value":41403},{"type":31,"value":41503}," Microsoft(StationQ)、IBM、そしてQunaSysやGood Chemistryのようなスタートアップがこれを追求しています。初期段階の研究です。",{"type":21,"tag":22,"props":41505,"children":41506},{},[41507,41511],{"type":21,"tag":16802,"props":41508,"children":41509},{},[41510],{"type":31,"value":41413},{"type":31,"value":41512}," 目標精度と分子サイズに応じて5〜20年。",{"type":21,"tag":39926,"props":41514,"children":41515},{},[],{"type":21,"tag":41,"props":41517,"children":41519},{"id":41518},"完全なフォールトトレランスを必要とすること720年以上",[41520],{"type":31,"value":41521},"完全なフォールトトレランスを必要とすること(7〜20年以上)",{"type":21,"tag":422,"props":41523,"children":41525},{"id":41524},"shorのアルゴリズムによるrsaeccの解読",[41526],{"type":31,"value":41527},"ShorのアルゴリズムによるRSA\u002FECCの解読",{"type":21,"tag":22,"props":41529,"children":41530},{},[41531,41535],{"type":21,"tag":16802,"props":41532,"children":41533},{},[41534],{"type":31,"value":40979},{"type":31,"value":41536}," RSA-2048の基盤となる大きな素数の因数分解。",{"type":21,"tag":22,"props":41538,"children":41539},{},[41540,41545],{"type":21,"tag":16802,"props":41541,"children":41542},{},[41543],{"type":31,"value":41544},"必要なもの:",{"type":31,"value":41546}," 約4,000の論理量子ビット(それぞれに約1,000の物理量子ビットが必要 = 約400万の物理量子ビット)。現状:数百の物理量子ビット、非常にノイズが多い。",{"type":21,"tag":22,"props":41548,"children":41549},{},[41550,41555],{"type":21,"tag":16802,"props":41551,"children":41552},{},[41553],{"type":31,"value":41554},"タイムライン:",{"type":31,"value":41556}," 大半の推定では、RSAを脅かす量子コンピューターは2030〜2040年とされています。決して来ないと言う人もいます。この規模での工学的課題は解決不可能かもしれません。",{"type":21,"tag":22,"props":41558,"children":41559},{},[41560,41565,41567,41572],{"type":21,"tag":16802,"props":41561,"children":41562},{},[41563],{"type":31,"value":41564},"今すべきこと:",{"type":31,"value":41566}," タイムラインにかかわらず",{"type":21,"tag":26,"props":41568,"children":41569},{"href":3883},[41570],{"type":31,"value":41571},"ポスト量子暗号へ移行する",{"type":31,"value":41573},"こと。移行には数年かかり、HNDL攻撃は現在進行中です。",{"type":21,"tag":39926,"props":41575,"children":41576},{},[],{"type":21,"tag":422,"props":41578,"children":41580},{"id":41579},"大規模なgroverの探索",[41581],{"type":31,"value":41582},"大規模なGroverの探索",{"type":21,"tag":22,"props":41584,"children":41585},{},[41586,41590],{"type":21,"tag":16802,"props":41587,"children":41588},{},[41589],{"type":31,"value":40979},{"type":31,"value":41591}," ソートされていないデータベースの探索、NP困難問題の解決に対する二次的高速化。",{"type":21,"tag":22,"props":41593,"children":41594},{},[41595,41599],{"type":21,"tag":16802,"props":41596,"children":41597},{},[41598],{"type":31,"value":41544},{"type":31,"value":41600}," 深い、誤り訂正された回路。二次的高速化とは、大きなNに対して√Nでも依然として膨大であることを意味します。定数因子が量子ハードウェアに有利でなければなりません。",{"type":21,"tag":22,"props":41602,"children":41603},{},[41604,41608],{"type":21,"tag":16802,"props":41605,"children":41606},{},[41607],{"type":31,"value":41554},{"type":31,"value":41609}," 長期的な研究。",{"type":21,"tag":39926,"props":41611,"children":41612},{},[],{"type":21,"tag":422,"props":41614,"children":41616},{"id":41615},"気候モデリングと流体力学",[41617],{"type":31,"value":41615},{"type":21,"tag":22,"props":41619,"children":41620},{},[41621,41625],{"type":21,"tag":16802,"props":41622,"children":41623},{},[41624],{"type":31,"value":40979},{"type":31,"value":41626}," 微分方程式を解く量子アルゴリズム(HHLアルゴリズム)は、気候シミュレーション、流体力学、金融モデリングを加速できる可能性があります。",{"type":21,"tag":22,"props":41628,"children":41629},{},[41630,41634],{"type":21,"tag":16802,"props":41631,"children":41632},{},[41633],{"type":31,"value":41544},{"type":31,"value":41635}," 完全なフォールトトレランス。HHLアルゴリズムは膨大なオーバーヘッドを持ち、理論上でさえ実用的な優位性が明確とは程遠いものになっています。",{"type":21,"tag":22,"props":41637,"children":41638},{},[41639,41643],{"type":21,"tag":16802,"props":41640,"children":41641},{},[41642],{"type":31,"value":41554},{"type":31,"value":41644}," これは最も投機的なカテゴリーです。PDEを解くための量子優位性は、実際にはまだ実証されていません。",{"type":21,"tag":39926,"props":41646,"children":41647},{},[],{"type":21,"tag":41,"props":41649,"children":41651},{"id":41650},"正直な結論",[41652],{"type":31,"value":41650},{"type":21,"tag":3150,"props":41654,"children":41655},{},[41656,41677],{"type":21,"tag":3154,"props":41657,"children":41658},{},[41659],{"type":21,"tag":3158,"props":41660,"children":41661},{},[41662,41667,41672],{"type":21,"tag":3162,"props":41663,"children":41664},{},[41665],{"type":31,"value":41666},"応用",{"type":21,"tag":3162,"props":41668,"children":41669},{},[41670],{"type":31,"value":41671},"今日の量子優位性は?",{"type":21,"tag":3162,"props":41673,"children":41674},{},[41675],{"type":31,"value":41676},"見通し",{"type":21,"tag":3176,"props":41678,"children":41679},{},[41680,41698,41716,41733,41751,41769,41785,41802],{"type":21,"tag":3158,"props":41681,"children":41682},{},[41683,41688,41693],{"type":21,"tag":3183,"props":41684,"children":41685},{},[41686],{"type":31,"value":41687},"ランダム回路サンプリング",{"type":21,"tag":3183,"props":41689,"children":41690},{},[41691],{"type":31,"value":41692},"わずか、応用なし",{"type":21,"tag":3183,"props":41694,"children":41695},{},[41696],{"type":31,"value":41697},"現在(研究のみ)",{"type":21,"tag":3158,"props":41699,"children":41700},{},[41701,41706,41711],{"type":21,"tag":3183,"props":41702,"children":41703},{},[41704],{"type":31,"value":41705},"小分子向けVQE",{"type":21,"tag":3183,"props":41707,"children":41708},{},[41709],{"type":31,"value":41710},"古典に対する優位性なし",{"type":21,"tag":3183,"props":41712,"children":41713},{},[41714],{"type":31,"value":41715},"有用な分子まで3〜5年",{"type":21,"tag":3158,"props":41717,"children":41718},{},[41719,41724,41728],{"type":21,"tag":3183,"props":41720,"children":41721},{},[41722],{"type":31,"value":41723},"最適化向けQAOA",{"type":21,"tag":3183,"props":41725,"children":41726},{},[41727],{"type":31,"value":41710},{"type":21,"tag":3183,"props":41729,"children":41730},{},[41731],{"type":31,"value":41732},"5〜10年",{"type":21,"tag":3158,"props":41734,"children":41735},{},[41736,41741,41746],{"type":21,"tag":3183,"props":41737,"children":41738},{},[41739],{"type":31,"value":41740},"QML \u002F 量子カーネル",{"type":21,"tag":3183,"props":41742,"children":41743},{},[41744],{"type":31,"value":41745},"実データに対する優位性なし",{"type":21,"tag":3183,"props":41747,"children":41748},{},[41749],{"type":31,"value":41750},"不確実",{"type":21,"tag":3158,"props":41752,"children":41753},{},[41754,41759,41764],{"type":21,"tag":3183,"props":41755,"children":41756},{},[41757],{"type":31,"value":41758},"創薬",{"type":21,"tag":3183,"props":41760,"children":41761},{},[41762],{"type":31,"value":41763},"なし",{"type":21,"tag":3183,"props":41765,"children":41766},{},[41767],{"type":31,"value":41768},"7〜10年",{"type":21,"tag":3158,"props":41770,"children":41771},{},[41772,41777,41781],{"type":21,"tag":3183,"props":41773,"children":41774},{},[41775],{"type":31,"value":41776},"金融(モンテカルロ)",{"type":21,"tag":3183,"props":41778,"children":41779},{},[41780],{"type":31,"value":41763},{"type":21,"tag":3183,"props":41782,"children":41783},{},[41784],{"type":31,"value":41732},{"type":21,"tag":3158,"props":41786,"children":41787},{},[41788,41793,41797],{"type":21,"tag":3183,"props":41789,"children":41790},{},[41791],{"type":31,"value":41792},"材料シミュレーション",{"type":21,"tag":3183,"props":41794,"children":41795},{},[41796],{"type":31,"value":41763},{"type":21,"tag":3183,"props":41798,"children":41799},{},[41800],{"type":31,"value":41801},"7〜15年",{"type":21,"tag":3158,"props":41803,"children":41804},{},[41805,41810,41814],{"type":21,"tag":3183,"props":41806,"children":41807},{},[41808],{"type":31,"value":41809},"暗号(Shor)",{"type":21,"tag":3183,"props":41811,"children":41812},{},[41813],{"type":31,"value":41763},{"type":21,"tag":3183,"props":41815,"children":41816},{},[41817],{"type":31,"value":41818},"10〜20年以上",{"type":21,"tag":22,"props":41820,"children":41821},{},[41822,41824,41829,41831,41836],{"type":31,"value":41823},"最も差し迫った量子の価値は、アルゴリズムを実行することに",{"type":21,"tag":16802,"props":41825,"children":41826},{},[41827],{"type":31,"value":41828},"ある",{"type":31,"value":41830},"のではなく、",{"type":21,"tag":16802,"props":41832,"children":41833},{},[41834],{"type":31,"value":41835},"この分野を早く学ぶこと",{"type":31,"value":41837},"にあります。IBM、Google、NVIDIA、AWS、IonQ、そして数十のスタートアップが量子エンジニアを採用しています。そのスキルセット、すなわち回路設計、変分アルゴリズム、量子古典ハイブリッドワークフローは、本当に希少です。そのギャップはやがて埋まり、早く学んだ人々が有利な立場に立つでしょう。",{"type":21,"tag":22,"props":41839,"children":41840},{},[41841,41843,41848],{"type":31,"value":41842},"2番目に差し迫った価値は",{"type":21,"tag":16802,"props":41844,"children":41845},{},[41846],{"type":31,"value":41847},"ポスト量子暗号",{"type":31,"value":41849},"です。これは量子の脅威を伴う古典的なソフトウェアの問題であり、求められる行動は明確かつ緊急です。",{"type":21,"tag":22,"props":41851,"children":41852},{},[41853],{"type":31,"value":41854},"それ以外のすべてについて言えば、ハードウェアは本物であり、進歩は本物であり、誇大宣伝は時期尚早であり、そして軌道は急峻です。",{"type":21,"tag":22,"props":41856,"children":41857},{},[41858,41863,41864,41869,41870,41875,41876],{"type":21,"tag":16802,"props":41859,"children":41860},{},[41861],{"type":31,"value":41862},"ハードウェアを探る:",{"type":31,"value":22948},{"type":21,"tag":26,"props":41865,"children":41866},{"href":1100},[41867],{"type":31,"value":41868},"無料のQPUアクセス",{"type":31,"value":28966},{"type":21,"tag":26,"props":41871,"children":41872},{"href":3292},[41873],{"type":31,"value":41874},"すべてのシミュレーターを比較",{"type":31,"value":28966},{"type":21,"tag":26,"props":41877,"children":41878},{"href":16291},[41879],{"type":31,"value":41880},"量子ユースケースの詳細",{"type":21,"tag":1168,"props":41882,"children":41883},{},[41884],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":41886},[41887,41888,41894,41899,41904],{"id":40911,"depth":168,"text":40911},{"id":40962,"depth":168,"text":40965,"children":41889},[41890,41891,41892,41893],{"id":40968,"depth":190,"text":40971},{"id":41190,"depth":190,"text":41193},{"id":41254,"depth":190,"text":41257},{"id":41315,"depth":190,"text":41318},{"id":41369,"depth":168,"text":41372,"children":41895},[41896,41897,41898],{"id":41375,"depth":190,"text":41375},{"id":41421,"depth":190,"text":41424},{"id":41473,"depth":190,"text":41476},{"id":41518,"depth":168,"text":41521,"children":41900},[41901,41902,41903],{"id":41524,"depth":190,"text":41527},{"id":41579,"depth":190,"text":41582},{"id":41615,"depth":190,"text":41615},{"id":41650,"depth":168,"text":41650},"content:ja:blog:quantum-use-cases-2026.md","ja\u002Fblog\u002Fquantum-use-cases-2026.md","ja\u002Fblog\u002Fquantum-use-cases-2026",{"_path":41909,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":41910,"description":41911,"date":41912,"author":11,"tags":41913,"readingTime":234,"body":41914,"_type":1187,"_id":42742,"_source":1189,"_file":42743,"_stem":42744,"_extension":1192},"\u002Fja\u002Fblog\u002Fgetting-started-free-quantum-computing","2026年に無料で始める量子コンピューティング入門","初めての量子回路を無料で実行するための完全な初心者向けガイド — 高価なハードウェアも、有料サブスクリプションも不要です。","2026-03-10",[3041,16867,14],{"type":18,"children":41915,"toc":42734},[41916,41921,41926,41931,41966,41971,41976,41981,42006,42018,42224,42257,42263,42268,42341,42361,42367,42379,42404,42489,42497,42502,42508,42621,42632,42637,42642,42691,42709,42712,42730],{"type":21,"tag":22,"props":41917,"children":41918},{},[41919],{"type":31,"value":41920},"量子コンピューティングはもはや数百万ドルの研究所設備の中に閉じ込められたものではありません。今日では、あなたのノートパソコンから、実機の127量子ビットマシン上で量子回路を書いて実行できます — しかも無料で。このガイドでは、今すぐ利用できるあらゆる選択肢を順を追って説明します。",{"type":21,"tag":41,"props":41922,"children":41924},{"id":41923},"実際に必要なもの",[41925],{"type":31,"value":41923},{"type":21,"tag":22,"props":41927,"children":41928},{},[41929],{"type":31,"value":41930},"始めるために必要なのは、ちょうど3つだけです。",{"type":21,"tag":68,"props":41932,"children":41933},{},[41934,41944,41956],{"type":21,"tag":72,"props":41935,"children":41936},{},[41937,41939],{"type":31,"value":41938},"マシンにインストールされた ",{"type":21,"tag":16802,"props":41940,"children":41941},{},[41942],{"type":31,"value":41943},"Python 3.9+",{"type":21,"tag":72,"props":41945,"children":41946},{},[41947,41949,41954],{"type":31,"value":41948},"量子クラウドプラットフォームのいずれかの ",{"type":21,"tag":16802,"props":41950,"children":41951},{},[41952],{"type":31,"value":41953},"無料アカウント",{"type":31,"value":41955},"（IBM Quantum が最も簡単です）",{"type":21,"tag":72,"props":41957,"children":41958},{},[41959,41961],{"type":31,"value":41960},"初めての Bell 状態を実行するための ",{"type":21,"tag":16802,"props":41962,"children":41963},{},[41964],{"type":31,"value":41965},"5分間",{"type":21,"tag":22,"props":41967,"children":41968},{},[41969],{"type":31,"value":41970},"これだけです。GPU も不要。特別なハードウェアも不要。クレジットカードも不要です。",{"type":21,"tag":41,"props":41972,"children":41974},{"id":41973},"初めての量子回路",[41975],{"type":31,"value":41973},{"type":21,"tag":22,"props":41977,"children":41978},{},[41979],{"type":31,"value":41980},"Qiskit とそのシミュレータをインストールします。",{"type":21,"tag":129,"props":41982,"children":41983},{"className":4499,"code":33585,"language":4498,"meta":7,"style":7},[41984],{"type":21,"tag":104,"props":41985,"children":41986},{"__ignoreMap":7},[41987],{"type":21,"tag":139,"props":41988,"children":41989},{"class":141,"line":142},[41990,41994,41998,42002],{"type":21,"tag":139,"props":41991,"children":41992},{"style":4509},[41993],{"type":31,"value":4512},{"type":21,"tag":139,"props":41995,"children":41996},{"style":262},[41997],{"type":31,"value":4517},{"type":21,"tag":139,"props":41999,"children":42000},{"style":262},[42001],{"type":31,"value":33605},{"type":21,"tag":139,"props":42003,"children":42004},{"style":262},[42005],{"type":31,"value":33610},{"type":21,"tag":22,"props":42007,"children":42008},{},[42009,42011,42016],{"type":31,"value":42010},"では ",{"type":21,"tag":16802,"props":42012,"children":42013},{},[42014],{"type":31,"value":42015},"Bell 状態",{"type":31,"value":42017}," を作ってみましょう — 重ね合わせとエンタングルメントを示す、典型的な2量子ビット回路です。",{"type":21,"tag":129,"props":42019,"children":42021},{"className":131,"code":42020,"language":133,"meta":7,"style":7},"from qiskit import QuantumCircuit\nfrom qiskit_aer import AerSimulator\n\n# Build the circuit\nqc = QuantumCircuit(2)\nqc.h(0)       # Hadamard — puts qubit 0 into superposition\nqc.cx(0, 1)   # CNOT — entangles qubit 1 with qubit 0\nqc.measure_all()\n\n# Run locally on a simulator\nresult = AerSimulator().run(qc, shots=1000).result()\nprint(result.get_counts())\n# {'00': 503, '11': 497}\n",[42022],{"type":21,"tag":104,"props":42023,"children":42024},{"__ignoreMap":7},[42025,42044,42063,42070,42078,42101,42122,42150,42157,42164,42172,42204,42216],{"type":21,"tag":139,"props":42026,"children":42027},{"class":141,"line":142},[42028,42032,42036,42040],{"type":21,"tag":139,"props":42029,"children":42030},{"style":146},[42031],{"type":31,"value":149},{"type":21,"tag":139,"props":42033,"children":42034},{"style":152},[42035],{"type":31,"value":155},{"type":21,"tag":139,"props":42037,"children":42038},{"style":146},[42039],{"type":31,"value":160},{"type":21,"tag":139,"props":42041,"children":42042},{"style":152},[42043],{"type":31,"value":6269},{"type":21,"tag":139,"props":42045,"children":42046},{"class":141,"line":168},[42047,42051,42055,42059],{"type":21,"tag":139,"props":42048,"children":42049},{"style":146},[42050],{"type":31,"value":149},{"type":21,"tag":139,"props":42052,"children":42053},{"style":152},[42054],{"type":31,"value":178},{"type":21,"tag":139,"props":42056,"children":42057},{"style":146},[42058],{"type":31,"value":160},{"type":21,"tag":139,"props":42060,"children":42061},{"style":152},[42062],{"type":31,"value":187},{"type":21,"tag":139,"props":42064,"children":42065},{"class":141,"line":190},[42066],{"type":21,"tag":139,"props":42067,"children":42068},{"emptyLinePlaceholder":194},[42069],{"type":31,"value":197},{"type":21,"tag":139,"props":42071,"children":42072},{"class":141,"line":200},[42073],{"type":21,"tag":139,"props":42074,"children":42075},{"style":220},[42076],{"type":31,"value":42077},"# Build the circuit\n",{"type":21,"tag":139,"props":42079,"children":42080},{"class":141,"line":226},[42081,42085,42089,42093,42097],{"type":21,"tag":139,"props":42082,"children":42083},{"style":152},[42084],{"type":31,"value":349},{"type":21,"tag":139,"props":42086,"children":42087},{"style":146},[42088],{"type":31,"value":211},{"type":21,"tag":139,"props":42090,"children":42091},{"style":152},[42092],{"type":31,"value":6292},{"type":21,"tag":139,"props":42094,"children":42095},{"style":214},[42096],{"type":31,"value":293},{"type":21,"tag":139,"props":42098,"children":42099},{"style":152},[42100],{"type":31,"value":270},{"type":21,"tag":139,"props":42102,"children":42103},{"class":141,"line":234},[42104,42108,42112,42117],{"type":21,"tag":139,"props":42105,"children":42106},{"style":152},[42107],{"type":31,"value":442},{"type":21,"tag":139,"props":42109,"children":42110},{"style":214},[42111],{"type":31,"value":407},{"type":21,"tag":139,"props":42113,"children":42114},{"style":152},[42115],{"type":31,"value":42116},")       ",{"type":21,"tag":139,"props":42118,"children":42119},{"style":220},[42120],{"type":31,"value":42121},"# Hadamard — puts qubit 0 into superposition\n",{"type":21,"tag":139,"props":42123,"children":42124},{"class":141,"line":273},[42125,42129,42133,42137,42141,42145],{"type":21,"tag":139,"props":42126,"children":42127},{"style":152},[42128],{"type":31,"value":458},{"type":21,"tag":139,"props":42130,"children":42131},{"style":214},[42132],{"type":31,"value":407},{"type":21,"tag":139,"props":42134,"children":42135},{"style":152},[42136],{"type":31,"value":259},{"type":21,"tag":139,"props":42138,"children":42139},{"style":214},[42140],{"type":31,"value":328},{"type":21,"tag":139,"props":42142,"children":42143},{"style":152},[42144],{"type":31,"value":28613},{"type":21,"tag":139,"props":42146,"children":42147},{"style":220},[42148],{"type":31,"value":42149},"# CNOT — entangles qubit 1 with qubit 0\n",{"type":21,"tag":139,"props":42151,"children":42152},{"class":141,"line":309},[42153],{"type":21,"tag":139,"props":42154,"children":42155},{"style":152},[42156],{"type":31,"value":34880},{"type":21,"tag":139,"props":42158,"children":42159},{"class":141,"line":16},[42160],{"type":21,"tag":139,"props":42161,"children":42162},{"emptyLinePlaceholder":194},[42163],{"type":31,"value":197},{"type":21,"tag":139,"props":42165,"children":42166},{"class":141,"line":361},[42167],{"type":21,"tag":139,"props":42168,"children":42169},{"style":220},[42170],{"type":31,"value":42171},"# Run locally on a simulator\n",{"type":21,"tag":139,"props":42173,"children":42174},{"class":141,"line":369},[42175,42179,42183,42188,42192,42196,42200],{"type":21,"tag":139,"props":42176,"children":42177},{"style":152},[42178],{"type":31,"value":4868},{"type":21,"tag":139,"props":42180,"children":42181},{"style":146},[42182],{"type":31,"value":211},{"type":21,"tag":139,"props":42184,"children":42185},{"style":152},[42186],{"type":31,"value":42187}," AerSimulator().run(qc, ",{"type":21,"tag":139,"props":42189,"children":42190},{"style":923},[42191],{"type":31,"value":926},{"type":21,"tag":139,"props":42193,"children":42194},{"style":146},[42195],{"type":31,"value":211},{"type":21,"tag":139,"props":42197,"children":42198},{"style":214},[42199],{"type":31,"value":1730},{"type":21,"tag":139,"props":42201,"children":42202},{"style":152},[42203],{"type":31,"value":9210},{"type":21,"tag":139,"props":42205,"children":42206},{"class":141,"line":378},[42207,42211],{"type":21,"tag":139,"props":42208,"children":42209},{"style":214},[42210],{"type":31,"value":948},{"type":21,"tag":139,"props":42212,"children":42213},{"style":152},[42214],{"type":31,"value":42215},"(result.get_counts())\n",{"type":21,"tag":139,"props":42217,"children":42218},{"class":141,"line":387},[42219],{"type":21,"tag":139,"props":42220,"children":42221},{"style":220},[42222],{"type":31,"value":42223},"# {'00': 503, '11': 497}\n",{"type":21,"tag":22,"props":42225,"children":42226},{},[42227,42229,42234,42235,42240,42242,42248,42250,42255],{"type":31,"value":42228},"出力 — ",{"type":21,"tag":104,"props":42230,"children":42232},{"className":42231},[],[42233],{"type":31,"value":27550},{"type":31,"value":501},{"type":21,"tag":104,"props":42236,"children":42238},{"className":42237},[],[42239],{"type":31,"value":27557},{"type":31,"value":42241}," がほぼ同数で、",{"type":21,"tag":104,"props":42243,"children":42245},{"className":42244},[],[42246],{"type":31,"value":42247},"01",{"type":31,"value":42249}," や ",{"type":21,"tag":104,"props":42251,"children":42253},{"className":42252},[],[42254],{"type":31,"value":14062},{"type":31,"value":42256}," は決して現れない — はエンタングルメントの証です。一方の量子ビットを測定すれば、両者の間の距離に関係なく、もう一方の状態が瞬時に分かります。",{"type":21,"tag":41,"props":42258,"children":42260},{"id":42259},"無料シミュレータ-アカウント不要",[42261],{"type":31,"value":42262},"無料シミュレータ: アカウント不要",{"type":21,"tag":22,"props":42264,"children":42265},{},[42266],{"type":31,"value":42267},"すべての主要な SDK には、サインアップなしで CPU または GPU 上で動作する強力なローカルシミュレータが含まれています。",{"type":21,"tag":129,"props":42269,"children":42271},{"className":4499,"code":42270,"language":4498,"meta":7,"style":7},"pip install qiskit qiskit-aer   # IBM Qiskit + Aer simulator\npip install cirq                 # Google Cirq\npip install pennylane            # PennyLane\n",[42272],{"type":21,"tag":104,"props":42273,"children":42274},{"__ignoreMap":7},[42275,42300,42321],{"type":21,"tag":139,"props":42276,"children":42277},{"class":141,"line":142},[42278,42282,42286,42290,42295],{"type":21,"tag":139,"props":42279,"children":42280},{"style":4509},[42281],{"type":31,"value":4512},{"type":21,"tag":139,"props":42283,"children":42284},{"style":262},[42285],{"type":31,"value":4517},{"type":21,"tag":139,"props":42287,"children":42288},{"style":262},[42289],{"type":31,"value":33605},{"type":21,"tag":139,"props":42291,"children":42292},{"style":262},[42293],{"type":31,"value":42294}," qiskit-aer",{"type":21,"tag":139,"props":42296,"children":42297},{"style":220},[42298],{"type":31,"value":42299},"   # IBM Qiskit + Aer simulator\n",{"type":21,"tag":139,"props":42301,"children":42302},{"class":141,"line":168},[42303,42307,42311,42316],{"type":21,"tag":139,"props":42304,"children":42305},{"style":4509},[42306],{"type":31,"value":4512},{"type":21,"tag":139,"props":42308,"children":42309},{"style":262},[42310],{"type":31,"value":4517},{"type":21,"tag":139,"props":42312,"children":42313},{"style":262},[42314],{"type":31,"value":42315}," cirq",{"type":21,"tag":139,"props":42317,"children":42318},{"style":220},[42319],{"type":31,"value":42320},"                 # Google Cirq\n",{"type":21,"tag":139,"props":42322,"children":42323},{"class":141,"line":190},[42324,42328,42332,42336],{"type":21,"tag":139,"props":42325,"children":42326},{"style":4509},[42327],{"type":31,"value":4512},{"type":21,"tag":139,"props":42329,"children":42330},{"style":262},[42331],{"type":31,"value":4517},{"type":21,"tag":139,"props":42333,"children":42334},{"style":262},[42335],{"type":31,"value":9032},{"type":21,"tag":139,"props":42337,"children":42338},{"style":220},[42339],{"type":31,"value":42340},"            # PennyLane\n",{"type":21,"tag":22,"props":42342,"children":42343},{},[42344,42346,42352,42354,42359],{"type":31,"value":42345},"いずれも20〜30量子ビットの回路を余裕をもって扱えます。大規模な回路や GPU アクセラレーションには、",{"type":21,"tag":26,"props":42347,"children":42349},{"href":42348},"\u002Fsdks\u002Fcudaq",[42350],{"type":31,"value":42351},"NVIDIA CUDA-Q",{"type":31,"value":42353}," が単一の GPU 上で34量子ビット以上をシミュレートできます。詳しい比較については、",{"type":21,"tag":26,"props":42355,"children":42356},{"href":3292},[42357],{"type":31,"value":42358},"Simulators ガイド",{"type":31,"value":42360},"の全文をご覧ください。",{"type":21,"tag":41,"props":42362,"children":42364},{"id":42363},"無料の実機ハードウェア-ibm-quantum",[42365],{"type":31,"value":42366},"無料の実機ハードウェア: IBM Quantum",{"type":21,"tag":22,"props":42368,"children":42369},{},[42370,42372,42377],{"type":31,"value":42371},"IBM Quantum は、IBM ID を持つ誰に対しても、実機の量子プロセッサへの ",{"type":21,"tag":16802,"props":42373,"children":42374},{},[42375],{"type":31,"value":42376},"完全無料",{"type":31,"value":42378}," アクセスを提供しています。",{"type":21,"tag":68,"props":42380,"children":42381},{},[42382,42394,42399],{"type":21,"tag":72,"props":42383,"children":42384},{},[42385,42392],{"type":21,"tag":26,"props":42386,"children":42389},{"href":42387,"rel":42388},"https:\u002F\u002Fquantum.ibm.com\u002F",[7123],[42390],{"type":31,"value":42391},"quantum.ibm.com",{"type":31,"value":42393}," にアクセスし、無料アカウントを作成します",{"type":21,"tag":72,"props":42395,"children":42396},{},[42397],{"type":31,"value":42398},"アカウント設定から API トークンをコピーします",{"type":21,"tag":72,"props":42400,"children":42401},{},[42402],{"type":31,"value":42403},"トークンで Qiskit を設定します。",{"type":21,"tag":129,"props":42405,"children":42407},{"className":131,"code":42406,"language":133,"meta":7,"style":7},"from qiskit_ibm_runtime import QiskitRuntimeService\n\nQiskitRuntimeService.save_account(\n    channel=\"ibm_quantum\",\n    token=\"YOUR_TOKEN_HERE\"\n)\n",[42408],{"type":21,"tag":104,"props":42409,"children":42410},{"__ignoreMap":7},[42411,42430,42437,42445,42465,42482],{"type":21,"tag":139,"props":42412,"children":42413},{"class":141,"line":142},[42414,42418,42422,42426],{"type":21,"tag":139,"props":42415,"children":42416},{"style":146},[42417],{"type":31,"value":149},{"type":21,"tag":139,"props":42419,"children":42420},{"style":152},[42421],{"type":31,"value":9705},{"type":21,"tag":139,"props":42423,"children":42424},{"style":146},[42425],{"type":31,"value":160},{"type":21,"tag":139,"props":42427,"children":42428},{"style":152},[42429],{"type":31,"value":9714},{"type":21,"tag":139,"props":42431,"children":42432},{"class":141,"line":168},[42433],{"type":21,"tag":139,"props":42434,"children":42435},{"emptyLinePlaceholder":194},[42436],{"type":31,"value":197},{"type":21,"tag":139,"props":42438,"children":42439},{"class":141,"line":190},[42440],{"type":21,"tag":139,"props":42441,"children":42442},{"style":152},[42443],{"type":31,"value":42444},"QiskitRuntimeService.save_account(\n",{"type":21,"tag":139,"props":42446,"children":42447},{"class":141,"line":200},[42448,42453,42457,42461],{"type":21,"tag":139,"props":42449,"children":42450},{"style":923},[42451],{"type":31,"value":42452},"    channel",{"type":21,"tag":139,"props":42454,"children":42455},{"style":146},[42456],{"type":31,"value":211},{"type":21,"tag":139,"props":42458,"children":42459},{"style":262},[42460],{"type":31,"value":9751},{"type":21,"tag":139,"props":42462,"children":42463},{"style":152},[42464],{"type":31,"value":4811},{"type":21,"tag":139,"props":42466,"children":42467},{"class":141,"line":226},[42468,42473,42477],{"type":21,"tag":139,"props":42469,"children":42470},{"style":923},[42471],{"type":31,"value":42472},"    token",{"type":21,"tag":139,"props":42474,"children":42475},{"style":146},[42476],{"type":31,"value":211},{"type":21,"tag":139,"props":42478,"children":42479},{"style":262},[42480],{"type":31,"value":42481},"\"YOUR_TOKEN_HERE\"\n",{"type":21,"tag":139,"props":42483,"children":42484},{"class":141,"line":234},[42485],{"type":21,"tag":139,"props":42486,"children":42487},{"style":152},[42488],{"type":31,"value":270},{"type":21,"tag":68,"props":42490,"children":42491},{"start":200},[42492],{"type":21,"tag":72,"props":42493,"children":42494},{},[42495],{"type":31,"value":42496},"IBM の無料公開 QPU のいずれかにジョブを送信します",{"type":21,"tag":22,"props":42498,"children":42499},{},[42500],{"type":31,"value":42501},"公開システムでの待ち時間は通常、数分から数時間です。世界中の研究者や学生と時間を共有することになります — それが唯一の難点です。",{"type":21,"tag":41,"props":42503,"children":42505},{"id":42504},"最初の-sdk-を選ぶ",[42506],{"type":31,"value":42507},"最初の SDK を選ぶ",{"type":21,"tag":3150,"props":42509,"children":42510},{},[42511,42532],{"type":21,"tag":3154,"props":42512,"children":42513},{},[42514],{"type":21,"tag":3158,"props":42515,"children":42516},{},[42517,42522,42527],{"type":21,"tag":3162,"props":42518,"children":42519},{},[42520],{"type":31,"value":42521},"SDK",{"type":21,"tag":3162,"props":42523,"children":42524},{},[42525],{"type":31,"value":42526},"最適な用途",{"type":21,"tag":3162,"props":42528,"children":42529},{},[42530],{"type":31,"value":42531},"無料枠",{"type":21,"tag":3176,"props":42533,"children":42534},{},[42535,42553,42570,42587,42604],{"type":21,"tag":3158,"props":42536,"children":42537},{},[42538,42543,42548],{"type":21,"tag":3183,"props":42539,"children":42540},{},[42541],{"type":31,"value":42542},"IBM Qiskit",{"type":21,"tag":3183,"props":42544,"children":42545},{},[42546],{"type":31,"value":42547},"汎用、実機ハードウェア",{"type":21,"tag":3183,"props":42549,"children":42550},{},[42551],{"type":31,"value":42552},"フル — ローカル + 実機 QPU",{"type":21,"tag":3158,"props":42554,"children":42555},{},[42556,42560,42565],{"type":21,"tag":3183,"props":42557,"children":42558},{},[42559],{"type":31,"value":4474},{"type":21,"tag":3183,"props":42561,"children":42562},{},[42563],{"type":31,"value":42564},"量子機械学習、勾配計算",{"type":21,"tag":3183,"props":42566,"children":42567},{},[42568],{"type":31,"value":42569},"フル — ローカルシミュレータ",{"type":21,"tag":3158,"props":42571,"children":42572},{},[42573,42578,42583],{"type":21,"tag":3183,"props":42574,"children":42575},{},[42576],{"type":31,"value":42577},"Google Cirq",{"type":21,"tag":3183,"props":42579,"children":42580},{},[42581],{"type":31,"value":42582},"NISQ 研究",{"type":21,"tag":3183,"props":42584,"children":42585},{},[42586],{"type":31,"value":42569},{"type":21,"tag":3158,"props":42588,"children":42589},{},[42590,42594,42599],{"type":21,"tag":3183,"props":42591,"children":42592},{},[42593],{"type":31,"value":3656},{"type":21,"tag":3183,"props":42595,"children":42596},{},[42597],{"type":31,"value":42598},"AWS 連携",{"type":21,"tag":3183,"props":42600,"children":42601},{},[42602],{"type":31,"value":42603},"無料ローカルシミュレータ、クラウドは有料",{"type":21,"tag":3158,"props":42605,"children":42606},{},[42607,42611,42616],{"type":21,"tag":3183,"props":42608,"children":42609},{},[42610],{"type":31,"value":42351},{"type":21,"tag":3183,"props":42612,"children":42613},{},[42614],{"type":31,"value":42615},"GPU アクセラレーション",{"type":21,"tag":3183,"props":42617,"children":42618},{},[42619],{"type":31,"value":42620},"フル — ローカル GPU",{"type":21,"tag":22,"props":42622,"children":42623},{},[42624,42626,42630],{"type":31,"value":42625},"ほとんどの初心者にとって、",{"type":21,"tag":16802,"props":42627,"children":42628},{},[42629],{"type":31,"value":14},{"type":31,"value":42631}," が最良の出発点です — 最大のコミュニティ、最も充実したドキュメント、そして IBM 実機ハードウェアへの直接アクセスを備えています。",{"type":21,"tag":41,"props":42633,"children":42635},{"id":42634},"次に作るべきもの",[42636],{"type":31,"value":42634},{"type":21,"tag":22,"props":42638,"children":42639},{},[42640],{"type":31,"value":42641},"Bell 状態が動いたら、次に試すべき興味深い回路の進め方を紹介します。",{"type":21,"tag":1112,"props":42643,"children":42644},{},[42645,42663,42672,42682],{"type":21,"tag":72,"props":42646,"children":42647},{},[42648,42653,42655,42661],{"type":21,"tag":16802,"props":42649,"children":42650},{},[42651],{"type":31,"value":42652},"GHZ 状態",{"type":31,"value":42654}," — 3量子ビットのエンタングル状態（",{"type":21,"tag":104,"props":42656,"children":42658},{"className":42657},[],[42659],{"type":31,"value":42660},"h(0).cx(0,1).cx(0,2)",{"type":31,"value":42662},"）",{"type":21,"tag":72,"props":42664,"children":42665},{},[42666,42670],{"type":21,"tag":16802,"props":42667,"children":42668},{},[42669],{"type":31,"value":32},{"type":31,"value":42671}," — エンタングルメントと古典通信を用いて量子ビットの状態を転送する",{"type":21,"tag":72,"props":42673,"children":42674},{},[42675,42680],{"type":21,"tag":16802,"props":42676,"children":42677},{},[42678],{"type":31,"value":42679},"Grover の探索",{"type":31,"value":42681}," — リスト内のマークされた項目を、総当たりよりも二次的に速く見つける",{"type":21,"tag":72,"props":42683,"children":42684},{},[42685,42689],{"type":21,"tag":16802,"props":42686,"children":42687},{},[42688],{"type":31,"value":3613},{"type":31,"value":42690}," — 変分アルゴリズムで分子の基底状態エネルギーを推定する",{"type":21,"tag":22,"props":42692,"children":42693},{},[42694,42696,42700,42702,42707],{"type":31,"value":42695},"さらに深く学ぶには、",{"type":21,"tag":26,"props":42697,"children":42698},{"href":3292},[42699],{"type":31,"value":42358},{"type":31,"value":42701},"と ",{"type":21,"tag":26,"props":42703,"children":42704},{"href":1100},[42705],{"type":31,"value":42706},"Hardware ガイド",{"type":31,"value":42708},"をご覧ください。",{"type":21,"tag":39926,"props":42710,"children":42711},{},[],{"type":21,"tag":22,"props":42713,"children":42714},{},[42715,42717,42722,42724,42728],{"type":31,"value":42716},"💡 ",{"type":21,"tag":16802,"props":42718,"children":42719},{},[42720],{"type":31,"value":42721},"ヒント:",{"type":31,"value":42723}," 複数の SDK にまたがって、毎回回路を書き直すことなく実験したい場合は、",{"type":21,"tag":26,"props":42725,"children":42726},{"href":40749},[42727],{"type":31,"value":40752},{"type":31,"value":42729}," が統一 API を提供しています。単一のバックエンドフラグで、同じ回路を Qiskit、Cirq、PennyLane、Braket、CUDA-Q、または IonQ 上で実行できます。",{"type":21,"tag":1168,"props":42731,"children":42732},{},[42733],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":42735},[42736,42737,42738,42739,42740,42741],{"id":41923,"depth":168,"text":41923},{"id":41973,"depth":168,"text":41973},{"id":42259,"depth":168,"text":42262},{"id":42363,"depth":168,"text":42366},{"id":42504,"depth":168,"text":42507},{"id":42634,"depth":168,"text":42634},"content:ja:blog:getting-started-free-quantum-computing.md","ja\u002Fblog\u002Fgetting-started-free-quantum-computing.md","ja\u002Fblog\u002Fgetting-started-free-quantum-computing",{"_path":42746,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":42747,"description":42748,"date":42749,"author":11,"tags":42750,"readingTime":273,"body":42751,"_type":1187,"_id":45169,"_source":1189,"_file":45170,"_stem":45171,"_extension":1192},"\u002Fja\u002Fblog\u002Fhlquantum-vs-qiskit","HLQuantum vs 素のQiskit: 抽象化レイヤーをいつ使うべきか","Qiskitで量子回路を直接記述する場合と、HLQuantumの統一APIを使う場合の実践的な比較 — 並列コード例と、どちらを使うか判断するためのフレームワークとともに。","2026-03-08",[40752,14,3041,5973],{"type":18,"children":42752,"toc":45159},[42753,42758,42763,42768,42777,42786,42792,42800,43031,43039,43200,43205,43211,43219,43723,43731,44068,44073,44079,44087,44454,44462,44704,44709,44715,44720,44802,44808,44813,44887,44893,44898,45107,45112,45117,45125,45130,45155],{"type":21,"tag":22,"props":42754,"children":42755},{},[42756],{"type":31,"value":42757},"量子コンピューティングのプロジェクトを始めるとき、避けて通れない問いがあります。回路をQiskitで直接記述すべきか、それともその上にあるHLQuantumの抽象化レイヤーを使うべきか。どちらも妥当な選択であり、正解はあなたが何を作ろうとしているかによって変わります。",{"type":21,"tag":22,"props":42759,"children":42760},{},[42761],{"type":31,"value":42762},"この記事では、判断の助けとなるよう、具体的でコード中心の比較を提供します。",{"type":21,"tag":41,"props":42764,"children":42766},{"id":42765},"核心的な違い",[42767],{"type":31,"value":42765},{"type":21,"tag":22,"props":42769,"children":42770},{},[42771,42775],{"type":21,"tag":16802,"props":42772,"children":42773},{},[42774],{"type":31,"value":14},{"type":31,"value":42776}," はIBMの量子SDKです。すべてのゲート、量子ビット、測定、コンパイルステップに対して直接的かつ精密な制御を提供します。IBMハードウェアをネイティブにターゲットとし、IBM固有のワークフローに対して最も深いエコシステムを備えています。",{"type":21,"tag":22,"props":42778,"children":42779},{},[42780,42784],{"type":21,"tag":16802,"props":42781,"children":42782},{},[42783],{"type":31,"value":40752},{"type":31,"value":42785}," は、Qiskit、Cirq、PennyLane、Braket、CUDA-Q、IonQの上に位置する統一APIです。回路を一度記述すれば、指定したバックエンドへ変換してディスパッチします。低レベルの制御を一部犠牲にする代わりに、移植性とシンプルさを得られます。",{"type":21,"tag":41,"props":42787,"children":42789},{"id":42788},"並列比較-ベル状態",[42790],{"type":31,"value":42791},"並列比較: ベル状態",{"type":21,"tag":22,"props":42793,"children":42794},{},[42795],{"type":21,"tag":16802,"props":42796,"children":42797},{},[42798],{"type":31,"value":42799},"素のQiskit:",{"type":21,"tag":129,"props":42801,"children":42803},{"code":42802,"language":133,"meta":7,"className":131,"style":7},"from qiskit import QuantumCircuit\nfrom qiskit_aer import AerSimulator\n\nqc = QuantumCircuit(2, 2)\nqc.h(0)\nqc.cx(0, 1)\nqc.measure([0, 1], [0, 1])\n\nsim = AerSimulator()\nresult = sim.run(qc, shots=1000).result()\nprint(result.get_counts())  # {'00': 501, '11': 499}\n",[42804],{"type":21,"tag":104,"props":42805,"children":42806},{"__ignoreMap":7},[42807,42826,42845,42852,42883,42898,42921,42960,42967,42982,43014],{"type":21,"tag":139,"props":42808,"children":42809},{"class":141,"line":142},[42810,42814,42818,42822],{"type":21,"tag":139,"props":42811,"children":42812},{"style":146},[42813],{"type":31,"value":149},{"type":21,"tag":139,"props":42815,"children":42816},{"style":152},[42817],{"type":31,"value":155},{"type":21,"tag":139,"props":42819,"children":42820},{"style":146},[42821],{"type":31,"value":160},{"type":21,"tag":139,"props":42823,"children":42824},{"style":152},[42825],{"type":31,"value":6269},{"type":21,"tag":139,"props":42827,"children":42828},{"class":141,"line":168},[42829,42833,42837,42841],{"type":21,"tag":139,"props":42830,"children":42831},{"style":146},[42832],{"type":31,"value":149},{"type":21,"tag":139,"props":42834,"children":42835},{"style":152},[42836],{"type":31,"value":178},{"type":21,"tag":139,"props":42838,"children":42839},{"style":146},[42840],{"type":31,"value":160},{"type":21,"tag":139,"props":42842,"children":42843},{"style":152},[42844],{"type":31,"value":187},{"type":21,"tag":139,"props":42846,"children":42847},{"class":141,"line":190},[42848],{"type":21,"tag":139,"props":42849,"children":42850},{"emptyLinePlaceholder":194},[42851],{"type":31,"value":197},{"type":21,"tag":139,"props":42853,"children":42854},{"class":141,"line":200},[42855,42859,42863,42867,42871,42875,42879],{"type":21,"tag":139,"props":42856,"children":42857},{"style":152},[42858],{"type":31,"value":349},{"type":21,"tag":139,"props":42860,"children":42861},{"style":146},[42862],{"type":31,"value":211},{"type":21,"tag":139,"props":42864,"children":42865},{"style":152},[42866],{"type":31,"value":6292},{"type":21,"tag":139,"props":42868,"children":42869},{"style":214},[42870],{"type":31,"value":293},{"type":21,"tag":139,"props":42872,"children":42873},{"style":152},[42874],{"type":31,"value":259},{"type":21,"tag":139,"props":42876,"children":42877},{"style":214},[42878],{"type":31,"value":293},{"type":21,"tag":139,"props":42880,"children":42881},{"style":152},[42882],{"type":31,"value":270},{"type":21,"tag":139,"props":42884,"children":42885},{"class":141,"line":226},[42886,42890,42894],{"type":21,"tag":139,"props":42887,"children":42888},{"style":152},[42889],{"type":31,"value":442},{"type":21,"tag":139,"props":42891,"children":42892},{"style":214},[42893],{"type":31,"value":407},{"type":21,"tag":139,"props":42895,"children":42896},{"style":152},[42897],{"type":31,"value":270},{"type":21,"tag":139,"props":42899,"children":42900},{"class":141,"line":234},[42901,42905,42909,42913,42917],{"type":21,"tag":139,"props":42902,"children":42903},{"style":152},[42904],{"type":31,"value":458},{"type":21,"tag":139,"props":42906,"children":42907},{"style":214},[42908],{"type":31,"value":407},{"type":21,"tag":139,"props":42910,"children":42911},{"style":152},[42912],{"type":31,"value":259},{"type":21,"tag":139,"props":42914,"children":42915},{"style":214},[42916],{"type":31,"value":328},{"type":21,"tag":139,"props":42918,"children":42919},{"style":152},[42920],{"type":31,"value":270},{"type":21,"tag":139,"props":42922,"children":42923},{"class":141,"line":273},[42924,42928,42932,42936,42940,42944,42948,42952,42956],{"type":21,"tag":139,"props":42925,"children":42926},{"style":152},[42927],{"type":31,"value":10195},{"type":21,"tag":139,"props":42929,"children":42930},{"style":214},[42931],{"type":31,"value":407},{"type":21,"tag":139,"props":42933,"children":42934},{"style":152},[42935],{"type":31,"value":259},{"type":21,"tag":139,"props":42937,"children":42938},{"style":214},[42939],{"type":31,"value":328},{"type":21,"tag":139,"props":42941,"children":42942},{"style":152},[42943],{"type":31,"value":6404},{"type":21,"tag":139,"props":42945,"children":42946},{"style":214},[42947],{"type":31,"value":407},{"type":21,"tag":139,"props":42949,"children":42950},{"style":152},[42951],{"type":31,"value":259},{"type":21,"tag":139,"props":42953,"children":42954},{"style":214},[42955],{"type":31,"value":328},{"type":21,"tag":139,"props":42957,"children":42958},{"style":152},[42959],{"type":31,"value":599},{"type":21,"tag":139,"props":42961,"children":42962},{"class":141,"line":309},[42963],{"type":21,"tag":139,"props":42964,"children":42965},{"emptyLinePlaceholder":194},[42966],{"type":31,"value":197},{"type":21,"tag":139,"props":42968,"children":42969},{"class":141,"line":16},[42970,42974,42978],{"type":21,"tag":139,"props":42971,"children":42972},{"style":152},[42973],{"type":31,"value":877},{"type":21,"tag":139,"props":42975,"children":42976},{"style":146},[42977],{"type":31,"value":211},{"type":21,"tag":139,"props":42979,"children":42980},{"style":152},[42981],{"type":31,"value":886},{"type":21,"tag":139,"props":42983,"children":42984},{"class":141,"line":361},[42985,42989,42993,42998,43002,43006,43010],{"type":21,"tag":139,"props":42986,"children":42987},{"style":152},[42988],{"type":31,"value":4868},{"type":21,"tag":139,"props":42990,"children":42991},{"style":146},[42992],{"type":31,"value":211},{"type":21,"tag":139,"props":42994,"children":42995},{"style":152},[42996],{"type":31,"value":42997}," sim.run(qc, ",{"type":21,"tag":139,"props":42999,"children":43000},{"style":923},[43001],{"type":31,"value":926},{"type":21,"tag":139,"props":43003,"children":43004},{"style":146},[43005],{"type":31,"value":211},{"type":21,"tag":139,"props":43007,"children":43008},{"style":214},[43009],{"type":31,"value":1730},{"type":21,"tag":139,"props":43011,"children":43012},{"style":152},[43013],{"type":31,"value":9210},{"type":21,"tag":139,"props":43015,"children":43016},{"class":141,"line":369},[43017,43021,43026],{"type":21,"tag":139,"props":43018,"children":43019},{"style":214},[43020],{"type":31,"value":948},{"type":21,"tag":139,"props":43022,"children":43023},{"style":152},[43024],{"type":31,"value":43025},"(result.get_counts())  ",{"type":21,"tag":139,"props":43027,"children":43028},{"style":220},[43029],{"type":31,"value":43030},"# {'00': 501, '11': 499}\n",{"type":21,"tag":22,"props":43032,"children":43033},{},[43034],{"type":21,"tag":16802,"props":43035,"children":43036},{},[43037],{"type":31,"value":43038},"HLQuantum:",{"type":21,"tag":129,"props":43040,"children":43042},{"code":43041,"language":133,"meta":7,"className":131,"style":7},"import hlquantum as hlq\n\nqc = hlq.Circuit(2)\nqc.h(0).cx(0, 1).measure_all()\n\nresult = hlq.run(qc, backend='qiskit', shots=1000)\nprint(result.counts)  # {'00': 501, '11': 499}\n",[43043],{"type":21,"tag":104,"props":43044,"children":43045},{"__ignoreMap":7},[43046,43065,43072,43096,43129,43136,43184],{"type":21,"tag":139,"props":43047,"children":43048},{"class":141,"line":142},[43049,43053,43057,43061],{"type":21,"tag":139,"props":43050,"children":43051},{"style":146},[43052],{"type":31,"value":160},{"type":21,"tag":139,"props":43054,"children":43055},{"style":152},[43056],{"type":31,"value":41040},{"type":21,"tag":139,"props":43058,"children":43059},{"style":146},[43060],{"type":31,"value":5343},{"type":21,"tag":139,"props":43062,"children":43063},{"style":152},[43064],{"type":31,"value":41049},{"type":21,"tag":139,"props":43066,"children":43067},{"class":141,"line":168},[43068],{"type":21,"tag":139,"props":43069,"children":43070},{"emptyLinePlaceholder":194},[43071],{"type":31,"value":197},{"type":21,"tag":139,"props":43073,"children":43074},{"class":141,"line":190},[43075,43079,43083,43088,43092],{"type":21,"tag":139,"props":43076,"children":43077},{"style":152},[43078],{"type":31,"value":349},{"type":21,"tag":139,"props":43080,"children":43081},{"style":146},[43082],{"type":31,"value":211},{"type":21,"tag":139,"props":43084,"children":43085},{"style":152},[43086],{"type":31,"value":43087}," hlq.Circuit(",{"type":21,"tag":139,"props":43089,"children":43090},{"style":214},[43091],{"type":31,"value":293},{"type":21,"tag":139,"props":43093,"children":43094},{"style":152},[43095],{"type":31,"value":270},{"type":21,"tag":139,"props":43097,"children":43098},{"class":141,"line":200},[43099,43103,43107,43112,43116,43120,43124],{"type":21,"tag":139,"props":43100,"children":43101},{"style":152},[43102],{"type":31,"value":442},{"type":21,"tag":139,"props":43104,"children":43105},{"style":214},[43106],{"type":31,"value":407},{"type":21,"tag":139,"props":43108,"children":43109},{"style":152},[43110],{"type":31,"value":43111},").cx(",{"type":21,"tag":139,"props":43113,"children":43114},{"style":214},[43115],{"type":31,"value":407},{"type":21,"tag":139,"props":43117,"children":43118},{"style":152},[43119],{"type":31,"value":259},{"type":21,"tag":139,"props":43121,"children":43122},{"style":214},[43123],{"type":31,"value":328},{"type":21,"tag":139,"props":43125,"children":43126},{"style":152},[43127],{"type":31,"value":43128},").measure_all()\n",{"type":21,"tag":139,"props":43130,"children":43131},{"class":141,"line":226},[43132],{"type":21,"tag":139,"props":43133,"children":43134},{"emptyLinePlaceholder":194},[43135],{"type":31,"value":197},{"type":21,"tag":139,"props":43137,"children":43138},{"class":141,"line":234},[43139,43143,43147,43152,43156,43160,43164,43168,43172,43176,43180],{"type":21,"tag":139,"props":43140,"children":43141},{"style":152},[43142],{"type":31,"value":4868},{"type":21,"tag":139,"props":43144,"children":43145},{"style":146},[43146],{"type":31,"value":211},{"type":21,"tag":139,"props":43148,"children":43149},{"style":152},[43150],{"type":31,"value":43151}," hlq.run(qc, ",{"type":21,"tag":139,"props":43153,"children":43154},{"style":923},[43155],{"type":31,"value":10987},{"type":21,"tag":139,"props":43157,"children":43158},{"style":146},[43159],{"type":31,"value":211},{"type":21,"tag":139,"props":43161,"children":43162},{"style":262},[43163],{"type":31,"value":41129},{"type":21,"tag":139,"props":43165,"children":43166},{"style":152},[43167],{"type":31,"value":259},{"type":21,"tag":139,"props":43169,"children":43170},{"style":923},[43171],{"type":31,"value":926},{"type":21,"tag":139,"props":43173,"children":43174},{"style":146},[43175],{"type":31,"value":211},{"type":21,"tag":139,"props":43177,"children":43178},{"style":214},[43179],{"type":31,"value":1730},{"type":21,"tag":139,"props":43181,"children":43182},{"style":152},[43183],{"type":31,"value":270},{"type":21,"tag":139,"props":43185,"children":43186},{"class":141,"line":273},[43187,43191,43196],{"type":21,"tag":139,"props":43188,"children":43189},{"style":214},[43190],{"type":31,"value":948},{"type":21,"tag":139,"props":43192,"children":43193},{"style":152},[43194],{"type":31,"value":43195},"(result.counts)  ",{"type":21,"tag":139,"props":43197,"children":43198},{"style":220},[43199],{"type":31,"value":43030},{"type":21,"tag":22,"props":43201,"children":43202},{},[43203],{"type":31,"value":43204},"単一バックエンドであれば、記述量はほぼ同じです。違いが現れるのは、バックエンドを増やしたときです。",{"type":21,"tag":41,"props":43206,"children":43208},{"id":43207},"並列比較-複数バックエンドでの実行",[43209],{"type":31,"value":43210},"並列比較: 複数バックエンドでの実行",{"type":21,"tag":22,"props":43212,"children":43213},{},[43214],{"type":21,"tag":16802,"props":43215,"children":43216},{},[43217],{"type":31,"value":43218},"素のQiskit(2つ目のバックエンドを追加するには、書き直しが必要):",{"type":21,"tag":129,"props":43220,"children":43222},{"code":43221,"language":133,"meta":7,"className":131,"style":7},"# Qiskit Aer\nfrom qiskit import QuantumCircuit\nfrom qiskit_aer import AerSimulator\nqc_qiskit = QuantumCircuit(2, 2)\nqc_qiskit.h(0); qc_qiskit.cx(0, 1); qc_qiskit.measure_all()\nresult_qiskit = AerSimulator().run(qc_qiskit, shots=1000).result()\n\n# PennyLane — 全く異なるAPI、回路を書き直す\nimport pennylane as qml\ndev = qml.device('default.qubit', wires=2)\n@qml.qnode(dev)\ndef bell():\n    qml.Hadamard(wires=0)\n    qml.CNOT(wires=[0, 1])\n    return qml.probs(wires=[0, 1])\nresult_pennylane = bell()\n\n# CUDA-Q — さらに別のAPI、また書き直す\nimport cudaq\n@cudaq.kernel\ndef bell():\n    qvec = cudaq.qvector(2)\n    h(qvec[0]); cx(qvec[0], qvec[1]); mz(qvec)\nresult_cudaq = cudaq.sample(bell, shots_count=1000)\n",[43223],{"type":21,"tag":104,"props":43224,"children":43225},{"__ignoreMap":7},[43226,43234,43253,43272,43304,43338,43371,43378,43386,43405,43444,43455,43470,43493,43528,43567,43584,43591,43599,43610,43617,43632,43656,43691],{"type":21,"tag":139,"props":43227,"children":43228},{"class":141,"line":142},[43229],{"type":21,"tag":139,"props":43230,"children":43231},{"style":220},[43232],{"type":31,"value":43233},"# Qiskit Aer\n",{"type":21,"tag":139,"props":43235,"children":43236},{"class":141,"line":168},[43237,43241,43245,43249],{"type":21,"tag":139,"props":43238,"children":43239},{"style":146},[43240],{"type":31,"value":149},{"type":21,"tag":139,"props":43242,"children":43243},{"style":152},[43244],{"type":31,"value":155},{"type":21,"tag":139,"props":43246,"children":43247},{"style":146},[43248],{"type":31,"value":160},{"type":21,"tag":139,"props":43250,"children":43251},{"style":152},[43252],{"type":31,"value":6269},{"type":21,"tag":139,"props":43254,"children":43255},{"class":141,"line":190},[43256,43260,43264,43268],{"type":21,"tag":139,"props":43257,"children":43258},{"style":146},[43259],{"type":31,"value":149},{"type":21,"tag":139,"props":43261,"children":43262},{"style":152},[43263],{"type":31,"value":178},{"type":21,"tag":139,"props":43265,"children":43266},{"style":146},[43267],{"type":31,"value":160},{"type":21,"tag":139,"props":43269,"children":43270},{"style":152},[43271],{"type":31,"value":187},{"type":21,"tag":139,"props":43273,"children":43274},{"class":141,"line":200},[43275,43280,43284,43288,43292,43296,43300],{"type":21,"tag":139,"props":43276,"children":43277},{"style":152},[43278],{"type":31,"value":43279},"qc_qiskit ",{"type":21,"tag":139,"props":43281,"children":43282},{"style":146},[43283],{"type":31,"value":211},{"type":21,"tag":139,"props":43285,"children":43286},{"style":152},[43287],{"type":31,"value":6292},{"type":21,"tag":139,"props":43289,"children":43290},{"style":214},[43291],{"type":31,"value":293},{"type":21,"tag":139,"props":43293,"children":43294},{"style":152},[43295],{"type":31,"value":259},{"type":21,"tag":139,"props":43297,"children":43298},{"style":214},[43299],{"type":31,"value":293},{"type":21,"tag":139,"props":43301,"children":43302},{"style":152},[43303],{"type":31,"value":270},{"type":21,"tag":139,"props":43305,"children":43306},{"class":141,"line":226},[43307,43312,43316,43321,43325,43329,43333],{"type":21,"tag":139,"props":43308,"children":43309},{"style":152},[43310],{"type":31,"value":43311},"qc_qiskit.h(",{"type":21,"tag":139,"props":43313,"children":43314},{"style":214},[43315],{"type":31,"value":407},{"type":21,"tag":139,"props":43317,"children":43318},{"style":152},[43319],{"type":31,"value":43320},"); qc_qiskit.cx(",{"type":21,"tag":139,"props":43322,"children":43323},{"style":214},[43324],{"type":31,"value":407},{"type":21,"tag":139,"props":43326,"children":43327},{"style":152},[43328],{"type":31,"value":259},{"type":21,"tag":139,"props":43330,"children":43331},{"style":214},[43332],{"type":31,"value":328},{"type":21,"tag":139,"props":43334,"children":43335},{"style":152},[43336],{"type":31,"value":43337},"); qc_qiskit.measure_all()\n",{"type":21,"tag":139,"props":43339,"children":43340},{"class":141,"line":234},[43341,43346,43350,43355,43359,43363,43367],{"type":21,"tag":139,"props":43342,"children":43343},{"style":152},[43344],{"type":31,"value":43345},"result_qiskit ",{"type":21,"tag":139,"props":43347,"children":43348},{"style":146},[43349],{"type":31,"value":211},{"type":21,"tag":139,"props":43351,"children":43352},{"style":152},[43353],{"type":31,"value":43354}," AerSimulator().run(qc_qiskit, ",{"type":21,"tag":139,"props":43356,"children":43357},{"style":923},[43358],{"type":31,"value":926},{"type":21,"tag":139,"props":43360,"children":43361},{"style":146},[43362],{"type":31,"value":211},{"type":21,"tag":139,"props":43364,"children":43365},{"style":214},[43366],{"type":31,"value":1730},{"type":21,"tag":139,"props":43368,"children":43369},{"style":152},[43370],{"type":31,"value":9210},{"type":21,"tag":139,"props":43372,"children":43373},{"class":141,"line":273},[43374],{"type":21,"tag":139,"props":43375,"children":43376},{"emptyLinePlaceholder":194},[43377],{"type":31,"value":197},{"type":21,"tag":139,"props":43379,"children":43380},{"class":141,"line":309},[43381],{"type":21,"tag":139,"props":43382,"children":43383},{"style":220},[43384],{"type":31,"value":43385},"# PennyLane — 全く異なるAPI、回路を書き直す\n",{"type":21,"tag":139,"props":43387,"children":43388},{"class":141,"line":16},[43389,43393,43397,43401],{"type":21,"tag":139,"props":43390,"children":43391},{"style":146},[43392],{"type":31,"value":160},{"type":21,"tag":139,"props":43394,"children":43395},{"style":152},[43396],{"type":31,"value":5338},{"type":21,"tag":139,"props":43398,"children":43399},{"style":146},[43400],{"type":31,"value":5343},{"type":21,"tag":139,"props":43402,"children":43403},{"style":152},[43404],{"type":31,"value":5348},{"type":21,"tag":139,"props":43406,"children":43407},{"class":141,"line":361},[43408,43412,43416,43420,43424,43428,43432,43436,43440],{"type":21,"tag":139,"props":43409,"children":43410},{"style":152},[43411],{"type":31,"value":8713},{"type":21,"tag":139,"props":43413,"children":43414},{"style":146},[43415],{"type":31,"value":211},{"type":21,"tag":139,"props":43417,"children":43418},{"style":152},[43419],{"type":31,"value":5433},{"type":21,"tag":139,"props":43421,"children":43422},{"style":262},[43423],{"type":31,"value":8726},{"type":21,"tag":139,"props":43425,"children":43426},{"style":152},[43427],{"type":31,"value":259},{"type":21,"tag":139,"props":43429,"children":43430},{"style":923},[43431],{"type":31,"value":5447},{"type":21,"tag":139,"props":43433,"children":43434},{"style":146},[43435],{"type":31,"value":211},{"type":21,"tag":139,"props":43437,"children":43438},{"style":214},[43439],{"type":31,"value":293},{"type":21,"tag":139,"props":43441,"children":43442},{"style":152},[43443],{"type":31,"value":270},{"type":21,"tag":139,"props":43445,"children":43446},{"class":141,"line":369},[43447,43451],{"type":21,"tag":139,"props":43448,"children":43449},{"style":4509},[43450],{"type":31,"value":5474},{"type":21,"tag":139,"props":43452,"children":43453},{"style":152},[43454],{"type":31,"value":8765},{"type":21,"tag":139,"props":43456,"children":43457},{"class":141,"line":378},[43458,43462,43466],{"type":21,"tag":139,"props":43459,"children":43460},{"style":146},[43461],{"type":31,"value":5487},{"type":21,"tag":139,"props":43463,"children":43464},{"style":4509},[43465],{"type":31,"value":8265},{"type":21,"tag":139,"props":43467,"children":43468},{"style":152},[43469],{"type":31,"value":7996},{"type":21,"tag":139,"props":43471,"children":43472},{"class":141,"line":387},[43473,43477,43481,43485,43489],{"type":21,"tag":139,"props":43474,"children":43475},{"style":152},[43476],{"type":31,"value":8788},{"type":21,"tag":139,"props":43478,"children":43479},{"style":923},[43480],{"type":31,"value":5447},{"type":21,"tag":139,"props":43482,"children":43483},{"style":146},[43484],{"type":31,"value":211},{"type":21,"tag":139,"props":43486,"children":43487},{"style":214},[43488],{"type":31,"value":407},{"type":21,"tag":139,"props":43490,"children":43491},{"style":152},[43492],{"type":31,"value":270},{"type":21,"tag":139,"props":43494,"children":43495},{"class":141,"line":396},[43496,43500,43504,43508,43512,43516,43520,43524],{"type":21,"tag":139,"props":43497,"children":43498},{"style":152},[43499],{"type":31,"value":5521},{"type":21,"tag":139,"props":43501,"children":43502},{"style":923},[43503],{"type":31,"value":5447},{"type":21,"tag":139,"props":43505,"children":43506},{"style":146},[43507],{"type":31,"value":211},{"type":21,"tag":139,"props":43509,"children":43510},{"style":152},[43511],{"type":31,"value":5534},{"type":21,"tag":139,"props":43513,"children":43514},{"style":214},[43515],{"type":31,"value":407},{"type":21,"tag":139,"props":43517,"children":43518},{"style":152},[43519],{"type":31,"value":259},{"type":21,"tag":139,"props":43521,"children":43522},{"style":214},[43523],{"type":31,"value":328},{"type":21,"tag":139,"props":43525,"children":43526},{"style":152},[43527],{"type":31,"value":599},{"type":21,"tag":139,"props":43529,"children":43530},{"class":141,"line":414},[43531,43535,43539,43543,43547,43551,43555,43559,43563],{"type":21,"tag":139,"props":43532,"children":43533},{"style":146},[43534],{"type":31,"value":5582},{"type":21,"tag":139,"props":43536,"children":43537},{"style":152},[43538],{"type":31,"value":8821},{"type":21,"tag":139,"props":43540,"children":43541},{"style":923},[43542],{"type":31,"value":5447},{"type":21,"tag":139,"props":43544,"children":43545},{"style":146},[43546],{"type":31,"value":211},{"type":21,"tag":139,"props":43548,"children":43549},{"style":152},[43550],{"type":31,"value":5534},{"type":21,"tag":139,"props":43552,"children":43553},{"style":214},[43554],{"type":31,"value":407},{"type":21,"tag":139,"props":43556,"children":43557},{"style":152},[43558],{"type":31,"value":259},{"type":21,"tag":139,"props":43560,"children":43561},{"style":214},[43562],{"type":31,"value":328},{"type":21,"tag":139,"props":43564,"children":43565},{"style":152},[43566],{"type":31,"value":599},{"type":21,"tag":139,"props":43568,"children":43569},{"class":141,"line":12589},[43570,43575,43579],{"type":21,"tag":139,"props":43571,"children":43572},{"style":152},[43573],{"type":31,"value":43574},"result_pennylane ",{"type":21,"tag":139,"props":43576,"children":43577},{"style":146},[43578],{"type":31,"value":211},{"type":21,"tag":139,"props":43580,"children":43581},{"style":152},[43582],{"type":31,"value":43583}," bell()\n",{"type":21,"tag":139,"props":43585,"children":43586},{"class":141,"line":12606},[43587],{"type":21,"tag":139,"props":43588,"children":43589},{"emptyLinePlaceholder":194},[43590],{"type":31,"value":197},{"type":21,"tag":139,"props":43592,"children":43593},{"class":141,"line":12622},[43594],{"type":21,"tag":139,"props":43595,"children":43596},{"style":220},[43597],{"type":31,"value":43598},"# CUDA-Q — さらに別のAPI、また書き直す\n",{"type":21,"tag":139,"props":43600,"children":43601},{"class":141,"line":12630},[43602,43606],{"type":21,"tag":139,"props":43603,"children":43604},{"style":146},[43605],{"type":31,"value":160},{"type":21,"tag":139,"props":43607,"children":43608},{"style":152},[43609],{"type":31,"value":8121},{"type":21,"tag":139,"props":43611,"children":43612},{"class":141,"line":17747},[43613],{"type":21,"tag":139,"props":43614,"children":43615},{"style":4509},[43616],{"type":31,"value":7979},{"type":21,"tag":139,"props":43618,"children":43619},{"class":141,"line":17765},[43620,43624,43628],{"type":21,"tag":139,"props":43621,"children":43622},{"style":146},[43623],{"type":31,"value":5487},{"type":21,"tag":139,"props":43625,"children":43626},{"style":4509},[43627],{"type":31,"value":8265},{"type":21,"tag":139,"props":43629,"children":43630},{"style":152},[43631],{"type":31,"value":7996},{"type":21,"tag":139,"props":43633,"children":43634},{"class":141,"line":17790},[43635,43640,43644,43648,43652],{"type":21,"tag":139,"props":43636,"children":43637},{"style":152},[43638],{"type":31,"value":43639},"    qvec ",{"type":21,"tag":139,"props":43641,"children":43642},{"style":146},[43643],{"type":31,"value":211},{"type":21,"tag":139,"props":43645,"children":43646},{"style":152},[43647],{"type":31,"value":8013},{"type":21,"tag":139,"props":43649,"children":43650},{"style":214},[43651],{"type":31,"value":293},{"type":21,"tag":139,"props":43653,"children":43654},{"style":152},[43655],{"type":31,"value":270},{"type":21,"tag":139,"props":43657,"children":43658},{"class":141,"line":17817},[43659,43664,43668,43673,43677,43682,43686],{"type":21,"tag":139,"props":43660,"children":43661},{"style":152},[43662],{"type":31,"value":43663},"    h(qvec[",{"type":21,"tag":139,"props":43665,"children":43666},{"style":214},[43667],{"type":31,"value":407},{"type":21,"tag":139,"props":43669,"children":43670},{"style":152},[43671],{"type":31,"value":43672},"]); cx(qvec[",{"type":21,"tag":139,"props":43674,"children":43675},{"style":214},[43676],{"type":31,"value":407},{"type":21,"tag":139,"props":43678,"children":43679},{"style":152},[43680],{"type":31,"value":43681},"], qvec[",{"type":21,"tag":139,"props":43683,"children":43684},{"style":214},[43685],{"type":31,"value":328},{"type":21,"tag":139,"props":43687,"children":43688},{"style":152},[43689],{"type":31,"value":43690},"]); mz(qvec)\n",{"type":21,"tag":139,"props":43692,"children":43693},{"class":141,"line":17843},[43694,43699,43703,43707,43711,43715,43719],{"type":21,"tag":139,"props":43695,"children":43696},{"style":152},[43697],{"type":31,"value":43698},"result_cudaq ",{"type":21,"tag":139,"props":43700,"children":43701},{"style":146},[43702],{"type":31,"value":211},{"type":21,"tag":139,"props":43704,"children":43705},{"style":152},[43706],{"type":31,"value":8417},{"type":21,"tag":139,"props":43708,"children":43709},{"style":923},[43710],{"type":31,"value":8221},{"type":21,"tag":139,"props":43712,"children":43713},{"style":146},[43714],{"type":31,"value":211},{"type":21,"tag":139,"props":43716,"children":43717},{"style":214},[43718],{"type":31,"value":1730},{"type":21,"tag":139,"props":43720,"children":43721},{"style":152},[43722],{"type":31,"value":270},{"type":21,"tag":22,"props":43724,"children":43725},{},[43726],{"type":21,"tag":16802,"props":43727,"children":43728},{},[43729],{"type":31,"value":43730},"HLQuantum(1つの回路、任意のバックエンド):",{"type":21,"tag":129,"props":43732,"children":43734},{"code":43733,"language":133,"meta":7,"className":131,"style":7},"import hlquantum as hlq\n\nqc = hlq.Circuit(2)\nqc.h(0).cx(0, 1).measure_all()\n\n# 一語でバックエンドを切り替え\nresult_qiskit    = hlq.run(qc, backend='qiskit')\nresult_pennylane = hlq.run(qc, backend='pennylane')\nresult_cudaq     = hlq.run(qc, backend='cudaq')    # GPU\nresult_cirq      = hlq.run(qc, backend='cirq')\nresult_ionq      = hlq.run(qc, backend='ionq', device='aria-1')\nresult_ibm       = hlq.run(qc, backend='qiskit', device='ibm_sherbrooke')\n",[43735],{"type":21,"tag":104,"props":43736,"children":43737},{"__ignoreMap":7},[43738,43757,43764,43787,43818,43825,43833,43865,43897,43935,43968,44019],{"type":21,"tag":139,"props":43739,"children":43740},{"class":141,"line":142},[43741,43745,43749,43753],{"type":21,"tag":139,"props":43742,"children":43743},{"style":146},[43744],{"type":31,"value":160},{"type":21,"tag":139,"props":43746,"children":43747},{"style":152},[43748],{"type":31,"value":41040},{"type":21,"tag":139,"props":43750,"children":43751},{"style":146},[43752],{"type":31,"value":5343},{"type":21,"tag":139,"props":43754,"children":43755},{"style":152},[43756],{"type":31,"value":41049},{"type":21,"tag":139,"props":43758,"children":43759},{"class":141,"line":168},[43760],{"type":21,"tag":139,"props":43761,"children":43762},{"emptyLinePlaceholder":194},[43763],{"type":31,"value":197},{"type":21,"tag":139,"props":43765,"children":43766},{"class":141,"line":190},[43767,43771,43775,43779,43783],{"type":21,"tag":139,"props":43768,"children":43769},{"style":152},[43770],{"type":31,"value":349},{"type":21,"tag":139,"props":43772,"children":43773},{"style":146},[43774],{"type":31,"value":211},{"type":21,"tag":139,"props":43776,"children":43777},{"style":152},[43778],{"type":31,"value":43087},{"type":21,"tag":139,"props":43780,"children":43781},{"style":214},[43782],{"type":31,"value":293},{"type":21,"tag":139,"props":43784,"children":43785},{"style":152},[43786],{"type":31,"value":270},{"type":21,"tag":139,"props":43788,"children":43789},{"class":141,"line":200},[43790,43794,43798,43802,43806,43810,43814],{"type":21,"tag":139,"props":43791,"children":43792},{"style":152},[43793],{"type":31,"value":442},{"type":21,"tag":139,"props":43795,"children":43796},{"style":214},[43797],{"type":31,"value":407},{"type":21,"tag":139,"props":43799,"children":43800},{"style":152},[43801],{"type":31,"value":43111},{"type":21,"tag":139,"props":43803,"children":43804},{"style":214},[43805],{"type":31,"value":407},{"type":21,"tag":139,"props":43807,"children":43808},{"style":152},[43809],{"type":31,"value":259},{"type":21,"tag":139,"props":43811,"children":43812},{"style":214},[43813],{"type":31,"value":328},{"type":21,"tag":139,"props":43815,"children":43816},{"style":152},[43817],{"type":31,"value":43128},{"type":21,"tag":139,"props":43819,"children":43820},{"class":141,"line":226},[43821],{"type":21,"tag":139,"props":43822,"children":43823},{"emptyLinePlaceholder":194},[43824],{"type":31,"value":197},{"type":21,"tag":139,"props":43826,"children":43827},{"class":141,"line":234},[43828],{"type":21,"tag":139,"props":43829,"children":43830},{"style":220},[43831],{"type":31,"value":43832},"# 一語でバックエンドを切り替え\n",{"type":21,"tag":139,"props":43834,"children":43835},{"class":141,"line":273},[43836,43841,43845,43849,43853,43857,43861],{"type":21,"tag":139,"props":43837,"children":43838},{"style":152},[43839],{"type":31,"value":43840},"result_qiskit    ",{"type":21,"tag":139,"props":43842,"children":43843},{"style":146},[43844],{"type":31,"value":211},{"type":21,"tag":139,"props":43846,"children":43847},{"style":152},[43848],{"type":31,"value":43151},{"type":21,"tag":139,"props":43850,"children":43851},{"style":923},[43852],{"type":31,"value":10987},{"type":21,"tag":139,"props":43854,"children":43855},{"style":146},[43856],{"type":31,"value":211},{"type":21,"tag":139,"props":43858,"children":43859},{"style":262},[43860],{"type":31,"value":41129},{"type":21,"tag":139,"props":43862,"children":43863},{"style":152},[43864],{"type":31,"value":270},{"type":21,"tag":139,"props":43866,"children":43867},{"class":141,"line":309},[43868,43872,43876,43880,43884,43888,43893],{"type":21,"tag":139,"props":43869,"children":43870},{"style":152},[43871],{"type":31,"value":43574},{"type":21,"tag":139,"props":43873,"children":43874},{"style":146},[43875],{"type":31,"value":211},{"type":21,"tag":139,"props":43877,"children":43878},{"style":152},[43879],{"type":31,"value":43151},{"type":21,"tag":139,"props":43881,"children":43882},{"style":923},[43883],{"type":31,"value":10987},{"type":21,"tag":139,"props":43885,"children":43886},{"style":146},[43887],{"type":31,"value":211},{"type":21,"tag":139,"props":43889,"children":43890},{"style":262},[43891],{"type":31,"value":43892},"'pennylane'",{"type":21,"tag":139,"props":43894,"children":43895},{"style":152},[43896],{"type":31,"value":270},{"type":21,"tag":139,"props":43898,"children":43899},{"class":141,"line":16},[43900,43905,43909,43913,43917,43921,43926,43930],{"type":21,"tag":139,"props":43901,"children":43902},{"style":152},[43903],{"type":31,"value":43904},"result_cudaq     ",{"type":21,"tag":139,"props":43906,"children":43907},{"style":146},[43908],{"type":31,"value":211},{"type":21,"tag":139,"props":43910,"children":43911},{"style":152},[43912],{"type":31,"value":43151},{"type":21,"tag":139,"props":43914,"children":43915},{"style":923},[43916],{"type":31,"value":10987},{"type":21,"tag":139,"props":43918,"children":43919},{"style":146},[43920],{"type":31,"value":211},{"type":21,"tag":139,"props":43922,"children":43923},{"style":262},[43924],{"type":31,"value":43925},"'cudaq'",{"type":21,"tag":139,"props":43927,"children":43928},{"style":152},[43929],{"type":31,"value":30053},{"type":21,"tag":139,"props":43931,"children":43932},{"style":220},[43933],{"type":31,"value":43934},"# GPU\n",{"type":21,"tag":139,"props":43936,"children":43937},{"class":141,"line":361},[43938,43943,43947,43951,43955,43959,43964],{"type":21,"tag":139,"props":43939,"children":43940},{"style":152},[43941],{"type":31,"value":43942},"result_cirq      ",{"type":21,"tag":139,"props":43944,"children":43945},{"style":146},[43946],{"type":31,"value":211},{"type":21,"tag":139,"props":43948,"children":43949},{"style":152},[43950],{"type":31,"value":43151},{"type":21,"tag":139,"props":43952,"children":43953},{"style":923},[43954],{"type":31,"value":10987},{"type":21,"tag":139,"props":43956,"children":43957},{"style":146},[43958],{"type":31,"value":211},{"type":21,"tag":139,"props":43960,"children":43961},{"style":262},[43962],{"type":31,"value":43963},"'cirq'",{"type":21,"tag":139,"props":43965,"children":43966},{"style":152},[43967],{"type":31,"value":270},{"type":21,"tag":139,"props":43969,"children":43970},{"class":141,"line":369},[43971,43976,43980,43984,43988,43992,43997,44001,44006,44010,44015],{"type":21,"tag":139,"props":43972,"children":43973},{"style":152},[43974],{"type":31,"value":43975},"result_ionq      ",{"type":21,"tag":139,"props":43977,"children":43978},{"style":146},[43979],{"type":31,"value":211},{"type":21,"tag":139,"props":43981,"children":43982},{"style":152},[43983],{"type":31,"value":43151},{"type":21,"tag":139,"props":43985,"children":43986},{"style":923},[43987],{"type":31,"value":10987},{"type":21,"tag":139,"props":43989,"children":43990},{"style":146},[43991],{"type":31,"value":211},{"type":21,"tag":139,"props":43993,"children":43994},{"style":262},[43995],{"type":31,"value":43996},"'ionq'",{"type":21,"tag":139,"props":43998,"children":43999},{"style":152},[44000],{"type":31,"value":259},{"type":21,"tag":139,"props":44002,"children":44003},{"style":923},[44004],{"type":31,"value":44005},"device",{"type":21,"tag":139,"props":44007,"children":44008},{"style":146},[44009],{"type":31,"value":211},{"type":21,"tag":139,"props":44011,"children":44012},{"style":262},[44013],{"type":31,"value":44014},"'aria-1'",{"type":21,"tag":139,"props":44016,"children":44017},{"style":152},[44018],{"type":31,"value":270},{"type":21,"tag":139,"props":44020,"children":44021},{"class":141,"line":378},[44022,44027,44031,44035,44039,44043,44047,44051,44055,44059,44064],{"type":21,"tag":139,"props":44023,"children":44024},{"style":152},[44025],{"type":31,"value":44026},"result_ibm       ",{"type":21,"tag":139,"props":44028,"children":44029},{"style":146},[44030],{"type":31,"value":211},{"type":21,"tag":139,"props":44032,"children":44033},{"style":152},[44034],{"type":31,"value":43151},{"type":21,"tag":139,"props":44036,"children":44037},{"style":923},[44038],{"type":31,"value":10987},{"type":21,"tag":139,"props":44040,"children":44041},{"style":146},[44042],{"type":31,"value":211},{"type":21,"tag":139,"props":44044,"children":44045},{"style":262},[44046],{"type":31,"value":41129},{"type":21,"tag":139,"props":44048,"children":44049},{"style":152},[44050],{"type":31,"value":259},{"type":21,"tag":139,"props":44052,"children":44053},{"style":923},[44054],{"type":31,"value":44005},{"type":21,"tag":139,"props":44056,"children":44057},{"style":146},[44058],{"type":31,"value":211},{"type":21,"tag":139,"props":44060,"children":44061},{"style":262},[44062],{"type":31,"value":44063},"'ibm_sherbrooke'",{"type":21,"tag":139,"props":44065,"children":44066},{"style":152},[44067],{"type":31,"value":270},{"type":21,"tag":22,"props":44069,"children":44070},{},[44071],{"type":31,"value":44072},"ここでHLQuantumの真価が発揮されます。ローカルシミュレータでプロトタイプを作り、回路を書き直すことなくQPUへデプロイできるのです。",{"type":21,"tag":41,"props":44074,"children":44076},{"id":44075},"並列比較-vqe",[44077],{"type":31,"value":44078},"並列比較: VQE",{"type":21,"tag":22,"props":44080,"children":44081},{},[44082],{"type":21,"tag":16802,"props":44083,"children":44084},{},[44085],{"type":31,"value":44086},"素のQiskit VQE:",{"type":21,"tag":129,"props":44088,"children":44090},{"code":44089,"language":133,"meta":7,"className":131,"style":7},"from qiskit_nature.second_q.drivers import PySCFDriver\nfrom qiskit_nature.second_q.mappers import JordanWignerMapper\nfrom qiskit_nature.second_q.circuit.library import UCCSD\nfrom qiskit_algorithms import VQE\nfrom qiskit_algorithms.optimizers import COBYLA\nfrom qiskit.primitives import Estimator\n\ndriver = PySCFDriver(atom='H .0 .0 .0; H .0 .0 0.735')\nproblem = driver.run()\nmapper = JordanWignerMapper()\nhamiltonian = mapper.map(problem.second_q_ops()[0])\n\nansatz = UCCSD(\n    problem.num_spatial_orbitals,\n    problem.num_particles,\n    mapper,\n    initial_state=problem.reference_state,\n)\n\nvqe = VQE(Estimator(), ansatz, COBYLA())\nresult = vqe.compute_minimum_eigenvalue(hamiltonian)\nprint(f\"H2 ground state: {result.eigenvalue.real:.4f} Ha\")\n",[44091],{"type":21,"tag":104,"props":44092,"children":44093},{"__ignoreMap":7},[44094,44113,44132,44152,44171,44190,44209,44216,44250,44265,44280,44304,44311,44326,44333,44340,44347,44363,44370,44377,44393,44409],{"type":21,"tag":139,"props":44095,"children":44096},{"class":141,"line":142},[44097,44101,44105,44109],{"type":21,"tag":139,"props":44098,"children":44099},{"style":146},[44100],{"type":31,"value":149},{"type":21,"tag":139,"props":44102,"children":44103},{"style":152},[44104],{"type":31,"value":11930},{"type":21,"tag":139,"props":44106,"children":44107},{"style":146},[44108],{"type":31,"value":160},{"type":21,"tag":139,"props":44110,"children":44111},{"style":152},[44112],{"type":31,"value":11939},{"type":21,"tag":139,"props":44114,"children":44115},{"class":141,"line":168},[44116,44120,44124,44128],{"type":21,"tag":139,"props":44117,"children":44118},{"style":146},[44119],{"type":31,"value":149},{"type":21,"tag":139,"props":44121,"children":44122},{"style":152},[44123],{"type":31,"value":12151},{"type":21,"tag":139,"props":44125,"children":44126},{"style":146},[44127],{"type":31,"value":160},{"type":21,"tag":139,"props":44129,"children":44130},{"style":152},[44131],{"type":31,"value":12160},{"type":21,"tag":139,"props":44133,"children":44134},{"class":141,"line":190},[44135,44139,44143,44147],{"type":21,"tag":139,"props":44136,"children":44137},{"style":146},[44138],{"type":31,"value":149},{"type":21,"tag":139,"props":44140,"children":44141},{"style":152},[44142],{"type":31,"value":12434},{"type":21,"tag":139,"props":44144,"children":44145},{"style":146},[44146],{"type":31,"value":160},{"type":21,"tag":139,"props":44148,"children":44149},{"style":214},[44150],{"type":31,"value":44151}," UCCSD\n",{"type":21,"tag":139,"props":44153,"children":44154},{"class":141,"line":200},[44155,44159,44163,44167],{"type":21,"tag":139,"props":44156,"children":44157},{"style":146},[44158],{"type":31,"value":149},{"type":21,"tag":139,"props":44160,"children":44161},{"style":152},[44162],{"type":31,"value":12242},{"type":21,"tag":139,"props":44164,"children":44165},{"style":146},[44166],{"type":31,"value":160},{"type":21,"tag":139,"props":44168,"children":44169},{"style":214},[44170],{"type":31,"value":12380},{"type":21,"tag":139,"props":44172,"children":44173},{"class":141,"line":226},[44174,44178,44182,44186],{"type":21,"tag":139,"props":44175,"children":44176},{"style":146},[44177],{"type":31,"value":149},{"type":21,"tag":139,"props":44179,"children":44180},{"style":152},[44181],{"type":31,"value":12392},{"type":21,"tag":139,"props":44183,"children":44184},{"style":146},[44185],{"type":31,"value":160},{"type":21,"tag":139,"props":44187,"children":44188},{"style":214},[44189],{"type":31,"value":12401},{"type":21,"tag":139,"props":44191,"children":44192},{"class":141,"line":234},[44193,44197,44201,44205],{"type":21,"tag":139,"props":44194,"children":44195},{"style":146},[44196],{"type":31,"value":149},{"type":21,"tag":139,"props":44198,"children":44199},{"style":152},[44200],{"type":31,"value":12413},{"type":21,"tag":139,"props":44202,"children":44203},{"style":146},[44204],{"type":31,"value":160},{"type":21,"tag":139,"props":44206,"children":44207},{"style":152},[44208],{"type":31,"value":12422},{"type":21,"tag":139,"props":44210,"children":44211},{"class":141,"line":273},[44212],{"type":21,"tag":139,"props":44213,"children":44214},{"emptyLinePlaceholder":194},[44215],{"type":31,"value":197},{"type":21,"tag":139,"props":44217,"children":44218},{"class":141,"line":309},[44219,44223,44227,44232,44237,44241,44246],{"type":21,"tag":139,"props":44220,"children":44221},{"style":152},[44222],{"type":31,"value":11954},{"type":21,"tag":139,"props":44224,"children":44225},{"style":146},[44226],{"type":31,"value":211},{"type":21,"tag":139,"props":44228,"children":44229},{"style":152},[44230],{"type":31,"value":44231}," PySCFDriver(",{"type":21,"tag":139,"props":44233,"children":44234},{"style":923},[44235],{"type":31,"value":44236},"atom",{"type":21,"tag":139,"props":44238,"children":44239},{"style":146},[44240],{"type":31,"value":211},{"type":21,"tag":139,"props":44242,"children":44243},{"style":262},[44244],{"type":31,"value":44245},"'H .0 .0 .0; H .0 .0 0.735'",{"type":21,"tag":139,"props":44247,"children":44248},{"style":152},[44249],{"type":31,"value":270},{"type":21,"tag":139,"props":44251,"children":44252},{"class":141,"line":16},[44253,44257,44261],{"type":21,"tag":139,"props":44254,"children":44255},{"style":152},[44256],{"type":31,"value":12093},{"type":21,"tag":139,"props":44258,"children":44259},{"style":146},[44260],{"type":31,"value":211},{"type":21,"tag":139,"props":44262,"children":44263},{"style":152},[44264],{"type":31,"value":12102},{"type":21,"tag":139,"props":44266,"children":44267},{"class":141,"line":361},[44268,44272,44276],{"type":21,"tag":139,"props":44269,"children":44270},{"style":152},[44271],{"type":31,"value":12175},{"type":21,"tag":139,"props":44273,"children":44274},{"style":146},[44275],{"type":31,"value":211},{"type":21,"tag":139,"props":44277,"children":44278},{"style":152},[44279],{"type":31,"value":12184},{"type":21,"tag":139,"props":44281,"children":44282},{"class":141,"line":369},[44283,44287,44291,44296,44300],{"type":21,"tag":139,"props":44284,"children":44285},{"style":152},[44286],{"type":31,"value":17545},{"type":21,"tag":139,"props":44288,"children":44289},{"style":146},[44290],{"type":31,"value":211},{"type":21,"tag":139,"props":44292,"children":44293},{"style":152},[44294],{"type":31,"value":44295}," mapper.map(problem.second_q_ops()[",{"type":21,"tag":139,"props":44297,"children":44298},{"style":214},[44299],{"type":31,"value":407},{"type":21,"tag":139,"props":44301,"children":44302},{"style":152},[44303],{"type":31,"value":599},{"type":21,"tag":139,"props":44305,"children":44306},{"class":141,"line":378},[44307],{"type":21,"tag":139,"props":44308,"children":44309},{"emptyLinePlaceholder":194},[44310],{"type":31,"value":197},{"type":21,"tag":139,"props":44312,"children":44313},{"class":141,"line":387},[44314,44318,44322],{"type":21,"tag":139,"props":44315,"children":44316},{"style":152},[44317],{"type":31,"value":12463},{"type":21,"tag":139,"props":44319,"children":44320},{"style":146},[44321],{"type":31,"value":211},{"type":21,"tag":139,"props":44323,"children":44324},{"style":152},[44325],{"type":31,"value":12472},{"type":21,"tag":139,"props":44327,"children":44328},{"class":141,"line":396},[44329],{"type":21,"tag":139,"props":44330,"children":44331},{"style":152},[44332],{"type":31,"value":12480},{"type":21,"tag":139,"props":44334,"children":44335},{"class":141,"line":414},[44336],{"type":21,"tag":139,"props":44337,"children":44338},{"style":152},[44339],{"type":31,"value":12488},{"type":21,"tag":139,"props":44341,"children":44342},{"class":141,"line":12589},[44343],{"type":21,"tag":139,"props":44344,"children":44345},{"style":152},[44346],{"type":31,"value":12496},{"type":21,"tag":139,"props":44348,"children":44349},{"class":141,"line":12606},[44350,44354,44358],{"type":21,"tag":139,"props":44351,"children":44352},{"style":923},[44353],{"type":31,"value":12504},{"type":21,"tag":139,"props":44355,"children":44356},{"style":146},[44357],{"type":31,"value":211},{"type":21,"tag":139,"props":44359,"children":44360},{"style":152},[44361],{"type":31,"value":44362},"problem.reference_state,\n",{"type":21,"tag":139,"props":44364,"children":44365},{"class":141,"line":12622},[44366],{"type":21,"tag":139,"props":44367,"children":44368},{"style":152},[44369],{"type":31,"value":270},{"type":21,"tag":139,"props":44371,"children":44372},{"class":141,"line":12630},[44373],{"type":21,"tag":139,"props":44374,"children":44375},{"emptyLinePlaceholder":194},[44376],{"type":31,"value":197},{"type":21,"tag":139,"props":44378,"children":44379},{"class":141,"line":17747},[44380,44385,44389],{"type":21,"tag":139,"props":44381,"children":44382},{"style":152},[44383],{"type":31,"value":44384},"vqe ",{"type":21,"tag":139,"props":44386,"children":44387},{"style":146},[44388],{"type":31,"value":211},{"type":21,"tag":139,"props":44390,"children":44391},{"style":152},[44392],{"type":31,"value":12544},{"type":21,"tag":139,"props":44394,"children":44395},{"class":141,"line":17765},[44396,44400,44404],{"type":21,"tag":139,"props":44397,"children":44398},{"style":152},[44399],{"type":31,"value":4868},{"type":21,"tag":139,"props":44401,"children":44402},{"style":146},[44403],{"type":31,"value":211},{"type":21,"tag":139,"props":44405,"children":44406},{"style":152},[44407],{"type":31,"value":44408}," vqe.compute_minimum_eigenvalue(hamiltonian)\n",{"type":21,"tag":139,"props":44410,"children":44411},{"class":141,"line":17790},[44412,44416,44420,44424,44429,44433,44438,44442,44446,44450],{"type":21,"tag":139,"props":44413,"children":44414},{"style":214},[44415],{"type":31,"value":948},{"type":21,"tag":139,"props":44417,"children":44418},{"style":152},[44419],{"type":31,"value":953},{"type":21,"tag":139,"props":44421,"children":44422},{"style":146},[44423],{"type":31,"value":7524},{"type":21,"tag":139,"props":44425,"children":44426},{"style":262},[44427],{"type":31,"value":44428},"\"H2 ground state: ",{"type":21,"tag":139,"props":44430,"children":44431},{"style":214},[44432],{"type":31,"value":7534},{"type":21,"tag":139,"props":44434,"children":44435},{"style":152},[44436],{"type":31,"value":44437},"result.eigenvalue.real",{"type":21,"tag":139,"props":44439,"children":44440},{"style":146},[44441],{"type":31,"value":25590},{"type":21,"tag":139,"props":44443,"children":44444},{"style":214},[44445],{"type":31,"value":7543},{"type":21,"tag":139,"props":44447,"children":44448},{"style":262},[44449],{"type":31,"value":41175},{"type":21,"tag":139,"props":44451,"children":44452},{"style":152},[44453],{"type":31,"value":270},{"type":21,"tag":22,"props":44455,"children":44456},{},[44457],{"type":21,"tag":16802,"props":44458,"children":44459},{},[44460],{"type":31,"value":44461},"HLQuantum VQE:",{"type":21,"tag":129,"props":44463,"children":44465},{"code":44464,"language":133,"meta":7,"className":131,"style":7},"import hlquantum as hlq\n\nresult = hlq.algorithms.vqe(\n    molecule='H2',\n    basis='sto-3g',\n    backend='qiskit',\n    optimizer='COBYLA',\n)\nprint(f\"H2 ground state: {result.energy:.4f} Ha\")\n\n# GPUへ切り替え:\nresult_gpu = hlq.algorithms.vqe(molecule='H2', backend='cudaq')\n",[44466],{"type":21,"tag":104,"props":44467,"children":44468},{"__ignoreMap":7},[44469,44488,44495,44511,44531,44550,44570,44591,44598,44641,44648,44656],{"type":21,"tag":139,"props":44470,"children":44471},{"class":141,"line":142},[44472,44476,44480,44484],{"type":21,"tag":139,"props":44473,"children":44474},{"style":146},[44475],{"type":31,"value":160},{"type":21,"tag":139,"props":44477,"children":44478},{"style":152},[44479],{"type":31,"value":41040},{"type":21,"tag":139,"props":44481,"children":44482},{"style":146},[44483],{"type":31,"value":5343},{"type":21,"tag":139,"props":44485,"children":44486},{"style":152},[44487],{"type":31,"value":41049},{"type":21,"tag":139,"props":44489,"children":44490},{"class":141,"line":168},[44491],{"type":21,"tag":139,"props":44492,"children":44493},{"emptyLinePlaceholder":194},[44494],{"type":31,"value":197},{"type":21,"tag":139,"props":44496,"children":44497},{"class":141,"line":190},[44498,44502,44506],{"type":21,"tag":139,"props":44499,"children":44500},{"style":152},[44501],{"type":31,"value":4868},{"type":21,"tag":139,"props":44503,"children":44504},{"style":146},[44505],{"type":31,"value":211},{"type":21,"tag":139,"props":44507,"children":44508},{"style":152},[44509],{"type":31,"value":44510}," hlq.algorithms.vqe(\n",{"type":21,"tag":139,"props":44512,"children":44513},{"class":141,"line":200},[44514,44519,44523,44527],{"type":21,"tag":139,"props":44515,"children":44516},{"style":923},[44517],{"type":31,"value":44518},"    molecule",{"type":21,"tag":139,"props":44520,"children":44521},{"style":146},[44522],{"type":31,"value":211},{"type":21,"tag":139,"props":44524,"children":44525},{"style":262},[44526],{"type":31,"value":41094},{"type":21,"tag":139,"props":44528,"children":44529},{"style":152},[44530],{"type":31,"value":4811},{"type":21,"tag":139,"props":44532,"children":44533},{"class":141,"line":226},[44534,44538,44542,44546],{"type":21,"tag":139,"props":44535,"children":44536},{"style":923},[44537],{"type":31,"value":11992},{"type":21,"tag":139,"props":44539,"children":44540},{"style":146},[44541],{"type":31,"value":211},{"type":21,"tag":139,"props":44543,"children":44544},{"style":262},[44545],{"type":31,"value":41112},{"type":21,"tag":139,"props":44547,"children":44548},{"style":152},[44549],{"type":31,"value":4811},{"type":21,"tag":139,"props":44551,"children":44552},{"class":141,"line":234},[44553,44558,44562,44566],{"type":21,"tag":139,"props":44554,"children":44555},{"style":923},[44556],{"type":31,"value":44557},"    backend",{"type":21,"tag":139,"props":44559,"children":44560},{"style":146},[44561],{"type":31,"value":211},{"type":21,"tag":139,"props":44563,"children":44564},{"style":262},[44565],{"type":31,"value":41129},{"type":21,"tag":139,"props":44567,"children":44568},{"style":152},[44569],{"type":31,"value":4811},{"type":21,"tag":139,"props":44571,"children":44572},{"class":141,"line":273},[44573,44578,44582,44587],{"type":21,"tag":139,"props":44574,"children":44575},{"style":923},[44576],{"type":31,"value":44577},"    optimizer",{"type":21,"tag":139,"props":44579,"children":44580},{"style":146},[44581],{"type":31,"value":211},{"type":21,"tag":139,"props":44583,"children":44584},{"style":262},[44585],{"type":31,"value":44586},"'COBYLA'",{"type":21,"tag":139,"props":44588,"children":44589},{"style":152},[44590],{"type":31,"value":4811},{"type":21,"tag":139,"props":44592,"children":44593},{"class":141,"line":309},[44594],{"type":21,"tag":139,"props":44595,"children":44596},{"style":152},[44597],{"type":31,"value":270},{"type":21,"tag":139,"props":44599,"children":44600},{"class":141,"line":16},[44601,44605,44609,44613,44617,44621,44625,44629,44633,44637],{"type":21,"tag":139,"props":44602,"children":44603},{"style":214},[44604],{"type":31,"value":948},{"type":21,"tag":139,"props":44606,"children":44607},{"style":152},[44608],{"type":31,"value":953},{"type":21,"tag":139,"props":44610,"children":44611},{"style":146},[44612],{"type":31,"value":7524},{"type":21,"tag":139,"props":44614,"children":44615},{"style":262},[44616],{"type":31,"value":44428},{"type":21,"tag":139,"props":44618,"children":44619},{"style":214},[44620],{"type":31,"value":7534},{"type":21,"tag":139,"props":44622,"children":44623},{"style":152},[44624],{"type":31,"value":41162},{"type":21,"tag":139,"props":44626,"children":44627},{"style":146},[44628],{"type":31,"value":25590},{"type":21,"tag":139,"props":44630,"children":44631},{"style":214},[44632],{"type":31,"value":7543},{"type":21,"tag":139,"props":44634,"children":44635},{"style":262},[44636],{"type":31,"value":41175},{"type":21,"tag":139,"props":44638,"children":44639},{"style":152},[44640],{"type":31,"value":270},{"type":21,"tag":139,"props":44642,"children":44643},{"class":141,"line":361},[44644],{"type":21,"tag":139,"props":44645,"children":44646},{"emptyLinePlaceholder":194},[44647],{"type":31,"value":197},{"type":21,"tag":139,"props":44649,"children":44650},{"class":141,"line":369},[44651],{"type":21,"tag":139,"props":44652,"children":44653},{"style":220},[44654],{"type":31,"value":44655},"# GPUへ切り替え:\n",{"type":21,"tag":139,"props":44657,"children":44658},{"class":141,"line":378},[44659,44664,44668,44672,44676,44680,44684,44688,44692,44696,44700],{"type":21,"tag":139,"props":44660,"children":44661},{"style":152},[44662],{"type":31,"value":44663},"result_gpu ",{"type":21,"tag":139,"props":44665,"children":44666},{"style":146},[44667],{"type":31,"value":211},{"type":21,"tag":139,"props":44669,"children":44670},{"style":152},[44671],{"type":31,"value":41080},{"type":21,"tag":139,"props":44673,"children":44674},{"style":923},[44675],{"type":31,"value":41085},{"type":21,"tag":139,"props":44677,"children":44678},{"style":146},[44679],{"type":31,"value":211},{"type":21,"tag":139,"props":44681,"children":44682},{"style":262},[44683],{"type":31,"value":41094},{"type":21,"tag":139,"props":44685,"children":44686},{"style":152},[44687],{"type":31,"value":259},{"type":21,"tag":139,"props":44689,"children":44690},{"style":923},[44691],{"type":31,"value":10987},{"type":21,"tag":139,"props":44693,"children":44694},{"style":146},[44695],{"type":31,"value":211},{"type":21,"tag":139,"props":44697,"children":44698},{"style":262},[44699],{"type":31,"value":43925},{"type":21,"tag":139,"props":44701,"children":44702},{"style":152},[44703],{"type":31,"value":270},{"type":21,"tag":22,"props":44705,"children":44706},{},[44707],{"type":31,"value":44708},"素のQiskitは、ansatz、mapper、driverに対する完全な制御を与えてくれます。HLQuantumのワンライナーは、バックエンドを比較したり、素早く結果を得たりするのに最適です。一方、カスタムansatzやアルゴリズムのチューニングが必要な場合は素のQiskitのほうが優れています。",{"type":21,"tag":41,"props":44710,"children":44712},{"id":44711},"素のqiskitを使うべきとき",[44713],{"type":31,"value":44714},"素のQiskitを使うべきとき",{"type":21,"tag":22,"props":44716,"children":44717},{},[44718],{"type":31,"value":44719},"Qiskitを直接使うべきなのは、次のような場合です。",{"type":21,"tag":68,"props":44721,"children":44722},{},[44723,44733,44743,44782,44792],{"type":21,"tag":72,"props":44724,"children":44725},{},[44726,44731],{"type":21,"tag":16802,"props":44727,"children":44728},{},[44729],{"type":31,"value":44730},"IBMハードウェアのみをターゲットにしている",{"type":31,"value":44732}," — QiskitのトランスパイラとIBM Runtimeプリミティブは、IBMのQPU上で最高のパフォーマンスをもたらします。HLQuantumの抽象化はオーバーヘッドを追加します。",{"type":21,"tag":72,"props":44734,"children":44735},{},[44736,44741],{"type":21,"tag":16802,"props":44737,"children":44738},{},[44739],{"type":31,"value":44740},"きめ細かい回路制御が必要",{"type":31,"value":44742}," — カスタムなゲート分解、特定のトランスパイラパス、パルスレベルの制御、途中測定を伴う動的回路など。",{"type":21,"tag":72,"props":44744,"children":44745},{},[44746,44751,44753,44759,44760,44766,44767,44773,44774,44780],{"type":21,"tag":16802,"props":44747,"children":44748},{},[44749],{"type":31,"value":44750},"IBMエコシステムでの研究を行っている",{"type":31,"value":44752}," — ",{"type":21,"tag":104,"props":44754,"children":44756},{"className":44755},[],[44757],{"type":31,"value":44758},"qiskit-nature",{"type":31,"value":1155},{"type":21,"tag":104,"props":44761,"children":44763},{"className":44762},[],[44764],{"type":31,"value":44765},"qiskit-finance",{"type":31,"value":1155},{"type":21,"tag":104,"props":44768,"children":44770},{"className":44769},[],[44771],{"type":31,"value":44772},"qiskit-optimization",{"type":31,"value":1155},{"type":21,"tag":104,"props":44775,"children":44777},{"className":44776},[],[44778],{"type":31,"value":44779},"qiskit-machine-learning",{"type":31,"value":44781}," を使う場合。これらは素のQiskitと最も深く統合されています。",{"type":21,"tag":72,"props":44783,"children":44784},{},[44785,44790],{"type":21,"tag":16802,"props":44786,"children":44787},{},[44788],{"type":31,"value":44789},"パフォーマンスが重要",{"type":31,"value":44791}," — 直接のQiskitコードは、HLQuantumの変換レイヤーよりオーバーヘッドが少なくなります。",{"type":21,"tag":72,"props":44793,"children":44794},{},[44795,44800],{"type":21,"tag":16802,"props":44796,"children":44797},{},[44798],{"type":31,"value":44799},"Qiskitエコシステムに貢献している",{"type":31,"value":44801}," — Qiskitが参照実装となるプラグイン、チュートリアル、研究論文を書く場合。",{"type":21,"tag":41,"props":44803,"children":44805},{"id":44804},"hlquantumを使うべきとき",[44806],{"type":31,"value":44807},"HLQuantumを使うべきとき",{"type":21,"tag":22,"props":44809,"children":44810},{},[44811],{"type":31,"value":44812},"HLQuantumを使うべきなのは、次のような場合です。",{"type":21,"tag":68,"props":44814,"children":44815},{},[44816,44826,44836,44846,44877],{"type":21,"tag":72,"props":44817,"children":44818},{},[44819,44824],{"type":21,"tag":16802,"props":44820,"children":44821},{},[44822],{"type":31,"value":44823},"バックエンドの柔軟性が必要",{"type":31,"value":44825}," — シミュレータの性能比較、異なるアーキテクチャでの回路ベンチマーク、あるいは複数のクラウドQPUへのアクセスなど。",{"type":21,"tag":72,"props":44827,"children":44828},{},[44829,44834],{"type":21,"tag":16802,"props":44830,"children":44831},{},[44832],{"type":31,"value":44833},"アルゴリズムのプロトタイプを作っている",{"type":31,"value":44835}," — 一度書けば、どこでもテストできます。ローカルシミュレーションからGPU、実機へと切り替えるときに回路を組み直す必要がありません。",{"type":21,"tag":72,"props":44837,"children":44838},{},[44839,44844],{"type":21,"tag":16802,"props":44840,"children":44841},{},[44842],{"type":31,"value":44843},"教えている、または学んでいる",{"type":31,"value":44845}," — すべてのバックエンドで一貫した1つのAPIが学習を容易にします。6種類の異なるAPIを学ぶ必要はありません。",{"type":21,"tag":72,"props":44847,"children":44848},{},[44849,44854,44855,44861,44862,44868,44869,44875],{"type":21,"tag":16802,"props":44850,"children":44851},{},[44852],{"type":31,"value":44853},"組み込みアルゴリズムを使いたい",{"type":31,"value":44752},{"type":21,"tag":104,"props":44856,"children":44858},{"className":44857},[],[44859],{"type":31,"value":44860},"hlq.algorithms.vqe()",{"type":31,"value":1155},{"type":21,"tag":104,"props":44863,"children":44865},{"className":44864},[],[44866],{"type":31,"value":44867},"hlq.algorithms.qaoa()",{"type":31,"value":1155},{"type":21,"tag":104,"props":44870,"children":44872},{"className":44871},[],[44873],{"type":31,"value":44874},"hlq.algorithms.grover()",{"type":31,"value":44876}," が定型処理を引き受けてくれます。",{"type":21,"tag":72,"props":44878,"children":44879},{},[44880,44885],{"type":21,"tag":16802,"props":44881,"children":44882},{},[44883],{"type":31,"value":44884},"マルチバックエンドのアプリケーションを構築している",{"type":31,"value":44886}," — アプリが、待ち行列が最も短い、あるいはコストが最も低いQPU上で実行される必要がある場合、HLQuantumのディスパッチャがそれを処理します。",{"type":21,"tag":41,"props":44888,"children":44890},{"id":44889},"移行-qiskit-hlquantum",[44891],{"type":31,"value":44892},"移行: Qiskit → HLQuantum",{"type":21,"tag":22,"props":44894,"children":44895},{},[44896],{"type":31,"value":44897},"既存のQiskitコードがある場合、HLQuantumはQiskit回路を直接取り込むことができます。",{"type":21,"tag":129,"props":44899,"children":44901},{"code":44900,"language":133,"meta":7,"className":131,"style":7},"import hlquantum as hlq\nfrom qiskit import QuantumCircuit\n\n# 既存のQiskit回路\nqc = QuantumCircuit(3)\nqc.h(0); qc.cx(0, 1); qc.cx(1, 2)\n\n# ラップして任意のバックエンドで実行\nresult = hlq.run(hlq.from_qiskit(qc), backend='pennylane')\nresult_gpu = hlq.run(hlq.from_qiskit(qc), backend='cudaq')\n",[44902],{"type":21,"tag":104,"props":44903,"children":44904},{"__ignoreMap":7},[44905,44924,44943,44950,44958,44981,45029,45036,45044,45076],{"type":21,"tag":139,"props":44906,"children":44907},{"class":141,"line":142},[44908,44912,44916,44920],{"type":21,"tag":139,"props":44909,"children":44910},{"style":146},[44911],{"type":31,"value":160},{"type":21,"tag":139,"props":44913,"children":44914},{"style":152},[44915],{"type":31,"value":41040},{"type":21,"tag":139,"props":44917,"children":44918},{"style":146},[44919],{"type":31,"value":5343},{"type":21,"tag":139,"props":44921,"children":44922},{"style":152},[44923],{"type":31,"value":41049},{"type":21,"tag":139,"props":44925,"children":44926},{"class":141,"line":168},[44927,44931,44935,44939],{"type":21,"tag":139,"props":44928,"children":44929},{"style":146},[44930],{"type":31,"value":149},{"type":21,"tag":139,"props":44932,"children":44933},{"style":152},[44934],{"type":31,"value":155},{"type":21,"tag":139,"props":44936,"children":44937},{"style":146},[44938],{"type":31,"value":160},{"type":21,"tag":139,"props":44940,"children":44941},{"style":152},[44942],{"type":31,"value":6269},{"type":21,"tag":139,"props":44944,"children":44945},{"class":141,"line":190},[44946],{"type":21,"tag":139,"props":44947,"children":44948},{"emptyLinePlaceholder":194},[44949],{"type":31,"value":197},{"type":21,"tag":139,"props":44951,"children":44952},{"class":141,"line":200},[44953],{"type":21,"tag":139,"props":44954,"children":44955},{"style":220},[44956],{"type":31,"value":44957},"# 既存のQiskit回路\n",{"type":21,"tag":139,"props":44959,"children":44960},{"class":141,"line":226},[44961,44965,44969,44973,44977],{"type":21,"tag":139,"props":44962,"children":44963},{"style":152},[44964],{"type":31,"value":349},{"type":21,"tag":139,"props":44966,"children":44967},{"style":146},[44968],{"type":31,"value":211},{"type":21,"tag":139,"props":44970,"children":44971},{"style":152},[44972],{"type":31,"value":6292},{"type":21,"tag":139,"props":44974,"children":44975},{"style":214},[44976],{"type":31,"value":254},{"type":21,"tag":139,"props":44978,"children":44979},{"style":152},[44980],{"type":31,"value":270},{"type":21,"tag":139,"props":44982,"children":44983},{"class":141,"line":234},[44984,44988,44992,44997,45001,45005,45009,45013,45017,45021,45025],{"type":21,"tag":139,"props":44985,"children":44986},{"style":152},[44987],{"type":31,"value":442},{"type":21,"tag":139,"props":44989,"children":44990},{"style":214},[44991],{"type":31,"value":407},{"type":21,"tag":139,"props":44993,"children":44994},{"style":152},[44995],{"type":31,"value":44996},"); qc.cx(",{"type":21,"tag":139,"props":44998,"children":44999},{"style":214},[45000],{"type":31,"value":407},{"type":21,"tag":139,"props":45002,"children":45003},{"style":152},[45004],{"type":31,"value":259},{"type":21,"tag":139,"props":45006,"children":45007},{"style":214},[45008],{"type":31,"value":328},{"type":21,"tag":139,"props":45010,"children":45011},{"style":152},[45012],{"type":31,"value":44996},{"type":21,"tag":139,"props":45014,"children":45015},{"style":214},[45016],{"type":31,"value":328},{"type":21,"tag":139,"props":45018,"children":45019},{"style":152},[45020],{"type":31,"value":259},{"type":21,"tag":139,"props":45022,"children":45023},{"style":214},[45024],{"type":31,"value":293},{"type":21,"tag":139,"props":45026,"children":45027},{"style":152},[45028],{"type":31,"value":270},{"type":21,"tag":139,"props":45030,"children":45031},{"class":141,"line":273},[45032],{"type":21,"tag":139,"props":45033,"children":45034},{"emptyLinePlaceholder":194},[45035],{"type":31,"value":197},{"type":21,"tag":139,"props":45037,"children":45038},{"class":141,"line":309},[45039],{"type":21,"tag":139,"props":45040,"children":45041},{"style":220},[45042],{"type":31,"value":45043},"# ラップして任意のバックエンドで実行\n",{"type":21,"tag":139,"props":45045,"children":45046},{"class":141,"line":16},[45047,45051,45055,45060,45064,45068,45072],{"type":21,"tag":139,"props":45048,"children":45049},{"style":152},[45050],{"type":31,"value":4868},{"type":21,"tag":139,"props":45052,"children":45053},{"style":146},[45054],{"type":31,"value":211},{"type":21,"tag":139,"props":45056,"children":45057},{"style":152},[45058],{"type":31,"value":45059}," hlq.run(hlq.from_qiskit(qc), ",{"type":21,"tag":139,"props":45061,"children":45062},{"style":923},[45063],{"type":31,"value":10987},{"type":21,"tag":139,"props":45065,"children":45066},{"style":146},[45067],{"type":31,"value":211},{"type":21,"tag":139,"props":45069,"children":45070},{"style":262},[45071],{"type":31,"value":43892},{"type":21,"tag":139,"props":45073,"children":45074},{"style":152},[45075],{"type":31,"value":270},{"type":21,"tag":139,"props":45077,"children":45078},{"class":141,"line":361},[45079,45083,45087,45091,45095,45099,45103],{"type":21,"tag":139,"props":45080,"children":45081},{"style":152},[45082],{"type":31,"value":44663},{"type":21,"tag":139,"props":45084,"children":45085},{"style":146},[45086],{"type":31,"value":211},{"type":21,"tag":139,"props":45088,"children":45089},{"style":152},[45090],{"type":31,"value":45059},{"type":21,"tag":139,"props":45092,"children":45093},{"style":923},[45094],{"type":31,"value":10987},{"type":21,"tag":139,"props":45096,"children":45097},{"style":146},[45098],{"type":31,"value":211},{"type":21,"tag":139,"props":45100,"children":45101},{"style":262},[45102],{"type":31,"value":43925},{"type":21,"tag":139,"props":45104,"children":45105},{"style":152},[45106],{"type":31,"value":270},{"type":21,"tag":22,"props":45108,"children":45109},{},[45110],{"type":31,"value":45111},"書き直しは不要です。既存のQiskitコードに、HLQuantumのマルチバックエンド機能を段階的に追加できます。",{"type":21,"tag":41,"props":45113,"children":45115},{"id":45114},"判断チェックリスト",[45116],{"type":31,"value":45114},{"type":21,"tag":129,"props":45118,"children":45120},{"code":45119},"Starting a new project?\n├── Need IBM-specific features (Qiskit Runtime, pulse control)?  → Raw Qiskit\n├── Need to run on multiple backends or compare performance?     → HLQuantum\n├── Learning quantum computing for the first time?               → HLQuantum\n└── Building a research paper targeting IBM hardware?            → Raw Qiskit\n\nMigrating existing Qiskit code?\n├── Want to add GPU acceleration?     → HLQuantum (from_qiskit + cudaq)\n├── Want to try IonQ hardware?        → HLQuantum (from_qiskit + ionq)\n└── Want to stay IBM-only?            → Stay with Qiskit\n",[45121],{"type":21,"tag":104,"props":45122,"children":45123},{"__ignoreMap":7},[45124],{"type":31,"value":45119},{"type":21,"tag":22,"props":45126,"children":45127},{},[45128],{"type":31,"value":45129},"両者は互いに排他的なものではありません。多くのワークフローは、回路設計には素のQiskitで始め、その後マルチバックエンドのデプロイのためにHLQuantumでラップします。",{"type":21,"tag":22,"props":45131,"children":45132},{},[45133,45138,45139,45144,45145,45149,45150],{"type":21,"tag":16802,"props":45134,"children":45135},{},[45136],{"type":31,"value":45137},"始めましょう:",{"type":31,"value":22948},{"type":21,"tag":26,"props":45140,"children":45141},{"href":40749},[45142],{"type":31,"value":45143},"HLQuantum guide",{"type":31,"value":28966},{"type":21,"tag":26,"props":45146,"children":45147},{"href":1120},[45148],{"type":31,"value":30635},{"type":31,"value":28966},{"type":21,"tag":26,"props":45151,"children":45152},{"href":19066},[45153],{"type":31,"value":45154},"Compare all SDKs",{"type":21,"tag":1168,"props":45156,"children":45157},{},[45158],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":45160},[45161,45162,45163,45164,45165,45166,45167,45168],{"id":42765,"depth":168,"text":42765},{"id":42788,"depth":168,"text":42791},{"id":43207,"depth":168,"text":43210},{"id":44075,"depth":168,"text":44078},{"id":44711,"depth":168,"text":44714},{"id":44804,"depth":168,"text":44807},{"id":44889,"depth":168,"text":44892},{"id":45114,"depth":168,"text":45114},"content:ja:blog:hlquantum-vs-qiskit.md","ja\u002Fblog\u002Fhlquantum-vs-qiskit.md","ja\u002Fblog\u002Fhlquantum-vs-qiskit",{"_path":45173,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":45174,"description":45175,"date":45176,"author":11,"tags":45177,"readingTime":361,"body":45178,"_type":1187,"_id":46220,"_source":1189,"_file":46221,"_stem":46222,"_extension":1192},"\u002Fja\u002Fblog\u002Fpost-quantum-cryptography-guide","ポスト量子暗号: 開発者が今すぐ取り組むべきこと","Shor のアルゴリズムは RSA と ECC を脅かします。NIST はポスト量子標準を最終化しました。ここでは、その脅威が何であるか、標準が何を規定しているか、そして開発者が今日どのような行動を取るべきかを解説します。","2026-03-05",[3850,3851,3849],{"type":18,"children":45179,"toc":46204},[45180,45192,45197,45203,45216,45224,45247,45255,45278,45290,45296,45301,45319,45335,45343,45371,45379,45397,45403,45408,45414,45457,45618,45624,45663,45786,45792,45831,45843,45849,45855,45865,45888,45898,45908,45914,45931,45956,45966,45976,45982,45992,46002,46012,46017,46161,46167,46175,46180,46200],{"type":21,"tag":22,"props":45181,"children":45182},{},[45183,45185,45190],{"type":31,"value":45184},"量子コンピュータはまだあなたの暗号を脅かしてはいません。RSA-2048 を破れる量子コンピュータには、誤り訂正された論理量子ビットが数百万個必要ですが、現在私たちが手にしているのは、ノイズの多い物理量子ビットが数百個です。しかし、ここに問題があります。敵対者は、量子ハードウェアが成熟した後に復号することを狙って、",{"type":21,"tag":16802,"props":45186,"children":45187},{},[45188],{"type":31,"value":45189},"今この瞬間",{"type":31,"value":45191},"に暗号化されたデータを収集している可能性があるのです。そして、暗号インフラの移行には何年もかかります。",{"type":21,"tag":22,"props":45193,"children":45194},{},[45195],{"type":31,"value":45196},"これこそが、2024 年の NIST ポスト量子暗号標準が、2035 年ではなく今日の開発者にとって重要である理由です。",{"type":21,"tag":41,"props":45198,"children":45200},{"id":45199},"実際の脅威-shor-のアルゴリズム",[45201],{"type":31,"value":45202},"実際の脅威: Shor のアルゴリズム",{"type":21,"tag":22,"props":45204,"children":45205},{},[45206,45208,45214],{"type":31,"value":45207},"1994 年、Peter Shor は、量子コンピュータが大きな整数を多項式時間 ",{"type":21,"tag":104,"props":45209,"children":45211},{"className":45210},[],[45212],{"type":31,"value":45213},"O((log N)³)",{"type":31,"value":45215}," で素因数分解できることを証明しました。これは、素因数分解が困難であることに安全性を依存している RSA を破ります。同じアルゴリズムは、わずかな変更を加えることで、ECDSA と ECDH の基盤である楕円曲線暗号 (ECC) をも破ります。",{"type":21,"tag":22,"props":45217,"children":45218},{},[45219],{"type":21,"tag":16802,"props":45220,"children":45221},{},[45222],{"type":31,"value":45223},"破られるもの:",{"type":21,"tag":1112,"props":45225,"children":45226},{},[45227,45232,45237,45242],{"type":21,"tag":72,"props":45228,"children":45229},{},[45230],{"type":31,"value":45231},"RSA (暗号化、署名)",{"type":21,"tag":72,"props":45233,"children":45234},{},[45235],{"type":31,"value":45236},"ECDSA (署名 — TLS、SSH、コード署名、Bitcoin で使用)",{"type":21,"tag":72,"props":45238,"children":45239},{},[45240],{"type":31,"value":45241},"ECDH (鍵交換 — TLS、Signal、WhatsApp、iMessage で使用)",{"type":21,"tag":72,"props":45243,"children":45244},{},[45245],{"type":31,"value":45246},"Diffie-Hellman (鍵交換)",{"type":21,"tag":22,"props":45248,"children":45249},{},[45250],{"type":21,"tag":16802,"props":45251,"children":45252},{},[45253],{"type":31,"value":45254},"破られないもの:",{"type":21,"tag":1112,"props":45256,"children":45257},{},[45258,45263,45268,45273],{"type":21,"tag":72,"props":45259,"children":45260},{},[45261],{"type":31,"value":45262},"AES-256 (共通鍵暗号) — Grover のアルゴリズムは二次的な高速化しか提供せず、実効的な鍵強度を 256 ビットから 128 ビットに減らすだけです。これは対処可能です。",{"type":21,"tag":72,"props":45264,"children":45265},{},[45266],{"type":31,"value":45267},"SHA-256、SHA-3 (ハッシュ関数) — 同様に、Grover はわずかな高速化を提供し、安全性は半減しますが、現在の鍵サイズであれば依然として十分に強固です。",{"type":21,"tag":72,"props":45269,"children":45270},{},[45271],{"type":31,"value":45272},"HMAC — 安全",{"type":21,"tag":72,"props":45274,"children":45275},{},[45276],{"type":31,"value":45277},"Argon2、bcrypt (パスワードハッシュ化) — 安全",{"type":21,"tag":22,"props":45279,"children":45280},{},[45281,45283,45288],{"type":31,"value":45282},"結論はこうです。",{"type":21,"tag":16802,"props":45284,"children":45285},{},[45286],{"type":31,"value":45287},"非対称暗号は置き換えが必要であり、対称暗号は鍵サイズの引き上げ (AES-128 → AES-256) が必要です",{"type":31,"value":45289},"。",{"type":21,"tag":41,"props":45291,"children":45293},{"id":45292},"今収穫し後で復号する-harvest-now-decrypt-later",[45294],{"type":31,"value":45295},"今収穫し、後で復号する (Harvest Now, Decrypt Later)",{"type":21,"tag":22,"props":45297,"children":45298},{},[45299],{"type":31,"value":45300},"脅威は「量子コンピュータが来年には暗号を破る」ということではありません。脅威とは次のようなものです。",{"type":21,"tag":68,"props":45302,"children":45303},{},[45304,45309,45314],{"type":21,"tag":72,"props":45305,"children":45306},{},[45307],{"type":31,"value":45308},"敵対者が今日、あなたの暗号化された TLS トラフィックを捕捉して保存する",{"type":21,"tag":72,"props":45310,"children":45311},{},[45312],{"type":31,"value":45313},"2032〜2040 年に、それに対して Shor のアルゴリズムを実行する",{"type":21,"tag":72,"props":45315,"children":45316},{},[45317],{"type":31,"value":45318},"すべてを遡って復号する",{"type":21,"tag":22,"props":45320,"children":45321},{},[45322,45327,45328,45333],{"type":21,"tag":16802,"props":45323,"children":45324},{},[45325],{"type":31,"value":45326},"「今収穫し、後で復号する」",{"type":31,"value":40554},{"type":21,"tag":16802,"props":45329,"children":45330},{},[45331],{"type":31,"value":45332},"HNDL",{"type":31,"value":45334}," と呼ばれるこの攻撃は、すでに起きています。NSA やその他の諜報機関は、ほぼ間違いなく大量の暗号化トラフィックを保存しています。2022 年の NSA の勧告は、これについて明確に警告しました。",{"type":21,"tag":22,"props":45336,"children":45337},{},[45338],{"type":21,"tag":16802,"props":45339,"children":45340},{},[45341],{"type":31,"value":45342},"今日 HNDL に対して保護が必要なデータ:",{"type":21,"tag":1112,"props":45344,"children":45345},{},[45346,45351,45356,45361,45366],{"type":21,"tag":72,"props":45347,"children":45348},{},[45349],{"type":31,"value":45350},"国家機密、機密扱いの政府データ",{"type":21,"tag":72,"props":45352,"children":45353},{},[45354],{"type":31,"value":45355},"長期にわたって有効な個人データ (医療記録、身分証明書類)",{"type":21,"tag":72,"props":45357,"children":45358},{},[45359],{"type":31,"value":45360},"長期の法的保存要件を伴う金融データ",{"type":21,"tag":72,"props":45362,"children":45363},{},[45364],{"type":31,"value":45365},"営業秘密と知的財産",{"type":21,"tag":72,"props":45367,"children":45368},{},[45369],{"type":31,"value":45370},"パスワードデータベース (ただし bcrypt\u002FArgon2 は安全)",{"type":21,"tag":22,"props":45372,"children":45373},{},[45374],{"type":21,"tag":16802,"props":45375,"children":45376},{},[45377],{"type":31,"value":45378},"すぐに心配する必要のないデータ:",{"type":21,"tag":1112,"props":45380,"children":45381},{},[45382,45387,45392],{"type":21,"tag":72,"props":45383,"children":45384},{},[45385],{"type":31,"value":45386},"セッショントークン (短命で、10 年後には無価値)",{"type":21,"tag":72,"props":45388,"children":45389},{},[45390],{"type":31,"value":45391},"一時的なチャットメッセージ (あなたが高価値の標的でない限り)",{"type":21,"tag":72,"props":45393,"children":45394},{},[45395],{"type":31,"value":45396},"公開情報",{"type":21,"tag":41,"props":45398,"children":45400},{"id":45399},"nist-のポスト量子標準-2024",[45401],{"type":31,"value":45402},"NIST のポスト量子標準 (2024)",{"type":21,"tag":22,"props":45404,"children":45405},{},[45406],{"type":31,"value":45407},"8 年にわたるコンペティションを経て、NIST は 2024 年 8 月に 3 つのポスト量子暗号アルゴリズムを最終化しました。",{"type":21,"tag":422,"props":45409,"children":45411},{"id":45410},"ml-kem-crystals-kyber-鍵カプセル化",[45412],{"type":31,"value":45413},"ML-KEM (CRYSTALS-Kyber) — 鍵カプセル化",{"type":21,"tag":1112,"props":45415,"children":45416},{},[45417,45427,45437,45447],{"type":21,"tag":72,"props":45418,"children":45419},{},[45420,45425],{"type":21,"tag":16802,"props":45421,"children":45422},{},[45423],{"type":31,"value":45424},"置き換え対象:",{"type":31,"value":45426}," RSA 鍵交換、ECDH",{"type":21,"tag":72,"props":45428,"children":45429},{},[45430,45435],{"type":21,"tag":16802,"props":45431,"children":45432},{},[45433],{"type":31,"value":45434},"安全性の根拠:",{"type":31,"value":45436}," Module Learning With Errors (MLWE) 問題 — 古典コンピュータと量子コンピュータの双方にとって困難であると考えられている",{"type":21,"tag":72,"props":45438,"children":45439},{},[45440,45445],{"type":21,"tag":16802,"props":45441,"children":45442},{},[45443],{"type":31,"value":45444},"性能:",{"type":31,"value":45446}," 高速、小さな鍵 (KEM-768 で約 800 バイト)、高速な演算",{"type":21,"tag":72,"props":45448,"children":45449},{},[45450,45455],{"type":21,"tag":16802,"props":45451,"children":45452},{},[45453],{"type":31,"value":45454},"用途:",{"type":31,"value":45456}," TLS 鍵交換、暗号化された鍵ラッピング、ハイブリッド暗号方式",{"type":21,"tag":129,"props":45458,"children":45460},{"code":45459,"language":133,"meta":7,"className":131,"style":7},"# Python example using pqcrypto library\nfrom pqcrypto.kem.kyber768 import generate_keypair, encapsulate, decapsulate\n\npublic_key, secret_key = generate_keypair()\n\n# Sender encapsulates a shared secret\nciphertext, shared_secret_sender = encapsulate(public_key)\n\n# Receiver decapsulates\nshared_secret_receiver = decapsulate(secret_key, ciphertext)\n\nassert shared_secret_sender == shared_secret_receiver\n# Now use shared_secret as AES key\n",[45461],{"type":21,"tag":104,"props":45462,"children":45463},{"__ignoreMap":7},[45464,45472,45493,45500,45517,45524,45532,45549,45556,45564,45581,45588,45610],{"type":21,"tag":139,"props":45465,"children":45466},{"class":141,"line":142},[45467],{"type":21,"tag":139,"props":45468,"children":45469},{"style":220},[45470],{"type":31,"value":45471},"# Python example using pqcrypto library\n",{"type":21,"tag":139,"props":45473,"children":45474},{"class":141,"line":168},[45475,45479,45484,45488],{"type":21,"tag":139,"props":45476,"children":45477},{"style":146},[45478],{"type":31,"value":149},{"type":21,"tag":139,"props":45480,"children":45481},{"style":152},[45482],{"type":31,"value":45483}," pqcrypto.kem.kyber768 ",{"type":21,"tag":139,"props":45485,"children":45486},{"style":146},[45487],{"type":31,"value":160},{"type":21,"tag":139,"props":45489,"children":45490},{"style":152},[45491],{"type":31,"value":45492}," generate_keypair, encapsulate, decapsulate\n",{"type":21,"tag":139,"props":45494,"children":45495},{"class":141,"line":190},[45496],{"type":21,"tag":139,"props":45497,"children":45498},{"emptyLinePlaceholder":194},[45499],{"type":31,"value":197},{"type":21,"tag":139,"props":45501,"children":45502},{"class":141,"line":200},[45503,45508,45512],{"type":21,"tag":139,"props":45504,"children":45505},{"style":152},[45506],{"type":31,"value":45507},"public_key, secret_key ",{"type":21,"tag":139,"props":45509,"children":45510},{"style":146},[45511],{"type":31,"value":211},{"type":21,"tag":139,"props":45513,"children":45514},{"style":152},[45515],{"type":31,"value":45516}," generate_keypair()\n",{"type":21,"tag":139,"props":45518,"children":45519},{"class":141,"line":226},[45520],{"type":21,"tag":139,"props":45521,"children":45522},{"emptyLinePlaceholder":194},[45523],{"type":31,"value":197},{"type":21,"tag":139,"props":45525,"children":45526},{"class":141,"line":234},[45527],{"type":21,"tag":139,"props":45528,"children":45529},{"style":220},[45530],{"type":31,"value":45531},"# Sender encapsulates a shared secret\n",{"type":21,"tag":139,"props":45533,"children":45534},{"class":141,"line":273},[45535,45540,45544],{"type":21,"tag":139,"props":45536,"children":45537},{"style":152},[45538],{"type":31,"value":45539},"ciphertext, shared_secret_sender ",{"type":21,"tag":139,"props":45541,"children":45542},{"style":146},[45543],{"type":31,"value":211},{"type":21,"tag":139,"props":45545,"children":45546},{"style":152},[45547],{"type":31,"value":45548}," encapsulate(public_key)\n",{"type":21,"tag":139,"props":45550,"children":45551},{"class":141,"line":309},[45552],{"type":21,"tag":139,"props":45553,"children":45554},{"emptyLinePlaceholder":194},[45555],{"type":31,"value":197},{"type":21,"tag":139,"props":45557,"children":45558},{"class":141,"line":16},[45559],{"type":21,"tag":139,"props":45560,"children":45561},{"style":220},[45562],{"type":31,"value":45563},"# Receiver decapsulates\n",{"type":21,"tag":139,"props":45565,"children":45566},{"class":141,"line":361},[45567,45572,45576],{"type":21,"tag":139,"props":45568,"children":45569},{"style":152},[45570],{"type":31,"value":45571},"shared_secret_receiver ",{"type":21,"tag":139,"props":45573,"children":45574},{"style":146},[45575],{"type":31,"value":211},{"type":21,"tag":139,"props":45577,"children":45578},{"style":152},[45579],{"type":31,"value":45580}," decapsulate(secret_key, ciphertext)\n",{"type":21,"tag":139,"props":45582,"children":45583},{"class":141,"line":369},[45584],{"type":21,"tag":139,"props":45585,"children":45586},{"emptyLinePlaceholder":194},[45587],{"type":31,"value":197},{"type":21,"tag":139,"props":45589,"children":45590},{"class":141,"line":378},[45591,45596,45601,45605],{"type":21,"tag":139,"props":45592,"children":45593},{"style":146},[45594],{"type":31,"value":45595},"assert",{"type":21,"tag":139,"props":45597,"children":45598},{"style":152},[45599],{"type":31,"value":45600}," shared_secret_sender ",{"type":21,"tag":139,"props":45602,"children":45603},{"style":146},[45604],{"type":31,"value":7335},{"type":21,"tag":139,"props":45606,"children":45607},{"style":152},[45608],{"type":31,"value":45609}," shared_secret_receiver\n",{"type":21,"tag":139,"props":45611,"children":45612},{"class":141,"line":387},[45613],{"type":21,"tag":139,"props":45614,"children":45615},{"style":220},[45616],{"type":31,"value":45617},"# Now use shared_secret as AES key\n",{"type":21,"tag":422,"props":45619,"children":45621},{"id":45620},"ml-dsa-crystals-dilithium-デジタル署名",[45622],{"type":31,"value":45623},"ML-DSA (CRYSTALS-Dilithium) — デジタル署名",{"type":21,"tag":1112,"props":45625,"children":45626},{},[45627,45636,45645,45654],{"type":21,"tag":72,"props":45628,"children":45629},{},[45630,45634],{"type":21,"tag":16802,"props":45631,"children":45632},{},[45633],{"type":31,"value":45424},{"type":31,"value":45635}," 署名のための ECDSA、RSA-PSS",{"type":21,"tag":72,"props":45637,"children":45638},{},[45639,45643],{"type":21,"tag":16802,"props":45640,"children":45641},{},[45642],{"type":31,"value":45434},{"type":31,"value":45644}," MLWE + MSIS 問題",{"type":21,"tag":72,"props":45646,"children":45647},{},[45648,45652],{"type":21,"tag":16802,"props":45649,"children":45650},{},[45651],{"type":31,"value":45444},{"type":31,"value":45653}," 中程度の鍵サイズ (公開鍵で約 1,312 バイト)、高速な署名",{"type":21,"tag":72,"props":45655,"children":45656},{},[45657,45661],{"type":21,"tag":16802,"props":45658,"children":45659},{},[45660],{"type":31,"value":45454},{"type":31,"value":45662}," コード署名、TLS 証明書、文書署名、JWT 署名",{"type":21,"tag":129,"props":45664,"children":45666},{"code":45665,"language":133,"meta":7,"className":131,"style":7},"from pqcrypto.sign.dilithium3 import generate_keypair, sign, verify\n\npublic_key, secret_key = generate_keypair()\n\nmessage = b\"Deploy to production\"\nsignature = sign(message, secret_key)\n\n# Verify\nassert verify(message, signature, public_key)\n",[45667],{"type":21,"tag":104,"props":45668,"children":45669},{"__ignoreMap":7},[45670,45691,45698,45713,45720,45742,45759,45766,45774],{"type":21,"tag":139,"props":45671,"children":45672},{"class":141,"line":142},[45673,45677,45682,45686],{"type":21,"tag":139,"props":45674,"children":45675},{"style":146},[45676],{"type":31,"value":149},{"type":21,"tag":139,"props":45678,"children":45679},{"style":152},[45680],{"type":31,"value":45681}," pqcrypto.sign.dilithium3 ",{"type":21,"tag":139,"props":45683,"children":45684},{"style":146},[45685],{"type":31,"value":160},{"type":21,"tag":139,"props":45687,"children":45688},{"style":152},[45689],{"type":31,"value":45690}," generate_keypair, sign, verify\n",{"type":21,"tag":139,"props":45692,"children":45693},{"class":141,"line":168},[45694],{"type":21,"tag":139,"props":45695,"children":45696},{"emptyLinePlaceholder":194},[45697],{"type":31,"value":197},{"type":21,"tag":139,"props":45699,"children":45700},{"class":141,"line":190},[45701,45705,45709],{"type":21,"tag":139,"props":45702,"children":45703},{"style":152},[45704],{"type":31,"value":45507},{"type":21,"tag":139,"props":45706,"children":45707},{"style":146},[45708],{"type":31,"value":211},{"type":21,"tag":139,"props":45710,"children":45711},{"style":152},[45712],{"type":31,"value":45516},{"type":21,"tag":139,"props":45714,"children":45715},{"class":141,"line":200},[45716],{"type":21,"tag":139,"props":45717,"children":45718},{"emptyLinePlaceholder":194},[45719],{"type":31,"value":197},{"type":21,"tag":139,"props":45721,"children":45722},{"class":141,"line":226},[45723,45728,45732,45737],{"type":21,"tag":139,"props":45724,"children":45725},{"style":152},[45726],{"type":31,"value":45727},"message ",{"type":21,"tag":139,"props":45729,"children":45730},{"style":146},[45731],{"type":31,"value":211},{"type":21,"tag":139,"props":45733,"children":45734},{"style":146},[45735],{"type":31,"value":45736}," b",{"type":21,"tag":139,"props":45738,"children":45739},{"style":262},[45740],{"type":31,"value":45741},"\"Deploy to production\"\n",{"type":21,"tag":139,"props":45743,"children":45744},{"class":141,"line":234},[45745,45750,45754],{"type":21,"tag":139,"props":45746,"children":45747},{"style":152},[45748],{"type":31,"value":45749},"signature ",{"type":21,"tag":139,"props":45751,"children":45752},{"style":146},[45753],{"type":31,"value":211},{"type":21,"tag":139,"props":45755,"children":45756},{"style":152},[45757],{"type":31,"value":45758}," sign(message, secret_key)\n",{"type":21,"tag":139,"props":45760,"children":45761},{"class":141,"line":273},[45762],{"type":21,"tag":139,"props":45763,"children":45764},{"emptyLinePlaceholder":194},[45765],{"type":31,"value":197},{"type":21,"tag":139,"props":45767,"children":45768},{"class":141,"line":309},[45769],{"type":21,"tag":139,"props":45770,"children":45771},{"style":220},[45772],{"type":31,"value":45773},"# Verify\n",{"type":21,"tag":139,"props":45775,"children":45776},{"class":141,"line":16},[45777,45781],{"type":21,"tag":139,"props":45778,"children":45779},{"style":146},[45780],{"type":31,"value":45595},{"type":21,"tag":139,"props":45782,"children":45783},{"style":152},[45784],{"type":31,"value":45785}," verify(message, signature, public_key)\n",{"type":21,"tag":422,"props":45787,"children":45789},{"id":45788},"slh-dsa-sphincs-ハッシュベースの署名",[45790],{"type":31,"value":45791},"SLH-DSA (SPHINCS+) — ハッシュベースの署名",{"type":21,"tag":1112,"props":45793,"children":45794},{},[45795,45804,45813,45822],{"type":21,"tag":72,"props":45796,"children":45797},{},[45798,45802],{"type":21,"tag":16802,"props":45799,"children":45800},{},[45801],{"type":31,"value":45424},{"type":31,"value":45803}," 保守的なバックアップとしての ECDSA",{"type":21,"tag":72,"props":45805,"children":45806},{},[45807,45811],{"type":21,"tag":16802,"props":45808,"children":45809},{},[45810],{"type":31,"value":45434},{"type":31,"value":45812}," ハッシュ関数のみ — 最も保守的な選択肢",{"type":21,"tag":72,"props":45814,"children":45815},{},[45816,45820],{"type":21,"tag":16802,"props":45817,"children":45818},{},[45819],{"type":31,"value":45444},{"type":31,"value":45821}," より大きな署名 (約 8〜50 KB)、より遅い署名処理",{"type":21,"tag":72,"props":45823,"children":45824},{},[45825,45829],{"type":21,"tag":16802,"props":45826,"children":45827},{},[45828],{"type":31,"value":45454},{"type":31,"value":45830}," 鍵の再利用が懸念される高保証の署名、長期の文書署名",{"type":21,"tag":22,"props":45832,"children":45833},{},[45834,45836,45841],{"type":31,"value":45835},"NIST はまた、",{"type":21,"tag":16802,"props":45837,"children":45838},{},[45839],{"type":31,"value":45840},"FALCON (FN-DSA)",{"type":31,"value":45842}," も標準化しました。これはコンパクトな署名を持つ格子ベースの署名方式で、IoT のような制約の多い環境に適しています。",{"type":21,"tag":41,"props":45844,"children":45846},{"id":45845},"今すぐやるべきこと-段階別のアクションプラン",[45847],{"type":31,"value":45848},"今すぐやるべきこと: 段階別のアクションプラン",{"type":21,"tag":422,"props":45850,"children":45852},{"id":45851},"第-1-段階-今日やること-低労力高インパクト",[45853],{"type":31,"value":45854},"第 1 段階 — 今日やること (低労力・高インパクト)",{"type":21,"tag":22,"props":45856,"children":45857},{},[45858,45863],{"type":21,"tag":16802,"props":45859,"children":45860},{},[45861],{"type":31,"value":45862},"暗号インベントリを監査する。",{"type":31,"value":45864}," カタログ化していないものは移行できません。次を文書化しましょう。",{"type":21,"tag":1112,"props":45866,"children":45867},{},[45868,45873,45878,45883],{"type":21,"tag":72,"props":45869,"children":45870},{},[45871],{"type":31,"value":45872},"アプリケーションはどこで TLS を使用しているか? (ほとんどのフレームワークがこれを扱う)",{"type":21,"tag":72,"props":45874,"children":45875},{},[45876],{"type":31,"value":45877},"どこで署名を生成または検証しているか? (JWT、コード署名、PDF 署名)",{"type":21,"tag":72,"props":45879,"children":45880},{},[45881],{"type":31,"value":45882},"どこで非対称鍵交換を使用しているか? (RSA でラップされた AES 鍵、SSH)",{"type":21,"tag":72,"props":45884,"children":45885},{},[45886],{"type":31,"value":45887},"どのライブラリを使用しているか? (OpenSSL、BouncyCastle、AWS KMS など)",{"type":21,"tag":22,"props":45889,"children":45890},{},[45891,45896],{"type":21,"tag":16802,"props":45892,"children":45893},{},[45894],{"type":31,"value":45895},"AES-128 を AES-256 にアップグレードする。",{"type":31,"value":45897}," これは低リスクで即座に実施できます。AES-256 は Grover に対して 128 ビットの安全性に半減しますが、それでも十分に安全です。",{"type":21,"tag":22,"props":45899,"children":45900},{},[45901,45906],{"type":21,"tag":16802,"props":45902,"children":45903},{},[45904],{"type":31,"value":45905},"あらゆる場所で TLS 1.3 を有効にする。",{"type":31,"value":45907}," TLS 1.3 はデフォルトで前方秘匿性 (ECDHE) を使用します。これは、長期鍵が漏洩したとしても過去のセッションを復号できないことを意味します。これにより、TLS トラフィックに対する HNDL が部分的に緩和されます。",{"type":21,"tag":422,"props":45909,"children":45911},{"id":45910},"第-2-段階-今後-618-か月の計画",[45912],{"type":31,"value":45913},"第 2 段階 — 今後 6〜18 か月の計画",{"type":21,"tag":22,"props":45915,"children":45916},{},[45917,45922,45924,45929],{"type":21,"tag":16802,"props":45918,"children":45919},{},[45920],{"type":31,"value":45921},"TLS でハイブリッド鍵交換を採用する。",{"type":31,"value":45923}," TLS ワーキンググループは ",{"type":21,"tag":104,"props":45925,"children":45927},{"className":45926},[],[45928],{"type":31,"value":3972},{"type":31,"value":45930}," を標準化しました。これは古典的な ECDH と ML-KEM の双方を使用するハイブリッド方式です。Google Chrome、Cloudflare、AWS はすでにこれをサポートしています。これは古典的な安全性を維持しつつ HNDL から保護します。",{"type":21,"tag":129,"props":45932,"children":45936},{"code":45933,"language":45934,"meta":7,"className":45935,"style":7},"# Nginx with OpenSSL 3.x + oqs-provider (Open Quantum Safe)\nssl_ecdh_curve X25519Kyber768;  # hybrid classical + PQC\n","nginx","language-nginx shiki shiki-themes github-dark",[45937],{"type":21,"tag":104,"props":45938,"children":45939},{"__ignoreMap":7},[45940,45948],{"type":21,"tag":139,"props":45941,"children":45942},{"class":141,"line":142},[45943],{"type":21,"tag":139,"props":45944,"children":45945},{},[45946],{"type":31,"value":45947},"# Nginx with OpenSSL 3.x + oqs-provider (Open Quantum Safe)\n",{"type":21,"tag":139,"props":45949,"children":45950},{"class":141,"line":168},[45951],{"type":21,"tag":139,"props":45952,"children":45953},{},[45954],{"type":31,"value":45955},"ssl_ecdh_curve X25519Kyber768;  # hybrid classical + PQC\n",{"type":21,"tag":22,"props":45957,"children":45958},{},[45959,45964],{"type":21,"tag":16802,"props":45960,"children":45961},{},[45962],{"type":31,"value":45963},"新しいシステムでは RSA\u002FECDSA を ML-DSA に置き換える。",{"type":31,"value":45965}," 新しいマイクロサービス、新しい JWT 実装、新しい SSH デプロイなど、あらゆる新規構築のものには、ECDSA-256 の代わりに ML-DSA (Dilithium3 または Dilithium5) を使用しましょう。",{"type":21,"tag":22,"props":45967,"children":45968},{},[45969,45974],{"type":21,"tag":16802,"props":45970,"children":45971},{},[45972],{"type":31,"value":45973},"TLS 証明書のパイプラインを更新する。",{"type":31,"value":45975}," ほとんどのパブリック CA はまだ PQC 証明書を発行していませんが、内部署名された証明書やサービスメッシュ証明書には、今日から ML-DSA を使用できます。",{"type":21,"tag":422,"props":45977,"children":45979},{"id":45978},"第-3-段階-長期的な移行-15-年",[45980],{"type":31,"value":45981},"第 3 段階 — 長期的な移行 (1〜5 年)",{"type":21,"tag":22,"props":45983,"children":45984},{},[45985,45990],{"type":21,"tag":16802,"props":45986,"children":45987},{},[45988],{"type":31,"value":45989},"完全な PKI 移行。",{"type":31,"value":45991}," RSA\u002FECC の証明書階層を PQC ベースの CA インフラに置き換えます。これは最も難しい部分です。ハードウェアセキュリティモジュール (HSM)、自動化された証明書ローテーション、証明書チェーンのすべてを更新する必要があります。",{"type":21,"tag":22,"props":45993,"children":45994},{},[45995,46000],{"type":21,"tag":16802,"props":45996,"children":45997},{},[45998],{"type":31,"value":45999},"ハードウェアと組み込みデバイス。",{"type":31,"value":46001}," IoT や組み込みデバイスは、多くの場合リモートでパッチを当てられず、10 年以上の寿命を持ちます。RSA や ECDSA に認証を依存しているそのようなデバイスを監査しましょう。",{"type":21,"tag":22,"props":46003,"children":46004},{},[46005,46010],{"type":21,"tag":16802,"props":46006,"children":46007},{},[46008],{"type":31,"value":46009},"鍵管理システム。",{"type":31,"value":46011}," AWS KMS、Azure Key Vault、HashiCorp Vault — それらの PQC ロードマップと移行スケジュールを確認しましょう。",{"type":21,"tag":41,"props":46013,"children":46015},{"id":46014},"ライブラリとフレームワークのサポート状況",[46016],{"type":31,"value":46014},{"type":21,"tag":3150,"props":46018,"children":46019},{},[46020,46036],{"type":21,"tag":3154,"props":46021,"children":46022},{},[46023],{"type":21,"tag":3158,"props":46024,"children":46025},{},[46026,46031],{"type":21,"tag":3162,"props":46027,"children":46028},{},[46029],{"type":31,"value":46030},"プラットフォーム",{"type":21,"tag":3162,"props":46032,"children":46033},{},[46034],{"type":31,"value":46035},"PQC の状況",{"type":21,"tag":3176,"props":46037,"children":46038},{},[46039,46052,46065,46078,46091,46104,46117,46136,46149],{"type":21,"tag":3158,"props":46040,"children":46041},{},[46042,46047],{"type":21,"tag":3183,"props":46043,"children":46044},{},[46045],{"type":31,"value":46046},"OpenSSL 3.x + oqs-provider",{"type":21,"tag":3183,"props":46048,"children":46049},{},[46050],{"type":31,"value":46051},"プラグイン経由で ML-KEM、ML-DSA、FALCON",{"type":21,"tag":3158,"props":46053,"children":46054},{},[46055,46060],{"type":21,"tag":3183,"props":46056,"children":46057},{},[46058],{"type":31,"value":46059},"AWS KMS",{"type":21,"tag":3183,"props":46061,"children":46062},{},[46063],{"type":31,"value":46064},"ML-KEM ハイブリッド TLS がプレビュー中",{"type":21,"tag":3158,"props":46066,"children":46067},{},[46068,46073],{"type":21,"tag":3183,"props":46069,"children":46070},{},[46071],{"type":31,"value":46072},"Cloudflare",{"type":21,"tag":3183,"props":46074,"children":46075},{},[46076],{"type":31,"value":46077},"X25519Kyber768 TLS (2023 年から稼働中)",{"type":21,"tag":3158,"props":46079,"children":46080},{},[46081,46086],{"type":21,"tag":3183,"props":46082,"children":46083},{},[46084],{"type":31,"value":46085},"Chrome 124+",{"type":21,"tag":3183,"props":46087,"children":46088},{},[46089],{"type":31,"value":46090},"X25519Kyber768 TLS",{"type":21,"tag":3158,"props":46092,"children":46093},{},[46094,46099],{"type":21,"tag":3183,"props":46095,"children":46096},{},[46097],{"type":31,"value":46098},"Java (BouncyCastle)",{"type":21,"tag":3183,"props":46100,"children":46101},{},[46102],{"type":31,"value":46103},"CRYSTALS-Kyber、Dilithium",{"type":21,"tag":3158,"props":46105,"children":46106},{},[46107,46112],{"type":21,"tag":3183,"props":46108,"children":46109},{},[46110],{"type":31,"value":46111},"Python (pqcrypto)",{"type":21,"tag":3183,"props":46113,"children":46114},{},[46115],{"type":31,"value":46116},"NIST の全セット",{"type":21,"tag":3158,"props":46118,"children":46119},{},[46120,46125],{"type":21,"tag":3183,"props":46121,"children":46122},{},[46123],{"type":31,"value":46124},"Go",{"type":21,"tag":3183,"props":46126,"children":46127},{},[46128,46134],{"type":21,"tag":104,"props":46129,"children":46131},{"className":46130},[],[46132],{"type":31,"value":46133},"golang.org\u002Fx\u002Fcrypto",{"type":31,"value":46135}," の PQC が開発中",{"type":21,"tag":3158,"props":46137,"children":46138},{},[46139,46144],{"type":21,"tag":3183,"props":46140,"children":46141},{},[46142],{"type":31,"value":46143},"Node.js",{"type":21,"tag":3183,"props":46145,"children":46146},{},[46147],{"type":31,"value":46148},"ネイティブモジュール経由 (OpenSSL 3.x バインディング)",{"type":21,"tag":3158,"props":46150,"children":46151},{},[46152,46157],{"type":21,"tag":3183,"props":46153,"children":46154},{},[46155],{"type":31,"value":46156},"Rust (pqcrypto crate)",{"type":21,"tag":3183,"props":46158,"children":46159},{},[46160],{"type":31,"value":46116},{"type":21,"tag":41,"props":46162,"children":46164},{"id":46163},"_1-ページ要約",[46165],{"type":31,"value":46166},"1 ページ要約",{"type":21,"tag":129,"props":46168,"children":46170},{"code":46169},"What breaks:    RSA, ECDSA, ECDH, classical DH\nWhat's safe:    AES-256, SHA-256, SHA-3, bcrypt, Argon2\nNew standards:  ML-KEM (Kyber) for key exchange\n                ML-DSA (Dilithium) for signatures\n                SLH-DSA (SPHINCS+) for conservative signing\n\nDo today:       Upgrade AES-128 → AES-256\n                Enable TLS 1.3 (forward secrecy)\n                Audit crypto inventory\n\nDo soon:        Hybrid TLS key exchange (X25519Kyber768)\n                ML-DSA for new signature systems\n\nDo in 1-5 yrs:  Full PKI migration to PQC\n                Firmware updates for IoT devices\n",[46171],{"type":21,"tag":104,"props":46172,"children":46173},{"__ignoreMap":7},[46174],{"type":31,"value":46169},{"type":21,"tag":22,"props":46176,"children":46177},{},[46178],{"type":31,"value":46179},"暗号に対する量子の脅威は現実のものであり、そのタイムラインは不確実です。だからこそ、量子コンピュータが能力を備える前の今、行動を起こすことが正しい判断なのです。",{"type":21,"tag":22,"props":46181,"children":46182},{},[46183,46188,46189,46194,46195],{"type":21,"tag":16802,"props":46184,"children":46185},{},[46186],{"type":31,"value":46187},"さらに読む:",{"type":31,"value":22948},{"type":21,"tag":26,"props":46190,"children":46191},{"href":1231},[46192],{"type":31,"value":46193},"量子コンピューティング用語集 — Shor のアルゴリズム",{"type":31,"value":28966},{"type":21,"tag":26,"props":46196,"children":46197},{"href":16291},[46198],{"type":31,"value":46199},"量子コンピュータが今日できること",{"type":21,"tag":1168,"props":46201,"children":46202},{},[46203],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":46205},[46206,46207,46208,46213,46218,46219],{"id":45199,"depth":168,"text":45202},{"id":45292,"depth":168,"text":45295},{"id":45399,"depth":168,"text":45402,"children":46209},[46210,46211,46212],{"id":45410,"depth":190,"text":45413},{"id":45620,"depth":190,"text":45623},{"id":45788,"depth":190,"text":45791},{"id":45845,"depth":168,"text":45848,"children":46214},[46215,46216,46217],{"id":45851,"depth":190,"text":45854},{"id":45910,"depth":190,"text":45913},{"id":45978,"depth":190,"text":45981},{"id":46014,"depth":168,"text":46014},{"id":46163,"depth":168,"text":46166},"content:ja:blog:post-quantum-cryptography-guide.md","ja\u002Fblog\u002Fpost-quantum-cryptography-guide.md","ja\u002Fblog\u002Fpost-quantum-cryptography-guide",{"_path":46224,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":46225,"description":46226,"date":46227,"author":11,"tags":46228,"readingTime":309,"body":46229,"_type":1187,"_id":48763,"_source":1189,"_file":48764,"_stem":48765,"_extension":1192},"\u002Fja\u002Fblog\u002Freduce-shot-count","変分量子アルゴリズムでショット数を80%削減する方法","VQEおよびQAOAで必要な回路実行回数を削減するための実践的テクニック — ショット節約型オプティマイザ、勾配推定の工夫、測定のグループ化。","2026-03-01",[1206,3613,2041,30717],{"type":18,"children":46230,"toc":48752},[46231,46236,46241,46246,46251,46372,46384,46390,46402,46701,46711,46717,46729,47050,47062,47068,47088,47280,47305,47311,47323,47472,47482,47488,47493,47826,47831,47837,47842,48015,48021,48583,48589,48718,48723,48748],{"type":21,"tag":22,"props":46232,"children":46233},{},[46234],{"type":31,"value":46235},"量子回路を実機で実行するたびに、QPU時間と費用がかかります。VQEやQAOAのような変分アルゴリズムは、収束させるために数十万回もの回路実行を必要とすることがあります。クラウドQPUでは1タスクあたり$0.075〜$0.90かかるため、これはすぐに膨れ上がります。",{"type":21,"tag":22,"props":46237,"children":46238},{},[46239],{"type":31,"value":46240},"朗報は、ほとんどのデフォルト実装が極めてショット非効率であることです。適切なテクニックを使えば、結果の品質を犠牲にすることなくショット要求量を50〜90%削減できます。",{"type":21,"tag":41,"props":46242,"children":46244},{"id":46243},"デフォルトではなぜショット数がこれほど多いのか",[46245],{"type":31,"value":46243},{"type":21,"tag":22,"props":46247,"children":46248},{},[46249],{"type":31,"value":46250},"VQEはパウリ演算子の期待値を計算します。ハミルトニアンはパウリ項の和に分解され、各項ごとに個別の回路実行が必要になります。H₂（4量子ビット）のような分子では、パウリ項は約15個です。より大きな分子ではその数は爆発的に増えます。",{"type":21,"tag":3150,"props":46252,"children":46253},{},[46254,46279],{"type":21,"tag":3154,"props":46255,"children":46256},{},[46257],{"type":21,"tag":3158,"props":46258,"children":46259},{},[46260,46265,46269,46274],{"type":21,"tag":3162,"props":46261,"children":46262},{},[46263],{"type":31,"value":46264},"分子",{"type":21,"tag":3162,"props":46266,"children":46267},{},[46268],{"type":31,"value":25111},{"type":21,"tag":3162,"props":46270,"children":46271},{},[46272],{"type":31,"value":46273},"パウリ項数",{"type":21,"tag":3162,"props":46275,"children":46276},{},[46277],{"type":31,"value":46278},"素朴なショット数\u002F反復",{"type":21,"tag":3176,"props":46280,"children":46281},{},[46282,46304,46327,46350],{"type":21,"tag":3158,"props":46283,"children":46284},{},[46285,46290,46294,46299],{"type":21,"tag":3183,"props":46286,"children":46287},{},[46288],{"type":31,"value":46289},"H₂",{"type":21,"tag":3183,"props":46291,"children":46292},{},[46293],{"type":31,"value":17918},{"type":21,"tag":3183,"props":46295,"children":46296},{},[46297],{"type":31,"value":46298},"15",{"type":21,"tag":3183,"props":46300,"children":46301},{},[46302],{"type":31,"value":46303},"15,000",{"type":21,"tag":3158,"props":46305,"children":46306},{},[46307,46312,46317,46322],{"type":21,"tag":3183,"props":46308,"children":46309},{},[46310],{"type":31,"value":46311},"LiH",{"type":21,"tag":3183,"props":46313,"children":46314},{},[46315],{"type":31,"value":46316},"12",{"type":21,"tag":3183,"props":46318,"children":46319},{},[46320],{"type":31,"value":46321},"631",{"type":21,"tag":3183,"props":46323,"children":46324},{},[46325],{"type":31,"value":46326},"631,000",{"type":21,"tag":3158,"props":46328,"children":46329},{},[46330,46335,46340,46345],{"type":21,"tag":3183,"props":46331,"children":46332},{},[46333],{"type":31,"value":46334},"BeH₂",{"type":21,"tag":3183,"props":46336,"children":46337},{},[46338],{"type":31,"value":46339},"14",{"type":21,"tag":3183,"props":46341,"children":46342},{},[46343],{"type":31,"value":46344},"666",{"type":21,"tag":3183,"props":46346,"children":46347},{},[46348],{"type":31,"value":46349},"666,000",{"type":21,"tag":3158,"props":46351,"children":46352},{},[46353,46358,46362,46367],{"type":21,"tag":3183,"props":46354,"children":46355},{},[46356],{"type":31,"value":46357},"H₂O",{"type":21,"tag":3183,"props":46359,"children":46360},{},[46361],{"type":31,"value":46339},{"type":21,"tag":3183,"props":46363,"children":46364},{},[46365],{"type":31,"value":46366},"1,086",{"type":21,"tag":3183,"props":46368,"children":46369},{},[46370],{"type":31,"value":46371},"1,086,000",{"type":21,"tag":22,"props":46373,"children":46374},{},[46375,46377,46382],{"type":31,"value":46376},"オプティマイザの反復を200回とすると、H₂Oは素朴には",{"type":21,"tag":16802,"props":46378,"children":46379},{},[46380],{"type":31,"value":46381},"2億1,700万ショット",{"type":31,"value":46383},"を必要とします。以下のテクニックでこれを80〜95%削減できます。",{"type":21,"tag":41,"props":46385,"children":46387},{"id":46386},"テクニック1-測定のグループ化最大の効果",[46388],{"type":31,"value":46389},"テクニック1: 測定のグループ化（最大の効果）",{"type":21,"tag":22,"props":46391,"children":46392},{},[46393,46395,46400],{"type":31,"value":46394},"多くのパウリ項は",{"type":21,"tag":16802,"props":46396,"children":46397},{},[46398],{"type":31,"value":46399},"可換",{"type":31,"value":46401},"であり、個別にではなく単一の回路実行で同時に測定できます。可換なオブザーバブルをグループ化することは、利用できる最大の削減手段です。",{"type":21,"tag":129,"props":46403,"children":46405},{"className":131,"code":46404,"language":133,"meta":7,"style":7},"from qiskit.primitives import StatevectorEstimator\nfrom qiskit_nature.second_q.mappers import JordanWignerMapper\nfrom qiskit_algorithms import VQE\nfrom qiskit_algorithms.optimizers import COBYLA\n\n# Qiskit automatically groups commuting Paulis in the Estimator primitive\n# This reduces shots from O(n_terms) to O(n_groups) — often 5-10x reduction\nestimator = StatevectorEstimator()\n\n# With PennyLane, use grouping explicitly:\nimport pennylane as qml\n\nH = qml.Hamiltonian(coeffs, observables)\n\n# Group commuting terms — usually reduces term count by 5-10x\ngroups = qml.grouping.group_observables(observables, grouping_type='qwc')\nprint(f\"Original terms: {len(observables)}, Groups: {len(groups)}\")\n# Original terms: 631, Groups: 68  (for LiH)\n",[46406],{"type":21,"tag":104,"props":46407,"children":46408},{"__ignoreMap":7},[46409,46429,46448,46467,46486,46493,46501,46509,46526,46533,46541,46560,46567,46584,46591,46599,46634,46693],{"type":21,"tag":139,"props":46410,"children":46411},{"class":141,"line":142},[46412,46416,46420,46424],{"type":21,"tag":139,"props":46413,"children":46414},{"style":146},[46415],{"type":31,"value":149},{"type":21,"tag":139,"props":46417,"children":46418},{"style":152},[46419],{"type":31,"value":12413},{"type":21,"tag":139,"props":46421,"children":46422},{"style":146},[46423],{"type":31,"value":160},{"type":21,"tag":139,"props":46425,"children":46426},{"style":152},[46427],{"type":31,"value":46428}," StatevectorEstimator\n",{"type":21,"tag":139,"props":46430,"children":46431},{"class":141,"line":168},[46432,46436,46440,46444],{"type":21,"tag":139,"props":46433,"children":46434},{"style":146},[46435],{"type":31,"value":149},{"type":21,"tag":139,"props":46437,"children":46438},{"style":152},[46439],{"type":31,"value":12151},{"type":21,"tag":139,"props":46441,"children":46442},{"style":146},[46443],{"type":31,"value":160},{"type":21,"tag":139,"props":46445,"children":46446},{"style":152},[46447],{"type":31,"value":12160},{"type":21,"tag":139,"props":46449,"children":46450},{"class":141,"line":190},[46451,46455,46459,46463],{"type":21,"tag":139,"props":46452,"children":46453},{"style":146},[46454],{"type":31,"value":149},{"type":21,"tag":139,"props":46456,"children":46457},{"style":152},[46458],{"type":31,"value":12242},{"type":21,"tag":139,"props":46460,"children":46461},{"style":146},[46462],{"type":31,"value":160},{"type":21,"tag":139,"props":46464,"children":46465},{"style":214},[46466],{"type":31,"value":12380},{"type":21,"tag":139,"props":46468,"children":46469},{"class":141,"line":200},[46470,46474,46478,46482],{"type":21,"tag":139,"props":46471,"children":46472},{"style":146},[46473],{"type":31,"value":149},{"type":21,"tag":139,"props":46475,"children":46476},{"style":152},[46477],{"type":31,"value":12392},{"type":21,"tag":139,"props":46479,"children":46480},{"style":146},[46481],{"type":31,"value":160},{"type":21,"tag":139,"props":46483,"children":46484},{"style":214},[46485],{"type":31,"value":12401},{"type":21,"tag":139,"props":46487,"children":46488},{"class":141,"line":226},[46489],{"type":21,"tag":139,"props":46490,"children":46491},{"emptyLinePlaceholder":194},[46492],{"type":31,"value":197},{"type":21,"tag":139,"props":46494,"children":46495},{"class":141,"line":234},[46496],{"type":21,"tag":139,"props":46497,"children":46498},{"style":220},[46499],{"type":31,"value":46500},"# Qiskit automatically groups commuting Paulis in the Estimator primitive\n",{"type":21,"tag":139,"props":46502,"children":46503},{"class":141,"line":273},[46504],{"type":21,"tag":139,"props":46505,"children":46506},{"style":220},[46507],{"type":31,"value":46508},"# This reduces shots from O(n_terms) to O(n_groups) — often 5-10x reduction\n",{"type":21,"tag":139,"props":46510,"children":46511},{"class":141,"line":309},[46512,46517,46521],{"type":21,"tag":139,"props":46513,"children":46514},{"style":152},[46515],{"type":31,"value":46516},"estimator ",{"type":21,"tag":139,"props":46518,"children":46519},{"style":146},[46520],{"type":31,"value":211},{"type":21,"tag":139,"props":46522,"children":46523},{"style":152},[46524],{"type":31,"value":46525}," StatevectorEstimator()\n",{"type":21,"tag":139,"props":46527,"children":46528},{"class":141,"line":16},[46529],{"type":21,"tag":139,"props":46530,"children":46531},{"emptyLinePlaceholder":194},[46532],{"type":31,"value":197},{"type":21,"tag":139,"props":46534,"children":46535},{"class":141,"line":361},[46536],{"type":21,"tag":139,"props":46537,"children":46538},{"style":220},[46539],{"type":31,"value":46540},"# With PennyLane, use grouping explicitly:\n",{"type":21,"tag":139,"props":46542,"children":46543},{"class":141,"line":369},[46544,46548,46552,46556],{"type":21,"tag":139,"props":46545,"children":46546},{"style":146},[46547],{"type":31,"value":160},{"type":21,"tag":139,"props":46549,"children":46550},{"style":152},[46551],{"type":31,"value":5338},{"type":21,"tag":139,"props":46553,"children":46554},{"style":146},[46555],{"type":31,"value":5343},{"type":21,"tag":139,"props":46557,"children":46558},{"style":152},[46559],{"type":31,"value":5348},{"type":21,"tag":139,"props":46561,"children":46562},{"class":141,"line":378},[46563],{"type":21,"tag":139,"props":46564,"children":46565},{"emptyLinePlaceholder":194},[46566],{"type":31,"value":197},{"type":21,"tag":139,"props":46568,"children":46569},{"class":141,"line":387},[46570,46575,46579],{"type":21,"tag":139,"props":46571,"children":46572},{"style":152},[46573],{"type":31,"value":46574},"H ",{"type":21,"tag":139,"props":46576,"children":46577},{"style":146},[46578],{"type":31,"value":211},{"type":21,"tag":139,"props":46580,"children":46581},{"style":152},[46582],{"type":31,"value":46583}," qml.Hamiltonian(coeffs, observables)\n",{"type":21,"tag":139,"props":46585,"children":46586},{"class":141,"line":396},[46587],{"type":21,"tag":139,"props":46588,"children":46589},{"emptyLinePlaceholder":194},[46590],{"type":31,"value":197},{"type":21,"tag":139,"props":46592,"children":46593},{"class":141,"line":414},[46594],{"type":21,"tag":139,"props":46595,"children":46596},{"style":220},[46597],{"type":31,"value":46598},"# Group commuting terms — usually reduces term count by 5-10x\n",{"type":21,"tag":139,"props":46600,"children":46601},{"class":141,"line":12589},[46602,46607,46611,46616,46621,46625,46630],{"type":21,"tag":139,"props":46603,"children":46604},{"style":152},[46605],{"type":31,"value":46606},"groups ",{"type":21,"tag":139,"props":46608,"children":46609},{"style":146},[46610],{"type":31,"value":211},{"type":21,"tag":139,"props":46612,"children":46613},{"style":152},[46614],{"type":31,"value":46615}," qml.grouping.group_observables(observables, ",{"type":21,"tag":139,"props":46617,"children":46618},{"style":923},[46619],{"type":31,"value":46620},"grouping_type",{"type":21,"tag":139,"props":46622,"children":46623},{"style":146},[46624],{"type":31,"value":211},{"type":21,"tag":139,"props":46626,"children":46627},{"style":262},[46628],{"type":31,"value":46629},"'qwc'",{"type":21,"tag":139,"props":46631,"children":46632},{"style":152},[46633],{"type":31,"value":270},{"type":21,"tag":139,"props":46635,"children":46636},{"class":141,"line":12606},[46637,46641,46645,46649,46654,46658,46663,46667,46672,46676,46681,46685,46689],{"type":21,"tag":139,"props":46638,"children":46639},{"style":214},[46640],{"type":31,"value":948},{"type":21,"tag":139,"props":46642,"children":46643},{"style":152},[46644],{"type":31,"value":953},{"type":21,"tag":139,"props":46646,"children":46647},{"style":146},[46648],{"type":31,"value":7524},{"type":21,"tag":139,"props":46650,"children":46651},{"style":262},[46652],{"type":31,"value":46653},"\"Original terms: ",{"type":21,"tag":139,"props":46655,"children":46656},{"style":214},[46657],{"type":31,"value":19577},{"type":21,"tag":139,"props":46659,"children":46660},{"style":152},[46661],{"type":31,"value":46662},"(observables)",{"type":21,"tag":139,"props":46664,"children":46665},{"style":214},[46666],{"type":31,"value":7543},{"type":21,"tag":139,"props":46668,"children":46669},{"style":262},[46670],{"type":31,"value":46671},", Groups: ",{"type":21,"tag":139,"props":46673,"children":46674},{"style":214},[46675],{"type":31,"value":19577},{"type":21,"tag":139,"props":46677,"children":46678},{"style":152},[46679],{"type":31,"value":46680},"(groups)",{"type":21,"tag":139,"props":46682,"children":46683},{"style":214},[46684],{"type":31,"value":7543},{"type":21,"tag":139,"props":46686,"children":46687},{"style":262},[46688],{"type":31,"value":15370},{"type":21,"tag":139,"props":46690,"children":46691},{"style":152},[46692],{"type":31,"value":270},{"type":21,"tag":139,"props":46694,"children":46695},{"class":141,"line":12622},[46696],{"type":21,"tag":139,"props":46697,"children":46698},{"style":220},[46699],{"type":31,"value":46700},"# Original terms: 631, Groups: 68  (for LiH)\n",{"type":21,"tag":22,"props":46702,"children":46703},{},[46704,46709],{"type":21,"tag":16802,"props":46705,"children":46706},{},[46707],{"type":31,"value":46708},"期待される削減効果: 5〜15×",{"type":31,"value":46710}," — 典型的な化学ハミルトニアンにおいて。",{"type":21,"tag":41,"props":46712,"children":46714},{"id":46713},"テクニック2-ショット節約型オプティマイザ",[46715],{"type":31,"value":46716},"テクニック2: ショット節約型オプティマイザ",{"type":21,"tag":22,"props":46718,"children":46719},{},[46720,46722,46727],{"type":31,"value":46721},"L-BFGS-BやADAMのような古典的オプティマイザは、ノイズのない関数評価を前提としており、結果にノイズがある場合に必要以上の勾配評価を要求します。",{"type":21,"tag":16802,"props":46723,"children":46724},{},[46725],{"type":31,"value":46726},"ショット節約型オプティマイザ",{"type":31,"value":46728},"は、測定の分散に基づいてショットを適応的に割り当てます。",{"type":21,"tag":129,"props":46730,"children":46732},{"className":131,"code":46731,"language":133,"meta":7,"style":7},"from pennylane.optimize import AdaptiveOptimizer, ShotAdaptiveOptimizer\n\ndev = qml.device(\"default.qubit\", wires=4)\n\n@qml.qnode(dev)\ndef circuit(params):\n    # ansatz\n    ...\n    return qml.expval(H)\n\n# ShotAdaptiveOptimizer: allocates more shots to high-variance directions\nopt = ShotAdaptiveOptimizer(min_shots=10)\n\nparams = np.random.uniform(-np.pi, np.pi, n_params)\nfor i in range(100):\n    params, _, shots_used = opt.step_and_cost(circuit, params)\n    print(f\"Step {i}: shots used = {shots_used}\")\n",[46733],{"type":21,"tag":104,"props":46734,"children":46735},{"__ignoreMap":7},[46736,46757,46764,46803,46810,46821,46837,46845,46853,46865,46872,46880,46913,46920,46945,46976,46993],{"type":21,"tag":139,"props":46737,"children":46738},{"class":141,"line":142},[46739,46743,46748,46752],{"type":21,"tag":139,"props":46740,"children":46741},{"style":146},[46742],{"type":31,"value":149},{"type":21,"tag":139,"props":46744,"children":46745},{"style":152},[46746],{"type":31,"value":46747}," pennylane.optimize ",{"type":21,"tag":139,"props":46749,"children":46750},{"style":146},[46751],{"type":31,"value":160},{"type":21,"tag":139,"props":46753,"children":46754},{"style":152},[46755],{"type":31,"value":46756}," AdaptiveOptimizer, ShotAdaptiveOptimizer\n",{"type":21,"tag":139,"props":46758,"children":46759},{"class":141,"line":168},[46760],{"type":21,"tag":139,"props":46761,"children":46762},{"emptyLinePlaceholder":194},[46763],{"type":31,"value":197},{"type":21,"tag":139,"props":46765,"children":46766},{"class":141,"line":190},[46767,46771,46775,46779,46783,46787,46791,46795,46799],{"type":21,"tag":139,"props":46768,"children":46769},{"style":152},[46770],{"type":31,"value":8713},{"type":21,"tag":139,"props":46772,"children":46773},{"style":146},[46774],{"type":31,"value":211},{"type":21,"tag":139,"props":46776,"children":46777},{"style":152},[46778],{"type":31,"value":5433},{"type":21,"tag":139,"props":46780,"children":46781},{"style":262},[46782],{"type":31,"value":5438},{"type":21,"tag":139,"props":46784,"children":46785},{"style":152},[46786],{"type":31,"value":259},{"type":21,"tag":139,"props":46788,"children":46789},{"style":923},[46790],{"type":31,"value":5447},{"type":21,"tag":139,"props":46792,"children":46793},{"style":146},[46794],{"type":31,"value":211},{"type":21,"tag":139,"props":46796,"children":46797},{"style":214},[46798],{"type":31,"value":17918},{"type":21,"tag":139,"props":46800,"children":46801},{"style":152},[46802],{"type":31,"value":270},{"type":21,"tag":139,"props":46804,"children":46805},{"class":141,"line":200},[46806],{"type":21,"tag":139,"props":46807,"children":46808},{"emptyLinePlaceholder":194},[46809],{"type":31,"value":197},{"type":21,"tag":139,"props":46811,"children":46812},{"class":141,"line":226},[46813,46817],{"type":21,"tag":139,"props":46814,"children":46815},{"style":4509},[46816],{"type":31,"value":5474},{"type":21,"tag":139,"props":46818,"children":46819},{"style":152},[46820],{"type":31,"value":8765},{"type":21,"tag":139,"props":46822,"children":46823},{"class":141,"line":234},[46824,46828,46832],{"type":21,"tag":139,"props":46825,"children":46826},{"style":146},[46827],{"type":31,"value":5487},{"type":21,"tag":139,"props":46829,"children":46830},{"style":4509},[46831],{"type":31,"value":5492},{"type":21,"tag":139,"props":46833,"children":46834},{"style":152},[46835],{"type":31,"value":46836},"(params):\n",{"type":21,"tag":139,"props":46838,"children":46839},{"class":141,"line":273},[46840],{"type":21,"tag":139,"props":46841,"children":46842},{"style":220},[46843],{"type":31,"value":46844},"    # ansatz\n",{"type":21,"tag":139,"props":46846,"children":46847},{"class":141,"line":309},[46848],{"type":21,"tag":139,"props":46849,"children":46850},{"style":214},[46851],{"type":31,"value":46852},"    ...\n",{"type":21,"tag":139,"props":46854,"children":46855},{"class":141,"line":16},[46856,46860],{"type":21,"tag":139,"props":46857,"children":46858},{"style":146},[46859],{"type":31,"value":5582},{"type":21,"tag":139,"props":46861,"children":46862},{"style":152},[46863],{"type":31,"value":46864}," qml.expval(H)\n",{"type":21,"tag":139,"props":46866,"children":46867},{"class":141,"line":361},[46868],{"type":21,"tag":139,"props":46869,"children":46870},{"emptyLinePlaceholder":194},[46871],{"type":31,"value":197},{"type":21,"tag":139,"props":46873,"children":46874},{"class":141,"line":369},[46875],{"type":21,"tag":139,"props":46876,"children":46877},{"style":220},[46878],{"type":31,"value":46879},"# ShotAdaptiveOptimizer: allocates more shots to high-variance directions\n",{"type":21,"tag":139,"props":46881,"children":46882},{"class":141,"line":378},[46883,46887,46891,46896,46901,46905,46909],{"type":21,"tag":139,"props":46884,"children":46885},{"style":152},[46886],{"type":31,"value":36719},{"type":21,"tag":139,"props":46888,"children":46889},{"style":146},[46890],{"type":31,"value":211},{"type":21,"tag":139,"props":46892,"children":46893},{"style":152},[46894],{"type":31,"value":46895}," ShotAdaptiveOptimizer(",{"type":21,"tag":139,"props":46897,"children":46898},{"style":923},[46899],{"type":31,"value":46900},"min_shots",{"type":21,"tag":139,"props":46902,"children":46903},{"style":146},[46904],{"type":31,"value":211},{"type":21,"tag":139,"props":46906,"children":46907},{"style":214},[46908],{"type":31,"value":14062},{"type":21,"tag":139,"props":46910,"children":46911},{"style":152},[46912],{"type":31,"value":270},{"type":21,"tag":139,"props":46914,"children":46915},{"class":141,"line":387},[46916],{"type":21,"tag":139,"props":46917,"children":46918},{"emptyLinePlaceholder":194},[46919],{"type":31,"value":197},{"type":21,"tag":139,"props":46921,"children":46922},{"class":141,"line":396},[46923,46927,46931,46936,46940],{"type":21,"tag":139,"props":46924,"children":46925},{"style":152},[46926],{"type":31,"value":8539},{"type":21,"tag":139,"props":46928,"children":46929},{"style":146},[46930],{"type":31,"value":211},{"type":21,"tag":139,"props":46932,"children":46933},{"style":152},[46934],{"type":31,"value":46935}," np.random.uniform(",{"type":21,"tag":139,"props":46937,"children":46938},{"style":146},[46939],{"type":31,"value":825},{"type":21,"tag":139,"props":46941,"children":46942},{"style":152},[46943],{"type":31,"value":46944},"np.pi, np.pi, n_params)\n",{"type":21,"tag":139,"props":46946,"children":46947},{"class":141,"line":414},[46948,46952,46956,46960,46964,46968,46972],{"type":21,"tag":139,"props":46949,"children":46950},{"style":146},[46951],{"type":31,"value":1486},{"type":21,"tag":139,"props":46953,"children":46954},{"style":152},[46955],{"type":31,"value":7408},{"type":21,"tag":139,"props":46957,"children":46958},{"style":146},[46959],{"type":31,"value":1496},{"type":21,"tag":139,"props":46961,"children":46962},{"style":214},[46963],{"type":31,"value":7417},{"type":21,"tag":139,"props":46965,"children":46966},{"style":152},[46967],{"type":31,"value":953},{"type":21,"tag":139,"props":46969,"children":46970},{"style":214},[46971],{"type":31,"value":4905},{"type":21,"tag":139,"props":46973,"children":46974},{"style":152},[46975],{"type":31,"value":7430},{"type":21,"tag":139,"props":46977,"children":46978},{"class":141,"line":12589},[46979,46984,46988],{"type":21,"tag":139,"props":46980,"children":46981},{"style":152},[46982],{"type":31,"value":46983},"    params, _, shots_used ",{"type":21,"tag":139,"props":46985,"children":46986},{"style":146},[46987],{"type":31,"value":211},{"type":21,"tag":139,"props":46989,"children":46990},{"style":152},[46991],{"type":31,"value":46992}," opt.step_and_cost(circuit, params)\n",{"type":21,"tag":139,"props":46994,"children":46995},{"class":141,"line":12606},[46996,47000,47004,47008,47012,47016,47020,47024,47029,47033,47038,47042,47046],{"type":21,"tag":139,"props":46997,"children":46998},{"style":214},[46999],{"type":31,"value":6212},{"type":21,"tag":139,"props":47001,"children":47002},{"style":152},[47003],{"type":31,"value":953},{"type":21,"tag":139,"props":47005,"children":47006},{"style":146},[47007],{"type":31,"value":7524},{"type":21,"tag":139,"props":47009,"children":47010},{"style":262},[47011],{"type":31,"value":36997},{"type":21,"tag":139,"props":47013,"children":47014},{"style":214},[47015],{"type":31,"value":7534},{"type":21,"tag":139,"props":47017,"children":47018},{"style":152},[47019],{"type":31,"value":1833},{"type":21,"tag":139,"props":47021,"children":47022},{"style":214},[47023],{"type":31,"value":7543},{"type":21,"tag":139,"props":47025,"children":47026},{"style":262},[47027],{"type":31,"value":47028},": shots used = ",{"type":21,"tag":139,"props":47030,"children":47031},{"style":214},[47032],{"type":31,"value":7534},{"type":21,"tag":139,"props":47034,"children":47035},{"style":152},[47036],{"type":31,"value":47037},"shots_used",{"type":21,"tag":139,"props":47039,"children":47040},{"style":214},[47041],{"type":31,"value":7543},{"type":21,"tag":139,"props":47043,"children":47044},{"style":262},[47045],{"type":31,"value":15370},{"type":21,"tag":139,"props":47047,"children":47048},{"style":152},[47049],{"type":31,"value":270},{"type":21,"tag":22,"props":47051,"children":47052},{},[47053,47055,47060],{"type":31,"value":47054},"このオプティマイザは評価あたり少ないショット数から始め、勾配が不確かな場合にのみショット数を増やします。典型的なVQE実行では、固定ショットのCOBYLAと比べて",{"type":21,"tag":16802,"props":47056,"children":47057},{},[47058],{"type":31,"value":47059},"5〜10×少ないショット数",{"type":31,"value":47061},"で済みます。",{"type":21,"tag":41,"props":47063,"children":47065},{"id":47064},"テクニック3-パラメータシフト勾配評価回数を減らす",[47066],{"type":31,"value":47067},"テクニック3: パラメータシフト勾配（評価回数を減らす）",{"type":21,"tag":22,"props":47069,"children":47070},{},[47071,47073,47079,47081,47086],{"type":31,"value":47072},"素朴な有限差分による勾配推定 ",{"type":21,"tag":104,"props":47074,"children":47076},{"className":47075},[],[47077],{"type":31,"value":47078},"(f(x+ε) - f(x))\u002Fε",{"type":31,"value":47080}," は、εが小さいと分散が大きく、εが大きいとバイアスが大きくなります。",{"type":21,"tag":16802,"props":47082,"children":47083},{},[47084],{"type":31,"value":47085},"パラメータシフト則",{"type":31,"value":47087},"は、パラメータあたりわずか2回の回路評価で厳密な勾配を与えます。",{"type":21,"tag":129,"props":47089,"children":47091},{"className":131,"code":47090,"language":133,"meta":7,"style":7},"# PennyLane uses parameter-shift by default for gradients\n@qml.qnode(dev, diff_method=\"parameter-shift\")  # 2 evals per param\ndef circuit(params):\n    ...\n\n# Compare to finite-difference (requires 1 eval per param but biased):\n@qml.qnode(dev, diff_method=\"finite-diff\")  # 1 eval but approximate\n\n# For large circuits, use \"best\" — PennyLane chooses adjoint on simulator,\n# parameter-shift on hardware\n@qml.qnode(dev, diff_method=\"best\")\ndef circuit(params):\n    ...\n",[47092],{"type":21,"tag":104,"props":47093,"children":47094},{"__ignoreMap":7},[47095,47103,47137,47152,47159,47166,47174,47207,47214,47222,47230,47258,47273],{"type":21,"tag":139,"props":47096,"children":47097},{"class":141,"line":142},[47098],{"type":21,"tag":139,"props":47099,"children":47100},{"style":220},[47101],{"type":31,"value":47102},"# PennyLane uses parameter-shift by default for gradients\n",{"type":21,"tag":139,"props":47104,"children":47105},{"class":141,"line":168},[47106,47110,47115,47119,47123,47128,47132],{"type":21,"tag":139,"props":47107,"children":47108},{"style":4509},[47109],{"type":31,"value":5474},{"type":21,"tag":139,"props":47111,"children":47112},{"style":152},[47113],{"type":31,"value":47114},"(dev, ",{"type":21,"tag":139,"props":47116,"children":47117},{"style":923},[47118],{"type":31,"value":8916},{"type":21,"tag":139,"props":47120,"children":47121},{"style":146},[47122],{"type":31,"value":211},{"type":21,"tag":139,"props":47124,"children":47125},{"style":262},[47126],{"type":31,"value":47127},"\"parameter-shift\"",{"type":21,"tag":139,"props":47129,"children":47130},{"style":152},[47131],{"type":31,"value":4624},{"type":21,"tag":139,"props":47133,"children":47134},{"style":220},[47135],{"type":31,"value":47136},"# 2 evals per param\n",{"type":21,"tag":139,"props":47138,"children":47139},{"class":141,"line":190},[47140,47144,47148],{"type":21,"tag":139,"props":47141,"children":47142},{"style":146},[47143],{"type":31,"value":5487},{"type":21,"tag":139,"props":47145,"children":47146},{"style":4509},[47147],{"type":31,"value":5492},{"type":21,"tag":139,"props":47149,"children":47150},{"style":152},[47151],{"type":31,"value":46836},{"type":21,"tag":139,"props":47153,"children":47154},{"class":141,"line":200},[47155],{"type":21,"tag":139,"props":47156,"children":47157},{"style":214},[47158],{"type":31,"value":46852},{"type":21,"tag":139,"props":47160,"children":47161},{"class":141,"line":226},[47162],{"type":21,"tag":139,"props":47163,"children":47164},{"emptyLinePlaceholder":194},[47165],{"type":31,"value":197},{"type":21,"tag":139,"props":47167,"children":47168},{"class":141,"line":234},[47169],{"type":21,"tag":139,"props":47170,"children":47171},{"style":220},[47172],{"type":31,"value":47173},"# Compare to finite-difference (requires 1 eval per param but biased):\n",{"type":21,"tag":139,"props":47175,"children":47176},{"class":141,"line":273},[47177,47181,47185,47189,47193,47198,47202],{"type":21,"tag":139,"props":47178,"children":47179},{"style":4509},[47180],{"type":31,"value":5474},{"type":21,"tag":139,"props":47182,"children":47183},{"style":152},[47184],{"type":31,"value":47114},{"type":21,"tag":139,"props":47186,"children":47187},{"style":923},[47188],{"type":31,"value":8916},{"type":21,"tag":139,"props":47190,"children":47191},{"style":146},[47192],{"type":31,"value":211},{"type":21,"tag":139,"props":47194,"children":47195},{"style":262},[47196],{"type":31,"value":47197},"\"finite-diff\"",{"type":21,"tag":139,"props":47199,"children":47200},{"style":152},[47201],{"type":31,"value":4624},{"type":21,"tag":139,"props":47203,"children":47204},{"style":220},[47205],{"type":31,"value":47206},"# 1 eval but approximate\n",{"type":21,"tag":139,"props":47208,"children":47209},{"class":141,"line":309},[47210],{"type":21,"tag":139,"props":47211,"children":47212},{"emptyLinePlaceholder":194},[47213],{"type":31,"value":197},{"type":21,"tag":139,"props":47215,"children":47216},{"class":141,"line":16},[47217],{"type":21,"tag":139,"props":47218,"children":47219},{"style":220},[47220],{"type":31,"value":47221},"# For large circuits, use \"best\" — PennyLane chooses adjoint on simulator,\n",{"type":21,"tag":139,"props":47223,"children":47224},{"class":141,"line":361},[47225],{"type":21,"tag":139,"props":47226,"children":47227},{"style":220},[47228],{"type":31,"value":47229},"# parameter-shift on hardware\n",{"type":21,"tag":139,"props":47231,"children":47232},{"class":141,"line":369},[47233,47237,47241,47245,47249,47254],{"type":21,"tag":139,"props":47234,"children":47235},{"style":4509},[47236],{"type":31,"value":5474},{"type":21,"tag":139,"props":47238,"children":47239},{"style":152},[47240],{"type":31,"value":47114},{"type":21,"tag":139,"props":47242,"children":47243},{"style":923},[47244],{"type":31,"value":8916},{"type":21,"tag":139,"props":47246,"children":47247},{"style":146},[47248],{"type":31,"value":211},{"type":21,"tag":139,"props":47250,"children":47251},{"style":262},[47252],{"type":31,"value":47253},"\"best\"",{"type":21,"tag":139,"props":47255,"children":47256},{"style":152},[47257],{"type":31,"value":270},{"type":21,"tag":139,"props":47259,"children":47260},{"class":141,"line":378},[47261,47265,47269],{"type":21,"tag":139,"props":47262,"children":47263},{"style":146},[47264],{"type":31,"value":5487},{"type":21,"tag":139,"props":47266,"children":47267},{"style":4509},[47268],{"type":31,"value":5492},{"type":21,"tag":139,"props":47270,"children":47271},{"style":152},[47272],{"type":31,"value":46836},{"type":21,"tag":139,"props":47274,"children":47275},{"class":141,"line":387},[47276],{"type":21,"tag":139,"props":47277,"children":47278},{"style":214},[47279],{"type":31,"value":46852},{"type":21,"tag":22,"props":47281,"children":47282},{},[47283,47288,47290,47296,47298,47303],{"type":21,"tag":104,"props":47284,"children":47286},{"className":47285},[],[47287],{"type":31,"value":19605},{"type":31,"value":47289}," 個のパラメータに対して、パラメータシフトは勾配ステップあたり ",{"type":21,"tag":104,"props":47291,"children":47293},{"className":47292},[],[47294],{"type":31,"value":47295},"2n",{"type":31,"value":47297}," 回の評価を要します。",{"type":21,"tag":104,"props":47299,"children":47301},{"className":47300},[],[47302],{"type":31,"value":19605},{"type":31,"value":47304}," が大きい場合は、勾配を用いないオプティマイザ（COBYLA、SPSA、Nelder-Mead）を使いましょう。",{"type":21,"tag":41,"props":47306,"children":47308},{"id":47307},"テクニック4-spsa-確率的勾配推定",[47309],{"type":31,"value":47310},"テクニック4: SPSA — 確率的勾配推定",{"type":21,"tag":22,"props":47312,"children":47313},{},[47314,47316,47321],{"type":31,"value":47315},"同時摂動確率近似（SPSA）は、すべてのパラメータを同時に摂動させることで、パラメータ数に関係なくわずか",{"type":21,"tag":16802,"props":47317,"children":47318},{},[47319],{"type":31,"value":47320},"2回の回路評価",{"type":31,"value":47322},"で勾配全体を推定します。",{"type":21,"tag":129,"props":47324,"children":47326},{"className":131,"code":47325,"language":133,"meta":7,"style":7},"from qiskit_algorithms.optimizers import SPSA\n\n# SPSA: 2 evaluations per step regardless of parameter count\n# vs parameter-shift: 2n evaluations per step\noptimizer = SPSA(maxiter=300, learning_rate=0.1, perturbation=0.05)\n\n# For 10 parameters:\n# - Parameter shift: 2×10 = 20 evals\u002Fstep × 300 steps = 6,000 total\n# - SPSA: 2 evals\u002Fstep × 300 steps = 600 total  ← 10x reduction\n",[47327],{"type":21,"tag":104,"props":47328,"children":47329},{"__ignoreMap":7},[47330,47350,47357,47365,47373,47441,47448,47456,47464],{"type":21,"tag":139,"props":47331,"children":47332},{"class":141,"line":142},[47333,47337,47341,47345],{"type":21,"tag":139,"props":47334,"children":47335},{"style":146},[47336],{"type":31,"value":149},{"type":21,"tag":139,"props":47338,"children":47339},{"style":152},[47340],{"type":31,"value":12392},{"type":21,"tag":139,"props":47342,"children":47343},{"style":146},[47344],{"type":31,"value":160},{"type":21,"tag":139,"props":47346,"children":47347},{"style":214},[47348],{"type":31,"value":47349}," SPSA\n",{"type":21,"tag":139,"props":47351,"children":47352},{"class":141,"line":168},[47353],{"type":21,"tag":139,"props":47354,"children":47355},{"emptyLinePlaceholder":194},[47356],{"type":31,"value":197},{"type":21,"tag":139,"props":47358,"children":47359},{"class":141,"line":190},[47360],{"type":21,"tag":139,"props":47361,"children":47362},{"style":220},[47363],{"type":31,"value":47364},"# SPSA: 2 evaluations per step regardless of parameter count\n",{"type":21,"tag":139,"props":47366,"children":47367},{"class":141,"line":200},[47368],{"type":21,"tag":139,"props":47369,"children":47370},{"style":220},[47371],{"type":31,"value":47372},"# vs parameter-shift: 2n evaluations per step\n",{"type":21,"tag":139,"props":47374,"children":47375},{"class":141,"line":226},[47376,47381,47385,47390,47394,47398,47403,47407,47412,47416,47420,47424,47429,47433,47437],{"type":21,"tag":139,"props":47377,"children":47378},{"style":152},[47379],{"type":31,"value":47380},"optimizer ",{"type":21,"tag":139,"props":47382,"children":47383},{"style":146},[47384],{"type":31,"value":211},{"type":21,"tag":139,"props":47386,"children":47387},{"style":152},[47388],{"type":31,"value":47389}," SPSA(",{"type":21,"tag":139,"props":47391,"children":47392},{"style":923},[47393],{"type":31,"value":24306},{"type":21,"tag":139,"props":47395,"children":47396},{"style":146},[47397],{"type":31,"value":211},{"type":21,"tag":139,"props":47399,"children":47400},{"style":214},[47401],{"type":31,"value":47402},"300",{"type":21,"tag":139,"props":47404,"children":47405},{"style":152},[47406],{"type":31,"value":259},{"type":21,"tag":139,"props":47408,"children":47409},{"style":923},[47410],{"type":31,"value":47411},"learning_rate",{"type":21,"tag":139,"props":47413,"children":47414},{"style":146},[47415],{"type":31,"value":211},{"type":21,"tag":139,"props":47417,"children":47418},{"style":214},[47419],{"type":31,"value":8553},{"type":21,"tag":139,"props":47421,"children":47422},{"style":152},[47423],{"type":31,"value":259},{"type":21,"tag":139,"props":47425,"children":47426},{"style":923},[47427],{"type":31,"value":47428},"perturbation",{"type":21,"tag":139,"props":47430,"children":47431},{"style":146},[47432],{"type":31,"value":211},{"type":21,"tag":139,"props":47434,"children":47435},{"style":214},[47436],{"type":31,"value":26325},{"type":21,"tag":139,"props":47438,"children":47439},{"style":152},[47440],{"type":31,"value":270},{"type":21,"tag":139,"props":47442,"children":47443},{"class":141,"line":234},[47444],{"type":21,"tag":139,"props":47445,"children":47446},{"emptyLinePlaceholder":194},[47447],{"type":31,"value":197},{"type":21,"tag":139,"props":47449,"children":47450},{"class":141,"line":273},[47451],{"type":21,"tag":139,"props":47452,"children":47453},{"style":220},[47454],{"type":31,"value":47455},"# For 10 parameters:\n",{"type":21,"tag":139,"props":47457,"children":47458},{"class":141,"line":309},[47459],{"type":21,"tag":139,"props":47460,"children":47461},{"style":220},[47462],{"type":31,"value":47463},"# - Parameter shift: 2×10 = 20 evals\u002Fstep × 300 steps = 6,000 total\n",{"type":21,"tag":139,"props":47465,"children":47466},{"class":141,"line":16},[47467],{"type":21,"tag":139,"props":47468,"children":47469},{"style":220},[47470],{"type":31,"value":47471},"# - SPSA: 2 evals\u002Fstep × 300 steps = 600 total  ← 10x reduction\n",{"type":21,"tag":22,"props":47473,"children":47474},{},[47475,47480],{"type":21,"tag":16802,"props":47476,"children":47477},{},[47478],{"type":31,"value":47479},"最適な場面:",{"type":31,"value":47481}," 回路のパラメータ数が多い場合（> 10）。トレードオフとしてステップあたりの収束は遅くなりますが、総ショット数は少なくなります。",{"type":21,"tag":41,"props":47483,"children":47485},{"id":47484},"テクニック5-早期終了-分散しきい値",[47486],{"type":31,"value":47487},"テクニック5: 早期終了 + 分散しきい値",{"type":21,"tag":22,"props":47489,"children":47490},{},[47491],{"type":31,"value":47492},"結果がすでに十分に良い場合、回路を最後まで実行しないようにします。",{"type":21,"tag":129,"props":47494,"children":47496},{"className":131,"code":47495,"language":133,"meta":7,"style":7},"from pennylane.optimize import AdamOptimizer\nimport numpy as np\n\nopt = AdamOptimizer(stepsize=0.02)\nparams = init_params.copy()\nprev_energy = float('inf')\n\nfor step in range(max_steps):\n    params, energy = opt.step_and_cost(circuit, params)\n\n    # Stop when change is below shot-noise floor\n    variance = 1.0 \u002F np.sqrt(shots_per_eval)  # shot noise floor\n    if abs(energy - prev_energy) \u003C variance:\n        print(f\"Converged at step {step}\")\n        break\n\n    prev_energy = energy\n",[47497],{"type":21,"tag":104,"props":47498,"children":47499},{"__ignoreMap":7},[47500,47520,47539,47546,47578,47594,47624,47631,47655,47671,47678,47686,47718,47754,47794,47802,47809],{"type":21,"tag":139,"props":47501,"children":47502},{"class":141,"line":142},[47503,47507,47511,47515],{"type":21,"tag":139,"props":47504,"children":47505},{"style":146},[47506],{"type":31,"value":149},{"type":21,"tag":139,"props":47508,"children":47509},{"style":152},[47510],{"type":31,"value":46747},{"type":21,"tag":139,"props":47512,"children":47513},{"style":146},[47514],{"type":31,"value":160},{"type":21,"tag":139,"props":47516,"children":47517},{"style":152},[47518],{"type":31,"value":47519}," AdamOptimizer\n",{"type":21,"tag":139,"props":47521,"children":47522},{"class":141,"line":168},[47523,47527,47531,47535],{"type":21,"tag":139,"props":47524,"children":47525},{"style":146},[47526],{"type":31,"value":160},{"type":21,"tag":139,"props":47528,"children":47529},{"style":152},[47530],{"type":31,"value":8517},{"type":21,"tag":139,"props":47532,"children":47533},{"style":146},[47534],{"type":31,"value":5343},{"type":21,"tag":139,"props":47536,"children":47537},{"style":152},[47538],{"type":31,"value":8619},{"type":21,"tag":139,"props":47540,"children":47541},{"class":141,"line":190},[47542],{"type":21,"tag":139,"props":47543,"children":47544},{"emptyLinePlaceholder":194},[47545],{"type":31,"value":197},{"type":21,"tag":139,"props":47547,"children":47548},{"class":141,"line":200},[47549,47553,47557,47562,47566,47570,47574],{"type":21,"tag":139,"props":47550,"children":47551},{"style":152},[47552],{"type":31,"value":36719},{"type":21,"tag":139,"props":47554,"children":47555},{"style":146},[47556],{"type":31,"value":211},{"type":21,"tag":139,"props":47558,"children":47559},{"style":152},[47560],{"type":31,"value":47561}," AdamOptimizer(",{"type":21,"tag":139,"props":47563,"children":47564},{"style":923},[47565],{"type":31,"value":36733},{"type":21,"tag":139,"props":47567,"children":47568},{"style":146},[47569],{"type":31,"value":211},{"type":21,"tag":139,"props":47571,"children":47572},{"style":214},[47573],{"type":31,"value":26311},{"type":21,"tag":139,"props":47575,"children":47576},{"style":152},[47577],{"type":31,"value":270},{"type":21,"tag":139,"props":47579,"children":47580},{"class":141,"line":226},[47581,47585,47589],{"type":21,"tag":139,"props":47582,"children":47583},{"style":152},[47584],{"type":31,"value":8539},{"type":21,"tag":139,"props":47586,"children":47587},{"style":146},[47588],{"type":31,"value":211},{"type":21,"tag":139,"props":47590,"children":47591},{"style":152},[47592],{"type":31,"value":47593}," init_params.copy()\n",{"type":21,"tag":139,"props":47595,"children":47596},{"class":141,"line":234},[47597,47602,47606,47611,47615,47620],{"type":21,"tag":139,"props":47598,"children":47599},{"style":152},[47600],{"type":31,"value":47601},"prev_energy ",{"type":21,"tag":139,"props":47603,"children":47604},{"style":146},[47605],{"type":31,"value":211},{"type":21,"tag":139,"props":47607,"children":47608},{"style":214},[47609],{"type":31,"value":47610}," float",{"type":21,"tag":139,"props":47612,"children":47613},{"style":152},[47614],{"type":31,"value":953},{"type":21,"tag":139,"props":47616,"children":47617},{"style":262},[47618],{"type":31,"value":47619},"'inf'",{"type":21,"tag":139,"props":47621,"children":47622},{"style":152},[47623],{"type":31,"value":270},{"type":21,"tag":139,"props":47625,"children":47626},{"class":141,"line":273},[47627],{"type":21,"tag":139,"props":47628,"children":47629},{"emptyLinePlaceholder":194},[47630],{"type":31,"value":197},{"type":21,"tag":139,"props":47632,"children":47633},{"class":141,"line":309},[47634,47638,47642,47646,47650],{"type":21,"tag":139,"props":47635,"children":47636},{"style":146},[47637],{"type":31,"value":1486},{"type":21,"tag":139,"props":47639,"children":47640},{"style":152},[47641],{"type":31,"value":36781},{"type":21,"tag":139,"props":47643,"children":47644},{"style":146},[47645],{"type":31,"value":1496},{"type":21,"tag":139,"props":47647,"children":47648},{"style":214},[47649],{"type":31,"value":7417},{"type":21,"tag":139,"props":47651,"children":47652},{"style":152},[47653],{"type":31,"value":47654},"(max_steps):\n",{"type":21,"tag":139,"props":47656,"children":47657},{"class":141,"line":16},[47658,47663,47667],{"type":21,"tag":139,"props":47659,"children":47660},{"style":152},[47661],{"type":31,"value":47662},"    params, energy ",{"type":21,"tag":139,"props":47664,"children":47665},{"style":146},[47666],{"type":31,"value":211},{"type":21,"tag":139,"props":47668,"children":47669},{"style":152},[47670],{"type":31,"value":46992},{"type":21,"tag":139,"props":47672,"children":47673},{"class":141,"line":361},[47674],{"type":21,"tag":139,"props":47675,"children":47676},{"emptyLinePlaceholder":194},[47677],{"type":31,"value":197},{"type":21,"tag":139,"props":47679,"children":47680},{"class":141,"line":369},[47681],{"type":21,"tag":139,"props":47682,"children":47683},{"style":220},[47684],{"type":31,"value":47685},"    # Stop when change is below shot-noise floor\n",{"type":21,"tag":139,"props":47687,"children":47688},{"class":141,"line":378},[47689,47694,47698,47703,47708,47713],{"type":21,"tag":139,"props":47690,"children":47691},{"style":152},[47692],{"type":31,"value":47693},"    variance ",{"type":21,"tag":139,"props":47695,"children":47696},{"style":146},[47697],{"type":31,"value":211},{"type":21,"tag":139,"props":47699,"children":47700},{"style":214},[47701],{"type":31,"value":47702}," 1.0",{"type":21,"tag":139,"props":47704,"children":47705},{"style":146},[47706],{"type":31,"value":47707}," \u002F",{"type":21,"tag":139,"props":47709,"children":47710},{"style":152},[47711],{"type":31,"value":47712}," np.sqrt(shots_per_eval)  ",{"type":21,"tag":139,"props":47714,"children":47715},{"style":220},[47716],{"type":31,"value":47717},"# shot noise floor\n",{"type":21,"tag":139,"props":47719,"children":47720},{"class":141,"line":387},[47721,47725,47730,47735,47739,47744,47749],{"type":21,"tag":139,"props":47722,"children":47723},{"style":146},[47724],{"type":31,"value":19523},{"type":21,"tag":139,"props":47726,"children":47727},{"style":214},[47728],{"type":31,"value":47729}," abs",{"type":21,"tag":139,"props":47731,"children":47732},{"style":152},[47733],{"type":31,"value":47734},"(energy ",{"type":21,"tag":139,"props":47736,"children":47737},{"style":146},[47738],{"type":31,"value":825},{"type":21,"tag":139,"props":47740,"children":47741},{"style":152},[47742],{"type":31,"value":47743}," prev_energy) ",{"type":21,"tag":139,"props":47745,"children":47746},{"style":146},[47747],{"type":31,"value":47748},"\u003C",{"type":21,"tag":139,"props":47750,"children":47751},{"style":152},[47752],{"type":31,"value":47753}," variance:\n",{"type":21,"tag":139,"props":47755,"children":47756},{"class":141,"line":396},[47757,47761,47765,47769,47774,47778,47782,47786,47790],{"type":21,"tag":139,"props":47758,"children":47759},{"style":214},[47760],{"type":31,"value":34683},{"type":21,"tag":139,"props":47762,"children":47763},{"style":152},[47764],{"type":31,"value":953},{"type":21,"tag":139,"props":47766,"children":47767},{"style":146},[47768],{"type":31,"value":7524},{"type":21,"tag":139,"props":47770,"children":47771},{"style":262},[47772],{"type":31,"value":47773},"\"Converged at step ",{"type":21,"tag":139,"props":47775,"children":47776},{"style":214},[47777],{"type":31,"value":7534},{"type":21,"tag":139,"props":47779,"children":47780},{"style":152},[47781],{"type":31,"value":37006},{"type":21,"tag":139,"props":47783,"children":47784},{"style":214},[47785],{"type":31,"value":7543},{"type":21,"tag":139,"props":47787,"children":47788},{"style":262},[47789],{"type":31,"value":15370},{"type":21,"tag":139,"props":47791,"children":47792},{"style":152},[47793],{"type":31,"value":270},{"type":21,"tag":139,"props":47795,"children":47796},{"class":141,"line":414},[47797],{"type":21,"tag":139,"props":47798,"children":47799},{"style":146},[47800],{"type":31,"value":47801},"        break\n",{"type":21,"tag":139,"props":47803,"children":47804},{"class":141,"line":12589},[47805],{"type":21,"tag":139,"props":47806,"children":47807},{"emptyLinePlaceholder":194},[47808],{"type":31,"value":197},{"type":21,"tag":139,"props":47810,"children":47811},{"class":141,"line":12606},[47812,47817,47821],{"type":21,"tag":139,"props":47813,"children":47814},{"style":152},[47815],{"type":31,"value":47816},"    prev_energy ",{"type":21,"tag":139,"props":47818,"children":47819},{"style":146},[47820],{"type":31,"value":211},{"type":21,"tag":139,"props":47822,"children":47823},{"style":152},[47824],{"type":31,"value":47825}," energy\n",{"type":21,"tag":22,"props":47827,"children":47828},{},[47829],{"type":31,"value":47830},"多くのVQE実行は早期に頭打ちになります。それ以上続けても、ノイズの変動に対してショットを浪費するだけです。",{"type":21,"tag":41,"props":47832,"children":47834},{"id":47833},"テクニック6-ウォームスタート",[47835],{"type":31,"value":47836},"テクニック6: ウォームスタート",{"type":21,"tag":22,"props":47838,"children":47839},{},[47840],{"type":31,"value":47841},"QAOAやVQEのパラメータをランダムではなく、関連する古典解から初期化します。",{"type":21,"tag":129,"props":47843,"children":47845},{"className":131,"code":47844,"language":133,"meta":7,"style":7},"# For QAOA on Max-Cut: warm start from a greedy classical solution\nimport networkx as nx\n\nG = nx.from_edgelist(edges)\nclassical_cut = nx.algorithms.approximation.one_exchange(G)\n\n# Map classical solution to initial QAOA angles\n# γ₀ ≈ π\u002F4 for a good cut, β₀ ≈ π\u002F8\ninit_gamma = [np.pi \u002F 4]\ninit_beta = [np.pi \u002F 8]\n\n# Warm-started QAOA typically converges in 30-50% fewer iterations\n",[47846],{"type":21,"tag":104,"props":47847,"children":47848},{"__ignoreMap":7},[47849,47857,47878,47885,47902,47919,47926,47934,47942,47971,48000,48007],{"type":21,"tag":139,"props":47850,"children":47851},{"class":141,"line":142},[47852],{"type":21,"tag":139,"props":47853,"children":47854},{"style":220},[47855],{"type":31,"value":47856},"# For QAOA on Max-Cut: warm start from a greedy classical solution\n",{"type":21,"tag":139,"props":47858,"children":47859},{"class":141,"line":168},[47860,47864,47869,47873],{"type":21,"tag":139,"props":47861,"children":47862},{"style":146},[47863],{"type":31,"value":160},{"type":21,"tag":139,"props":47865,"children":47866},{"style":152},[47867],{"type":31,"value":47868}," networkx ",{"type":21,"tag":139,"props":47870,"children":47871},{"style":146},[47872],{"type":31,"value":5343},{"type":21,"tag":139,"props":47874,"children":47875},{"style":152},[47876],{"type":31,"value":47877}," nx\n",{"type":21,"tag":139,"props":47879,"children":47880},{"class":141,"line":190},[47881],{"type":21,"tag":139,"props":47882,"children":47883},{"emptyLinePlaceholder":194},[47884],{"type":31,"value":197},{"type":21,"tag":139,"props":47886,"children":47887},{"class":141,"line":200},[47888,47893,47897],{"type":21,"tag":139,"props":47889,"children":47890},{"style":152},[47891],{"type":31,"value":47892},"G ",{"type":21,"tag":139,"props":47894,"children":47895},{"style":146},[47896],{"type":31,"value":211},{"type":21,"tag":139,"props":47898,"children":47899},{"style":152},[47900],{"type":31,"value":47901}," nx.from_edgelist(edges)\n",{"type":21,"tag":139,"props":47903,"children":47904},{"class":141,"line":226},[47905,47910,47914],{"type":21,"tag":139,"props":47906,"children":47907},{"style":152},[47908],{"type":31,"value":47909},"classical_cut ",{"type":21,"tag":139,"props":47911,"children":47912},{"style":146},[47913],{"type":31,"value":211},{"type":21,"tag":139,"props":47915,"children":47916},{"style":152},[47917],{"type":31,"value":47918}," nx.algorithms.approximation.one_exchange(G)\n",{"type":21,"tag":139,"props":47920,"children":47921},{"class":141,"line":234},[47922],{"type":21,"tag":139,"props":47923,"children":47924},{"emptyLinePlaceholder":194},[47925],{"type":31,"value":197},{"type":21,"tag":139,"props":47927,"children":47928},{"class":141,"line":273},[47929],{"type":21,"tag":139,"props":47930,"children":47931},{"style":220},[47932],{"type":31,"value":47933},"# Map classical solution to initial QAOA angles\n",{"type":21,"tag":139,"props":47935,"children":47936},{"class":141,"line":309},[47937],{"type":21,"tag":139,"props":47938,"children":47939},{"style":220},[47940],{"type":31,"value":47941},"# γ₀ ≈ π\u002F4 for a good cut, β₀ ≈ π\u002F8\n",{"type":21,"tag":139,"props":47943,"children":47944},{"class":141,"line":16},[47945,47950,47954,47959,47963,47967],{"type":21,"tag":139,"props":47946,"children":47947},{"style":152},[47948],{"type":31,"value":47949},"init_gamma ",{"type":21,"tag":139,"props":47951,"children":47952},{"style":146},[47953],{"type":31,"value":211},{"type":21,"tag":139,"props":47955,"children":47956},{"style":152},[47957],{"type":31,"value":47958}," [np.pi ",{"type":21,"tag":139,"props":47960,"children":47961},{"style":146},[47962],{"type":31,"value":5062},{"type":21,"tag":139,"props":47964,"children":47965},{"style":214},[47966],{"type":31,"value":19296},{"type":21,"tag":139,"props":47968,"children":47969},{"style":152},[47970],{"type":31,"value":14170},{"type":21,"tag":139,"props":47972,"children":47973},{"class":141,"line":361},[47974,47979,47983,47987,47991,47996],{"type":21,"tag":139,"props":47975,"children":47976},{"style":152},[47977],{"type":31,"value":47978},"init_beta ",{"type":21,"tag":139,"props":47980,"children":47981},{"style":146},[47982],{"type":31,"value":211},{"type":21,"tag":139,"props":47984,"children":47985},{"style":152},[47986],{"type":31,"value":47958},{"type":21,"tag":139,"props":47988,"children":47989},{"style":146},[47990],{"type":31,"value":5062},{"type":21,"tag":139,"props":47992,"children":47993},{"style":214},[47994],{"type":31,"value":47995}," 8",{"type":21,"tag":139,"props":47997,"children":47998},{"style":152},[47999],{"type":31,"value":14170},{"type":21,"tag":139,"props":48001,"children":48002},{"class":141,"line":369},[48003],{"type":21,"tag":139,"props":48004,"children":48005},{"emptyLinePlaceholder":194},[48006],{"type":31,"value":197},{"type":21,"tag":139,"props":48008,"children":48009},{"class":141,"line":378},[48010],{"type":21,"tag":139,"props":48011,"children":48012},{"style":220},[48013],{"type":31,"value":48014},"# Warm-started QAOA typically converges in 30-50% fewer iterations\n",{"type":21,"tag":41,"props":48016,"children":48018},{"id":48017},"すべてを組み合わせる-実践的なvqeテンプレート",[48019],{"type":31,"value":48020},"すべてを組み合わせる: 実践的なVQEテンプレート",{"type":21,"tag":129,"props":48022,"children":48024},{"className":131,"code":48023,"language":133,"meta":7,"style":7},"import pennylane as qml\nimport numpy as np\nfrom pennylane.optimize import ShotAdaptiveOptimizer\n\ndev = qml.device(\"default.qubit\", wires=n_qubits, shots=512)\n\n# 1. Group commuting terms (5-10x reduction in circuit count)\ngrouped_H = qml.Hamiltonian(*qml.grouping.group_observables(H))\n\n@qml.qnode(dev, diff_method=\"parameter-shift\")\ndef ansatz(params):\n    # Hardware-efficient ansatz\n    for i in range(n_qubits):\n        qml.RY(params[i], wires=i)\n    for i in range(n_qubits - 1):\n        qml.CNOT(wires=[i, i + 1])\n    return qml.expval(grouped_H)\n\n# 2. Use shot-adaptive optimizer\nopt = ShotAdaptiveOptimizer(min_shots=50)\n\n# 3. Warm start\nparams = warm_start_params(H)\n\n# 4. Run with early stopping\nfor step in range(300):\n    params, energy, shots = opt.step_and_cost(ansatz, params)\n    if check_convergence(energy, shots):\n        break\n\nprint(f\"Ground state energy: {energy:.4f} Ha\")\n",[48025],{"type":21,"tag":104,"props":48026,"children":48027},{"__ignoreMap":7},[48028,48047,48066,48086,48093,48146,48153,48161,48187,48194,48221,48237,48245,48269,48290,48326,48359,48371,48378,48386,48418,48425,48433,48449,48456,48464,48495,48512,48524,48531,48538],{"type":21,"tag":139,"props":48029,"children":48030},{"class":141,"line":142},[48031,48035,48039,48043],{"type":21,"tag":139,"props":48032,"children":48033},{"style":146},[48034],{"type":31,"value":160},{"type":21,"tag":139,"props":48036,"children":48037},{"style":152},[48038],{"type":31,"value":5338},{"type":21,"tag":139,"props":48040,"children":48041},{"style":146},[48042],{"type":31,"value":5343},{"type":21,"tag":139,"props":48044,"children":48045},{"style":152},[48046],{"type":31,"value":5348},{"type":21,"tag":139,"props":48048,"children":48049},{"class":141,"line":168},[48050,48054,48058,48062],{"type":21,"tag":139,"props":48051,"children":48052},{"style":146},[48053],{"type":31,"value":160},{"type":21,"tag":139,"props":48055,"children":48056},{"style":152},[48057],{"type":31,"value":8517},{"type":21,"tag":139,"props":48059,"children":48060},{"style":146},[48061],{"type":31,"value":5343},{"type":21,"tag":139,"props":48063,"children":48064},{"style":152},[48065],{"type":31,"value":8619},{"type":21,"tag":139,"props":48067,"children":48068},{"class":141,"line":190},[48069,48073,48077,48081],{"type":21,"tag":139,"props":48070,"children":48071},{"style":146},[48072],{"type":31,"value":149},{"type":21,"tag":139,"props":48074,"children":48075},{"style":152},[48076],{"type":31,"value":46747},{"type":21,"tag":139,"props":48078,"children":48079},{"style":146},[48080],{"type":31,"value":160},{"type":21,"tag":139,"props":48082,"children":48083},{"style":152},[48084],{"type":31,"value":48085}," ShotAdaptiveOptimizer\n",{"type":21,"tag":139,"props":48087,"children":48088},{"class":141,"line":200},[48089],{"type":21,"tag":139,"props":48090,"children":48091},{"emptyLinePlaceholder":194},[48092],{"type":31,"value":197},{"type":21,"tag":139,"props":48094,"children":48095},{"class":141,"line":226},[48096,48100,48104,48108,48112,48116,48120,48124,48129,48133,48137,48142],{"type":21,"tag":139,"props":48097,"children":48098},{"style":152},[48099],{"type":31,"value":8713},{"type":21,"tag":139,"props":48101,"children":48102},{"style":146},[48103],{"type":31,"value":211},{"type":21,"tag":139,"props":48105,"children":48106},{"style":152},[48107],{"type":31,"value":5433},{"type":21,"tag":139,"props":48109,"children":48110},{"style":262},[48111],{"type":31,"value":5438},{"type":21,"tag":139,"props":48113,"children":48114},{"style":152},[48115],{"type":31,"value":259},{"type":21,"tag":139,"props":48117,"children":48118},{"style":923},[48119],{"type":31,"value":5447},{"type":21,"tag":139,"props":48121,"children":48122},{"style":146},[48123],{"type":31,"value":211},{"type":21,"tag":139,"props":48125,"children":48126},{"style":152},[48127],{"type":31,"value":48128},"n_qubits, ",{"type":21,"tag":139,"props":48130,"children":48131},{"style":923},[48132],{"type":31,"value":926},{"type":21,"tag":139,"props":48134,"children":48135},{"style":146},[48136],{"type":31,"value":211},{"type":21,"tag":139,"props":48138,"children":48139},{"style":214},[48140],{"type":31,"value":48141},"512",{"type":21,"tag":139,"props":48143,"children":48144},{"style":152},[48145],{"type":31,"value":270},{"type":21,"tag":139,"props":48147,"children":48148},{"class":141,"line":234},[48149],{"type":21,"tag":139,"props":48150,"children":48151},{"emptyLinePlaceholder":194},[48152],{"type":31,"value":197},{"type":21,"tag":139,"props":48154,"children":48155},{"class":141,"line":273},[48156],{"type":21,"tag":139,"props":48157,"children":48158},{"style":220},[48159],{"type":31,"value":48160},"# 1. Group commuting terms (5-10x reduction in circuit count)\n",{"type":21,"tag":139,"props":48162,"children":48163},{"class":141,"line":309},[48164,48169,48173,48178,48182],{"type":21,"tag":139,"props":48165,"children":48166},{"style":152},[48167],{"type":31,"value":48168},"grouped_H ",{"type":21,"tag":139,"props":48170,"children":48171},{"style":146},[48172],{"type":31,"value":211},{"type":21,"tag":139,"props":48174,"children":48175},{"style":152},[48176],{"type":31,"value":48177}," qml.Hamiltonian(",{"type":21,"tag":139,"props":48179,"children":48180},{"style":146},[48181],{"type":31,"value":11406},{"type":21,"tag":139,"props":48183,"children":48184},{"style":152},[48185],{"type":31,"value":48186},"qml.grouping.group_observables(H))\n",{"type":21,"tag":139,"props":48188,"children":48189},{"class":141,"line":16},[48190],{"type":21,"tag":139,"props":48191,"children":48192},{"emptyLinePlaceholder":194},[48193],{"type":31,"value":197},{"type":21,"tag":139,"props":48195,"children":48196},{"class":141,"line":361},[48197,48201,48205,48209,48213,48217],{"type":21,"tag":139,"props":48198,"children":48199},{"style":4509},[48200],{"type":31,"value":5474},{"type":21,"tag":139,"props":48202,"children":48203},{"style":152},[48204],{"type":31,"value":47114},{"type":21,"tag":139,"props":48206,"children":48207},{"style":923},[48208],{"type":31,"value":8916},{"type":21,"tag":139,"props":48210,"children":48211},{"style":146},[48212],{"type":31,"value":211},{"type":21,"tag":139,"props":48214,"children":48215},{"style":262},[48216],{"type":31,"value":47127},{"type":21,"tag":139,"props":48218,"children":48219},{"style":152},[48220],{"type":31,"value":270},{"type":21,"tag":139,"props":48222,"children":48223},{"class":141,"line":369},[48224,48228,48233],{"type":21,"tag":139,"props":48225,"children":48226},{"style":146},[48227],{"type":31,"value":5487},{"type":21,"tag":139,"props":48229,"children":48230},{"style":4509},[48231],{"type":31,"value":48232}," ansatz",{"type":21,"tag":139,"props":48234,"children":48235},{"style":152},[48236],{"type":31,"value":46836},{"type":21,"tag":139,"props":48238,"children":48239},{"class":141,"line":378},[48240],{"type":21,"tag":139,"props":48241,"children":48242},{"style":220},[48243],{"type":31,"value":48244},"    # Hardware-efficient ansatz\n",{"type":21,"tag":139,"props":48246,"children":48247},{"class":141,"line":387},[48248,48252,48256,48260,48264],{"type":21,"tag":139,"props":48249,"children":48250},{"style":146},[48251],{"type":31,"value":17024},{"type":21,"tag":139,"props":48253,"children":48254},{"style":152},[48255],{"type":31,"value":7408},{"type":21,"tag":139,"props":48257,"children":48258},{"style":146},[48259],{"type":31,"value":1496},{"type":21,"tag":139,"props":48261,"children":48262},{"style":214},[48263],{"type":31,"value":7417},{"type":21,"tag":139,"props":48265,"children":48266},{"style":152},[48267],{"type":31,"value":48268},"(n_qubits):\n",{"type":21,"tag":139,"props":48270,"children":48271},{"class":141,"line":396},[48272,48277,48281,48285],{"type":21,"tag":139,"props":48273,"children":48274},{"style":152},[48275],{"type":31,"value":48276},"        qml.RY(params[i], ",{"type":21,"tag":139,"props":48278,"children":48279},{"style":923},[48280],{"type":31,"value":5447},{"type":21,"tag":139,"props":48282,"children":48283},{"style":146},[48284],{"type":31,"value":211},{"type":21,"tag":139,"props":48286,"children":48287},{"style":152},[48288],{"type":31,"value":48289},"i)\n",{"type":21,"tag":139,"props":48291,"children":48292},{"class":141,"line":414},[48293,48297,48301,48305,48309,48314,48318,48322],{"type":21,"tag":139,"props":48294,"children":48295},{"style":146},[48296],{"type":31,"value":17024},{"type":21,"tag":139,"props":48298,"children":48299},{"style":152},[48300],{"type":31,"value":7408},{"type":21,"tag":139,"props":48302,"children":48303},{"style":146},[48304],{"type":31,"value":1496},{"type":21,"tag":139,"props":48306,"children":48307},{"style":214},[48308],{"type":31,"value":7417},{"type":21,"tag":139,"props":48310,"children":48311},{"style":152},[48312],{"type":31,"value":48313},"(n_qubits ",{"type":21,"tag":139,"props":48315,"children":48316},{"style":146},[48317],{"type":31,"value":825},{"type":21,"tag":139,"props":48319,"children":48320},{"style":214},[48321],{"type":31,"value":17050},{"type":21,"tag":139,"props":48323,"children":48324},{"style":152},[48325],{"type":31,"value":7430},{"type":21,"tag":139,"props":48327,"children":48328},{"class":141,"line":12589},[48329,48334,48338,48342,48347,48351,48355],{"type":21,"tag":139,"props":48330,"children":48331},{"style":152},[48332],{"type":31,"value":48333},"        qml.CNOT(",{"type":21,"tag":139,"props":48335,"children":48336},{"style":923},[48337],{"type":31,"value":5447},{"type":21,"tag":139,"props":48339,"children":48340},{"style":146},[48341],{"type":31,"value":211},{"type":21,"tag":139,"props":48343,"children":48344},{"style":152},[48345],{"type":31,"value":48346},"[i, i ",{"type":21,"tag":139,"props":48348,"children":48349},{"style":146},[48350],{"type":31,"value":1599},{"type":21,"tag":139,"props":48352,"children":48353},{"style":214},[48354],{"type":31,"value":17050},{"type":21,"tag":139,"props":48356,"children":48357},{"style":152},[48358],{"type":31,"value":599},{"type":21,"tag":139,"props":48360,"children":48361},{"class":141,"line":12606},[48362,48366],{"type":21,"tag":139,"props":48363,"children":48364},{"style":146},[48365],{"type":31,"value":5582},{"type":21,"tag":139,"props":48367,"children":48368},{"style":152},[48369],{"type":31,"value":48370}," qml.expval(grouped_H)\n",{"type":21,"tag":139,"props":48372,"children":48373},{"class":141,"line":12622},[48374],{"type":21,"tag":139,"props":48375,"children":48376},{"emptyLinePlaceholder":194},[48377],{"type":31,"value":197},{"type":21,"tag":139,"props":48379,"children":48380},{"class":141,"line":12630},[48381],{"type":21,"tag":139,"props":48382,"children":48383},{"style":220},[48384],{"type":31,"value":48385},"# 2. Use shot-adaptive optimizer\n",{"type":21,"tag":139,"props":48387,"children":48388},{"class":141,"line":17747},[48389,48393,48397,48401,48405,48409,48414],{"type":21,"tag":139,"props":48390,"children":48391},{"style":152},[48392],{"type":31,"value":36719},{"type":21,"tag":139,"props":48394,"children":48395},{"style":146},[48396],{"type":31,"value":211},{"type":21,"tag":139,"props":48398,"children":48399},{"style":152},[48400],{"type":31,"value":46895},{"type":21,"tag":139,"props":48402,"children":48403},{"style":923},[48404],{"type":31,"value":46900},{"type":21,"tag":139,"props":48406,"children":48407},{"style":146},[48408],{"type":31,"value":211},{"type":21,"tag":139,"props":48410,"children":48411},{"style":214},[48412],{"type":31,"value":48413},"50",{"type":21,"tag":139,"props":48415,"children":48416},{"style":152},[48417],{"type":31,"value":270},{"type":21,"tag":139,"props":48419,"children":48420},{"class":141,"line":17765},[48421],{"type":21,"tag":139,"props":48422,"children":48423},{"emptyLinePlaceholder":194},[48424],{"type":31,"value":197},{"type":21,"tag":139,"props":48426,"children":48427},{"class":141,"line":17790},[48428],{"type":21,"tag":139,"props":48429,"children":48430},{"style":220},[48431],{"type":31,"value":48432},"# 3. Warm start\n",{"type":21,"tag":139,"props":48434,"children":48435},{"class":141,"line":17817},[48436,48440,48444],{"type":21,"tag":139,"props":48437,"children":48438},{"style":152},[48439],{"type":31,"value":8539},{"type":21,"tag":139,"props":48441,"children":48442},{"style":146},[48443],{"type":31,"value":211},{"type":21,"tag":139,"props":48445,"children":48446},{"style":152},[48447],{"type":31,"value":48448}," warm_start_params(H)\n",{"type":21,"tag":139,"props":48450,"children":48451},{"class":141,"line":17843},[48452],{"type":21,"tag":139,"props":48453,"children":48454},{"emptyLinePlaceholder":194},[48455],{"type":31,"value":197},{"type":21,"tag":139,"props":48457,"children":48458},{"class":141,"line":17852},[48459],{"type":21,"tag":139,"props":48460,"children":48461},{"style":220},[48462],{"type":31,"value":48463},"# 4. Run with early stopping\n",{"type":21,"tag":139,"props":48465,"children":48466},{"class":141,"line":17864},[48467,48471,48475,48479,48483,48487,48491],{"type":21,"tag":139,"props":48468,"children":48469},{"style":146},[48470],{"type":31,"value":1486},{"type":21,"tag":139,"props":48472,"children":48473},{"style":152},[48474],{"type":31,"value":36781},{"type":21,"tag":139,"props":48476,"children":48477},{"style":146},[48478],{"type":31,"value":1496},{"type":21,"tag":139,"props":48480,"children":48481},{"style":214},[48482],{"type":31,"value":7417},{"type":21,"tag":139,"props":48484,"children":48485},{"style":152},[48486],{"type":31,"value":953},{"type":21,"tag":139,"props":48488,"children":48489},{"style":214},[48490],{"type":31,"value":47402},{"type":21,"tag":139,"props":48492,"children":48493},{"style":152},[48494],{"type":31,"value":7430},{"type":21,"tag":139,"props":48496,"children":48497},{"class":141,"line":17872},[48498,48503,48507],{"type":21,"tag":139,"props":48499,"children":48500},{"style":152},[48501],{"type":31,"value":48502},"    params, energy, shots ",{"type":21,"tag":139,"props":48504,"children":48505},{"style":146},[48506],{"type":31,"value":211},{"type":21,"tag":139,"props":48508,"children":48509},{"style":152},[48510],{"type":31,"value":48511}," opt.step_and_cost(ansatz, params)\n",{"type":21,"tag":139,"props":48513,"children":48514},{"class":141,"line":17925},[48515,48519],{"type":21,"tag":139,"props":48516,"children":48517},{"style":146},[48518],{"type":31,"value":19523},{"type":21,"tag":139,"props":48520,"children":48521},{"style":152},[48522],{"type":31,"value":48523}," check_convergence(energy, shots):\n",{"type":21,"tag":139,"props":48525,"children":48526},{"class":141,"line":26897},[48527],{"type":21,"tag":139,"props":48528,"children":48529},{"style":146},[48530],{"type":31,"value":47801},{"type":21,"tag":139,"props":48532,"children":48533},{"class":141,"line":26942},[48534],{"type":21,"tag":139,"props":48535,"children":48536},{"emptyLinePlaceholder":194},[48537],{"type":31,"value":197},{"type":21,"tag":139,"props":48539,"children":48540},{"class":141,"line":26955},[48541,48545,48549,48553,48558,48562,48567,48571,48575,48579],{"type":21,"tag":139,"props":48542,"children":48543},{"style":214},[48544],{"type":31,"value":948},{"type":21,"tag":139,"props":48546,"children":48547},{"style":152},[48548],{"type":31,"value":953},{"type":21,"tag":139,"props":48550,"children":48551},{"style":146},[48552],{"type":31,"value":7524},{"type":21,"tag":139,"props":48554,"children":48555},{"style":262},[48556],{"type":31,"value":48557},"\"Ground state energy: ",{"type":21,"tag":139,"props":48559,"children":48560},{"style":214},[48561],{"type":31,"value":7534},{"type":21,"tag":139,"props":48563,"children":48564},{"style":152},[48565],{"type":31,"value":48566},"energy",{"type":21,"tag":139,"props":48568,"children":48569},{"style":146},[48570],{"type":31,"value":25590},{"type":21,"tag":139,"props":48572,"children":48573},{"style":214},[48574],{"type":31,"value":7543},{"type":21,"tag":139,"props":48576,"children":48577},{"style":262},[48578],{"type":31,"value":41175},{"type":21,"tag":139,"props":48580,"children":48581},{"style":152},[48582],{"type":31,"value":270},{"type":21,"tag":41,"props":48584,"children":48586},{"id":48585},"クイックリファレンス-手法別のショット予算",[48587],{"type":31,"value":48588},"クイックリファレンス: 手法別のショット予算",{"type":21,"tag":3150,"props":48590,"children":48591},{},[48592,48613],{"type":21,"tag":3154,"props":48593,"children":48594},{},[48595],{"type":21,"tag":3158,"props":48596,"children":48597},{},[48598,48603,48608],{"type":21,"tag":3162,"props":48599,"children":48600},{},[48601],{"type":31,"value":48602},"手法",{"type":21,"tag":3162,"props":48604,"children":48605},{},[48606],{"type":31,"value":48607},"ショット数\u002Fステップ",{"type":21,"tag":3162,"props":48609,"children":48610},{},[48611],{"type":31,"value":48612},"最適な場面",{"type":21,"tag":3176,"props":48614,"children":48615},{},[48616,48638,48660,48682,48700],{"type":21,"tag":3158,"props":48617,"children":48618},{},[48619,48624,48633],{"type":21,"tag":3183,"props":48620,"children":48621},{},[48622],{"type":31,"value":48623},"COBYLA + 固定ショット",{"type":21,"tag":3183,"props":48625,"children":48626},{},[48627],{"type":21,"tag":104,"props":48628,"children":48630},{"className":48629},[],[48631],{"type":31,"value":48632},"n_terms × shots",{"type":21,"tag":3183,"props":48634,"children":48635},{},[48636],{"type":31,"value":48637},"パラメータ数が少ない場合",{"type":21,"tag":3158,"props":48639,"children":48640},{},[48641,48646,48655],{"type":21,"tag":3183,"props":48642,"children":48643},{},[48644],{"type":31,"value":48645},"パラメータシフト + Adam",{"type":21,"tag":3183,"props":48647,"children":48648},{},[48649],{"type":21,"tag":104,"props":48650,"children":48652},{"className":48651},[],[48653],{"type":31,"value":48654},"2n_params × shots",{"type":21,"tag":3183,"props":48656,"children":48657},{},[48658],{"type":31,"value":48659},"微分可能な回路",{"type":21,"tag":3158,"props":48661,"children":48662},{},[48663,48668,48677],{"type":21,"tag":3183,"props":48664,"children":48665},{},[48666],{"type":31,"value":48667},"SPSA",{"type":21,"tag":3183,"props":48669,"children":48670},{},[48671],{"type":21,"tag":104,"props":48672,"children":48674},{"className":48673},[],[48675],{"type":31,"value":48676},"2 × shots",{"type":21,"tag":3183,"props":48678,"children":48679},{},[48680],{"type":31,"value":48681},"パラメータ数が多い場合",{"type":21,"tag":3158,"props":48683,"children":48684},{},[48685,48690,48695],{"type":21,"tag":3183,"props":48686,"children":48687},{},[48688],{"type":31,"value":48689},"ShotAdaptiveOptimizer",{"type":21,"tag":3183,"props":48691,"children":48692},{},[48693],{"type":31,"value":48694},"適応的",{"type":21,"tag":3183,"props":48696,"children":48697},{},[48698],{"type":31,"value":48699},"一般的なVQE",{"type":21,"tag":3158,"props":48701,"children":48702},{},[48703,48708,48713],{"type":21,"tag":3183,"props":48704,"children":48705},{},[48706],{"type":31,"value":48707},"グループ化されたパウリ項",{"type":21,"tag":3183,"props":48709,"children":48710},{},[48711],{"type":31,"value":48712},"÷5〜15×",{"type":21,"tag":3183,"props":48714,"children":48715},{},[48716],{"type":31,"value":48717},"常に最初に適用",{"type":21,"tag":22,"props":48719,"children":48720},{},[48721],{"type":31,"value":48722},"まず測定のグループ化を適用してください。これは単一で最大の効果を持ち、オプティマイザや回路に変更を加える必要がありません。",{"type":21,"tag":22,"props":48724,"children":48725},{},[48726,48731,48732,48737,48738,48743,48744],{"type":21,"tag":16802,"props":48727,"children":48728},{},[48729],{"type":31,"value":48730},"関連:",{"type":31,"value":22948},{"type":21,"tag":26,"props":48733,"children":48734},{"href":3610},[48735],{"type":31,"value":48736},"VQE with PennyLane",{"type":31,"value":28966},{"type":21,"tag":26,"props":48739,"children":48740},{"href":1100},[48741],{"type":31,"value":48742},"QPU access guide",{"type":31,"value":28966},{"type":21,"tag":26,"props":48745,"children":48746},{"href":40749},[48747],{"type":31,"value":40752},{"type":21,"tag":1168,"props":48749,"children":48750},{},[48751],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":48753},[48754,48755,48756,48757,48758,48759,48760,48761,48762],{"id":46243,"depth":168,"text":46243},{"id":46386,"depth":168,"text":46389},{"id":46713,"depth":168,"text":46716},{"id":47064,"depth":168,"text":47067},{"id":47307,"depth":168,"text":47310},{"id":47484,"depth":168,"text":47487},{"id":47833,"depth":168,"text":47836},{"id":48017,"depth":168,"text":48020},{"id":48585,"depth":168,"text":48588},"content:ja:blog:reduce-shot-count.md","ja\u002Fblog\u002Freduce-shot-count.md","ja\u002Fblog\u002Freduce-shot-count",{"_path":48767,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":48768,"description":48769,"date":48770,"updatedDate":21805,"author":11,"tags":48771,"readingTime":309,"body":48773,"_type":1187,"_id":50567,"_source":1189,"_file":50568,"_stem":50569,"_extension":1192},"\u002Fja\u002Fblog\u002Fibm-quantum-free-tier-2026","IBM Quantum 無料プラン: 2026年に利用できるすべて","IBM Quantum の無料 Open Plan に含まれる内容、キュー待ち時間の仕組み、そして無料 QPU アクセスを最大限に活用する方法を詳しく解説します。","2026-02-20",[48772,1207,14],"IBM",{"type":18,"children":48774,"toc":50553},[48775,48780,48785,48797,48854,48859,48865,48893,48914,48934,48940,48945,49050,49055,49295,49301,49307,49317,49323,49350,49356,49361,49472,49485,49491,50129,50134,50139,50165,50173,50204,50209,50214,50293,50298,50304,50309,50537,50549],{"type":21,"tag":22,"props":48776,"children":48777},{},[48778],{"type":31,"value":48779},"IBM Quantum は、量子コンピューティング業界で最もアクセスしやすい無料プランを提供しています。無料の IBM ID があれば、最大 127 量子ビットの実際の量子プロセッサにアクセスできます。費用も、クレジットカードも、申請も不要です。それが実際に何を意味するのか、正確に見ていきましょう。",{"type":21,"tag":41,"props":48781,"children":48783},{"id":48782},"無料プランに含まれるもの",[48784],{"type":31,"value":48782},{"type":21,"tag":22,"props":48786,"children":48787},{},[48788,48790,48795],{"type":31,"value":48789},"IBM Quantum の ",{"type":21,"tag":16802,"props":48791,"children":48792},{},[48793],{"type":31,"value":48794},"Open Plan",{"type":31,"value":48796}," では以下が利用できます:",{"type":21,"tag":1112,"props":48798,"children":48799},{},[48800,48810,48822,48832,48842],{"type":21,"tag":72,"props":48801,"children":48802},{},[48803,48805],{"type":31,"value":48804},"一般公開されているすべての量子システムへの",{"type":21,"tag":16802,"props":48806,"children":48807},{},[48808],{"type":31,"value":48809},"無制限アクセス",{"type":21,"tag":72,"props":48811,"children":48812},{},[48813,48815,48820],{"type":31,"value":48814},"月あたり ",{"type":21,"tag":16802,"props":48816,"children":48817},{},[48818],{"type":31,"value":48819},"10分の量子時間",{"type":31,"value":48821},"(回路が QPU 上で実際に実行されている時間)",{"type":21,"tag":72,"props":48823,"children":48824},{},[48825,48830],{"type":21,"tag":16802,"props":48826,"children":48827},{},[48828],{"type":31,"value":48829},"IBM シミュレータへのアクセス",{"type":31,"value":48831},"(時間制限なし。statevector、QASM、matrix product state)",{"type":21,"tag":72,"props":48833,"children":48834},{},[48835,48840],{"type":21,"tag":16802,"props":48836,"children":48837},{},[48838],{"type":31,"value":48839},"Qiskit Runtime",{"type":31,"value":48841},": 回路を実行するための最新の IBM 実行環境",{"type":21,"tag":72,"props":48843,"children":48844},{},[48845,48847,48852],{"type":31,"value":48846},"チュートリアルやコースを備えた ",{"type":21,"tag":16802,"props":48848,"children":48849},{},[48850],{"type":31,"value":48851},"IBM Quantum Learning",{"type":31,"value":48853}," プラットフォーム",{"type":21,"tag":22,"props":48855,"children":48856},{},[48857],{"type":31,"value":48858},"月10分の制限は厳しく聞こえますが、実際にはほとんどの研究用回路は数ミリ秒の実 QPU 時間で完了します。量子アルゴリズムを試している個人開発者がこの制限に達することはめったにありません。",{"type":21,"tag":41,"props":48860,"children":48862},{"id":48861},"_2026年8月アップデートheron-r2とボーナス計算時間",[48863],{"type":31,"value":48864},"2026年8月アップデート:Heron r2とボーナス計算時間",{"type":21,"tag":22,"props":48866,"children":48867},{},[48868,48870,48876,48878,48884,48886,48891],{"type":31,"value":48869},"IBMは2026年3月、より高性能なHeron r2プロセッサ(",{"type":21,"tag":104,"props":48871,"children":48873},{"className":48872},[],[48874],{"type":31,"value":48875},"ibm_kingston",{"type":31,"value":48877},")をOpen Planに追加し、無料枠ユーザーは従来のHeron r1システムより明らかに優れた2量子ビットゲート忠実度にアクセスできるようになりました。しばらく実行していない場合は、",{"type":21,"tag":104,"props":48879,"children":48881},{"className":48880},[],[48882],{"type":31,"value":48883},"service.backends()",{"type":31,"value":48885},"のリストに",{"type":21,"tag":104,"props":48887,"children":48889},{"className":48888},[],[48890],{"type":31,"value":48875},{"type":31,"value":48892},"が表示されているか確認する価値があります。",{"type":21,"tag":22,"props":48894,"children":48895},{},[48896,48898,48903,48905,48912],{"type":31,"value":48897},"IBMはまた、アクティブユーザー向けに1回限りのプロモーションを実施しました。12か月間のいずれかの期間に少なくとも20分のQPU時間を記録したユーザーは、以降12か月間で",{"type":21,"tag":16802,"props":48899,"children":48900},{},[48901],{"type":31,"value":48902},"180分",{"type":31,"value":48904},"のボーナス(標準の月間割り当ての18倍)を選択できました。この特典は特定の登録期間に限定されたものであり、Open Planの月10分という基本枠を恒久的に変更するものではありません。したがって、まだ有効だと思い込まず、",{"type":21,"tag":26,"props":48906,"children":48909},{"href":48907,"rel":48908},"https:\u002F\u002Fquantum.cloud.ibm.com\u002Fdocs\u002Fen\u002Fguides\u002Fplans-overview",[7123],[48910],{"type":31,"value":48911},"Open Planページ",{"type":31,"value":48913},"でご自身のアカウントに現在何が適用されているか確認してください。",{"type":21,"tag":22,"props":48915,"children":48916},{},[48917,48919,48925,48927,48932],{"type":31,"value":48918},"システムの構成は逆方向にも変化します。IBMは2026年4月初旬に",{"type":21,"tag":104,"props":48920,"children":48922},{"className":48921},[],[48923],{"type":31,"value":48924},"ibm_torino",{"type":31,"value":48926},"を廃止しました。これはOpen Planの運用における通常の一部です。新しいハードウェアが登場すればシステムが追加され、既存のシステムは耐用年数を終えると廃止されます。だからこそ、下記の",{"type":21,"tag":104,"props":48928,"children":48930},{"className":48929},[],[48931],{"type":31,"value":48883},{"type":31,"value":48933},"のスニペットは、どんな静的な表よりも重要です。この記事にある一覧は現在の状態ではなく、あくまである時点のスナップショットとして扱ってください。",{"type":21,"tag":41,"props":48935,"children":48937},{"id":48936},"利用可能な無料-qpu",[48938],{"type":31,"value":48939},"利用可能な無料 QPU",{"type":21,"tag":22,"props":48941,"children":48942},{},[48943],{"type":31,"value":48944},"2026年半ば時点で、IBMのOpen Planは次のようなシステムへのアクセスを含みます:",{"type":21,"tag":3150,"props":48946,"children":48947},{},[48948,48973],{"type":21,"tag":3154,"props":48949,"children":48950},{},[48951],{"type":21,"tag":3158,"props":48952,"children":48953},{},[48954,48959,48963,48968],{"type":21,"tag":3162,"props":48955,"children":48956},{},[48957],{"type":31,"value":48958},"システム",{"type":21,"tag":3162,"props":48960,"children":48961},{},[48962],{"type":31,"value":25111},{"type":21,"tag":3162,"props":48964,"children":48965},{},[48966],{"type":31,"value":48967},"技術",{"type":21,"tag":3162,"props":48969,"children":48970},{},[48971],{"type":31,"value":48972},"一般的なキュー",{"type":21,"tag":3176,"props":48974,"children":48975},{},[48976,49005,49028],{"type":21,"tag":3158,"props":48977,"children":48978},{},[48979,48990,48995,49000],{"type":21,"tag":3183,"props":48980,"children":48981},{},[48982,48984,48989],{"type":31,"value":48983},"IBM Heron r2(",{"type":21,"tag":104,"props":48985,"children":48987},{"className":48986},[],[48988],{"type":31,"value":48875},{"type":31,"value":39027},{"type":21,"tag":3183,"props":48991,"children":48992},{},[48993],{"type":31,"value":48994},"156",{"type":21,"tag":3183,"props":48996,"children":48997},{},[48998],{"type":31,"value":48999},"Heronプロセッサ、高忠実度",{"type":21,"tag":3183,"props":49001,"children":49002},{},[49003],{"type":31,"value":49004},"30〜120分",{"type":21,"tag":3158,"props":49006,"children":49007},{},[49008,49013,49018,49023],{"type":21,"tag":3183,"props":49009,"children":49010},{},[49011],{"type":31,"value":49012},"IBM Eagle",{"type":21,"tag":3183,"props":49014,"children":49015},{},[49016],{"type":31,"value":49017},"127",{"type":21,"tag":3183,"props":49019,"children":49020},{},[49021],{"type":31,"value":49022},"超伝導",{"type":21,"tag":3183,"props":49024,"children":49025},{},[49026],{"type":31,"value":49027},"10〜60分",{"type":21,"tag":3158,"props":49029,"children":49030},{},[49031,49036,49041,49046],{"type":21,"tag":3183,"props":49032,"children":49033},{},[49034],{"type":31,"value":49035},"IBM Heron r1",{"type":21,"tag":3183,"props":49037,"children":49038},{},[49039],{"type":31,"value":49040},"133",{"type":21,"tag":3183,"props":49042,"children":49043},{},[49044],{"type":31,"value":49045},"Heron プロセッサ",{"type":21,"tag":3183,"props":49047,"children":49048},{},[49049],{"type":31,"value":49004},{"type":21,"tag":22,"props":49051,"children":49052},{},[49053],{"type":31,"value":49054},"IBMは定期的にシステムを廃止・追加しています。この表はあくまでスナップショットであり、保証ではありません。現在のリストを確認するには Qiskit Runtime サービスを使用してください:",{"type":21,"tag":129,"props":49056,"children":49058},{"className":131,"code":49057,"language":133,"meta":7,"style":7},"from qiskit_ibm_runtime import QiskitRuntimeService\n\nservice = QiskitRuntimeService(channel=\"ibm_quantum\")\nbackends = service.backends(\n    operational=True,\n    simulator=False,\n    min_num_qubits=1\n)\nfor b in backends:\n    print(f\"{b.name}: {b.num_qubits} qubits, status: {b.status().status_msg}\")\n",[49059],{"type":21,"tag":104,"props":49060,"children":49061},{"__ignoreMap":7},[49062,49081,49088,49119,49136,49156,49176,49193,49200,49220],{"type":21,"tag":139,"props":49063,"children":49064},{"class":141,"line":142},[49065,49069,49073,49077],{"type":21,"tag":139,"props":49066,"children":49067},{"style":146},[49068],{"type":31,"value":149},{"type":21,"tag":139,"props":49070,"children":49071},{"style":152},[49072],{"type":31,"value":9705},{"type":21,"tag":139,"props":49074,"children":49075},{"style":146},[49076],{"type":31,"value":160},{"type":21,"tag":139,"props":49078,"children":49079},{"style":152},[49080],{"type":31,"value":9714},{"type":21,"tag":139,"props":49082,"children":49083},{"class":141,"line":168},[49084],{"type":21,"tag":139,"props":49085,"children":49086},{"emptyLinePlaceholder":194},[49087],{"type":31,"value":197},{"type":21,"tag":139,"props":49089,"children":49090},{"class":141,"line":190},[49091,49095,49099,49103,49107,49111,49115],{"type":21,"tag":139,"props":49092,"children":49093},{"style":152},[49094],{"type":31,"value":4637},{"type":21,"tag":139,"props":49096,"children":49097},{"style":146},[49098],{"type":31,"value":211},{"type":21,"tag":139,"props":49100,"children":49101},{"style":152},[49102],{"type":31,"value":9737},{"type":21,"tag":139,"props":49104,"children":49105},{"style":923},[49106],{"type":31,"value":9742},{"type":21,"tag":139,"props":49108,"children":49109},{"style":146},[49110],{"type":31,"value":211},{"type":21,"tag":139,"props":49112,"children":49113},{"style":262},[49114],{"type":31,"value":9751},{"type":21,"tag":139,"props":49116,"children":49117},{"style":152},[49118],{"type":31,"value":270},{"type":21,"tag":139,"props":49120,"children":49121},{"class":141,"line":200},[49122,49127,49131],{"type":21,"tag":139,"props":49123,"children":49124},{"style":152},[49125],{"type":31,"value":49126},"backends ",{"type":21,"tag":139,"props":49128,"children":49129},{"style":146},[49130],{"type":31,"value":211},{"type":21,"tag":139,"props":49132,"children":49133},{"style":152},[49134],{"type":31,"value":49135}," service.backends(\n",{"type":21,"tag":139,"props":49137,"children":49138},{"class":141,"line":226},[49139,49144,49148,49152],{"type":21,"tag":139,"props":49140,"children":49141},{"style":923},[49142],{"type":31,"value":49143},"    operational",{"type":21,"tag":139,"props":49145,"children":49146},{"style":146},[49147],{"type":31,"value":211},{"type":21,"tag":139,"props":49149,"children":49150},{"style":214},[49151],{"type":31,"value":8664},{"type":21,"tag":139,"props":49153,"children":49154},{"style":152},[49155],{"type":31,"value":4811},{"type":21,"tag":139,"props":49157,"children":49158},{"class":141,"line":234},[49159,49164,49168,49172],{"type":21,"tag":139,"props":49160,"children":49161},{"style":923},[49162],{"type":31,"value":49163},"    simulator",{"type":21,"tag":139,"props":49165,"children":49166},{"style":146},[49167],{"type":31,"value":211},{"type":21,"tag":139,"props":49169,"children":49170},{"style":214},[49171],{"type":31,"value":9820},{"type":21,"tag":139,"props":49173,"children":49174},{"style":152},[49175],{"type":31,"value":4811},{"type":21,"tag":139,"props":49177,"children":49178},{"class":141,"line":273},[49179,49184,49188],{"type":21,"tag":139,"props":49180,"children":49181},{"style":923},[49182],{"type":31,"value":49183},"    min_num_qubits",{"type":21,"tag":139,"props":49185,"children":49186},{"style":146},[49187],{"type":31,"value":211},{"type":21,"tag":139,"props":49189,"children":49190},{"style":214},[49191],{"type":31,"value":49192},"1\n",{"type":21,"tag":139,"props":49194,"children":49195},{"class":141,"line":309},[49196],{"type":21,"tag":139,"props":49197,"children":49198},{"style":152},[49199],{"type":31,"value":270},{"type":21,"tag":139,"props":49201,"children":49202},{"class":141,"line":16},[49203,49207,49211,49215],{"type":21,"tag":139,"props":49204,"children":49205},{"style":146},[49206],{"type":31,"value":1486},{"type":21,"tag":139,"props":49208,"children":49209},{"style":152},[49210],{"type":31,"value":26795},{"type":21,"tag":139,"props":49212,"children":49213},{"style":146},[49214],{"type":31,"value":1496},{"type":21,"tag":139,"props":49216,"children":49217},{"style":152},[49218],{"type":31,"value":49219}," backends:\n",{"type":21,"tag":139,"props":49221,"children":49222},{"class":141,"line":361},[49223,49227,49231,49235,49239,49243,49248,49252,49256,49260,49265,49269,49274,49278,49283,49287,49291],{"type":21,"tag":139,"props":49224,"children":49225},{"style":214},[49226],{"type":31,"value":6212},{"type":21,"tag":139,"props":49228,"children":49229},{"style":152},[49230],{"type":31,"value":953},{"type":21,"tag":139,"props":49232,"children":49233},{"style":146},[49234],{"type":31,"value":7524},{"type":21,"tag":139,"props":49236,"children":49237},{"style":262},[49238],{"type":31,"value":15370},{"type":21,"tag":139,"props":49240,"children":49241},{"style":214},[49242],{"type":31,"value":7534},{"type":21,"tag":139,"props":49244,"children":49245},{"style":152},[49246],{"type":31,"value":49247},"b.name",{"type":21,"tag":139,"props":49249,"children":49250},{"style":214},[49251],{"type":31,"value":7543},{"type":21,"tag":139,"props":49253,"children":49254},{"style":262},[49255],{"type":31,"value":1147},{"type":21,"tag":139,"props":49257,"children":49258},{"style":214},[49259],{"type":31,"value":7534},{"type":21,"tag":139,"props":49261,"children":49262},{"style":152},[49263],{"type":31,"value":49264},"b.num_qubits",{"type":21,"tag":139,"props":49266,"children":49267},{"style":214},[49268],{"type":31,"value":7543},{"type":21,"tag":139,"props":49270,"children":49271},{"style":262},[49272],{"type":31,"value":49273}," qubits, status: ",{"type":21,"tag":139,"props":49275,"children":49276},{"style":214},[49277],{"type":31,"value":7534},{"type":21,"tag":139,"props":49279,"children":49280},{"style":152},[49281],{"type":31,"value":49282},"b.status().status_msg",{"type":21,"tag":139,"props":49284,"children":49285},{"style":214},[49286],{"type":31,"value":7543},{"type":21,"tag":139,"props":49288,"children":49289},{"style":262},[49290],{"type":31,"value":15370},{"type":21,"tag":139,"props":49292,"children":49293},{"style":152},[49294],{"type":31,"value":270},{"type":21,"tag":41,"props":49296,"children":49298},{"id":49297},"_10分でのセットアップ",[49299],{"type":31,"value":49300},"10分でのセットアップ",{"type":21,"tag":422,"props":49302,"children":49304},{"id":49303},"ステップ1-無料アカウントの作成",[49305],{"type":31,"value":49306},"ステップ1: 無料アカウントの作成",{"type":21,"tag":22,"props":49308,"children":49309},{},[49310,49315],{"type":21,"tag":26,"props":49311,"children":49313},{"href":42387,"rel":49312},[7123],[49314],{"type":31,"value":42391},{"type":31,"value":49316}," にアクセスし、無料の IBM ID を作成します。支払い情報は不要です。",{"type":21,"tag":422,"props":49318,"children":49320},{"id":49319},"ステップ2-sdk-のインストール",[49321],{"type":31,"value":49322},"ステップ2: SDK のインストール",{"type":21,"tag":129,"props":49324,"children":49326},{"className":4499,"code":49325,"language":4498,"meta":7,"style":7},"pip install qiskit qiskit-ibm-runtime\n",[49327],{"type":21,"tag":104,"props":49328,"children":49329},{"__ignoreMap":7},[49330],{"type":21,"tag":139,"props":49331,"children":49332},{"class":141,"line":142},[49333,49337,49341,49345],{"type":21,"tag":139,"props":49334,"children":49335},{"style":4509},[49336],{"type":31,"value":4512},{"type":21,"tag":139,"props":49338,"children":49339},{"style":262},[49340],{"type":31,"value":4517},{"type":21,"tag":139,"props":49342,"children":49343},{"style":262},[49344],{"type":31,"value":33605},{"type":21,"tag":139,"props":49346,"children":49347},{"style":262},[49348],{"type":31,"value":49349}," qiskit-ibm-runtime\n",{"type":21,"tag":422,"props":49351,"children":49353},{"id":49352},"ステップ3-認証情報の保存",[49354],{"type":31,"value":49355},"ステップ3: 認証情報の保存",{"type":21,"tag":22,"props":49357,"children":49358},{},[49359],{"type":31,"value":49360},"IBM Quantum ダッシュボードにログインした後、Account ページから API トークンをコピーします。",{"type":21,"tag":129,"props":49362,"children":49364},{"className":131,"code":49363,"language":133,"meta":7,"style":7},"from qiskit_ibm_runtime import QiskitRuntimeService\n\n# Run this once to save your token locally\nQiskitRuntimeService.save_account(\n    channel=\"ibm_quantum\",\n    token=\"YOUR_API_TOKEN_HERE\",\n    overwrite=True\n)\n",[49365],{"type":21,"tag":104,"props":49366,"children":49367},{"__ignoreMap":7},[49368,49387,49394,49402,49409,49428,49448,49465],{"type":21,"tag":139,"props":49369,"children":49370},{"class":141,"line":142},[49371,49375,49379,49383],{"type":21,"tag":139,"props":49372,"children":49373},{"style":146},[49374],{"type":31,"value":149},{"type":21,"tag":139,"props":49376,"children":49377},{"style":152},[49378],{"type":31,"value":9705},{"type":21,"tag":139,"props":49380,"children":49381},{"style":146},[49382],{"type":31,"value":160},{"type":21,"tag":139,"props":49384,"children":49385},{"style":152},[49386],{"type":31,"value":9714},{"type":21,"tag":139,"props":49388,"children":49389},{"class":141,"line":168},[49390],{"type":21,"tag":139,"props":49391,"children":49392},{"emptyLinePlaceholder":194},[49393],{"type":31,"value":197},{"type":21,"tag":139,"props":49395,"children":49396},{"class":141,"line":190},[49397],{"type":21,"tag":139,"props":49398,"children":49399},{"style":220},[49400],{"type":31,"value":49401},"# Run this once to save your token locally\n",{"type":21,"tag":139,"props":49403,"children":49404},{"class":141,"line":200},[49405],{"type":21,"tag":139,"props":49406,"children":49407},{"style":152},[49408],{"type":31,"value":42444},{"type":21,"tag":139,"props":49410,"children":49411},{"class":141,"line":226},[49412,49416,49420,49424],{"type":21,"tag":139,"props":49413,"children":49414},{"style":923},[49415],{"type":31,"value":42452},{"type":21,"tag":139,"props":49417,"children":49418},{"style":146},[49419],{"type":31,"value":211},{"type":21,"tag":139,"props":49421,"children":49422},{"style":262},[49423],{"type":31,"value":9751},{"type":21,"tag":139,"props":49425,"children":49426},{"style":152},[49427],{"type":31,"value":4811},{"type":21,"tag":139,"props":49429,"children":49430},{"class":141,"line":234},[49431,49435,49439,49444],{"type":21,"tag":139,"props":49432,"children":49433},{"style":923},[49434],{"type":31,"value":42472},{"type":21,"tag":139,"props":49436,"children":49437},{"style":146},[49438],{"type":31,"value":211},{"type":21,"tag":139,"props":49440,"children":49441},{"style":262},[49442],{"type":31,"value":49443},"\"YOUR_API_TOKEN_HERE\"",{"type":21,"tag":139,"props":49445,"children":49446},{"style":152},[49447],{"type":31,"value":4811},{"type":21,"tag":139,"props":49449,"children":49450},{"class":141,"line":273},[49451,49456,49460],{"type":21,"tag":139,"props":49452,"children":49453},{"style":923},[49454],{"type":31,"value":49455},"    overwrite",{"type":21,"tag":139,"props":49457,"children":49458},{"style":146},[49459],{"type":31,"value":211},{"type":21,"tag":139,"props":49461,"children":49462},{"style":214},[49463],{"type":31,"value":49464},"True\n",{"type":21,"tag":139,"props":49466,"children":49467},{"class":141,"line":309},[49468],{"type":21,"tag":139,"props":49469,"children":49470},{"style":152},[49471],{"type":31,"value":270},{"type":21,"tag":22,"props":49473,"children":49474},{},[49475,49477,49483],{"type":31,"value":49476},"認証情報は ",{"type":21,"tag":104,"props":49478,"children":49480},{"className":49479},[],[49481],{"type":31,"value":49482},"~\u002F.qiskit\u002Fqiskit-ibm.json",{"type":31,"value":49484}," に保存されます。次回以降はこの操作は不要です。",{"type":21,"tag":422,"props":49486,"children":49488},{"id":49487},"ステップ4-最初のジョブを投入する",[49489],{"type":31,"value":49490},"ステップ4: 最初のジョブを投入する",{"type":21,"tag":129,"props":49492,"children":49494},{"className":131,"code":49493,"language":133,"meta":7,"style":7},"from qiskit import QuantumCircuit\nfrom qiskit.transpiler.preset_passmanagers import generate_preset_pass_manager\nfrom qiskit_ibm_runtime import QiskitRuntimeService, SamplerV2 as Sampler\n\n# Build a Bell state\nqc = QuantumCircuit(2, 2)\nqc.h(0)\nqc.cx(0, 1)\nqc.measure([0, 1], [0, 1])\n\n# Connect and pick the least-busy free QPU\nservice = QiskitRuntimeService(channel=\"ibm_quantum\")\nbackend = service.least_busy(\n    operational=True,\n    simulator=False,\n    min_num_qubits=2\n)\nprint(f\"Submitting to: {backend.name}\")\n\n# Transpile for the target device\npm = generate_preset_pass_manager(backend=backend, optimization_level=1)\nisa_qc = pm.run(qc)\n\n# Submit\nsampler = Sampler(mode=backend)\njob = sampler.run([isa_qc], shots=1024)\n\nprint(f\"Job ID: {job.job_id()}\")\nprint(f\"Status: {job.status()}\")\nresult = job.result()\nprint(result[0].data.c.get_counts())\n",[49495],{"type":21,"tag":104,"props":49496,"children":49497},{"__ignoreMap":7},[49498,49517,49538,49566,49573,49581,49612,49627,49650,49689,49696,49704,49735,49751,49770,49789,49805,49812,49852,49859,49867,49911,49928,49935,49943,49973,50005,50012,50053,50093,50108],{"type":21,"tag":139,"props":49499,"children":49500},{"class":141,"line":142},[49501,49505,49509,49513],{"type":21,"tag":139,"props":49502,"children":49503},{"style":146},[49504],{"type":31,"value":149},{"type":21,"tag":139,"props":49506,"children":49507},{"style":152},[49508],{"type":31,"value":155},{"type":21,"tag":139,"props":49510,"children":49511},{"style":146},[49512],{"type":31,"value":160},{"type":21,"tag":139,"props":49514,"children":49515},{"style":152},[49516],{"type":31,"value":6269},{"type":21,"tag":139,"props":49518,"children":49519},{"class":141,"line":168},[49520,49524,49529,49533],{"type":21,"tag":139,"props":49521,"children":49522},{"style":146},[49523],{"type":31,"value":149},{"type":21,"tag":139,"props":49525,"children":49526},{"style":152},[49527],{"type":31,"value":49528}," qiskit.transpiler.preset_passmanagers ",{"type":21,"tag":139,"props":49530,"children":49531},{"style":146},[49532],{"type":31,"value":160},{"type":21,"tag":139,"props":49534,"children":49535},{"style":152},[49536],{"type":31,"value":49537}," generate_preset_pass_manager\n",{"type":21,"tag":139,"props":49539,"children":49540},{"class":141,"line":190},[49541,49545,49549,49553,49558,49562],{"type":21,"tag":139,"props":49542,"children":49543},{"style":146},[49544],{"type":31,"value":149},{"type":21,"tag":139,"props":49546,"children":49547},{"style":152},[49548],{"type":31,"value":9705},{"type":21,"tag":139,"props":49550,"children":49551},{"style":146},[49552],{"type":31,"value":160},{"type":21,"tag":139,"props":49554,"children":49555},{"style":152},[49556],{"type":31,"value":49557}," QiskitRuntimeService, SamplerV2 ",{"type":21,"tag":139,"props":49559,"children":49560},{"style":146},[49561],{"type":31,"value":5343},{"type":21,"tag":139,"props":49563,"children":49564},{"style":152},[49565],{"type":31,"value":12968},{"type":21,"tag":139,"props":49567,"children":49568},{"class":141,"line":200},[49569],{"type":21,"tag":139,"props":49570,"children":49571},{"emptyLinePlaceholder":194},[49572],{"type":31,"value":197},{"type":21,"tag":139,"props":49574,"children":49575},{"class":141,"line":226},[49576],{"type":21,"tag":139,"props":49577,"children":49578},{"style":220},[49579],{"type":31,"value":49580},"# Build a Bell state\n",{"type":21,"tag":139,"props":49582,"children":49583},{"class":141,"line":234},[49584,49588,49592,49596,49600,49604,49608],{"type":21,"tag":139,"props":49585,"children":49586},{"style":152},[49587],{"type":31,"value":349},{"type":21,"tag":139,"props":49589,"children":49590},{"style":146},[49591],{"type":31,"value":211},{"type":21,"tag":139,"props":49593,"children":49594},{"style":152},[49595],{"type":31,"value":6292},{"type":21,"tag":139,"props":49597,"children":49598},{"style":214},[49599],{"type":31,"value":293},{"type":21,"tag":139,"props":49601,"children":49602},{"style":152},[49603],{"type":31,"value":259},{"type":21,"tag":139,"props":49605,"children":49606},{"style":214},[49607],{"type":31,"value":293},{"type":21,"tag":139,"props":49609,"children":49610},{"style":152},[49611],{"type":31,"value":270},{"type":21,"tag":139,"props":49613,"children":49614},{"class":141,"line":273},[49615,49619,49623],{"type":21,"tag":139,"props":49616,"children":49617},{"style":152},[49618],{"type":31,"value":442},{"type":21,"tag":139,"props":49620,"children":49621},{"style":214},[49622],{"type":31,"value":407},{"type":21,"tag":139,"props":49624,"children":49625},{"style":152},[49626],{"type":31,"value":270},{"type":21,"tag":139,"props":49628,"children":49629},{"class":141,"line":309},[49630,49634,49638,49642,49646],{"type":21,"tag":139,"props":49631,"children":49632},{"style":152},[49633],{"type":31,"value":458},{"type":21,"tag":139,"props":49635,"children":49636},{"style":214},[49637],{"type":31,"value":407},{"type":21,"tag":139,"props":49639,"children":49640},{"style":152},[49641],{"type":31,"value":259},{"type":21,"tag":139,"props":49643,"children":49644},{"style":214},[49645],{"type":31,"value":328},{"type":21,"tag":139,"props":49647,"children":49648},{"style":152},[49649],{"type":31,"value":270},{"type":21,"tag":139,"props":49651,"children":49652},{"class":141,"line":16},[49653,49657,49661,49665,49669,49673,49677,49681,49685],{"type":21,"tag":139,"props":49654,"children":49655},{"style":152},[49656],{"type":31,"value":10195},{"type":21,"tag":139,"props":49658,"children":49659},{"style":214},[49660],{"type":31,"value":407},{"type":21,"tag":139,"props":49662,"children":49663},{"style":152},[49664],{"type":31,"value":259},{"type":21,"tag":139,"props":49666,"children":49667},{"style":214},[49668],{"type":31,"value":328},{"type":21,"tag":139,"props":49670,"children":49671},{"style":152},[49672],{"type":31,"value":6404},{"type":21,"tag":139,"props":49674,"children":49675},{"style":214},[49676],{"type":31,"value":407},{"type":21,"tag":139,"props":49678,"children":49679},{"style":152},[49680],{"type":31,"value":259},{"type":21,"tag":139,"props":49682,"children":49683},{"style":214},[49684],{"type":31,"value":328},{"type":21,"tag":139,"props":49686,"children":49687},{"style":152},[49688],{"type":31,"value":599},{"type":21,"tag":139,"props":49690,"children":49691},{"class":141,"line":361},[49692],{"type":21,"tag":139,"props":49693,"children":49694},{"emptyLinePlaceholder":194},[49695],{"type":31,"value":197},{"type":21,"tag":139,"props":49697,"children":49698},{"class":141,"line":369},[49699],{"type":21,"tag":139,"props":49700,"children":49701},{"style":220},[49702],{"type":31,"value":49703},"# Connect and pick the least-busy free QPU\n",{"type":21,"tag":139,"props":49705,"children":49706},{"class":141,"line":378},[49707,49711,49715,49719,49723,49727,49731],{"type":21,"tag":139,"props":49708,"children":49709},{"style":152},[49710],{"type":31,"value":4637},{"type":21,"tag":139,"props":49712,"children":49713},{"style":146},[49714],{"type":31,"value":211},{"type":21,"tag":139,"props":49716,"children":49717},{"style":152},[49718],{"type":31,"value":9737},{"type":21,"tag":139,"props":49720,"children":49721},{"style":923},[49722],{"type":31,"value":9742},{"type":21,"tag":139,"props":49724,"children":49725},{"style":146},[49726],{"type":31,"value":211},{"type":21,"tag":139,"props":49728,"children":49729},{"style":262},[49730],{"type":31,"value":9751},{"type":21,"tag":139,"props":49732,"children":49733},{"style":152},[49734],{"type":31,"value":270},{"type":21,"tag":139,"props":49736,"children":49737},{"class":141,"line":387},[49738,49742,49746],{"type":21,"tag":139,"props":49739,"children":49740},{"style":152},[49741],{"type":31,"value":6443},{"type":21,"tag":139,"props":49743,"children":49744},{"style":146},[49745],{"type":31,"value":211},{"type":21,"tag":139,"props":49747,"children":49748},{"style":152},[49749],{"type":31,"value":49750}," service.least_busy(\n",{"type":21,"tag":139,"props":49752,"children":49753},{"class":141,"line":396},[49754,49758,49762,49766],{"type":21,"tag":139,"props":49755,"children":49756},{"style":923},[49757],{"type":31,"value":49143},{"type":21,"tag":139,"props":49759,"children":49760},{"style":146},[49761],{"type":31,"value":211},{"type":21,"tag":139,"props":49763,"children":49764},{"style":214},[49765],{"type":31,"value":8664},{"type":21,"tag":139,"props":49767,"children":49768},{"style":152},[49769],{"type":31,"value":4811},{"type":21,"tag":139,"props":49771,"children":49772},{"class":141,"line":414},[49773,49777,49781,49785],{"type":21,"tag":139,"props":49774,"children":49775},{"style":923},[49776],{"type":31,"value":49163},{"type":21,"tag":139,"props":49778,"children":49779},{"style":146},[49780],{"type":31,"value":211},{"type":21,"tag":139,"props":49782,"children":49783},{"style":214},[49784],{"type":31,"value":9820},{"type":21,"tag":139,"props":49786,"children":49787},{"style":152},[49788],{"type":31,"value":4811},{"type":21,"tag":139,"props":49790,"children":49791},{"class":141,"line":12589},[49792,49796,49800],{"type":21,"tag":139,"props":49793,"children":49794},{"style":923},[49795],{"type":31,"value":49183},{"type":21,"tag":139,"props":49797,"children":49798},{"style":146},[49799],{"type":31,"value":211},{"type":21,"tag":139,"props":49801,"children":49802},{"style":214},[49803],{"type":31,"value":49804},"2\n",{"type":21,"tag":139,"props":49806,"children":49807},{"class":141,"line":12606},[49808],{"type":21,"tag":139,"props":49809,"children":49810},{"style":152},[49811],{"type":31,"value":270},{"type":21,"tag":139,"props":49813,"children":49814},{"class":141,"line":12622},[49815,49819,49823,49827,49832,49836,49840,49844,49848],{"type":21,"tag":139,"props":49816,"children":49817},{"style":214},[49818],{"type":31,"value":948},{"type":21,"tag":139,"props":49820,"children":49821},{"style":152},[49822],{"type":31,"value":953},{"type":21,"tag":139,"props":49824,"children":49825},{"style":146},[49826],{"type":31,"value":7524},{"type":21,"tag":139,"props":49828,"children":49829},{"style":262},[49830],{"type":31,"value":49831},"\"Submitting to: ",{"type":21,"tag":139,"props":49833,"children":49834},{"style":214},[49835],{"type":31,"value":7534},{"type":21,"tag":139,"props":49837,"children":49838},{"style":152},[49839],{"type":31,"value":25299},{"type":21,"tag":139,"props":49841,"children":49842},{"style":214},[49843],{"type":31,"value":7543},{"type":21,"tag":139,"props":49845,"children":49846},{"style":262},[49847],{"type":31,"value":15370},{"type":21,"tag":139,"props":49849,"children":49850},{"style":152},[49851],{"type":31,"value":270},{"type":21,"tag":139,"props":49853,"children":49854},{"class":141,"line":12630},[49855],{"type":21,"tag":139,"props":49856,"children":49857},{"emptyLinePlaceholder":194},[49858],{"type":31,"value":197},{"type":21,"tag":139,"props":49860,"children":49861},{"class":141,"line":17747},[49862],{"type":21,"tag":139,"props":49863,"children":49864},{"style":220},[49865],{"type":31,"value":49866},"# Transpile for the target device\n",{"type":21,"tag":139,"props":49868,"children":49869},{"class":141,"line":17765},[49870,49874,49878,49883,49887,49891,49895,49899,49903,49907],{"type":21,"tag":139,"props":49871,"children":49872},{"style":152},[49873],{"type":31,"value":27714},{"type":21,"tag":139,"props":49875,"children":49876},{"style":146},[49877],{"type":31,"value":211},{"type":21,"tag":139,"props":49879,"children":49880},{"style":152},[49881],{"type":31,"value":49882}," generate_preset_pass_manager(",{"type":21,"tag":139,"props":49884,"children":49885},{"style":923},[49886],{"type":31,"value":10987},{"type":21,"tag":139,"props":49888,"children":49889},{"style":146},[49890],{"type":31,"value":211},{"type":21,"tag":139,"props":49892,"children":49893},{"style":152},[49894],{"type":31,"value":11253},{"type":21,"tag":139,"props":49896,"children":49897},{"style":923},[49898],{"type":31,"value":28141},{"type":21,"tag":139,"props":49900,"children":49901},{"style":146},[49902],{"type":31,"value":211},{"type":21,"tag":139,"props":49904,"children":49905},{"style":214},[49906],{"type":31,"value":328},{"type":21,"tag":139,"props":49908,"children":49909},{"style":152},[49910],{"type":31,"value":270},{"type":21,"tag":139,"props":49912,"children":49913},{"class":141,"line":17790},[49914,49919,49923],{"type":21,"tag":139,"props":49915,"children":49916},{"style":152},[49917],{"type":31,"value":49918},"isa_qc ",{"type":21,"tag":139,"props":49920,"children":49921},{"style":146},[49922],{"type":31,"value":211},{"type":21,"tag":139,"props":49924,"children":49925},{"style":152},[49926],{"type":31,"value":49927}," pm.run(qc)\n",{"type":21,"tag":139,"props":49929,"children":49930},{"class":141,"line":17817},[49931],{"type":21,"tag":139,"props":49932,"children":49933},{"emptyLinePlaceholder":194},[49934],{"type":31,"value":197},{"type":21,"tag":139,"props":49936,"children":49937},{"class":141,"line":17843},[49938],{"type":21,"tag":139,"props":49939,"children":49940},{"style":220},[49941],{"type":31,"value":49942},"# Submit\n",{"type":21,"tag":139,"props":49944,"children":49945},{"class":141,"line":17852},[49946,49950,49954,49959,49964,49968],{"type":21,"tag":139,"props":49947,"children":49948},{"style":152},[49949],{"type":31,"value":1690},{"type":21,"tag":139,"props":49951,"children":49952},{"style":146},[49953],{"type":31,"value":211},{"type":21,"tag":139,"props":49955,"children":49956},{"style":152},[49957],{"type":31,"value":49958}," Sampler(",{"type":21,"tag":139,"props":49960,"children":49961},{"style":923},[49962],{"type":31,"value":49963},"mode",{"type":21,"tag":139,"props":49965,"children":49966},{"style":146},[49967],{"type":31,"value":211},{"type":21,"tag":139,"props":49969,"children":49970},{"style":152},[49971],{"type":31,"value":49972},"backend)\n",{"type":21,"tag":139,"props":49974,"children":49975},{"class":141,"line":17864},[49976,49980,49984,49989,49993,49997,50001],{"type":21,"tag":139,"props":49977,"children":49978},{"style":152},[49979],{"type":31,"value":4981},{"type":21,"tag":139,"props":49981,"children":49982},{"style":146},[49983],{"type":31,"value":211},{"type":21,"tag":139,"props":49985,"children":49986},{"style":152},[49987],{"type":31,"value":49988}," sampler.run([isa_qc], ",{"type":21,"tag":139,"props":49990,"children":49991},{"style":923},[49992],{"type":31,"value":926},{"type":21,"tag":139,"props":49994,"children":49995},{"style":146},[49996],{"type":31,"value":211},{"type":21,"tag":139,"props":49998,"children":49999},{"style":214},[50000],{"type":31,"value":24182},{"type":21,"tag":139,"props":50002,"children":50003},{"style":152},[50004],{"type":31,"value":270},{"type":21,"tag":139,"props":50006,"children":50007},{"class":141,"line":17872},[50008],{"type":21,"tag":139,"props":50009,"children":50010},{"emptyLinePlaceholder":194},[50011],{"type":31,"value":197},{"type":21,"tag":139,"props":50013,"children":50014},{"class":141,"line":17925},[50015,50019,50023,50027,50032,50036,50041,50045,50049],{"type":21,"tag":139,"props":50016,"children":50017},{"style":214},[50018],{"type":31,"value":948},{"type":21,"tag":139,"props":50020,"children":50021},{"style":152},[50022],{"type":31,"value":953},{"type":21,"tag":139,"props":50024,"children":50025},{"style":146},[50026],{"type":31,"value":7524},{"type":21,"tag":139,"props":50028,"children":50029},{"style":262},[50030],{"type":31,"value":50031},"\"Job ID: ",{"type":21,"tag":139,"props":50033,"children":50034},{"style":214},[50035],{"type":31,"value":7534},{"type":21,"tag":139,"props":50037,"children":50038},{"style":152},[50039],{"type":31,"value":50040},"job.job_id()",{"type":21,"tag":139,"props":50042,"children":50043},{"style":214},[50044],{"type":31,"value":7543},{"type":21,"tag":139,"props":50046,"children":50047},{"style":262},[50048],{"type":31,"value":15370},{"type":21,"tag":139,"props":50050,"children":50051},{"style":152},[50052],{"type":31,"value":270},{"type":21,"tag":139,"props":50054,"children":50055},{"class":141,"line":26897},[50056,50060,50064,50068,50073,50077,50081,50085,50089],{"type":21,"tag":139,"props":50057,"children":50058},{"style":214},[50059],{"type":31,"value":948},{"type":21,"tag":139,"props":50061,"children":50062},{"style":152},[50063],{"type":31,"value":953},{"type":21,"tag":139,"props":50065,"children":50066},{"style":146},[50067],{"type":31,"value":7524},{"type":21,"tag":139,"props":50069,"children":50070},{"style":262},[50071],{"type":31,"value":50072},"\"Status: ",{"type":21,"tag":139,"props":50074,"children":50075},{"style":214},[50076],{"type":31,"value":7534},{"type":21,"tag":139,"props":50078,"children":50079},{"style":152},[50080],{"type":31,"value":10467},{"type":21,"tag":139,"props":50082,"children":50083},{"style":214},[50084],{"type":31,"value":7543},{"type":21,"tag":139,"props":50086,"children":50087},{"style":262},[50088],{"type":31,"value":15370},{"type":21,"tag":139,"props":50090,"children":50091},{"style":152},[50092],{"type":31,"value":270},{"type":21,"tag":139,"props":50094,"children":50095},{"class":141,"line":26942},[50096,50100,50104],{"type":21,"tag":139,"props":50097,"children":50098},{"style":152},[50099],{"type":31,"value":4868},{"type":21,"tag":139,"props":50101,"children":50102},{"style":146},[50103],{"type":31,"value":211},{"type":21,"tag":139,"props":50105,"children":50106},{"style":152},[50107],{"type":31,"value":6515},{"type":21,"tag":139,"props":50109,"children":50110},{"class":141,"line":26955},[50111,50115,50120,50124],{"type":21,"tag":139,"props":50112,"children":50113},{"style":214},[50114],{"type":31,"value":948},{"type":21,"tag":139,"props":50116,"children":50117},{"style":152},[50118],{"type":31,"value":50119},"(result[",{"type":21,"tag":139,"props":50121,"children":50122},{"style":214},[50123],{"type":31,"value":407},{"type":21,"tag":139,"props":50125,"children":50126},{"style":152},[50127],{"type":31,"value":50128},"].data.c.get_counts())\n",{"type":21,"tag":41,"props":50130,"children":50132},{"id":50131},"キュー待ち時間を理解する",[50133],{"type":31,"value":50131},{"type":21,"tag":22,"props":50135,"children":50136},{},[50137],{"type":31,"value":50138},"キュー待ち時間は、無料プランで最もよくある不満の種です。何が起きているのかを説明します:",{"type":21,"tag":1112,"props":50140,"children":50141},{},[50142,50147,50160],{"type":21,"tag":72,"props":50143,"children":50144},{},[50145],{"type":31,"value":50146},"あなたは世界中の他のすべての Open Plan ユーザーと QPU を共有しています",{"type":21,"tag":72,"props":50148,"children":50149},{},[50150,50152,50158],{"type":31,"value":50151},"ジョブはシステムごとにキューに入れられます。",{"type":21,"tag":104,"props":50153,"children":50155},{"className":50154},[],[50156],{"type":31,"value":50157},"least_busy()",{"type":31,"value":50159}," は最も待ち時間の短いものを見つけるのに役立ちます",{"type":21,"tag":72,"props":50161,"children":50162},{},[50163],{"type":31,"value":50164},"一般的な待ち時間: システムの負荷に応じて5分から2時間",{"type":21,"tag":22,"props":50166,"children":50167},{},[50168],{"type":21,"tag":16802,"props":50169,"children":50170},{},[50171],{"type":31,"value":50172},"キュー待ち時間を最小限に抑えるヒント:",{"type":21,"tag":1112,"props":50174,"children":50175},{},[50176,50181,50194,50199],{"type":21,"tag":72,"props":50177,"children":50178},{},[50179],{"type":31,"value":50180},"オフピーク時間帯に実行する(ヨーロッパの朝 = アメリカの夜)",{"type":21,"tag":72,"props":50182,"children":50183},{},[50184,50186,50192],{"type":31,"value":50185},"特定のシステムを指定するのではなく ",{"type":21,"tag":104,"props":50187,"children":50189},{"className":50188},[],[50190],{"type":31,"value":50191},"service.least_busy()",{"type":31,"value":50193}," を使う",{"type":21,"tag":72,"props":50195,"children":50196},{},[50197],{"type":31,"value":50198},"開発時にはローカルで Aer シミュレータを使用し、最終検証のときだけ実機に投入する",{"type":21,"tag":72,"props":50200,"children":50201},{},[50202],{"type":31,"value":50203},"SamplerV2 のリスト入力を使って複数の回路を1つのジョブにまとめる",{"type":21,"tag":41,"props":50205,"children":50207},{"id":50206},"代わりに無料のクラウドシミュレータを使う",[50208],{"type":31,"value":50206},{"type":21,"tag":22,"props":50210,"children":50211},{},[50212],{"type":31,"value":50213},"ほとんどの開発作業では、IBM のクラウドホスト型シミュレータは実機のキューに並ぶよりも高速です:",{"type":21,"tag":129,"props":50215,"children":50217},{"className":131,"code":50216,"language":133,"meta":7,"style":7},"# IBM cloud QASM simulator (up to 32 qubits, no queue)\nbackend = service.backend(\"ibmq_qasm_simulator\")\n\n# Or use the Statevector simulator (exact simulation)\nbackend = service.backend(\"simulator_statevector\")\n",[50218],{"type":21,"tag":104,"props":50219,"children":50220},{"__ignoreMap":7},[50221,50229,50254,50261,50269],{"type":21,"tag":139,"props":50222,"children":50223},{"class":141,"line":142},[50224],{"type":21,"tag":139,"props":50225,"children":50226},{"style":220},[50227],{"type":31,"value":50228},"# IBM cloud QASM simulator (up to 32 qubits, no queue)\n",{"type":21,"tag":139,"props":50230,"children":50231},{"class":141,"line":168},[50232,50236,50240,50245,50250],{"type":21,"tag":139,"props":50233,"children":50234},{"style":152},[50235],{"type":31,"value":6443},{"type":21,"tag":139,"props":50237,"children":50238},{"style":146},[50239],{"type":31,"value":211},{"type":21,"tag":139,"props":50241,"children":50242},{"style":152},[50243],{"type":31,"value":50244}," service.backend(",{"type":21,"tag":139,"props":50246,"children":50247},{"style":262},[50248],{"type":31,"value":50249},"\"ibmq_qasm_simulator\"",{"type":21,"tag":139,"props":50251,"children":50252},{"style":152},[50253],{"type":31,"value":270},{"type":21,"tag":139,"props":50255,"children":50256},{"class":141,"line":190},[50257],{"type":21,"tag":139,"props":50258,"children":50259},{"emptyLinePlaceholder":194},[50260],{"type":31,"value":197},{"type":21,"tag":139,"props":50262,"children":50263},{"class":141,"line":200},[50264],{"type":21,"tag":139,"props":50265,"children":50266},{"style":220},[50267],{"type":31,"value":50268},"# Or use the Statevector simulator (exact simulation)\n",{"type":21,"tag":139,"props":50270,"children":50271},{"class":141,"line":226},[50272,50276,50280,50284,50289],{"type":21,"tag":139,"props":50273,"children":50274},{"style":152},[50275],{"type":31,"value":6443},{"type":21,"tag":139,"props":50277,"children":50278},{"style":146},[50279],{"type":31,"value":211},{"type":21,"tag":139,"props":50281,"children":50282},{"style":152},[50283],{"type":31,"value":50244},{"type":21,"tag":139,"props":50285,"children":50286},{"style":262},[50287],{"type":31,"value":50288},"\"simulator_statevector\"",{"type":21,"tag":139,"props":50290,"children":50291},{"style":152},[50292],{"type":31,"value":270},{"type":21,"tag":22,"props":50294,"children":50295},{},[50296],{"type":31,"value":50297},"これらのシミュレータはキュー待ち時間がなく、即座に実行されます。実際のノイズ特性が必要な場合や、実機でベンチマークを取りたい場合には実 QPU を使用してください。",{"type":21,"tag":41,"props":50299,"children":50301},{"id":50300},"hlquantum-を-ibm-quantum-で使う",[50302],{"type":31,"value":50303},"HLQuantum を IBM Quantum で使う",{"type":21,"tag":22,"props":50305,"children":50306},{},[50307],{"type":31,"value":50308},"複数の SDK を使用している場合、HLQuantum は IBM ハードウェアへのよりすっきりしたインターフェースを提供します:",{"type":21,"tag":129,"props":50310,"children":50312},{"className":131,"code":50311,"language":133,"meta":7,"style":7},"import hlquantum as hlq\n\nqc = hlq.Circuit(2)\nqc.h(0).cx(0, 1).measure_all()\n\n# Run on IBM's free QPU\nresult = hlq.run(\n    qc,\n    backend=\"qiskit\",\n    device=\"ibm_sherbrooke\",  # or use \"auto\" for least busy\n    shots=1024,\n    error_mitigation=\"zne\"\n)\nprint(result)\n",[50313],{"type":21,"tag":104,"props":50314,"children":50315},{"__ignoreMap":7},[50316,50335,50342,50365,50396,50403,50411,50427,50435,50455,50482,50502,50519,50526],{"type":21,"tag":139,"props":50317,"children":50318},{"class":141,"line":142},[50319,50323,50327,50331],{"type":21,"tag":139,"props":50320,"children":50321},{"style":146},[50322],{"type":31,"value":160},{"type":21,"tag":139,"props":50324,"children":50325},{"style":152},[50326],{"type":31,"value":41040},{"type":21,"tag":139,"props":50328,"children":50329},{"style":146},[50330],{"type":31,"value":5343},{"type":21,"tag":139,"props":50332,"children":50333},{"style":152},[50334],{"type":31,"value":41049},{"type":21,"tag":139,"props":50336,"children":50337},{"class":141,"line":168},[50338],{"type":21,"tag":139,"props":50339,"children":50340},{"emptyLinePlaceholder":194},[50341],{"type":31,"value":197},{"type":21,"tag":139,"props":50343,"children":50344},{"class":141,"line":190},[50345,50349,50353,50357,50361],{"type":21,"tag":139,"props":50346,"children":50347},{"style":152},[50348],{"type":31,"value":349},{"type":21,"tag":139,"props":50350,"children":50351},{"style":146},[50352],{"type":31,"value":211},{"type":21,"tag":139,"props":50354,"children":50355},{"style":152},[50356],{"type":31,"value":43087},{"type":21,"tag":139,"props":50358,"children":50359},{"style":214},[50360],{"type":31,"value":293},{"type":21,"tag":139,"props":50362,"children":50363},{"style":152},[50364],{"type":31,"value":270},{"type":21,"tag":139,"props":50366,"children":50367},{"class":141,"line":200},[50368,50372,50376,50380,50384,50388,50392],{"type":21,"tag":139,"props":50369,"children":50370},{"style":152},[50371],{"type":31,"value":442},{"type":21,"tag":139,"props":50373,"children":50374},{"style":214},[50375],{"type":31,"value":407},{"type":21,"tag":139,"props":50377,"children":50378},{"style":152},[50379],{"type":31,"value":43111},{"type":21,"tag":139,"props":50381,"children":50382},{"style":214},[50383],{"type":31,"value":407},{"type":21,"tag":139,"props":50385,"children":50386},{"style":152},[50387],{"type":31,"value":259},{"type":21,"tag":139,"props":50389,"children":50390},{"style":214},[50391],{"type":31,"value":328},{"type":21,"tag":139,"props":50393,"children":50394},{"style":152},[50395],{"type":31,"value":43128},{"type":21,"tag":139,"props":50397,"children":50398},{"class":141,"line":226},[50399],{"type":21,"tag":139,"props":50400,"children":50401},{"emptyLinePlaceholder":194},[50402],{"type":31,"value":197},{"type":21,"tag":139,"props":50404,"children":50405},{"class":141,"line":234},[50406],{"type":21,"tag":139,"props":50407,"children":50408},{"style":220},[50409],{"type":31,"value":50410},"# Run on IBM's free QPU\n",{"type":21,"tag":139,"props":50412,"children":50413},{"class":141,"line":273},[50414,50418,50422],{"type":21,"tag":139,"props":50415,"children":50416},{"style":152},[50417],{"type":31,"value":4868},{"type":21,"tag":139,"props":50419,"children":50420},{"style":146},[50421],{"type":31,"value":211},{"type":21,"tag":139,"props":50423,"children":50424},{"style":152},[50425],{"type":31,"value":50426}," hlq.run(\n",{"type":21,"tag":139,"props":50428,"children":50429},{"class":141,"line":309},[50430],{"type":21,"tag":139,"props":50431,"children":50432},{"style":152},[50433],{"type":31,"value":50434},"    qc,\n",{"type":21,"tag":139,"props":50436,"children":50437},{"class":141,"line":16},[50438,50442,50446,50451],{"type":21,"tag":139,"props":50439,"children":50440},{"style":923},[50441],{"type":31,"value":44557},{"type":21,"tag":139,"props":50443,"children":50444},{"style":146},[50445],{"type":31,"value":211},{"type":21,"tag":139,"props":50447,"children":50448},{"style":262},[50449],{"type":31,"value":50450},"\"qiskit\"",{"type":21,"tag":139,"props":50452,"children":50453},{"style":152},[50454],{"type":31,"value":4811},{"type":21,"tag":139,"props":50456,"children":50457},{"class":141,"line":361},[50458,50463,50467,50472,50477],{"type":21,"tag":139,"props":50459,"children":50460},{"style":923},[50461],{"type":31,"value":50462},"    device",{"type":21,"tag":139,"props":50464,"children":50465},{"style":146},[50466],{"type":31,"value":211},{"type":21,"tag":139,"props":50468,"children":50469},{"style":262},[50470],{"type":31,"value":50471},"\"ibm_sherbrooke\"",{"type":21,"tag":139,"props":50473,"children":50474},{"style":152},[50475],{"type":31,"value":50476},",  ",{"type":21,"tag":139,"props":50478,"children":50479},{"style":220},[50480],{"type":31,"value":50481},"# or use \"auto\" for least busy\n",{"type":21,"tag":139,"props":50483,"children":50484},{"class":141,"line":369},[50485,50490,50494,50498],{"type":21,"tag":139,"props":50486,"children":50487},{"style":923},[50488],{"type":31,"value":50489},"    shots",{"type":21,"tag":139,"props":50491,"children":50492},{"style":146},[50493],{"type":31,"value":211},{"type":21,"tag":139,"props":50495,"children":50496},{"style":214},[50497],{"type":31,"value":24182},{"type":21,"tag":139,"props":50499,"children":50500},{"style":152},[50501],{"type":31,"value":4811},{"type":21,"tag":139,"props":50503,"children":50504},{"class":141,"line":378},[50505,50510,50514],{"type":21,"tag":139,"props":50506,"children":50507},{"style":923},[50508],{"type":31,"value":50509},"    error_mitigation",{"type":21,"tag":139,"props":50511,"children":50512},{"style":146},[50513],{"type":31,"value":211},{"type":21,"tag":139,"props":50515,"children":50516},{"style":262},[50517],{"type":31,"value":50518},"\"zne\"\n",{"type":21,"tag":139,"props":50520,"children":50521},{"class":141,"line":387},[50522],{"type":21,"tag":139,"props":50523,"children":50524},{"style":152},[50525],{"type":31,"value":270},{"type":21,"tag":139,"props":50527,"children":50528},{"class":141,"line":396},[50529,50533],{"type":21,"tag":139,"props":50530,"children":50531},{"style":214},[50532],{"type":31,"value":948},{"type":21,"tag":139,"props":50534,"children":50535},{"style":152},[50536],{"type":31,"value":4939},{"type":21,"tag":22,"props":50538,"children":50539},{},[50540,50542,50547],{"type":31,"value":50541},"HLQuantum はトランスパイル、ジョブの投入、結果の解析を自動的に処理します。高度な設定については ",{"type":21,"tag":26,"props":50543,"children":50544},{"href":1120},[50545],{"type":31,"value":50546},"Qiskit SDK ガイド",{"type":31,"value":50548}," の全文を参照してください。",{"type":21,"tag":1168,"props":50550,"children":50551},{},[50552],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":50554},[50555,50556,50557,50558,50564,50565,50566],{"id":48782,"depth":168,"text":48782},{"id":48861,"depth":168,"text":48864},{"id":48936,"depth":168,"text":48939},{"id":49297,"depth":168,"text":49300,"children":50559},[50560,50561,50562,50563],{"id":49303,"depth":190,"text":49306},{"id":49319,"depth":190,"text":49322},{"id":49352,"depth":190,"text":49355},{"id":49487,"depth":190,"text":49490},{"id":50131,"depth":168,"text":50131},{"id":50206,"depth":168,"text":50206},{"id":50300,"depth":168,"text":50303},"content:ja:blog:ibm-quantum-free-tier-2026.md","ja\u002Fblog\u002Fibm-quantum-free-tier-2026.md","ja\u002Fblog\u002Fibm-quantum-free-tier-2026",{"_path":50571,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":50572,"description":50573,"date":48770,"author":11,"tags":50574,"readingTime":369,"body":50575,"_type":1187,"_id":53295,"_source":1189,"_file":53296,"_stem":53297,"_extension":1192},"\u002Fja\u002Fblog\u002Fqaoa-max-cut-tutorial","QAOA徹底解説：Max-Cutをステップ・バイ・ステップで解く","量子近似最適化アルゴリズム（QAOA）をMax-Cutグラフ問題に適用する実践的な解説 — Qiskit、PennyLane、HLQuantumを使った完全なPythonコード付き。",[13,2041,14,4474],{"type":18,"children":50576,"toc":53285},[50577,50582,50587,50593,50598,50603,50611,50630,50636,50641,50678,50706,50712,51844,51864,51869,51874,52472,52477,52485,52503,52509,52514,52811,52816,53020,53025,53045,53139,53166,53172,53180,53198,53206,53219,53236,53240,53281],{"type":21,"tag":22,"props":50578,"children":50579},{},[50580],{"type":31,"value":50581},"QAOA（量子近似最適化アルゴリズム）は、最も注目を集めている近未来の量子アルゴリズムの一つであり、それには正当な理由があります。組合せ最適化問題における量子優位性の真の候補であり、今日のNISQハードウェア上で動作し、しかも午後の数時間で実装できるほど手軽です。",{"type":21,"tag":22,"props":50583,"children":50584},{},[50585],{"type":31,"value":50586},"このガイドでは、Max-Cutを例題として、QAOAの完全なパイプラインをゼロから構築します。読み終える頃には、QAOAが実際に何をするのか、どう実装するのか、そしていつ使う価値があるのかを理解できるでしょう。",{"type":21,"tag":41,"props":50588,"children":50590},{"id":50589},"max-cutとは何か",[50591],{"type":31,"value":50592},"Max-Cutとは何か",{"type":21,"tag":22,"props":50594,"children":50595},{},[50596],{"type":31,"value":50597},"Max-Cutはグラフ分割問題です。与えられたグラフに対して、ノードを2つのグループ（0と1）に分け、グループ間をまたぐエッジの数を最大化します。一般にはNP困難であり、VLSIチップ設計、クラスタリング、ネットワーク解析などに現れ、量子ハードウェアにきれいにマッピングできます。",{"type":21,"tag":22,"props":50599,"children":50600},{},[50601],{"type":31,"value":50602},"こちらはシンプルな4ノードのグラフです：",{"type":21,"tag":129,"props":50604,"children":50606},{"code":50605},"0 --- 1\n|   \\ |\n3 --- 2\n",[50607],{"type":21,"tag":104,"props":50608,"children":50609},{"__ignoreMap":7},[50610],{"type":31,"value":50605},{"type":21,"tag":22,"props":50612,"children":50613},{},[50614,50616,50622,50623,50628],{"type":31,"value":50615},"このグラフの最大カットは4です（エッジ0-1、1-2、2-3、3-0がすべてまたぐ）。私たちの目標は、これを達成するビット列 ",{"type":21,"tag":104,"props":50617,"children":50619},{"className":50618},[],[50620],{"type":31,"value":50621},"0101",{"type":31,"value":40554},{"type":21,"tag":104,"props":50624,"children":50626},{"className":50625},[],[50627],{"type":31,"value":14221},{"type":31,"value":50629}," を見つけることです。",{"type":21,"tag":41,"props":50631,"children":50633},{"id":50632},"qaoaの発想",[50634],{"type":31,"value":50635},"QAOAの発想",{"type":21,"tag":22,"props":50637,"children":50638},{},[50639],{"type":31,"value":50640},"QAOAは変分ハイブリッドアルゴリズムです。2つのパラメータ化された演算を交互に適用します：",{"type":21,"tag":68,"props":50642,"children":50643},{},[50644,50661],{"type":21,"tag":72,"props":50645,"children":50646},{},[50647,50652,50653,50659],{"type":21,"tag":16802,"props":50648,"children":50649},{},[50650],{"type":31,"value":50651},"問題ユニタリ",{"type":31,"value":22948},{"type":21,"tag":104,"props":50654,"children":50656},{"className":50655},[],[50657],{"type":31,"value":50658},"U_C(γ)",{"type":31,"value":50660}," — コスト関数（エッジのまたぎ）を位相キックバックとしてエンコードする",{"type":21,"tag":72,"props":50662,"children":50663},{},[50664,50669,50670,50676],{"type":21,"tag":16802,"props":50665,"children":50666},{},[50667],{"type":31,"value":50668},"ミキサーユニタリ",{"type":31,"value":22948},{"type":21,"tag":104,"props":50671,"children":50673},{"className":50672},[],[50674],{"type":31,"value":50675},"U_B(β)",{"type":31,"value":50677}," — 解の間を混ぜ合わせる（X回転）",{"type":21,"tag":22,"props":50679,"children":50680},{},[50681,50683,50688,50690,50696,50698,50704],{"type":31,"value":50682},"これらの交互のユニタリを ",{"type":21,"tag":104,"props":50684,"children":50686},{"className":50685},[],[50687],{"type":31,"value":22},{"type":31,"value":50689}," 層重ねることで、QAOAは測定すると良い解が得られやすい量子状態を準備します。古典最適化器が ",{"type":21,"tag":104,"props":50691,"children":50693},{"className":50692},[],[50694],{"type":31,"value":50695},"2p",{"type":31,"value":50697}," 個の角度 ",{"type":21,"tag":104,"props":50699,"children":50701},{"className":50700},[],[50702],{"type":31,"value":50703},"(γ, β)",{"type":31,"value":50705}," を調整し、期待カット値を最大化します。",{"type":21,"tag":41,"props":50707,"children":50709},{"id":50708},"pennylaneでqaoaを構築する",[50710],{"type":31,"value":50711},"PennyLaneでQAOAを構築する",{"type":21,"tag":129,"props":50713,"children":50715},{"code":50714,"language":133,"meta":7,"className":131,"style":7},"import pennylane as qml\nimport numpy as np\nfrom scipy.optimize import minimize\n\n# Graph edges\nedges = [(0, 1), (1, 2), (2, 3), (3, 0)]\nn_qubits = 4\n\ndev = qml.device(\"default.qubit\", wires=n_qubits)\n\ndef cost_unitary(gamma):\n    \"\"\"Encode the Max-Cut cost into phases.\"\"\"\n    for u, v in edges:\n        qml.CNOT(wires=[u, v])\n        qml.RZ(2 * gamma, wires=v)\n        qml.CNOT(wires=[u, v])\n\ndef mixer_unitary(beta):\n    \"\"\"Apply X-rotation mixer to all qubits.\"\"\"\n    for i in range(n_qubits):\n        qml.RX(2 * beta, wires=i)\n\n@qml.qnode(dev)\ndef qaoa_circuit(params, p=1):\n    gammas = params[:p]\n    betas = params[p:]\n    # Start in uniform superposition\n    for i in range(n_qubits):\n        qml.Hadamard(wires=i)\n    # Alternate p layers\n    for layer in range(p):\n        cost_unitary(gammas[layer])\n        mixer_unitary(betas[layer])\n    return qml.probs(wires=range(n_qubits))\n\ndef expected_cut(params, p=1):\n    \"\"\"Classical cost function: expected number of cut edges.\"\"\"\n    probs = qaoa_circuit(params, p)\n    total = 0.0\n    for bitstring_idx, prob in enumerate(probs):\n        bits = format(bitstring_idx, f'0{n_qubits}b')\n        cut = sum(1 for u, v in edges if bits[u] != bits[v])\n        total += prob * cut\n    return -total  # Minimize negative cut\n\n# Optimize p=1 QAOA\np = 1\ninit_params = np.random.uniform(0, np.pi, 2 * p)\nresult = minimize(expected_cut, init_params, method='COBYLA',\n                  options={'maxiter': 200})\n\nprint(f\"Optimized params: {result.x}\")\nprint(f\"Expected cut: {-result.fun:.3f} \u002F 4.0 maximum\")\n",[50716],{"type":21,"tag":104,"props":50717,"children":50718},{"__ignoreMap":7},[50719,50738,50757,50778,50785,50793,50872,50887,50894,50929,50936,50953,50961,50981,51001,51035,51054,51061,51078,51086,51109,51142,51149,51160,51189,51206,51223,51231,51254,51274,51282,51307,51315,51323,51350,51357,51385,51393,51410,51427,51452,51502,51563,51590,51611,51618,51626,51642,51680,51713,51746,51753,51794],{"type":21,"tag":139,"props":50720,"children":50721},{"class":141,"line":142},[50722,50726,50730,50734],{"type":21,"tag":139,"props":50723,"children":50724},{"style":146},[50725],{"type":31,"value":160},{"type":21,"tag":139,"props":50727,"children":50728},{"style":152},[50729],{"type":31,"value":5338},{"type":21,"tag":139,"props":50731,"children":50732},{"style":146},[50733],{"type":31,"value":5343},{"type":21,"tag":139,"props":50735,"children":50736},{"style":152},[50737],{"type":31,"value":5348},{"type":21,"tag":139,"props":50739,"children":50740},{"class":141,"line":168},[50741,50745,50749,50753],{"type":21,"tag":139,"props":50742,"children":50743},{"style":146},[50744],{"type":31,"value":160},{"type":21,"tag":139,"props":50746,"children":50747},{"style":152},[50748],{"type":31,"value":8517},{"type":21,"tag":139,"props":50750,"children":50751},{"style":146},[50752],{"type":31,"value":5343},{"type":21,"tag":139,"props":50754,"children":50755},{"style":152},[50756],{"type":31,"value":8619},{"type":21,"tag":139,"props":50758,"children":50759},{"class":141,"line":190},[50760,50764,50769,50773],{"type":21,"tag":139,"props":50761,"children":50762},{"style":146},[50763],{"type":31,"value":149},{"type":21,"tag":139,"props":50765,"children":50766},{"style":152},[50767],{"type":31,"value":50768}," scipy.optimize ",{"type":21,"tag":139,"props":50770,"children":50771},{"style":146},[50772],{"type":31,"value":160},{"type":21,"tag":139,"props":50774,"children":50775},{"style":152},[50776],{"type":31,"value":50777}," minimize\n",{"type":21,"tag":139,"props":50779,"children":50780},{"class":141,"line":200},[50781],{"type":21,"tag":139,"props":50782,"children":50783},{"emptyLinePlaceholder":194},[50784],{"type":31,"value":197},{"type":21,"tag":139,"props":50786,"children":50787},{"class":141,"line":226},[50788],{"type":21,"tag":139,"props":50789,"children":50790},{"style":220},[50791],{"type":31,"value":50792},"# Graph edges\n",{"type":21,"tag":139,"props":50794,"children":50795},{"class":141,"line":234},[50796,50800,50804,50808,50812,50816,50820,50824,50828,50832,50836,50840,50844,50848,50852,50856,50860,50864,50868],{"type":21,"tag":139,"props":50797,"children":50798},{"style":152},[50799],{"type":31,"value":1379},{"type":21,"tag":139,"props":50801,"children":50802},{"style":146},[50803],{"type":31,"value":211},{"type":21,"tag":139,"props":50805,"children":50806},{"style":152},[50807],{"type":31,"value":1388},{"type":21,"tag":139,"props":50809,"children":50810},{"style":214},[50811],{"type":31,"value":407},{"type":21,"tag":139,"props":50813,"children":50814},{"style":152},[50815],{"type":31,"value":259},{"type":21,"tag":139,"props":50817,"children":50818},{"style":214},[50819],{"type":31,"value":328},{"type":21,"tag":139,"props":50821,"children":50822},{"style":152},[50823],{"type":31,"value":1405},{"type":21,"tag":139,"props":50825,"children":50826},{"style":214},[50827],{"type":31,"value":328},{"type":21,"tag":139,"props":50829,"children":50830},{"style":152},[50831],{"type":31,"value":259},{"type":21,"tag":139,"props":50833,"children":50834},{"style":214},[50835],{"type":31,"value":293},{"type":21,"tag":139,"props":50837,"children":50838},{"style":152},[50839],{"type":31,"value":1405},{"type":21,"tag":139,"props":50841,"children":50842},{"style":214},[50843],{"type":31,"value":293},{"type":21,"tag":139,"props":50845,"children":50846},{"style":152},[50847],{"type":31,"value":259},{"type":21,"tag":139,"props":50849,"children":50850},{"style":214},[50851],{"type":31,"value":254},{"type":21,"tag":139,"props":50853,"children":50854},{"style":152},[50855],{"type":31,"value":1405},{"type":21,"tag":139,"props":50857,"children":50858},{"style":214},[50859],{"type":31,"value":254},{"type":21,"tag":139,"props":50861,"children":50862},{"style":152},[50863],{"type":31,"value":259},{"type":21,"tag":139,"props":50865,"children":50866},{"style":214},[50867],{"type":31,"value":407},{"type":21,"tag":139,"props":50869,"children":50870},{"style":152},[50871],{"type":31,"value":1454},{"type":21,"tag":139,"props":50873,"children":50874},{"class":141,"line":273},[50875,50879,50883],{"type":21,"tag":139,"props":50876,"children":50877},{"style":152},[50878],{"type":31,"value":35966},{"type":21,"tag":139,"props":50880,"children":50881},{"style":146},[50882],{"type":31,"value":211},{"type":21,"tag":139,"props":50884,"children":50885},{"style":214},[50886],{"type":31,"value":20985},{"type":21,"tag":139,"props":50888,"children":50889},{"class":141,"line":309},[50890],{"type":21,"tag":139,"props":50891,"children":50892},{"emptyLinePlaceholder":194},[50893],{"type":31,"value":197},{"type":21,"tag":139,"props":50895,"children":50896},{"class":141,"line":16},[50897,50901,50905,50909,50913,50917,50921,50925],{"type":21,"tag":139,"props":50898,"children":50899},{"style":152},[50900],{"type":31,"value":8713},{"type":21,"tag":139,"props":50902,"children":50903},{"style":146},[50904],{"type":31,"value":211},{"type":21,"tag":139,"props":50906,"children":50907},{"style":152},[50908],{"type":31,"value":5433},{"type":21,"tag":139,"props":50910,"children":50911},{"style":262},[50912],{"type":31,"value":5438},{"type":21,"tag":139,"props":50914,"children":50915},{"style":152},[50916],{"type":31,"value":259},{"type":21,"tag":139,"props":50918,"children":50919},{"style":923},[50920],{"type":31,"value":5447},{"type":21,"tag":139,"props":50922,"children":50923},{"style":146},[50924],{"type":31,"value":211},{"type":21,"tag":139,"props":50926,"children":50927},{"style":152},[50928],{"type":31,"value":36033},{"type":21,"tag":139,"props":50930,"children":50931},{"class":141,"line":361},[50932],{"type":21,"tag":139,"props":50933,"children":50934},{"emptyLinePlaceholder":194},[50935],{"type":31,"value":197},{"type":21,"tag":139,"props":50937,"children":50938},{"class":141,"line":369},[50939,50943,50948],{"type":21,"tag":139,"props":50940,"children":50941},{"style":146},[50942],{"type":31,"value":5487},{"type":21,"tag":139,"props":50944,"children":50945},{"style":4509},[50946],{"type":31,"value":50947}," cost_unitary",{"type":21,"tag":139,"props":50949,"children":50950},{"style":152},[50951],{"type":31,"value":50952},"(gamma):\n",{"type":21,"tag":139,"props":50954,"children":50955},{"class":141,"line":378},[50956],{"type":21,"tag":139,"props":50957,"children":50958},{"style":262},[50959],{"type":31,"value":50960},"    \"\"\"Encode the Max-Cut cost into phases.\"\"\"\n",{"type":21,"tag":139,"props":50962,"children":50963},{"class":141,"line":387},[50964,50968,50973,50977],{"type":21,"tag":139,"props":50965,"children":50966},{"style":146},[50967],{"type":31,"value":17024},{"type":21,"tag":139,"props":50969,"children":50970},{"style":152},[50971],{"type":31,"value":50972}," u, v ",{"type":21,"tag":139,"props":50974,"children":50975},{"style":146},[50976],{"type":31,"value":1496},{"type":21,"tag":139,"props":50978,"children":50979},{"style":152},[50980],{"type":31,"value":1501},{"type":21,"tag":139,"props":50982,"children":50983},{"class":141,"line":396},[50984,50988,50992,50996],{"type":21,"tag":139,"props":50985,"children":50986},{"style":152},[50987],{"type":31,"value":48333},{"type":21,"tag":139,"props":50989,"children":50990},{"style":923},[50991],{"type":31,"value":5447},{"type":21,"tag":139,"props":50993,"children":50994},{"style":146},[50995],{"type":31,"value":211},{"type":21,"tag":139,"props":50997,"children":50998},{"style":152},[50999],{"type":31,"value":51000},"[u, v])\n",{"type":21,"tag":139,"props":51002,"children":51003},{"class":141,"line":414},[51004,51009,51013,51017,51022,51026,51030],{"type":21,"tag":139,"props":51005,"children":51006},{"style":152},[51007],{"type":31,"value":51008},"        qml.RZ(",{"type":21,"tag":139,"props":51010,"children":51011},{"style":214},[51012],{"type":31,"value":293},{"type":21,"tag":139,"props":51014,"children":51015},{"style":146},[51016],{"type":31,"value":30184},{"type":21,"tag":139,"props":51018,"children":51019},{"style":152},[51020],{"type":31,"value":51021}," gamma, ",{"type":21,"tag":139,"props":51023,"children":51024},{"style":923},[51025],{"type":31,"value":5447},{"type":21,"tag":139,"props":51027,"children":51028},{"style":146},[51029],{"type":31,"value":211},{"type":21,"tag":139,"props":51031,"children":51032},{"style":152},[51033],{"type":31,"value":51034},"v)\n",{"type":21,"tag":139,"props":51036,"children":51037},{"class":141,"line":12589},[51038,51042,51046,51050],{"type":21,"tag":139,"props":51039,"children":51040},{"style":152},[51041],{"type":31,"value":48333},{"type":21,"tag":139,"props":51043,"children":51044},{"style":923},[51045],{"type":31,"value":5447},{"type":21,"tag":139,"props":51047,"children":51048},{"style":146},[51049],{"type":31,"value":211},{"type":21,"tag":139,"props":51051,"children":51052},{"style":152},[51053],{"type":31,"value":51000},{"type":21,"tag":139,"props":51055,"children":51056},{"class":141,"line":12606},[51057],{"type":21,"tag":139,"props":51058,"children":51059},{"emptyLinePlaceholder":194},[51060],{"type":31,"value":197},{"type":21,"tag":139,"props":51062,"children":51063},{"class":141,"line":12622},[51064,51068,51073],{"type":21,"tag":139,"props":51065,"children":51066},{"style":146},[51067],{"type":31,"value":5487},{"type":21,"tag":139,"props":51069,"children":51070},{"style":4509},[51071],{"type":31,"value":51072}," mixer_unitary",{"type":21,"tag":139,"props":51074,"children":51075},{"style":152},[51076],{"type":31,"value":51077},"(beta):\n",{"type":21,"tag":139,"props":51079,"children":51080},{"class":141,"line":12630},[51081],{"type":21,"tag":139,"props":51082,"children":51083},{"style":262},[51084],{"type":31,"value":51085},"    \"\"\"Apply X-rotation mixer to all qubits.\"\"\"\n",{"type":21,"tag":139,"props":51087,"children":51088},{"class":141,"line":17747},[51089,51093,51097,51101,51105],{"type":21,"tag":139,"props":51090,"children":51091},{"style":146},[51092],{"type":31,"value":17024},{"type":21,"tag":139,"props":51094,"children":51095},{"style":152},[51096],{"type":31,"value":7408},{"type":21,"tag":139,"props":51098,"children":51099},{"style":146},[51100],{"type":31,"value":1496},{"type":21,"tag":139,"props":51102,"children":51103},{"style":214},[51104],{"type":31,"value":7417},{"type":21,"tag":139,"props":51106,"children":51107},{"style":152},[51108],{"type":31,"value":48268},{"type":21,"tag":139,"props":51110,"children":51111},{"class":141,"line":17765},[51112,51117,51121,51125,51130,51134,51138],{"type":21,"tag":139,"props":51113,"children":51114},{"style":152},[51115],{"type":31,"value":51116},"        qml.RX(",{"type":21,"tag":139,"props":51118,"children":51119},{"style":214},[51120],{"type":31,"value":293},{"type":21,"tag":139,"props":51122,"children":51123},{"style":146},[51124],{"type":31,"value":30184},{"type":21,"tag":139,"props":51126,"children":51127},{"style":152},[51128],{"type":31,"value":51129}," beta, ",{"type":21,"tag":139,"props":51131,"children":51132},{"style":923},[51133],{"type":31,"value":5447},{"type":21,"tag":139,"props":51135,"children":51136},{"style":146},[51137],{"type":31,"value":211},{"type":21,"tag":139,"props":51139,"children":51140},{"style":152},[51141],{"type":31,"value":48289},{"type":21,"tag":139,"props":51143,"children":51144},{"class":141,"line":17790},[51145],{"type":21,"tag":139,"props":51146,"children":51147},{"emptyLinePlaceholder":194},[51148],{"type":31,"value":197},{"type":21,"tag":139,"props":51150,"children":51151},{"class":141,"line":17817},[51152,51156],{"type":21,"tag":139,"props":51153,"children":51154},{"style":4509},[51155],{"type":31,"value":5474},{"type":21,"tag":139,"props":51157,"children":51158},{"style":152},[51159],{"type":31,"value":8765},{"type":21,"tag":139,"props":51161,"children":51162},{"class":141,"line":17843},[51163,51167,51172,51177,51181,51185],{"type":21,"tag":139,"props":51164,"children":51165},{"style":146},[51166],{"type":31,"value":5487},{"type":21,"tag":139,"props":51168,"children":51169},{"style":4509},[51170],{"type":31,"value":51171}," qaoa_circuit",{"type":21,"tag":139,"props":51173,"children":51174},{"style":152},[51175],{"type":31,"value":51176},"(params, p",{"type":21,"tag":139,"props":51178,"children":51179},{"style":146},[51180],{"type":31,"value":211},{"type":21,"tag":139,"props":51182,"children":51183},{"style":214},[51184],{"type":31,"value":328},{"type":21,"tag":139,"props":51186,"children":51187},{"style":152},[51188],{"type":31,"value":7430},{"type":21,"tag":139,"props":51190,"children":51191},{"class":141,"line":17852},[51192,51197,51201],{"type":21,"tag":139,"props":51193,"children":51194},{"style":152},[51195],{"type":31,"value":51196},"    gammas ",{"type":21,"tag":139,"props":51198,"children":51199},{"style":146},[51200],{"type":31,"value":211},{"type":21,"tag":139,"props":51202,"children":51203},{"style":152},[51204],{"type":31,"value":51205}," params[:p]\n",{"type":21,"tag":139,"props":51207,"children":51208},{"class":141,"line":17864},[51209,51214,51218],{"type":21,"tag":139,"props":51210,"children":51211},{"style":152},[51212],{"type":31,"value":51213},"    betas ",{"type":21,"tag":139,"props":51215,"children":51216},{"style":146},[51217],{"type":31,"value":211},{"type":21,"tag":139,"props":51219,"children":51220},{"style":152},[51221],{"type":31,"value":51222}," params[p:]\n",{"type":21,"tag":139,"props":51224,"children":51225},{"class":141,"line":17872},[51226],{"type":21,"tag":139,"props":51227,"children":51228},{"style":220},[51229],{"type":31,"value":51230},"    # Start in uniform superposition\n",{"type":21,"tag":139,"props":51232,"children":51233},{"class":141,"line":17925},[51234,51238,51242,51246,51250],{"type":21,"tag":139,"props":51235,"children":51236},{"style":146},[51237],{"type":31,"value":17024},{"type":21,"tag":139,"props":51239,"children":51240},{"style":152},[51241],{"type":31,"value":7408},{"type":21,"tag":139,"props":51243,"children":51244},{"style":146},[51245],{"type":31,"value":1496},{"type":21,"tag":139,"props":51247,"children":51248},{"style":214},[51249],{"type":31,"value":7417},{"type":21,"tag":139,"props":51251,"children":51252},{"style":152},[51253],{"type":31,"value":48268},{"type":21,"tag":139,"props":51255,"children":51256},{"class":141,"line":26897},[51257,51262,51266,51270],{"type":21,"tag":139,"props":51258,"children":51259},{"style":152},[51260],{"type":31,"value":51261},"        qml.Hadamard(",{"type":21,"tag":139,"props":51263,"children":51264},{"style":923},[51265],{"type":31,"value":5447},{"type":21,"tag":139,"props":51267,"children":51268},{"style":146},[51269],{"type":31,"value":211},{"type":21,"tag":139,"props":51271,"children":51272},{"style":152},[51273],{"type":31,"value":48289},{"type":21,"tag":139,"props":51275,"children":51276},{"class":141,"line":26942},[51277],{"type":21,"tag":139,"props":51278,"children":51279},{"style":220},[51280],{"type":31,"value":51281},"    # Alternate p layers\n",{"type":21,"tag":139,"props":51283,"children":51284},{"class":141,"line":26955},[51285,51289,51294,51298,51302],{"type":21,"tag":139,"props":51286,"children":51287},{"style":146},[51288],{"type":31,"value":17024},{"type":21,"tag":139,"props":51290,"children":51291},{"style":152},[51292],{"type":31,"value":51293}," layer ",{"type":21,"tag":139,"props":51295,"children":51296},{"style":146},[51297],{"type":31,"value":1496},{"type":21,"tag":139,"props":51299,"children":51300},{"style":214},[51301],{"type":31,"value":7417},{"type":21,"tag":139,"props":51303,"children":51304},{"style":152},[51305],{"type":31,"value":51306},"(p):\n",{"type":21,"tag":139,"props":51308,"children":51309},{"class":141,"line":26963},[51310],{"type":21,"tag":139,"props":51311,"children":51312},{"style":152},[51313],{"type":31,"value":51314},"        cost_unitary(gammas[layer])\n",{"type":21,"tag":139,"props":51316,"children":51317},{"class":141,"line":26979},[51318],{"type":21,"tag":139,"props":51319,"children":51320},{"style":152},[51321],{"type":31,"value":51322},"        mixer_unitary(betas[layer])\n",{"type":21,"tag":139,"props":51324,"children":51325},{"class":141,"line":26997},[51326,51330,51334,51338,51342,51346],{"type":21,"tag":139,"props":51327,"children":51328},{"style":146},[51329],{"type":31,"value":5582},{"type":21,"tag":139,"props":51331,"children":51332},{"style":152},[51333],{"type":31,"value":8821},{"type":21,"tag":139,"props":51335,"children":51336},{"style":923},[51337],{"type":31,"value":5447},{"type":21,"tag":139,"props":51339,"children":51340},{"style":146},[51341],{"type":31,"value":211},{"type":21,"tag":139,"props":51343,"children":51344},{"style":214},[51345],{"type":31,"value":17713},{"type":21,"tag":139,"props":51347,"children":51348},{"style":152},[51349],{"type":31,"value":36158},{"type":21,"tag":139,"props":51351,"children":51352},{"class":141,"line":27005},[51353],{"type":21,"tag":139,"props":51354,"children":51355},{"emptyLinePlaceholder":194},[51356],{"type":31,"value":197},{"type":21,"tag":139,"props":51358,"children":51359},{"class":141,"line":27038},[51360,51364,51369,51373,51377,51381],{"type":21,"tag":139,"props":51361,"children":51362},{"style":146},[51363],{"type":31,"value":5487},{"type":21,"tag":139,"props":51365,"children":51366},{"style":4509},[51367],{"type":31,"value":51368}," expected_cut",{"type":21,"tag":139,"props":51370,"children":51371},{"style":152},[51372],{"type":31,"value":51176},{"type":21,"tag":139,"props":51374,"children":51375},{"style":146},[51376],{"type":31,"value":211},{"type":21,"tag":139,"props":51378,"children":51379},{"style":214},[51380],{"type":31,"value":328},{"type":21,"tag":139,"props":51382,"children":51383},{"style":152},[51384],{"type":31,"value":7430},{"type":21,"tag":139,"props":51386,"children":51387},{"class":141,"line":27055},[51388],{"type":21,"tag":139,"props":51389,"children":51390},{"style":262},[51391],{"type":31,"value":51392},"    \"\"\"Classical cost function: expected number of cut edges.\"\"\"\n",{"type":21,"tag":139,"props":51394,"children":51395},{"class":141,"line":27080},[51396,51401,51405],{"type":21,"tag":139,"props":51397,"children":51398},{"style":152},[51399],{"type":31,"value":51400},"    probs ",{"type":21,"tag":139,"props":51402,"children":51403},{"style":146},[51404],{"type":31,"value":211},{"type":21,"tag":139,"props":51406,"children":51407},{"style":152},[51408],{"type":31,"value":51409}," qaoa_circuit(params, p)\n",{"type":21,"tag":139,"props":51411,"children":51412},{"class":141,"line":27121},[51413,51418,51422],{"type":21,"tag":139,"props":51414,"children":51415},{"style":152},[51416],{"type":31,"value":51417},"    total ",{"type":21,"tag":139,"props":51419,"children":51420},{"style":146},[51421],{"type":31,"value":211},{"type":21,"tag":139,"props":51423,"children":51424},{"style":214},[51425],{"type":31,"value":51426}," 0.0\n",{"type":21,"tag":139,"props":51428,"children":51429},{"class":141,"line":27129},[51430,51434,51439,51443,51447],{"type":21,"tag":139,"props":51431,"children":51432},{"style":146},[51433],{"type":31,"value":17024},{"type":21,"tag":139,"props":51435,"children":51436},{"style":152},[51437],{"type":31,"value":51438}," bitstring_idx, prob ",{"type":21,"tag":139,"props":51440,"children":51441},{"style":146},[51442],{"type":31,"value":1496},{"type":21,"tag":139,"props":51444,"children":51445},{"style":214},[51446],{"type":31,"value":26777},{"type":21,"tag":139,"props":51448,"children":51449},{"style":152},[51450],{"type":31,"value":51451},"(probs):\n",{"type":21,"tag":139,"props":51453,"children":51454},{"class":141,"line":27163},[51455,51459,51463,51467,51472,51476,51481,51485,51489,51493,51498],{"type":21,"tag":139,"props":51456,"children":51457},{"style":152},[51458],{"type":31,"value":26693},{"type":21,"tag":139,"props":51460,"children":51461},{"style":146},[51462],{"type":31,"value":211},{"type":21,"tag":139,"props":51464,"children":51465},{"style":214},[51466],{"type":31,"value":26702},{"type":21,"tag":139,"props":51468,"children":51469},{"style":152},[51470],{"type":31,"value":51471},"(bitstring_idx, ",{"type":21,"tag":139,"props":51473,"children":51474},{"style":146},[51475],{"type":31,"value":7524},{"type":21,"tag":139,"props":51477,"children":51478},{"style":262},[51479],{"type":31,"value":51480},"'0",{"type":21,"tag":139,"props":51482,"children":51483},{"style":214},[51484],{"type":31,"value":7534},{"type":21,"tag":139,"props":51486,"children":51487},{"style":152},[51488],{"type":31,"value":37263},{"type":21,"tag":139,"props":51490,"children":51491},{"style":214},[51492],{"type":31,"value":7543},{"type":21,"tag":139,"props":51494,"children":51495},{"style":262},[51496],{"type":31,"value":51497},"b'",{"type":21,"tag":139,"props":51499,"children":51500},{"style":152},[51501],{"type":31,"value":270},{"type":21,"tag":139,"props":51503,"children":51504},{"class":141,"line":27277},[51505,51510,51514,51518,51522,51526,51531,51535,51539,51544,51548,51553,51558],{"type":21,"tag":139,"props":51506,"children":51507},{"style":152},[51508],{"type":31,"value":51509},"        cut ",{"type":21,"tag":139,"props":51511,"children":51512},{"style":146},[51513],{"type":31,"value":211},{"type":21,"tag":139,"props":51515,"children":51516},{"style":214},[51517],{"type":31,"value":19683},{"type":21,"tag":139,"props":51519,"children":51520},{"style":152},[51521],{"type":31,"value":953},{"type":21,"tag":139,"props":51523,"children":51524},{"style":214},[51525],{"type":31,"value":328},{"type":21,"tag":139,"props":51527,"children":51528},{"style":146},[51529],{"type":31,"value":51530}," for",{"type":21,"tag":139,"props":51532,"children":51533},{"style":152},[51534],{"type":31,"value":50972},{"type":21,"tag":139,"props":51536,"children":51537},{"style":146},[51538],{"type":31,"value":1496},{"type":21,"tag":139,"props":51540,"children":51541},{"style":152},[51542],{"type":31,"value":51543}," edges ",{"type":21,"tag":139,"props":51545,"children":51546},{"style":146},[51547],{"type":31,"value":19711},{"type":21,"tag":139,"props":51549,"children":51550},{"style":152},[51551],{"type":31,"value":51552}," bits[u] ",{"type":21,"tag":139,"props":51554,"children":51555},{"style":146},[51556],{"type":31,"value":51557},"!=",{"type":21,"tag":139,"props":51559,"children":51560},{"style":152},[51561],{"type":31,"value":51562}," bits[v])\n",{"type":21,"tag":139,"props":51564,"children":51565},{"class":141,"line":27285},[51566,51571,51576,51581,51585],{"type":21,"tag":139,"props":51567,"children":51568},{"style":152},[51569],{"type":31,"value":51570},"        total ",{"type":21,"tag":139,"props":51572,"children":51573},{"style":146},[51574],{"type":31,"value":51575},"+=",{"type":21,"tag":139,"props":51577,"children":51578},{"style":152},[51579],{"type":31,"value":51580}," prob ",{"type":21,"tag":139,"props":51582,"children":51583},{"style":146},[51584],{"type":31,"value":11406},{"type":21,"tag":139,"props":51586,"children":51587},{"style":152},[51588],{"type":31,"value":51589}," cut\n",{"type":21,"tag":139,"props":51591,"children":51592},{"class":141,"line":27330},[51593,51597,51601,51606],{"type":21,"tag":139,"props":51594,"children":51595},{"style":146},[51596],{"type":31,"value":5582},{"type":21,"tag":139,"props":51598,"children":51599},{"style":146},[51600],{"type":31,"value":26462},{"type":21,"tag":139,"props":51602,"children":51603},{"style":152},[51604],{"type":31,"value":51605},"total  ",{"type":21,"tag":139,"props":51607,"children":51608},{"style":220},[51609],{"type":31,"value":51610},"# Minimize negative cut\n",{"type":21,"tag":139,"props":51612,"children":51613},{"class":141,"line":27348},[51614],{"type":21,"tag":139,"props":51615,"children":51616},{"emptyLinePlaceholder":194},[51617],{"type":31,"value":197},{"type":21,"tag":139,"props":51619,"children":51620},{"class":141,"line":27356},[51621],{"type":21,"tag":139,"props":51622,"children":51623},{"style":220},[51624],{"type":31,"value":51625},"# Optimize p=1 QAOA\n",{"type":21,"tag":139,"props":51627,"children":51628},{"class":141,"line":27442},[51629,51634,51638],{"type":21,"tag":139,"props":51630,"children":51631},{"style":152},[51632],{"type":31,"value":51633},"p ",{"type":21,"tag":139,"props":51635,"children":51636},{"style":146},[51637],{"type":31,"value":211},{"type":21,"tag":139,"props":51639,"children":51640},{"style":214},[51641],{"type":31,"value":1536},{"type":21,"tag":139,"props":51643,"children":51644},{"class":141,"line":36840},[51645,51650,51654,51658,51662,51667,51671,51675],{"type":21,"tag":139,"props":51646,"children":51647},{"style":152},[51648],{"type":31,"value":51649},"init_params ",{"type":21,"tag":139,"props":51651,"children":51652},{"style":146},[51653],{"type":31,"value":211},{"type":21,"tag":139,"props":51655,"children":51656},{"style":152},[51657],{"type":31,"value":46935},{"type":21,"tag":139,"props":51659,"children":51660},{"style":214},[51661],{"type":31,"value":407},{"type":21,"tag":139,"props":51663,"children":51664},{"style":152},[51665],{"type":31,"value":51666},", np.pi, ",{"type":21,"tag":139,"props":51668,"children":51669},{"style":214},[51670],{"type":31,"value":293},{"type":21,"tag":139,"props":51672,"children":51673},{"style":146},[51674],{"type":31,"value":30184},{"type":21,"tag":139,"props":51676,"children":51677},{"style":152},[51678],{"type":31,"value":51679}," p)\n",{"type":21,"tag":139,"props":51681,"children":51682},{"class":141,"line":36858},[51683,51687,51691,51696,51701,51705,51709],{"type":21,"tag":139,"props":51684,"children":51685},{"style":152},[51686],{"type":31,"value":4868},{"type":21,"tag":139,"props":51688,"children":51689},{"style":146},[51690],{"type":31,"value":211},{"type":21,"tag":139,"props":51692,"children":51693},{"style":152},[51694],{"type":31,"value":51695}," minimize(expected_cut, init_params, ",{"type":21,"tag":139,"props":51697,"children":51698},{"style":923},[51699],{"type":31,"value":51700},"method",{"type":21,"tag":139,"props":51702,"children":51703},{"style":146},[51704],{"type":31,"value":211},{"type":21,"tag":139,"props":51706,"children":51707},{"style":262},[51708],{"type":31,"value":44586},{"type":21,"tag":139,"props":51710,"children":51711},{"style":152},[51712],{"type":31,"value":4811},{"type":21,"tag":139,"props":51714,"children":51715},{"class":141,"line":36876},[51716,51721,51725,51729,51734,51738,51742],{"type":21,"tag":139,"props":51717,"children":51718},{"style":923},[51719],{"type":31,"value":51720},"                  options",{"type":21,"tag":139,"props":51722,"children":51723},{"style":146},[51724],{"type":31,"value":211},{"type":21,"tag":139,"props":51726,"children":51727},{"style":152},[51728],{"type":31,"value":7534},{"type":21,"tag":139,"props":51730,"children":51731},{"style":262},[51732],{"type":31,"value":51733},"'maxiter'",{"type":21,"tag":139,"props":51735,"children":51736},{"style":152},[51737],{"type":31,"value":1147},{"type":21,"tag":139,"props":51739,"children":51740},{"style":214},[51741],{"type":31,"value":14106},{"type":21,"tag":139,"props":51743,"children":51744},{"style":152},[51745],{"type":31,"value":7850},{"type":21,"tag":139,"props":51747,"children":51748},{"class":141,"line":36884},[51749],{"type":21,"tag":139,"props":51750,"children":51751},{"emptyLinePlaceholder":194},[51752],{"type":31,"value":197},{"type":21,"tag":139,"props":51754,"children":51755},{"class":141,"line":36917},[51756,51760,51764,51768,51773,51777,51782,51786,51790],{"type":21,"tag":139,"props":51757,"children":51758},{"style":214},[51759],{"type":31,"value":948},{"type":21,"tag":139,"props":51761,"children":51762},{"style":152},[51763],{"type":31,"value":953},{"type":21,"tag":139,"props":51765,"children":51766},{"style":146},[51767],{"type":31,"value":7524},{"type":21,"tag":139,"props":51769,"children":51770},{"style":262},[51771],{"type":31,"value":51772},"\"Optimized params: ",{"type":21,"tag":139,"props":51774,"children":51775},{"style":214},[51776],{"type":31,"value":7534},{"type":21,"tag":139,"props":51778,"children":51779},{"style":152},[51780],{"type":31,"value":51781},"result.x",{"type":21,"tag":139,"props":51783,"children":51784},{"style":214},[51785],{"type":31,"value":7543},{"type":21,"tag":139,"props":51787,"children":51788},{"style":262},[51789],{"type":31,"value":15370},{"type":21,"tag":139,"props":51791,"children":51792},{"style":152},[51793],{"type":31,"value":270},{"type":21,"tag":139,"props":51795,"children":51796},{"class":141,"line":36952},[51797,51801,51805,51809,51814,51818,51822,51827,51831,51835,51840],{"type":21,"tag":139,"props":51798,"children":51799},{"style":214},[51800],{"type":31,"value":948},{"type":21,"tag":139,"props":51802,"children":51803},{"style":152},[51804],{"type":31,"value":953},{"type":21,"tag":139,"props":51806,"children":51807},{"style":146},[51808],{"type":31,"value":7524},{"type":21,"tag":139,"props":51810,"children":51811},{"style":262},[51812],{"type":31,"value":51813},"\"Expected cut: ",{"type":21,"tag":139,"props":51815,"children":51816},{"style":214},[51817],{"type":31,"value":7534},{"type":21,"tag":139,"props":51819,"children":51820},{"style":146},[51821],{"type":31,"value":825},{"type":21,"tag":139,"props":51823,"children":51824},{"style":152},[51825],{"type":31,"value":51826},"result.fun",{"type":21,"tag":139,"props":51828,"children":51829},{"style":146},[51830],{"type":31,"value":37055},{"type":21,"tag":139,"props":51832,"children":51833},{"style":214},[51834],{"type":31,"value":7543},{"type":21,"tag":139,"props":51836,"children":51837},{"style":262},[51838],{"type":31,"value":51839}," \u002F 4.0 maximum\"",{"type":21,"tag":139,"props":51841,"children":51842},{"style":152},[51843],{"type":31,"value":270},{"type":21,"tag":22,"props":51845,"children":51846},{},[51847,51849,51854,51856,51862],{"type":31,"value":51848},"これを実行すると、",{"type":21,"tag":104,"props":51850,"children":51852},{"className":51851},[],[51853],{"type":31,"value":41281},{"type":31,"value":51855}," で典型的には ",{"type":21,"tag":104,"props":51857,"children":51859},{"className":51858},[],[51860],{"type":31,"value":51861},"expected_cut ≈ 3.5",{"type":31,"value":51863}," に達します — 最大カットの87.5%です。",{"type":21,"tag":41,"props":51865,"children":51867},{"id":51866},"最良解のサンプリング",[51868],{"type":31,"value":51866},{"type":21,"tag":22,"props":51870,"children":51871},{},[51872],{"type":31,"value":51873},"最適化の後、回路をサンプリングして最も可能性の高い良い解を見つけます：",{"type":21,"tag":129,"props":51875,"children":51877},{"code":51876,"language":133,"meta":7,"className":131,"style":7},"@qml.qnode(dev)\ndef sample_circuit(params, p=1, shots=1000):\n    gammas = params[:p]\n    betas = params[p:]\n    for i in range(n_qubits):\n        qml.Hadamard(wires=i)\n    for layer in range(p):\n        cost_unitary(gammas[layer])\n        mixer_unitary(betas[layer])\n    return qml.sample(wires=range(n_qubits))\n\nsamples = sample_circuit(result.x, shots=1000)\n\n# Count cut values for each bitstring\nfrom collections import Counter\ncut_counts = Counter()\nfor bits in samples:\n    key = ''.join(str(b) for b in bits)\n    cut = sum(1 for u, v in edges if bits[u] != bits[v])\n    cut_counts[(key, cut)] += 1\n\n# Show top 5 most frequent bitstrings\nfor (bits, cut), count in sorted(cut_counts.items(), key=lambda x: -x[1])[:5]:\n    print(f\"{bits}  cut={cut}  frequency={count\u002F10:.1f}%\")\n",[51878],{"type":21,"tag":104,"props":51879,"children":51880},{"__ignoreMap":7},[51881,51892,51933,51948,51963,51986,52005,52028,52035,52042,52070,52077,52110,52117,52125,52146,52163,52184,52233,52289,52305,52312,52320,52383],{"type":21,"tag":139,"props":51882,"children":51883},{"class":141,"line":142},[51884,51888],{"type":21,"tag":139,"props":51885,"children":51886},{"style":4509},[51887],{"type":31,"value":5474},{"type":21,"tag":139,"props":51889,"children":51890},{"style":152},[51891],{"type":31,"value":8765},{"type":21,"tag":139,"props":51893,"children":51894},{"class":141,"line":168},[51895,51899,51904,51908,51912,51916,51921,51925,51929],{"type":21,"tag":139,"props":51896,"children":51897},{"style":146},[51898],{"type":31,"value":5487},{"type":21,"tag":139,"props":51900,"children":51901},{"style":4509},[51902],{"type":31,"value":51903}," sample_circuit",{"type":21,"tag":139,"props":51905,"children":51906},{"style":152},[51907],{"type":31,"value":51176},{"type":21,"tag":139,"props":51909,"children":51910},{"style":146},[51911],{"type":31,"value":211},{"type":21,"tag":139,"props":51913,"children":51914},{"style":214},[51915],{"type":31,"value":328},{"type":21,"tag":139,"props":51917,"children":51918},{"style":152},[51919],{"type":31,"value":51920},", shots",{"type":21,"tag":139,"props":51922,"children":51923},{"style":146},[51924],{"type":31,"value":211},{"type":21,"tag":139,"props":51926,"children":51927},{"style":214},[51928],{"type":31,"value":1730},{"type":21,"tag":139,"props":51930,"children":51931},{"style":152},[51932],{"type":31,"value":7430},{"type":21,"tag":139,"props":51934,"children":51935},{"class":141,"line":190},[51936,51940,51944],{"type":21,"tag":139,"props":51937,"children":51938},{"style":152},[51939],{"type":31,"value":51196},{"type":21,"tag":139,"props":51941,"children":51942},{"style":146},[51943],{"type":31,"value":211},{"type":21,"tag":139,"props":51945,"children":51946},{"style":152},[51947],{"type":31,"value":51205},{"type":21,"tag":139,"props":51949,"children":51950},{"class":141,"line":200},[51951,51955,51959],{"type":21,"tag":139,"props":51952,"children":51953},{"style":152},[51954],{"type":31,"value":51213},{"type":21,"tag":139,"props":51956,"children":51957},{"style":146},[51958],{"type":31,"value":211},{"type":21,"tag":139,"props":51960,"children":51961},{"style":152},[51962],{"type":31,"value":51222},{"type":21,"tag":139,"props":51964,"children":51965},{"class":141,"line":226},[51966,51970,51974,51978,51982],{"type":21,"tag":139,"props":51967,"children":51968},{"style":146},[51969],{"type":31,"value":17024},{"type":21,"tag":139,"props":51971,"children":51972},{"style":152},[51973],{"type":31,"value":7408},{"type":21,"tag":139,"props":51975,"children":51976},{"style":146},[51977],{"type":31,"value":1496},{"type":21,"tag":139,"props":51979,"children":51980},{"style":214},[51981],{"type":31,"value":7417},{"type":21,"tag":139,"props":51983,"children":51984},{"style":152},[51985],{"type":31,"value":48268},{"type":21,"tag":139,"props":51987,"children":51988},{"class":141,"line":234},[51989,51993,51997,52001],{"type":21,"tag":139,"props":51990,"children":51991},{"style":152},[51992],{"type":31,"value":51261},{"type":21,"tag":139,"props":51994,"children":51995},{"style":923},[51996],{"type":31,"value":5447},{"type":21,"tag":139,"props":51998,"children":51999},{"style":146},[52000],{"type":31,"value":211},{"type":21,"tag":139,"props":52002,"children":52003},{"style":152},[52004],{"type":31,"value":48289},{"type":21,"tag":139,"props":52006,"children":52007},{"class":141,"line":273},[52008,52012,52016,52020,52024],{"type":21,"tag":139,"props":52009,"children":52010},{"style":146},[52011],{"type":31,"value":17024},{"type":21,"tag":139,"props":52013,"children":52014},{"style":152},[52015],{"type":31,"value":51293},{"type":21,"tag":139,"props":52017,"children":52018},{"style":146},[52019],{"type":31,"value":1496},{"type":21,"tag":139,"props":52021,"children":52022},{"style":214},[52023],{"type":31,"value":7417},{"type":21,"tag":139,"props":52025,"children":52026},{"style":152},[52027],{"type":31,"value":51306},{"type":21,"tag":139,"props":52029,"children":52030},{"class":141,"line":309},[52031],{"type":21,"tag":139,"props":52032,"children":52033},{"style":152},[52034],{"type":31,"value":51314},{"type":21,"tag":139,"props":52036,"children":52037},{"class":141,"line":16},[52038],{"type":21,"tag":139,"props":52039,"children":52040},{"style":152},[52041],{"type":31,"value":51322},{"type":21,"tag":139,"props":52043,"children":52044},{"class":141,"line":361},[52045,52049,52054,52058,52062,52066],{"type":21,"tag":139,"props":52046,"children":52047},{"style":146},[52048],{"type":31,"value":5582},{"type":21,"tag":139,"props":52050,"children":52051},{"style":152},[52052],{"type":31,"value":52053}," qml.sample(",{"type":21,"tag":139,"props":52055,"children":52056},{"style":923},[52057],{"type":31,"value":5447},{"type":21,"tag":139,"props":52059,"children":52060},{"style":146},[52061],{"type":31,"value":211},{"type":21,"tag":139,"props":52063,"children":52064},{"style":214},[52065],{"type":31,"value":17713},{"type":21,"tag":139,"props":52067,"children":52068},{"style":152},[52069],{"type":31,"value":36158},{"type":21,"tag":139,"props":52071,"children":52072},{"class":141,"line":369},[52073],{"type":21,"tag":139,"props":52074,"children":52075},{"emptyLinePlaceholder":194},[52076],{"type":31,"value":197},{"type":21,"tag":139,"props":52078,"children":52079},{"class":141,"line":378},[52080,52085,52089,52094,52098,52102,52106],{"type":21,"tag":139,"props":52081,"children":52082},{"style":152},[52083],{"type":31,"value":52084},"samples ",{"type":21,"tag":139,"props":52086,"children":52087},{"style":146},[52088],{"type":31,"value":211},{"type":21,"tag":139,"props":52090,"children":52091},{"style":152},[52092],{"type":31,"value":52093}," sample_circuit(result.x, ",{"type":21,"tag":139,"props":52095,"children":52096},{"style":923},[52097],{"type":31,"value":926},{"type":21,"tag":139,"props":52099,"children":52100},{"style":146},[52101],{"type":31,"value":211},{"type":21,"tag":139,"props":52103,"children":52104},{"style":214},[52105],{"type":31,"value":1730},{"type":21,"tag":139,"props":52107,"children":52108},{"style":152},[52109],{"type":31,"value":270},{"type":21,"tag":139,"props":52111,"children":52112},{"class":141,"line":387},[52113],{"type":21,"tag":139,"props":52114,"children":52115},{"emptyLinePlaceholder":194},[52116],{"type":31,"value":197},{"type":21,"tag":139,"props":52118,"children":52119},{"class":141,"line":396},[52120],{"type":21,"tag":139,"props":52121,"children":52122},{"style":220},[52123],{"type":31,"value":52124},"# Count cut values for each bitstring\n",{"type":21,"tag":139,"props":52126,"children":52127},{"class":141,"line":414},[52128,52132,52137,52141],{"type":21,"tag":139,"props":52129,"children":52130},{"style":146},[52131],{"type":31,"value":149},{"type":21,"tag":139,"props":52133,"children":52134},{"style":152},[52135],{"type":31,"value":52136}," collections ",{"type":21,"tag":139,"props":52138,"children":52139},{"style":146},[52140],{"type":31,"value":160},{"type":21,"tag":139,"props":52142,"children":52143},{"style":152},[52144],{"type":31,"value":52145}," Counter\n",{"type":21,"tag":139,"props":52147,"children":52148},{"class":141,"line":12589},[52149,52154,52158],{"type":21,"tag":139,"props":52150,"children":52151},{"style":152},[52152],{"type":31,"value":52153},"cut_counts ",{"type":21,"tag":139,"props":52155,"children":52156},{"style":146},[52157],{"type":31,"value":211},{"type":21,"tag":139,"props":52159,"children":52160},{"style":152},[52161],{"type":31,"value":52162}," Counter()\n",{"type":21,"tag":139,"props":52164,"children":52165},{"class":141,"line":12606},[52166,52170,52175,52179],{"type":21,"tag":139,"props":52167,"children":52168},{"style":146},[52169],{"type":31,"value":1486},{"type":21,"tag":139,"props":52171,"children":52172},{"style":152},[52173],{"type":31,"value":52174}," bits ",{"type":21,"tag":139,"props":52176,"children":52177},{"style":146},[52178],{"type":31,"value":1496},{"type":21,"tag":139,"props":52180,"children":52181},{"style":152},[52182],{"type":31,"value":52183}," samples:\n",{"type":21,"tag":139,"props":52185,"children":52186},{"class":141,"line":12622},[52187,52192,52196,52201,52206,52211,52216,52220,52224,52228],{"type":21,"tag":139,"props":52188,"children":52189},{"style":152},[52190],{"type":31,"value":52191},"    key ",{"type":21,"tag":139,"props":52193,"children":52194},{"style":146},[52195],{"type":31,"value":211},{"type":21,"tag":139,"props":52197,"children":52198},{"style":262},[52199],{"type":31,"value":52200}," ''",{"type":21,"tag":139,"props":52202,"children":52203},{"style":152},[52204],{"type":31,"value":52205},".join(",{"type":21,"tag":139,"props":52207,"children":52208},{"style":214},[52209],{"type":31,"value":52210},"str",{"type":21,"tag":139,"props":52212,"children":52213},{"style":152},[52214],{"type":31,"value":52215},"(b) ",{"type":21,"tag":139,"props":52217,"children":52218},{"style":146},[52219],{"type":31,"value":1486},{"type":21,"tag":139,"props":52221,"children":52222},{"style":152},[52223],{"type":31,"value":26795},{"type":21,"tag":139,"props":52225,"children":52226},{"style":146},[52227],{"type":31,"value":1496},{"type":21,"tag":139,"props":52229,"children":52230},{"style":152},[52231],{"type":31,"value":52232}," bits)\n",{"type":21,"tag":139,"props":52234,"children":52235},{"class":141,"line":12630},[52236,52241,52245,52249,52253,52257,52261,52265,52269,52273,52277,52281,52285],{"type":21,"tag":139,"props":52237,"children":52238},{"style":152},[52239],{"type":31,"value":52240},"    cut ",{"type":21,"tag":139,"props":52242,"children":52243},{"style":146},[52244],{"type":31,"value":211},{"type":21,"tag":139,"props":52246,"children":52247},{"style":214},[52248],{"type":31,"value":19683},{"type":21,"tag":139,"props":52250,"children":52251},{"style":152},[52252],{"type":31,"value":953},{"type":21,"tag":139,"props":52254,"children":52255},{"style":214},[52256],{"type":31,"value":328},{"type":21,"tag":139,"props":52258,"children":52259},{"style":146},[52260],{"type":31,"value":51530},{"type":21,"tag":139,"props":52262,"children":52263},{"style":152},[52264],{"type":31,"value":50972},{"type":21,"tag":139,"props":52266,"children":52267},{"style":146},[52268],{"type":31,"value":1496},{"type":21,"tag":139,"props":52270,"children":52271},{"style":152},[52272],{"type":31,"value":51543},{"type":21,"tag":139,"props":52274,"children":52275},{"style":146},[52276],{"type":31,"value":19711},{"type":21,"tag":139,"props":52278,"children":52279},{"style":152},[52280],{"type":31,"value":51552},{"type":21,"tag":139,"props":52282,"children":52283},{"style":146},[52284],{"type":31,"value":51557},{"type":21,"tag":139,"props":52286,"children":52287},{"style":152},[52288],{"type":31,"value":51562},{"type":21,"tag":139,"props":52290,"children":52291},{"class":141,"line":17747},[52292,52297,52301],{"type":21,"tag":139,"props":52293,"children":52294},{"style":152},[52295],{"type":31,"value":52296},"    cut_counts[(key, cut)] ",{"type":21,"tag":139,"props":52298,"children":52299},{"style":146},[52300],{"type":31,"value":51575},{"type":21,"tag":139,"props":52302,"children":52303},{"style":214},[52304],{"type":31,"value":1536},{"type":21,"tag":139,"props":52306,"children":52307},{"class":141,"line":17765},[52308],{"type":21,"tag":139,"props":52309,"children":52310},{"emptyLinePlaceholder":194},[52311],{"type":31,"value":197},{"type":21,"tag":139,"props":52313,"children":52314},{"class":141,"line":17790},[52315],{"type":21,"tag":139,"props":52316,"children":52317},{"style":220},[52318],{"type":31,"value":52319},"# Show top 5 most frequent bitstrings\n",{"type":21,"tag":139,"props":52321,"children":52322},{"class":141,"line":17817},[52323,52327,52332,52336,52340,52345,52349,52353,52358,52362,52367,52371,52375,52379],{"type":21,"tag":139,"props":52324,"children":52325},{"style":146},[52326],{"type":31,"value":1486},{"type":21,"tag":139,"props":52328,"children":52329},{"style":152},[52330],{"type":31,"value":52331}," (bits, cut), count ",{"type":21,"tag":139,"props":52333,"children":52334},{"style":146},[52335],{"type":31,"value":1496},{"type":21,"tag":139,"props":52337,"children":52338},{"style":214},[52339],{"type":31,"value":38893},{"type":21,"tag":139,"props":52341,"children":52342},{"style":152},[52343],{"type":31,"value":52344},"(cut_counts.items(), ",{"type":21,"tag":139,"props":52346,"children":52347},{"style":923},[52348],{"type":31,"value":4832},{"type":21,"tag":139,"props":52350,"children":52351},{"style":146},[52352],{"type":31,"value":25494},{"type":21,"tag":139,"props":52354,"children":52355},{"style":152},[52356],{"type":31,"value":52357}," x: ",{"type":21,"tag":139,"props":52359,"children":52360},{"style":146},[52361],{"type":31,"value":825},{"type":21,"tag":139,"props":52363,"children":52364},{"style":152},[52365],{"type":31,"value":52366},"x[",{"type":21,"tag":139,"props":52368,"children":52369},{"style":214},[52370],{"type":31,"value":328},{"type":21,"tag":139,"props":52372,"children":52373},{"style":152},[52374],{"type":31,"value":39329},{"type":21,"tag":139,"props":52376,"children":52377},{"style":214},[52378],{"type":31,"value":11467},{"type":21,"tag":139,"props":52380,"children":52381},{"style":152},[52382],{"type":31,"value":20869},{"type":21,"tag":139,"props":52384,"children":52385},{"class":141,"line":17843},[52386,52390,52394,52398,52402,52406,52410,52414,52419,52423,52428,52432,52437,52441,52446,52450,52454,52459,52463,52468],{"type":21,"tag":139,"props":52387,"children":52388},{"style":214},[52389],{"type":31,"value":6212},{"type":21,"tag":139,"props":52391,"children":52392},{"style":152},[52393],{"type":31,"value":953},{"type":21,"tag":139,"props":52395,"children":52396},{"style":146},[52397],{"type":31,"value":7524},{"type":21,"tag":139,"props":52399,"children":52400},{"style":262},[52401],{"type":31,"value":15370},{"type":21,"tag":139,"props":52403,"children":52404},{"style":214},[52405],{"type":31,"value":7534},{"type":21,"tag":139,"props":52407,"children":52408},{"style":152},[52409],{"type":31,"value":39000},{"type":21,"tag":139,"props":52411,"children":52412},{"style":214},[52413],{"type":31,"value":7543},{"type":21,"tag":139,"props":52415,"children":52416},{"style":262},[52417],{"type":31,"value":52418},"  cut=",{"type":21,"tag":139,"props":52420,"children":52421},{"style":214},[52422],{"type":31,"value":7534},{"type":21,"tag":139,"props":52424,"children":52425},{"style":152},[52426],{"type":31,"value":52427},"cut",{"type":21,"tag":139,"props":52429,"children":52430},{"style":214},[52431],{"type":31,"value":7543},{"type":21,"tag":139,"props":52433,"children":52434},{"style":262},[52435],{"type":31,"value":52436},"  frequency=",{"type":21,"tag":139,"props":52438,"children":52439},{"style":214},[52440],{"type":31,"value":7534},{"type":21,"tag":139,"props":52442,"children":52443},{"style":152},[52444],{"type":31,"value":52445},"count",{"type":21,"tag":139,"props":52447,"children":52448},{"style":146},[52449],{"type":31,"value":5062},{"type":21,"tag":139,"props":52451,"children":52452},{"style":214},[52453],{"type":31,"value":14062},{"type":21,"tag":139,"props":52455,"children":52456},{"style":146},[52457],{"type":31,"value":52458},":.1f",{"type":21,"tag":139,"props":52460,"children":52461},{"style":214},[52462],{"type":31,"value":7543},{"type":21,"tag":139,"props":52464,"children":52465},{"style":262},[52466],{"type":31,"value":52467},"%\"",{"type":21,"tag":139,"props":52469,"children":52470},{"style":152},[52471],{"type":31,"value":270},{"type":21,"tag":22,"props":52473,"children":52474},{},[52475],{"type":31,"value":52476},"期待される出力：",{"type":21,"tag":129,"props":52478,"children":52480},{"code":52479},"0101  cut=4  frequency=28.3%\n1010  cut=4  frequency=27.1%\n0110  cut=3  frequency=8.4%\n...\n",[52481],{"type":21,"tag":104,"props":52482,"children":52483},{"__ignoreMap":7},[52484],{"type":31,"value":52479},{"type":21,"tag":22,"props":52486,"children":52487},{},[52488,52490,52495,52496,52501],{"type":31,"value":52489},"最適解（",{"type":21,"tag":104,"props":52491,"children":52493},{"className":52492},[],[52494],{"type":31,"value":50621},{"type":31,"value":501},{"type":21,"tag":104,"props":52497,"children":52499},{"className":52498},[],[52500],{"type":31,"value":14221},{"type":31,"value":52502},"）が支配的になります — QAOAがそれらの確率を増幅したのです。",{"type":21,"tag":41,"props":52504,"children":52506},{"id":52505},"同じ問題をhlquantumで",[52507],{"type":31,"value":52508},"同じ問題をHLQuantumで",{"type":21,"tag":22,"props":52510,"children":52511},{},[52512],{"type":31,"value":52513},"HLQuantumの組み込みQAOAを使えば、回路の構築を完全に省略できます：",{"type":21,"tag":129,"props":52515,"children":52517},{"code":52516,"language":133,"meta":7,"className":131,"style":7},"import hlquantum as hlq\n\ngraph = [(0, 1), (1, 2), (2, 3), (3, 0)]\n\nresult = hlq.algorithms.qaoa(\n    graph=graph,\n    problem='max_cut',\n    p=2,\n    backend='pennylane',\n    shots=2000,\n)\n\nprint(result.best_solution)   # '0101' or '1010'\nprint(result.cut_value)       # 4\nprint(result.approximation_ratio)  # ~0.96 for p=2\n",[52518],{"type":21,"tag":104,"props":52519,"children":52520},{"__ignoreMap":7},[52521,52540,52547,52627,52634,52650,52667,52688,52708,52727,52746,52753,52760,52777,52794],{"type":21,"tag":139,"props":52522,"children":52523},{"class":141,"line":142},[52524,52528,52532,52536],{"type":21,"tag":139,"props":52525,"children":52526},{"style":146},[52527],{"type":31,"value":160},{"type":21,"tag":139,"props":52529,"children":52530},{"style":152},[52531],{"type":31,"value":41040},{"type":21,"tag":139,"props":52533,"children":52534},{"style":146},[52535],{"type":31,"value":5343},{"type":21,"tag":139,"props":52537,"children":52538},{"style":152},[52539],{"type":31,"value":41049},{"type":21,"tag":139,"props":52541,"children":52542},{"class":141,"line":168},[52543],{"type":21,"tag":139,"props":52544,"children":52545},{"emptyLinePlaceholder":194},[52546],{"type":31,"value":197},{"type":21,"tag":139,"props":52548,"children":52549},{"class":141,"line":190},[52550,52555,52559,52563,52567,52571,52575,52579,52583,52587,52591,52595,52599,52603,52607,52611,52615,52619,52623],{"type":21,"tag":139,"props":52551,"children":52552},{"style":152},[52553],{"type":31,"value":52554},"graph ",{"type":21,"tag":139,"props":52556,"children":52557},{"style":146},[52558],{"type":31,"value":211},{"type":21,"tag":139,"props":52560,"children":52561},{"style":152},[52562],{"type":31,"value":1388},{"type":21,"tag":139,"props":52564,"children":52565},{"style":214},[52566],{"type":31,"value":407},{"type":21,"tag":139,"props":52568,"children":52569},{"style":152},[52570],{"type":31,"value":259},{"type":21,"tag":139,"props":52572,"children":52573},{"style":214},[52574],{"type":31,"value":328},{"type":21,"tag":139,"props":52576,"children":52577},{"style":152},[52578],{"type":31,"value":1405},{"type":21,"tag":139,"props":52580,"children":52581},{"style":214},[52582],{"type":31,"value":328},{"type":21,"tag":139,"props":52584,"children":52585},{"style":152},[52586],{"type":31,"value":259},{"type":21,"tag":139,"props":52588,"children":52589},{"style":214},[52590],{"type":31,"value":293},{"type":21,"tag":139,"props":52592,"children":52593},{"style":152},[52594],{"type":31,"value":1405},{"type":21,"tag":139,"props":52596,"children":52597},{"style":214},[52598],{"type":31,"value":293},{"type":21,"tag":139,"props":52600,"children":52601},{"style":152},[52602],{"type":31,"value":259},{"type":21,"tag":139,"props":52604,"children":52605},{"style":214},[52606],{"type":31,"value":254},{"type":21,"tag":139,"props":52608,"children":52609},{"style":152},[52610],{"type":31,"value":1405},{"type":21,"tag":139,"props":52612,"children":52613},{"style":214},[52614],{"type":31,"value":254},{"type":21,"tag":139,"props":52616,"children":52617},{"style":152},[52618],{"type":31,"value":259},{"type":21,"tag":139,"props":52620,"children":52621},{"style":214},[52622],{"type":31,"value":407},{"type":21,"tag":139,"props":52624,"children":52625},{"style":152},[52626],{"type":31,"value":1454},{"type":21,"tag":139,"props":52628,"children":52629},{"class":141,"line":200},[52630],{"type":21,"tag":139,"props":52631,"children":52632},{"emptyLinePlaceholder":194},[52633],{"type":31,"value":197},{"type":21,"tag":139,"props":52635,"children":52636},{"class":141,"line":226},[52637,52641,52645],{"type":21,"tag":139,"props":52638,"children":52639},{"style":152},[52640],{"type":31,"value":4868},{"type":21,"tag":139,"props":52642,"children":52643},{"style":146},[52644],{"type":31,"value":211},{"type":21,"tag":139,"props":52646,"children":52647},{"style":152},[52648],{"type":31,"value":52649}," hlq.algorithms.qaoa(\n",{"type":21,"tag":139,"props":52651,"children":52652},{"class":141,"line":234},[52653,52658,52662],{"type":21,"tag":139,"props":52654,"children":52655},{"style":923},[52656],{"type":31,"value":52657},"    graph",{"type":21,"tag":139,"props":52659,"children":52660},{"style":146},[52661],{"type":31,"value":211},{"type":21,"tag":139,"props":52663,"children":52664},{"style":152},[52665],{"type":31,"value":52666},"graph,\n",{"type":21,"tag":139,"props":52668,"children":52669},{"class":141,"line":273},[52670,52675,52679,52684],{"type":21,"tag":139,"props":52671,"children":52672},{"style":923},[52673],{"type":31,"value":52674},"    problem",{"type":21,"tag":139,"props":52676,"children":52677},{"style":146},[52678],{"type":31,"value":211},{"type":21,"tag":139,"props":52680,"children":52681},{"style":262},[52682],{"type":31,"value":52683},"'max_cut'",{"type":21,"tag":139,"props":52685,"children":52686},{"style":152},[52687],{"type":31,"value":4811},{"type":21,"tag":139,"props":52689,"children":52690},{"class":141,"line":309},[52691,52696,52700,52704],{"type":21,"tag":139,"props":52692,"children":52693},{"style":923},[52694],{"type":31,"value":52695},"    p",{"type":21,"tag":139,"props":52697,"children":52698},{"style":146},[52699],{"type":31,"value":211},{"type":21,"tag":139,"props":52701,"children":52702},{"style":214},[52703],{"type":31,"value":293},{"type":21,"tag":139,"props":52705,"children":52706},{"style":152},[52707],{"type":31,"value":4811},{"type":21,"tag":139,"props":52709,"children":52710},{"class":141,"line":16},[52711,52715,52719,52723],{"type":21,"tag":139,"props":52712,"children":52713},{"style":923},[52714],{"type":31,"value":44557},{"type":21,"tag":139,"props":52716,"children":52717},{"style":146},[52718],{"type":31,"value":211},{"type":21,"tag":139,"props":52720,"children":52721},{"style":262},[52722],{"type":31,"value":43892},{"type":21,"tag":139,"props":52724,"children":52725},{"style":152},[52726],{"type":31,"value":4811},{"type":21,"tag":139,"props":52728,"children":52729},{"class":141,"line":361},[52730,52734,52738,52742],{"type":21,"tag":139,"props":52731,"children":52732},{"style":923},[52733],{"type":31,"value":50489},{"type":21,"tag":139,"props":52735,"children":52736},{"style":146},[52737],{"type":31,"value":211},{"type":21,"tag":139,"props":52739,"children":52740},{"style":214},[52741],{"type":31,"value":11266},{"type":21,"tag":139,"props":52743,"children":52744},{"style":152},[52745],{"type":31,"value":4811},{"type":21,"tag":139,"props":52747,"children":52748},{"class":141,"line":369},[52749],{"type":21,"tag":139,"props":52750,"children":52751},{"style":152},[52752],{"type":31,"value":270},{"type":21,"tag":139,"props":52754,"children":52755},{"class":141,"line":378},[52756],{"type":21,"tag":139,"props":52757,"children":52758},{"emptyLinePlaceholder":194},[52759],{"type":31,"value":197},{"type":21,"tag":139,"props":52761,"children":52762},{"class":141,"line":387},[52763,52767,52772],{"type":21,"tag":139,"props":52764,"children":52765},{"style":214},[52766],{"type":31,"value":948},{"type":21,"tag":139,"props":52768,"children":52769},{"style":152},[52770],{"type":31,"value":52771},"(result.best_solution)   ",{"type":21,"tag":139,"props":52773,"children":52774},{"style":220},[52775],{"type":31,"value":52776},"# '0101' or '1010'\n",{"type":21,"tag":139,"props":52778,"children":52779},{"class":141,"line":396},[52780,52784,52789],{"type":21,"tag":139,"props":52781,"children":52782},{"style":214},[52783],{"type":31,"value":948},{"type":21,"tag":139,"props":52785,"children":52786},{"style":152},[52787],{"type":31,"value":52788},"(result.cut_value)       ",{"type":21,"tag":139,"props":52790,"children":52791},{"style":220},[52792],{"type":31,"value":52793},"# 4\n",{"type":21,"tag":139,"props":52795,"children":52796},{"class":141,"line":414},[52797,52801,52806],{"type":21,"tag":139,"props":52798,"children":52799},{"style":214},[52800],{"type":31,"value":948},{"type":21,"tag":139,"props":52802,"children":52803},{"style":152},[52804],{"type":31,"value":52805},"(result.approximation_ratio)  ",{"type":21,"tag":139,"props":52807,"children":52808},{"style":220},[52809],{"type":31,"value":52810},"# ~0.96 for p=2\n",{"type":21,"tag":22,"props":52812,"children":52813},{},[52814],{"type":31,"value":52815},"単一のフラグでバックエンドを切り替えられます：",{"type":21,"tag":129,"props":52817,"children":52819},{"code":52818,"language":133,"meta":7,"className":131,"style":7},"# Run on Qiskit Aer\nresult_qiskit = hlq.algorithms.qaoa(graph=graph, problem='max_cut', p=2, backend='qiskit')\n\n# Run on real IonQ hardware (if you have credits)\nresult_ionq = hlq.algorithms.qaoa(graph=graph, problem='max_cut', p=2,\n                                   backend='ionq', device='aria-1')\n",[52820],{"type":21,"tag":104,"props":52821,"children":52822},{"__ignoreMap":7},[52823,52831,52909,52916,52924,52984],{"type":21,"tag":139,"props":52824,"children":52825},{"class":141,"line":142},[52826],{"type":21,"tag":139,"props":52827,"children":52828},{"style":220},[52829],{"type":31,"value":52830},"# Run on Qiskit Aer\n",{"type":21,"tag":139,"props":52832,"children":52833},{"class":141,"line":168},[52834,52838,52842,52847,52852,52856,52861,52865,52869,52873,52877,52881,52885,52889,52893,52897,52901,52905],{"type":21,"tag":139,"props":52835,"children":52836},{"style":152},[52837],{"type":31,"value":43345},{"type":21,"tag":139,"props":52839,"children":52840},{"style":146},[52841],{"type":31,"value":211},{"type":21,"tag":139,"props":52843,"children":52844},{"style":152},[52845],{"type":31,"value":52846}," hlq.algorithms.qaoa(",{"type":21,"tag":139,"props":52848,"children":52849},{"style":923},[52850],{"type":31,"value":52851},"graph",{"type":21,"tag":139,"props":52853,"children":52854},{"style":146},[52855],{"type":31,"value":211},{"type":21,"tag":139,"props":52857,"children":52858},{"style":152},[52859],{"type":31,"value":52860},"graph, ",{"type":21,"tag":139,"props":52862,"children":52863},{"style":923},[52864],{"type":31,"value":12130},{"type":21,"tag":139,"props":52866,"children":52867},{"style":146},[52868],{"type":31,"value":211},{"type":21,"tag":139,"props":52870,"children":52871},{"style":262},[52872],{"type":31,"value":52683},{"type":21,"tag":139,"props":52874,"children":52875},{"style":152},[52876],{"type":31,"value":259},{"type":21,"tag":139,"props":52878,"children":52879},{"style":923},[52880],{"type":31,"value":22},{"type":21,"tag":139,"props":52882,"children":52883},{"style":146},[52884],{"type":31,"value":211},{"type":21,"tag":139,"props":52886,"children":52887},{"style":214},[52888],{"type":31,"value":293},{"type":21,"tag":139,"props":52890,"children":52891},{"style":152},[52892],{"type":31,"value":259},{"type":21,"tag":139,"props":52894,"children":52895},{"style":923},[52896],{"type":31,"value":10987},{"type":21,"tag":139,"props":52898,"children":52899},{"style":146},[52900],{"type":31,"value":211},{"type":21,"tag":139,"props":52902,"children":52903},{"style":262},[52904],{"type":31,"value":41129},{"type":21,"tag":139,"props":52906,"children":52907},{"style":152},[52908],{"type":31,"value":270},{"type":21,"tag":139,"props":52910,"children":52911},{"class":141,"line":190},[52912],{"type":21,"tag":139,"props":52913,"children":52914},{"emptyLinePlaceholder":194},[52915],{"type":31,"value":197},{"type":21,"tag":139,"props":52917,"children":52918},{"class":141,"line":200},[52919],{"type":21,"tag":139,"props":52920,"children":52921},{"style":220},[52922],{"type":31,"value":52923},"# Run on real IonQ hardware (if you have credits)\n",{"type":21,"tag":139,"props":52925,"children":52926},{"class":141,"line":226},[52927,52932,52936,52940,52944,52948,52952,52956,52960,52964,52968,52972,52976,52980],{"type":21,"tag":139,"props":52928,"children":52929},{"style":152},[52930],{"type":31,"value":52931},"result_ionq ",{"type":21,"tag":139,"props":52933,"children":52934},{"style":146},[52935],{"type":31,"value":211},{"type":21,"tag":139,"props":52937,"children":52938},{"style":152},[52939],{"type":31,"value":52846},{"type":21,"tag":139,"props":52941,"children":52942},{"style":923},[52943],{"type":31,"value":52851},{"type":21,"tag":139,"props":52945,"children":52946},{"style":146},[52947],{"type":31,"value":211},{"type":21,"tag":139,"props":52949,"children":52950},{"style":152},[52951],{"type":31,"value":52860},{"type":21,"tag":139,"props":52953,"children":52954},{"style":923},[52955],{"type":31,"value":12130},{"type":21,"tag":139,"props":52957,"children":52958},{"style":146},[52959],{"type":31,"value":211},{"type":21,"tag":139,"props":52961,"children":52962},{"style":262},[52963],{"type":31,"value":52683},{"type":21,"tag":139,"props":52965,"children":52966},{"style":152},[52967],{"type":31,"value":259},{"type":21,"tag":139,"props":52969,"children":52970},{"style":923},[52971],{"type":31,"value":22},{"type":21,"tag":139,"props":52973,"children":52974},{"style":146},[52975],{"type":31,"value":211},{"type":21,"tag":139,"props":52977,"children":52978},{"style":214},[52979],{"type":31,"value":293},{"type":21,"tag":139,"props":52981,"children":52982},{"style":152},[52983],{"type":31,"value":4811},{"type":21,"tag":139,"props":52985,"children":52986},{"class":141,"line":234},[52987,52992,52996,53000,53004,53008,53012,53016],{"type":21,"tag":139,"props":52988,"children":52989},{"style":923},[52990],{"type":31,"value":52991},"                                   backend",{"type":21,"tag":139,"props":52993,"children":52994},{"style":146},[52995],{"type":31,"value":211},{"type":21,"tag":139,"props":52997,"children":52998},{"style":262},[52999],{"type":31,"value":43996},{"type":21,"tag":139,"props":53001,"children":53002},{"style":152},[53003],{"type":31,"value":259},{"type":21,"tag":139,"props":53005,"children":53006},{"style":923},[53007],{"type":31,"value":44005},{"type":21,"tag":139,"props":53009,"children":53010},{"style":146},[53011],{"type":31,"value":211},{"type":21,"tag":139,"props":53013,"children":53014},{"style":262},[53015],{"type":31,"value":44014},{"type":21,"tag":139,"props":53017,"children":53018},{"style":152},[53019],{"type":31,"value":270},{"type":21,"tag":41,"props":53021,"children":53023},{"id":53022},"より良い結果のためにpを増やす",[53024],{"type":31,"value":53022},{"type":21,"tag":22,"props":53026,"children":53027},{},[53028,53030,53035,53037,53043],{"type":31,"value":53029},"QAOAの近似比は深さ ",{"type":21,"tag":104,"props":53031,"children":53033},{"className":53032},[],[53034],{"type":31,"value":22},{"type":31,"value":53036}," とともに向上します。",{"type":21,"tag":104,"props":53038,"children":53040},{"className":53039},[],[53041],{"type":31,"value":53042},"p→∞",{"type":31,"value":53044}," では、QAOAは問題を厳密に解きます。実際には：",{"type":21,"tag":3150,"props":53046,"children":53047},{},[53048,53068],{"type":21,"tag":3154,"props":53049,"children":53050},{},[53051],{"type":21,"tag":3158,"props":53052,"children":53053},{},[53054,53058,53063],{"type":21,"tag":3162,"props":53055,"children":53056},{},[53057],{"type":31,"value":22},{"type":21,"tag":3162,"props":53059,"children":53060},{},[53061],{"type":31,"value":53062},"Max-Cutでの典型的な近似比",{"type":21,"tag":3162,"props":53064,"children":53065},{},[53066],{"type":31,"value":53067},"必要なゲート数",{"type":21,"tag":3176,"props":53069,"children":53070},{},[53071,53088,53105,53122],{"type":21,"tag":3158,"props":53072,"children":53073},{},[53074,53078,53083],{"type":21,"tag":3183,"props":53075,"children":53076},{},[53077],{"type":31,"value":328},{"type":21,"tag":3183,"props":53079,"children":53080},{},[53081],{"type":31,"value":53082},"~0.75",{"type":21,"tag":3183,"props":53084,"children":53085},{},[53086],{"type":31,"value":53087},"2×edges + 4n",{"type":21,"tag":3158,"props":53089,"children":53090},{},[53091,53095,53100],{"type":21,"tag":3183,"props":53092,"children":53093},{},[53094],{"type":31,"value":293},{"type":21,"tag":3183,"props":53096,"children":53097},{},[53098],{"type":31,"value":53099},"~0.86",{"type":21,"tag":3183,"props":53101,"children":53102},{},[53103],{"type":31,"value":53104},"4×edges + 8n",{"type":21,"tag":3158,"props":53106,"children":53107},{},[53108,53112,53117],{"type":21,"tag":3183,"props":53109,"children":53110},{},[53111],{"type":31,"value":254},{"type":21,"tag":3183,"props":53113,"children":53114},{},[53115],{"type":31,"value":53116},"~0.91",{"type":21,"tag":3183,"props":53118,"children":53119},{},[53120],{"type":31,"value":53121},"6×edges + 12n",{"type":21,"tag":3158,"props":53123,"children":53124},{},[53125,53129,53134],{"type":21,"tag":3183,"props":53126,"children":53127},{},[53128],{"type":31,"value":11467},{"type":21,"tag":3183,"props":53130,"children":53131},{},[53132],{"type":31,"value":53133},"~0.95",{"type":21,"tag":3183,"props":53135,"children":53136},{},[53137],{"type":31,"value":53138},"10×edges + 20n",{"type":21,"tag":22,"props":53140,"children":53141},{},[53142,53144,53150,53152,53157,53158,53164],{"type":31,"value":53143},"トレードオフとして、深い回路は実ハードウェア上でより多くのノイズを蓄積します。シミュレータ上では ",{"type":21,"tag":104,"props":53145,"children":53147},{"className":53146},[],[53148],{"type":31,"value":53149},"p=3",{"type":31,"value":53151}," 以上を使いましょう。NISQ QPU上では、",{"type":21,"tag":104,"props":53153,"children":53155},{"className":53154},[],[53156],{"type":31,"value":41281},{"type":31,"value":40554},{"type":21,"tag":104,"props":53159,"children":53161},{"className":53160},[],[53162],{"type":31,"value":53163},"p=2",{"type":31,"value":53165}," が通常の実用的な限界です。",{"type":21,"tag":41,"props":53167,"children":53169},{"id":53168},"qaoaはいつ使う価値があるのか",[53170],{"type":31,"value":53171},"QAOAはいつ使う価値があるのか",{"type":21,"tag":22,"props":53173,"children":53174},{},[53175],{"type":21,"tag":16802,"props":53176,"children":53177},{},[53178],{"type":31,"value":53179},"現在有用な用途：",{"type":21,"tag":1112,"props":53181,"children":53182},{},[53183,53188,53193],{"type":21,"tag":72,"props":53184,"children":53185},{},[53186],{"type":31,"value":53187},"NISQデバイスのベンチマーク（QAOAは標準的なベンチマーク回路）",{"type":21,"tag":72,"props":53189,"children":53190},{},[53191],{"type":31,"value":53192},"変分量子アルゴリズムに関する学術研究",{"type":21,"tag":72,"props":53194,"children":53195},{},[53196],{"type":31,"value":53197},"シミュレータ上の小規模グラフ（20ノード未満）",{"type":21,"tag":22,"props":53199,"children":53200},{},[53201],{"type":21,"tag":16802,"props":53202,"children":53203},{},[53204],{"type":31,"value":53205},"まだ有用ではない用途：",{"type":21,"tag":1112,"props":53207,"children":53208},{},[53209,53214],{"type":21,"tag":72,"props":53210,"children":53211},{},[53212],{"type":31,"value":53213},"実ハードウェア上での大規模な本番最適化 — 古典的ヒューリスティクス（シミュレーテッドアニーリング、タブーサーチ）は実用的な問題において依然としてQAOAを上回る",{"type":21,"tag":72,"props":53215,"children":53216},{},[53217],{"type":31,"value":53218},"大規模グラフ — 回路の深さはグラフの密度とともに増大する",{"type":21,"tag":22,"props":53220,"children":53221},{},[53222,53227,53229,53234],{"type":21,"tag":16802,"props":53223,"children":53224},{},[53225],{"type":31,"value":53226},"その可能性：",{"type":31,"value":53228}," 高深度回路を扱える将来の誤り耐性ハードウェア上では、大きな ",{"type":21,"tag":104,"props":53230,"children":53232},{"className":53231},[],[53233],{"type":31,"value":22},{"type":31,"value":53235}," でのQAOAが密なNP困難最適化に対して真の高速化をもたらしうるかもしれません。理論的基盤は堅固ですが、ハードウェアはまだそこに達していません。",{"type":21,"tag":41,"props":53237,"children":53238},{"id":1108},[53239],{"type":31,"value":1108},{"type":21,"tag":1112,"props":53241,"children":53242},{},[53243,53256,53269],{"type":21,"tag":72,"props":53244,"children":53245},{},[53246,53254],{"type":21,"tag":16802,"props":53247,"children":53248},{},[53249],{"type":21,"tag":26,"props":53250,"children":53251},{"href":17319},[53252],{"type":31,"value":53253},"PennyLane SDKガイド",{"type":31,"value":53255}," — より多くの変分アルゴリズムのためにPennyLaneをセットアップする",{"type":21,"tag":72,"props":53257,"children":53258},{},[53259,53267],{"type":21,"tag":16802,"props":53260,"children":53261},{},[53262],{"type":21,"tag":26,"props":53263,"children":53264},{"href":3610},[53265],{"type":31,"value":53266},"VQEガイド",{"type":31,"value":53268}," — 量子化学のための姉妹アルゴリズム",{"type":21,"tag":72,"props":53270,"children":53271},{},[53272,53279],{"type":21,"tag":16802,"props":53273,"children":53274},{},[53275],{"type":21,"tag":26,"props":53276,"children":53277},{"href":40749},[53278],{"type":31,"value":40752},{"type":31,"value":53280}," — 一つのAPIで任意のバックエンド上でQAOAを実行する",{"type":21,"tag":1168,"props":53282,"children":53283},{},[53284],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":53286},[53287,53288,53289,53290,53291,53292,53293,53294],{"id":50589,"depth":168,"text":50592},{"id":50632,"depth":168,"text":50635},{"id":50708,"depth":168,"text":50711},{"id":51866,"depth":168,"text":51866},{"id":52505,"depth":168,"text":52508},{"id":53022,"depth":168,"text":53022},{"id":53168,"depth":168,"text":53171},{"id":1108,"depth":168,"text":1108},"content:ja:blog:qaoa-max-cut-tutorial.md","ja\u002Fblog\u002Fqaoa-max-cut-tutorial.md","ja\u002Fblog\u002Fqaoa-max-cut-tutorial",{"_path":53299,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":53300,"description":53301,"date":53302,"author":11,"tags":53303,"readingTime":273,"body":53304,"_type":1187,"_id":55273,"_source":1189,"_file":55274,"_stem":55275,"_extension":1192},"\u002Fja\u002Fblog\u002Fquantum-simulators-compared","無料の量子シミュレータ比較: Qiskit Aer vs Cirq vs PennyLane vs CUDA-Q","主要な無料量子シミュレータの実践的な比較 — 性能、量子ビット上限、GPU対応、そしてそれぞれをいつ使うべきか。","2026-02-10",[16867,13882,7919],{"type":18,"children":53305,"toc":55264},[53306,53311,53316,53499,53505,53514,53567,53737,53747,53753,53769,54092,54112,54135,54182,54192,54198,54207,54439,54449,54467,54477,54483,54492,54664,54674,54680,54691,54901,54911,54917,54928,55255,55260],{"type":21,"tag":22,"props":53307,"children":53308},{},[53309],{"type":31,"value":53310},"量子シミュレータを使えば、ハードウェアのキューを待ったりショットごとに料金を支払ったりすることなく回路をテストできます。しかし、無料で利用できる主要なシミュレータが6つもある中で、どれを使うべきでしょうか。ここでは実践的な整理をお届けします。",{"type":21,"tag":41,"props":53312,"children":53314},{"id":53313},"手っ取り早い答え",[53315],{"type":31,"value":53313},{"type":21,"tag":3150,"props":53317,"children":53318},{},[53319,53344],{"type":21,"tag":3154,"props":53320,"children":53321},{},[53322],{"type":21,"tag":3158,"props":53323,"children":53324},{},[53325,53330,53334,53339],{"type":21,"tag":3162,"props":53326,"children":53327},{},[53328],{"type":31,"value":53329},"シミュレータ",{"type":21,"tag":3162,"props":53331,"children":53332},{},[53333],{"type":31,"value":42526},{"type":21,"tag":3162,"props":53335,"children":53336},{},[53337],{"type":31,"value":53338},"最大量子ビット数（CPU）",{"type":21,"tag":3162,"props":53340,"children":53341},{},[53342],{"type":31,"value":53343},"GPU?",{"type":21,"tag":3176,"props":53345,"children":53346},{},[53347,53373,53399,53425,53450,53475],{"type":21,"tag":3158,"props":53348,"children":53349},{},[53350,53358,53363,53368],{"type":21,"tag":3183,"props":53351,"children":53352},{},[53353],{"type":21,"tag":16802,"props":53354,"children":53355},{},[53356],{"type":31,"value":53357},"Qiskit Aer",{"type":21,"tag":3183,"props":53359,"children":53360},{},[53361],{"type":31,"value":53362},"汎用",{"type":21,"tag":3183,"props":53364,"children":53365},{},[53366],{"type":31,"value":53367},"約30（状態ベクトル）",{"type":21,"tag":3183,"props":53369,"children":53370},{},[53371],{"type":31,"value":53372},"✅ AerCuda",{"type":21,"tag":3158,"props":53374,"children":53375},{},[53376,53384,53389,53394],{"type":21,"tag":3183,"props":53377,"children":53378},{},[53379],{"type":21,"tag":16802,"props":53380,"children":53381},{},[53382],{"type":31,"value":53383},"Cirq Simulator",{"type":21,"tag":3183,"props":53385,"children":53386},{},[53387],{"type":31,"value":53388},"Cirq回路、密度行列",{"type":21,"tag":3183,"props":53390,"children":53391},{},[53392],{"type":31,"value":53393},"約25",{"type":21,"tag":3183,"props":53395,"children":53396},{},[53397],{"type":31,"value":53398},"❌",{"type":21,"tag":3158,"props":53400,"children":53401},{},[53402,53410,53415,53420],{"type":21,"tag":3183,"props":53403,"children":53404},{},[53405],{"type":21,"tag":16802,"props":53406,"children":53407},{},[53408],{"type":31,"value":53409},"PennyLane default.qubit",{"type":21,"tag":3183,"props":53411,"children":53412},{},[53413],{"type":31,"value":53414},"QML、勾配",{"type":21,"tag":3183,"props":53416,"children":53417},{},[53418],{"type":31,"value":53419},"約20",{"type":21,"tag":3183,"props":53421,"children":53422},{},[53423],{"type":31,"value":53424},"✅ lightning.gpu",{"type":21,"tag":3158,"props":53426,"children":53427},{},[53428,53436,53441,53446],{"type":21,"tag":3183,"props":53429,"children":53430},{},[53431],{"type":21,"tag":16802,"props":53432,"children":53433},{},[53434],{"type":31,"value":53435},"PennyLane lightning.qubit",{"type":21,"tag":3183,"props":53437,"children":53438},{},[53439],{"type":31,"value":53440},"高速なCPUシミュレーション",{"type":21,"tag":3183,"props":53442,"children":53443},{},[53444],{"type":31,"value":53445},"約30",{"type":21,"tag":3183,"props":53447,"children":53448},{},[53449],{"type":31,"value":53424},{"type":21,"tag":3158,"props":53451,"children":53452},{},[53453,53460,53465,53470],{"type":21,"tag":3183,"props":53454,"children":53455},{},[53456],{"type":21,"tag":16802,"props":53457,"children":53458},{},[53459],{"type":31,"value":42351},{"type":21,"tag":3183,"props":53461,"children":53462},{},[53463],{"type":31,"value":53464},"大規模回路、速度",{"type":21,"tag":3183,"props":53466,"children":53467},{},[53468],{"type":31,"value":53469},"シングルGPUで約34",{"type":21,"tag":3183,"props":53471,"children":53472},{},[53473],{"type":31,"value":53474},"✅ ネイティブ",{"type":21,"tag":3158,"props":53476,"children":53477},{},[53478,53486,53491,53495],{"type":21,"tag":3183,"props":53479,"children":53480},{},[53481],{"type":21,"tag":16802,"props":53482,"children":53483},{},[53484],{"type":31,"value":53485},"Braket LocalSimulator",{"type":21,"tag":3183,"props":53487,"children":53488},{},[53489],{"type":31,"value":53490},"Braket回路、無料",{"type":21,"tag":3183,"props":53492,"children":53493},{},[53494],{"type":31,"value":53393},{"type":21,"tag":3183,"props":53496,"children":53497},{},[53498],{"type":31,"value":53398},{"type":21,"tag":41,"props":53500,"children":53502},{"id":53501},"qiskit-aer-働き者",[53503],{"type":31,"value":53504},"Qiskit Aer: 働き者",{"type":21,"tag":22,"props":53506,"children":53507},{},[53508,53512],{"type":21,"tag":26,"props":53509,"children":53510},{"href":1120},[53511],{"type":31,"value":53357},{"type":31,"value":53513}," は最も機能が充実した無料シミュレータです。複数のシミュレーション手法をサポートしています:",{"type":21,"tag":1112,"props":53515,"children":53516},{},[53517,53527,53537,53547,53557],{"type":21,"tag":72,"props":53518,"children":53519},{},[53520,53525],{"type":21,"tag":16802,"props":53521,"children":53522},{},[53523],{"type":31,"value":53524},"statevector_simulator",{"type":31,"value":53526},": 約30量子ビットまでの厳密なシミュレーション。メモリは 2ⁿ 個の複素数としてスケールします（30量子ビットには16 GBのRAMが必要）。",{"type":21,"tag":72,"props":53528,"children":53529},{},[53530,53535],{"type":21,"tag":16802,"props":53531,"children":53532},{},[53533],{"type":31,"value":53534},"qasm_simulator",{"type":31,"value":53536},": ノイズモデルに対応したショットベースのサンプリング",{"type":21,"tag":72,"props":53538,"children":53539},{},[53540,53545],{"type":21,"tag":16802,"props":53541,"children":53542},{},[53543],{"type":31,"value":53544},"density_matrix",{"type":31,"value":53546},": 混合状態と開放量子系をシミュレーション",{"type":21,"tag":72,"props":53548,"children":53549},{},[53550,53555],{"type":21,"tag":16802,"props":53551,"children":53552},{},[53553],{"type":31,"value":53554},"mps",{"type":31,"value":53556},": 行列積状態（Matrix Product State） — 限られたエンタングルメントを持つ回路を数百量子ビットまでシミュレーション",{"type":21,"tag":72,"props":53558,"children":53559},{},[53560,53565],{"type":21,"tag":16802,"props":53561,"children":53562},{},[53563],{"type":31,"value":53564},"stabilizer",{"type":31,"value":53566},": Clifford回路のみですが、多項式時間で数千量子ビットまでスケールします",{"type":21,"tag":129,"props":53568,"children":53570},{"className":131,"code":53569,"language":133,"meta":7,"style":7},"from qiskit_aer import AerSimulator\n\n# Default: automatic method selection\nsim = AerSimulator()\n\n# Force a specific method\nsim_sv = AerSimulator(method='statevector')\nsim_dm = AerSimulator(method='density_matrix')\nsim_mps = AerSimulator(method='matrix_product_state')\n",[53571],{"type":21,"tag":104,"props":53572,"children":53573},{"__ignoreMap":7},[53574,53593,53600,53608,53623,53630,53638,53671,53704],{"type":21,"tag":139,"props":53575,"children":53576},{"class":141,"line":142},[53577,53581,53585,53589],{"type":21,"tag":139,"props":53578,"children":53579},{"style":146},[53580],{"type":31,"value":149},{"type":21,"tag":139,"props":53582,"children":53583},{"style":152},[53584],{"type":31,"value":178},{"type":21,"tag":139,"props":53586,"children":53587},{"style":146},[53588],{"type":31,"value":160},{"type":21,"tag":139,"props":53590,"children":53591},{"style":152},[53592],{"type":31,"value":187},{"type":21,"tag":139,"props":53594,"children":53595},{"class":141,"line":168},[53596],{"type":21,"tag":139,"props":53597,"children":53598},{"emptyLinePlaceholder":194},[53599],{"type":31,"value":197},{"type":21,"tag":139,"props":53601,"children":53602},{"class":141,"line":190},[53603],{"type":21,"tag":139,"props":53604,"children":53605},{"style":220},[53606],{"type":31,"value":53607},"# Default: automatic method selection\n",{"type":21,"tag":139,"props":53609,"children":53610},{"class":141,"line":200},[53611,53615,53619],{"type":21,"tag":139,"props":53612,"children":53613},{"style":152},[53614],{"type":31,"value":877},{"type":21,"tag":139,"props":53616,"children":53617},{"style":146},[53618],{"type":31,"value":211},{"type":21,"tag":139,"props":53620,"children":53621},{"style":152},[53622],{"type":31,"value":886},{"type":21,"tag":139,"props":53624,"children":53625},{"class":141,"line":226},[53626],{"type":21,"tag":139,"props":53627,"children":53628},{"emptyLinePlaceholder":194},[53629],{"type":31,"value":197},{"type":21,"tag":139,"props":53631,"children":53632},{"class":141,"line":234},[53633],{"type":21,"tag":139,"props":53634,"children":53635},{"style":220},[53636],{"type":31,"value":53637},"# Force a specific method\n",{"type":21,"tag":139,"props":53639,"children":53640},{"class":141,"line":273},[53641,53646,53650,53654,53658,53662,53667],{"type":21,"tag":139,"props":53642,"children":53643},{"style":152},[53644],{"type":31,"value":53645},"sim_sv ",{"type":21,"tag":139,"props":53647,"children":53648},{"style":146},[53649],{"type":31,"value":211},{"type":21,"tag":139,"props":53651,"children":53652},{"style":152},[53653],{"type":31,"value":14594},{"type":21,"tag":139,"props":53655,"children":53656},{"style":923},[53657],{"type":31,"value":51700},{"type":21,"tag":139,"props":53659,"children":53660},{"style":146},[53661],{"type":31,"value":211},{"type":21,"tag":139,"props":53663,"children":53664},{"style":262},[53665],{"type":31,"value":53666},"'statevector'",{"type":21,"tag":139,"props":53668,"children":53669},{"style":152},[53670],{"type":31,"value":270},{"type":21,"tag":139,"props":53672,"children":53673},{"class":141,"line":309},[53674,53679,53683,53687,53691,53695,53700],{"type":21,"tag":139,"props":53675,"children":53676},{"style":152},[53677],{"type":31,"value":53678},"sim_dm ",{"type":21,"tag":139,"props":53680,"children":53681},{"style":146},[53682],{"type":31,"value":211},{"type":21,"tag":139,"props":53684,"children":53685},{"style":152},[53686],{"type":31,"value":14594},{"type":21,"tag":139,"props":53688,"children":53689},{"style":923},[53690],{"type":31,"value":51700},{"type":21,"tag":139,"props":53692,"children":53693},{"style":146},[53694],{"type":31,"value":211},{"type":21,"tag":139,"props":53696,"children":53697},{"style":262},[53698],{"type":31,"value":53699},"'density_matrix'",{"type":21,"tag":139,"props":53701,"children":53702},{"style":152},[53703],{"type":31,"value":270},{"type":21,"tag":139,"props":53705,"children":53706},{"class":141,"line":16},[53707,53712,53716,53720,53724,53728,53733],{"type":21,"tag":139,"props":53708,"children":53709},{"style":152},[53710],{"type":31,"value":53711},"sim_mps ",{"type":21,"tag":139,"props":53713,"children":53714},{"style":146},[53715],{"type":31,"value":211},{"type":21,"tag":139,"props":53717,"children":53718},{"style":152},[53719],{"type":31,"value":14594},{"type":21,"tag":139,"props":53721,"children":53722},{"style":923},[53723],{"type":31,"value":51700},{"type":21,"tag":139,"props":53725,"children":53726},{"style":146},[53727],{"type":31,"value":211},{"type":21,"tag":139,"props":53729,"children":53730},{"style":262},[53731],{"type":31,"value":53732},"'matrix_product_state'",{"type":21,"tag":139,"props":53734,"children":53735},{"style":152},[53736],{"type":31,"value":270},{"type":21,"tag":22,"props":53738,"children":53739},{},[53740,53745],{"type":21,"tag":16802,"props":53741,"children":53742},{},[53743],{"type":31,"value":53744},"Aerを使うべき場面:",{"type":31,"value":53746}," あらゆるQiskitのワークフロー、ノイズモデリング、またはIBMハードウェアの挙動を厳密に再現したい場合。",{"type":21,"tag":41,"props":53748,"children":53750},{"id":53749},"pennylane-量子mlに最適",[53751],{"type":31,"value":53752},"PennyLane: 量子MLに最適",{"type":21,"tag":22,"props":53754,"children":53755},{},[53756,53760,53762,53767],{"type":21,"tag":26,"props":53757,"children":53758},{"href":17319},[53759],{"type":31,"value":4474},{"type":31,"value":53761}," は微分可能な回路が必要なときに真価を発揮します。その ",{"type":21,"tag":104,"props":53763,"children":53765},{"className":53764},[],[53766],{"type":31,"value":5607},{"type":31,"value":53768}," シミュレータはパラメータシフト則を用いて厳密な勾配を計算し、量子回路の勾配ベース最適化を可能にします:",{"type":21,"tag":129,"props":53770,"children":53772},{"className":131,"code":53771,"language":133,"meta":7,"style":7},"import pennylane as qml\nimport numpy as np\n\ndev = qml.device(\"default.qubit\", wires=2)\n\n@qml.qnode(dev)\ndef circuit(theta):\n    qml.RX(theta[0], wires=0)\n    qml.RY(theta[1], wires=1)\n    qml.CNOT(wires=[0, 1])\n    return qml.expval(qml.PauliZ(0))\n\n# Automatic gradient computation\ngrad_fn = qml.grad(circuit)\ntheta = np.array([0.5, 1.2])\nprint(grad_fn(theta))  # exact gradient\n",[53773],{"type":21,"tag":104,"props":53774,"children":53775},{"__ignoreMap":7},[53776,53795,53814,53821,53860,53867,53878,53893,53925,53957,53992,54011,54018,54026,54043,54075],{"type":21,"tag":139,"props":53777,"children":53778},{"class":141,"line":142},[53779,53783,53787,53791],{"type":21,"tag":139,"props":53780,"children":53781},{"style":146},[53782],{"type":31,"value":160},{"type":21,"tag":139,"props":53784,"children":53785},{"style":152},[53786],{"type":31,"value":5338},{"type":21,"tag":139,"props":53788,"children":53789},{"style":146},[53790],{"type":31,"value":5343},{"type":21,"tag":139,"props":53792,"children":53793},{"style":152},[53794],{"type":31,"value":5348},{"type":21,"tag":139,"props":53796,"children":53797},{"class":141,"line":168},[53798,53802,53806,53810],{"type":21,"tag":139,"props":53799,"children":53800},{"style":146},[53801],{"type":31,"value":160},{"type":21,"tag":139,"props":53803,"children":53804},{"style":152},[53805],{"type":31,"value":8517},{"type":21,"tag":139,"props":53807,"children":53808},{"style":146},[53809],{"type":31,"value":5343},{"type":21,"tag":139,"props":53811,"children":53812},{"style":152},[53813],{"type":31,"value":8619},{"type":21,"tag":139,"props":53815,"children":53816},{"class":141,"line":190},[53817],{"type":21,"tag":139,"props":53818,"children":53819},{"emptyLinePlaceholder":194},[53820],{"type":31,"value":197},{"type":21,"tag":139,"props":53822,"children":53823},{"class":141,"line":200},[53824,53828,53832,53836,53840,53844,53848,53852,53856],{"type":21,"tag":139,"props":53825,"children":53826},{"style":152},[53827],{"type":31,"value":8713},{"type":21,"tag":139,"props":53829,"children":53830},{"style":146},[53831],{"type":31,"value":211},{"type":21,"tag":139,"props":53833,"children":53834},{"style":152},[53835],{"type":31,"value":5433},{"type":21,"tag":139,"props":53837,"children":53838},{"style":262},[53839],{"type":31,"value":5438},{"type":21,"tag":139,"props":53841,"children":53842},{"style":152},[53843],{"type":31,"value":259},{"type":21,"tag":139,"props":53845,"children":53846},{"style":923},[53847],{"type":31,"value":5447},{"type":21,"tag":139,"props":53849,"children":53850},{"style":146},[53851],{"type":31,"value":211},{"type":21,"tag":139,"props":53853,"children":53854},{"style":214},[53855],{"type":31,"value":293},{"type":21,"tag":139,"props":53857,"children":53858},{"style":152},[53859],{"type":31,"value":270},{"type":21,"tag":139,"props":53861,"children":53862},{"class":141,"line":226},[53863],{"type":21,"tag":139,"props":53864,"children":53865},{"emptyLinePlaceholder":194},[53866],{"type":31,"value":197},{"type":21,"tag":139,"props":53868,"children":53869},{"class":141,"line":234},[53870,53874],{"type":21,"tag":139,"props":53871,"children":53872},{"style":4509},[53873],{"type":31,"value":5474},{"type":21,"tag":139,"props":53875,"children":53876},{"style":152},[53877],{"type":31,"value":8765},{"type":21,"tag":139,"props":53879,"children":53880},{"class":141,"line":273},[53881,53885,53889],{"type":21,"tag":139,"props":53882,"children":53883},{"style":146},[53884],{"type":31,"value":5487},{"type":21,"tag":139,"props":53886,"children":53887},{"style":4509},[53888],{"type":31,"value":5492},{"type":21,"tag":139,"props":53890,"children":53891},{"style":152},[53892],{"type":31,"value":5497},{"type":21,"tag":139,"props":53894,"children":53895},{"class":141,"line":309},[53896,53901,53905,53909,53913,53917,53921],{"type":21,"tag":139,"props":53897,"children":53898},{"style":152},[53899],{"type":31,"value":53900},"    qml.RX(theta[",{"type":21,"tag":139,"props":53902,"children":53903},{"style":214},[53904],{"type":31,"value":407},{"type":21,"tag":139,"props":53906,"children":53907},{"style":152},[53908],{"type":31,"value":697},{"type":21,"tag":139,"props":53910,"children":53911},{"style":923},[53912],{"type":31,"value":5447},{"type":21,"tag":139,"props":53914,"children":53915},{"style":146},[53916],{"type":31,"value":211},{"type":21,"tag":139,"props":53918,"children":53919},{"style":214},[53920],{"type":31,"value":407},{"type":21,"tag":139,"props":53922,"children":53923},{"style":152},[53924],{"type":31,"value":270},{"type":21,"tag":139,"props":53926,"children":53927},{"class":141,"line":16},[53928,53933,53937,53941,53945,53949,53953],{"type":21,"tag":139,"props":53929,"children":53930},{"style":152},[53931],{"type":31,"value":53932},"    qml.RY(theta[",{"type":21,"tag":139,"props":53934,"children":53935},{"style":214},[53936],{"type":31,"value":328},{"type":21,"tag":139,"props":53938,"children":53939},{"style":152},[53940],{"type":31,"value":697},{"type":21,"tag":139,"props":53942,"children":53943},{"style":923},[53944],{"type":31,"value":5447},{"type":21,"tag":139,"props":53946,"children":53947},{"style":146},[53948],{"type":31,"value":211},{"type":21,"tag":139,"props":53950,"children":53951},{"style":214},[53952],{"type":31,"value":328},{"type":21,"tag":139,"props":53954,"children":53955},{"style":152},[53956],{"type":31,"value":270},{"type":21,"tag":139,"props":53958,"children":53959},{"class":141,"line":361},[53960,53964,53968,53972,53976,53980,53984,53988],{"type":21,"tag":139,"props":53961,"children":53962},{"style":152},[53963],{"type":31,"value":5521},{"type":21,"tag":139,"props":53965,"children":53966},{"style":923},[53967],{"type":31,"value":5447},{"type":21,"tag":139,"props":53969,"children":53970},{"style":146},[53971],{"type":31,"value":211},{"type":21,"tag":139,"props":53973,"children":53974},{"style":152},[53975],{"type":31,"value":5534},{"type":21,"tag":139,"props":53977,"children":53978},{"style":214},[53979],{"type":31,"value":407},{"type":21,"tag":139,"props":53981,"children":53982},{"style":152},[53983],{"type":31,"value":259},{"type":21,"tag":139,"props":53985,"children":53986},{"style":214},[53987],{"type":31,"value":328},{"type":21,"tag":139,"props":53989,"children":53990},{"style":152},[53991],{"type":31,"value":599},{"type":21,"tag":139,"props":53993,"children":53994},{"class":141,"line":369},[53995,53999,54003,54007],{"type":21,"tag":139,"props":53996,"children":53997},{"style":146},[53998],{"type":31,"value":5582},{"type":21,"tag":139,"props":54000,"children":54001},{"style":152},[54002],{"type":31,"value":5587},{"type":21,"tag":139,"props":54004,"children":54005},{"style":214},[54006],{"type":31,"value":407},{"type":21,"tag":139,"props":54008,"children":54009},{"style":152},[54010],{"type":31,"value":5596},{"type":21,"tag":139,"props":54012,"children":54013},{"class":141,"line":378},[54014],{"type":21,"tag":139,"props":54015,"children":54016},{"emptyLinePlaceholder":194},[54017],{"type":31,"value":197},{"type":21,"tag":139,"props":54019,"children":54020},{"class":141,"line":387},[54021],{"type":21,"tag":139,"props":54022,"children":54023},{"style":220},[54024],{"type":31,"value":54025},"# Automatic gradient computation\n",{"type":21,"tag":139,"props":54027,"children":54028},{"class":141,"line":396},[54029,54034,54038],{"type":21,"tag":139,"props":54030,"children":54031},{"style":152},[54032],{"type":31,"value":54033},"grad_fn ",{"type":21,"tag":139,"props":54035,"children":54036},{"style":146},[54037],{"type":31,"value":211},{"type":21,"tag":139,"props":54039,"children":54040},{"style":152},[54041],{"type":31,"value":54042}," qml.grad(circuit)\n",{"type":21,"tag":139,"props":54044,"children":54045},{"class":141,"line":414},[54046,54050,54054,54058,54062,54066,54071],{"type":21,"tag":139,"props":54047,"children":54048},{"style":152},[54049],{"type":31,"value":206},{"type":21,"tag":139,"props":54051,"children":54052},{"style":146},[54053],{"type":31,"value":211},{"type":21,"tag":139,"props":54055,"children":54056},{"style":152},[54057],{"type":31,"value":8548},{"type":21,"tag":139,"props":54059,"children":54060},{"style":214},[54061],{"type":31,"value":7845},{"type":21,"tag":139,"props":54063,"children":54064},{"style":152},[54065],{"type":31,"value":259},{"type":21,"tag":139,"props":54067,"children":54068},{"style":214},[54069],{"type":31,"value":54070},"1.2",{"type":21,"tag":139,"props":54072,"children":54073},{"style":152},[54074],{"type":31,"value":599},{"type":21,"tag":139,"props":54076,"children":54077},{"class":141,"line":12589},[54078,54082,54087],{"type":21,"tag":139,"props":54079,"children":54080},{"style":214},[54081],{"type":31,"value":948},{"type":21,"tag":139,"props":54083,"children":54084},{"style":152},[54085],{"type":31,"value":54086},"(grad_fn(theta))  ",{"type":21,"tag":139,"props":54088,"children":54089},{"style":220},[54090],{"type":31,"value":54091},"# exact gradient\n",{"type":21,"tag":22,"props":54093,"children":54094},{},[54095,54097,54103,54105,54110],{"type":31,"value":54096},"勾配が不要でより高速なシミュレーションを行うには、",{"type":21,"tag":104,"props":54098,"children":54100},{"className":54099},[],[54101],{"type":31,"value":54102},"lightning.qubit",{"type":31,"value":54104},"（C++バックエンド、",{"type":21,"tag":104,"props":54106,"children":54108},{"className":54107},[],[54109],{"type":31,"value":5607},{"type":31,"value":54111}," より約10倍高速）を使用します:",{"type":21,"tag":129,"props":54113,"children":54115},{"className":4499,"code":54114,"language":4498,"meta":7,"style":7},"pip install pennylane-lightning\n",[54116],{"type":21,"tag":104,"props":54117,"children":54118},{"__ignoreMap":7},[54119],{"type":21,"tag":139,"props":54120,"children":54121},{"class":141,"line":142},[54122,54126,54130],{"type":21,"tag":139,"props":54123,"children":54124},{"style":4509},[54125],{"type":31,"value":4512},{"type":21,"tag":139,"props":54127,"children":54128},{"style":262},[54129],{"type":31,"value":4517},{"type":21,"tag":139,"props":54131,"children":54132},{"style":262},[54133],{"type":31,"value":54134}," pennylane-lightning\n",{"type":21,"tag":129,"props":54136,"children":54138},{"className":131,"code":54137,"language":133,"meta":7,"style":7},"dev = qml.device(\"lightning.qubit\", wires=20)\n",[54139],{"type":21,"tag":104,"props":54140,"children":54141},{"__ignoreMap":7},[54142],{"type":21,"tag":139,"props":54143,"children":54144},{"class":141,"line":142},[54145,54149,54153,54157,54162,54166,54170,54174,54178],{"type":21,"tag":139,"props":54146,"children":54147},{"style":152},[54148],{"type":31,"value":8713},{"type":21,"tag":139,"props":54150,"children":54151},{"style":146},[54152],{"type":31,"value":211},{"type":21,"tag":139,"props":54154,"children":54155},{"style":152},[54156],{"type":31,"value":5433},{"type":21,"tag":139,"props":54158,"children":54159},{"style":262},[54160],{"type":31,"value":54161},"\"lightning.qubit\"",{"type":21,"tag":139,"props":54163,"children":54164},{"style":152},[54165],{"type":31,"value":259},{"type":21,"tag":139,"props":54167,"children":54168},{"style":923},[54169],{"type":31,"value":5447},{"type":21,"tag":139,"props":54171,"children":54172},{"style":146},[54173],{"type":31,"value":211},{"type":21,"tag":139,"props":54175,"children":54176},{"style":214},[54177],{"type":31,"value":10301},{"type":21,"tag":139,"props":54179,"children":54180},{"style":152},[54181],{"type":31,"value":270},{"type":21,"tag":22,"props":54183,"children":54184},{},[54185,54190],{"type":21,"tag":16802,"props":54186,"children":54187},{},[54188],{"type":31,"value":54189},"PennyLaneを使うべき場面:",{"type":31,"value":54191}," 変分アルゴリズム（VQE、QAOA）、量子ML、回路の勾配を必要とするあらゆるワークフロー。",{"type":21,"tag":41,"props":54193,"children":54195},{"id":54194},"nvidia-cuda-q-速度が重要なとき",[54196],{"type":31,"value":54197},"NVIDIA CUDA-Q: 速度が重要なとき",{"type":21,"tag":22,"props":54199,"children":54200},{},[54201,54205],{"type":21,"tag":26,"props":54202,"children":54203},{"href":42348},[54204],{"type":31,"value":39964},{"type":31,"value":54206}," はGPUによって高速化されたシミュレーションを提供し、大規模回路ではCPUシミュレータの100〜10,000倍高速になり得ます。NVIDIA GPUをお持ちなら、25量子ビット以上の回路にはこれが正しい選択です:",{"type":21,"tag":129,"props":54208,"children":54210},{"className":131,"code":54209,"language":133,"meta":7,"style":7},"import cudaq\n\n@cudaq.kernel\ndef large_circuit(n: int):\n    qvec = cudaq.qvector(n)\n    h(qvec[0])\n    for i in range(n - 1):\n        cx(qvec[i], qvec[i + 1])\n    mz(qvec)\n\n# Run on GPU (specify 'nvidia' target)\ncudaq.set_target('nvidia')\ncounts = cudaq.sample(large_circuit, 30, shots_count=10000)\nprint(counts)\n",[54211],{"type":21,"tag":104,"props":54212,"children":54213},{"__ignoreMap":7},[54214,54225,54232,54239,54263,54278,54293,54328,54348,54356,54363,54371,54387,54428],{"type":21,"tag":139,"props":54215,"children":54216},{"class":141,"line":142},[54217,54221],{"type":21,"tag":139,"props":54218,"children":54219},{"style":146},[54220],{"type":31,"value":160},{"type":21,"tag":139,"props":54222,"children":54223},{"style":152},[54224],{"type":31,"value":8121},{"type":21,"tag":139,"props":54226,"children":54227},{"class":141,"line":168},[54228],{"type":21,"tag":139,"props":54229,"children":54230},{"emptyLinePlaceholder":194},[54231],{"type":31,"value":197},{"type":21,"tag":139,"props":54233,"children":54234},{"class":141,"line":190},[54235],{"type":21,"tag":139,"props":54236,"children":54237},{"style":4509},[54238],{"type":31,"value":7979},{"type":21,"tag":139,"props":54240,"children":54241},{"class":141,"line":200},[54242,54246,54251,54255,54259],{"type":21,"tag":139,"props":54243,"children":54244},{"style":146},[54245],{"type":31,"value":5487},{"type":21,"tag":139,"props":54247,"children":54248},{"style":4509},[54249],{"type":31,"value":54250}," large_circuit",{"type":21,"tag":139,"props":54252,"children":54253},{"style":152},[54254],{"type":31,"value":16976},{"type":21,"tag":139,"props":54256,"children":54257},{"style":214},[54258],{"type":31,"value":16981},{"type":21,"tag":139,"props":54260,"children":54261},{"style":152},[54262],{"type":31,"value":7430},{"type":21,"tag":139,"props":54264,"children":54265},{"class":141,"line":226},[54266,54270,54274],{"type":21,"tag":139,"props":54267,"children":54268},{"style":152},[54269],{"type":31,"value":43639},{"type":21,"tag":139,"props":54271,"children":54272},{"style":146},[54273],{"type":31,"value":211},{"type":21,"tag":139,"props":54275,"children":54276},{"style":152},[54277],{"type":31,"value":17001},{"type":21,"tag":139,"props":54279,"children":54280},{"class":141,"line":234},[54281,54285,54289],{"type":21,"tag":139,"props":54282,"children":54283},{"style":152},[54284],{"type":31,"value":43663},{"type":21,"tag":139,"props":54286,"children":54287},{"style":214},[54288],{"type":31,"value":407},{"type":21,"tag":139,"props":54290,"children":54291},{"style":152},[54292],{"type":31,"value":599},{"type":21,"tag":139,"props":54294,"children":54295},{"class":141,"line":273},[54296,54300,54304,54308,54312,54316,54320,54324],{"type":21,"tag":139,"props":54297,"children":54298},{"style":146},[54299],{"type":31,"value":17024},{"type":21,"tag":139,"props":54301,"children":54302},{"style":152},[54303],{"type":31,"value":7408},{"type":21,"tag":139,"props":54305,"children":54306},{"style":146},[54307],{"type":31,"value":1496},{"type":21,"tag":139,"props":54309,"children":54310},{"style":214},[54311],{"type":31,"value":7417},{"type":21,"tag":139,"props":54313,"children":54314},{"style":152},[54315],{"type":31,"value":17041},{"type":21,"tag":139,"props":54317,"children":54318},{"style":146},[54319],{"type":31,"value":825},{"type":21,"tag":139,"props":54321,"children":54322},{"style":214},[54323],{"type":31,"value":17050},{"type":21,"tag":139,"props":54325,"children":54326},{"style":152},[54327],{"type":31,"value":7430},{"type":21,"tag":139,"props":54329,"children":54330},{"class":141,"line":309},[54331,54336,54340,54344],{"type":21,"tag":139,"props":54332,"children":54333},{"style":152},[54334],{"type":31,"value":54335},"        cx(qvec[i], qvec[i ",{"type":21,"tag":139,"props":54337,"children":54338},{"style":146},[54339],{"type":31,"value":1599},{"type":21,"tag":139,"props":54341,"children":54342},{"style":214},[54343],{"type":31,"value":17050},{"type":21,"tag":139,"props":54345,"children":54346},{"style":152},[54347],{"type":31,"value":599},{"type":21,"tag":139,"props":54349,"children":54350},{"class":141,"line":16},[54351],{"type":21,"tag":139,"props":54352,"children":54353},{"style":152},[54354],{"type":31,"value":54355},"    mz(qvec)\n",{"type":21,"tag":139,"props":54357,"children":54358},{"class":141,"line":361},[54359],{"type":21,"tag":139,"props":54360,"children":54361},{"emptyLinePlaceholder":194},[54362],{"type":31,"value":197},{"type":21,"tag":139,"props":54364,"children":54365},{"class":141,"line":369},[54366],{"type":21,"tag":139,"props":54367,"children":54368},{"style":220},[54369],{"type":31,"value":54370},"# Run on GPU (specify 'nvidia' target)\n",{"type":21,"tag":139,"props":54372,"children":54373},{"class":141,"line":378},[54374,54378,54383],{"type":21,"tag":139,"props":54375,"children":54376},{"style":152},[54377],{"type":31,"value":8191},{"type":21,"tag":139,"props":54379,"children":54380},{"style":262},[54381],{"type":31,"value":54382},"'nvidia'",{"type":21,"tag":139,"props":54384,"children":54385},{"style":152},[54386],{"type":31,"value":270},{"type":21,"tag":139,"props":54388,"children":54389},{"class":141,"line":387},[54390,54394,54398,54403,54407,54411,54415,54419,54424],{"type":21,"tag":139,"props":54391,"children":54392},{"style":152},[54393],{"type":31,"value":911},{"type":21,"tag":139,"props":54395,"children":54396},{"style":146},[54397],{"type":31,"value":211},{"type":21,"tag":139,"props":54399,"children":54400},{"style":152},[54401],{"type":31,"value":54402}," cudaq.sample(large_circuit, ",{"type":21,"tag":139,"props":54404,"children":54405},{"style":214},[54406],{"type":31,"value":14071},{"type":21,"tag":139,"props":54408,"children":54409},{"style":152},[54410],{"type":31,"value":259},{"type":21,"tag":139,"props":54412,"children":54413},{"style":923},[54414],{"type":31,"value":8221},{"type":21,"tag":139,"props":54416,"children":54417},{"style":146},[54418],{"type":31,"value":211},{"type":21,"tag":139,"props":54420,"children":54421},{"style":214},[54422],{"type":31,"value":54423},"10000",{"type":21,"tag":139,"props":54425,"children":54426},{"style":152},[54427],{"type":31,"value":270},{"type":21,"tag":139,"props":54429,"children":54430},{"class":141,"line":396},[54431,54435],{"type":21,"tag":139,"props":54432,"children":54433},{"style":214},[54434],{"type":31,"value":948},{"type":21,"tag":139,"props":54436,"children":54437},{"style":152},[54438],{"type":31,"value":6771},{"type":21,"tag":22,"props":54440,"children":54441},{},[54442,54447],{"type":21,"tag":16802,"props":54443,"children":54444},{},[54445],{"type":31,"value":54446},"性能ベンチマーク",{"type":31,"value":54448},"（GHZ回路、28量子ビット、1000ショット）:",{"type":21,"tag":1112,"props":54450,"children":54451},{},[54452,54457,54462],{"type":21,"tag":72,"props":54453,"children":54454},{},[54455],{"type":31,"value":54456},"Qiskit Aer CPU: 約45秒",{"type":21,"tag":72,"props":54458,"children":54459},{},[54460],{"type":31,"value":54461},"PennyLane lightning.qubit: 約30秒",{"type":21,"tag":72,"props":54463,"children":54464},{},[54465],{"type":31,"value":54466},"CUDA-Q（A100 GPU）: 約0.8秒",{"type":21,"tag":22,"props":54468,"children":54469},{},[54470,54475],{"type":21,"tag":16802,"props":54471,"children":54472},{},[54473],{"type":31,"value":54474},"CUDA-Qを使うべき場面:",{"type":31,"value":54476}," 25量子ビット以上のあらゆる回路、性能が重要なシミュレーション、マルチGPUワークロード。",{"type":21,"tag":41,"props":54478,"children":54480},{"id":54479},"cirq-ノイズモデリングとnisq研究",[54481],{"type":31,"value":54482},"Cirq: ノイズモデリングとNISQ研究",{"type":21,"tag":22,"props":54484,"children":54485},{},[54486,54490],{"type":21,"tag":26,"props":54487,"children":54488},{"href":30665},[54489],{"type":31,"value":42577},{"type":31,"value":54491}," には3つのシミュレータが含まれています:",{"type":21,"tag":129,"props":54493,"children":54495},{"className":131,"code":54494,"language":133,"meta":7,"style":7},"import cirq\n\n# Exact statevector simulation\nsim = cirq.Simulator()\n\n# Density matrix with noise\nnoise_model = cirq.ConstantQubitNoiseModel(\n    cirq.depolarize(p=0.01)\n)\nnoisy_sim = cirq.DensityMatrixSimulator(noise=noise_model)\n\n# Clifford circuits only (but exponentially faster for stabilizer states)\nclifford_sim = cirq.CliffordSimulator()\n",[54496],{"type":21,"tag":104,"props":54497,"children":54498},{"__ignoreMap":7},[54499,54510,54517,54525,54541,54548,54556,54572,54596,54603,54632,54639,54647],{"type":21,"tag":139,"props":54500,"children":54501},{"class":141,"line":142},[54502,54506],{"type":21,"tag":139,"props":54503,"children":54504},{"style":146},[54505],{"type":31,"value":160},{"type":21,"tag":139,"props":54507,"children":54508},{"style":152},[54509],{"type":31,"value":4739},{"type":21,"tag":139,"props":54511,"children":54512},{"class":141,"line":168},[54513],{"type":21,"tag":139,"props":54514,"children":54515},{"emptyLinePlaceholder":194},[54516],{"type":31,"value":197},{"type":21,"tag":139,"props":54518,"children":54519},{"class":141,"line":190},[54520],{"type":21,"tag":139,"props":54521,"children":54522},{"style":220},[54523],{"type":31,"value":54524},"# Exact statevector simulation\n",{"type":21,"tag":139,"props":54526,"children":54527},{"class":141,"line":200},[54528,54532,54536],{"type":21,"tag":139,"props":54529,"children":54530},{"style":152},[54531],{"type":31,"value":877},{"type":21,"tag":139,"props":54533,"children":54534},{"style":146},[54535],{"type":31,"value":211},{"type":21,"tag":139,"props":54537,"children":54538},{"style":152},[54539],{"type":31,"value":54540}," cirq.Simulator()\n",{"type":21,"tag":139,"props":54542,"children":54543},{"class":141,"line":226},[54544],{"type":21,"tag":139,"props":54545,"children":54546},{"emptyLinePlaceholder":194},[54547],{"type":31,"value":197},{"type":21,"tag":139,"props":54549,"children":54550},{"class":141,"line":234},[54551],{"type":21,"tag":139,"props":54552,"children":54553},{"style":220},[54554],{"type":31,"value":54555},"# Density matrix with noise\n",{"type":21,"tag":139,"props":54557,"children":54558},{"class":141,"line":273},[54559,54563,54567],{"type":21,"tag":139,"props":54560,"children":54561},{"style":152},[54562],{"type":31,"value":14485},{"type":21,"tag":139,"props":54564,"children":54565},{"style":146},[54566],{"type":31,"value":211},{"type":21,"tag":139,"props":54568,"children":54569},{"style":152},[54570],{"type":31,"value":54571}," cirq.ConstantQubitNoiseModel(\n",{"type":21,"tag":139,"props":54573,"children":54574},{"class":141,"line":309},[54575,54580,54584,54588,54592],{"type":21,"tag":139,"props":54576,"children":54577},{"style":152},[54578],{"type":31,"value":54579},"    cirq.depolarize(",{"type":21,"tag":139,"props":54581,"children":54582},{"style":923},[54583],{"type":31,"value":22},{"type":21,"tag":139,"props":54585,"children":54586},{"style":146},[54587],{"type":31,"value":211},{"type":21,"tag":139,"props":54589,"children":54590},{"style":214},[54591],{"type":31,"value":14507},{"type":21,"tag":139,"props":54593,"children":54594},{"style":152},[54595],{"type":31,"value":270},{"type":21,"tag":139,"props":54597,"children":54598},{"class":141,"line":16},[54599],{"type":21,"tag":139,"props":54600,"children":54601},{"style":152},[54602],{"type":31,"value":270},{"type":21,"tag":139,"props":54604,"children":54605},{"class":141,"line":361},[54606,54611,54615,54620,54624,54628],{"type":21,"tag":139,"props":54607,"children":54608},{"style":152},[54609],{"type":31,"value":54610},"noisy_sim ",{"type":21,"tag":139,"props":54612,"children":54613},{"style":146},[54614],{"type":31,"value":211},{"type":21,"tag":139,"props":54616,"children":54617},{"style":152},[54618],{"type":31,"value":54619}," cirq.DensityMatrixSimulator(",{"type":21,"tag":139,"props":54621,"children":54622},{"style":923},[54623],{"type":31,"value":36410},{"type":21,"tag":139,"props":54625,"children":54626},{"style":146},[54627],{"type":31,"value":211},{"type":21,"tag":139,"props":54629,"children":54630},{"style":152},[54631],{"type":31,"value":14608},{"type":21,"tag":139,"props":54633,"children":54634},{"class":141,"line":369},[54635],{"type":21,"tag":139,"props":54636,"children":54637},{"emptyLinePlaceholder":194},[54638],{"type":31,"value":197},{"type":21,"tag":139,"props":54640,"children":54641},{"class":141,"line":378},[54642],{"type":21,"tag":139,"props":54643,"children":54644},{"style":220},[54645],{"type":31,"value":54646},"# Clifford circuits only (but exponentially faster for stabilizer states)\n",{"type":21,"tag":139,"props":54648,"children":54649},{"class":141,"line":387},[54650,54655,54659],{"type":21,"tag":139,"props":54651,"children":54652},{"style":152},[54653],{"type":31,"value":54654},"clifford_sim ",{"type":21,"tag":139,"props":54656,"children":54657},{"style":146},[54658],{"type":31,"value":211},{"type":21,"tag":139,"props":54660,"children":54661},{"style":152},[54662],{"type":31,"value":54663}," cirq.CliffordSimulator()\n",{"type":21,"tag":22,"props":54665,"children":54666},{},[54667,54672],{"type":21,"tag":16802,"props":54668,"children":54669},{},[54670],{"type":31,"value":54671},"Cirqを使うべき場面:",{"type":31,"value":54673}," NISQのノイズモデリング、スタビライザ回路の研究、Google AI Quantumのワークフロー。",{"type":21,"tag":41,"props":54675,"children":54677},{"id":54676},"amazon-braket-localsimulator-隔離性と可搬性",[54678],{"type":31,"value":54679},"Amazon Braket LocalSimulator: 隔離性と可搬性",{"type":21,"tag":22,"props":54681,"children":54682},{},[54683,54689],{"type":21,"tag":26,"props":54684,"children":54686},{"href":54685},"\u002Fsdks\u002Fbraket",[54687],{"type":31,"value":54688},"Braket SDK",{"type":31,"value":54690}," には、クラウドAPIを厳密に再現する無料のローカルシミュレータが含まれています:",{"type":21,"tag":129,"props":54692,"children":54694},{"className":131,"code":54693,"language":133,"meta":7,"style":7},"from braket.devices import LocalSimulator\nfrom braket.circuits import Circuit\n\ndevice = LocalSimulator()\n\ncircuit = Circuit()\ncircuit.h(0)\ncircuit.cnot(0, 1)\ncircuit.probability()\n\ntask = device.run(circuit, shots=1000)\nresult = task.result()\nprint(result.measurement_counts)\n",[54695],{"type":21,"tag":104,"props":54696,"children":54697},{"__ignoreMap":7},[54698,54719,54740,54747,54763,54770,54786,54801,54825,54833,54840,54873,54889],{"type":21,"tag":139,"props":54699,"children":54700},{"class":141,"line":142},[54701,54705,54710,54714],{"type":21,"tag":139,"props":54702,"children":54703},{"style":146},[54704],{"type":31,"value":149},{"type":21,"tag":139,"props":54706,"children":54707},{"style":152},[54708],{"type":31,"value":54709}," braket.devices ",{"type":21,"tag":139,"props":54711,"children":54712},{"style":146},[54713],{"type":31,"value":160},{"type":21,"tag":139,"props":54715,"children":54716},{"style":152},[54717],{"type":31,"value":54718}," LocalSimulator\n",{"type":21,"tag":139,"props":54720,"children":54721},{"class":141,"line":168},[54722,54726,54731,54735],{"type":21,"tag":139,"props":54723,"children":54724},{"style":146},[54725],{"type":31,"value":149},{"type":21,"tag":139,"props":54727,"children":54728},{"style":152},[54729],{"type":31,"value":54730}," braket.circuits ",{"type":21,"tag":139,"props":54732,"children":54733},{"style":146},[54734],{"type":31,"value":160},{"type":21,"tag":139,"props":54736,"children":54737},{"style":152},[54738],{"type":31,"value":54739}," Circuit\n",{"type":21,"tag":139,"props":54741,"children":54742},{"class":141,"line":190},[54743],{"type":21,"tag":139,"props":54744,"children":54745},{"emptyLinePlaceholder":194},[54746],{"type":31,"value":197},{"type":21,"tag":139,"props":54748,"children":54749},{"class":141,"line":200},[54750,54754,54758],{"type":21,"tag":139,"props":54751,"children":54752},{"style":152},[54753],{"type":31,"value":5424},{"type":21,"tag":139,"props":54755,"children":54756},{"style":146},[54757],{"type":31,"value":211},{"type":21,"tag":139,"props":54759,"children":54760},{"style":152},[54761],{"type":31,"value":54762}," LocalSimulator()\n",{"type":21,"tag":139,"props":54764,"children":54765},{"class":141,"line":226},[54766],{"type":21,"tag":139,"props":54767,"children":54768},{"emptyLinePlaceholder":194},[54769],{"type":31,"value":197},{"type":21,"tag":139,"props":54771,"children":54772},{"class":141,"line":234},[54773,54777,54781],{"type":21,"tag":139,"props":54774,"children":54775},{"style":152},[54776],{"type":31,"value":4779},{"type":21,"tag":139,"props":54778,"children":54779},{"style":146},[54780],{"type":31,"value":211},{"type":21,"tag":139,"props":54782,"children":54783},{"style":152},[54784],{"type":31,"value":54785}," Circuit()\n",{"type":21,"tag":139,"props":54787,"children":54788},{"class":141,"line":273},[54789,54793,54797],{"type":21,"tag":139,"props":54790,"children":54791},{"style":152},[54792],{"type":31,"value":6316},{"type":21,"tag":139,"props":54794,"children":54795},{"style":214},[54796],{"type":31,"value":407},{"type":21,"tag":139,"props":54798,"children":54799},{"style":152},[54800],{"type":31,"value":270},{"type":21,"tag":139,"props":54802,"children":54803},{"class":141,"line":309},[54804,54809,54813,54817,54821],{"type":21,"tag":139,"props":54805,"children":54806},{"style":152},[54807],{"type":31,"value":54808},"circuit.cnot(",{"type":21,"tag":139,"props":54810,"children":54811},{"style":214},[54812],{"type":31,"value":407},{"type":21,"tag":139,"props":54814,"children":54815},{"style":152},[54816],{"type":31,"value":259},{"type":21,"tag":139,"props":54818,"children":54819},{"style":214},[54820],{"type":31,"value":328},{"type":21,"tag":139,"props":54822,"children":54823},{"style":152},[54824],{"type":31,"value":270},{"type":21,"tag":139,"props":54826,"children":54827},{"class":141,"line":16},[54828],{"type":21,"tag":139,"props":54829,"children":54830},{"style":152},[54831],{"type":31,"value":54832},"circuit.probability()\n",{"type":21,"tag":139,"props":54834,"children":54835},{"class":141,"line":361},[54836],{"type":21,"tag":139,"props":54837,"children":54838},{"emptyLinePlaceholder":194},[54839],{"type":31,"value":197},{"type":21,"tag":139,"props":54841,"children":54842},{"class":141,"line":369},[54843,54848,54852,54857,54861,54865,54869],{"type":21,"tag":139,"props":54844,"children":54845},{"style":152},[54846],{"type":31,"value":54847},"task ",{"type":21,"tag":139,"props":54849,"children":54850},{"style":146},[54851],{"type":31,"value":211},{"type":21,"tag":139,"props":54853,"children":54854},{"style":152},[54855],{"type":31,"value":54856}," device.run(circuit, ",{"type":21,"tag":139,"props":54858,"children":54859},{"style":923},[54860],{"type":31,"value":926},{"type":21,"tag":139,"props":54862,"children":54863},{"style":146},[54864],{"type":31,"value":211},{"type":21,"tag":139,"props":54866,"children":54867},{"style":214},[54868],{"type":31,"value":1730},{"type":21,"tag":139,"props":54870,"children":54871},{"style":152},[54872],{"type":31,"value":270},{"type":21,"tag":139,"props":54874,"children":54875},{"class":141,"line":378},[54876,54880,54884],{"type":21,"tag":139,"props":54877,"children":54878},{"style":152},[54879],{"type":31,"value":4868},{"type":21,"tag":139,"props":54881,"children":54882},{"style":146},[54883],{"type":31,"value":211},{"type":21,"tag":139,"props":54885,"children":54886},{"style":152},[54887],{"type":31,"value":54888}," task.result()\n",{"type":21,"tag":139,"props":54890,"children":54891},{"class":141,"line":387},[54892,54896],{"type":21,"tag":139,"props":54893,"children":54894},{"style":214},[54895],{"type":31,"value":948},{"type":21,"tag":139,"props":54897,"children":54898},{"style":152},[54899],{"type":31,"value":54900},"(result.measurement_counts)\n",{"type":21,"tag":22,"props":54902,"children":54903},{},[54904,54909],{"type":21,"tag":16802,"props":54905,"children":54906},{},[54907],{"type":31,"value":54908},"Braketローカルを使うべき場面:",{"type":31,"value":54910}," AWSへのデプロイを前提に開発しており、クラウドAPIと一致するローカルの開発\u002Fテスト環境が欲しい場合。",{"type":21,"tag":41,"props":54912,"children":54914},{"id":54913},"hlquantumという近道",[54915],{"type":31,"value":54916},"HLQuantumという近道",{"type":21,"tag":22,"props":54918,"children":54919},{},[54920,54922,54926],{"type":31,"value":54921},"同じ回路を複数のシミュレータで実行してベンチマークや比較を行う必要がある場合、",{"type":21,"tag":26,"props":54923,"children":54924},{"href":40749},[54925],{"type":31,"value":40752},{"type":31,"value":54927}," がそれを簡単にしてくれます:",{"type":21,"tag":129,"props":54929,"children":54931},{"className":131,"code":54930,"language":133,"meta":7,"style":7},"import hlquantum as hlq\nimport time\n\nqc = hlq.Circuit(28)\nqc.h(0)\nfor i in range(27):\n    qc.cx(i, i + 1)\nqc.measure_all()\n\nfor backend in [\"qiskit\", \"pennylane\", \"cudaq\"]:\n    t0 = time.time()\n    result = hlq.run(qc, shots=1000, backend=backend)\n    print(f\"{backend}: {time.time() - t0:.2f}s\")\n",[54932],{"type":21,"tag":104,"props":54933,"children":54934},{"__ignoreMap":7},[54935,54954,54966,54973,54997,55012,55044,55064,55071,55078,55123,55140,55184],{"type":21,"tag":139,"props":54936,"children":54937},{"class":141,"line":142},[54938,54942,54946,54950],{"type":21,"tag":139,"props":54939,"children":54940},{"style":146},[54941],{"type":31,"value":160},{"type":21,"tag":139,"props":54943,"children":54944},{"style":152},[54945],{"type":31,"value":41040},{"type":21,"tag":139,"props":54947,"children":54948},{"style":146},[54949],{"type":31,"value":5343},{"type":21,"tag":139,"props":54951,"children":54952},{"style":152},[54953],{"type":31,"value":41049},{"type":21,"tag":139,"props":54955,"children":54956},{"class":141,"line":168},[54957,54961],{"type":21,"tag":139,"props":54958,"children":54959},{"style":146},[54960],{"type":31,"value":160},{"type":21,"tag":139,"props":54962,"children":54963},{"style":152},[54964],{"type":31,"value":54965}," time\n",{"type":21,"tag":139,"props":54967,"children":54968},{"class":141,"line":190},[54969],{"type":21,"tag":139,"props":54970,"children":54971},{"emptyLinePlaceholder":194},[54972],{"type":31,"value":197},{"type":21,"tag":139,"props":54974,"children":54975},{"class":141,"line":200},[54976,54980,54984,54988,54993],{"type":21,"tag":139,"props":54977,"children":54978},{"style":152},[54979],{"type":31,"value":349},{"type":21,"tag":139,"props":54981,"children":54982},{"style":146},[54983],{"type":31,"value":211},{"type":21,"tag":139,"props":54985,"children":54986},{"style":152},[54987],{"type":31,"value":43087},{"type":21,"tag":139,"props":54989,"children":54990},{"style":214},[54991],{"type":31,"value":54992},"28",{"type":21,"tag":139,"props":54994,"children":54995},{"style":152},[54996],{"type":31,"value":270},{"type":21,"tag":139,"props":54998,"children":54999},{"class":141,"line":226},[55000,55004,55008],{"type":21,"tag":139,"props":55001,"children":55002},{"style":152},[55003],{"type":31,"value":442},{"type":21,"tag":139,"props":55005,"children":55006},{"style":214},[55007],{"type":31,"value":407},{"type":21,"tag":139,"props":55009,"children":55010},{"style":152},[55011],{"type":31,"value":270},{"type":21,"tag":139,"props":55013,"children":55014},{"class":141,"line":234},[55015,55019,55023,55027,55031,55035,55040],{"type":21,"tag":139,"props":55016,"children":55017},{"style":146},[55018],{"type":31,"value":1486},{"type":21,"tag":139,"props":55020,"children":55021},{"style":152},[55022],{"type":31,"value":7408},{"type":21,"tag":139,"props":55024,"children":55025},{"style":146},[55026],{"type":31,"value":1496},{"type":21,"tag":139,"props":55028,"children":55029},{"style":214},[55030],{"type":31,"value":7417},{"type":21,"tag":139,"props":55032,"children":55033},{"style":152},[55034],{"type":31,"value":953},{"type":21,"tag":139,"props":55036,"children":55037},{"style":214},[55038],{"type":31,"value":55039},"27",{"type":21,"tag":139,"props":55041,"children":55042},{"style":152},[55043],{"type":31,"value":7430},{"type":21,"tag":139,"props":55045,"children":55046},{"class":141,"line":273},[55047,55052,55056,55060],{"type":21,"tag":139,"props":55048,"children":55049},{"style":152},[55050],{"type":31,"value":55051},"    qc.cx(i, i ",{"type":21,"tag":139,"props":55053,"children":55054},{"style":146},[55055],{"type":31,"value":1599},{"type":21,"tag":139,"props":55057,"children":55058},{"style":214},[55059],{"type":31,"value":17050},{"type":21,"tag":139,"props":55061,"children":55062},{"style":152},[55063],{"type":31,"value":270},{"type":21,"tag":139,"props":55065,"children":55066},{"class":141,"line":309},[55067],{"type":21,"tag":139,"props":55068,"children":55069},{"style":152},[55070],{"type":31,"value":34880},{"type":21,"tag":139,"props":55072,"children":55073},{"class":141,"line":16},[55074],{"type":21,"tag":139,"props":55075,"children":55076},{"emptyLinePlaceholder":194},[55077],{"type":31,"value":197},{"type":21,"tag":139,"props":55079,"children":55080},{"class":141,"line":361},[55081,55085,55089,55093,55097,55101,55105,55110,55114,55119],{"type":21,"tag":139,"props":55082,"children":55083},{"style":146},[55084],{"type":31,"value":1486},{"type":21,"tag":139,"props":55086,"children":55087},{"style":152},[55088],{"type":31,"value":6195},{"type":21,"tag":139,"props":55090,"children":55091},{"style":146},[55092],{"type":31,"value":1496},{"type":21,"tag":139,"props":55094,"children":55095},{"style":152},[55096],{"type":31,"value":8038},{"type":21,"tag":139,"props":55098,"children":55099},{"style":262},[55100],{"type":31,"value":50450},{"type":21,"tag":139,"props":55102,"children":55103},{"style":152},[55104],{"type":31,"value":259},{"type":21,"tag":139,"props":55106,"children":55107},{"style":262},[55108],{"type":31,"value":55109},"\"pennylane\"",{"type":21,"tag":139,"props":55111,"children":55112},{"style":152},[55113],{"type":31,"value":259},{"type":21,"tag":139,"props":55115,"children":55116},{"style":262},[55117],{"type":31,"value":55118},"\"cudaq\"",{"type":21,"tag":139,"props":55120,"children":55121},{"style":152},[55122],{"type":31,"value":20869},{"type":21,"tag":139,"props":55124,"children":55125},{"class":141,"line":369},[55126,55131,55135],{"type":21,"tag":139,"props":55127,"children":55128},{"style":152},[55129],{"type":31,"value":55130},"    t0 ",{"type":21,"tag":139,"props":55132,"children":55133},{"style":146},[55134],{"type":31,"value":211},{"type":21,"tag":139,"props":55136,"children":55137},{"style":152},[55138],{"type":31,"value":55139}," time.time()\n",{"type":21,"tag":139,"props":55141,"children":55142},{"class":141,"line":378},[55143,55148,55152,55156,55160,55164,55168,55172,55176,55180],{"type":21,"tag":139,"props":55144,"children":55145},{"style":152},[55146],{"type":31,"value":55147},"    result ",{"type":21,"tag":139,"props":55149,"children":55150},{"style":146},[55151],{"type":31,"value":211},{"type":21,"tag":139,"props":55153,"children":55154},{"style":152},[55155],{"type":31,"value":43151},{"type":21,"tag":139,"props":55157,"children":55158},{"style":923},[55159],{"type":31,"value":926},{"type":21,"tag":139,"props":55161,"children":55162},{"style":146},[55163],{"type":31,"value":211},{"type":21,"tag":139,"props":55165,"children":55166},{"style":214},[55167],{"type":31,"value":1730},{"type":21,"tag":139,"props":55169,"children":55170},{"style":152},[55171],{"type":31,"value":259},{"type":21,"tag":139,"props":55173,"children":55174},{"style":923},[55175],{"type":31,"value":10987},{"type":21,"tag":139,"props":55177,"children":55178},{"style":146},[55179],{"type":31,"value":211},{"type":21,"tag":139,"props":55181,"children":55182},{"style":152},[55183],{"type":31,"value":49972},{"type":21,"tag":139,"props":55185,"children":55186},{"class":141,"line":387},[55187,55191,55195,55199,55203,55207,55211,55215,55219,55223,55228,55232,55237,55242,55246,55251],{"type":21,"tag":139,"props":55188,"children":55189},{"style":214},[55190],{"type":31,"value":6212},{"type":21,"tag":139,"props":55192,"children":55193},{"style":152},[55194],{"type":31,"value":953},{"type":21,"tag":139,"props":55196,"children":55197},{"style":146},[55198],{"type":31,"value":7524},{"type":21,"tag":139,"props":55200,"children":55201},{"style":262},[55202],{"type":31,"value":15370},{"type":21,"tag":139,"props":55204,"children":55205},{"style":214},[55206],{"type":31,"value":7534},{"type":21,"tag":139,"props":55208,"children":55209},{"style":152},[55210],{"type":31,"value":10987},{"type":21,"tag":139,"props":55212,"children":55213},{"style":214},[55214],{"type":31,"value":7543},{"type":21,"tag":139,"props":55216,"children":55217},{"style":262},[55218],{"type":31,"value":1147},{"type":21,"tag":139,"props":55220,"children":55221},{"style":214},[55222],{"type":31,"value":7534},{"type":21,"tag":139,"props":55224,"children":55225},{"style":152},[55226],{"type":31,"value":55227},"time.time() ",{"type":21,"tag":139,"props":55229,"children":55230},{"style":146},[55231],{"type":31,"value":825},{"type":21,"tag":139,"props":55233,"children":55234},{"style":152},[55235],{"type":31,"value":55236}," t0",{"type":21,"tag":139,"props":55238,"children":55239},{"style":146},[55240],{"type":31,"value":55241},":.2f",{"type":21,"tag":139,"props":55243,"children":55244},{"style":214},[55245],{"type":31,"value":7543},{"type":21,"tag":139,"props":55247,"children":55248},{"style":262},[55249],{"type":31,"value":55250},"s\"",{"type":21,"tag":139,"props":55252,"children":55253},{"style":152},[55254],{"type":31,"value":270},{"type":21,"tag":22,"props":55256,"children":55257},{},[55258],{"type":31,"value":55259},"1つの回路、3つのバックエンド、そのまま比較できる結果。",{"type":21,"tag":1168,"props":55261,"children":55262},{},[55263],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":55265},[55266,55267,55268,55269,55270,55271,55272],{"id":53313,"depth":168,"text":53313},{"id":53501,"depth":168,"text":53504},{"id":53749,"depth":168,"text":53752},{"id":54194,"depth":168,"text":54197},{"id":54479,"depth":168,"text":54482},{"id":54676,"depth":168,"text":54679},{"id":54913,"depth":168,"text":54916},"content:ja:blog:quantum-simulators-compared.md","ja\u002Fblog\u002Fquantum-simulators-compared.md","ja\u002Fblog\u002Fquantum-simulators-compared",{"_path":55277,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":55278,"description":55279,"date":55280,"author":11,"tags":55281,"readingTime":16,"body":55282,"_type":1187,"_id":57374,"_source":1189,"_file":57375,"_stem":57376,"_extension":1192},"\u002Fja\u002Fblog\u002Fvqe-pennylane-practical-guide","PennyLane で VQE を構築する: 実践ガイド","PennyLane を用いた変分量子固有値ソルバーのステップバイステップ実装 — ハミルトニアンの設定から古典的最適化ループまで。","2026-01-28",[3613,4474,13,12741],{"type":18,"children":55283,"toc":57365},[55284,55289,55295,55300,55323,55328,55333,55338,55365,55370,55700,55705,55715,56045,56051,56056,56531,56536,56544,56549,56554,56559,56843,56849,56854,57202,57207,57212,57222,57232,57250,57343,57361],{"type":21,"tag":22,"props":55285,"children":55286},{},[55287],{"type":31,"value":55288},"変分量子固有値ソルバー (VQE) は、最も重要な近未来の量子アルゴリズムの一つです。これは分子や材料の基底状態エネルギーを求めます — この計算は古典コンピュータにとっては指数的に困難ですが、NISQ デバイス上では扱うことができます。本ガイドでは、PennyLane による完全な VQE 実装を順を追って解説します。",{"type":21,"tag":41,"props":55290,"children":55292},{"id":55291},"vqe-が行うこと",[55293],{"type":31,"value":55294},"VQE が行うこと",{"type":21,"tag":22,"props":55296,"children":55297},{},[55298],{"type":31,"value":55299},"VQE はハミルトニアン H (通常は分子のエネルギーを表す) の最小固有値を求めます。その仕組みは次の通りです:",{"type":21,"tag":68,"props":55301,"children":55302},{},[55303,55308,55313,55318],{"type":21,"tag":72,"props":55304,"children":55305},{},[55306],{"type":31,"value":55307},"量子回路を用いてパラメータ化された試行状態 |ψ(θ)⟩ を準備する",{"type":21,"tag":72,"props":55309,"children":55310},{},[55311],{"type":31,"value":55312},"QPU 上で期待値 ⟨ψ(θ)|H|ψ(θ)⟩ を測定する",{"type":21,"tag":72,"props":55314,"children":55315},{},[55316],{"type":31,"value":55317},"古典的最適化器を用いてエネルギーを最小化するように θ を更新する",{"type":21,"tag":72,"props":55319,"children":55320},{},[55321],{"type":31,"value":55322},"収束するまで繰り返す",{"type":21,"tag":22,"props":55324,"children":55325},{},[55326],{"type":31,"value":55327},"変分原理により、任意の状態に対して ⟨ψ(θ)|H|ψ(θ)⟩ ≥ E₀ が保証されます — したがってこの量を最小化することで、真の基底状態エネルギー E₀ の上界が得られます。",{"type":21,"tag":41,"props":55329,"children":55331},{"id":55330},"セットアップ",[55332],{"type":31,"value":55330},{"type":21,"tag":22,"props":55334,"children":55335},{},[55336],{"type":31,"value":55337},"PennyLane を化学プラグインとともにインストールします:",{"type":21,"tag":129,"props":55339,"children":55341},{"code":55340,"language":4498,"meta":7,"className":4499,"style":7},"pip install pennylane pennylane-qchem\n",[55342],{"type":21,"tag":104,"props":55343,"children":55344},{"__ignoreMap":7},[55345],{"type":21,"tag":139,"props":55346,"children":55347},{"class":141,"line":142},[55348,55352,55356,55360],{"type":21,"tag":139,"props":55349,"children":55350},{"style":4509},[55351],{"type":31,"value":4512},{"type":21,"tag":139,"props":55353,"children":55354},{"style":262},[55355],{"type":31,"value":4517},{"type":21,"tag":139,"props":55357,"children":55358},{"style":262},[55359],{"type":31,"value":9032},{"type":21,"tag":139,"props":55361,"children":55362},{"style":262},[55363],{"type":31,"value":55364}," pennylane-qchem\n",{"type":21,"tag":22,"props":55366,"children":55367},{},[55368],{"type":31,"value":55369},"水素分子 (H₂) — 古典的な VQE ベンチマーク — では、2 個の電子と 4 個のスピン軌道 (4 量子ビット) が必要です:",{"type":21,"tag":129,"props":55371,"children":55373},{"code":55372,"language":133,"meta":7,"className":131,"style":7},"import pennylane as qml\nfrom pennylane import numpy as np\nimport pennylane.qchem as qchem\n\n# H2 at equilibrium bond length (Angstrom)\nsymbols = [\"H\", \"H\"]\ncoordinates = np.array([[0.0, 0.0, -0.6614], [0.0, 0.0, 0.6614]])\n\n# Build the qubit Hamiltonian\nH, qubits = qchem.molecular_hamiltonian(\n    symbols,\n    coordinates,\n    basis=\"sto-3g\"\n)\nprint(f\"Hamiltonian: {len(H.ops)} terms, {qubits} qubits\")\n# Hamiltonian: 15 terms, 4 qubits\n",[55374],{"type":21,"tag":104,"props":55375,"children":55376},{"__ignoreMap":7},[55377,55396,55423,55444,55451,55459,55492,55562,55569,55577,55594,55602,55610,55626,55633,55692],{"type":21,"tag":139,"props":55378,"children":55379},{"class":141,"line":142},[55380,55384,55388,55392],{"type":21,"tag":139,"props":55381,"children":55382},{"style":146},[55383],{"type":31,"value":160},{"type":21,"tag":139,"props":55385,"children":55386},{"style":152},[55387],{"type":31,"value":5338},{"type":21,"tag":139,"props":55389,"children":55390},{"style":146},[55391],{"type":31,"value":5343},{"type":21,"tag":139,"props":55393,"children":55394},{"style":152},[55395],{"type":31,"value":5348},{"type":21,"tag":139,"props":55397,"children":55398},{"class":141,"line":168},[55399,55403,55407,55411,55415,55419],{"type":21,"tag":139,"props":55400,"children":55401},{"style":146},[55402],{"type":31,"value":149},{"type":21,"tag":139,"props":55404,"children":55405},{"style":152},[55406],{"type":31,"value":5338},{"type":21,"tag":139,"props":55408,"children":55409},{"style":146},[55410],{"type":31,"value":160},{"type":21,"tag":139,"props":55412,"children":55413},{"style":152},[55414],{"type":31,"value":8517},{"type":21,"tag":139,"props":55416,"children":55417},{"style":146},[55418],{"type":31,"value":5343},{"type":21,"tag":139,"props":55420,"children":55421},{"style":152},[55422],{"type":31,"value":8619},{"type":21,"tag":139,"props":55424,"children":55425},{"class":141,"line":190},[55426,55430,55435,55439],{"type":21,"tag":139,"props":55427,"children":55428},{"style":146},[55429],{"type":31,"value":160},{"type":21,"tag":139,"props":55431,"children":55432},{"style":152},[55433],{"type":31,"value":55434}," pennylane.qchem ",{"type":21,"tag":139,"props":55436,"children":55437},{"style":146},[55438],{"type":31,"value":5343},{"type":21,"tag":139,"props":55440,"children":55441},{"style":152},[55442],{"type":31,"value":55443}," qchem\n",{"type":21,"tag":139,"props":55445,"children":55446},{"class":141,"line":200},[55447],{"type":21,"tag":139,"props":55448,"children":55449},{"emptyLinePlaceholder":194},[55450],{"type":31,"value":197},{"type":21,"tag":139,"props":55452,"children":55453},{"class":141,"line":226},[55454],{"type":21,"tag":139,"props":55455,"children":55456},{"style":220},[55457],{"type":31,"value":55458},"# H2 at equilibrium bond length (Angstrom)\n",{"type":21,"tag":139,"props":55460,"children":55461},{"class":141,"line":234},[55462,55467,55471,55475,55480,55484,55488],{"type":21,"tag":139,"props":55463,"children":55464},{"style":152},[55465],{"type":31,"value":55466},"symbols ",{"type":21,"tag":139,"props":55468,"children":55469},{"style":146},[55470],{"type":31,"value":211},{"type":21,"tag":139,"props":55472,"children":55473},{"style":152},[55474],{"type":31,"value":8038},{"type":21,"tag":139,"props":55476,"children":55477},{"style":262},[55478],{"type":31,"value":55479},"\"H\"",{"type":21,"tag":139,"props":55481,"children":55482},{"style":152},[55483],{"type":31,"value":259},{"type":21,"tag":139,"props":55485,"children":55486},{"style":262},[55487],{"type":31,"value":55479},{"type":21,"tag":139,"props":55489,"children":55490},{"style":152},[55491],{"type":31,"value":14170},{"type":21,"tag":139,"props":55493,"children":55494},{"class":141,"line":273},[55495,55500,55504,55509,55513,55517,55521,55525,55529,55534,55538,55542,55546,55550,55554,55558],{"type":21,"tag":139,"props":55496,"children":55497},{"style":152},[55498],{"type":31,"value":55499},"coordinates ",{"type":21,"tag":139,"props":55501,"children":55502},{"style":146},[55503],{"type":31,"value":211},{"type":21,"tag":139,"props":55505,"children":55506},{"style":152},[55507],{"type":31,"value":55508}," np.array([[",{"type":21,"tag":139,"props":55510,"children":55511},{"style":214},[55512],{"type":31,"value":12565},{"type":21,"tag":139,"props":55514,"children":55515},{"style":152},[55516],{"type":31,"value":259},{"type":21,"tag":139,"props":55518,"children":55519},{"style":214},[55520],{"type":31,"value":12565},{"type":21,"tag":139,"props":55522,"children":55523},{"style":152},[55524],{"type":31,"value":259},{"type":21,"tag":139,"props":55526,"children":55527},{"style":146},[55528],{"type":31,"value":825},{"type":21,"tag":139,"props":55530,"children":55531},{"style":214},[55532],{"type":31,"value":55533},"0.6614",{"type":21,"tag":139,"props":55535,"children":55536},{"style":152},[55537],{"type":31,"value":6404},{"type":21,"tag":139,"props":55539,"children":55540},{"style":214},[55541],{"type":31,"value":12565},{"type":21,"tag":139,"props":55543,"children":55544},{"style":152},[55545],{"type":31,"value":259},{"type":21,"tag":139,"props":55547,"children":55548},{"style":214},[55549],{"type":31,"value":12565},{"type":21,"tag":139,"props":55551,"children":55552},{"style":152},[55553],{"type":31,"value":259},{"type":21,"tag":139,"props":55555,"children":55556},{"style":214},[55557],{"type":31,"value":55533},{"type":21,"tag":139,"props":55559,"children":55560},{"style":152},[55561],{"type":31,"value":11736},{"type":21,"tag":139,"props":55563,"children":55564},{"class":141,"line":309},[55565],{"type":21,"tag":139,"props":55566,"children":55567},{"emptyLinePlaceholder":194},[55568],{"type":31,"value":197},{"type":21,"tag":139,"props":55570,"children":55571},{"class":141,"line":16},[55572],{"type":21,"tag":139,"props":55573,"children":55574},{"style":220},[55575],{"type":31,"value":55576},"# Build the qubit Hamiltonian\n",{"type":21,"tag":139,"props":55578,"children":55579},{"class":141,"line":361},[55580,55585,55589],{"type":21,"tag":139,"props":55581,"children":55582},{"style":152},[55583],{"type":31,"value":55584},"H, qubits ",{"type":21,"tag":139,"props":55586,"children":55587},{"style":146},[55588],{"type":31,"value":211},{"type":21,"tag":139,"props":55590,"children":55591},{"style":152},[55592],{"type":31,"value":55593}," qchem.molecular_hamiltonian(\n",{"type":21,"tag":139,"props":55595,"children":55596},{"class":141,"line":369},[55597],{"type":21,"tag":139,"props":55598,"children":55599},{"style":152},[55600],{"type":31,"value":55601},"    symbols,\n",{"type":21,"tag":139,"props":55603,"children":55604},{"class":141,"line":378},[55605],{"type":21,"tag":139,"props":55606,"children":55607},{"style":152},[55608],{"type":31,"value":55609},"    coordinates,\n",{"type":21,"tag":139,"props":55611,"children":55612},{"class":141,"line":387},[55613,55617,55621],{"type":21,"tag":139,"props":55614,"children":55615},{"style":923},[55616],{"type":31,"value":11992},{"type":21,"tag":139,"props":55618,"children":55619},{"style":146},[55620],{"type":31,"value":211},{"type":21,"tag":139,"props":55622,"children":55623},{"style":262},[55624],{"type":31,"value":55625},"\"sto-3g\"\n",{"type":21,"tag":139,"props":55627,"children":55628},{"class":141,"line":396},[55629],{"type":21,"tag":139,"props":55630,"children":55631},{"style":152},[55632],{"type":31,"value":270},{"type":21,"tag":139,"props":55634,"children":55635},{"class":141,"line":414},[55636,55640,55644,55648,55653,55657,55662,55666,55671,55675,55679,55683,55688],{"type":21,"tag":139,"props":55637,"children":55638},{"style":214},[55639],{"type":31,"value":948},{"type":21,"tag":139,"props":55641,"children":55642},{"style":152},[55643],{"type":31,"value":953},{"type":21,"tag":139,"props":55645,"children":55646},{"style":146},[55647],{"type":31,"value":7524},{"type":21,"tag":139,"props":55649,"children":55650},{"style":262},[55651],{"type":31,"value":55652},"\"Hamiltonian: ",{"type":21,"tag":139,"props":55654,"children":55655},{"style":214},[55656],{"type":31,"value":19577},{"type":21,"tag":139,"props":55658,"children":55659},{"style":152},[55660],{"type":31,"value":55661},"(H.ops)",{"type":21,"tag":139,"props":55663,"children":55664},{"style":214},[55665],{"type":31,"value":7543},{"type":21,"tag":139,"props":55667,"children":55668},{"style":262},[55669],{"type":31,"value":55670}," terms, ",{"type":21,"tag":139,"props":55672,"children":55673},{"style":214},[55674],{"type":31,"value":7534},{"type":21,"tag":139,"props":55676,"children":55677},{"style":152},[55678],{"type":31,"value":22844},{"type":21,"tag":139,"props":55680,"children":55681},{"style":214},[55682],{"type":31,"value":7543},{"type":21,"tag":139,"props":55684,"children":55685},{"style":262},[55686],{"type":31,"value":55687}," qubits\"",{"type":21,"tag":139,"props":55689,"children":55690},{"style":152},[55691],{"type":31,"value":270},{"type":21,"tag":139,"props":55693,"children":55694},{"class":141,"line":12589},[55695],{"type":21,"tag":139,"props":55696,"children":55697},{"style":220},[55698],{"type":31,"value":55699},"# Hamiltonian: 15 terms, 4 qubits\n",{"type":21,"tag":41,"props":55701,"children":55703},{"id":55702},"アンザッツの定義",[55704],{"type":31,"value":55702},{"type":21,"tag":22,"props":55706,"children":55707},{},[55708,55713],{"type":21,"tag":16802,"props":55709,"children":55710},{},[55711],{"type":31,"value":55712},"アンザッツ",{"type":31,"value":55714}," とは、試行状態を準備するパラメータ化された回路のことです。化学問題では、UCCSD (Unitary Coupled-Cluster Singles and Doubles) アンザッツが標準的に用いられます:",{"type":21,"tag":129,"props":55716,"children":55718},{"code":55717,"language":133,"meta":7,"className":131,"style":7},"# Get UCCSD circuit parameters\nelectrons = 2\nsingles, doubles = qchem.excitations(electrons, qubits)\ns_wires, d_wires = qchem.excitations_to_wires(singles, doubles, wires=range(qubits))\n\n# Initial Hartree-Fock state (reference state)\nhf_state = qchem.hf_state(electrons, qubits)\n\ndev = qml.device(\"default.qubit\", wires=qubits)\n\n@qml.qnode(dev)\ndef circuit(weights, wires, s_wires=[], d_wires=[], hf_state=hf_state):\n    # Prepare HF reference state\n    qml.BasisState(hf_state, wires=wires)\n\n    # Apply UCCSD excitations\n    qml.UCCSD(weights, wires, s_wires=s_wires, d_wires=d_wires, init_state=hf_state)\n\n    return qml.expval(H)\n",[55719],{"type":21,"tag":104,"props":55720,"children":55721},{"__ignoreMap":7},[55722,55730,55746,55763,55797,55804,55812,55829,55836,55872,55879,55890,55933,55941,55962,55969,55977,56027,56034],{"type":21,"tag":139,"props":55723,"children":55724},{"class":141,"line":142},[55725],{"type":21,"tag":139,"props":55726,"children":55727},{"style":220},[55728],{"type":31,"value":55729},"# Get UCCSD circuit parameters\n",{"type":21,"tag":139,"props":55731,"children":55732},{"class":141,"line":168},[55733,55738,55742],{"type":21,"tag":139,"props":55734,"children":55735},{"style":152},[55736],{"type":31,"value":55737},"electrons ",{"type":21,"tag":139,"props":55739,"children":55740},{"style":146},[55741],{"type":31,"value":211},{"type":21,"tag":139,"props":55743,"children":55744},{"style":214},[55745],{"type":31,"value":1604},{"type":21,"tag":139,"props":55747,"children":55748},{"class":141,"line":190},[55749,55754,55758],{"type":21,"tag":139,"props":55750,"children":55751},{"style":152},[55752],{"type":31,"value":55753},"singles, doubles ",{"type":21,"tag":139,"props":55755,"children":55756},{"style":146},[55757],{"type":31,"value":211},{"type":21,"tag":139,"props":55759,"children":55760},{"style":152},[55761],{"type":31,"value":55762}," qchem.excitations(electrons, qubits)\n",{"type":21,"tag":139,"props":55764,"children":55765},{"class":141,"line":200},[55766,55771,55775,55780,55784,55788,55792],{"type":21,"tag":139,"props":55767,"children":55768},{"style":152},[55769],{"type":31,"value":55770},"s_wires, d_wires ",{"type":21,"tag":139,"props":55772,"children":55773},{"style":146},[55774],{"type":31,"value":211},{"type":21,"tag":139,"props":55776,"children":55777},{"style":152},[55778],{"type":31,"value":55779}," qchem.excitations_to_wires(singles, doubles, ",{"type":21,"tag":139,"props":55781,"children":55782},{"style":923},[55783],{"type":31,"value":5447},{"type":21,"tag":139,"props":55785,"children":55786},{"style":146},[55787],{"type":31,"value":211},{"type":21,"tag":139,"props":55789,"children":55790},{"style":214},[55791],{"type":31,"value":17713},{"type":21,"tag":139,"props":55793,"children":55794},{"style":152},[55795],{"type":31,"value":55796},"(qubits))\n",{"type":21,"tag":139,"props":55798,"children":55799},{"class":141,"line":226},[55800],{"type":21,"tag":139,"props":55801,"children":55802},{"emptyLinePlaceholder":194},[55803],{"type":31,"value":197},{"type":21,"tag":139,"props":55805,"children":55806},{"class":141,"line":234},[55807],{"type":21,"tag":139,"props":55808,"children":55809},{"style":220},[55810],{"type":31,"value":55811},"# Initial Hartree-Fock state (reference state)\n",{"type":21,"tag":139,"props":55813,"children":55814},{"class":141,"line":273},[55815,55820,55824],{"type":21,"tag":139,"props":55816,"children":55817},{"style":152},[55818],{"type":31,"value":55819},"hf_state ",{"type":21,"tag":139,"props":55821,"children":55822},{"style":146},[55823],{"type":31,"value":211},{"type":21,"tag":139,"props":55825,"children":55826},{"style":152},[55827],{"type":31,"value":55828}," qchem.hf_state(electrons, qubits)\n",{"type":21,"tag":139,"props":55830,"children":55831},{"class":141,"line":309},[55832],{"type":21,"tag":139,"props":55833,"children":55834},{"emptyLinePlaceholder":194},[55835],{"type":31,"value":197},{"type":21,"tag":139,"props":55837,"children":55838},{"class":141,"line":16},[55839,55843,55847,55851,55855,55859,55863,55867],{"type":21,"tag":139,"props":55840,"children":55841},{"style":152},[55842],{"type":31,"value":8713},{"type":21,"tag":139,"props":55844,"children":55845},{"style":146},[55846],{"type":31,"value":211},{"type":21,"tag":139,"props":55848,"children":55849},{"style":152},[55850],{"type":31,"value":5433},{"type":21,"tag":139,"props":55852,"children":55853},{"style":262},[55854],{"type":31,"value":5438},{"type":21,"tag":139,"props":55856,"children":55857},{"style":152},[55858],{"type":31,"value":259},{"type":21,"tag":139,"props":55860,"children":55861},{"style":923},[55862],{"type":31,"value":5447},{"type":21,"tag":139,"props":55864,"children":55865},{"style":146},[55866],{"type":31,"value":211},{"type":21,"tag":139,"props":55868,"children":55869},{"style":152},[55870],{"type":31,"value":55871},"qubits)\n",{"type":21,"tag":139,"props":55873,"children":55874},{"class":141,"line":361},[55875],{"type":21,"tag":139,"props":55876,"children":55877},{"emptyLinePlaceholder":194},[55878],{"type":31,"value":197},{"type":21,"tag":139,"props":55880,"children":55881},{"class":141,"line":369},[55882,55886],{"type":21,"tag":139,"props":55883,"children":55884},{"style":4509},[55885],{"type":31,"value":5474},{"type":21,"tag":139,"props":55887,"children":55888},{"style":152},[55889],{"type":31,"value":8765},{"type":21,"tag":139,"props":55891,"children":55892},{"class":141,"line":378},[55893,55897,55901,55906,55910,55915,55919,55924,55928],{"type":21,"tag":139,"props":55894,"children":55895},{"style":146},[55896],{"type":31,"value":5487},{"type":21,"tag":139,"props":55898,"children":55899},{"style":4509},[55900],{"type":31,"value":5492},{"type":21,"tag":139,"props":55902,"children":55903},{"style":152},[55904],{"type":31,"value":55905},"(weights, wires, s_wires",{"type":21,"tag":139,"props":55907,"children":55908},{"style":146},[55909],{"type":31,"value":211},{"type":21,"tag":139,"props":55911,"children":55912},{"style":152},[55913],{"type":31,"value":55914},"[], d_wires",{"type":21,"tag":139,"props":55916,"children":55917},{"style":146},[55918],{"type":31,"value":211},{"type":21,"tag":139,"props":55920,"children":55921},{"style":152},[55922],{"type":31,"value":55923},"[], hf_state",{"type":21,"tag":139,"props":55925,"children":55926},{"style":146},[55927],{"type":31,"value":211},{"type":21,"tag":139,"props":55929,"children":55930},{"style":152},[55931],{"type":31,"value":55932},"hf_state):\n",{"type":21,"tag":139,"props":55934,"children":55935},{"class":141,"line":387},[55936],{"type":21,"tag":139,"props":55937,"children":55938},{"style":220},[55939],{"type":31,"value":55940},"    # Prepare HF reference state\n",{"type":21,"tag":139,"props":55942,"children":55943},{"class":141,"line":396},[55944,55949,55953,55957],{"type":21,"tag":139,"props":55945,"children":55946},{"style":152},[55947],{"type":31,"value":55948},"    qml.BasisState(hf_state, ",{"type":21,"tag":139,"props":55950,"children":55951},{"style":923},[55952],{"type":31,"value":5447},{"type":21,"tag":139,"props":55954,"children":55955},{"style":146},[55956],{"type":31,"value":211},{"type":21,"tag":139,"props":55958,"children":55959},{"style":152},[55960],{"type":31,"value":55961},"wires)\n",{"type":21,"tag":139,"props":55963,"children":55964},{"class":141,"line":414},[55965],{"type":21,"tag":139,"props":55966,"children":55967},{"emptyLinePlaceholder":194},[55968],{"type":31,"value":197},{"type":21,"tag":139,"props":55970,"children":55971},{"class":141,"line":12589},[55972],{"type":21,"tag":139,"props":55973,"children":55974},{"style":220},[55975],{"type":31,"value":55976},"    # Apply UCCSD excitations\n",{"type":21,"tag":139,"props":55978,"children":55979},{"class":141,"line":12606},[55980,55985,55990,55994,55999,56004,56008,56013,56018,56022],{"type":21,"tag":139,"props":55981,"children":55982},{"style":152},[55983],{"type":31,"value":55984},"    qml.UCCSD(weights, wires, ",{"type":21,"tag":139,"props":55986,"children":55987},{"style":923},[55988],{"type":31,"value":55989},"s_wires",{"type":21,"tag":139,"props":55991,"children":55992},{"style":146},[55993],{"type":31,"value":211},{"type":21,"tag":139,"props":55995,"children":55996},{"style":152},[55997],{"type":31,"value":55998},"s_wires, ",{"type":21,"tag":139,"props":56000,"children":56001},{"style":923},[56002],{"type":31,"value":56003},"d_wires",{"type":21,"tag":139,"props":56005,"children":56006},{"style":146},[56007],{"type":31,"value":211},{"type":21,"tag":139,"props":56009,"children":56010},{"style":152},[56011],{"type":31,"value":56012},"d_wires, ",{"type":21,"tag":139,"props":56014,"children":56015},{"style":923},[56016],{"type":31,"value":56017},"init_state",{"type":21,"tag":139,"props":56019,"children":56020},{"style":146},[56021],{"type":31,"value":211},{"type":21,"tag":139,"props":56023,"children":56024},{"style":152},[56025],{"type":31,"value":56026},"hf_state)\n",{"type":21,"tag":139,"props":56028,"children":56029},{"class":141,"line":12622},[56030],{"type":21,"tag":139,"props":56031,"children":56032},{"emptyLinePlaceholder":194},[56033],{"type":31,"value":197},{"type":21,"tag":139,"props":56035,"children":56036},{"class":141,"line":12630},[56037,56041],{"type":21,"tag":139,"props":56038,"children":56039},{"style":146},[56040],{"type":31,"value":5582},{"type":21,"tag":139,"props":56042,"children":56043},{"style":152},[56044],{"type":31,"value":46864},{"type":21,"tag":41,"props":56046,"children":56048},{"id":56047},"vqe-最適化の実行",[56049],{"type":31,"value":56050},"VQE 最適化の実行",{"type":21,"tag":22,"props":56052,"children":56053},{},[56054],{"type":31,"value":56055},"PennyLane の自動微分を用いれば、勾配ベースの最適化器を直接使用できます:",{"type":21,"tag":129,"props":56057,"children":56059},{"code":56058,"language":133,"meta":7,"className":131,"style":7},"# Initial parameters (all zeros = Hartree-Fock state)\ninit_params = np.zeros(len(singles) + len(doubles), requires_grad=True)\n\n# Adam optimizer (works well for VQE)\nopt = qml.AdamOptimizer(stepsize=0.4)\n\n# Optimization loop\nenergy_history = []\nparams = init_params.copy()\n\nfor step in range(200):\n    params, energy = opt.step_and_cost(\n        lambda p: circuit(p, range(qubits), s_wires=s_wires, d_wires=d_wires),\n        params\n    )\n    energy_history.append(energy)\n\n    if step % 20 == 0:\n        print(f\"Step {step:3d}: E = {energy:.6f} Ha\")\n\nprint(f\"\\nVQE ground state energy: {energy:.6f} Ha\")\nprint(f\"Reference (exact): -1.136189 Ha\")\n",[56060],{"type":21,"tag":104,"props":56061,"children":56062},{"__ignoreMap":7},[56063,56071,56125,56132,56140,56172,56179,56187,56204,56219,56226,56257,56273,56320,56328,56335,56343,56350,56382,56448,56455,56507],{"type":21,"tag":139,"props":56064,"children":56065},{"class":141,"line":142},[56066],{"type":21,"tag":139,"props":56067,"children":56068},{"style":220},[56069],{"type":31,"value":56070},"# Initial parameters (all zeros = Hartree-Fock state)\n",{"type":21,"tag":139,"props":56072,"children":56073},{"class":141,"line":168},[56074,56078,56082,56086,56090,56095,56099,56104,56109,56113,56117,56121],{"type":21,"tag":139,"props":56075,"children":56076},{"style":152},[56077],{"type":31,"value":51649},{"type":21,"tag":139,"props":56079,"children":56080},{"style":146},[56081],{"type":31,"value":211},{"type":21,"tag":139,"props":56083,"children":56084},{"style":152},[56085],{"type":31,"value":34482},{"type":21,"tag":139,"props":56087,"children":56088},{"style":214},[56089],{"type":31,"value":36832},{"type":21,"tag":139,"props":56091,"children":56092},{"style":152},[56093],{"type":31,"value":56094},"(singles) ",{"type":21,"tag":139,"props":56096,"children":56097},{"style":146},[56098],{"type":31,"value":1599},{"type":21,"tag":139,"props":56100,"children":56101},{"style":214},[56102],{"type":31,"value":56103}," len",{"type":21,"tag":139,"props":56105,"children":56106},{"style":152},[56107],{"type":31,"value":56108},"(doubles), ",{"type":21,"tag":139,"props":56110,"children":56111},{"style":923},[56112],{"type":31,"value":8655},{"type":21,"tag":139,"props":56114,"children":56115},{"style":146},[56116],{"type":31,"value":211},{"type":21,"tag":139,"props":56118,"children":56119},{"style":214},[56120],{"type":31,"value":8664},{"type":21,"tag":139,"props":56122,"children":56123},{"style":152},[56124],{"type":31,"value":270},{"type":21,"tag":139,"props":56126,"children":56127},{"class":141,"line":190},[56128],{"type":21,"tag":139,"props":56129,"children":56130},{"emptyLinePlaceholder":194},[56131],{"type":31,"value":197},{"type":21,"tag":139,"props":56133,"children":56134},{"class":141,"line":200},[56135],{"type":21,"tag":139,"props":56136,"children":56137},{"style":220},[56138],{"type":31,"value":56139},"# Adam optimizer (works well for VQE)\n",{"type":21,"tag":139,"props":56141,"children":56142},{"class":141,"line":226},[56143,56147,56151,56155,56159,56163,56168],{"type":21,"tag":139,"props":56144,"children":56145},{"style":152},[56146],{"type":31,"value":36719},{"type":21,"tag":139,"props":56148,"children":56149},{"style":146},[56150],{"type":31,"value":211},{"type":21,"tag":139,"props":56152,"children":56153},{"style":152},[56154],{"type":31,"value":36728},{"type":21,"tag":139,"props":56156,"children":56157},{"style":923},[56158],{"type":31,"value":36733},{"type":21,"tag":139,"props":56160,"children":56161},{"style":146},[56162],{"type":31,"value":211},{"type":21,"tag":139,"props":56164,"children":56165},{"style":214},[56166],{"type":31,"value":56167},"0.4",{"type":21,"tag":139,"props":56169,"children":56170},{"style":152},[56171],{"type":31,"value":270},{"type":21,"tag":139,"props":56173,"children":56174},{"class":141,"line":234},[56175],{"type":21,"tag":139,"props":56176,"children":56177},{"emptyLinePlaceholder":194},[56178],{"type":31,"value":197},{"type":21,"tag":139,"props":56180,"children":56181},{"class":141,"line":273},[56182],{"type":21,"tag":139,"props":56183,"children":56184},{"style":220},[56185],{"type":31,"value":56186},"# Optimization loop\n",{"type":21,"tag":139,"props":56188,"children":56189},{"class":141,"line":309},[56190,56195,56199],{"type":21,"tag":139,"props":56191,"children":56192},{"style":152},[56193],{"type":31,"value":56194},"energy_history ",{"type":21,"tag":139,"props":56196,"children":56197},{"style":146},[56198],{"type":31,"value":211},{"type":21,"tag":139,"props":56200,"children":56201},{"style":152},[56202],{"type":31,"value":56203}," []\n",{"type":21,"tag":139,"props":56205,"children":56206},{"class":141,"line":16},[56207,56211,56215],{"type":21,"tag":139,"props":56208,"children":56209},{"style":152},[56210],{"type":31,"value":8539},{"type":21,"tag":139,"props":56212,"children":56213},{"style":146},[56214],{"type":31,"value":211},{"type":21,"tag":139,"props":56216,"children":56217},{"style":152},[56218],{"type":31,"value":47593},{"type":21,"tag":139,"props":56220,"children":56221},{"class":141,"line":361},[56222],{"type":21,"tag":139,"props":56223,"children":56224},{"emptyLinePlaceholder":194},[56225],{"type":31,"value":197},{"type":21,"tag":139,"props":56227,"children":56228},{"class":141,"line":369},[56229,56233,56237,56241,56245,56249,56253],{"type":21,"tag":139,"props":56230,"children":56231},{"style":146},[56232],{"type":31,"value":1486},{"type":21,"tag":139,"props":56234,"children":56235},{"style":152},[56236],{"type":31,"value":36781},{"type":21,"tag":139,"props":56238,"children":56239},{"style":146},[56240],{"type":31,"value":1496},{"type":21,"tag":139,"props":56242,"children":56243},{"style":214},[56244],{"type":31,"value":7417},{"type":21,"tag":139,"props":56246,"children":56247},{"style":152},[56248],{"type":31,"value":953},{"type":21,"tag":139,"props":56250,"children":56251},{"style":214},[56252],{"type":31,"value":14106},{"type":21,"tag":139,"props":56254,"children":56255},{"style":152},[56256],{"type":31,"value":7430},{"type":21,"tag":139,"props":56258,"children":56259},{"class":141,"line":378},[56260,56264,56268],{"type":21,"tag":139,"props":56261,"children":56262},{"style":152},[56263],{"type":31,"value":47662},{"type":21,"tag":139,"props":56265,"children":56266},{"style":146},[56267],{"type":31,"value":211},{"type":21,"tag":139,"props":56269,"children":56270},{"style":152},[56271],{"type":31,"value":56272}," opt.step_and_cost(\n",{"type":21,"tag":139,"props":56274,"children":56275},{"class":141,"line":387},[56276,56281,56286,56290,56295,56299,56303,56307,56311,56315],{"type":21,"tag":139,"props":56277,"children":56278},{"style":146},[56279],{"type":31,"value":56280},"        lambda",{"type":21,"tag":139,"props":56282,"children":56283},{"style":152},[56284],{"type":31,"value":56285}," p: circuit(p, ",{"type":21,"tag":139,"props":56287,"children":56288},{"style":214},[56289],{"type":31,"value":17713},{"type":21,"tag":139,"props":56291,"children":56292},{"style":152},[56293],{"type":31,"value":56294},"(qubits), ",{"type":21,"tag":139,"props":56296,"children":56297},{"style":923},[56298],{"type":31,"value":55989},{"type":21,"tag":139,"props":56300,"children":56301},{"style":146},[56302],{"type":31,"value":211},{"type":21,"tag":139,"props":56304,"children":56305},{"style":152},[56306],{"type":31,"value":55998},{"type":21,"tag":139,"props":56308,"children":56309},{"style":923},[56310],{"type":31,"value":56003},{"type":21,"tag":139,"props":56312,"children":56313},{"style":146},[56314],{"type":31,"value":211},{"type":21,"tag":139,"props":56316,"children":56317},{"style":152},[56318],{"type":31,"value":56319},"d_wires),\n",{"type":21,"tag":139,"props":56321,"children":56322},{"class":141,"line":396},[56323],{"type":21,"tag":139,"props":56324,"children":56325},{"style":152},[56326],{"type":31,"value":56327},"        params\n",{"type":21,"tag":139,"props":56329,"children":56330},{"class":141,"line":414},[56331],{"type":21,"tag":139,"props":56332,"children":56333},{"style":152},[56334],{"type":31,"value":26488},{"type":21,"tag":139,"props":56336,"children":56337},{"class":141,"line":12589},[56338],{"type":21,"tag":139,"props":56339,"children":56340},{"style":152},[56341],{"type":31,"value":56342},"    energy_history.append(energy)\n",{"type":21,"tag":139,"props":56344,"children":56345},{"class":141,"line":12606},[56346],{"type":21,"tag":139,"props":56347,"children":56348},{"emptyLinePlaceholder":194},[56349],{"type":31,"value":197},{"type":21,"tag":139,"props":56351,"children":56352},{"class":141,"line":12622},[56353,56357,56361,56365,56370,56374,56378],{"type":21,"tag":139,"props":56354,"children":56355},{"style":146},[56356],{"type":31,"value":19523},{"type":21,"tag":139,"props":56358,"children":56359},{"style":152},[56360],{"type":31,"value":36781},{"type":21,"tag":139,"props":56362,"children":56363},{"style":146},[56364],{"type":31,"value":28243},{"type":21,"tag":139,"props":56366,"children":56367},{"style":214},[56368],{"type":31,"value":56369}," 20",{"type":21,"tag":139,"props":56371,"children":56372},{"style":146},[56373],{"type":31,"value":36906},{"type":21,"tag":139,"props":56375,"children":56376},{"style":214},[56377],{"type":31,"value":33759},{"type":21,"tag":139,"props":56379,"children":56380},{"style":152},[56381],{"type":31,"value":26809},{"type":21,"tag":139,"props":56383,"children":56384},{"class":141,"line":12630},[56385,56389,56393,56397,56401,56405,56409,56414,56418,56423,56427,56431,56436,56440,56444],{"type":21,"tag":139,"props":56386,"children":56387},{"style":214},[56388],{"type":31,"value":34683},{"type":21,"tag":139,"props":56390,"children":56391},{"style":152},[56392],{"type":31,"value":953},{"type":21,"tag":139,"props":56394,"children":56395},{"style":146},[56396],{"type":31,"value":7524},{"type":21,"tag":139,"props":56398,"children":56399},{"style":262},[56400],{"type":31,"value":36997},{"type":21,"tag":139,"props":56402,"children":56403},{"style":214},[56404],{"type":31,"value":7534},{"type":21,"tag":139,"props":56406,"children":56407},{"style":152},[56408],{"type":31,"value":37006},{"type":21,"tag":139,"props":56410,"children":56411},{"style":146},[56412],{"type":31,"value":56413},":3d",{"type":21,"tag":139,"props":56415,"children":56416},{"style":214},[56417],{"type":31,"value":7543},{"type":21,"tag":139,"props":56419,"children":56420},{"style":262},[56421],{"type":31,"value":56422},": E = ",{"type":21,"tag":139,"props":56424,"children":56425},{"style":214},[56426],{"type":31,"value":7534},{"type":21,"tag":139,"props":56428,"children":56429},{"style":152},[56430],{"type":31,"value":48566},{"type":21,"tag":139,"props":56432,"children":56433},{"style":146},[56434],{"type":31,"value":56435},":.6f",{"type":21,"tag":139,"props":56437,"children":56438},{"style":214},[56439],{"type":31,"value":7543},{"type":21,"tag":139,"props":56441,"children":56442},{"style":262},[56443],{"type":31,"value":41175},{"type":21,"tag":139,"props":56445,"children":56446},{"style":152},[56447],{"type":31,"value":270},{"type":21,"tag":139,"props":56449,"children":56450},{"class":141,"line":17747},[56451],{"type":21,"tag":139,"props":56452,"children":56453},{"emptyLinePlaceholder":194},[56454],{"type":31,"value":197},{"type":21,"tag":139,"props":56456,"children":56457},{"class":141,"line":17765},[56458,56462,56466,56470,56474,56478,56483,56487,56491,56495,56499,56503],{"type":21,"tag":139,"props":56459,"children":56460},{"style":214},[56461],{"type":31,"value":948},{"type":21,"tag":139,"props":56463,"children":56464},{"style":152},[56465],{"type":31,"value":953},{"type":21,"tag":139,"props":56467,"children":56468},{"style":146},[56469],{"type":31,"value":7524},{"type":21,"tag":139,"props":56471,"children":56472},{"style":262},[56473],{"type":31,"value":15370},{"type":21,"tag":139,"props":56475,"children":56476},{"style":214},[56477],{"type":31,"value":37134},{"type":21,"tag":139,"props":56479,"children":56480},{"style":262},[56481],{"type":31,"value":56482},"VQE ground state energy: ",{"type":21,"tag":139,"props":56484,"children":56485},{"style":214},[56486],{"type":31,"value":7534},{"type":21,"tag":139,"props":56488,"children":56489},{"style":152},[56490],{"type":31,"value":48566},{"type":21,"tag":139,"props":56492,"children":56493},{"style":146},[56494],{"type":31,"value":56435},{"type":21,"tag":139,"props":56496,"children":56497},{"style":214},[56498],{"type":31,"value":7543},{"type":21,"tag":139,"props":56500,"children":56501},{"style":262},[56502],{"type":31,"value":41175},{"type":21,"tag":139,"props":56504,"children":56505},{"style":152},[56506],{"type":31,"value":270},{"type":21,"tag":139,"props":56508,"children":56509},{"class":141,"line":17790},[56510,56514,56518,56522,56527],{"type":21,"tag":139,"props":56511,"children":56512},{"style":214},[56513],{"type":31,"value":948},{"type":21,"tag":139,"props":56515,"children":56516},{"style":152},[56517],{"type":31,"value":953},{"type":21,"tag":139,"props":56519,"children":56520},{"style":146},[56521],{"type":31,"value":7524},{"type":21,"tag":139,"props":56523,"children":56524},{"style":262},[56525],{"type":31,"value":56526},"\"Reference (exact): -1.136189 Ha\"",{"type":21,"tag":139,"props":56528,"children":56529},{"style":152},[56530],{"type":31,"value":270},{"type":21,"tag":22,"props":56532,"children":56533},{},[56534],{"type":31,"value":56535},"典型的な出力:",{"type":21,"tag":129,"props":56537,"children":56539},{"code":56538},"Step   0: E = -1.117498 Ha\nStep  20: E = -1.133254 Ha\nStep  40: E = -1.135901 Ha\nStep  60: E = -1.136140 Ha\n...\nVQE ground state energy: -1.136174 Ha\nReference (exact): -1.136189 Ha\n",[56540],{"type":21,"tag":104,"props":56541,"children":56542},{"__ignoreMap":7},[56543],{"type":31,"value":56538},{"type":21,"tag":22,"props":56545,"children":56546},{},[56547],{"type":31,"value":56548},"VQE は正確なエネルギーの約 0.015 mHa 以内に到達します — H₂ における化学的精度です。",{"type":21,"tag":41,"props":56550,"children":56552},{"id":56551},"勾配フリー最適化器の使用",[56553],{"type":31,"value":56551},{"type":21,"tag":22,"props":56555,"children":56556},{},[56557],{"type":31,"value":56558},"ノイズのあるハードウェアでは、ハードウェアの勾配がノイジーであるため、COBYLA や SPSA のような勾配フリー最適化器がしばしば有利です:",{"type":21,"tag":129,"props":56560,"children":56562},{"code":56561,"language":133,"meta":7,"className":131,"style":7},"from scipy.optimize import minimize\n\n# Objective function (no gradient needed)\ndef objective(params):\n    return float(circuit(params, range(qubits), s_wires=s_wires, d_wires=d_wires))\n\nresult = minimize(\n    objective,\n    x0=init_params,\n    method=\"COBYLA\",\n    options={\"maxiter\": 500, \"rhobeg\": 0.1}\n)\n\nprint(f\"COBYLA energy: {result.fun:.6f} Ha\")\n",[56563],{"type":21,"tag":104,"props":56564,"children":56565},{"__ignoreMap":7},[56566,56585,56592,56600,56616,56665,56672,56688,56696,56713,56734,56785,56792,56799],{"type":21,"tag":139,"props":56567,"children":56568},{"class":141,"line":142},[56569,56573,56577,56581],{"type":21,"tag":139,"props":56570,"children":56571},{"style":146},[56572],{"type":31,"value":149},{"type":21,"tag":139,"props":56574,"children":56575},{"style":152},[56576],{"type":31,"value":50768},{"type":21,"tag":139,"props":56578,"children":56579},{"style":146},[56580],{"type":31,"value":160},{"type":21,"tag":139,"props":56582,"children":56583},{"style":152},[56584],{"type":31,"value":50777},{"type":21,"tag":139,"props":56586,"children":56587},{"class":141,"line":168},[56588],{"type":21,"tag":139,"props":56589,"children":56590},{"emptyLinePlaceholder":194},[56591],{"type":31,"value":197},{"type":21,"tag":139,"props":56593,"children":56594},{"class":141,"line":190},[56595],{"type":21,"tag":139,"props":56596,"children":56597},{"style":220},[56598],{"type":31,"value":56599},"# Objective function (no gradient needed)\n",{"type":21,"tag":139,"props":56601,"children":56602},{"class":141,"line":200},[56603,56607,56612],{"type":21,"tag":139,"props":56604,"children":56605},{"style":146},[56606],{"type":31,"value":5487},{"type":21,"tag":139,"props":56608,"children":56609},{"style":4509},[56610],{"type":31,"value":56611}," objective",{"type":21,"tag":139,"props":56613,"children":56614},{"style":152},[56615],{"type":31,"value":46836},{"type":21,"tag":139,"props":56617,"children":56618},{"class":141,"line":226},[56619,56623,56627,56632,56636,56640,56644,56648,56652,56656,56660],{"type":21,"tag":139,"props":56620,"children":56621},{"style":146},[56622],{"type":31,"value":5582},{"type":21,"tag":139,"props":56624,"children":56625},{"style":214},[56626],{"type":31,"value":47610},{"type":21,"tag":139,"props":56628,"children":56629},{"style":152},[56630],{"type":31,"value":56631},"(circuit(params, ",{"type":21,"tag":139,"props":56633,"children":56634},{"style":214},[56635],{"type":31,"value":17713},{"type":21,"tag":139,"props":56637,"children":56638},{"style":152},[56639],{"type":31,"value":56294},{"type":21,"tag":139,"props":56641,"children":56642},{"style":923},[56643],{"type":31,"value":55989},{"type":21,"tag":139,"props":56645,"children":56646},{"style":146},[56647],{"type":31,"value":211},{"type":21,"tag":139,"props":56649,"children":56650},{"style":152},[56651],{"type":31,"value":55998},{"type":21,"tag":139,"props":56653,"children":56654},{"style":923},[56655],{"type":31,"value":56003},{"type":21,"tag":139,"props":56657,"children":56658},{"style":146},[56659],{"type":31,"value":211},{"type":21,"tag":139,"props":56661,"children":56662},{"style":152},[56663],{"type":31,"value":56664},"d_wires))\n",{"type":21,"tag":139,"props":56666,"children":56667},{"class":141,"line":234},[56668],{"type":21,"tag":139,"props":56669,"children":56670},{"emptyLinePlaceholder":194},[56671],{"type":31,"value":197},{"type":21,"tag":139,"props":56673,"children":56674},{"class":141,"line":273},[56675,56679,56683],{"type":21,"tag":139,"props":56676,"children":56677},{"style":152},[56678],{"type":31,"value":4868},{"type":21,"tag":139,"props":56680,"children":56681},{"style":146},[56682],{"type":31,"value":211},{"type":21,"tag":139,"props":56684,"children":56685},{"style":152},[56686],{"type":31,"value":56687}," minimize(\n",{"type":21,"tag":139,"props":56689,"children":56690},{"class":141,"line":309},[56691],{"type":21,"tag":139,"props":56692,"children":56693},{"style":152},[56694],{"type":31,"value":56695},"    objective,\n",{"type":21,"tag":139,"props":56697,"children":56698},{"class":141,"line":16},[56699,56704,56708],{"type":21,"tag":139,"props":56700,"children":56701},{"style":923},[56702],{"type":31,"value":56703},"    x0",{"type":21,"tag":139,"props":56705,"children":56706},{"style":146},[56707],{"type":31,"value":211},{"type":21,"tag":139,"props":56709,"children":56710},{"style":152},[56711],{"type":31,"value":56712},"init_params,\n",{"type":21,"tag":139,"props":56714,"children":56715},{"class":141,"line":361},[56716,56721,56725,56730],{"type":21,"tag":139,"props":56717,"children":56718},{"style":923},[56719],{"type":31,"value":56720},"    method",{"type":21,"tag":139,"props":56722,"children":56723},{"style":146},[56724],{"type":31,"value":211},{"type":21,"tag":139,"props":56726,"children":56727},{"style":262},[56728],{"type":31,"value":56729},"\"COBYLA\"",{"type":21,"tag":139,"props":56731,"children":56732},{"style":152},[56733],{"type":31,"value":4811},{"type":21,"tag":139,"props":56735,"children":56736},{"class":141,"line":369},[56737,56742,56746,56750,56755,56759,56764,56768,56773,56777,56781],{"type":21,"tag":139,"props":56738,"children":56739},{"style":923},[56740],{"type":31,"value":56741},"    options",{"type":21,"tag":139,"props":56743,"children":56744},{"style":146},[56745],{"type":31,"value":211},{"type":21,"tag":139,"props":56747,"children":56748},{"style":152},[56749],{"type":31,"value":7534},{"type":21,"tag":139,"props":56751,"children":56752},{"style":262},[56753],{"type":31,"value":56754},"\"maxiter\"",{"type":21,"tag":139,"props":56756,"children":56757},{"style":152},[56758],{"type":31,"value":1147},{"type":21,"tag":139,"props":56760,"children":56761},{"style":214},[56762],{"type":31,"value":56763},"500",{"type":21,"tag":139,"props":56765,"children":56766},{"style":152},[56767],{"type":31,"value":259},{"type":21,"tag":139,"props":56769,"children":56770},{"style":262},[56771],{"type":31,"value":56772},"\"rhobeg\"",{"type":21,"tag":139,"props":56774,"children":56775},{"style":152},[56776],{"type":31,"value":1147},{"type":21,"tag":139,"props":56778,"children":56779},{"style":214},[56780],{"type":31,"value":8553},{"type":21,"tag":139,"props":56782,"children":56783},{"style":152},[56784],{"type":31,"value":19546},{"type":21,"tag":139,"props":56786,"children":56787},{"class":141,"line":378},[56788],{"type":21,"tag":139,"props":56789,"children":56790},{"style":152},[56791],{"type":31,"value":270},{"type":21,"tag":139,"props":56793,"children":56794},{"class":141,"line":387},[56795],{"type":21,"tag":139,"props":56796,"children":56797},{"emptyLinePlaceholder":194},[56798],{"type":31,"value":197},{"type":21,"tag":139,"props":56800,"children":56801},{"class":141,"line":396},[56802,56806,56810,56814,56819,56823,56827,56831,56835,56839],{"type":21,"tag":139,"props":56803,"children":56804},{"style":214},[56805],{"type":31,"value":948},{"type":21,"tag":139,"props":56807,"children":56808},{"style":152},[56809],{"type":31,"value":953},{"type":21,"tag":139,"props":56811,"children":56812},{"style":146},[56813],{"type":31,"value":7524},{"type":21,"tag":139,"props":56815,"children":56816},{"style":262},[56817],{"type":31,"value":56818},"\"COBYLA energy: ",{"type":21,"tag":139,"props":56820,"children":56821},{"style":214},[56822],{"type":31,"value":7534},{"type":21,"tag":139,"props":56824,"children":56825},{"style":152},[56826],{"type":31,"value":51826},{"type":21,"tag":139,"props":56828,"children":56829},{"style":146},[56830],{"type":31,"value":56435},{"type":21,"tag":139,"props":56832,"children":56833},{"style":214},[56834],{"type":31,"value":7543},{"type":21,"tag":139,"props":56836,"children":56837},{"style":262},[56838],{"type":31,"value":41175},{"type":21,"tag":139,"props":56840,"children":56841},{"style":152},[56842],{"type":31,"value":270},{"type":21,"tag":41,"props":56844,"children":56846},{"id":56845},"hlquantum-で-vqe-を実行する",[56847],{"type":31,"value":56848},"HLQuantum で VQE を実行する",{"type":21,"tag":22,"props":56850,"children":56851},{},[56852],{"type":31,"value":56853},"HLQuantum には、すべてのバックエンドで動作する組み込みの VQE 実装が含まれています:",{"type":21,"tag":129,"props":56855,"children":56857},{"code":56856,"language":133,"meta":7,"className":131,"style":7},"import hlquantum as hlq\n\n# Define the Hamiltonian in HLQuantum's format\nH = hlq.hamiltonians.h2_molecule(bond_length=1.32)\n\n# Run VQE on any backend\nresult = hlq.algorithms.vqe(\n    hamiltonian=H,\n    ansatz=\"uccsd\",\n    optimizer=\"adam\",\n    max_iterations=200,\n    backend=\"pennylane\",   # or \"qiskit\", \"cudaq\"\n)\n\nprint(f\"Ground state energy: {result.energy:.6f} Ha\")\nprint(f\"Optimal parameters: {result.params}\")\nprint(f\"Converged in {result.iterations} iterations\")\n",[56858],{"type":21,"tag":104,"props":56859,"children":56860},{"__ignoreMap":7},[56861,56880,56887,56895,56929,56936,56944,56959,56976,56997,57017,57037,57062,57069,57076,57119,57160],{"type":21,"tag":139,"props":56862,"children":56863},{"class":141,"line":142},[56864,56868,56872,56876],{"type":21,"tag":139,"props":56865,"children":56866},{"style":146},[56867],{"type":31,"value":160},{"type":21,"tag":139,"props":56869,"children":56870},{"style":152},[56871],{"type":31,"value":41040},{"type":21,"tag":139,"props":56873,"children":56874},{"style":146},[56875],{"type":31,"value":5343},{"type":21,"tag":139,"props":56877,"children":56878},{"style":152},[56879],{"type":31,"value":41049},{"type":21,"tag":139,"props":56881,"children":56882},{"class":141,"line":168},[56883],{"type":21,"tag":139,"props":56884,"children":56885},{"emptyLinePlaceholder":194},[56886],{"type":31,"value":197},{"type":21,"tag":139,"props":56888,"children":56889},{"class":141,"line":190},[56890],{"type":21,"tag":139,"props":56891,"children":56892},{"style":220},[56893],{"type":31,"value":56894},"# Define the Hamiltonian in HLQuantum's format\n",{"type":21,"tag":139,"props":56896,"children":56897},{"class":141,"line":200},[56898,56902,56906,56911,56916,56920,56925],{"type":21,"tag":139,"props":56899,"children":56900},{"style":152},[56901],{"type":31,"value":46574},{"type":21,"tag":139,"props":56903,"children":56904},{"style":146},[56905],{"type":31,"value":211},{"type":21,"tag":139,"props":56907,"children":56908},{"style":152},[56909],{"type":31,"value":56910}," hlq.hamiltonians.h2_molecule(",{"type":21,"tag":139,"props":56912,"children":56913},{"style":923},[56914],{"type":31,"value":56915},"bond_length",{"type":21,"tag":139,"props":56917,"children":56918},{"style":146},[56919],{"type":31,"value":211},{"type":21,"tag":139,"props":56921,"children":56922},{"style":214},[56923],{"type":31,"value":56924},"1.32",{"type":21,"tag":139,"props":56926,"children":56927},{"style":152},[56928],{"type":31,"value":270},{"type":21,"tag":139,"props":56930,"children":56931},{"class":141,"line":226},[56932],{"type":21,"tag":139,"props":56933,"children":56934},{"emptyLinePlaceholder":194},[56935],{"type":31,"value":197},{"type":21,"tag":139,"props":56937,"children":56938},{"class":141,"line":234},[56939],{"type":21,"tag":139,"props":56940,"children":56941},{"style":220},[56942],{"type":31,"value":56943},"# Run VQE on any backend\n",{"type":21,"tag":139,"props":56945,"children":56946},{"class":141,"line":273},[56947,56951,56955],{"type":21,"tag":139,"props":56948,"children":56949},{"style":152},[56950],{"type":31,"value":4868},{"type":21,"tag":139,"props":56952,"children":56953},{"style":146},[56954],{"type":31,"value":211},{"type":21,"tag":139,"props":56956,"children":56957},{"style":152},[56958],{"type":31,"value":44510},{"type":21,"tag":139,"props":56960,"children":56961},{"class":141,"line":309},[56962,56967,56971],{"type":21,"tag":139,"props":56963,"children":56964},{"style":923},[56965],{"type":31,"value":56966},"    hamiltonian",{"type":21,"tag":139,"props":56968,"children":56969},{"style":146},[56970],{"type":31,"value":211},{"type":21,"tag":139,"props":56972,"children":56973},{"style":152},[56974],{"type":31,"value":56975},"H,\n",{"type":21,"tag":139,"props":56977,"children":56978},{"class":141,"line":16},[56979,56984,56988,56993],{"type":21,"tag":139,"props":56980,"children":56981},{"style":923},[56982],{"type":31,"value":56983},"    ansatz",{"type":21,"tag":139,"props":56985,"children":56986},{"style":146},[56987],{"type":31,"value":211},{"type":21,"tag":139,"props":56989,"children":56990},{"style":262},[56991],{"type":31,"value":56992},"\"uccsd\"",{"type":21,"tag":139,"props":56994,"children":56995},{"style":152},[56996],{"type":31,"value":4811},{"type":21,"tag":139,"props":56998,"children":56999},{"class":141,"line":361},[57000,57004,57008,57013],{"type":21,"tag":139,"props":57001,"children":57002},{"style":923},[57003],{"type":31,"value":44577},{"type":21,"tag":139,"props":57005,"children":57006},{"style":146},[57007],{"type":31,"value":211},{"type":21,"tag":139,"props":57009,"children":57010},{"style":262},[57011],{"type":31,"value":57012},"\"adam\"",{"type":21,"tag":139,"props":57014,"children":57015},{"style":152},[57016],{"type":31,"value":4811},{"type":21,"tag":139,"props":57018,"children":57019},{"class":141,"line":369},[57020,57025,57029,57033],{"type":21,"tag":139,"props":57021,"children":57022},{"style":923},[57023],{"type":31,"value":57024},"    max_iterations",{"type":21,"tag":139,"props":57026,"children":57027},{"style":146},[57028],{"type":31,"value":211},{"type":21,"tag":139,"props":57030,"children":57031},{"style":214},[57032],{"type":31,"value":14106},{"type":21,"tag":139,"props":57034,"children":57035},{"style":152},[57036],{"type":31,"value":4811},{"type":21,"tag":139,"props":57038,"children":57039},{"class":141,"line":378},[57040,57044,57048,57052,57057],{"type":21,"tag":139,"props":57041,"children":57042},{"style":923},[57043],{"type":31,"value":44557},{"type":21,"tag":139,"props":57045,"children":57046},{"style":146},[57047],{"type":31,"value":211},{"type":21,"tag":139,"props":57049,"children":57050},{"style":262},[57051],{"type":31,"value":55109},{"type":21,"tag":139,"props":57053,"children":57054},{"style":152},[57055],{"type":31,"value":57056},",   ",{"type":21,"tag":139,"props":57058,"children":57059},{"style":220},[57060],{"type":31,"value":57061},"# or \"qiskit\", \"cudaq\"\n",{"type":21,"tag":139,"props":57063,"children":57064},{"class":141,"line":387},[57065],{"type":21,"tag":139,"props":57066,"children":57067},{"style":152},[57068],{"type":31,"value":270},{"type":21,"tag":139,"props":57070,"children":57071},{"class":141,"line":396},[57072],{"type":21,"tag":139,"props":57073,"children":57074},{"emptyLinePlaceholder":194},[57075],{"type":31,"value":197},{"type":21,"tag":139,"props":57077,"children":57078},{"class":141,"line":414},[57079,57083,57087,57091,57095,57099,57103,57107,57111,57115],{"type":21,"tag":139,"props":57080,"children":57081},{"style":214},[57082],{"type":31,"value":948},{"type":21,"tag":139,"props":57084,"children":57085},{"style":152},[57086],{"type":31,"value":953},{"type":21,"tag":139,"props":57088,"children":57089},{"style":146},[57090],{"type":31,"value":7524},{"type":21,"tag":139,"props":57092,"children":57093},{"style":262},[57094],{"type":31,"value":48557},{"type":21,"tag":139,"props":57096,"children":57097},{"style":214},[57098],{"type":31,"value":7534},{"type":21,"tag":139,"props":57100,"children":57101},{"style":152},[57102],{"type":31,"value":41162},{"type":21,"tag":139,"props":57104,"children":57105},{"style":146},[57106],{"type":31,"value":56435},{"type":21,"tag":139,"props":57108,"children":57109},{"style":214},[57110],{"type":31,"value":7543},{"type":21,"tag":139,"props":57112,"children":57113},{"style":262},[57114],{"type":31,"value":41175},{"type":21,"tag":139,"props":57116,"children":57117},{"style":152},[57118],{"type":31,"value":270},{"type":21,"tag":139,"props":57120,"children":57121},{"class":141,"line":12589},[57122,57126,57130,57134,57139,57143,57148,57152,57156],{"type":21,"tag":139,"props":57123,"children":57124},{"style":214},[57125],{"type":31,"value":948},{"type":21,"tag":139,"props":57127,"children":57128},{"style":152},[57129],{"type":31,"value":953},{"type":21,"tag":139,"props":57131,"children":57132},{"style":146},[57133],{"type":31,"value":7524},{"type":21,"tag":139,"props":57135,"children":57136},{"style":262},[57137],{"type":31,"value":57138},"\"Optimal parameters: ",{"type":21,"tag":139,"props":57140,"children":57141},{"style":214},[57142],{"type":31,"value":7534},{"type":21,"tag":139,"props":57144,"children":57145},{"style":152},[57146],{"type":31,"value":57147},"result.params",{"type":21,"tag":139,"props":57149,"children":57150},{"style":214},[57151],{"type":31,"value":7543},{"type":21,"tag":139,"props":57153,"children":57154},{"style":262},[57155],{"type":31,"value":15370},{"type":21,"tag":139,"props":57157,"children":57158},{"style":152},[57159],{"type":31,"value":270},{"type":21,"tag":139,"props":57161,"children":57162},{"class":141,"line":12606},[57163,57167,57171,57175,57180,57184,57189,57193,57198],{"type":21,"tag":139,"props":57164,"children":57165},{"style":214},[57166],{"type":31,"value":948},{"type":21,"tag":139,"props":57168,"children":57169},{"style":152},[57170],{"type":31,"value":953},{"type":21,"tag":139,"props":57172,"children":57173},{"style":146},[57174],{"type":31,"value":7524},{"type":21,"tag":139,"props":57176,"children":57177},{"style":262},[57178],{"type":31,"value":57179},"\"Converged in ",{"type":21,"tag":139,"props":57181,"children":57182},{"style":214},[57183],{"type":31,"value":7534},{"type":21,"tag":139,"props":57185,"children":57186},{"style":152},[57187],{"type":31,"value":57188},"result.iterations",{"type":21,"tag":139,"props":57190,"children":57191},{"style":214},[57192],{"type":31,"value":7543},{"type":21,"tag":139,"props":57194,"children":57195},{"style":262},[57196],{"type":31,"value":57197}," iterations\"",{"type":21,"tag":139,"props":57199,"children":57200},{"style":152},[57201],{"type":31,"value":270},{"type":21,"tag":41,"props":57203,"children":57205},{"id":57204},"実機ハードウェア向けのヒント",[57206],{"type":31,"value":57204},{"type":21,"tag":22,"props":57208,"children":57209},{},[57210],{"type":31,"value":57211},"実際の QPU (IBM Quantum、IonQ) 上で VQE を実行する際には、いくつかの追加的な考慮事項があります:",{"type":21,"tag":22,"props":57213,"children":57214},{},[57215,57220],{"type":21,"tag":16802,"props":57216,"children":57217},{},[57218],{"type":31,"value":57219},"ステップあたりのショット数を減らす。",{"type":31,"value":57221}," 最適化ステップあたり 1000 ショットあれば、通常は勾配推定に十分です。毎ステップで 10,000 ショットを使うのはやめましょう — QPU の時間を浪費します。",{"type":21,"tag":22,"props":57223,"children":57224},{},[57225,57230],{"type":21,"tag":16802,"props":57226,"children":57227},{},[57228],{"type":31,"value":57229},"浅い回路から始める。",{"type":31,"value":57231}," CNOT ゲートが少ないほど、ノイズも少なくなります。ハードウェアでは、UCCSD ではなくハードウェア効率的なアンザッツ回路を検討しましょう。",{"type":21,"tag":22,"props":57233,"children":57234},{},[57235,57240,57242,57248],{"type":21,"tag":16802,"props":57236,"children":57237},{},[57238],{"type":31,"value":57239},"エラー緩和を有効にする。",{"type":31,"value":57241}," HLQuantum の ",{"type":21,"tag":104,"props":57243,"children":57245},{"className":57244},[],[57246],{"type":31,"value":57247},"error_mitigation=\"zne\"",{"type":31,"value":57249}," はゼロノイズ外挿 (Zero Noise Extrapolation) を適用し、ノイズのあるハードウェア上で結果を大幅に改善できます:",{"type":21,"tag":129,"props":57251,"children":57253},{"code":57252,"language":133,"meta":7,"className":131,"style":7},"result = hlq.run(vqe_circuit, backend=\"qiskit\", device=\"ibm_sherbrooke\",\n                 error_mitigation=\"zne\", shots=2048)\n",[57254],{"type":21,"tag":104,"props":57255,"children":57256},{"__ignoreMap":7},[57257,57305],{"type":21,"tag":139,"props":57258,"children":57259},{"class":141,"line":142},[57260,57264,57268,57273,57277,57281,57285,57289,57293,57297,57301],{"type":21,"tag":139,"props":57261,"children":57262},{"style":152},[57263],{"type":31,"value":4868},{"type":21,"tag":139,"props":57265,"children":57266},{"style":146},[57267],{"type":31,"value":211},{"type":21,"tag":139,"props":57269,"children":57270},{"style":152},[57271],{"type":31,"value":57272}," hlq.run(vqe_circuit, ",{"type":21,"tag":139,"props":57274,"children":57275},{"style":923},[57276],{"type":31,"value":10987},{"type":21,"tag":139,"props":57278,"children":57279},{"style":146},[57280],{"type":31,"value":211},{"type":21,"tag":139,"props":57282,"children":57283},{"style":262},[57284],{"type":31,"value":50450},{"type":21,"tag":139,"props":57286,"children":57287},{"style":152},[57288],{"type":31,"value":259},{"type":21,"tag":139,"props":57290,"children":57291},{"style":923},[57292],{"type":31,"value":44005},{"type":21,"tag":139,"props":57294,"children":57295},{"style":146},[57296],{"type":31,"value":211},{"type":21,"tag":139,"props":57298,"children":57299},{"style":262},[57300],{"type":31,"value":50471},{"type":21,"tag":139,"props":57302,"children":57303},{"style":152},[57304],{"type":31,"value":4811},{"type":21,"tag":139,"props":57306,"children":57307},{"class":141,"line":168},[57308,57313,57317,57322,57326,57330,57334,57339],{"type":21,"tag":139,"props":57309,"children":57310},{"style":923},[57311],{"type":31,"value":57312},"                 error_mitigation",{"type":21,"tag":139,"props":57314,"children":57315},{"style":146},[57316],{"type":31,"value":211},{"type":21,"tag":139,"props":57318,"children":57319},{"style":262},[57320],{"type":31,"value":57321},"\"zne\"",{"type":21,"tag":139,"props":57323,"children":57324},{"style":152},[57325],{"type":31,"value":259},{"type":21,"tag":139,"props":57327,"children":57328},{"style":923},[57329],{"type":31,"value":926},{"type":21,"tag":139,"props":57331,"children":57332},{"style":146},[57333],{"type":31,"value":211},{"type":21,"tag":139,"props":57335,"children":57336},{"style":214},[57337],{"type":31,"value":57338},"2048",{"type":21,"tag":139,"props":57340,"children":57341},{"style":152},[57342],{"type":31,"value":270},{"type":21,"tag":22,"props":57344,"children":57345},{},[57346,57348,57353,57354,57359],{"type":31,"value":57347},"量子化学シミュレーションの詳細については、完全な ",{"type":21,"tag":26,"props":57349,"children":57350},{"href":17319},[57351],{"type":31,"value":57352},"PennyLane guide",{"type":31,"value":501},{"type":21,"tag":26,"props":57355,"children":57356},{"href":40749},[57357],{"type":31,"value":57358},"HLQuantum algorithms reference",{"type":31,"value":57360}," をご覧ください。",{"type":21,"tag":1168,"props":57362,"children":57363},{},[57364],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":57366},[57367,57368,57369,57370,57371,57372,57373],{"id":55291,"depth":168,"text":55294},{"id":55330,"depth":168,"text":55330},{"id":55702,"depth":168,"text":55702},{"id":56047,"depth":168,"text":56050},{"id":56551,"depth":168,"text":56551},{"id":56845,"depth":168,"text":56848},{"id":57204,"depth":168,"text":57204},"content:ja:blog:vqe-pennylane-practical-guide.md","ja\u002Fblog\u002Fvqe-pennylane-practical-guide.md","ja\u002Fblog\u002Fvqe-pennylane-practical-guide",{"_path":57378,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":57379,"description":57380,"date":57381,"author":11,"tags":57382,"readingTime":234,"body":57383,"_type":1187,"_id":57837,"_source":1189,"_file":57838,"_stem":57839,"_extension":1192},"\u002Fja\u002Fblog\u002Funderstanding-quantum-error-correction","数式なしで理解する量子誤り訂正","なぜ量子コンピュータは誤りを起こすのか、誤り訂正はどのように機能するのか、そしてそれがフォールトトレラント量子コンピューティングの未来にとって何を意味するのか。","2026-01-15",[14720,15,23978],{"type":18,"children":57384,"toc":57828},[57385,57390,57395,57400,57419,57424,57429,57462,57467,57473,57492,57511,57519,57531,57537,57547,57555,57560,57565,57571,57576,57594,57599,57604,57610,57615,57648,57653,57767,57772,57777,57787,57797,57807,57824],{"type":21,"tag":22,"props":57386,"children":57387},{},[57388],{"type":31,"value":57389},"量子コンピュータは誤りを起こします — それも大量に。典型的な超伝導量子ビットのゲートは0.1〜1%の誤り率を持ちます。1000ゲートの回路を実行すれば、間違った答えを得ることは事実上確実です。これは現在のハードウェアのバグではなく、根本的な課題です。量子誤り訂正（QEC）はその解決策であり、それを理解することは量子コンピューティングがどこへ向かっているのかを理解する鍵となります。",{"type":21,"tag":41,"props":57391,"children":57393},{"id":57392},"なぜ量子誤りは異なるのか",[57394],{"type":31,"value":57392},{"type":21,"tag":22,"props":57396,"children":57397},{},[57398],{"type":31,"value":57399},"古典コンピュータにも誤りはありますが、対処は簡単です。ビットを3回コピーして多数決を取ればよいのです。1つのコピーが反転しても、残りの2つが多数決で勝ちます。",{"type":21,"tag":22,"props":57401,"children":57402},{},[57403,57405,57410,57412,57417],{"type":31,"value":57404},"量子ビットはコピーできません — ",{"type":21,"tag":16802,"props":57406,"children":57407},{},[57408],{"type":31,"value":57409},"複製不可能定理（no-cloning theorem）",{"type":31,"value":57411}," がそれを禁じています。重ね合わせを崩さずに量子ビットを測定して誤りをチェックすることはできません。しかも量子誤りは単なるビット反転だけではありません。",{"type":21,"tag":16802,"props":57413,"children":57414},{},[57415],{"type":31,"value":57416},"位相誤り",{"type":31,"value":57418},"（|0⟩ と |1⟩ の間の相対位相がずれるもの）や、その両方の組み合わせも存在します。",{"type":21,"tag":41,"props":57420,"children":57422},{"id":57421},"量子誤りの3つの種類",[57423],{"type":31,"value":57421},{"type":21,"tag":22,"props":57425,"children":57426},{},[57427],{"type":31,"value":57428},"あらゆる量子誤りは、3つのパウリ演算子の組み合わせに分解できます。",{"type":21,"tag":1112,"props":57430,"children":57431},{},[57432,57442,57452],{"type":21,"tag":72,"props":57433,"children":57434},{},[57435,57440],{"type":21,"tag":16802,"props":57436,"children":57437},{},[57438],{"type":31,"value":57439},"X誤り（ビット反転）:",{"type":31,"value":57441}," |0⟩ → |1⟩ および |1⟩ → |0⟩。古典的なビット反転に相当します。",{"type":21,"tag":72,"props":57443,"children":57444},{},[57445,57450],{"type":21,"tag":16802,"props":57446,"children":57447},{},[57448],{"type":31,"value":57449},"Z誤り（位相反転）:",{"type":31,"value":57451}," |0⟩ → |0⟩、|1⟩ → −|1⟩。古典的な対応物はなく、位相に影響します。",{"type":21,"tag":72,"props":57453,"children":57454},{},[57455,57460],{"type":21,"tag":16802,"props":57456,"children":57457},{},[57458],{"type":31,"value":57459},"Y誤り:",{"type":31,"value":57461}," X誤りとZ誤りが同時に組み合わさったもの。",{"type":21,"tag":22,"props":57463,"children":57464},{},[57465],{"type":31,"value":57466},"量子ビットに対する任意の誤りは、X、Y、Z（および恒等演算子）の線形結合として表すことができます。これは、X誤りとZ誤りを独立に訂正できれば、あらゆる誤りを訂正できることを意味します — これはQECにおける重要な洞察です。",{"type":21,"tag":41,"props":57468,"children":57470},{"id":57469},"大きなアイデアコピーなしの冗長性",[57471],{"type":31,"value":57472},"大きなアイデア：コピーなしの冗長性",{"type":21,"tag":22,"props":57474,"children":57475},{},[57476,57478,57483,57485,57490],{"type":31,"value":57477},"QECは1つの",{"type":21,"tag":16802,"props":57479,"children":57480},{},[57481],{"type":31,"value":57482},"論理量子ビット",{"type":31,"value":57484},"を多数の",{"type":21,"tag":16802,"props":57486,"children":57487},{},[57488],{"type":31,"value":57489},"物理量子ビット",{"type":31,"value":57491},"にわたって符号化します。この考え方は古典的な繰り返し符号に似ていますが、量子力学に合わせて適応されています。",{"type":21,"tag":22,"props":57493,"children":57494},{},[57495,57497,57502,57504,57509],{"type":31,"value":57496},"最も単純な例は",{"type":21,"tag":16802,"props":57498,"children":57499},{},[57500],{"type":31,"value":57501},"3量子ビットビット反転符号",{"type":31,"value":57503},"です。|0⟩ を |000⟩ として、|1⟩ を |111⟩ として符号化します。1つの量子ビットが反転した場合、（実際の値を測定せずに）量子ビットのペア間の",{"type":21,"tag":12756,"props":57505,"children":57506},{},[57507],{"type":31,"value":57508},"パリティ",{"type":31,"value":57510},"を測定することで検出し、訂正します。",{"type":21,"tag":129,"props":57512,"children":57514},{"code":57513},"Logical |0⟩ = |000⟩\nLogical |1⟩ = |111⟩\n\nIf qubit 1 flips: |100⟩ or |011⟩\nParity check: measure (q0 ⊕ q1) and (q1 ⊕ q2)\n  → 10 → qubit 0 flipped → apply X to correct\n",[57515],{"type":21,"tag":104,"props":57516,"children":57517},{"__ignoreMap":7},[57518],{"type":31,"value":57513},{"type":21,"tag":22,"props":57520,"children":57521},{},[57522,57524,57529],{"type":31,"value":57523},"パリティ測定には",{"type":21,"tag":16802,"props":57525,"children":57526},{},[57527],{"type":31,"value":57528},"補助量子ビット（ancilla qubits）",{"type":31,"value":57530}," を使用します — これはデータ量子ビットを乱すことなく誤り情報を吸収する補助的な量子ビットです。これこそが魔法です。符号化された状態を崩すことなく誤りを検出できるのです。",{"type":21,"tag":41,"props":57532,"children":57534},{"id":57533},"表面符号今日の主要なアプローチ",[57535],{"type":31,"value":57536},"表面符号：今日の主要なアプローチ",{"type":21,"tag":22,"props":57538,"children":57539},{},[57540,57545],{"type":21,"tag":16802,"props":57541,"children":57542},{},[57543],{"type":31,"value":57544},"表面符号（surface code）",{"type":31,"value":57546}," は、近い将来のハードウェアにとって最も有望なQEC符号です。これは1つの論理量子ビットを、次のように配置された物理量子ビットの2Dグリッドに符号化します。",{"type":21,"tag":129,"props":57548,"children":57550},{"code":57549},"● — ● — ● — ●\n|   |   |   |\n● — ● — ● — ●\n|   |   |   |\n● — ● — ● — ●\n|   |   |   |\n● — ● — ● — ●\n",[57551],{"type":21,"tag":104,"props":57552,"children":57553},{"__ignoreMap":7},[57554],{"type":31,"value":57549},{"type":21,"tag":22,"props":57556,"children":57557},{},[57558],{"type":31,"value":57559},"データ量子ビット（●）が量子情報を保持します。その間にある補助量子ビットが継続的にパリティを測定します。7×7のグリッド（49個の物理量子ビット）は、誤り率 ~p² で1つの論理量子ビットを符号化します — 物理ゲート誤り率が1%であれば、論理誤り率は ~0.01% まで下がります。",{"type":21,"tag":22,"props":57561,"children":57562},{},[57563],{"type":31,"value":57564},"表面符号の閾値は約1%です。ハードウェアのゲート誤りがこれを下回っていれば、物理量子ビットを増やすことで論理誤り率を任意に小さくできます。IBMの最良のシステムはこの閾値に近づきつつあります。",{"type":21,"tag":41,"props":57566,"children":57568},{"id":57567},"何個の物理量子ビットが必要か",[57569],{"type":31,"value":57570},"何個の物理量子ビットが必要か？",{"type":21,"tag":22,"props":57572,"children":57573},{},[57574],{"type":31,"value":57575},"RSA-2048を破るためにショアのアルゴリズムを誤りなく実行するには、次のように推定されています。",{"type":21,"tag":1112,"props":57577,"children":57578},{},[57579,57584,57589],{"type":21,"tag":72,"props":57580,"children":57581},{},[57582],{"type":31,"value":57583},"約2000万個の物理量子ビット",{"type":21,"tag":72,"props":57585,"children":57586},{},[57587],{"type":31,"value":57588},"各論理量子ビットには約1000〜10,000個の物理量子ビットが必要",{"type":21,"tag":72,"props":57590,"children":57591},{},[57592],{"type":31,"value":57593},"ゲート誤り率は0.1%未満でなければならない",{"type":21,"tag":22,"props":57595,"children":57596},{},[57597],{"type":31,"value":57598},"現在のハードウェア：約1000量子ビット、約0.1〜1%のゲート誤り。ギャップは現実のものです — フォールトトレラントなRSA破りの量子コンピュータまでは、おおよそ10〜15年です。",{"type":21,"tag":22,"props":57600,"children":57601},{},[57602],{"type":31,"value":57603},"化学や最適化における近い将来の量子優位性については、要件ははるかに低くなります。約100個の論理量子ビットがあれば、古典的な計算の手に負えない分子に対して十分かもしれません。",{"type":21,"tag":41,"props":57605,"children":57607},{"id":57606},"これが今日のnisqデバイスにとって何を意味するのか",[57608],{"type":31,"value":57609},"これが今日のNISQデバイスにとって何を意味するのか",{"type":21,"tag":22,"props":57611,"children":57612},{},[57613],{"type":31,"value":57614},"現在のNISQデバイスにはQECがありません。すべてのゲートがノイズを加えます。代わりのアプローチは次のとおりです。",{"type":21,"tag":68,"props":57616,"children":57617},{},[57618,57628,57638],{"type":21,"tag":72,"props":57619,"children":57620},{},[57621,57626],{"type":21,"tag":16802,"props":57622,"children":57623},{},[57624],{"type":31,"value":57625},"回路を浅く保つ",{"type":31,"value":57627}," — ゲートが少ないほど、蓄積されるノイズが少ない",{"type":21,"tag":72,"props":57629,"children":57630},{},[57631,57636],{"type":21,"tag":16802,"props":57632,"children":57633},{},[57634],{"type":31,"value":57635},"誤り緩和を使う",{"type":31,"value":57637},"（訂正ではなく） — 追加の量子ビットなしで統計的に誤りの影響を減らす、Zero Noise Extrapolation（ZNE）などの後処理技術",{"type":21,"tag":72,"props":57639,"children":57640},{},[57641,57646],{"type":21,"tag":16802,"props":57642,"children":57643},{},[57644],{"type":31,"value":57645},"ノイズ耐性のあるアルゴリズムを設計する",{"type":31,"value":57647}," — VQE、QAOA、その他の変分法は、中程度のノイズに対して頑健になるよう設計されている",{"type":21,"tag":22,"props":57649,"children":57650},{},[57651],{"type":31,"value":57652},"HLQuantumには、任意の回路に適用できる組み込みの誤り緩和機能が含まれています。",{"type":21,"tag":129,"props":57654,"children":57656},{"code":57655,"language":133,"meta":7,"className":131,"style":7},"result = hlq.run(\n    qc,\n    backend=\"qiskit\",\n    device=\"ibm_sherbrooke\",\n    error_mitigation=\"zne\",  # Zero Noise Extrapolation\n    shots=8192\n)\n",[57657],{"type":21,"tag":104,"props":57658,"children":57659},{"__ignoreMap":7},[57660,57675,57682,57701,57720,57744,57760],{"type":21,"tag":139,"props":57661,"children":57662},{"class":141,"line":142},[57663,57667,57671],{"type":21,"tag":139,"props":57664,"children":57665},{"style":152},[57666],{"type":31,"value":4868},{"type":21,"tag":139,"props":57668,"children":57669},{"style":146},[57670],{"type":31,"value":211},{"type":21,"tag":139,"props":57672,"children":57673},{"style":152},[57674],{"type":31,"value":50426},{"type":21,"tag":139,"props":57676,"children":57677},{"class":141,"line":168},[57678],{"type":21,"tag":139,"props":57679,"children":57680},{"style":152},[57681],{"type":31,"value":50434},{"type":21,"tag":139,"props":57683,"children":57684},{"class":141,"line":190},[57685,57689,57693,57697],{"type":21,"tag":139,"props":57686,"children":57687},{"style":923},[57688],{"type":31,"value":44557},{"type":21,"tag":139,"props":57690,"children":57691},{"style":146},[57692],{"type":31,"value":211},{"type":21,"tag":139,"props":57694,"children":57695},{"style":262},[57696],{"type":31,"value":50450},{"type":21,"tag":139,"props":57698,"children":57699},{"style":152},[57700],{"type":31,"value":4811},{"type":21,"tag":139,"props":57702,"children":57703},{"class":141,"line":200},[57704,57708,57712,57716],{"type":21,"tag":139,"props":57705,"children":57706},{"style":923},[57707],{"type":31,"value":50462},{"type":21,"tag":139,"props":57709,"children":57710},{"style":146},[57711],{"type":31,"value":211},{"type":21,"tag":139,"props":57713,"children":57714},{"style":262},[57715],{"type":31,"value":50471},{"type":21,"tag":139,"props":57717,"children":57718},{"style":152},[57719],{"type":31,"value":4811},{"type":21,"tag":139,"props":57721,"children":57722},{"class":141,"line":226},[57723,57727,57731,57735,57739],{"type":21,"tag":139,"props":57724,"children":57725},{"style":923},[57726],{"type":31,"value":50509},{"type":21,"tag":139,"props":57728,"children":57729},{"style":146},[57730],{"type":31,"value":211},{"type":21,"tag":139,"props":57732,"children":57733},{"style":262},[57734],{"type":31,"value":57321},{"type":21,"tag":139,"props":57736,"children":57737},{"style":152},[57738],{"type":31,"value":50476},{"type":21,"tag":139,"props":57740,"children":57741},{"style":220},[57742],{"type":31,"value":57743},"# Zero Noise Extrapolation\n",{"type":21,"tag":139,"props":57745,"children":57746},{"class":141,"line":234},[57747,57751,57755],{"type":21,"tag":139,"props":57748,"children":57749},{"style":923},[57750],{"type":31,"value":50489},{"type":21,"tag":139,"props":57752,"children":57753},{"style":146},[57754],{"type":31,"value":211},{"type":21,"tag":139,"props":57756,"children":57757},{"style":214},[57758],{"type":31,"value":57759},"8192\n",{"type":21,"tag":139,"props":57761,"children":57762},{"class":141,"line":273},[57763],{"type":21,"tag":139,"props":57764,"children":57765},{"style":152},[57766],{"type":31,"value":270},{"type":21,"tag":22,"props":57768,"children":57769},{},[57770],{"type":31,"value":57771},"ZNEは複数のレベルで意図的にノイズを増幅し、ゼロノイズ極限へと外挿します。これはQECではなく — 統計的なトリックです — しかし短い回路に対しては驚くほどよく機能します。",{"type":21,"tag":41,"props":57773,"children":57775},{"id":57774},"注目すべき近い将来のマイルストーン",[57776],{"type":31,"value":57774},{"type":21,"tag":22,"props":57778,"children":57779},{},[57780,57785],{"type":21,"tag":16802,"props":57781,"children":57782},{},[57783],{"type":31,"value":57784},"スケールでの誤り訂正の実証",{"type":31,"value":57786}," — IBM、Google、Microsoftは、表面符号の論理量子ビットが物理量子ビットを上回る（誤り率が閾値を下回る）ことを実証しようと競っています。Googleは2024年後半に閾値を下回る実証を主張しました。",{"type":21,"tag":22,"props":57788,"children":57789},{},[57790,57795],{"type":21,"tag":16802,"props":57791,"children":57792},{},[57793],{"type":31,"value":57794},"マジック状態蒸留",{"type":31,"value":57796}," — 非クリフォードゲート（Tゲートなど）は、フォールトトレラントなアーキテクチャにおいて特別な蒸留プロトコルを必要とします。これは現在、量子ビットのオーバーヘッドの面で極めて高コストです。",{"type":21,"tag":22,"props":57798,"children":57799},{},[57800,57805],{"type":21,"tag":16802,"props":57801,"children":57802},{},[57803],{"type":31,"value":57804},"論理ゲートの速度",{"type":31,"value":57806}," — 表面符号における論理ゲートは、物理ゲートよりもはるかに遅いです。それを高速化することは、2026〜2030年における重要なハードウェアの課題です。",{"type":21,"tag":22,"props":57808,"children":57809},{},[57810,57812,57817,57818,57823],{"type":31,"value":57811},"誤り訂正が特定のSDKとどのように相互作用するかについてのより深い解説は、",{"type":21,"tag":26,"props":57813,"children":57814},{"href":15828},[57815],{"type":31,"value":57816},"量子誤り訂正の用語集エントリ",{"type":31,"value":1071},{"type":21,"tag":26,"props":57819,"children":57820},{"href":22036},[57821],{"type":31,"value":57822},"NISQ時代ガイド",{"type":31,"value":3107},{"type":21,"tag":1168,"props":57825,"children":57826},{},[57827],{"type":31,"value":1172},{"title":7,"searchDepth":168,"depth":168,"links":57829},[57830,57831,57832,57833,57834,57835,57836],{"id":57392,"depth":168,"text":57392},{"id":57421,"depth":168,"text":57421},{"id":57469,"depth":168,"text":57472},{"id":57533,"depth":168,"text":57536},{"id":57567,"depth":168,"text":57570},{"id":57606,"depth":168,"text":57609},{"id":57774,"depth":168,"text":57774},"content:ja:blog:understanding-quantum-error-correction.md","ja\u002Fblog\u002Funderstanding-quantum-error-correction.md","ja\u002Fblog\u002Funderstanding-quantum-error-correction"]