[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-es-google-willow-reinforcement-learning-calibration":3,"blog-translated-locales-google-willow-reinforcement-learning-calibration":162,"blog-all-es":164},{"_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":156,"_id":157,"_source":158,"_file":159,"_stem":160,"_extension":161},"\u002Fblog\u002Fgoogle-willow-reinforcement-learning-calibration","blog",false,"","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.","2026-08-01","FreeQuantumComputing",[13,14,15],"Hardware","Error Correction","Industry",8,{"type":18,"children":19,"toc":149},"root",[20,48,55,60,71,77,90,95,101,106,119,125,130],{"type":21,"tag":22,"props":23,"children":24},"element","p",{},[25,28,37,39,46],{"type":26,"value":27},"text","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":29,"props":30,"children":34},"a",{"href":31,"rel":32},"https:\u002F\u002Fthequantuminsider.com\u002F2026\u002F07\u002F10\u002Fgoogle-study-shows-quantum-computer-can-learn-from-its-own-errors-while-it-computes\u002F",[33],"nofollow",[35],{"type":26,"value":36},"The Quantum Insider",{"type":26,"value":38}," and ",{"type":21,"tag":29,"props":40,"children":43},{"href":41,"rel":42},"https:\u002F\u002Fwww.nature.com\u002Farticles\u002Fs41586-026-10759-2",[33],[44],{"type":26,"value":45},"the paper itself",{"type":26,"value":47},". 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":49,"props":50,"children":52},"h2",{"id":51},"the-problem-this-solves",[53],{"type":26,"value":54},"The problem this solves",{"type":21,"tag":22,"props":56,"children":57},{},[58],{"type":26,"value":59},"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 same hardware time, and it only catches drift at the moments you choose to check for it.",{"type":21,"tag":22,"props":61,"children":62},{},[63,69],{"type":21,"tag":29,"props":64,"children":66},{"href":65},"\u002Fglossary\u002Fquantum-error-correction",[67],{"type":26,"value":68},"Quantum error correction",{"type":26,"value":70}," 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":49,"props":72,"children":74},{"id":73},"what-the-reinforcement-learning-agent-does",[75],{"type":26,"value":76},"What the reinforcement learning agent does",{"type":21,"tag":22,"props":78,"children":79},{},[80,82,88],{"type":26,"value":81},"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":29,"props":83,"children":85},{"href":84},"\u002Fblog\u002Funderstanding-quantum-error-correction",[86],{"type":26,"value":87},"surface codes",{"type":26,"value":89}," 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":91,"children":92},{},[93],{"type":26,"value":94},"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 new record for that code family.",{"type":21,"tag":49,"props":96,"children":98},{"id":97},"why-this-matters-more-than-the-specific-numbers",[99],{"type":26,"value":100},"Why this matters more than the specific numbers",{"type":21,"tag":22,"props":102,"children":103},{},[104],{"type":26,"value":105},"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 problem, 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":107,"children":108},{},[109,111,117],{"type":26,"value":110},"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":29,"props":112,"children":114},{"href":113},"\u002Fblog\u002Fibm-quantum-advantage-triple-announcement-2026",[115],{"type":26,"value":116},"IBM's roadmap",{"type":26,"value":118}," 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":49,"props":120,"children":122},{"id":121},"what-is-still-unproven",[123],{"type":26,"value":124},"What is still unproven",{"type":21,"tag":22,"props":126,"children":127},{},[128],{"type":26,"value":129},"This result 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 different 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":131,"children":132},{},[133,135,140,141,147],{"type":26,"value":134},"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":29,"props":136,"children":137},{"href":84},[138],{"type":26,"value":139},"error correction explainer",{"type":26,"value":38},{"type":21,"tag":29,"props":142,"children":144},{"href":143},"\u002Fblog\u002Flogical-qubits-fault-tolerance-explained",[145],{"type":26,"value":146},"logical qubits and fault tolerance piece",{"type":26,"value":148}," 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":150,"depth":150,"links":151},2,[152,153,154,155],{"id":51,"depth":150,"text":54},{"id":73,"depth":150,"text":76},{"id":97,"depth":150,"text":100},{"id":121,"depth":150,"text":124},"markdown","content:blog:google-willow-reinforcement-learning-calibration.md","content","blog\u002Fgoogle-willow-reinforcement-learning-calibration.md","blog\u002Fgoogle-willow-reinforcement-learning-calibration","md",[163],"en",[165,322,469,751,849,924,1022,1127,1365,1523,1646,1799,1916,2018,2709,2861,2951,3059,3985,7143,8885,9343,10451,11025,11524,13779,15637,16018,18120,19160,20181,21028,23497,24550,27101,28913,31653,33652,35758],{"_path":166,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":167,"description":168,"date":10,"author":11,"tags":169,"readingTime":171,"body":172,"_type":156,"_id":319,"_source":158,"_file":320,"_stem":321,"_extension":161},"\u002Fes\u002Fblog\u002Fquantinuum-helios-logical-qubits-2026","Helios de Quantinuum: 48 qubits lógicos con codificación 2:1, explicado","El nuevo sistema de iones atrapados de Quantinuum afirma tener 48 qubits lógicos corregidos de errores a partir de unos 96 qubits físicos. El número de qubits no es la noticia — la proporción sí lo es.",[14,13,170],"Trapped-Ion",7,{"type":18,"children":173,"toc":313},[174,187,199,205,217,223,235,263,269,274,279,285],{"type":21,"tag":22,"props":175,"children":176},{},[177,179,185],{"type":26,"value":178},"Quantinuum lanzó su nuevo sistema de iones atrapados, Helios, afirmando tener 48 qubits lógicos corregidos de errores codificados en una proporción aproximada de ",{"type":21,"tag":180,"props":181,"children":182},"strong",{},[183],{"type":26,"value":184},"2:1",{"type":26,"value":186}," — unos 96 qubits físicos haciendo el trabajo de 48 lógicos. La cobertura del anuncio se centró sobre todo en el número de qubits. La cifra que merece atención es la proporción.",{"type":21,"tag":22,"props":188,"children":189},{},[190,192,197],{"type":26,"value":191},"Si has leído nuestro ",{"type":21,"tag":29,"props":193,"children":194},{"href":143},[195],{"type":26,"value":196},"artículo sobre qubits lógicos y tolerancia a fallos",{"type":26,"value":198},", ya sabes por qué. Las estimaciones del código de superficie en hardware superconductor suelen situarse entre cientos y unos pocos miles de qubits físicos por cada qubit lógico, dependiendo de cuánto esté el hardware subyacente por debajo del umbral de error. Una proporción cercana a 2:1 reportada por el fabricante no es una mejora incremental de esa cifra — es una parte completamente distinta del espacio de diseño, y vale la pena entender qué lo hace posible antes de tomar el número al pie de la letra.",{"type":21,"tag":49,"props":200,"children":202},{"id":201},"qué-es-helios",[203],{"type":26,"value":204},"Qué es Helios",{"type":21,"tag":22,"props":206,"children":207},{},[208,210,215],{"type":26,"value":209},"Helios es el sistema de iones atrapados más reciente de Quantinuum, de la generación H-Series — el mismo linaje que ha ostentado repetidamente récords de volumen cuántico y que IonQ, el principal competidor de Quantinuum en iones atrapados, sigue usando como referencia a superar. El hardware de iones atrapados confina iones individuales en un campo electromagnético y los manipula con pulsos láser, lo que intercambia velocidad de puerta (microsegundos a milisegundos, frente a nanosegundos en qubits superconductores) por dos cosas enormemente importantes para la corrección de errores: mayor fidelidad por puerta y ",{"type":21,"tag":180,"props":211,"children":212},{},[213],{"type":26,"value":214},"conectividad total",{"type":26,"value":216}," — cualquier ion de la cadena puede entrelazarse con cualquier otro sin pasar por qubits intermedios.",{"type":21,"tag":49,"props":218,"children":220},{"id":219},"por-qué-esta-proporción-es-posible-aquí",[221],{"type":26,"value":222},"Por qué esta proporción es posible aquí",{"type":21,"tag":22,"props":224,"children":225},{},[226,228,233],{"type":26,"value":227},"El código de superficie — el código de corrección de errores de referencia para chips superconductores como Willow de Google — se basa en verificaciones de paridad entre ",{"type":21,"tag":180,"props":229,"children":230},{},[231],{"type":26,"value":232},"vecinos más cercanos",{"type":26,"value":234},", porque eso es justo lo que un chip superconductor plano en 2D puede soportar físicamente. Esa restricción explica en gran parte por qué su sobrecoste es tan alto: proteger un qubit lógico frente a tasas de error realistas requiere una red 2D considerable de qubits físicos.",{"type":21,"tag":22,"props":236,"children":237},{},[238,240,245,247,253,255,261],{"type":26,"value":239},"Los iones atrapados no tienen esa restricción. Como cualquier ion puede interactuar con cualquier otro, los códigos que necesitan verificaciones de paridad ",{"type":21,"tag":180,"props":241,"children":242},{},[243],{"type":26,"value":244},"no locales",{"type":26,"value":246}," — el tipo que sería prohibitivamente costoso de implementar en un chip plano — se vuelven directamente viables. Eso abre la puerta a familias de códigos más eficientes en qubits (en términos generales, construcciones de tipo qLDPC) que cambian puertas más lentas por una sobrecarga física-a-lógica drásticamente menor. Nuestro ",{"type":21,"tag":29,"props":248,"children":250},{"href":249},"\u002Fhardware",[251],{"type":26,"value":252},"resumen de hardware",{"type":26,"value":254}," y nuestra ",{"type":21,"tag":29,"props":256,"children":258},{"href":257},"\u002Fcompare",[259],{"type":26,"value":260},"comparación de modalidades",{"type":26,"value":262}," cubren este compromiso en términos más generales; Helios es la ilustración concreta más clara de ello actualmente disponible.",{"type":21,"tag":49,"props":264,"children":266},{"id":265},"lo-que-la-proporción-no-te-dice",[267],{"type":26,"value":268},"Lo que la proporción no te dice",{"type":21,"tag":22,"props":270,"children":271},{},[272],{"type":26,"value":273},"La sobrecarga es un eje. No es el único, y un número bajo de qubits físicos por qubit lógico no se traduce automáticamente en una máquina más útil. Como vimos en el artículo sobre qubits lógicos, un qubit lógico debe evaluarse por varias cifras a la vez: sobrecarga, tasa de error lógico en reposo, fidelidad de puerta lógica, velocidad de puerta lógica y universalidad del conjunto de puertas. Las puertas de iones atrapados son órdenes de magnitud más lentas que las superconductoras, así que un qubit lógico codificado a 2:1 que tarda milisegundos por operación no es simplemente \"mejor\" que un qubit lógico más costoso que funciona mil veces más rápido — la comparación correcta depende por completo de cuántas operaciones lógicas necesita tu algoritmo antes de que la decoherencia te alcance.",{"type":21,"tag":22,"props":275,"children":276},{},[277],{"type":26,"value":278},"También conviene, como con cualquier afirmación de hardware en esta industria, leer la cifra como un dato del fabricante hasta que se reproduzca de forma independiente. \"48 qubits lógicos a 2:1\" describe una demostración concreta bajo condiciones de operación específicas, no una capacidad genéricamente disponible y lista para usar.",{"type":21,"tag":49,"props":280,"children":282},{"id":281},"qué-significa-esto-si-estás-aprendiendo-hoy",[283],{"type":26,"value":284},"Qué significa esto si estás aprendiendo hoy",{"type":21,"tag":22,"props":286,"children":287},{},[288,290,296,298,303,305,311],{"type":26,"value":289},"El hardware de la clase Helios no es algo a lo que puedas acceder en una cola de nivel gratuito como sí puedes hacerlo con el ",{"type":21,"tag":29,"props":291,"children":293},{"href":292},"\u002Fblog\u002Fibm-quantum-free-tier-2026",[294],{"type":26,"value":295},"Open Plan de IBM",{"type":26,"value":297}," — pero las ideas se aplican independientemente de qué hardware acabe imponiéndose. El compilador TKET de Quantinuum es de código abierto y gratuito hoy mismo, sin importar qué backend uses, y los conceptos de este artículo — sobrecarga de codificación, restricciones de conectividad, el teorema del umbral — son los mismos que usarás para evaluar cualquier anuncio futuro. Nuestro ",{"type":21,"tag":29,"props":299,"children":300},{"href":84},[301],{"type":26,"value":302},"explicador de corrección de errores",{"type":26,"value":304}," cubre los mecanismos subyacentes, y el ",{"type":21,"tag":29,"props":306,"children":308},{"href":307},"\u002Flandscape",[309],{"type":26,"value":310},"panorama cuántico",{"type":26,"value":312}," hace seguimiento de quién está construyendo qué en cada modalidad, no solo en esta.",{"title":7,"searchDepth":150,"depth":150,"links":314},[315,316,317,318],{"id":201,"depth":150,"text":204},{"id":219,"depth":150,"text":222},{"id":265,"depth":150,"text":268},{"id":281,"depth":150,"text":284},"content:es:blog:quantinuum-helios-logical-qubits-2026.md","es\u002Fblog\u002Fquantinuum-helios-logical-qubits-2026.md","es\u002Fblog\u002Fquantinuum-helios-logical-qubits-2026",{"_path":323,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":324,"description":325,"date":10,"author":11,"tags":326,"readingTime":171,"body":329,"_type":156,"_id":466,"_source":158,"_file":467,"_stem":468,"_extension":161},"\u002Fes\u002Fblog\u002Fquantum-chemistry-protein-scale-2026","Los ordenadores cuánticos acaban de simular una proteína real — qué significa eso","Cleveland Clinic e IBM ejecutaron una simulación híbrida cuántico-clásica de una miniproteína de 303 átomos en el chip Heron r2 de IBM — un salto real respecto a las moléculas de juguete que usan la mayoría de las demos de VQE, con salvedades reales.",[327,328,13],"Chemistry","VQE",{"type":18,"children":330,"toc":459},[331,344,349,355,381,386,392,397,403,424,430,435,439],{"type":21,"tag":22,"props":332,"children":333},{},[334,336,342],{"type":26,"value":335},"La mayoría de los tutoriales de VQE que encontrarás en internet — incluido ",{"type":21,"tag":29,"props":337,"children":339},{"href":338},"\u002Fblog\u002Fvqe-pennylane-practical-guide",[340],{"type":26,"value":341},"el nuestro",{"type":26,"value":343}," — simulan hidrógeno o hidruro de litio: moléculas con un puñado de átomos, elegidas porque eso es lo que el hardware y los niveles de ruido actuales pueden manejar realmente. En marzo de 2026, Cleveland Clinic e IBM publicaron algo categóricamente mayor: un flujo de trabajo híbrido cuántico-clásico que modela la estructura electrónica de Trp-cage, una miniproteína de 303 átomos, usando el procesador Heron r2 de IBM.",{"type":21,"tag":22,"props":345,"children":346},{},[347],{"type":26,"value":348},"Es un salto genuino en escala, y vale la pena entender tanto por qué es difícil como qué prueba —y qué no— el número de átomos que aparece en los titulares.",{"type":21,"tag":49,"props":350,"children":352},{"id":351},"por-qué-el-tamaño-de-la-molécula-es-todo-el-problema",[353],{"type":26,"value":354},"Por qué el tamaño de la molécula es todo el problema",{"type":21,"tag":22,"props":356,"children":357},{},[358,364,366,371,373,379],{"type":21,"tag":29,"props":359,"children":361},{"href":360},"\u002Fresearch\u002Ffeynman-simulating-physics-1982",[362],{"type":26,"value":363},"El argumento original de Feynman de 1982 a favor de la computación cuántica",{"type":26,"value":365}," era precisamente este: simular sistemas cuánticos de forma exacta en un ordenador clásico cuesta recursos que crecen exponencialmente con el tamaño del sistema, porque la función de onda electrónica vive en un espacio de Hilbert cuya dimensión crece explosivamente con el número de orbitales involucrados. Los químicos suelen sortear esto con aproximaciones, pero la respuesta exacta para cualquier cosa más allá de moléculas pequeñas está fuera del alcance clásico. Esa es toda la motivación de ",{"type":21,"tag":29,"props":367,"children":369},{"href":368},"\u002Fglossary\u002Fvqe",[370],{"type":26,"value":328},{"type":26,"value":372}," — el ",{"type":21,"tag":29,"props":374,"children":376},{"href":375},"\u002Fresearch\u002Fperuzzo-vqe-2014",[377],{"type":26,"value":378},"artículo de Peruzzo de 2014",{"type":26,"value":380}," que lo introdujo usaba un bucle híbrido cuántico-clásico precisamente porque el hardware a corto plazo no puede hacer todo el cálculo por sí solo.",{"type":21,"tag":22,"props":382,"children":383},{},[384],{"type":26,"value":385},"Esto también explica por qué \"¿cuántos átomos?\" es una vara de medir genuinamente significativa para las demostraciones de química cuántica, de una forma en que no lo sería, por ejemplo, para un benchmark de muestreo de circuitos aleatorios. Pasar de una molécula de 2 átomos a una de 303 no es una exageración de marketing del mismo resultado — es un salto real en el tamaño del problema que se está atacando.",{"type":21,"tag":49,"props":387,"children":389},{"id":388},"qué-es-trp-cage-y-por-qué-se-eligió",[390],{"type":26,"value":391},"Qué es Trp-cage y por qué se eligió",{"type":21,"tag":22,"props":393,"children":394},{},[395],{"type":26,"value":396},"Trp-cage no es una molécula grande elegida al azar para un comunicado de prensa — es una miniproteína de 20 residuos, bien estudiada, que ha sido un referente estándar en la investigación de dinámica molecular y plegamiento de proteínas durante años, precisamente porque es lo bastante pequeña como para ser manejable, pero lo bastante real como para comportarse como una proteína de verdad. Usar un sistema de referencia establecido en lugar de uno novedoso facilita comprobar el resultado frente a décadas de datos de simulación clásica ya existentes.",{"type":21,"tag":49,"props":398,"children":400},{"id":399},"lo-que-flujo-de-trabajo-híbrido-casi-con-toda-seguridad-significa-aquí",[401],{"type":26,"value":402},"Lo que \"flujo de trabajo híbrido\" casi con toda seguridad significa aquí",{"type":21,"tag":22,"props":404,"children":405},{},[406,408,414,416,422],{"type":26,"value":407},"Lee con atención el número de átomos. La estructura electrónica completa de un sistema de 303 átomos está muy por encima de lo que cualquier QPU actual toca directamente, y es muy poco probable que los electrones de los 303 átomos se hayan representado realmente en el procesador cuántico. El escenario realista —coherente con el enfoque publicado por IBM para trabajos similares con moléculas grandes— es un esquema de incrustación híbrido: un espacio activo cuidadosamente elegido (los electrones y orbitales que más importan para la propiedad que se estudia) pasa por el hardware cuántico, mientras que el resto del sistema se maneja de forma clásica y se recompone. Eso no resta mérito al resultado; es como funciona hoy en día cualquier afirmación de \"un ordenador cuántico simula una molécula real\" en este rango de tamaño, y encaja exactamente con el patrón de ",{"type":21,"tag":29,"props":409,"children":411},{"href":410},"\u002Fglossary\u002Fhybrid-algorithm",[412],{"type":26,"value":413},"algoritmo híbrido",{"type":26,"value":415}," en el que el campo se ha asentado para la era ",{"type":21,"tag":29,"props":417,"children":419},{"href":418},"\u002Fglossary\u002Fnisq",[420],{"type":26,"value":421},"NISQ",{"type":26,"value":423},". La conclusión honesta es que el número de los titulares describe el sistema estudiado, no una prueba de que la QPU hizo el mismo trabajo en cada átomo.",{"type":21,"tag":49,"props":425,"children":427},{"id":426},"por-qué-sigue-siendo-un-hito-significativo",[428],{"type":26,"value":429},"Por qué sigue siendo un hito significativo",{"type":21,"tag":22,"props":431,"children":432},{},[433],{"type":26,"value":434},"Salvedades aparte, este es un avance real en lo que estas canalizaciones híbridas pueden manejar. La mayoría de las demostraciones anteriores de \"un ordenador cuántico hace química\" no pasaban de moléculas con conjunto de base mínimo y un puñado de átomos. Escalar la misma clase de técnica a un sistema de 303 átomos, biológicamente relevante y ampliamente caracterizado —y ejecutar la parte cuántica en hardware real en lugar de como sustituto clásico— demuestra que la canalización misma escala, que es el verdadero cuello de botella que los fabricantes están tratando de resolver. Se suma a otros hitos de química de 2026 en la misma dirección, incluida la demostración de Qubit Pharmaceuticals y Pasqal de colocación algorítmica cuántica de moléculas de agua en el bolsillo de una proteína — una tarea de nivel de biología molecular, no de libro de texto.",{"type":21,"tag":49,"props":436,"children":437},{"id":281},[438],{"type":26,"value":284},{"type":21,"tag":22,"props":440,"children":441},{},[442,444,450,452,457],{"type":26,"value":443},"No necesitas acceso a Heron r2 — ni ninguna QPU real— para aprender la técnica que se usa aquí. Los mismos componentes de VQE (construcción del ansatz, selección del espacio activo, el bucle de optimización clásico) se aplican tanto si estás ajustando H₂ en un ",{"type":21,"tag":29,"props":445,"children":447},{"href":446},"\u002Fsimulators",[448],{"type":26,"value":449},"simulador local gratuito",{"type":26,"value":451}," como si estás leyendo sobre una proteína de 303 átomos. Empieza con nuestra ",{"type":21,"tag":29,"props":453,"children":454},{"href":338},[455],{"type":26,"value":456},"guía de VQE con PennyLane",{"type":26,"value":458}," si quieres ejecutar tú mismo la versión de molécula pequeña, y trata los números de átomos en titulares como este de la misma forma que tratarías cualquier otra afirmación de hardware: un resultado real, que vale la pena entender con precisión, y que todavía no es toda la historia.",{"title":7,"searchDepth":150,"depth":150,"links":460},[461,462,463,464,465],{"id":351,"depth":150,"text":354},{"id":388,"depth":150,"text":391},{"id":399,"depth":150,"text":402},{"id":426,"depth":150,"text":429},{"id":281,"depth":150,"text":284},"content:es:blog:quantum-chemistry-protein-scale-2026.md","es\u002Fblog\u002Fquantum-chemistry-protein-scale-2026.md","es\u002Fblog\u002Fquantum-chemistry-protein-scale-2026",{"_path":470,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":471,"description":472,"date":10,"author":11,"tags":473,"readingTime":474,"body":475,"_type":156,"_id":748,"_source":158,"_file":749,"_stem":750,"_extension":161},"\u002Fes\u002Fblog\u002Ftop-quantum-computing-companies-2026","Las principales empresas de computación cuántica en julio de 2026, explicadas y clasificadas","Una clasificación fundamentada de las empresas de computación cuántica que realmente importan en julio de 2026: ingresos reales, hitos de hardware reales y posiciones de caja reales, no entusiasmo de comunicado de prensa. Las cifras de IonQ merecen su puesto. Las de Rigetti todavía no igualan a sus competidoras.",[15,13],12,{"type":18,"children":476,"toc":734},[477,482,494,500,519,525,530,536,541,562,567,573,586,592,597,603,608,613,619,624,630,635,641,646,652,657,663,701,707],{"type":21,"tag":22,"props":478,"children":479},{},[480],{"type":26,"value":481},"La mayoría de las listas de \"principales empresas de computación cuántica\" clasifican por el número de cúbits que aparece en el titular o por lo reciente que sea el último comunicado de prensa de una empresa. Ninguna de las dos cosas mide gran cosa. Un número de cúbits sin una cifra de fidelidad asociada no dice nada sobre si una máquina hace trabajo útil, y un comunicado de prensa mide un presupuesto de marketing, no una hoja de ruta de hardware.",{"type":21,"tag":22,"props":483,"children":484},{},[485,487,492],{"type":26,"value":486},"Esta clasificación usa tres criterios en su lugar: progreso técnico demostrado (fidelidad, cúbits lógicos, resultados reproducibles de forma independiente, no solo afirmaciones de titular), tracción comercial (ingresos, contratos, cartera de pedidos) y solidez financiera (posición de caja frente a la tasa de consumo). Cuando una cifra procede únicamente de las afirmaciones de la propia empresa, se dice explícitamente. Nuestro ",{"type":21,"tag":29,"props":488,"children":489},{"href":307},[490],{"type":26,"value":491},"directorio completo del sector",{"type":26,"value":493}," recoge más de 60 empresas en cada categoría. Este artículo es lo contrario: una lista corta y con opinión propia sobre quién va por delante, y por qué algunos de los nombres más ruidosos no lo están.",{"type":21,"tag":49,"props":495,"children":497},{"id":496},"_1-ibm-quantum",[498],{"type":26,"value":499},"1. IBM Quantum",{"type":21,"tag":22,"props":501,"children":502},{},[503,505,510,512,517],{"type":26,"value":504},"IBM sigue siendo la plataforma más amplia del sector, y julio de 2026 fue uno de sus meses más sólidos registrados: tres resultados distintos de ventaja cuántica anunciados el mismo día, con tres socios diferentes y tres estrategias de verificación diferentes. ",{"type":21,"tag":29,"props":506,"children":507},{"href":113},[508],{"type":26,"value":509},"Cubrimos el anuncio completo aquí",{"type":26,"value":511},". El procesador Nighthawk (120 cúbits, 218 acopladores sintonizables) ya está en funcionamiento, y la hoja de ruta pública de IBM apunta a la tolerancia a fallos para 2029 mediante una secuencia de sistemas intermedios, pasando a códigos de tipo qLDPC que recortan el sobrecoste de corrección de errores en torno a un 90% frente al código de superficie. El Open Plan de IBM sigue siendo además la forma más sencilla para cualquiera de ejecutar un circuito en hardware real de forma gratuita, lo que mantiene a IBM en el centro de cómo aprende la próxima generación de desarrolladores cuánticos. Consulta nuestra ",{"type":21,"tag":29,"props":513,"children":514},{"href":292},[515],{"type":26,"value":516},"guía del nivel gratuito de IBM Quantum",{"type":26,"value":518}," si quieres probarlo tú mismo. La debilidad de IBM es la otra cara de su amplitud: con tantas cosas ocurriendo a la vez, cada resultado individual recibe menos escrutinio del que recibiría de un competidor más pequeño y enfocado.",{"type":21,"tag":49,"props":520,"children":522},{"id":521},"_2-google-quantum-ai",[523],{"type":26,"value":524},"2. Google Quantum AI",{"type":21,"tag":22,"props":526,"children":527},{},[528],{"type":26,"value":529},"El procesador Willow de Google entregó el resultado Quantum Echoes a finales de 2025 (publicado en Nature), un cálculo que el artículo estima en unas 13.000 veces más rápido que el mejor método clásico disponible, y la demostración de corrección de errores por debajo del umbral un año antes sigue siendo uno de los pocos hitos totalmente escrutados de forma independiente en el campo. Google añadió en marzo de 2026 un esfuerzo de investigación en átomos neutros junto a su trabajo con superconductores, cubriéndose ante la posibilidad de que los cúbits transmón no sean la respuesta definitiva. Google publica con menos frecuencia que sus competidores y dice menos entre publicaciones, una estrategia de investigación defendible pero que dificulta seguir su progreso mes a mes.",{"type":21,"tag":49,"props":531,"children":533},{"id":532},"_3-ionq",[534],{"type":26,"value":535},"3. IonQ",{"type":21,"tag":22,"props":537,"children":538},{},[539],{"type":26,"value":540},"Las cifras de IonQ son las más sólidas del sector entre las empresas puramente de hardware cuántico, y eso es una afirmación factual, no promocional. Los ingresos del primer trimestre de 2026 alcanzaron los 64,7 millones de dólares, un aumento del 755% interanual, con una previsión anual elevada a 260-270 millones de dólares y obligaciones de rendimiento pendientes de 470 millones de dólares, un aumento del 554%. Ese no es el perfil de una empresa que funciona a base de esperanza. La tracción gubernamental lo respalda: un contrato marco con la Agencia de Defensa Antimisiles con un tope de hasta 151.000 millones de dólares (un tope, no una garantía de gasto, pero aun así inusualmente grande), un nuevo contrato de DARPA en abril de 2026 y un acuerdo de computación cuántica-HPC soberana con el instituto surcoreano KISTI.",{"type":21,"tag":22,"props":542,"children":543},{},[544,546,552,554,560],{"type":26,"value":545},"En hardware, el enfoque de iones atrapados de IonQ se beneficia de la técnica de \"puerta suave\" procedente de la adquisición de Oxford Ionics, que según la empresa eleva la fidelidad de puerta de dos cúbits por encima del 99,99% sin necesitar un enfriamiento completo al estado fundamental, un atajo de ingeniería genuino si se confirma bajo pruebas independientes. IonQ también publicó en diciembre de 2025 un resultado de descodificador (Beam Search, para códigos LDPC cuánticos) que afirma una reducción de 5,6 a 17 veces en la tasa de error lógico frente a la línea base estándar BP-OSD, con descodificación por debajo del milisegundo en un núcleo de CPU ordinario. Si eso escala como proyecta IonQ, es un camino considerablemente más barato hacia la descodificación en tiempo real que las rutas FPGA y ASIC que persiguen los competidores, un tema que profundizamos en ",{"type":21,"tag":29,"props":547,"children":549},{"href":548},"\u002Fblog\u002Fquantum-error-decoding-bottleneck",[550],{"type":26,"value":551},"el cuello de botella de la descodificación en tiempo real",{"type":26,"value":553},". Y la adquisición de la fundición SkyWater Technology, ",{"type":21,"tag":29,"props":555,"children":557},{"href":556},"\u002Fblog\u002Fionq-skywater-acquisition-explained",[558],{"type":26,"value":559},"que analizamos en detalle aquí",{"type":26,"value":561},", le da a IonQ una cadena de suministro totalmente doméstica y autorizada para defensa para los electrodos, la fotónica y la electrónica de control alrededor de sus cúbits, una ventaja real ante compradores gubernamentales independiente de la física de los cúbits.",{"type":21,"tag":22,"props":563,"children":564},{},[565],{"type":26,"value":566},"Nada de esto está verificado de forma independiente como lo estuvo el resultado por debajo del umbral de Google. Las afirmaciones de fidelidad, descodificador y velocidad de puerta de IonQ son cifras propias de IonQ. Pero la tracción comercial y gubernamental está reportada externamente y es auditable, a diferencia de las afirmaciones de marketing, y es poco frecuente que una empresa de hardware tan joven muestre un crecimiento de ingresos real a esta escala en lugar de depender solo de financiación de investigación. Esa combinación, tracción comercial demostrada más una hoja de ruta de hardware coherente, es la razón por la que IonQ se clasifica por delante de competidores con resultados de laboratorio posiblemente comparables o mejores, pero una historia comercial mucho más débil.",{"type":21,"tag":49,"props":568,"children":570},{"id":569},"_4-quantinuum",[571],{"type":26,"value":572},"4. Quantinuum",{"type":21,"tag":22,"props":574,"children":575},{},[576,578,584],{"type":26,"value":577},"El sistema Helios de Quantinuum afirma tener 48 cúbits lógicos corregidos de errores a partir de aproximadamente 96 cúbits físicos, una proporción de 2:1 que sería significativa si se confirma, ya que las estimaciones de código de superficie en hardware superconductor suelen alcanzar cientos o miles de cúbits físicos por cúbit lógico. ",{"type":21,"tag":29,"props":579,"children":581},{"href":580},"\u002Fblog\u002Fquantinuum-helios-logical-qubits-2026",[582],{"type":26,"value":583},"Explicamos aquí por qué esa proporción es siquiera posible",{"type":26,"value":585},": la conectividad de todos con todos de los iones atrapados permite comprobaciones de paridad no locales que un chip superconductor plano no puede cablear. Quantinuum salió a bolsa en 2026 con una valoración de 15.600 millones de dólares, más de un 50% por encima de su última ronda privada, meses antes, con Honeywell conservando aproximadamente el 48% del poder de voto. Esa acogida de la OPV dice que el mercado cree en la historia técnica. La cifra de 2:1, como las afirmaciones de fidelidad de IonQ, procede del propio fabricante y todavía no se ha reproducido de forma independiente.",{"type":21,"tag":49,"props":587,"children":589},{"id":588},"_5-d-wave",[590],{"type":26,"value":591},"5. D-Wave",{"type":21,"tag":22,"props":593,"children":594},{},[595],{"type":26,"value":596},"D-Wave ocupa una categoría diferente, recocido cuántico en lugar de computación por modelo de puertas, y por eso es fácil subestimarla. Las reservas del primer trimestre de 2026 crecieron casi 20 veces interanual hasta 33,4 millones de dólares, frente a unos comparativamente pequeños 2,9 millones de dólares de ingresos reconocidos, lo que significa que la cartera de pedidos es real, pero el retraso en el reconocimiento es largo. Una posición de caja de 588 millones de dólares le da margen para esperar. Acuerdos con la Universidad Atlántica de Florida y un cliente Fortune 100 para acceso en la nube cuántica muestran que su nicho, problemas de optimización que encajan de forma natural con el recocido, sigue teniendo demanda comercial activa.",{"type":21,"tag":49,"props":598,"children":600},{"id":599},"_6-rigetti-computing",[601],{"type":26,"value":602},"6. Rigetti Computing",{"type":21,"tag":22,"props":604,"children":605},{},[606],{"type":26,"value":607},"Rigetti es la empresa de esta lista donde la brecha entre el relato y las cifras es más amplia. Su Cepheus-1, un sistema superconductor de 108 cúbits, alcanzó disponibilidad general en abril de 2026 tras retrasarse respecto al objetivo original del cuarto trimestre de 2025, demorado por problemas de fidelidad en los acopladores sintonizables. Una vez enviado, la fidelidad de puerta de dos cúbits reportada se situó en torno al 99-99,1%, por debajo del propio objetivo de Rigetti del 99,5% y bien por debajo de las cifras que afirman tanto IonQ como Quantinuum para sus respectivas plataformas. Los ingresos del primer trimestre de 2026 fueron de 4,4 millones de dólares, una fracción de los 64,7 millones de dólares de IonQ en el mismo trimestre. Los informes públicos también describen un revés en un hito de un programa de DARPA, lo que añade presión a una empresa que en gran medida se autofinancia su hoja de ruta en este momento.",{"type":21,"tag":22,"props":609,"children":610},{},[611],{"type":26,"value":612},"La única fortaleza genuina es el balance: alrededor de 569 millones de dólares en efectivo, sin deuda, y una tasa de consumo de unos 26 millones de dólares por trimestre, lo que compra un margen real de tiempo. Vale la pena reconocerlo directamente, ya que una posición de caja sólida es un activo real, no un premio de consolación. Pero el efectivo compra tiempo, no posición competitiva, y en las métricas que realmente predicen si un ordenador cuántico hace trabajo útil, fidelidad, progreso en cúbits lógicos, tracción comercial independiente, Rigetti va por detrás de IBM, Google, IonQ y Quantinuum, no a su par. Su propia hoja de ruta pública hacia los 1.000+ cúbits se lee, según las cifras, más como una recuperación de varios años que como una vía paralela.",{"type":21,"tag":49,"props":614,"children":616},{"id":615},"_7-psiquantum",[617],{"type":26,"value":618},"7. PsiQuantum",{"type":21,"tag":22,"props":620,"children":621},{},[622],{"type":26,"value":623},"El enfoque fotónico de PsiQuantum, centrado ante todo en la tolerancia a fallos, recaudó una ronda Serie E de 1.000 millones de dólares en septiembre de 2025 y aseguró unos 940 millones de dólares australianos (unos 620 millones de dólares estadounidenses) en compromisos de los gobiernos de Australia y Queensland. La construcción de su planta en Brisbane comenzó en junio de 2026, pero el calendario de entrega se ha retrasado del objetivo original de 2027 a 2029. PsiQuantum nunca ha enviado un sistema comercial y lo apuesta todo a que una máquina tolerante a fallos funcione a la primera cuando se construya a gran escala, un perfil de riesgo genuinamente distinto al de cualquier competidor de modelo de puertas de esta lista, todos los cuales tienen hoy hardware funcionando (aunque ruidoso) en el terreno.",{"type":21,"tag":49,"props":625,"children":627},{"id":626},"_8-xanadu",[628],{"type":26,"value":629},"8. Xanadu",{"type":21,"tag":22,"props":631,"children":632},{},[633],{"type":26,"value":634},"Xanadu salió a cotizar en el Nasdaq y la TSX en marzo de 2026, recaudando 302 millones de dólares, y su sistema fotónico modular Aurora afirma tener corrección de errores en tiempo real, un paso técnico significativo si se verifica de forma independiente. Su framework PennyLane sigue siendo una de las herramientas de código abierto más usadas en aprendizaje automático cuántico, independientemente del hardware al que apunte, lo que le da a Xanadu un punto de apoyo en el ecosistema que no depende de que sus propios chips ganen.",{"type":21,"tag":49,"props":636,"children":638},{"id":637},"_9-pasqal",[639],{"type":26,"value":640},"9. Pasqal",{"type":21,"tag":22,"props":642,"children":643},{},[644],{"type":26,"value":645},"El enfoque de átomos neutros de Pasqal recaudó 340 millones de euros y valoró una fusión SPAC en 2.000 millones de dólares, con cierre previsto en la segunda mitad de 2026. Su hoja de ruta pública apunta a una demostración de ventaja con 250 cúbits en 2026 y un camino hacia más de 10.000 cúbits con sus sistemas Vela y Centaurus. Los átomos neutros siguen en una etapa comercial más temprana que los iones atrapados o los cúbits superconductores, pero la financiación y las relaciones gubernamentales de Pasqal (particularmente en Europa) le dan una resistencia real para alcanzar esa escala.",{"type":21,"tag":49,"props":647,"children":649},{"id":648},"_10-quera-computing",[650],{"type":26,"value":651},"10. QuEra Computing",{"type":21,"tag":22,"props":653,"children":654},{},[655],{"type":26,"value":656},"QuEra reportó 96 cúbits lógicos codificados en 448 cúbits físicos en un artículo de Nature de enero de 2026, una proporción que, si resiste el escrutinio como lo hizo el resultado por debajo del umbral de Google, situaría el recuento de cúbits lógicos de QuEra por delante del resultado Helios de Quantinuum. Más de 507 millones de dólares en financiación total de inversores como Google y SoftBank le dan los recursos para seguir empujando el enfoque de átomos neutros hacia la escala.",{"type":21,"tag":49,"props":658,"children":660},{"id":659},"el-resto-del-sector-en-breve",[661],{"type":26,"value":662},"El resto del sector, en breve",{"type":21,"tag":22,"props":664,"children":665},{},[666,671,673,678,680,685,687,692,694,699],{"type":21,"tag":180,"props":667,"children":668},{},[669],{"type":26,"value":670},"Atom Computing",{"type":26,"value":672}," persigue 50 cúbits lógicos sobre más de 1.200 cúbits físicos para finales de 2026, trabajando con el grupo QuNorth de Microsoft en corrección de errores. ",{"type":21,"tag":180,"props":674,"children":675},{},[676],{"type":26,"value":677},"IQM",{"type":26,"value":679}," recaudó 50 millones de euros de BlackRock y alcanzó una valoración SPAC de 1.800 millones de dólares, posicionándose como la primera empresa de hardware cuántico puro cotizada en la UE, con 21 sistemas ya vendidos a 13 clientes. ",{"type":21,"tag":180,"props":681,"children":682},{},[683],{"type":26,"value":684},"Infleqtion",{"type":26,"value":686}," salió a cotizar en la NYSE en febrero de 2026 y reporta 1.600 cúbits físicos con una fidelidad del 99,73%. ",{"type":21,"tag":180,"props":688,"children":689},{},[690],{"type":26,"value":691},"Microsoft",{"type":26,"value":693}," lanzó en junio de 2026 su actualización de cúbit topológico Majorana 2, con una mejora afirmada de 1.000 veces en la vida útil del cúbit, un resultado que sigue enfrentando un escrutinio real de la comunidad de física dado lo cuestionadas que han sido históricamente las afirmaciones sobre cúbits topológicos. ",{"type":21,"tag":180,"props":695,"children":696},{},[697],{"type":26,"value":698},"NVIDIA",{"type":26,"value":700}," no construye ningún cúbit, pero ha posicionado su infraestructura NVQLink como la capa de conexión entre la supercomputación clásica y las QPU de Rigetti, SEEQC, Quantinuum e IQM, una apuesta a que puede ser dueña de esa fontanería sin importar qué modalidad de hardware gane.",{"type":21,"tag":49,"props":702,"children":704},{"id":703},"cómo-usar-esta-lista",[705],{"type":26,"value":706},"Cómo usar esta lista",{"type":21,"tag":22,"props":708,"children":709},{},[710,712,718,720,725,727,732],{"type":26,"value":711},"Clasificaciones como esta envejecen rápido, y cada cifra aquí procede de un trimestre o anuncio concreto que dentro de un año parecerá desactualizado. Lo que no envejece tan rápido es el método: comprobar los ingresos frente a las previsiones, comprobar la fidelidad frente a los propios objetivos declarados de la empresa, comprobar si una afirmación de \"cúbit lógico\" o \"ventaja cuántica\" se ha reproducido de forma independiente o todavía descansa únicamente en la palabra de un fabricante. Aplica ese mismo método al próximo anuncio que leas, nuestro ",{"type":21,"tag":29,"props":713,"children":715},{"href":714},"\u002Fblog\u002Fquantum-benchmarking-eo-14413",[716],{"type":26,"value":717},"artículo sobre benchmarking cuántico",{"type":26,"value":719}," profundiza en por qué el sector todavía carece de una forma fiable e independiente de los fabricantes para comparar hardware. Nuestra ",{"type":21,"tag":29,"props":721,"children":722},{"href":249},[723],{"type":26,"value":724},"guía de hardware",{"type":26,"value":726}," y ",{"type":21,"tag":29,"props":728,"children":729},{"href":257},[730],{"type":26,"value":731},"comparación de SDK",{"type":26,"value":733}," son el siguiente paso si estás decidiendo sobre qué plataforma construir de verdad, en lugar de cuál simplemente observar.",{"title":7,"searchDepth":150,"depth":150,"links":735},[736,737,738,739,740,741,742,743,744,745,746,747],{"id":496,"depth":150,"text":499},{"id":521,"depth":150,"text":524},{"id":532,"depth":150,"text":535},{"id":569,"depth":150,"text":572},{"id":588,"depth":150,"text":591},{"id":599,"depth":150,"text":602},{"id":615,"depth":150,"text":618},{"id":626,"depth":150,"text":629},{"id":637,"depth":150,"text":640},{"id":648,"depth":150,"text":651},{"id":659,"depth":150,"text":662},{"id":703,"depth":150,"text":706},"content:es:blog:top-quantum-computing-companies-2026.md","es\u002Fblog\u002Ftop-quantum-computing-companies-2026.md","es\u002Fblog\u002Ftop-quantum-computing-companies-2026",{"_path":752,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":753,"description":754,"date":10,"author":11,"tags":755,"readingTime":171,"body":756,"_type":156,"_id":846,"_source":158,"_file":847,"_stem":848,"_extension":161},"\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.",[327,328,13],{"type":18,"children":757,"toc":840},[758,769,775,780,785,791,803,809,822,828],{"type":21,"tag":22,"props":759,"children":760},{},[761,763,767],{"type":26,"value":762},"Building a good ",{"type":21,"tag":29,"props":764,"children":765},{"href":368},[766],{"type":26,"value":328},{"type":26,"value":768}," circuit for a specific molecule is itself a hard, expensive search problem, 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":49,"props":770,"children":772},{"id":771},"the-problem-adapt-gqe-targets",[773],{"type":26,"value":774},"The problem ADAPT-GQE targets",{"type":21,"tag":22,"props":776,"children":777},{},[778],{"type":26,"value":779},"The standard method, ADAPT-VQE, builds a molecule-specific 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 grow, since every step re-evaluates the whole operator pool from scratch.",{"type":21,"tag":22,"props":781,"children":782},{},[783],{"type":26,"value":784},"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":49,"props":786,"children":788},{"id":787},"what-the-results-show",[789],{"type":26,"value":790},"What the results show",{"type":21,"tag":22,"props":792,"children":793},{},[794,796,801],{"type":26,"value":795},"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 same hardware we covered in our ",{"type":21,"tag":29,"props":797,"children":798},{"href":580},[799],{"type":26,"value":800},"piece on Helios's logical qubit encoding",{"type":26,"value":802},".",{"type":21,"tag":49,"props":804,"children":806},{"id":805},"read-the-claim-at-the-scale-it-was-tested",[807],{"type":26,"value":808},"Read the claim at the scale it was tested",{"type":21,"tag":22,"props":810,"children":811},{},[812,814,820],{"type":26,"value":813},"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":29,"props":815,"children":817},{"href":816},"\u002Fblog\u002Fquantum-chemistry-protein-scale-2026",[818],{"type":26,"value":819},"Cleveland Clinic and IBM protein-scale simulation",{"type":26,"value":821}," 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":49,"props":823,"children":825},{"id":824},"why-this-fits-a-pattern-worth-naming",[826],{"type":26,"value":827},"Why this fits a pattern worth naming",{"type":21,"tag":22,"props":829,"children":830},{},[831,833,838],{"type":26,"value":832},"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":29,"props":834,"children":835},{"href":338},[836],{"type":26,"value":837},"PennyLane VQE guide",{"type":26,"value":839}," walks through the manual ansatz-construction approach ADAPT-GQE is trying to replace.",{"title":7,"searchDepth":150,"depth":150,"links":841},[842,843,844,845],{"id":771,"depth":150,"text":774},{"id":787,"depth":150,"text":790},{"id":805,"depth":150,"text":808},{"id":824,"depth":150,"text":827},"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":850,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":851,"description":852,"date":10,"author":11,"tags":853,"readingTime":854,"body":855,"_type":156,"_id":921,"_source":158,"_file":922,"_stem":923,"_extension":161},"\u002Fblog\u002Fglobalfoundries-chips-silicon-photonics-award","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.",[15,13],6,{"type":18,"children":856,"toc":916},[857,862,868,873,879,905,911],{"type":21,"tag":22,"props":858,"children":859},{},[860],{"type":26,"value":861},"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":49,"props":863,"children":865},{"id":864},"what-the-award-funds",[866],{"type":26,"value":867},"What the award funds",{"type":21,"tag":22,"props":869,"children":870},{},[871],{"type":26,"value":872},"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":49,"props":874,"children":876},{"id":875},"why-a-chipmakers-ai-deal-shows-up-on-a-quantum-computing-site",[877],{"type":26,"value":878},"Why a chipmaker's AI deal shows up on a quantum computing site",{"type":21,"tag":22,"props":880,"children":881},{},[882,884,889,891,896,898,904],{"type":26,"value":883},"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":29,"props":885,"children":886},{"href":556},[887],{"type":26,"value":888},"IonQ's acquisition of SkyWater Technology",{"type":26,"value":890},". The connection to quantum computing is indirect but real: photonic quantum computing companies like Xanadu and PsiQuantum, tracked on our ",{"type":21,"tag":29,"props":892,"children":893},{"href":307},[894],{"type":26,"value":895},"industry landscape",{"type":26,"value":897},", 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":29,"props":899,"children":901},{"href":900},"\u002Fblog\u002Fquantum-networking-distributed-computing",[902],{"type":26,"value":903},"quantum networking and distributed quantum computing",{"type":26,"value":802},{"type":21,"tag":49,"props":906,"children":908},{"id":907},"what-this-does-and-does-not-tell-you-about-quantum-hardware",[909],{"type":26,"value":910},"What this does and does not tell you about quantum hardware",{"type":21,"tag":22,"props":912,"children":913},{},[914],{"type":26,"value":915},"This award funds general-purpose silicon photonics aimed at AI data centers, not a quantum-specific fabrication line. No quantum hardware vendor is named as a direct beneficiary in the announcement. What it does tell you is that the underlying manufacturing base for photonic and optically networked quantum hardware is getting real government investment and real domestic capacity, for reasons that have nothing to do with quantum computing at all. That is worth knowing if you are trying to judge 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":150,"depth":150,"links":917},[918,919,920],{"id":864,"depth":150,"text":867},{"id":875,"depth":150,"text":878},{"id":907,"depth":150,"text":910},"content:blog:globalfoundries-chips-silicon-photonics-award.md","blog\u002Fglobalfoundries-chips-silicon-photonics-award.md","blog\u002Fglobalfoundries-chips-silicon-photonics-award",{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"date":10,"author":11,"tags":925,"readingTime":16,"body":926,"_type":156,"_id":157,"_source":158,"_file":159,"_stem":160,"_extension":161},[13,14,15],{"type":18,"children":927,"toc":1016},[928,944,948,952,960,964,973,977,981,985,994,998,1002],{"type":21,"tag":22,"props":929,"children":930},{},[931,932,937,938,943],{"type":26,"value":27},{"type":21,"tag":29,"props":933,"children":935},{"href":31,"rel":934},[33],[936],{"type":26,"value":36},{"type":26,"value":38},{"type":21,"tag":29,"props":939,"children":941},{"href":41,"rel":940},[33],[942],{"type":26,"value":45},{"type":26,"value":47},{"type":21,"tag":49,"props":945,"children":946},{"id":51},[947],{"type":26,"value":54},{"type":21,"tag":22,"props":949,"children":950},{},[951],{"type":26,"value":59},{"type":21,"tag":22,"props":953,"children":954},{},[955,959],{"type":21,"tag":29,"props":956,"children":957},{"href":65},[958],{"type":26,"value":68},{"type":26,"value":70},{"type":21,"tag":49,"props":961,"children":962},{"id":73},[963],{"type":26,"value":76},{"type":21,"tag":22,"props":965,"children":966},{},[967,968,972],{"type":26,"value":81},{"type":21,"tag":29,"props":969,"children":970},{"href":84},[971],{"type":26,"value":87},{"type":26,"value":89},{"type":21,"tag":22,"props":974,"children":975},{},[976],{"type":26,"value":94},{"type":21,"tag":49,"props":978,"children":979},{"id":97},[980],{"type":26,"value":100},{"type":21,"tag":22,"props":982,"children":983},{},[984],{"type":26,"value":105},{"type":21,"tag":22,"props":986,"children":987},{},[988,989,993],{"type":26,"value":110},{"type":21,"tag":29,"props":990,"children":991},{"href":113},[992],{"type":26,"value":116},{"type":26,"value":118},{"type":21,"tag":49,"props":995,"children":996},{"id":121},[997],{"type":26,"value":124},{"type":21,"tag":22,"props":999,"children":1000},{},[1001],{"type":26,"value":129},{"type":21,"tag":22,"props":1003,"children":1004},{},[1005,1006,1010,1011,1015],{"type":26,"value":134},{"type":21,"tag":29,"props":1007,"children":1008},{"href":84},[1009],{"type":26,"value":139},{"type":26,"value":38},{"type":21,"tag":29,"props":1012,"children":1013},{"href":143},[1014],{"type":26,"value":146},{"type":26,"value":148},{"title":7,"searchDepth":150,"depth":150,"links":1017},[1018,1019,1020,1021],{"id":51,"depth":150,"text":54},{"id":73,"depth":150,"text":76},{"id":97,"depth":150,"text":100},{"id":121,"depth":150,"text":124},{"_path":1023,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":1024,"description":1025,"date":10,"author":11,"tags":1026,"readingTime":171,"body":1027,"_type":156,"_id":1124,"_source":158,"_file":1125,"_stem":1126,"_extension":161},"\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.",[13,14,15],{"type":18,"children":1028,"toc":1119},[1029,1041,1047,1052,1070,1076,1081,1086,1092,1103],{"type":21,"tag":22,"props":1030,"children":1031},{},[1032,1034,1039],{"type":26,"value":1033},"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":29,"props":1035,"children":1036},{"href":65},[1037],{"type":26,"value":1038},"error correction",{"type":26,"value":1040}," on its own.",{"type":21,"tag":49,"props":1042,"children":1044},{"id":1043},"what-hrl-built",[1045],{"type":26,"value":1046},"What HRL built",{"type":21,"tag":22,"props":1048,"children":1049},{},[1050],{"type":26,"value":1051},"The device holds 18 qubits. Next to them, inside the same 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":1053,"children":1054},{},[1055,1057,1062,1063,1068],{"type":26,"value":1056},"The controller chip itself was manufactured at a commercial foundry, the same kind of manufacturing step behind ",{"type":21,"tag":29,"props":1058,"children":1059},{"href":556},[1060],{"type":26,"value":1061},"IonQ's recent purchase of SkyWater Technology",{"type":26,"value":38},{"type":21,"tag":29,"props":1064,"children":1065},{"href":850},[1066],{"type":26,"value":1067},"GlobalFoundries' new silicon photonics funding",{"type":26,"value":1069},". 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":49,"props":1071,"children":1073},{"id":1072},"why-moving-the-controller-matters-more-than-it-sounds",[1074],{"type":26,"value":1075},"Why moving the controller matters more than it sounds",{"type":21,"tag":22,"props":1077,"children":1078},{},[1079],{"type":26,"value":1080},"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":1082,"children":1083},{},[1084],{"type":26,"value":1085},"That is a real, checkable engineering claim, and it is a different kind of claim than a qubit count or a fidelity number. 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":49,"props":1087,"children":1089},{"id":1088},"where-this-sits-next-to-other-2026-scaling-work",[1090],{"type":26,"value":1091},"Where this sits next to other 2026 scaling work",{"type":21,"tag":22,"props":1093,"children":1094},{},[1095,1101],{"type":21,"tag":29,"props":1096,"children":1098},{"href":1097},"\u002Fblog\u002Fwarwick-quantum-phononic-links",[1099],{"type":26,"value":1100},"Warwick researchers published a different answer",{"type":26,"value":1102}," to a related scaling problem the same 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":1104,"children":1105},{},[1106,1108,1113,1114,1118],{"type":26,"value":1107},"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":29,"props":1109,"children":1110},{"href":249},[1111],{"type":26,"value":1112},"hardware overview",{"type":26,"value":38},{"type":21,"tag":29,"props":1115,"children":1116},{"href":307},[1117],{"type":26,"value":895},{"type":26,"value":802},{"title":7,"searchDepth":150,"depth":150,"links":1120},[1121,1122,1123],{"id":1043,"depth":150,"text":1046},{"id":1072,"depth":150,"text":1075},{"id":1088,"depth":150,"text":1091},"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":1128,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":1129,"description":1130,"date":10,"author":11,"tags":1131,"readingTime":16,"body":1132,"_type":156,"_id":1362,"_source":158,"_file":1363,"_stem":1364,"_extension":161},"\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.",[15,13,14],{"type":18,"children":1133,"toc":1355},[1134,1148,1160,1166,1193,1213,1218,1224,1229,1234,1239,1245,1250,1255,1261,1266,1271,1277,1282,1298],{"type":21,"tag":22,"props":1135,"children":1136},{},[1137,1139,1146],{"type":26,"value":1138},"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":29,"props":1140,"children":1143},{"href":1141,"rel":1142},"https:\u002F\u002Fnewsroom.ibm.com\u002F2026-07-23-ibm-to-acquire-hrl-laboratories-to-power-the-future-of-quantum",[33],[1144],{"type":26,"value":1145},"IBM's newsroom announcement",{"type":26,"value":1147},". 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":1149,"children":1150},{},[1151,1153,1158],{"type":26,"value":1152},"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":29,"props":1154,"children":1155},{"href":1023},[1156],{"type":26,"value":1157},"which we covered here",{"type":26,"value":1159},". 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":49,"props":1161,"children":1163},{"id":1162},"what-hrl-brings",[1164],{"type":26,"value":1165},"What HRL brings",{"type":21,"tag":22,"props":1167,"children":1168},{},[1169,1171,1178,1180,1185,1187,1192],{"type":26,"value":1170},"HRL specializes in silicon-spin qubit engineering, quantum sensing, and quantum materials, according to ",{"type":21,"tag":29,"props":1172,"children":1175},{"href":1173,"rel":1174},"https:\u002F\u002Fresearch.ibm.com\u002Fblog\u002Fhrl-laboratories-ibm",[33],[1176],{"type":26,"value":1177},"IBM Research's own writeup",{"type":26,"value":1179},". That is a different qubit modality from IBM's existing superconducting transmon platform, the one behind ",{"type":21,"tag":29,"props":1181,"children":1182},{"href":113},[1183],{"type":26,"value":1184},"Nighthawk",{"type":26,"value":1186}," and the ",{"type":21,"tag":29,"props":1188,"children":1189},{"href":714},[1190],{"type":26,"value":1191},"Starling and Blue Jay roadmap",{"type":26,"value":802},{"type":21,"tag":22,"props":1194,"children":1195},{},[1196,1198,1204,1206,1211],{"type":26,"value":1197},"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":29,"props":1199,"children":1201},{"href":1200},"\u002Fglossary\u002Fqubit",[1202],{"type":26,"value":1203},"qubits",{"type":26,"value":1205},", 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":29,"props":1207,"children":1208},{"href":1023},[1209],{"type":26,"value":1210},"earlier piece on that result",{"type":26,"value":1212}," 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":1214,"children":1215},{},[1216],{"type":26,"value":1217},"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":49,"props":1219,"children":1221},{"id":1220},"why-ibm-is-buying-instead-of-partnering",[1222],{"type":26,"value":1223},"Why IBM is buying instead of partnering",{"type":21,"tag":22,"props":1225,"children":1226},{},[1227],{"type":26,"value":1228},"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":1230,"children":1231},{},[1232],{"type":26,"value":1233},"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":1235,"children":1236},{},[1237],{"type":26,"value":1238},"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":49,"props":1240,"children":1242},{"id":1241},"the-people-making-the-case",[1243],{"type":26,"value":1244},"The people making the case",{"type":21,"tag":22,"props":1246,"children":1247},{},[1248],{"type":26,"value":1249},"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":1251,"children":1252},{},[1253],{"type":26,"value":1254},"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":49,"props":1256,"children":1258},{"id":1257},"hrls-history-is-longer-than-the-quantum-story-suggests",[1259],{"type":26,"value":1260},"HRL's history is longer than the quantum story suggests",{"type":21,"tag":22,"props":1262,"children":1263},{},[1264],{"type":26,"value":1265},"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":1267,"children":1268},{},[1269],{"type":26,"value":1270},"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":49,"props":1272,"children":1274},{"id":1273},"what-to-watch-once-the-deal-closes",[1275],{"type":26,"value":1276},"What to watch once the deal closes",{"type":21,"tag":22,"props":1278,"children":1279},{},[1280],{"type":26,"value":1281},"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":1283,"children":1284},{},[1285,1287,1291,1292,1296],{"type":26,"value":1286},"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":29,"props":1288,"children":1289},{"href":249},[1290],{"type":26,"value":1112},{"type":26,"value":38},{"type":21,"tag":29,"props":1293,"children":1294},{"href":307},[1295],{"type":26,"value":895},{"type":26,"value":1297}," 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":1299,"children":1300},{},[1301,1306,1308,1314,1316,1322,1323,1330,1331,1338,1339,1346,1347,1354],{"type":21,"tag":180,"props":1302,"children":1303},{},[1304],{"type":26,"value":1305},"Sources:",{"type":26,"value":1307}," ",{"type":21,"tag":29,"props":1309,"children":1311},{"href":1141,"rel":1310},[33],[1312],{"type":26,"value":1313},"IBM newsroom announcement",{"type":26,"value":1315},", ",{"type":21,"tag":29,"props":1317,"children":1319},{"href":1173,"rel":1318},[33],[1320],{"type":26,"value":1321},"IBM Research blog",{"type":26,"value":1315},{"type":21,"tag":29,"props":1324,"children":1327},{"href":1325,"rel":1326},"https:\u002F\u002Fsiliconangle.com\u002F2026\u002F07\u002F23\u002Fibm-acquires-quantum-computing-research-lab-hrl\u002F",[33],[1328],{"type":26,"value":1329},"SiliconANGLE",{"type":26,"value":1315},{"type":21,"tag":29,"props":1332,"children":1335},{"href":1333,"rel":1334},"https:\u002F\u002Fwww.govconwire.com\u002Farticles\u002Fibm-buy-hrl-laboratories-quantum-computing",[33],[1336],{"type":26,"value":1337},"GovConWire",{"type":26,"value":1315},{"type":21,"tag":29,"props":1340,"children":1343},{"href":1341,"rel":1342},"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",[33],[1344],{"type":26,"value":1345},"IBM's $10 billion quantum investment announcement",{"type":26,"value":1315},{"type":21,"tag":29,"props":1348,"children":1351},{"href":1349,"rel":1350},"https:\u002F\u002Fwww.hrl.com\u002Fabout\u002Fhistory",[33],[1352],{"type":26,"value":1353},"HRL Laboratories history",{"type":26,"value":802},{"title":7,"searchDepth":150,"depth":150,"links":1356},[1357,1358,1359,1360,1361],{"id":1162,"depth":150,"text":1165},{"id":1220,"depth":150,"text":1223},{"id":1241,"depth":150,"text":1244},{"id":1257,"depth":150,"text":1260},{"id":1273,"depth":150,"text":1276},"content:blog:ibm-hrl-laboratories-acquisition-explained.md","blog\u002Fibm-hrl-laboratories-acquisition-explained.md","blog\u002Fibm-hrl-laboratories-acquisition-explained",{"_path":113,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":1366,"description":1367,"date":10,"author":11,"tags":1368,"readingTime":1370,"body":1371,"_type":156,"_id":1520,"_source":158,"_file":1521,"_stem":1522,"_extension":161},"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.",[15,13,1369],"Qiskit",9,{"type":18,"children":1372,"toc":1513},[1373,1378,1384,1397,1409,1415,1420,1425,1431,1436,1441,1447,1468,1473,1479,1484],{"type":21,"tag":22,"props":1374,"children":1375},{},[1376],{"type":26,"value":1377},"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":49,"props":1379,"children":1381},{"id":1380},"result-one-ibm-and-the-university-of-chicago-logical-qubits-at-scale",[1382],{"type":26,"value":1383},"Result one: IBM and the University of Chicago, logical qubits at scale",{"type":21,"tag":22,"props":1385,"children":1386},{},[1387,1389,1395],{"type":26,"value":1388},"The team ran an encoded circuit using 70 ",{"type":21,"tag":29,"props":1390,"children":1392},{"href":1391},"\u002Fglossary\u002Flogical-qubit",[1393],{"type":26,"value":1394},"logical qubits",{"type":26,"value":1396}," 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":1398,"children":1399},{},[1400,1402,1407],{"type":26,"value":1401},"Notice what the coverage did not state: the physical qubit count behind those 70 logical qubits. Our ",{"type":21,"tag":29,"props":1403,"children":1404},{"href":143},[1405],{"type":26,"value":1406},"companion piece on logical qubits and fault tolerance",{"type":26,"value":1408}," 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":49,"props":1410,"children":1412},{"id":1411},"result-two-ibm-and-qedma-a-real-physics-question-checked-two-ways",[1413],{"type":26,"value":1414},"Result two: IBM and Qedma, a real physics question checked two ways",{"type":21,"tag":22,"props":1416,"children":1417},{},[1418],{"type":26,"value":1419},"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":1421,"children":1422},{},[1423],{"type":26,"value":1424},"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":49,"props":1426,"children":1428},{"id":1427},"result-three-ibm-and-algorithmiq-checking-an-answer-nothing-else-verifies",[1429],{"type":26,"value":1430},"Result three: IBM and Algorithmiq, checking an answer nothing else verifies",{"type":21,"tag":22,"props":1432,"children":1433},{},[1434],{"type":26,"value":1435},"This is the hardest version of the problem. 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":1437,"children":1438},{},[1439],{"type":26,"value":1440},"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":49,"props":1442,"children":1444},{"id":1443},"why-the-trust-framing-matters-more-than-the-speed-framing",[1445],{"type":26,"value":1446},"Why the trust framing matters more than the speed framing",{"type":21,"tag":22,"props":1448,"children":1449},{},[1450,1452,1458,1460,1466],{"type":26,"value":1451},"\"Beyond classical simulation\" is not a new claim. Google made a related claim in 2019 with its ",{"type":21,"tag":29,"props":1453,"children":1455},{"href":1454},"\u002Fresearch\u002Fgoogle-quantum-supremacy-2019",[1456],{"type":26,"value":1457},"quantum supremacy result",{"type":26,"value":1459},", and better classical algorithms later closed part of that gap. IBM made a related but weaker claim in 2023 with ",{"type":21,"tag":29,"props":1461,"children":1463},{"href":1462},"\u002Fresearch\u002Fibm-quantum-utility-2023",[1464],{"type":26,"value":1465},"quantum utility",{"type":26,"value":1467},", which did not require beating classical computation outright, only being useful and comparable to it.",{"type":21,"tag":22,"props":1469,"children":1470},{},[1471],{"type":26,"value":1472},"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":49,"props":1474,"children":1476},{"id":1475},"what-happens-next",[1477],{"type":26,"value":1478},"What happens next",{"type":21,"tag":22,"props":1480,"children":1481},{},[1482],{"type":26,"value":1483},"Peer review and independent replication are the steps that eventually narrowed Google's 2019 claim, and they are the steps to watch for here too. Three same-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":1485,"children":1486},{},[1487,1489,1493,1494,1498,1500,1505,1506,1511],{"type":26,"value":1488},"For a broader sense of how IBM's hardware and error-mitigation approach compares with competing modalities, see our ",{"type":21,"tag":29,"props":1490,"children":1491},{"href":249},[1492],{"type":26,"value":1112},{"type":26,"value":38},{"type":21,"tag":29,"props":1495,"children":1496},{"href":307},[1497],{"type":26,"value":895},{"type":26,"value":1499},". For the mechanics behind logical qubits and why overhead numbers matter more than headline qubit counts, our ",{"type":21,"tag":29,"props":1501,"children":1502},{"href":143},[1503],{"type":26,"value":1504},"fault tolerance explainer",{"type":26,"value":38},{"type":21,"tag":29,"props":1507,"children":1508},{"href":580},[1509],{"type":26,"value":1510},"Quantinuum Helios piece",{"type":26,"value":1512}," cover the same questions from a different vendor's claims.",{"title":7,"searchDepth":150,"depth":150,"links":1514},[1515,1516,1517,1518,1519],{"id":1380,"depth":150,"text":1383},{"id":1411,"depth":150,"text":1414},{"id":1427,"depth":150,"text":1430},{"id":1443,"depth":150,"text":1446},{"id":1475,"depth":150,"text":1478},"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":1524,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":1525,"description":1526,"date":10,"author":11,"tags":1527,"readingTime":171,"body":1528,"_type":156,"_id":1643,"_source":158,"_file":1644,"_stem":1645,"_extension":161},"\u002Fblog\u002Finfleqtion-sqale-illinois-quantum-park","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.",[13,15],{"type":18,"children":1529,"toc":1638},[1530,1551,1557,1575,1595,1601,1606,1611,1617,1622],{"type":21,"tag":22,"props":1531,"children":1532},{},[1533,1535,1542,1543,1549],{"type":26,"value":1534},"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":29,"props":1536,"children":1539},{"href":1537,"rel":1538},"https:\u002F\u002Finfleqtion.com\u002Finfleqtion-to-deploy-fault-tolerant-neutral-atom-quantum-computer-in-illinois\u002F",[33],[1540],{"type":26,"value":1541},"the company's own announcement",{"type":26,"value":38},{"type":21,"tag":29,"props":1544,"children":1547},{"href":1545,"rel":1546},"https:\u002F\u002Fthequantuminsider.com\u002F2026\u002F07\u002F23\u002Finfleqtion-neutral-atom-quantum-computer-illinois\u002F",[33],[1548],{"type":26,"value":36},{"type":26,"value":1550},". What makes this worth a post 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":49,"props":1552,"children":1554},{"id":1553},"what-sqale-is-supposed-to-do",[1555],{"type":26,"value":1556},"What Sqale is supposed to do",{"type":21,"tag":22,"props":1558,"children":1559},{},[1560,1562,1566,1568,1573],{"type":26,"value":1561},"Sqale is designed to demonstrate more than 50 ",{"type":21,"tag":29,"props":1563,"children":1564},{"href":1391},[1565],{"type":26,"value":1394},{"type":26,"value":1567}," 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":29,"props":1569,"children":1570},{"href":249},[1571],{"type":26,"value":1572},"neutral-atom systems",{"type":26,"value":1574},", 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":1576,"children":1577},{},[1578,1580,1585,1587,1593],{"type":26,"value":1579},"Fifty logical qubits would be a meaningful jump if it holds up. For comparison, ",{"type":21,"tag":29,"props":1581,"children":1582},{"href":580},[1583],{"type":26,"value":1584},"Quantinuum's Helios system claims 48 logical qubits",{"type":26,"value":1586}," from roughly 96 physical qubits, and ",{"type":21,"tag":29,"props":1588,"children":1590},{"href":1589},"\u002Fblog\u002Ftop-quantum-computing-companies-2026",[1591],{"type":26,"value":1592},"QuEra reported 96 logical qubits",{"type":26,"value":1594}," 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 result.",{"type":21,"tag":49,"props":1596,"children":1598},{"id":1597},"the-energy-grid-angle-is-the-more-interesting-part",[1599],{"type":26,"value":1600},"The energy grid angle is the more interesting part",{"type":21,"tag":22,"props":1602,"children":1603},{},[1604],{"type":26,"value":1605},"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":1607,"children":1608},{},[1609],{"type":26,"value":1610},"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":49,"props":1612,"children":1614},{"id":1613},"what-is-confirmed-and-what-is-not",[1615],{"type":26,"value":1616},"What is confirmed and what is not",{"type":21,"tag":22,"props":1618,"children":1619},{},[1620],{"type":26,"value":1621},"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 has not shipped yet. Infleqtion does have 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, so this is a company with working hardware in the field already, not a pre-revenue startup making a first claim.",{"type":21,"tag":22,"props":1623,"children":1624},{},[1625,1627,1631,1632,1636],{"type":26,"value":1626},"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":29,"props":1628,"children":1629},{"href":249},[1630],{"type":26,"value":1112},{"type":26,"value":38},{"type":21,"tag":29,"props":1633,"children":1634},{"href":307},[1635],{"type":26,"value":895},{"type":26,"value":1637}," 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":150,"depth":150,"links":1639},[1640,1641,1642],{"id":1553,"depth":150,"text":1556},{"id":1597,"depth":150,"text":1600},{"id":1613,"depth":150,"text":1616},"content:blog:infleqtion-sqale-illinois-quantum-park.md","blog\u002Finfleqtion-sqale-illinois-quantum-park.md","blog\u002Finfleqtion-sqale-illinois-quantum-park",{"_path":556,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":1647,"description":1648,"date":10,"author":11,"tags":1649,"readingTime":16,"body":1650,"_type":156,"_id":1796,"_source":158,"_file":1797,"_stem":1798,"_extension":161},"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.",[15,13,170],{"type":18,"children":1651,"toc":1788},[1652,1666,1672,1677,1683,1688,1693,1698,1704,1709,1727,1733,1738,1744,1763,1769],{"type":21,"tag":22,"props":1653,"children":1654},{},[1655,1657,1664],{"type":26,"value":1656},"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":29,"props":1658,"children":1661},{"href":1659,"rel":1660},"https:\u002F\u002Finvestors.ionq.com\u002Fnews\u002Fnews-details\u002F2026\u002FIonQ-Completes-Acquisition-of-SkyWater-Technology\u002Fdefault.aspx",[33],[1662],{"type":26,"value":1663},"$1.8 billion",{"type":26,"value":1665},". 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":49,"props":1667,"children":1669},{"id":1668},"what-skywater-builds",[1670],{"type":26,"value":1671},"What SkyWater builds",{"type":21,"tag":22,"props":1673,"children":1674},{},[1675],{"type":26,"value":1676},"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":49,"props":1678,"children":1680},{"id":1679},"the-part-of-ionqs-stack-this-touches",[1681],{"type":26,"value":1682},"The part of IonQ's stack this touches",{"type":21,"tag":22,"props":1684,"children":1685},{},[1686],{"type":26,"value":1687},"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":1689,"children":1690},{},[1691],{"type":26,"value":1692},"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":1694,"children":1695},{},[1696],{"type":26,"value":1697},"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":49,"props":1699,"children":1701},{"id":1700},"what-vertically-integrated-means-precisely",[1702],{"type":26,"value":1703},"What \"vertically integrated\" means, precisely",{"type":21,"tag":22,"props":1705,"children":1706},{},[1707],{"type":26,"value":1708},"No other quantum hardware company 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":1710,"children":1711},{},[1712,1714,1718,1720,1725],{"type":26,"value":1713},"The claim 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":29,"props":1715,"children":1716},{"href":249},[1717],{"type":26,"value":1112},{"type":26,"value":1719}," and our ",{"type":21,"tag":29,"props":1721,"children":1722},{"href":257},[1723],{"type":26,"value":1724},"SDK and modality comparison",{"type":26,"value":1726}," cover how IonQ stacks up against competitors across every technology, not only this one.",{"type":21,"tag":49,"props":1728,"children":1730},{"id":1729},"why-the-size-of-the-deal-matters",[1731],{"type":26,"value":1732},"Why the size of the deal matters",{"type":21,"tag":22,"props":1734,"children":1735},{},[1736],{"type":26,"value":1737},"$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":49,"props":1739,"children":1741},{"id":1740},"the-domestic-supply-chain-story-holds-up-best",[1742],{"type":26,"value":1743},"The domestic supply chain story holds up best",{"type":21,"tag":22,"props":1745,"children":1746},{},[1747,1749,1755,1756,1761],{"type":26,"value":1748},"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":29,"props":1750,"children":1752},{"href":1751},"\u002Fblog\u002Fpost-quantum-migration-deadlines",[1753],{"type":26,"value":1754},"accelerated post-quantum migration deadlines",{"type":26,"value":1186},{"type":21,"tag":29,"props":1757,"children":1758},{"href":714},[1759],{"type":26,"value":1760},"quantum benchmarking executive order",{"type":26,"value":1762},". 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":49,"props":1764,"children":1766},{"id":1765},"what-to-watch-next",[1767],{"type":26,"value":1768},"What to watch next",{"type":21,"tag":22,"props":1770,"children":1771},{},[1772,1774,1779,1781,1786],{"type":26,"value":1773},"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":29,"props":1775,"children":1776},{"href":143},[1777],{"type":26,"value":1778},"logical qubits and fault tolerance",{"type":26,"value":1780}," and in our look at ",{"type":21,"tag":29,"props":1782,"children":1783},{"href":580},[1784],{"type":26,"value":1785},"Quantinuum's Helios encoding ratio",{"type":26,"value":1787},". 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":150,"depth":150,"links":1789},[1790,1791,1792,1793,1794,1795],{"id":1668,"depth":150,"text":1671},{"id":1679,"depth":150,"text":1682},{"id":1700,"depth":150,"text":1703},{"id":1729,"depth":150,"text":1732},{"id":1740,"depth":150,"text":1743},{"id":1765,"depth":150,"text":1768},"content:blog:ionq-skywater-acquisition-explained.md","blog\u002Fionq-skywater-acquisition-explained.md","blog\u002Fionq-skywater-acquisition-explained",{"_path":1800,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":1801,"description":1802,"date":10,"author":11,"tags":1803,"readingTime":171,"body":1804,"_type":156,"_id":1913,"_source":158,"_file":1914,"_stem":1915,"_extension":161},"\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.",[15,13],{"type":18,"children":1805,"toc":1907},[1806,1827,1832,1838,1843,1848,1854,1859,1871,1877,1882,1887,1891],{"type":21,"tag":22,"props":1807,"children":1808},{},[1809,1811,1817,1818,1825],{"type":26,"value":1810},"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":29,"props":1812,"children":1815},{"href":1813,"rel":1814},"https:\u002F\u002Fthequantuminsider.com\u002F2026\u002F07\u002F22\u002Fpsiquantum-signs-125-million-agreement-with-darpa\u002F",[33],[1816],{"type":26,"value":36},{"type":26,"value":38},{"type":21,"tag":29,"props":1819,"children":1822},{"href":1820,"rel":1821},"https:\u002F\u002Fwww.psiquantum.com\u002Fnews-import\u002Fpsiquantum-signs-125-million-agreement-with-darpa",[33],[1823],{"type":26,"value":1824},"PsiQuantum's own announcement",{"type":26,"value":1826},". 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":1828,"children":1829},{},[1830],{"type":26,"value":1831},"That framing matters more than the dollar figure. This is not research funding for PsiQuantum to build something new. It funds DARPA and independent evaluators testing whether what PsiQuantum has already built and claimed holds up.",{"type":21,"tag":49,"props":1833,"children":1835},{"id":1834},"what-qbi-tests",[1836],{"type":26,"value":1837},"What QBI tests",{"type":21,"tag":22,"props":1839,"children":1840},{},[1841],{"type":26,"value":1842},"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":1844,"children":1845},{},[1846],{"type":26,"value":1847},"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":49,"props":1849,"children":1851},{"id":1850},"what-the-money-funds",[1852],{"type":26,"value":1853},"What the money funds",{"type":21,"tag":22,"props":1855,"children":1856},{},[1857],{"type":26,"value":1858},"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":1860,"children":1861},{},[1862,1864,1869],{"type":26,"value":1863},"That structure is the point. ",{"type":21,"tag":29,"props":1865,"children":1866},{"href":1589},[1867],{"type":26,"value":1868},"PsiQuantum's photonic, fault-tolerance-first approach",{"type":26,"value":1870}," 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":49,"props":1872,"children":1874},{"id":1873},"why-this-is-a-different-kind-of-evidence-than-a-press-release",[1875],{"type":26,"value":1876},"Why this is a different kind of evidence than a press release",{"type":21,"tag":22,"props":1878,"children":1879},{},[1880],{"type":26,"value":1881},"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":1883,"children":1884},{},[1885],{"type":26,"value":1886},"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 company'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":49,"props":1888,"children":1889},{"id":1765},[1890],{"type":26,"value":1768},{"type":21,"tag":22,"props":1892,"children":1893},{},[1894,1896,1900,1901,1905],{"type":26,"value":1895},"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":29,"props":1897,"children":1898},{"href":249},[1899],{"type":26,"value":1112},{"type":26,"value":38},{"type":21,"tag":29,"props":1902,"children":1903},{"href":307},[1904],{"type":26,"value":895},{"type":26,"value":1906}," 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":150,"depth":150,"links":1908},[1909,1910,1911,1912],{"id":1834,"depth":150,"text":1837},{"id":1850,"depth":150,"text":1853},{"id":1873,"depth":150,"text":1876},{"id":1765,"depth":150,"text":1768},"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":1917,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":1918,"description":1919,"date":10,"author":11,"tags":1920,"readingTime":854,"body":1921,"_type":156,"_id":2015,"_source":158,"_file":2016,"_stem":2017,"_extension":161},"\u002Fblog\u002Fquantinuum-bmw-multi-year-partnership","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.",[15,13],{"type":18,"children":1922,"toc":2010},[1923,1944,1950,1955,1960,1966,1978,1983,1989,1994],{"type":21,"tag":22,"props":1924,"children":1925},{},[1926,1928,1935,1936,1942],{"type":26,"value":1927},"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":29,"props":1929,"children":1932},{"href":1930,"rel":1931},"https:\u002F\u002Fwww.quantinuum.com\u002Fpress-releases\u002Fquantinuum-and-bmw-group-expand-landmark-quantum-computing-collaboration-with-new-multi-year-partnership",[33],[1933],{"type":26,"value":1934},"Quantinuum's press release",{"type":26,"value":38},{"type":21,"tag":29,"props":1937,"children":1940},{"href":1938,"rel":1939},"https:\u002F\u002Fthequantuminsider.com\u002F2026\u002F05\u002F05\u002Fquantinuum-and-bmw-group-expand-quantum-computing-collaboration-with-new-multi-year-partnership\u002F",[33],[1941],{"type":26,"value":36},{"type":26,"value":1943},". 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":49,"props":1945,"children":1947},{"id":1946},"five-years-is-the-actual-story-here",[1948],{"type":26,"value":1949},"Five years is the actual story here",{"type":21,"tag":22,"props":1951,"children":1952},{},[1953],{"type":26,"value":1954},"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 problem that determines fuel cell efficiency and where classical simulation methods struggle with the electron correlation effects involved.",{"type":21,"tag":22,"props":1956,"children":1957},{},[1958],{"type":26,"value":1959},"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":49,"props":1961,"children":1963},{"id":1962},"what-bmw-gets",[1964],{"type":26,"value":1965},"What BMW gets",{"type":21,"tag":22,"props":1967,"children":1968},{},[1969,1971,1976],{"type":26,"value":1970},"The expanded partnership gives BMW access to successive generations of Quantinuum's ",{"type":21,"tag":29,"props":1972,"children":1973},{"href":580},[1974],{"type":26,"value":1975},"trapped-ion",{"type":26,"value":1977}," 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":1979,"children":1980},{},[1981],{"type":26,"value":1982},"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":49,"props":1984,"children":1986},{"id":1985},"why-this-is-a-useful-comparison-point",[1987],{"type":26,"value":1988},"Why this is a useful comparison point",{"type":21,"tag":22,"props":1990,"children":1991},{},[1992],{"type":26,"value":1993},"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 result. 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":1995,"children":1996},{},[1997,1999,2003,2004,2008],{"type":26,"value":1998},"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":29,"props":2000,"children":2001},{"href":249},[2002],{"type":26,"value":1112},{"type":26,"value":38},{"type":21,"tag":29,"props":2005,"children":2006},{"href":307},[2007],{"type":26,"value":895},{"type":26,"value":2009}," 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":150,"depth":150,"links":2011},[2012,2013,2014],{"id":1946,"depth":150,"text":1949},{"id":1962,"depth":150,"text":1965},{"id":1985,"depth":150,"text":1988},"content:blog:quantinuum-bmw-multi-year-partnership.md","blog\u002Fquantinuum-bmw-multi-year-partnership.md","blog\u002Fquantinuum-bmw-multi-year-partnership",{"_path":2019,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":2020,"description":2021,"date":10,"author":11,"tags":2022,"readingTime":1370,"body":2026,"_type":156,"_id":2706,"_source":158,"_file":2707,"_stem":2708,"_extension":161},"\u002Fblog\u002Fquantum-portfolio-optimization-business-case","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.",[2023,2024,2025],"Optimization","QAOA","Use Cases",{"type":18,"children":2027,"toc":2699},[2028,2041,2061,2067,2104,2110,2115,2125,2150,2184,2189,2195,2200,2217,2245,2251,2275,2309,2513,2611,2628,2638,2644,2656,2693],{"type":21,"tag":22,"props":2029,"children":2030},{},[2031,2033,2039],{"type":26,"value":2032},"Writing a QAOA circuit is a solved problem. Dozens of tutorials, including ",{"type":21,"tag":29,"props":2034,"children":2036},{"href":2035},"\u002Fblog\u002Fqaoa-max-cut-tutorial",[2037],{"type":26,"value":2038},"our own",{"type":26,"value":2040},", 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":2042,"children":2043},{},[2044,2051,2053,2059],{"type":21,"tag":29,"props":2045,"children":2048},{"href":2046,"rel":2047},"https:\u002F\u002Fgithub.com\u002FAlinDanielFerenczi\u002FPortfolioQ",[33],[2049],{"type":26,"value":2050},"PortfolioQ",{"type":26,"value":2052}," 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":2054,"props":2055,"children":2056},"em",{},[2057],{"type":26,"value":2058},"any",{"type":26,"value":2060}," quantum optimization claim honestly, portfolio selection or otherwise.",{"type":21,"tag":49,"props":2062,"children":2064},{"id":2063},"the-problem-it-solves",[2065],{"type":26,"value":2066},"The problem it solves",{"type":21,"tag":22,"props":2068,"children":2069},{},[2070,2072,2077,2079,2086,2088,2094,2096,2102],{"type":26,"value":2071},"PortfolioQ targets ",{"type":21,"tag":180,"props":2073,"children":2074},{},[2075],{"type":26,"value":2076},"cardinality-constrained portfolio selection",{"type":26,"value":2078},": 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":2080,"props":2081,"children":2083},"code",{"className":2082},[],[2084],{"type":26,"value":2085},"risk_factor * wᵀΣw - μᵀw",{"type":26,"value":2087}," subject to ",{"type":21,"tag":2080,"props":2089,"children":2091},{"className":2090},[],[2092],{"type":26,"value":2093},"sum(w) == budget",{"type":26,"value":2095},", with each ",{"type":21,"tag":2080,"props":2097,"children":2099},{"className":2098},[],[2100],{"type":26,"value":2101},"w",{"type":26,"value":2103}," 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 easy to get wrong in a naive QAOA implementation.",{"type":21,"tag":49,"props":2105,"children":2107},{"id":2106},"three-solvers-run-side-by-side",[2108],{"type":26,"value":2109},"Three solvers, run side by side",{"type":21,"tag":22,"props":2111,"children":2112},{},[2113],{"type":26,"value":2114},"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":2116,"children":2117},{},[2118,2123],{"type":21,"tag":180,"props":2119,"children":2120},{},[2121],{"type":26,"value":2122},"Classical exact enumeration.",{"type":26,"value":2124}," 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":2126,"children":2127},{},[2128,2133,2135,2141,2143,2148],{"type":21,"tag":180,"props":2129,"children":2130},{},[2131],{"type":26,"value":2132},"Penalty-method QAOA.",{"type":26,"value":2134}," The standard textbook approach: convert the constrained problem to a QUBO via ",{"type":21,"tag":2080,"props":2136,"children":2138},{"className":2137},[],[2139],{"type":26,"value":2140},"QuadraticProgramToQubo",{"type":26,"value":2142},", encode it as an Ising Hamiltonian, run ",{"type":21,"tag":29,"props":2144,"children":2146},{"href":2145},"\u002Fglossary\u002Fqaoa",[2147],{"type":26,"value":2024},{"type":26,"value":2149},". 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":2151,"children":2152},{},[2153,2158,2160,2166,2168,2174,2176,2182],{"type":21,"tag":180,"props":2154,"children":2155},{},[2156],{"type":26,"value":2157},"Dicke-state \u002F XY-mixer QAOA.",{"type":26,"value":2159}," The constraint-preserving alternative. A Dicke-state initialization (built with a small ancilla \"running count\" register that provably lands on exactly ",{"type":21,"tag":2080,"props":2161,"children":2163},{"className":2162},[],[2164],{"type":26,"value":2165},"|budget⟩",{"type":26,"value":2167},") combined with an XY-mixer (",{"type":21,"tag":2080,"props":2169,"children":2171},{"className":2170},[],[2172],{"type":26,"value":2173},"RXX",{"type":26,"value":2175},"\u002F",{"type":21,"tag":2080,"props":2177,"children":2179},{"className":2178},[],[2180],{"type":26,"value":2181},"RYY",{"type":26,"value":2183}," 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":2185,"children":2186},{},[2187],{"type":26,"value":2188},"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":49,"props":2190,"children":2192},{"id":2191},"the-chart-thats-the-actual-deliverable",[2193],{"type":26,"value":2194},"The chart that's the actual deliverable",{"type":21,"tag":22,"props":2196,"children":2197},{},[2198],{"type":26,"value":2199},"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":2201,"props":2202,"children":2203},"blockquote",{},[2204],{"type":21,"tag":22,"props":2205,"children":2206},{},[2207,2209,2215],{"type":26,"value":2208},"Run the same request against a real IBM backend and chart result quality vs. gate count as you increase ",{"type":21,"tag":2080,"props":2210,"children":2212},{"className":2211},[],[2213],{"type":26,"value":2214},"reps",{"type":26,"value":2216},". This is the \"signal vs. noise crossover\" chart that's the actual deliverable for a business-case pitch.",{"type":21,"tag":22,"props":2218,"children":2219},{},[2220,2222,2228,2230,2236,2237,2243],{"type":26,"value":2221},"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":2080,"props":2223,"children":2225},{"className":2224},[],[2226],{"type":26,"value":2227},"pct_of_optimal",{"type":26,"value":2229},": 100% means it matched classical exactly), against how much circuit you had to run to get there (",{"type":21,"tag":2080,"props":2231,"children":2233},{"className":2232},[],[2234],{"type":26,"value":2235},"circuit_depth",{"type":26,"value":38},{"type":21,"tag":2080,"props":2238,"children":2240},{"className":2239},[],[2241],{"type":26,"value":2242},"two_qubit_gates",{"type":26,"value":2244},", both reported alongside every result). Run it on the simulator first, then on real hardware, and watch where the lines cross, or don't.",{"type":21,"tag":49,"props":2246,"children":2248},{"id":2247},"building-the-case-step-by-step",[2249],{"type":26,"value":2250},"Building the case, step by step",{"type":21,"tag":22,"props":2252,"children":2253},{},[2254,2259,2261,2265,2267,2273],{"type":21,"tag":180,"props":2255,"children":2256},{},[2257],{"type":26,"value":2258},"1. Cap your problem size honestly.",{"type":26,"value":2260}," PortfolioQ's own README recommends 10-30 assets for anything run on real hardware, and explains why: current ",{"type":21,"tag":29,"props":2262,"children":2263},{"href":418},[2264],{"type":26,"value":421},{"type":26,"value":2266}," 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":2080,"props":2268,"children":2270},{"className":2269},[],[2271],{"type":26,"value":2272},"yfinance",{"type":26,"value":2274}," if you don't supply your own).",{"type":21,"tag":22,"props":2276,"children":2277},{},[2278,2283,2285,2291,2293,2299,2301,2307],{"type":21,"tag":180,"props":2279,"children":2280},{},[2281],{"type":26,"value":2282},"2. Establish the in-principle baseline on a simulator.",{"type":26,"value":2284}," Run ",{"type":21,"tag":2080,"props":2286,"children":2288},{"className":2287},[],[2289],{"type":26,"value":2290},"\u002Foptimize\u002Fcompare-all",{"type":26,"value":2292}," on ",{"type":21,"tag":2080,"props":2294,"children":2296},{"className":2295},[],[2297],{"type":26,"value":2298},"aer_simulator",{"type":26,"value":2300}," before touching real hardware. Check that ",{"type":21,"tag":2080,"props":2302,"children":2304},{"className":2303},[],[2305],{"type":26,"value":2306},"feasible_fraction",{"type":26,"value":2308}," 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":2310,"props":2311,"children":2315},"pre",{"className":2312,"code":2313,"language":2314,"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",[2316],{"type":21,"tag":2080,"props":2317,"children":2318},{"__ignoreMap":7},[2319,2331,2339,2401,2425,2447,2467,2488,2505],{"type":21,"tag":2320,"props":2321,"children":2324},"span",{"class":2322,"line":2323},"line",1,[2325],{"type":21,"tag":2320,"props":2326,"children":2328},{"style":2327},"--shiki-default:#E1E4E8",[2329],{"type":26,"value":2330},"POST \u002Foptimize\u002Fcompare-all\n",{"type":21,"tag":2320,"props":2332,"children":2333},{"class":2322,"line":150},[2334],{"type":21,"tag":2320,"props":2335,"children":2336},{"style":2327},[2337],{"type":26,"value":2338},"{\n",{"type":21,"tag":2320,"props":2340,"children":2342},{"class":2322,"line":2341},3,[2343,2349,2354,2360,2364,2369,2373,2378,2382,2387,2391,2396],{"type":21,"tag":2320,"props":2344,"children":2346},{"style":2345},"--shiki-default:#79B8FF",[2347],{"type":26,"value":2348},"  \"tickers\"",{"type":21,"tag":2320,"props":2350,"children":2351},{"style":2327},[2352],{"type":26,"value":2353},": [",{"type":21,"tag":2320,"props":2355,"children":2357},{"style":2356},"--shiki-default:#9ECBFF",[2358],{"type":26,"value":2359},"\"AAPL\"",{"type":21,"tag":2320,"props":2361,"children":2362},{"style":2327},[2363],{"type":26,"value":1315},{"type":21,"tag":2320,"props":2365,"children":2366},{"style":2356},[2367],{"type":26,"value":2368},"\"MSFT\"",{"type":21,"tag":2320,"props":2370,"children":2371},{"style":2327},[2372],{"type":26,"value":1315},{"type":21,"tag":2320,"props":2374,"children":2375},{"style":2356},[2376],{"type":26,"value":2377},"\"GOOGL\"",{"type":21,"tag":2320,"props":2379,"children":2380},{"style":2327},[2381],{"type":26,"value":1315},{"type":21,"tag":2320,"props":2383,"children":2384},{"style":2356},[2385],{"type":26,"value":2386},"\"AMZN\"",{"type":21,"tag":2320,"props":2388,"children":2389},{"style":2327},[2390],{"type":26,"value":1315},{"type":21,"tag":2320,"props":2392,"children":2393},{"style":2356},[2394],{"type":26,"value":2395},"\"NVDA\"",{"type":21,"tag":2320,"props":2397,"children":2398},{"style":2327},[2399],{"type":26,"value":2400},"],\n",{"type":21,"tag":2320,"props":2402,"children":2404},{"class":2322,"line":2403},4,[2405,2410,2415,2420],{"type":21,"tag":2320,"props":2406,"children":2407},{"style":2345},[2408],{"type":26,"value":2409},"  \"budget\"",{"type":21,"tag":2320,"props":2411,"children":2412},{"style":2327},[2413],{"type":26,"value":2414},": ",{"type":21,"tag":2320,"props":2416,"children":2417},{"style":2345},[2418],{"type":26,"value":2419},"2",{"type":21,"tag":2320,"props":2421,"children":2422},{"style":2327},[2423],{"type":26,"value":2424},",\n",{"type":21,"tag":2320,"props":2426,"children":2428},{"class":2322,"line":2427},5,[2429,2434,2438,2443],{"type":21,"tag":2320,"props":2430,"children":2431},{"style":2345},[2432],{"type":26,"value":2433},"  \"risk_factor\"",{"type":21,"tag":2320,"props":2435,"children":2436},{"style":2327},[2437],{"type":26,"value":2414},{"type":21,"tag":2320,"props":2439,"children":2440},{"style":2345},[2441],{"type":26,"value":2442},"0.5",{"type":21,"tag":2320,"props":2444,"children":2445},{"style":2327},[2446],{"type":26,"value":2424},{"type":21,"tag":2320,"props":2448,"children":2449},{"class":2322,"line":854},[2450,2455,2459,2463],{"type":21,"tag":2320,"props":2451,"children":2452},{"style":2345},[2453],{"type":26,"value":2454},"  \"reps\"",{"type":21,"tag":2320,"props":2456,"children":2457},{"style":2327},[2458],{"type":26,"value":2414},{"type":21,"tag":2320,"props":2460,"children":2461},{"style":2345},[2462],{"type":26,"value":2419},{"type":21,"tag":2320,"props":2464,"children":2465},{"style":2327},[2466],{"type":26,"value":2424},{"type":21,"tag":2320,"props":2468,"children":2469},{"class":2322,"line":171},[2470,2475,2479,2484],{"type":21,"tag":2320,"props":2471,"children":2472},{"style":2345},[2473],{"type":26,"value":2474},"  \"shots\"",{"type":21,"tag":2320,"props":2476,"children":2477},{"style":2327},[2478],{"type":26,"value":2414},{"type":21,"tag":2320,"props":2480,"children":2481},{"style":2345},[2482],{"type":26,"value":2483},"1024",{"type":21,"tag":2320,"props":2485,"children":2486},{"style":2327},[2487],{"type":26,"value":2424},{"type":21,"tag":2320,"props":2489,"children":2490},{"class":2322,"line":16},[2491,2496,2500],{"type":21,"tag":2320,"props":2492,"children":2493},{"style":2345},[2494],{"type":26,"value":2495},"  \"backend\"",{"type":21,"tag":2320,"props":2497,"children":2498},{"style":2327},[2499],{"type":26,"value":2414},{"type":21,"tag":2320,"props":2501,"children":2502},{"style":2356},[2503],{"type":26,"value":2504},"\"aer_simulator\"\n",{"type":21,"tag":2320,"props":2506,"children":2507},{"class":2322,"line":1370},[2508],{"type":21,"tag":2320,"props":2509,"children":2510},{"style":2327},[2511],{"type":26,"value":2512},"}\n",{"type":21,"tag":22,"props":2514,"children":2515},{},[2516,2527,2529,2535,2537,2543,2545,2550,2552,2557,2559,2565,2566,2571,2573,2578,2580,2585,2587,2593,2595,2601,2603,2609],{"type":21,"tag":180,"props":2517,"children":2518},{},[2519,2521,2526],{"type":26,"value":2520},"3. Move to real hardware and vary ",{"type":21,"tag":2080,"props":2522,"children":2524},{"className":2523},[],[2525],{"type":26,"value":2214},{"type":26,"value":802},{"type":26,"value":2528}," This is where the actual data comes from. Point ",{"type":21,"tag":2080,"props":2530,"children":2532},{"className":2531},[],[2533],{"type":26,"value":2534},"\"backend\"",{"type":26,"value":2536}," at a real device (",{"type":21,"tag":2080,"props":2538,"children":2540},{"className":2539},[],[2541],{"type":26,"value":2542},"\"ibm_torino\"",{"type":26,"value":2544},", for example. See our ",{"type":21,"tag":29,"props":2546,"children":2547},{"href":292},[2548],{"type":26,"value":2549},"IBM Quantum free tier guide",{"type":26,"value":2551}," if you don't have hardware access set up yet) and rerun the same comparison as you increase ",{"type":21,"tag":2080,"props":2553,"children":2555},{"className":2554},[],[2556],{"type":26,"value":2214},{"type":26,"value":2558},". ",{"type":21,"tag":2080,"props":2560,"children":2562},{"className":2561},[],[2563],{"type":26,"value":2564},"qaoa_xy_pct_of_optimal",{"type":26,"value":38},{"type":21,"tag":2080,"props":2567,"children":2569},{"className":2568},[],[2570],{"type":26,"value":2242},{"type":26,"value":2572}," climbing together across a handful of ",{"type":21,"tag":2080,"props":2574,"children":2576},{"className":2575},[],[2577],{"type":26,"value":2214},{"type":26,"value":2579}," values ",{"type":21,"tag":2054,"props":2581,"children":2582},{},[2583],{"type":26,"value":2584},"is",{"type":26,"value":2586}," the chart. Because each COBYLA iteration blocks on a real hardware job, use PortfolioQ's async ",{"type":21,"tag":2080,"props":2588,"children":2590},{"className":2589},[],[2591],{"type":26,"value":2592},"\u002Fsubmit",{"type":26,"value":2594}," + ",{"type":21,"tag":2080,"props":2596,"children":2598},{"className":2597},[],[2599],{"type":26,"value":2600},"\u002Fjobs\u002F{id}",{"type":26,"value":2602}," endpoints rather than the blocking ones. A ",{"type":21,"tag":2080,"props":2604,"children":2606},{"className":2605},[],[2607],{"type":26,"value":2608},"maxiter",{"type":26,"value":2610}," 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":2612,"children":2613},{},[2614,2619,2621,2626],{"type":21,"tag":180,"props":2615,"children":2616},{},[2617],{"type":26,"value":2618},"4. Report the noise honestly, including where it breaks the guarantee.",{"type":26,"value":2620}," Expect ",{"type":21,"tag":2080,"props":2622,"children":2624},{"className":2623},[],[2625],{"type":26,"value":2306},{"type":26,"value":2627}," 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":2629,"children":2630},{},[2631,2636],{"type":21,"tag":180,"props":2632,"children":2633},{},[2634],{"type":26,"value":2635},"5. Write the recommendation the data supports.",{"type":26,"value":2637}," 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 fast, 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":49,"props":2639,"children":2641},{"id":2640},"what-this-template-generalizes-to",[2642],{"type":26,"value":2643},"What this template generalizes to",{"type":21,"tag":22,"props":2645,"children":2646},{},[2647,2649,2654],{"type":26,"value":2648},"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":29,"props":2650,"children":2651},{"href":2035},[2652],{"type":26,"value":2653},"QAOA tutorial",{"type":26,"value":2655},". 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":2657,"children":2658},{},[2659,2661,2667,2669,2675,2677,2683,2685,2691],{"type":26,"value":2660},"If you want to see this pattern extended, PortfolioQ's ",{"type":21,"tag":29,"props":2662,"children":2664},{"href":2046,"rel":2663},[33],[2665],{"type":26,"value":2666},"source on GitHub",{"type":26,"value":2668}," is small enough to read end to end in an afternoon: ",{"type":21,"tag":2080,"props":2670,"children":2672},{"className":2671},[],[2673],{"type":26,"value":2674},"portfolio.py",{"type":26,"value":2676}," for the QUBO construction, ",{"type":21,"tag":2080,"props":2678,"children":2680},{"className":2679},[],[2681],{"type":26,"value":2682},"xy_mixer_solver.py",{"type":26,"value":2684}," for the constraint-preserving ansatz, and ",{"type":21,"tag":2080,"props":2686,"children":2688},{"className":2687},[],[2689],{"type":26,"value":2690},"main.py",{"type":26,"value":2692}," 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":2694,"props":2695,"children":2696},"style",{},[2697],{"type":26,"value":2698},"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":150,"depth":150,"links":2700},[2701,2702,2703,2704,2705],{"id":2063,"depth":150,"text":2066},{"id":2106,"depth":150,"text":2109},{"id":2191,"depth":150,"text":2194},{"id":2247,"depth":150,"text":2250},{"id":2640,"depth":150,"text":2643},"content:blog:quantum-portfolio-optimization-business-case.md","blog\u002Fquantum-portfolio-optimization-business-case.md","blog\u002Fquantum-portfolio-optimization-business-case",{"_path":2710,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":2711,"description":2712,"date":10,"author":11,"tags":2713,"readingTime":171,"body":2714,"_type":156,"_id":2858,"_source":158,"_file":2859,"_stem":2860,"_extension":161},"\u002Fblog\u002Fsaxon-q-room-temperature-diamond-quantum-computer","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.",[13,15],{"type":18,"children":2715,"toc":2852},[2716,2737,2742,2748,2762,2767,2773,2785,2790,2796,2808,2813,2819,2831,2847],{"type":21,"tag":22,"props":2717,"children":2718},{},[2719,2721,2727,2728,2735],{"type":26,"value":2720},"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":29,"props":2722,"children":2725},{"href":2723,"rel":2724},"https:\u002F\u002Fthequantuminsider.com\u002F2026\u002F07\u002F21\u002Fsaxon-q-diamond-nv-center-quantum-computers\u002F",[33],[2726],{"type":26,"value":36},{"type":26,"value":38},{"type":21,"tag":29,"props":2729,"children":2732},{"href":2730,"rel":2731},"https:\u002F\u002Fwww.hpcwire.com\u002Foff-the-wire\u002Fsaxon-q-brings-room-temperature-diamond-quantum-computing-to-commercial-market\u002F",[33],[2733],{"type":26,"value":2734},"HPCwire",{"type":26,"value":2736},". 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":2738,"children":2739},{},[2740],{"type":26,"value":2741},"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":49,"props":2743,"children":2745},{"id":2744},"what-saxon-q-built",[2746],{"type":26,"value":2747},"What SAXON Q built",{"type":21,"tag":22,"props":2749,"children":2750},{},[2751,2753,2760],{"type":26,"value":2752},"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":29,"props":2754,"children":2757},{"href":2755,"rel":2756},"https:\u002F\u002Fwww.saxonq.com\u002Fen\u002Funternehmen\u002F",[33],[2758],{"type":26,"value":2759},"the company's own site",{"type":26,"value":2761},", alongside co-founders Jan Meijer (CTO) and Bernd Burchard (CIPO).",{"type":21,"tag":22,"props":2763,"children":2764},{},[2765],{"type":26,"value":2766},"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":49,"props":2768,"children":2770},{"id":2769},"what-an-nv-center-is",[2771],{"type":26,"value":2772},"What an NV center is",{"type":21,"tag":22,"props":2774,"children":2775},{},[2776,2778,2783],{"type":26,"value":2777},"A nitrogen-vacancy center is a specific defect in a diamond's carbon lattice: a nitrogen atom sits next 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":29,"props":2779,"children":2780},{"href":1200},[2781],{"type":26,"value":2782},"qubit",{"type":26,"value":2784}," 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":2786,"children":2787},{},[2788],{"type":26,"value":2789},"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":49,"props":2791,"children":2793},{"id":2792},"what-to-treat-as-unverified",[2794],{"type":26,"value":2795},"What to treat as unverified",{"type":21,"tag":22,"props":2797,"children":2798},{},[2799,2801,2806],{"type":26,"value":2800},"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":29,"props":2802,"children":2803},{"href":1023},[2804],{"type":26,"value":2805},"self-operating silicon processor",{"type":26,"value":2807}," 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":2809,"children":2810},{},[2811],{"type":26,"value":2812},"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":49,"props":2814,"children":2816},{"id":2815},"where-room-temperature-qubits-fit-against-everything-else",[2817],{"type":26,"value":2818},"Where room-temperature qubits fit against everything else",{"type":21,"tag":22,"props":2820,"children":2821},{},[2822,2824,2829],{"type":26,"value":2823},"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":29,"props":2825,"children":2826},{"href":714},[2827],{"type":26,"value":2828},"independently scrutinized results",{"type":26,"value":2830}," that NV-center systems do not yet have.",{"type":21,"tag":22,"props":2832,"children":2833},{},[2834,2836,2840,2841,2845],{"type":26,"value":2835},"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":29,"props":2837,"children":2838},{"href":249},[2839],{"type":26,"value":1112},{"type":26,"value":38},{"type":21,"tag":29,"props":2842,"children":2843},{"href":307},[2844],{"type":26,"value":895},{"type":26,"value":2846}," track how each modality trades those priorities differently.",{"type":21,"tag":22,"props":2848,"children":2849},{},[2850],{"type":26,"value":2851},"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":150,"depth":150,"links":2853},[2854,2855,2856,2857],{"id":2744,"depth":150,"text":2747},{"id":2769,"depth":150,"text":2772},{"id":2792,"depth":150,"text":2795},{"id":2815,"depth":150,"text":2818},"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":1097,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":2862,"description":2863,"date":10,"author":11,"tags":2864,"readingTime":854,"body":2866,"_type":156,"_id":2948,"_source":158,"_file":2949,"_stem":2950,"_extension":161},"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.",[13,15,2865],"Fundamentals",{"type":18,"children":2867,"toc":2943},[2868,2873,2879,2884,2903,2909,2921,2926,2932],{"type":21,"tag":22,"props":2869,"children":2870},{},[2871],{"type":26,"value":2872},"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 next 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":49,"props":2874,"children":2876},{"id":2875},"what-a-phononic-link-is",[2877],{"type":26,"value":2878},"What a phononic link is",{"type":21,"tag":22,"props":2880,"children":2881},{},[2882],{"type":26,"value":2883},"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":2885,"children":2886},{},[2887,2889,2894,2896,2901],{"type":26,"value":2888},"That distance matters. Nearest-neighbor-only connectivity is exactly the constraint that shapes which ",{"type":21,"tag":29,"props":2890,"children":2891},{"href":65},[2892],{"type":26,"value":2893},"error-correcting codes",{"type":26,"value":2895}," a chip even attempts. Our ",{"type":21,"tag":29,"props":2897,"children":2898},{"href":580},[2899],{"type":26,"value":2900},"companion piece on Quantinuum's Helios",{"type":26,"value":2902}," covers why trapped-ion hardware's all-to-all connectivity opens up error-correction codes that a nearest-neighbor superconducting chip cannot use efficiently. A phononic link aimed at chip-scale, non-local connectivity is targeting the same structural limitation from the silicon side.",{"type":21,"tag":49,"props":2904,"children":2906},{"id":2905},"read-the-maturity-level-accurately",[2907],{"type":26,"value":2908},"Read the maturity level accurately",{"type":21,"tag":22,"props":2910,"children":2911},{},[2912,2914,2919],{"type":26,"value":2913},"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":29,"props":2915,"children":2916},{"href":1023},[2917],{"type":26,"value":2918},"HRL's self-operating silicon processor",{"type":26,"value":2920},", 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":2922,"children":2923},{},[2924],{"type":26,"value":2925},"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":49,"props":2927,"children":2929},{"id":2928},"why-the-target-size-is-the-real-headline",[2930],{"type":26,"value":2931},"Why the target size is the real headline",{"type":21,"tag":22,"props":2933,"children":2934},{},[2935,2937,2941],{"type":26,"value":2936},"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 problem 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 result earns a place next to HRL's on the list of things that shipped. See our ",{"type":21,"tag":29,"props":2938,"children":2939},{"href":249},[2940],{"type":26,"value":1112},{"type":26,"value":2942}," for how silicon-based approaches compare to the rest of the field.",{"title":7,"searchDepth":150,"depth":150,"links":2944},[2945,2946,2947],{"id":2875,"depth":150,"text":2878},{"id":2905,"depth":150,"text":2908},{"id":2928,"depth":150,"text":2931},"content:blog:warwick-quantum-phononic-links.md","blog\u002Fwarwick-quantum-phononic-links.md","blog\u002Fwarwick-quantum-phononic-links",{"_path":2952,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":2953,"description":2954,"date":10,"author":11,"tags":2955,"readingTime":171,"body":2956,"_type":156,"_id":3056,"_source":158,"_file":3057,"_stem":3058,"_extension":161},"\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.",[13,15,170],{"type":18,"children":2957,"toc":3051},[2958,2978,2989,2995,3007,3012,3018,3023,3028,3034,3039],{"type":21,"tag":22,"props":2959,"children":2960},{},[2961,2963,2969,2970,2976],{"type":26,"value":2962},"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":29,"props":2964,"children":2967},{"href":2965,"rel":2966},"https:\u002F\u002Fthequantuminsider.com\u002F2026\u002F07\u002F28\u002Fzuriq-raises-25-5-million-2d-trapped-ion-quantum-processors\u002F",[33],[2968],{"type":26,"value":36},{"type":26,"value":38},{"type":21,"tag":29,"props":2971,"children":2974},{"href":2972,"rel":2973},"https:\u002F\u002Fsiliconangle.com\u002F2026\u002F07\u002F28\u002Fquantum-computing-startup-zuriq-gets-25-5m-scale-2d-trapped-ion-processor-design\u002F",[33],[2975],{"type":26,"value":1329},{"type":26,"value":2977},". 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":2979,"children":2980},{},[2981,2983,2987],{"type":26,"value":2982},"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":29,"props":2984,"children":2985},{"href":249},[2986],{"type":26,"value":1975},{"type":26,"value":2988}," quantum computer, a linear chain of ions connected through junctions, runs into a scaling wall that a two-dimensional layout avoids.",{"type":21,"tag":49,"props":2990,"children":2992},{"id":2991},"why-linear-chains-are-the-default-and-why-they-cap-out",[2993],{"type":26,"value":2994},"Why linear chains are the default and why they cap out",{"type":21,"tag":22,"props":2996,"children":2997},{},[2998,3000,3005],{"type":26,"value":2999},"IonQ and Quantinuum, ",{"type":21,"tag":29,"props":3001,"children":3002},{"href":1589},[3003],{"type":26,"value":3004},"the two companies furthest along commercially",{"type":26,"value":3006}," with trapped ions, both build on one-dimensional ion chains. Ions sit in a line inside a trap, and moving ions between different 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":3008,"children":3009},{},[3010],{"type":26,"value":3011},"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":49,"props":3013,"children":3015},{"id":3014},"what-has-been-built-so-far",[3016],{"type":26,"value":3017},"What has been built so far",{"type":21,"tag":22,"props":3019,"children":3020},{},[3021],{"type":26,"value":3022},"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":3024,"children":3025},{},[3026],{"type":26,"value":3027},"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":49,"props":3029,"children":3031},{"id":3030},"what-this-does-and-does-not-tell-you",[3032],{"type":26,"value":3033},"What this does and does not tell you",{"type":21,"tag":22,"props":3035,"children":3036},{},[3037],{"type":26,"value":3038},"This is a seed-stage company with a nine-qubit demonstrator, not a commercial system. The claims about how the architecture scales are ZuriQ's own projections, not measured results at any meaningful qubit count. What makes it worth tracking rather than dismissing is the specificity: 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":3040,"children":3041},{},[3042,3044,3049],{"type":26,"value":3043},"If ZuriQ's 2D architecture scales the way it projects, it would address one of the structural bottlenecks in ",{"type":21,"tag":29,"props":3045,"children":3046},{"href":900},[3047],{"type":26,"value":3048},"trapped-ion scaling",{"type":26,"value":3050}," 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":150,"depth":150,"links":3052},[3053,3054,3055],{"id":2991,"depth":150,"text":2994},{"id":3014,"depth":150,"text":3017},{"id":3030,"depth":150,"text":3033},"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":3060,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":3061,"description":3062,"date":3063,"author":11,"tags":3064,"readingTime":16,"body":3066,"_type":156,"_id":3982,"_source":158,"_file":3983,"_stem":3984,"_extension":161},"\u002Fes\u002Fblog\u002Fquantum-benchmarking-eo-14413","Lo que la nueva orden ejecutiva sobre computación cuántica revela de los problemas reales del campo","Lee la EO 14413 como un documento técnico en lugar de político y se convierte en una lista franca de lo que la computación cuántica todavía no ha resuelto — empezando por el hecho de que nadie sabe medir de forma fiable qué tan buena es una computadora cuántica.","2026-07-18",[15,13,3065],"Performance",{"type":18,"children":3067,"toc":3973},[3068,3080,3085,3090,3096,3101,3112,3117,3176,3181,3186,3690,3714,3720,3725,3730,3751,3763,3769,3781,3786,3811,3816,3822,3827,3832,3853,3859,3864,3869,3890,3896,3908,3913,3919,3924,3952,3957,3969],{"type":21,"tag":22,"props":3069,"children":3070},{},[3071,3073,3078],{"type":26,"value":3072},"El 22 de junio de 2026 se firmó la Executive Order 14413 — ",{"type":21,"tag":2054,"props":3074,"children":3075},{},[3076],{"type":26,"value":3077},"Ushering in the Next Frontier of Quantum Innovation",{"type":26,"value":3079},". La cobertura mediática se centró casi por completo en la política.",{"type":21,"tag":22,"props":3081,"children":3082},{},[3083],{"type":26,"value":3084},"Es una lástima, porque la lectura más interesante es la técnica. Documentos de política como este se redactan con una fuerte aportación de quienes dirigen programas cuánticos, y lo que piden constituye un mapa bastante franco de lo que el campo todavía no puede hacer. Leída así, la EO 14413 es menos un anuncio que una lista de problemas.",{"type":21,"tag":22,"props":3086,"children":3087},{},[3088],{"type":26,"value":3089},"Esto es lo que más destaca.",{"type":21,"tag":49,"props":3091,"children":3093},{"id":3092},"nadie-sabe-medir-de-forma-fiable-qué-tan-buena-es-una-computadora-cuántica",[3094],{"type":26,"value":3095},"Nadie sabe medir de forma fiable qué tan buena es una computadora cuántica",{"type":21,"tag":22,"props":3097,"children":3098},{},[3099],{"type":26,"value":3100},"La línea más discretamente notable de la orden encarga al Department of Energy que establezca, en un plazo de 180 días, \"un centro nacional para desarrollar las herramientas y capacidades necesarias para evaluar con precisión el rendimiento de los sistemas de computación cuántica\".",{"type":21,"tag":22,"props":3102,"children":3103},{},[3104,3106,3111],{"type":26,"value":3105},"Detente un momento en eso. Unos cuarenta y cinco años después de que Feynman propusiera las computadoras cuánticas y siete años después de la primera afirmación de supremacía cuántica, un gobierno crea una institución porque no tenemos una forma fiable de responder a ",{"type":21,"tag":2054,"props":3107,"children":3108},{},[3109],{"type":26,"value":3110},"\"¿es buena esta computadora cuántica?\"",{"type":26,"value":802},{"type":21,"tag":22,"props":3113,"children":3114},{},[3115],{"type":26,"value":3116},"Esto no es palabrería burocrática. Es real, y cualquiera que haya intentado comparar dos QPU se ha topado con ello. El problema es que cada fabricante reporta cifras distintas:",{"type":21,"tag":3118,"props":3119,"children":3120},"ul",{},[3121,3132,3146,3156,3166],{"type":21,"tag":3122,"props":3123,"children":3124},"li",{},[3125,3130],{"type":21,"tag":180,"props":3126,"children":3127},{},[3128],{"type":26,"value":3129},"El número de cúbits",{"type":26,"value":3131}," por sí solo es casi irrelevante. Cien cúbits malos pueden ser peores que veinte buenos para trabajo real.",{"type":21,"tag":3122,"props":3133,"children":3134},{},[3135,3144],{"type":21,"tag":180,"props":3136,"children":3137},{},[3138],{"type":21,"tag":29,"props":3139,"children":3141},{"href":3140},"\u002Fglossary\u002Fquantum-volume",[3142],{"type":26,"value":3143},"Quantum Volume",{"type":26,"value":3145}," agrupa número de cúbits, conectividad y tasas de error en una sola cifra — pero se satura, y dice poco sobre cómo se comporta un dispositivo con los circuitos concretos que te importan.",{"type":21,"tag":3122,"props":3147,"children":3148},{},[3149,3154],{"type":21,"tag":180,"props":3150,"children":3151},{},[3152],{"type":26,"value":3153},"La fidelidad de puerta",{"type":26,"value":3155}," suele citarse para puertas aisladas de uno y dos cúbits, lo que favorece sistemáticamente al chip. Los errores se acumulan de forma distinta cuando las puertas se ejecutan en paralelo, y la diafonía no aparece en la cifra titular.",{"type":21,"tag":3122,"props":3157,"children":3158},{},[3159,3164],{"type":21,"tag":180,"props":3160,"children":3161},{},[3162],{"type":26,"value":3163},"CLOPS",{"type":26,"value":3165}," y otras métricas de rendimiento similares miden velocidad, no exactitud — una máquina rápida que devuelve ruido no sirve de nada.",{"type":21,"tag":3122,"props":3167,"children":3168},{},[3169,3174],{"type":21,"tag":180,"props":3170,"children":3171},{},[3172],{"type":26,"value":3173},"Los \"cúbits algorítmicos\"",{"type":26,"value":3175}," y otras métricas definidas por el fabricante no son comparables entre fabricantes, que con frecuencia es justamente el objetivo.",{"type":21,"tag":22,"props":3177,"children":3178},{},[3179],{"type":26,"value":3180},"La orden también pide un mecanismo para compartir información entre agencias \"para mejorar la capacidad del Gobierno de evaluar las capacidades comerciales de computación cuántica\" — que es una forma cortés de decir que actualmente resulta difícil verificar de forma independiente las afirmaciones de marketing de los fabricantes.",{"type":21,"tag":22,"props":3182,"children":3183},{},[3184],{"type":26,"value":3185},"Si estás evaluando hardware por tu cuenta, la lección práctica es dejar de confiar en cualquier cifra aislada y hacer benchmarking contra tu propia carga de trabajo. Puedes consultar directamente las propiedades reales del dispositivo en lugar de fiarte de una nota de prensa:",{"type":21,"tag":2310,"props":3187,"children":3191},{"className":3188,"code":3189,"language":3190,"meta":7,"style":7},"language-python shiki shiki-themes github-dark","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","python",[3192],{"type":21,"tag":2080,"props":3193,"children":3194},{"__ignoreMap":7},[3195,3219,3228,3246,3301,3308,3355,3396,3437,3444,3454,3472,3514,3562,3604],{"type":21,"tag":2320,"props":3196,"children":3197},{"class":2322,"line":2323},[3198,3204,3209,3214],{"type":21,"tag":2320,"props":3199,"children":3201},{"style":3200},"--shiki-default:#F97583",[3202],{"type":26,"value":3203},"from",{"type":21,"tag":2320,"props":3205,"children":3206},{"style":2327},[3207],{"type":26,"value":3208}," qiskit_ibm_runtime ",{"type":21,"tag":2320,"props":3210,"children":3211},{"style":3200},[3212],{"type":26,"value":3213},"import",{"type":21,"tag":2320,"props":3215,"children":3216},{"style":2327},[3217],{"type":26,"value":3218}," QiskitRuntimeService\n",{"type":21,"tag":2320,"props":3220,"children":3221},{"class":2322,"line":150},[3222],{"type":21,"tag":2320,"props":3223,"children":3225},{"emptyLinePlaceholder":3224},true,[3226],{"type":26,"value":3227},"\n",{"type":21,"tag":2320,"props":3229,"children":3230},{"class":2322,"line":2341},[3231,3236,3241],{"type":21,"tag":2320,"props":3232,"children":3233},{"style":2327},[3234],{"type":26,"value":3235},"service ",{"type":21,"tag":2320,"props":3237,"children":3238},{"style":3200},[3239],{"type":26,"value":3240},"=",{"type":21,"tag":2320,"props":3242,"children":3243},{"style":2327},[3244],{"type":26,"value":3245}," QiskitRuntimeService()\n",{"type":21,"tag":2320,"props":3247,"children":3248},{"class":2322,"line":2403},[3249,3254,3258,3263,3269,3273,3278,3282,3287,3291,3296],{"type":21,"tag":2320,"props":3250,"children":3251},{"style":2327},[3252],{"type":26,"value":3253},"backend ",{"type":21,"tag":2320,"props":3255,"children":3256},{"style":3200},[3257],{"type":26,"value":3240},{"type":21,"tag":2320,"props":3259,"children":3260},{"style":2327},[3261],{"type":26,"value":3262}," service.least_busy(",{"type":21,"tag":2320,"props":3264,"children":3266},{"style":3265},"--shiki-default:#FFAB70",[3267],{"type":26,"value":3268},"operational",{"type":21,"tag":2320,"props":3270,"children":3271},{"style":3200},[3272],{"type":26,"value":3240},{"type":21,"tag":2320,"props":3274,"children":3275},{"style":2345},[3276],{"type":26,"value":3277},"True",{"type":21,"tag":2320,"props":3279,"children":3280},{"style":2327},[3281],{"type":26,"value":1315},{"type":21,"tag":2320,"props":3283,"children":3284},{"style":3265},[3285],{"type":26,"value":3286},"simulator",{"type":21,"tag":2320,"props":3288,"children":3289},{"style":3200},[3290],{"type":26,"value":3240},{"type":21,"tag":2320,"props":3292,"children":3293},{"style":2345},[3294],{"type":26,"value":3295},"False",{"type":21,"tag":2320,"props":3297,"children":3298},{"style":2327},[3299],{"type":26,"value":3300},")\n",{"type":21,"tag":2320,"props":3302,"children":3303},{"class":2322,"line":2427},[3304],{"type":21,"tag":2320,"props":3305,"children":3306},{"emptyLinePlaceholder":3224},[3307],{"type":26,"value":3227},{"type":21,"tag":2320,"props":3309,"children":3310},{"class":2322,"line":854},[3311,3316,3321,3326,3331,3336,3341,3346,3351],{"type":21,"tag":2320,"props":3312,"children":3313},{"style":2345},[3314],{"type":26,"value":3315},"print",{"type":21,"tag":2320,"props":3317,"children":3318},{"style":2327},[3319],{"type":26,"value":3320},"(",{"type":21,"tag":2320,"props":3322,"children":3323},{"style":3200},[3324],{"type":26,"value":3325},"f",{"type":21,"tag":2320,"props":3327,"children":3328},{"style":2356},[3329],{"type":26,"value":3330},"\"Backend:  ",{"type":21,"tag":2320,"props":3332,"children":3333},{"style":2345},[3334],{"type":26,"value":3335},"{",{"type":21,"tag":2320,"props":3337,"children":3338},{"style":2327},[3339],{"type":26,"value":3340},"backend.name",{"type":21,"tag":2320,"props":3342,"children":3343},{"style":2345},[3344],{"type":26,"value":3345},"}",{"type":21,"tag":2320,"props":3347,"children":3348},{"style":2356},[3349],{"type":26,"value":3350},"\"",{"type":21,"tag":2320,"props":3352,"children":3353},{"style":2327},[3354],{"type":26,"value":3300},{"type":21,"tag":2320,"props":3356,"children":3357},{"class":2322,"line":171},[3358,3362,3366,3370,3375,3379,3384,3388,3392],{"type":21,"tag":2320,"props":3359,"children":3360},{"style":2345},[3361],{"type":26,"value":3315},{"type":21,"tag":2320,"props":3363,"children":3364},{"style":2327},[3365],{"type":26,"value":3320},{"type":21,"tag":2320,"props":3367,"children":3368},{"style":3200},[3369],{"type":26,"value":3325},{"type":21,"tag":2320,"props":3371,"children":3372},{"style":2356},[3373],{"type":26,"value":3374},"\"Qubits:   ",{"type":21,"tag":2320,"props":3376,"children":3377},{"style":2345},[3378],{"type":26,"value":3335},{"type":21,"tag":2320,"props":3380,"children":3381},{"style":2327},[3382],{"type":26,"value":3383},"backend.num_qubits",{"type":21,"tag":2320,"props":3385,"children":3386},{"style":2345},[3387],{"type":26,"value":3345},{"type":21,"tag":2320,"props":3389,"children":3390},{"style":2356},[3391],{"type":26,"value":3350},{"type":21,"tag":2320,"props":3393,"children":3394},{"style":2327},[3395],{"type":26,"value":3300},{"type":21,"tag":2320,"props":3397,"children":3398},{"class":2322,"line":16},[3399,3403,3407,3411,3416,3420,3425,3429,3433],{"type":21,"tag":2320,"props":3400,"children":3401},{"style":2345},[3402],{"type":26,"value":3315},{"type":21,"tag":2320,"props":3404,"children":3405},{"style":2327},[3406],{"type":26,"value":3320},{"type":21,"tag":2320,"props":3408,"children":3409},{"style":3200},[3410],{"type":26,"value":3325},{"type":21,"tag":2320,"props":3412,"children":3413},{"style":2356},[3414],{"type":26,"value":3415},"\"Basis:    ",{"type":21,"tag":2320,"props":3417,"children":3418},{"style":2345},[3419],{"type":26,"value":3335},{"type":21,"tag":2320,"props":3421,"children":3422},{"style":2327},[3423],{"type":26,"value":3424},"backend.basis_gates",{"type":21,"tag":2320,"props":3426,"children":3427},{"style":2345},[3428],{"type":26,"value":3345},{"type":21,"tag":2320,"props":3430,"children":3431},{"style":2356},[3432],{"type":26,"value":3350},{"type":21,"tag":2320,"props":3434,"children":3435},{"style":2327},[3436],{"type":26,"value":3300},{"type":21,"tag":2320,"props":3438,"children":3439},{"class":2322,"line":1370},[3440],{"type":21,"tag":2320,"props":3441,"children":3442},{"emptyLinePlaceholder":3224},[3443],{"type":26,"value":3227},{"type":21,"tag":2320,"props":3445,"children":3447},{"class":2322,"line":3446},10,[3448],{"type":21,"tag":2320,"props":3449,"children":3451},{"style":3450},"--shiki-default:#6A737D",[3452],{"type":26,"value":3453},"# Per-qubit error rates vary enormously across a single chip\n",{"type":21,"tag":2320,"props":3455,"children":3457},{"class":2322,"line":3456},11,[3458,3463,3467],{"type":21,"tag":2320,"props":3459,"children":3460},{"style":2327},[3461],{"type":26,"value":3462},"props ",{"type":21,"tag":2320,"props":3464,"children":3465},{"style":3200},[3466],{"type":26,"value":3240},{"type":21,"tag":2320,"props":3468,"children":3469},{"style":2327},[3470],{"type":26,"value":3471}," backend.properties()\n",{"type":21,"tag":2320,"props":3473,"children":3474},{"class":2322,"line":474},[3475,3480,3484,3489,3494,3499,3504,3509],{"type":21,"tag":2320,"props":3476,"children":3477},{"style":2327},[3478],{"type":26,"value":3479},"errors ",{"type":21,"tag":2320,"props":3481,"children":3482},{"style":3200},[3483],{"type":26,"value":3240},{"type":21,"tag":2320,"props":3485,"children":3486},{"style":2327},[3487],{"type":26,"value":3488}," [(q, props.readout_error(q)) ",{"type":21,"tag":2320,"props":3490,"children":3491},{"style":3200},[3492],{"type":26,"value":3493},"for",{"type":21,"tag":2320,"props":3495,"children":3496},{"style":2327},[3497],{"type":26,"value":3498}," q ",{"type":21,"tag":2320,"props":3500,"children":3501},{"style":3200},[3502],{"type":26,"value":3503},"in",{"type":21,"tag":2320,"props":3505,"children":3506},{"style":2345},[3507],{"type":26,"value":3508}," range",{"type":21,"tag":2320,"props":3510,"children":3511},{"style":2327},[3512],{"type":26,"value":3513},"(backend.num_qubits)]\n",{"type":21,"tag":2320,"props":3515,"children":3517},{"class":2322,"line":3516},13,[3518,3523,3527,3532,3537,3542,3547,3552,3557],{"type":21,"tag":2320,"props":3519,"children":3520},{"style":2327},[3521],{"type":26,"value":3522},"worst ",{"type":21,"tag":2320,"props":3524,"children":3525},{"style":3200},[3526],{"type":26,"value":3240},{"type":21,"tag":2320,"props":3528,"children":3529},{"style":2345},[3530],{"type":26,"value":3531}," max",{"type":21,"tag":2320,"props":3533,"children":3534},{"style":2327},[3535],{"type":26,"value":3536},"(errors, ",{"type":21,"tag":2320,"props":3538,"children":3539},{"style":3265},[3540],{"type":26,"value":3541},"key",{"type":21,"tag":2320,"props":3543,"children":3544},{"style":3200},[3545],{"type":26,"value":3546},"=lambda",{"type":21,"tag":2320,"props":3548,"children":3549},{"style":2327},[3550],{"type":26,"value":3551}," x: x[",{"type":21,"tag":2320,"props":3553,"children":3554},{"style":2345},[3555],{"type":26,"value":3556},"1",{"type":21,"tag":2320,"props":3558,"children":3559},{"style":2327},[3560],{"type":26,"value":3561},"])\n",{"type":21,"tag":2320,"props":3563,"children":3565},{"class":2322,"line":3564},14,[3566,3571,3575,3580,3584,3588,3592,3596,3600],{"type":21,"tag":2320,"props":3567,"children":3568},{"style":2327},[3569],{"type":26,"value":3570},"best ",{"type":21,"tag":2320,"props":3572,"children":3573},{"style":3200},[3574],{"type":26,"value":3240},{"type":21,"tag":2320,"props":3576,"children":3577},{"style":2345},[3578],{"type":26,"value":3579}," min",{"type":21,"tag":2320,"props":3581,"children":3582},{"style":2327},[3583],{"type":26,"value":3536},{"type":21,"tag":2320,"props":3585,"children":3586},{"style":3265},[3587],{"type":26,"value":3541},{"type":21,"tag":2320,"props":3589,"children":3590},{"style":3200},[3591],{"type":26,"value":3546},{"type":21,"tag":2320,"props":3593,"children":3594},{"style":2327},[3595],{"type":26,"value":3551},{"type":21,"tag":2320,"props":3597,"children":3598},{"style":2345},[3599],{"type":26,"value":3556},{"type":21,"tag":2320,"props":3601,"children":3602},{"style":2327},[3603],{"type":26,"value":3561},{"type":21,"tag":2320,"props":3605,"children":3607},{"class":2322,"line":3606},15,[3608,3612,3616,3620,3625,3629,3634,3638,3643,3648,3652,3657,3661,3666,3670,3674,3678,3682,3686],{"type":21,"tag":2320,"props":3609,"children":3610},{"style":2345},[3611],{"type":26,"value":3315},{"type":21,"tag":2320,"props":3613,"children":3614},{"style":2327},[3615],{"type":26,"value":3320},{"type":21,"tag":2320,"props":3617,"children":3618},{"style":3200},[3619],{"type":26,"value":3325},{"type":21,"tag":2320,"props":3621,"children":3622},{"style":2356},[3623],{"type":26,"value":3624},"\"Readout error — best qubit: ",{"type":21,"tag":2320,"props":3626,"children":3627},{"style":2345},[3628],{"type":26,"value":3335},{"type":21,"tag":2320,"props":3630,"children":3631},{"style":2327},[3632],{"type":26,"value":3633},"best[",{"type":21,"tag":2320,"props":3635,"children":3636},{"style":2345},[3637],{"type":26,"value":3556},{"type":21,"tag":2320,"props":3639,"children":3640},{"style":2327},[3641],{"type":26,"value":3642},"]",{"type":21,"tag":2320,"props":3644,"children":3645},{"style":3200},[3646],{"type":26,"value":3647},":.4f",{"type":21,"tag":2320,"props":3649,"children":3650},{"style":2345},[3651],{"type":26,"value":3345},{"type":21,"tag":2320,"props":3653,"children":3654},{"style":2356},[3655],{"type":26,"value":3656},", worst: ",{"type":21,"tag":2320,"props":3658,"children":3659},{"style":2345},[3660],{"type":26,"value":3335},{"type":21,"tag":2320,"props":3662,"children":3663},{"style":2327},[3664],{"type":26,"value":3665},"worst[",{"type":21,"tag":2320,"props":3667,"children":3668},{"style":2345},[3669],{"type":26,"value":3556},{"type":21,"tag":2320,"props":3671,"children":3672},{"style":2327},[3673],{"type":26,"value":3642},{"type":21,"tag":2320,"props":3675,"children":3676},{"style":3200},[3677],{"type":26,"value":3647},{"type":21,"tag":2320,"props":3679,"children":3680},{"style":2345},[3681],{"type":26,"value":3345},{"type":21,"tag":2320,"props":3683,"children":3684},{"style":2356},[3685],{"type":26,"value":3350},{"type":21,"tag":2320,"props":3687,"children":3688},{"style":2327},[3689],{"type":26,"value":3300},{"type":21,"tag":22,"props":3691,"children":3692},{},[3693,3695,3700,3702,3706,3708,3712],{"type":26,"value":3694},"Ejecuta eso en casi cualquier dispositivo actual y verás que la diferencia entre el mejor y el peor cúbit del ",{"type":21,"tag":2054,"props":3696,"children":3697},{},[3698],{"type":26,"value":3699},"mismo chip",{"type":26,"value":3701}," suele ser de un factor de cinco o más. Esa variación es invisible en cualquier estadística resumida, y es precisamente por lo que la transpilación y la selección de cúbits importan tanto. Nuestra ",{"type":21,"tag":29,"props":3703,"children":3704},{"href":257},[3705],{"type":26,"value":731},{"type":26,"value":3707}," y la ",{"type":21,"tag":29,"props":3709,"children":3710},{"href":249},[3711],{"type":26,"value":724},{"type":26,"value":3713}," profundizan en cómo elegir backends.",{"type":21,"tag":49,"props":3715,"children":3717},{"id":3716},"el-campo-no-ha-elegido-una-tecnología-de-cúbits-ganadora",[3718],{"type":26,"value":3719},"El campo no ha elegido una tecnología de cúbits ganadora",{"type":21,"tag":22,"props":3721,"children":3722},{},[3723],{"type":26,"value":3724},"Algo llamativo por su ausencia: la orden nunca nombra una modalidad de cúbit. Ninguna preferencia por circuitos superconductores, iones atrapados, fotónica, átomos neutros o cúbits de espín. Se refiere genéricamente a \"tecnologías de componentes habilitadores de lo cuántico\".",{"type":21,"tag":22,"props":3726,"children":3727},{},[3728],{"type":26,"value":3729},"Esa es una señal significativa. Cuando una tecnología madura, los documentos de contratación se vuelven específicos. Nadie escribe una estrategia nacional para \"dispositivos de computación basados en algún tipo de elemento de conmutación\". La vaguedad deliberada refleja una realidad genuina: a mediados de 2026, ninguna modalidad ha ganado claramente.",{"type":21,"tag":22,"props":3731,"children":3732},{},[3733,3735,3741,3743,3749],{"type":26,"value":3734},"Cada una sigue por delante en ejes distintos — los chips superconductores en velocidad de puerta y escala de fabricación, los iones atrapados en fidelidad y conectividad todos-con-todos, los átomos neutros en número de cúbits, la fotónica en operación a temperatura ambiente y en redes. El ",{"type":21,"tag":29,"props":3736,"children":3738},{"href":3737},"\u002Fresearch\u002Fholographic-codes-quantum-gravity-2026",[3739],{"type":26,"value":3740},"experimento de códigos holográficos",{"type":26,"value":3742}," de 2026 se ejecutó en iones atrapados; el ",{"type":21,"tag":29,"props":3744,"children":3746},{"href":3745},"\u002Fresearch\u002Fgoogle-below-threshold-2024",[3747],{"type":26,"value":3748},"resultado de corrección de errores por debajo del umbral de Google",{"type":26,"value":3750}," se ejecutó en hardware superconductor. Ambos fueron resultados históricos en plataformas completamente distintas.",{"type":21,"tag":22,"props":3752,"children":3753},{},[3754,3756,3761],{"type":26,"value":3755},"Para quien esté aprendiendo computación cuántica, esto es en realidad una buena noticia, y tiene una implicación concreta: ",{"type":21,"tag":180,"props":3757,"children":3758},{},[3759],{"type":26,"value":3760},"no te especialices en exceso en el stack de un solo fabricante.",{"type":26,"value":3762}," Las abstracciones — circuitos, puertas, medición, mitigación de errores — se transfieren entre hardware. Los detalles de API específicos de cada fabricante puede que no.",{"type":21,"tag":49,"props":3764,"children":3766},{"id":3765},"más-allá-de-las-capacidades-clásicas-actuales-es-ahora-el-listón",[3767],{"type":26,"value":3768},"\"Más allá de las capacidades clásicas actuales\" es ahora el listón",{"type":21,"tag":22,"props":3770,"children":3771},{},[3772,3774,3779],{"type":26,"value":3773},"La orden establece la iniciativa ",{"type":21,"tag":180,"props":3775,"children":3776},{},[3777],{"type":26,"value":3778},"Quantum Computer for Application Development and Discovery Science (QC-ADDS)",{"type":26,"value":3780},", con el objetivo de entregar al menos una máquina a una instalación del Department of Energy y ponerla a disposición de la comunidad científica. El Secretario de Energía tiene 90 días para identificar especificaciones de sistemas capaces de \"aplicaciones científicas transformadoras... en camino hacia aplicaciones económicamente significativas y más allá de las capacidades actuales de las computadoras clásicas\".",{"type":21,"tag":22,"props":3782,"children":3783},{},[3784],{"type":26,"value":3785},"Hay dos cosas que merece la pena notar en esa formulación.",{"type":21,"tag":22,"props":3787,"children":3788},{},[3789,3791,3796,3798,3803,3805,3810],{"type":26,"value":3790},"Primero, el marco es la ",{"type":21,"tag":180,"props":3792,"children":3793},{},[3794],{"type":26,"value":3795},"ciencia de descubrimiento",{"type":26,"value":3797},", no la ventaja comercial. El objetivo es un instrumento científico — una máquina que los investigadores usan para aprender cosas — más que un producto que supere a las computadoras clásicas en una tarea de negocio. Eso es coherente con hacia dónde apunta realmente la evidencia: el ",{"type":21,"tag":29,"props":3799,"children":3800},{"href":1462},[3801],{"type":26,"value":3802},"resultado de utilidad cuántica de IBM en 2023",{"type":26,"value":3804}," y el trabajo sobre códigos holográficos fueron ambos experimentos de ",{"type":21,"tag":2054,"props":3806,"children":3807},{},[3808],{"type":26,"value":3809},"física",{"type":26,"value":802},{"type":21,"tag":22,"props":3812,"children":3813},{},[3814],{"type":26,"value":3815},"Segundo, \"en camino hacia\" está haciendo un trabajo real en esa frase. Es un reconocimiento de que la máquina que se está especificando es un paso, no un destino.",{"type":21,"tag":49,"props":3817,"children":3819},{"id":3818},"la-computación-cuántica-distribuida-aparece-como-un-objetivo-serio",[3820],{"type":26,"value":3821},"La computación cuántica distribuida aparece como un objetivo serio",{"type":21,"tag":22,"props":3823,"children":3824},{},[3825],{"type":26,"value":3826},"Escondida en las secciones sobre redes hay una petición de planes del DOE que cubran redes cuánticas para \"computación cuántica distribuida\".",{"type":21,"tag":22,"props":3828,"children":3829},{},[3830],{"type":26,"value":3831},"Esto importa porque es una admisión sobre la escalabilidad. Construir un único procesador cuántico enorme es extraordinariamente difícil — el cableado, la refrigeración, la diafonía y el rendimiento de fabricación empeoran todos a medida que crecen los chips. Enlazar varios procesadores más pequeños en una sola máquina lógica es una ruta alternativa, y depende de distribuir entrelazamiento entre dispositivos separados con la fidelidad suficiente para ser útil.",{"type":21,"tag":22,"props":3833,"children":3834},{},[3835,3837,3843,3845,3851],{"type":26,"value":3836},"La primitiva subyacente es la ",{"type":21,"tag":29,"props":3838,"children":3840},{"href":3839},"\u002Fresearch\u002Fbennett-teleportation-1993",[3841],{"type":26,"value":3842},"teletransportación cuántica",{"type":26,"value":3844},", que mueve el estado de un cúbit entre ubicaciones usando ",{"type":21,"tag":29,"props":3846,"children":3848},{"href":3847},"\u002Fglossary\u002Fentanglement",[3849],{"type":26,"value":3850},"entrelazamiento",{"type":26,"value":3852}," compartido más dos bits clásicos. Lleva años siendo rutinaria experimentalmente — pero hacerlo lo bastante rápido, y lo bastante limpio, como para unir procesadores no lo es. Verlo nombrado como objetivo de planificación a cinco años es una señal de que no se da por supuesto que la estrategia del único chip grande sea suficiente.",{"type":21,"tag":49,"props":3854,"children":3856},{"id":3855},"la-brecha-de-talento-se-trata-como-un-cuello-de-botella",[3857],{"type":26,"value":3858},"La brecha de talento se trata como un cuello de botella",{"type":21,"tag":22,"props":3860,"children":3861},{},[3862],{"type":26,"value":3863},"La orden encarga a la NSF que ponga en marcha \"una red de Institutos Nacionales de Desarrollo de Talento en QIST\" en un plazo de 180 días, junto con estrategias de captación y retención.",{"type":21,"tag":22,"props":3865,"children":3866},{},[3867],{"type":26,"value":3868},"Las secciones sobre talento son fáciles de pasar por alto, pero su inclusión te dice algo concreto: la restricción al progreso cuántico no es solo de hardware. No hay suficientes personas capaces de escribir, depurar y razonar sobre programas cuánticos — y esa escasez se considera ya lo bastante grave como para justificar instituciones dedicadas.",{"type":21,"tag":22,"props":3870,"children":3871},{},[3872,3874,3880,3882,3888],{"type":26,"value":3873},"Para cualquiera que lea este sitio, esa es la parte más directamente accionable de todo el documento. Las habilidades que se describen como escasas se pueden aprender ahora mismo, gratis, en hardware real. Nuestra ",{"type":21,"tag":29,"props":3875,"children":3877},{"href":3876},"\u002Fcourses",[3878],{"type":26,"value":3879},"página de cursos",{"type":26,"value":3881}," reúne las mejores opciones estructuradas, y la ",{"type":21,"tag":29,"props":3883,"children":3885},{"href":3884},"\u002Fblog\u002Fgetting-started-free-quantum-computing",[3886],{"type":26,"value":3887},"guía de primeros pasos",{"type":26,"value":3889}," te permitirá ejecutar un circuito en una QPU real en una tarde.",{"type":21,"tag":49,"props":3891,"children":3893},{"id":3892},"lo-que-no-contiene",[3894],{"type":26,"value":3895},"Lo que no contiene",{"type":21,"tag":22,"props":3897,"children":3898},{},[3899,3901,3906],{"type":26,"value":3900},"Vale la pena decirlo con claridad, por precisión: la orden no especifica ",{"type":21,"tag":180,"props":3902,"children":3903},{},[3904],{"type":26,"value":3905},"ninguna cifra económica",{"type":26,"value":3907},". Marca la dirección, asigna responsabilidades e impone plazos — 90, 120, 180 y 210 días en distintas secciones — pero las asignaciones presupuestarias vienen de otro sitio. Los plazos de una orden ejecutiva tampoco son garantías de cumplimiento.",{"type":21,"tag":22,"props":3909,"children":3910},{},[3911],{"type":26,"value":3912},"Trata los calendarios como una declaración de intenciones, no como un cronograma sobre el que puedas planificar.",{"type":21,"tag":49,"props":3914,"children":3916},{"id":3915},"la-conclusión",[3917],{"type":26,"value":3918},"La conclusión",{"type":21,"tag":22,"props":3920,"children":3921},{},[3922],{"type":26,"value":3923},"Quita la política y la EO 14413 se lee como una evaluación técnica inusualmente franca:",{"type":21,"tag":3118,"props":3925,"children":3926},{},[3927,3932,3937,3942,3947],{"type":21,"tag":3122,"props":3928,"children":3929},{},[3930],{"type":26,"value":3931},"No podemos medir de forma fiable el rendimiento de las computadoras cuánticas, y eso es ya lo bastante urgente como para institucionalizarlo.",{"type":21,"tag":3122,"props":3933,"children":3934},{},[3935],{"type":26,"value":3936},"Ninguna tecnología de cúbits ha ganado, así que se están cubriendo las apuestas.",{"type":21,"tag":3122,"props":3938,"children":3939},{},[3940],{"type":26,"value":3941},"El objetivo a corto plazo es el descubrimiento científico, no la ventaja comercial.",{"type":21,"tag":3122,"props":3943,"children":3944},{},[3945],{"type":26,"value":3946},"Escalar puede requerir conectar chips en red en lugar de construir uno gigante.",{"type":21,"tag":3122,"props":3948,"children":3949},{},[3950],{"type":26,"value":3951},"No hay suficientes personas formadas, y ese es un cuello de botella de primer orden.",{"type":21,"tag":22,"props":3953,"children":3954},{},[3955],{"type":26,"value":3956},"Nada de eso es pesimista. Es un campo que ha superado el \"¿esto funciona siquiera?\" para entrar en el \"¿cómo lo medimos, lo escalamos y lo dotamos de personal?\" — que es aproximadamente la transición que atravesó la computación clásica en los años cincuenta.",{"type":21,"tag":22,"props":3958,"children":3959},{},[3960,3962,3968],{"type":26,"value":3961},"El problema de la medición es el que hay que vigilar. El benchmarking suena aburrido al lado de los récords de número de cúbits, pero no se puede diseñar lo que no se puede medir, y toda afirmación seria sobre ventaja cuántica descansa en última instancia sobre ello. Si quieres entender hacia dónde va realmente el campo, aprende a leer las tasas de error en lugar de los titulares — empezando por nuestro ",{"type":21,"tag":29,"props":3963,"children":3965},{"href":3964},"\u002Fglossary",[3966],{"type":26,"value":3967},"glosario de los términos que importan",{"type":26,"value":802},{"type":21,"tag":2694,"props":3970,"children":3971},{},[3972],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":3974},[3975,3976,3977,3978,3979,3980,3981],{"id":3092,"depth":150,"text":3095},{"id":3716,"depth":150,"text":3719},{"id":3765,"depth":150,"text":3768},{"id":3818,"depth":150,"text":3821},{"id":3855,"depth":150,"text":3858},{"id":3892,"depth":150,"text":3895},{"id":3915,"depth":150,"text":3918},"content:es:blog:quantum-benchmarking-eo-14413.md","es\u002Fblog\u002Fquantum-benchmarking-eo-14413.md","es\u002Fblog\u002Fquantum-benchmarking-eo-14413",{"_path":3986,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":3987,"description":3988,"date":3063,"author":11,"tags":3989,"readingTime":3446,"body":3990,"_type":156,"_id":7140,"_source":158,"_file":7141,"_stem":7142,"_extension":161},"\u002Fblog\u002Ferror-mitigation-practical-guide","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.",[14,1369,3065],{"type":18,"children":3991,"toc":7129},[3992,3997,4002,4008,4013,4039,4060,4065,4180,4199,4205,4210,4255,5648,5658,5666,5694,5721,5727,5748,5761,5956,5961,5967,5979,5984,5996,6002,6014,6042,6784,6794,6802,6807,6813,6818,6826,6838,6865,6877,6887,6893,6898,6916,6948,6964,6970,6982,6995,7001,7006,7060,7084,7097,7125],{"type":21,"tag":22,"props":3993,"children":3994},{},[3995],{"type":26,"value":3996},"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":3998,"children":3999},{},[4000],{"type":26,"value":4001},"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":49,"props":4003,"children":4005},{"id":4004},"mitigation-is-not-correction",[4006],{"type":26,"value":4007},"Mitigation Is Not Correction",{"type":21,"tag":22,"props":4009,"children":4010},{},[4011],{"type":26,"value":4012},"These get conflated constantly, so let's be precise.",{"type":21,"tag":22,"props":4014,"children":4015},{},[4016,4023,4025,4030,4032,4037],{"type":21,"tag":180,"props":4017,"children":4018},{},[4019],{"type":21,"tag":29,"props":4020,"children":4021},{"href":65},[4022],{"type":26,"value":68},{"type":26,"value":4024}," detects and fixes errors ",{"type":21,"tag":2054,"props":4026,"children":4027},{},[4028],{"type":26,"value":4029},"during",{"type":26,"value":4031}," 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":29,"props":4033,"children":4034},{"href":84},[4035],{"type":26,"value":4036},"error correction primer",{"type":26,"value":4038}," walks through how the surface code does this.",{"type":21,"tag":22,"props":4040,"children":4041},{},[4042,4051,4053,4058],{"type":21,"tag":180,"props":4043,"children":4044},{},[4045],{"type":21,"tag":29,"props":4046,"children":4048},{"href":4047},"\u002Fglossary\u002Ferror-mitigation",[4049],{"type":26,"value":4050},"Error mitigation",{"type":26,"value":4052}," does nothing during the computation. It runs the noisy circuit, collects noisy results, and applies classical statistics afterwards to ",{"type":21,"tag":2054,"props":4054,"children":4055},{},[4056],{"type":26,"value":4057},"estimate",{"type":26,"value":4059}," what a noiseless machine would have said.",{"type":21,"tag":22,"props":4061,"children":4062},{},[4063],{"type":26,"value":4064},"The practical differences matter:",{"type":21,"tag":4066,"props":4067,"children":4068},"table",{},[4069,4091],{"type":21,"tag":4070,"props":4071,"children":4072},"thead",{},[4073],{"type":21,"tag":4074,"props":4075,"children":4076},"tr",{},[4077,4081,4086],{"type":21,"tag":4078,"props":4079,"children":4080},"th",{},[],{"type":21,"tag":4078,"props":4082,"children":4083},{},[4084],{"type":26,"value":4085},"Correction",{"type":21,"tag":4078,"props":4087,"children":4088},{},[4089],{"type":26,"value":4090},"Mitigation",{"type":21,"tag":4092,"props":4093,"children":4094},"tbody",{},[4095,4126,4144,4162],{"type":21,"tag":4074,"props":4096,"children":4097},{},[4098,4104,4115],{"type":21,"tag":4099,"props":4100,"children":4101},"td",{},[4102],{"type":26,"value":4103},"Cost",{"type":21,"tag":4099,"props":4105,"children":4106},{},[4107,4109,4113],{"type":26,"value":4108},"Extra ",{"type":21,"tag":180,"props":4110,"children":4111},{},[4112],{"type":26,"value":1203},{"type":26,"value":4114}," (~1000×)",{"type":21,"tag":4099,"props":4116,"children":4117},{},[4118,4119,4124],{"type":26,"value":4108},{"type":21,"tag":180,"props":4120,"children":4121},{},[4122],{"type":26,"value":4123},"shots",{"type":26,"value":4125}," (2–100×)",{"type":21,"tag":4074,"props":4127,"children":4128},{},[4129,4134,4139],{"type":21,"tag":4099,"props":4130,"children":4131},{},[4132],{"type":26,"value":4133},"Recovers",{"type":21,"tag":4099,"props":4135,"children":4136},{},[4137],{"type":26,"value":4138},"The quantum state",{"type":21,"tag":4099,"props":4140,"children":4141},{},[4142],{"type":26,"value":4143},"An expectation value",{"type":21,"tag":4074,"props":4145,"children":4146},{},[4147,4152,4157],{"type":21,"tag":4099,"props":4148,"children":4149},{},[4150],{"type":26,"value":4151},"Scales to",{"type":21,"tag":4099,"props":4153,"children":4154},{},[4155],{"type":26,"value":4156},"Arbitrary depth",{"type":21,"tag":4099,"props":4158,"children":4159},{},[4160],{"type":26,"value":4161},"Shallow-to-moderate depth only",{"type":21,"tag":4074,"props":4163,"children":4164},{},[4165,4170,4175],{"type":21,"tag":4099,"props":4166,"children":4167},{},[4168],{"type":26,"value":4169},"Available today",{"type":21,"tag":4099,"props":4171,"children":4172},{},[4173],{"type":26,"value":4174},"Barely",{"type":21,"tag":4099,"props":4176,"children":4177},{},[4178],{"type":26,"value":4179},"Yes, right now",{"type":21,"tag":22,"props":4181,"children":4182},{},[4183,4185,4190,4192,4197],{"type":26,"value":4184},"That last row is why mitigation dominates ",{"type":21,"tag":29,"props":4186,"children":4187},{"href":418},[4188],{"type":26,"value":4189},"NISQ-era",{"type":26,"value":4191}," work. But note row three: mitigation's overhead grows ",{"type":21,"tag":2054,"props":4193,"children":4194},{},[4195],{"type":26,"value":4196},"exponentially",{"type":26,"value":4198}," 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":49,"props":4200,"children":4202},{"id":4201},"step-1-readout-error-mitigation-do-this-first",[4203],{"type":26,"value":4204},"Step 1: Readout Error Mitigation (Do This First)",{"type":21,"tag":22,"props":4206,"children":4207},{},[4208],{"type":26,"value":4209},"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":4211,"children":4212},{},[4213,4215,4221,4223,4229,4231,4237,4239,4245,4247,4253],{"type":26,"value":4214},"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":2080,"props":4216,"children":4218},{"className":4217},[],[4219],{"type":26,"value":4220},"M",{"type":26,"value":4222}," where ",{"type":21,"tag":2080,"props":4224,"children":4226},{"className":4225},[],[4227],{"type":26,"value":4228},"M[i][j]",{"type":26,"value":4230}," is the probability of reading ",{"type":21,"tag":2080,"props":4232,"children":4234},{"className":4233},[],[4235],{"type":26,"value":4236},"i",{"type":26,"value":4238}," when the true state was ",{"type":21,"tag":2080,"props":4240,"children":4242},{"className":4241},[],[4243],{"type":26,"value":4244},"j",{"type":26,"value":4246},". Your observed distribution is ",{"type":21,"tag":2080,"props":4248,"children":4250},{"className":4249},[],[4251],{"type":26,"value":4252},"M @ p_true",{"type":26,"value":4254},", so apply the pseudo-inverse.",{"type":21,"tag":2310,"props":4256,"children":4258},{"code":4257,"language":3190,"meta":7,"className":3188,"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",[4259],{"type":21,"tag":2080,"props":4260,"children":4261},{"__ignoreMap":7},[4262,4284,4305,4326,4347,4354,4415,4432,4485,4528,4536,4571,4579,4592,4599,4629,4648,4656,4687,4732,4771,4789,4863,4891,4920,4929,4957,4988,5010,5056,5069,5077,5095,5113,5121,5155,5173,5198,5240,5248,5283,5399,5407,5452,5470,5478,5566],{"type":21,"tag":2320,"props":4263,"children":4264},{"class":2322,"line":2323},[4265,4269,4274,4279],{"type":21,"tag":2320,"props":4266,"children":4267},{"style":3200},[4268],{"type":26,"value":3213},{"type":21,"tag":2320,"props":4270,"children":4271},{"style":2327},[4272],{"type":26,"value":4273}," numpy ",{"type":21,"tag":2320,"props":4275,"children":4276},{"style":3200},[4277],{"type":26,"value":4278},"as",{"type":21,"tag":2320,"props":4280,"children":4281},{"style":2327},[4282],{"type":26,"value":4283}," np\n",{"type":21,"tag":2320,"props":4285,"children":4286},{"class":2322,"line":150},[4287,4291,4296,4300],{"type":21,"tag":2320,"props":4288,"children":4289},{"style":3200},[4290],{"type":26,"value":3203},{"type":21,"tag":2320,"props":4292,"children":4293},{"style":2327},[4294],{"type":26,"value":4295}," qiskit ",{"type":21,"tag":2320,"props":4297,"children":4298},{"style":3200},[4299],{"type":26,"value":3213},{"type":21,"tag":2320,"props":4301,"children":4302},{"style":2327},[4303],{"type":26,"value":4304}," QuantumCircuit, transpile\n",{"type":21,"tag":2320,"props":4306,"children":4307},{"class":2322,"line":2341},[4308,4312,4317,4321],{"type":21,"tag":2320,"props":4309,"children":4310},{"style":3200},[4311],{"type":26,"value":3203},{"type":21,"tag":2320,"props":4313,"children":4314},{"style":2327},[4315],{"type":26,"value":4316}," qiskit_aer ",{"type":21,"tag":2320,"props":4318,"children":4319},{"style":3200},[4320],{"type":26,"value":3213},{"type":21,"tag":2320,"props":4322,"children":4323},{"style":2327},[4324],{"type":26,"value":4325}," AerSimulator\n",{"type":21,"tag":2320,"props":4327,"children":4328},{"class":2322,"line":2403},[4329,4333,4338,4342],{"type":21,"tag":2320,"props":4330,"children":4331},{"style":3200},[4332],{"type":26,"value":3203},{"type":21,"tag":2320,"props":4334,"children":4335},{"style":2327},[4336],{"type":26,"value":4337}," qiskit_aer.noise ",{"type":21,"tag":2320,"props":4339,"children":4340},{"style":3200},[4341],{"type":26,"value":3213},{"type":21,"tag":2320,"props":4343,"children":4344},{"style":2327},[4345],{"type":26,"value":4346}," NoiseModel, depolarizing_error, ReadoutError\n",{"type":21,"tag":2320,"props":4348,"children":4349},{"class":2322,"line":2427},[4350],{"type":21,"tag":2320,"props":4351,"children":4352},{"emptyLinePlaceholder":3224},[4353],{"type":26,"value":3227},{"type":21,"tag":2320,"props":4355,"children":4356},{"class":2322,"line":854},[4357,4362,4368,4373,4377,4382,4387,4391,4396,4401,4405,4410],{"type":21,"tag":2320,"props":4358,"children":4359},{"style":3200},[4360],{"type":26,"value":4361},"def",{"type":21,"tag":2320,"props":4363,"children":4365},{"style":4364},"--shiki-default:#B392F0",[4366],{"type":26,"value":4367}," build_noise",{"type":21,"tag":2320,"props":4369,"children":4370},{"style":2327},[4371],{"type":26,"value":4372},"(p1",{"type":21,"tag":2320,"props":4374,"children":4375},{"style":3200},[4376],{"type":26,"value":3240},{"type":21,"tag":2320,"props":4378,"children":4379},{"style":2345},[4380],{"type":26,"value":4381},"0.002",{"type":21,"tag":2320,"props":4383,"children":4384},{"style":2327},[4385],{"type":26,"value":4386},", p2",{"type":21,"tag":2320,"props":4388,"children":4389},{"style":3200},[4390],{"type":26,"value":3240},{"type":21,"tag":2320,"props":4392,"children":4393},{"style":2345},[4394],{"type":26,"value":4395},"0.02",{"type":21,"tag":2320,"props":4397,"children":4398},{"style":2327},[4399],{"type":26,"value":4400},", p_read",{"type":21,"tag":2320,"props":4402,"children":4403},{"style":3200},[4404],{"type":26,"value":3240},{"type":21,"tag":2320,"props":4406,"children":4407},{"style":2345},[4408],{"type":26,"value":4409},"0.05",{"type":21,"tag":2320,"props":4411,"children":4412},{"style":2327},[4413],{"type":26,"value":4414},"):\n",{"type":21,"tag":2320,"props":4416,"children":4417},{"class":2322,"line":171},[4418,4423,4427],{"type":21,"tag":2320,"props":4419,"children":4420},{"style":2327},[4421],{"type":26,"value":4422},"    nm ",{"type":21,"tag":2320,"props":4424,"children":4425},{"style":3200},[4426],{"type":26,"value":3240},{"type":21,"tag":2320,"props":4428,"children":4429},{"style":2327},[4430],{"type":26,"value":4431}," NoiseModel()\n",{"type":21,"tag":2320,"props":4433,"children":4434},{"class":2322,"line":16},[4435,4440,4444,4449,4454,4458,4463,4467,4472,4476,4481],{"type":21,"tag":2320,"props":4436,"children":4437},{"style":2327},[4438],{"type":26,"value":4439},"    nm.add_all_qubit_quantum_error(depolarizing_error(p1, ",{"type":21,"tag":2320,"props":4441,"children":4442},{"style":2345},[4443],{"type":26,"value":3556},{"type":21,"tag":2320,"props":4445,"children":4446},{"style":2327},[4447],{"type":26,"value":4448},"), [",{"type":21,"tag":2320,"props":4450,"children":4451},{"style":2356},[4452],{"type":26,"value":4453},"\"rz\"",{"type":21,"tag":2320,"props":4455,"children":4456},{"style":2327},[4457],{"type":26,"value":1315},{"type":21,"tag":2320,"props":4459,"children":4460},{"style":2356},[4461],{"type":26,"value":4462},"\"sx\"",{"type":21,"tag":2320,"props":4464,"children":4465},{"style":2327},[4466],{"type":26,"value":1315},{"type":21,"tag":2320,"props":4468,"children":4469},{"style":2356},[4470],{"type":26,"value":4471},"\"x\"",{"type":21,"tag":2320,"props":4473,"children":4474},{"style":2327},[4475],{"type":26,"value":1315},{"type":21,"tag":2320,"props":4477,"children":4478},{"style":2356},[4479],{"type":26,"value":4480},"\"h\"",{"type":21,"tag":2320,"props":4482,"children":4483},{"style":2327},[4484],{"type":26,"value":3561},{"type":21,"tag":2320,"props":4486,"children":4487},{"class":2322,"line":1370},[4488,4493,4497,4501,4506,4510,4515,4519,4524],{"type":21,"tag":2320,"props":4489,"children":4490},{"style":2327},[4491],{"type":26,"value":4492},"    nm.add_all_qubit_quantum_error(depolarizing_error(p2, ",{"type":21,"tag":2320,"props":4494,"children":4495},{"style":2345},[4496],{"type":26,"value":2419},{"type":21,"tag":2320,"props":4498,"children":4499},{"style":2327},[4500],{"type":26,"value":4448},{"type":21,"tag":2320,"props":4502,"children":4503},{"style":2356},[4504],{"type":26,"value":4505},"\"cx\"",{"type":21,"tag":2320,"props":4507,"children":4508},{"style":2327},[4509],{"type":26,"value":1315},{"type":21,"tag":2320,"props":4511,"children":4512},{"style":2356},[4513],{"type":26,"value":4514},"\"cz\"",{"type":21,"tag":2320,"props":4516,"children":4517},{"style":2327},[4518],{"type":26,"value":1315},{"type":21,"tag":2320,"props":4520,"children":4521},{"style":2356},[4522],{"type":26,"value":4523},"\"ecr\"",{"type":21,"tag":2320,"props":4525,"children":4526},{"style":2327},[4527],{"type":26,"value":3561},{"type":21,"tag":2320,"props":4529,"children":4530},{"class":2322,"line":3446},[4531],{"type":21,"tag":2320,"props":4532,"children":4533},{"style":2327},[4534],{"type":26,"value":4535},"    nm.add_all_qubit_readout_error(\n",{"type":21,"tag":2320,"props":4537,"children":4538},{"class":2322,"line":3456},[4539,4544,4548,4553,4558,4562,4566],{"type":21,"tag":2320,"props":4540,"children":4541},{"style":2327},[4542],{"type":26,"value":4543},"        ReadoutError([[",{"type":21,"tag":2320,"props":4545,"children":4546},{"style":2345},[4547],{"type":26,"value":3556},{"type":21,"tag":2320,"props":4549,"children":4550},{"style":3200},[4551],{"type":26,"value":4552}," -",{"type":21,"tag":2320,"props":4554,"children":4555},{"style":2327},[4556],{"type":26,"value":4557}," p_read, p_read], [p_read, ",{"type":21,"tag":2320,"props":4559,"children":4560},{"style":2345},[4561],{"type":26,"value":3556},{"type":21,"tag":2320,"props":4563,"children":4564},{"style":3200},[4565],{"type":26,"value":4552},{"type":21,"tag":2320,"props":4567,"children":4568},{"style":2327},[4569],{"type":26,"value":4570}," p_read]])\n",{"type":21,"tag":2320,"props":4572,"children":4573},{"class":2322,"line":474},[4574],{"type":21,"tag":2320,"props":4575,"children":4576},{"style":2327},[4577],{"type":26,"value":4578},"    )\n",{"type":21,"tag":2320,"props":4580,"children":4581},{"class":2322,"line":3516},[4582,4587],{"type":21,"tag":2320,"props":4583,"children":4584},{"style":3200},[4585],{"type":26,"value":4586},"    return",{"type":21,"tag":2320,"props":4588,"children":4589},{"style":2327},[4590],{"type":26,"value":4591}," nm\n",{"type":21,"tag":2320,"props":4593,"children":4594},{"class":2322,"line":3564},[4595],{"type":21,"tag":2320,"props":4596,"children":4597},{"emptyLinePlaceholder":3224},[4598],{"type":26,"value":3227},{"type":21,"tag":2320,"props":4600,"children":4601},{"class":2322,"line":3606},[4602,4606,4610,4615,4620,4624],{"type":21,"tag":2320,"props":4603,"children":4604},{"style":2327},[4605],{"type":26,"value":3253},{"type":21,"tag":2320,"props":4607,"children":4608},{"style":3200},[4609],{"type":26,"value":3240},{"type":21,"tag":2320,"props":4611,"children":4612},{"style":2327},[4613],{"type":26,"value":4614}," AerSimulator(",{"type":21,"tag":2320,"props":4616,"children":4617},{"style":3265},[4618],{"type":26,"value":4619},"noise_model",{"type":21,"tag":2320,"props":4621,"children":4622},{"style":3200},[4623],{"type":26,"value":3240},{"type":21,"tag":2320,"props":4625,"children":4626},{"style":2327},[4627],{"type":26,"value":4628},"build_noise())\n",{"type":21,"tag":2320,"props":4630,"children":4632},{"class":2322,"line":4631},16,[4633,4638,4643],{"type":21,"tag":2320,"props":4634,"children":4635},{"style":2345},[4636],{"type":26,"value":4637},"SHOTS",{"type":21,"tag":2320,"props":4639,"children":4640},{"style":3200},[4641],{"type":26,"value":4642}," =",{"type":21,"tag":2320,"props":4644,"children":4645},{"style":2345},[4646],{"type":26,"value":4647}," 40000\n",{"type":21,"tag":2320,"props":4649,"children":4651},{"class":2322,"line":4650},17,[4652],{"type":21,"tag":2320,"props":4653,"children":4654},{"emptyLinePlaceholder":3224},[4655],{"type":26,"value":3227},{"type":21,"tag":2320,"props":4657,"children":4659},{"class":2322,"line":4658},18,[4660,4664,4669,4674,4678,4683],{"type":21,"tag":2320,"props":4661,"children":4662},{"style":3200},[4663],{"type":26,"value":4361},{"type":21,"tag":2320,"props":4665,"children":4666},{"style":4364},[4667],{"type":26,"value":4668}," calibration_matrix",{"type":21,"tag":2320,"props":4670,"children":4671},{"style":2327},[4672],{"type":26,"value":4673},"(n, backend, shots",{"type":21,"tag":2320,"props":4675,"children":4676},{"style":3200},[4677],{"type":26,"value":3240},{"type":21,"tag":2320,"props":4679,"children":4680},{"style":2345},[4681],{"type":26,"value":4682},"20000",{"type":21,"tag":2320,"props":4684,"children":4685},{"style":2327},[4686],{"type":26,"value":4414},{"type":21,"tag":2320,"props":4688,"children":4690},{"class":2322,"line":4689},19,[4691,4696,4700,4705,4709,4714,4719,4723,4727],{"type":21,"tag":2320,"props":4692,"children":4693},{"style":2327},[4694],{"type":26,"value":4695},"    M ",{"type":21,"tag":2320,"props":4697,"children":4698},{"style":3200},[4699],{"type":26,"value":3240},{"type":21,"tag":2320,"props":4701,"children":4702},{"style":2327},[4703],{"type":26,"value":4704}," np.zeros((",{"type":21,"tag":2320,"props":4706,"children":4707},{"style":2345},[4708],{"type":26,"value":2419},{"type":21,"tag":2320,"props":4710,"children":4711},{"style":3200},[4712],{"type":26,"value":4713},"**",{"type":21,"tag":2320,"props":4715,"children":4716},{"style":2327},[4717],{"type":26,"value":4718},"n, ",{"type":21,"tag":2320,"props":4720,"children":4721},{"style":2345},[4722],{"type":26,"value":2419},{"type":21,"tag":2320,"props":4724,"children":4725},{"style":3200},[4726],{"type":26,"value":4713},{"type":21,"tag":2320,"props":4728,"children":4729},{"style":2327},[4730],{"type":26,"value":4731},"n))\n",{"type":21,"tag":2320,"props":4733,"children":4735},{"class":2322,"line":4734},20,[4736,4741,4746,4750,4754,4758,4762,4766],{"type":21,"tag":2320,"props":4737,"children":4738},{"style":3200},[4739],{"type":26,"value":4740},"    for",{"type":21,"tag":2320,"props":4742,"children":4743},{"style":2327},[4744],{"type":26,"value":4745}," i ",{"type":21,"tag":2320,"props":4747,"children":4748},{"style":3200},[4749],{"type":26,"value":3503},{"type":21,"tag":2320,"props":4751,"children":4752},{"style":2345},[4753],{"type":26,"value":3508},{"type":21,"tag":2320,"props":4755,"children":4756},{"style":2327},[4757],{"type":26,"value":3320},{"type":21,"tag":2320,"props":4759,"children":4760},{"style":2345},[4761],{"type":26,"value":2419},{"type":21,"tag":2320,"props":4763,"children":4764},{"style":3200},[4765],{"type":26,"value":4713},{"type":21,"tag":2320,"props":4767,"children":4768},{"style":2327},[4769],{"type":26,"value":4770},"n):\n",{"type":21,"tag":2320,"props":4772,"children":4774},{"class":2322,"line":4773},21,[4775,4780,4784],{"type":21,"tag":2320,"props":4776,"children":4777},{"style":2327},[4778],{"type":26,"value":4779},"        qc ",{"type":21,"tag":2320,"props":4781,"children":4782},{"style":3200},[4783],{"type":26,"value":3240},{"type":21,"tag":2320,"props":4785,"children":4786},{"style":2327},[4787],{"type":26,"value":4788}," QuantumCircuit(n, n)\n",{"type":21,"tag":2320,"props":4790,"children":4792},{"class":2322,"line":4791},22,[4793,4798,4802,4807,4812,4816,4821,4825,4830,4834,4839,4844,4849,4853,4858],{"type":21,"tag":2320,"props":4794,"children":4795},{"style":2327},[4796],{"type":26,"value":4797},"        bits ",{"type":21,"tag":2320,"props":4799,"children":4800},{"style":3200},[4801],{"type":26,"value":3240},{"type":21,"tag":2320,"props":4803,"children":4804},{"style":2345},[4805],{"type":26,"value":4806}," format",{"type":21,"tag":2320,"props":4808,"children":4809},{"style":2327},[4810],{"type":26,"value":4811},"(i, ",{"type":21,"tag":2320,"props":4813,"children":4814},{"style":3200},[4815],{"type":26,"value":3325},{"type":21,"tag":2320,"props":4817,"children":4818},{"style":2356},[4819],{"type":26,"value":4820},"\"0",{"type":21,"tag":2320,"props":4822,"children":4823},{"style":2345},[4824],{"type":26,"value":3335},{"type":21,"tag":2320,"props":4826,"children":4827},{"style":2327},[4828],{"type":26,"value":4829},"n",{"type":21,"tag":2320,"props":4831,"children":4832},{"style":2345},[4833],{"type":26,"value":3345},{"type":21,"tag":2320,"props":4835,"children":4836},{"style":2356},[4837],{"type":26,"value":4838},"b\"",{"type":21,"tag":2320,"props":4840,"children":4841},{"style":2327},[4842],{"type":26,"value":4843},")[::",{"type":21,"tag":2320,"props":4845,"children":4846},{"style":3200},[4847],{"type":26,"value":4848},"-",{"type":21,"tag":2320,"props":4850,"children":4851},{"style":2345},[4852],{"type":26,"value":3556},{"type":21,"tag":2320,"props":4854,"children":4855},{"style":2327},[4856],{"type":26,"value":4857},"]      ",{"type":21,"tag":2320,"props":4859,"children":4860},{"style":3450},[4861],{"type":26,"value":4862},"# Qiskit is little-endian\n",{"type":21,"tag":2320,"props":4864,"children":4866},{"class":2322,"line":4865},23,[4867,4872,4877,4881,4886],{"type":21,"tag":2320,"props":4868,"children":4869},{"style":3200},[4870],{"type":26,"value":4871},"        for",{"type":21,"tag":2320,"props":4873,"children":4874},{"style":2327},[4875],{"type":26,"value":4876}," q, b ",{"type":21,"tag":2320,"props":4878,"children":4879},{"style":3200},[4880],{"type":26,"value":3503},{"type":21,"tag":2320,"props":4882,"children":4883},{"style":2345},[4884],{"type":26,"value":4885}," enumerate",{"type":21,"tag":2320,"props":4887,"children":4888},{"style":2327},[4889],{"type":26,"value":4890},"(bits):\n",{"type":21,"tag":2320,"props":4892,"children":4894},{"class":2322,"line":4893},24,[4895,4900,4905,4910,4915],{"type":21,"tag":2320,"props":4896,"children":4897},{"style":3200},[4898],{"type":26,"value":4899},"            if",{"type":21,"tag":2320,"props":4901,"children":4902},{"style":2327},[4903],{"type":26,"value":4904}," b ",{"type":21,"tag":2320,"props":4906,"children":4907},{"style":3200},[4908],{"type":26,"value":4909},"==",{"type":21,"tag":2320,"props":4911,"children":4912},{"style":2356},[4913],{"type":26,"value":4914}," \"1\"",{"type":21,"tag":2320,"props":4916,"children":4917},{"style":2327},[4918],{"type":26,"value":4919},":\n",{"type":21,"tag":2320,"props":4921,"children":4923},{"class":2322,"line":4922},25,[4924],{"type":21,"tag":2320,"props":4925,"children":4926},{"style":2327},[4927],{"type":26,"value":4928},"                qc.x(q)\n",{"type":21,"tag":2320,"props":4930,"children":4932},{"class":2322,"line":4931},26,[4933,4938,4943,4948,4952],{"type":21,"tag":2320,"props":4934,"children":4935},{"style":2327},[4936],{"type":26,"value":4937},"        qc.measure(",{"type":21,"tag":2320,"props":4939,"children":4940},{"style":2345},[4941],{"type":26,"value":4942},"range",{"type":21,"tag":2320,"props":4944,"children":4945},{"style":2327},[4946],{"type":26,"value":4947},"(n), ",{"type":21,"tag":2320,"props":4949,"children":4950},{"style":2345},[4951],{"type":26,"value":4942},{"type":21,"tag":2320,"props":4953,"children":4954},{"style":2327},[4955],{"type":26,"value":4956},"(n))\n",{"type":21,"tag":2320,"props":4958,"children":4960},{"class":2322,"line":4959},27,[4961,4966,4970,4975,4979,4983],{"type":21,"tag":2320,"props":4962,"children":4963},{"style":2327},[4964],{"type":26,"value":4965},"        counts ",{"type":21,"tag":2320,"props":4967,"children":4968},{"style":3200},[4969],{"type":26,"value":3240},{"type":21,"tag":2320,"props":4971,"children":4972},{"style":2327},[4973],{"type":26,"value":4974}," backend.run(transpile(qc, backend), ",{"type":21,"tag":2320,"props":4976,"children":4977},{"style":3265},[4978],{"type":26,"value":4123},{"type":21,"tag":2320,"props":4980,"children":4981},{"style":3200},[4982],{"type":26,"value":3240},{"type":21,"tag":2320,"props":4984,"children":4985},{"style":2327},[4986],{"type":26,"value":4987},"shots).result().get_counts()\n",{"type":21,"tag":2320,"props":4989,"children":4991},{"class":2322,"line":4990},28,[4992,4996,5001,5005],{"type":21,"tag":2320,"props":4993,"children":4994},{"style":3200},[4995],{"type":26,"value":4871},{"type":21,"tag":2320,"props":4997,"children":4998},{"style":2327},[4999],{"type":26,"value":5000}," key, v ",{"type":21,"tag":2320,"props":5002,"children":5003},{"style":3200},[5004],{"type":26,"value":3503},{"type":21,"tag":2320,"props":5006,"children":5007},{"style":2327},[5008],{"type":26,"value":5009}," counts.items():\n",{"type":21,"tag":2320,"props":5011,"children":5013},{"class":2322,"line":5012},29,[5014,5019,5024,5029,5033,5038,5042,5047,5051],{"type":21,"tag":2320,"props":5015,"children":5016},{"style":2327},[5017],{"type":26,"value":5018},"            M[",{"type":21,"tag":2320,"props":5020,"children":5021},{"style":2345},[5022],{"type":26,"value":5023},"int",{"type":21,"tag":2320,"props":5025,"children":5026},{"style":2327},[5027],{"type":26,"value":5028},"(key, ",{"type":21,"tag":2320,"props":5030,"children":5031},{"style":2345},[5032],{"type":26,"value":2419},{"type":21,"tag":2320,"props":5034,"children":5035},{"style":2327},[5036],{"type":26,"value":5037},"), i] ",{"type":21,"tag":2320,"props":5039,"children":5040},{"style":3200},[5041],{"type":26,"value":3240},{"type":21,"tag":2320,"props":5043,"children":5044},{"style":2327},[5045],{"type":26,"value":5046}," v ",{"type":21,"tag":2320,"props":5048,"children":5049},{"style":3200},[5050],{"type":26,"value":2175},{"type":21,"tag":2320,"props":5052,"children":5053},{"style":2327},[5054],{"type":26,"value":5055}," shots\n",{"type":21,"tag":2320,"props":5057,"children":5059},{"class":2322,"line":5058},30,[5060,5064],{"type":21,"tag":2320,"props":5061,"children":5062},{"style":3200},[5063],{"type":26,"value":4586},{"type":21,"tag":2320,"props":5065,"children":5066},{"style":2327},[5067],{"type":26,"value":5068}," M\n",{"type":21,"tag":2320,"props":5070,"children":5072},{"class":2322,"line":5071},31,[5073],{"type":21,"tag":2320,"props":5074,"children":5075},{"emptyLinePlaceholder":3224},[5076],{"type":26,"value":3227},{"type":21,"tag":2320,"props":5078,"children":5080},{"class":2322,"line":5079},32,[5081,5086,5090],{"type":21,"tag":2320,"props":5082,"children":5083},{"style":2327},[5084],{"type":26,"value":5085},"n ",{"type":21,"tag":2320,"props":5087,"children":5088},{"style":3200},[5089],{"type":26,"value":3240},{"type":21,"tag":2320,"props":5091,"children":5092},{"style":2345},[5093],{"type":26,"value":5094}," 2\n",{"type":21,"tag":2320,"props":5096,"children":5098},{"class":2322,"line":5097},33,[5099,5104,5108],{"type":21,"tag":2320,"props":5100,"children":5101},{"style":2327},[5102],{"type":26,"value":5103},"Minv ",{"type":21,"tag":2320,"props":5105,"children":5106},{"style":3200},[5107],{"type":26,"value":3240},{"type":21,"tag":2320,"props":5109,"children":5110},{"style":2327},[5111],{"type":26,"value":5112}," np.linalg.pinv(calibration_matrix(n, backend))\n",{"type":21,"tag":2320,"props":5114,"children":5116},{"class":2322,"line":5115},34,[5117],{"type":21,"tag":2320,"props":5118,"children":5119},{"emptyLinePlaceholder":3224},[5120],{"type":26,"value":3227},{"type":21,"tag":2320,"props":5122,"children":5124},{"class":2322,"line":5123},35,[5125,5130,5134,5139,5143,5147,5151],{"type":21,"tag":2320,"props":5126,"children":5127},{"style":2327},[5128],{"type":26,"value":5129},"bell ",{"type":21,"tag":2320,"props":5131,"children":5132},{"style":3200},[5133],{"type":26,"value":3240},{"type":21,"tag":2320,"props":5135,"children":5136},{"style":2327},[5137],{"type":26,"value":5138}," QuantumCircuit(",{"type":21,"tag":2320,"props":5140,"children":5141},{"style":2345},[5142],{"type":26,"value":2419},{"type":21,"tag":2320,"props":5144,"children":5145},{"style":2327},[5146],{"type":26,"value":1315},{"type":21,"tag":2320,"props":5148,"children":5149},{"style":2345},[5150],{"type":26,"value":2419},{"type":21,"tag":2320,"props":5152,"children":5153},{"style":2327},[5154],{"type":26,"value":3300},{"type":21,"tag":2320,"props":5156,"children":5158},{"class":2322,"line":5157},36,[5159,5164,5169],{"type":21,"tag":2320,"props":5160,"children":5161},{"style":2327},[5162],{"type":26,"value":5163},"bell.h(",{"type":21,"tag":2320,"props":5165,"children":5166},{"style":2345},[5167],{"type":26,"value":5168},"0",{"type":21,"tag":2320,"props":5170,"children":5171},{"style":2327},[5172],{"type":26,"value":3300},{"type":21,"tag":2320,"props":5174,"children":5176},{"class":2322,"line":5175},37,[5177,5182,5186,5190,5194],{"type":21,"tag":2320,"props":5178,"children":5179},{"style":2327},[5180],{"type":26,"value":5181},"bell.cx(",{"type":21,"tag":2320,"props":5183,"children":5184},{"style":2345},[5185],{"type":26,"value":5168},{"type":21,"tag":2320,"props":5187,"children":5188},{"style":2327},[5189],{"type":26,"value":1315},{"type":21,"tag":2320,"props":5191,"children":5192},{"style":2345},[5193],{"type":26,"value":3556},{"type":21,"tag":2320,"props":5195,"children":5196},{"style":2327},[5197],{"type":26,"value":3300},{"type":21,"tag":2320,"props":5199,"children":5201},{"class":2322,"line":5200},38,[5202,5207,5211,5215,5219,5224,5228,5232,5236],{"type":21,"tag":2320,"props":5203,"children":5204},{"style":2327},[5205],{"type":26,"value":5206},"bell.measure([",{"type":21,"tag":2320,"props":5208,"children":5209},{"style":2345},[5210],{"type":26,"value":5168},{"type":21,"tag":2320,"props":5212,"children":5213},{"style":2327},[5214],{"type":26,"value":1315},{"type":21,"tag":2320,"props":5216,"children":5217},{"style":2345},[5218],{"type":26,"value":3556},{"type":21,"tag":2320,"props":5220,"children":5221},{"style":2327},[5222],{"type":26,"value":5223},"], [",{"type":21,"tag":2320,"props":5225,"children":5226},{"style":2345},[5227],{"type":26,"value":5168},{"type":21,"tag":2320,"props":5229,"children":5230},{"style":2327},[5231],{"type":26,"value":1315},{"type":21,"tag":2320,"props":5233,"children":5234},{"style":2345},[5235],{"type":26,"value":3556},{"type":21,"tag":2320,"props":5237,"children":5238},{"style":2327},[5239],{"type":26,"value":3561},{"type":21,"tag":2320,"props":5241,"children":5243},{"class":2322,"line":5242},39,[5244],{"type":21,"tag":2320,"props":5245,"children":5246},{"emptyLinePlaceholder":3224},[5247],{"type":26,"value":3227},{"type":21,"tag":2320,"props":5249,"children":5251},{"class":2322,"line":5250},40,[5252,5257,5261,5266,5270,5274,5278],{"type":21,"tag":2320,"props":5253,"children":5254},{"style":2327},[5255],{"type":26,"value":5256},"raw ",{"type":21,"tag":2320,"props":5258,"children":5259},{"style":3200},[5260],{"type":26,"value":3240},{"type":21,"tag":2320,"props":5262,"children":5263},{"style":2327},[5264],{"type":26,"value":5265}," backend.run(transpile(bell, backend), ",{"type":21,"tag":2320,"props":5267,"children":5268},{"style":3265},[5269],{"type":26,"value":4123},{"type":21,"tag":2320,"props":5271,"children":5272},{"style":3200},[5273],{"type":26,"value":3240},{"type":21,"tag":2320,"props":5275,"children":5276},{"style":2345},[5277],{"type":26,"value":4637},{"type":21,"tag":2320,"props":5279,"children":5280},{"style":2327},[5281],{"type":26,"value":5282},").result().get_counts()\n",{"type":21,"tag":2320,"props":5284,"children":5286},{"class":2322,"line":5285},41,[5287,5292,5296,5301,5306,5310,5314,5318,5322,5326,5330,5334,5339,5343,5348,5352,5356,5360,5364,5368,5372,5376,5381,5386,5390,5394],{"type":21,"tag":2320,"props":5288,"children":5289},{"style":2327},[5290],{"type":26,"value":5291},"vec ",{"type":21,"tag":2320,"props":5293,"children":5294},{"style":3200},[5295],{"type":26,"value":3240},{"type":21,"tag":2320,"props":5297,"children":5298},{"style":2327},[5299],{"type":26,"value":5300}," np.array([raw.get(",{"type":21,"tag":2320,"props":5302,"children":5303},{"style":2345},[5304],{"type":26,"value":5305},"format",{"type":21,"tag":2320,"props":5307,"children":5308},{"style":2327},[5309],{"type":26,"value":4811},{"type":21,"tag":2320,"props":5311,"children":5312},{"style":3200},[5313],{"type":26,"value":3325},{"type":21,"tag":2320,"props":5315,"children":5316},{"style":2356},[5317],{"type":26,"value":4820},{"type":21,"tag":2320,"props":5319,"children":5320},{"style":2345},[5321],{"type":26,"value":3335},{"type":21,"tag":2320,"props":5323,"children":5324},{"style":2327},[5325],{"type":26,"value":4829},{"type":21,"tag":2320,"props":5327,"children":5328},{"style":2345},[5329],{"type":26,"value":3345},{"type":21,"tag":2320,"props":5331,"children":5332},{"style":2356},[5333],{"type":26,"value":4838},{"type":21,"tag":2320,"props":5335,"children":5336},{"style":2327},[5337],{"type":26,"value":5338},"), ",{"type":21,"tag":2320,"props":5340,"children":5341},{"style":2345},[5342],{"type":26,"value":5168},{"type":21,"tag":2320,"props":5344,"children":5345},{"style":2327},[5346],{"type":26,"value":5347},") ",{"type":21,"tag":2320,"props":5349,"children":5350},{"style":3200},[5351],{"type":26,"value":3493},{"type":21,"tag":2320,"props":5353,"children":5354},{"style":2327},[5355],{"type":26,"value":4745},{"type":21,"tag":2320,"props":5357,"children":5358},{"style":3200},[5359],{"type":26,"value":3503},{"type":21,"tag":2320,"props":5361,"children":5362},{"style":2345},[5363],{"type":26,"value":3508},{"type":21,"tag":2320,"props":5365,"children":5366},{"style":2327},[5367],{"type":26,"value":3320},{"type":21,"tag":2320,"props":5369,"children":5370},{"style":2345},[5371],{"type":26,"value":2419},{"type":21,"tag":2320,"props":5373,"children":5374},{"style":3200},[5375],{"type":26,"value":4713},{"type":21,"tag":2320,"props":5377,"children":5378},{"style":2327},[5379],{"type":26,"value":5380},"n)], ",{"type":21,"tag":2320,"props":5382,"children":5383},{"style":2345},[5384],{"type":26,"value":5385},"float",{"type":21,"tag":2320,"props":5387,"children":5388},{"style":2327},[5389],{"type":26,"value":5347},{"type":21,"tag":2320,"props":5391,"children":5392},{"style":3200},[5393],{"type":26,"value":2175},{"type":21,"tag":2320,"props":5395,"children":5396},{"style":2345},[5397],{"type":26,"value":5398}," SHOTS\n",{"type":21,"tag":2320,"props":5400,"children":5402},{"class":2322,"line":5401},42,[5403],{"type":21,"tag":2320,"props":5404,"children":5405},{"emptyLinePlaceholder":3224},[5406],{"type":26,"value":3227},{"type":21,"tag":2320,"props":5408,"children":5410},{"class":2322,"line":5409},43,[5411,5416,5420,5425,5430,5435,5439,5443,5448],{"type":21,"tag":2320,"props":5412,"children":5413},{"style":2327},[5414],{"type":26,"value":5415},"mit ",{"type":21,"tag":2320,"props":5417,"children":5418},{"style":3200},[5419],{"type":26,"value":3240},{"type":21,"tag":2320,"props":5421,"children":5422},{"style":2327},[5423],{"type":26,"value":5424}," np.clip(Minv ",{"type":21,"tag":2320,"props":5426,"children":5427},{"style":3200},[5428],{"type":26,"value":5429},"@",{"type":21,"tag":2320,"props":5431,"children":5432},{"style":2327},[5433],{"type":26,"value":5434}," vec, ",{"type":21,"tag":2320,"props":5436,"children":5437},{"style":2345},[5438],{"type":26,"value":5168},{"type":21,"tag":2320,"props":5440,"children":5441},{"style":2327},[5442],{"type":26,"value":1315},{"type":21,"tag":2320,"props":5444,"children":5445},{"style":2345},[5446],{"type":26,"value":5447},"None",{"type":21,"tag":2320,"props":5449,"children":5450},{"style":2327},[5451],{"type":26,"value":3300},{"type":21,"tag":2320,"props":5453,"children":5455},{"class":2322,"line":5454},44,[5456,5460,5465],{"type":21,"tag":2320,"props":5457,"children":5458},{"style":2327},[5459],{"type":26,"value":5415},{"type":21,"tag":2320,"props":5461,"children":5462},{"style":3200},[5463],{"type":26,"value":5464},"\u002F=",{"type":21,"tag":2320,"props":5466,"children":5467},{"style":2327},[5468],{"type":26,"value":5469}," mit.sum()\n",{"type":21,"tag":2320,"props":5471,"children":5473},{"class":2322,"line":5472},45,[5474],{"type":21,"tag":2320,"props":5475,"children":5476},{"emptyLinePlaceholder":3224},[5477],{"type":26,"value":3227},{"type":21,"tag":2320,"props":5479,"children":5481},{"class":2322,"line":5480},46,[5482,5486,5490,5495,5500,5504,5508,5513,5518,5523,5528,5533,5537,5541,5545,5549,5553,5557,5561],{"type":21,"tag":2320,"props":5483,"children":5484},{"style":2345},[5485],{"type":26,"value":3315},{"type":21,"tag":2320,"props":5487,"children":5488},{"style":2327},[5489],{"type":26,"value":3320},{"type":21,"tag":2320,"props":5491,"children":5492},{"style":2356},[5493],{"type":26,"value":5494},"\"raw      :\"",{"type":21,"tag":2320,"props":5496,"children":5497},{"style":2327},[5498],{"type":26,"value":5499},", {",{"type":21,"tag":2320,"props":5501,"children":5502},{"style":2345},[5503],{"type":26,"value":5305},{"type":21,"tag":2320,"props":5505,"children":5506},{"style":2327},[5507],{"type":26,"value":4811},{"type":21,"tag":2320,"props":5509,"children":5510},{"style":2356},[5511],{"type":26,"value":5512},"\"02b\"",{"type":21,"tag":2320,"props":5514,"children":5515},{"style":2327},[5516],{"type":26,"value":5517},"): ",{"type":21,"tag":2320,"props":5519,"children":5520},{"style":2345},[5521],{"type":26,"value":5522},"round",{"type":21,"tag":2320,"props":5524,"children":5525},{"style":2327},[5526],{"type":26,"value":5527},"(vec[i], ",{"type":21,"tag":2320,"props":5529,"children":5530},{"style":2345},[5531],{"type":26,"value":5532},"4",{"type":21,"tag":2320,"props":5534,"children":5535},{"style":2327},[5536],{"type":26,"value":5347},{"type":21,"tag":2320,"props":5538,"children":5539},{"style":3200},[5540],{"type":26,"value":3493},{"type":21,"tag":2320,"props":5542,"children":5543},{"style":2327},[5544],{"type":26,"value":4745},{"type":21,"tag":2320,"props":5546,"children":5547},{"style":3200},[5548],{"type":26,"value":3503},{"type":21,"tag":2320,"props":5550,"children":5551},{"style":2345},[5552],{"type":26,"value":3508},{"type":21,"tag":2320,"props":5554,"children":5555},{"style":2327},[5556],{"type":26,"value":3320},{"type":21,"tag":2320,"props":5558,"children":5559},{"style":2345},[5560],{"type":26,"value":5532},{"type":21,"tag":2320,"props":5562,"children":5563},{"style":2327},[5564],{"type":26,"value":5565},")})\n",{"type":21,"tag":2320,"props":5567,"children":5569},{"class":2322,"line":5568},47,[5570,5574,5578,5583,5587,5591,5595,5599,5603,5607,5612,5616,5620,5624,5628,5632,5636,5640,5644],{"type":21,"tag":2320,"props":5571,"children":5572},{"style":2345},[5573],{"type":26,"value":3315},{"type":21,"tag":2320,"props":5575,"children":5576},{"style":2327},[5577],{"type":26,"value":3320},{"type":21,"tag":2320,"props":5579,"children":5580},{"style":2356},[5581],{"type":26,"value":5582},"\"mitigated:\"",{"type":21,"tag":2320,"props":5584,"children":5585},{"style":2327},[5586],{"type":26,"value":5499},{"type":21,"tag":2320,"props":5588,"children":5589},{"style":2345},[5590],{"type":26,"value":5305},{"type":21,"tag":2320,"props":5592,"children":5593},{"style":2327},[5594],{"type":26,"value":4811},{"type":21,"tag":2320,"props":5596,"children":5597},{"style":2356},[5598],{"type":26,"value":5512},{"type":21,"tag":2320,"props":5600,"children":5601},{"style":2327},[5602],{"type":26,"value":5517},{"type":21,"tag":2320,"props":5604,"children":5605},{"style":2345},[5606],{"type":26,"value":5522},{"type":21,"tag":2320,"props":5608,"children":5609},{"style":2327},[5610],{"type":26,"value":5611},"(mit[i], ",{"type":21,"tag":2320,"props":5613,"children":5614},{"style":2345},[5615],{"type":26,"value":5532},{"type":21,"tag":2320,"props":5617,"children":5618},{"style":2327},[5619],{"type":26,"value":5347},{"type":21,"tag":2320,"props":5621,"children":5622},{"style":3200},[5623],{"type":26,"value":3493},{"type":21,"tag":2320,"props":5625,"children":5626},{"style":2327},[5627],{"type":26,"value":4745},{"type":21,"tag":2320,"props":5629,"children":5630},{"style":3200},[5631],{"type":26,"value":3503},{"type":21,"tag":2320,"props":5633,"children":5634},{"style":2345},[5635],{"type":26,"value":3508},{"type":21,"tag":2320,"props":5637,"children":5638},{"style":2327},[5639],{"type":26,"value":3320},{"type":21,"tag":2320,"props":5641,"children":5642},{"style":2345},[5643],{"type":26,"value":5532},{"type":21,"tag":2320,"props":5645,"children":5646},{"style":2327},[5647],{"type":26,"value":5565},{"type":21,"tag":22,"props":5649,"children":5650},{},[5651,5656],{"type":21,"tag":180,"props":5652,"children":5653},{},[5654],{"type":26,"value":5655},"Actual output from running this",{"type":26,"value":5657}," (Qiskit 2.5.0, Aer 0.17.2, 5% readout error):",{"type":21,"tag":2310,"props":5659,"children":5661},{"code":5660},"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",[5662],{"type":21,"tag":2080,"props":5663,"children":5664},{"__ignoreMap":7},[5665],{"type":26,"value":5660},{"type":21,"tag":22,"props":5667,"children":5668},{},[5669,5671,5677,5678,5684,5686,5692],{"type":26,"value":5670},"A Bell state should produce only ",{"type":21,"tag":2080,"props":5672,"children":5674},{"className":5673},[],[5675],{"type":26,"value":5676},"00",{"type":26,"value":38},{"type":21,"tag":2080,"props":5679,"children":5681},{"className":5680},[],[5682],{"type":26,"value":5683},"11",{"type":26,"value":5685},". 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":2080,"props":5687,"children":5689},{"className":5688},[],[5690],{"type":26,"value":5691},"2^n",{"type":26,"value":5693}," short calibration circuits.",{"type":21,"tag":22,"props":5695,"children":5696},{},[5697,5699,5704,5706,5712,5714,5719],{"type":26,"value":5698},"Two caveats. The ",{"type":21,"tag":2080,"props":5700,"children":5702},{"className":5701},[],[5703],{"type":26,"value":5691},{"type":26,"value":5705}," 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":29,"props":5707,"children":5709},{"href":5708},"\u002Fglossary\u002Fshot-noise",[5710],{"type":26,"value":5711},"shot noise",{"type":26,"value":5713},", which is why the code clips negatives. Run your calibration circuits with ",{"type":21,"tag":2054,"props":5715,"children":5716},{},[5717],{"type":26,"value":5718},"more",{"type":26,"value":5720}," shots than your actual experiment, not fewer.",{"type":21,"tag":49,"props":5722,"children":5724},{"id":5723},"step-2-dynamical-decoupling-nearly-free",[5725],{"type":26,"value":5726},"Step 2: Dynamical Decoupling (Nearly Free)",{"type":21,"tag":22,"props":5728,"children":5729},{},[5730,5732,5738,5740,5746],{"type":26,"value":5731},"Idle qubits are not safe qubits. While one part of your circuit executes, everything else is dephasing at its ",{"type":21,"tag":29,"props":5733,"children":5735},{"href":5734},"\u002Fglossary\u002Ft1-t2-time",[5736],{"type":26,"value":5737},"T2 rate",{"type":26,"value":5739},". Dynamical decoupling inserts pulse sequences (typically ",{"type":21,"tag":2080,"props":5741,"children":5743},{"className":5742},[],[5744],{"type":26,"value":5745},"X–delay–X–delay",{"type":26,"value":5747},") into idle windows, echoing away slow, low-frequency noise.",{"type":21,"tag":22,"props":5749,"children":5750},{},[5751,5753,5759],{"type":26,"value":5752},"In Qiskit this is a ",{"type":21,"tag":29,"props":5754,"children":5756},{"href":5755},"\u002Fglossary\u002Ftranspilation",[5757],{"type":26,"value":5758},"transpilation",{"type":26,"value":5760}," pass, not an algorithm change:",{"type":21,"tag":2310,"props":5762,"children":5764},{"code":5763,"language":3190,"meta":7,"className":3188,"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",[5765],{"type":21,"tag":2080,"props":5766,"children":5767},{"__ignoreMap":7},[5768,5789,5810,5831,5838,5855,5877,5885,5902,5924,5932,5939],{"type":21,"tag":2320,"props":5769,"children":5770},{"class":2322,"line":2323},[5771,5775,5780,5784],{"type":21,"tag":2320,"props":5772,"children":5773},{"style":3200},[5774],{"type":26,"value":3203},{"type":21,"tag":2320,"props":5776,"children":5777},{"style":2327},[5778],{"type":26,"value":5779}," qiskit.transpiler ",{"type":21,"tag":2320,"props":5781,"children":5782},{"style":3200},[5783],{"type":26,"value":3213},{"type":21,"tag":2320,"props":5785,"children":5786},{"style":2327},[5787],{"type":26,"value":5788}," PassManager\n",{"type":21,"tag":2320,"props":5790,"children":5791},{"class":2322,"line":150},[5792,5796,5801,5805],{"type":21,"tag":2320,"props":5793,"children":5794},{"style":3200},[5795],{"type":26,"value":3203},{"type":21,"tag":2320,"props":5797,"children":5798},{"style":2327},[5799],{"type":26,"value":5800}," qiskit.transpiler.passes ",{"type":21,"tag":2320,"props":5802,"children":5803},{"style":3200},[5804],{"type":26,"value":3213},{"type":21,"tag":2320,"props":5806,"children":5807},{"style":2327},[5808],{"type":26,"value":5809}," ALAPScheduleAnalysis, PadDynamicalDecoupling\n",{"type":21,"tag":2320,"props":5811,"children":5812},{"class":2322,"line":2341},[5813,5817,5822,5826],{"type":21,"tag":2320,"props":5814,"children":5815},{"style":3200},[5816],{"type":26,"value":3203},{"type":21,"tag":2320,"props":5818,"children":5819},{"style":2327},[5820],{"type":26,"value":5821}," qiskit.circuit.library ",{"type":21,"tag":2320,"props":5823,"children":5824},{"style":3200},[5825],{"type":26,"value":3213},{"type":21,"tag":2320,"props":5827,"children":5828},{"style":2327},[5829],{"type":26,"value":5830}," XGate\n",{"type":21,"tag":2320,"props":5832,"children":5833},{"class":2322,"line":2403},[5834],{"type":21,"tag":2320,"props":5835,"children":5836},{"emptyLinePlaceholder":3224},[5837],{"type":26,"value":3227},{"type":21,"tag":2320,"props":5839,"children":5840},{"class":2322,"line":2427},[5841,5846,5850],{"type":21,"tag":2320,"props":5842,"children":5843},{"style":2327},[5844],{"type":26,"value":5845},"pm ",{"type":21,"tag":2320,"props":5847,"children":5848},{"style":3200},[5849],{"type":26,"value":3240},{"type":21,"tag":2320,"props":5851,"children":5852},{"style":2327},[5853],{"type":26,"value":5854}," PassManager([\n",{"type":21,"tag":2320,"props":5856,"children":5857},{"class":2322,"line":854},[5858,5863,5868,5872],{"type":21,"tag":2320,"props":5859,"children":5860},{"style":2327},[5861],{"type":26,"value":5862},"    ALAPScheduleAnalysis(",{"type":21,"tag":2320,"props":5864,"children":5865},{"style":3265},[5866],{"type":26,"value":5867},"durations",{"type":21,"tag":2320,"props":5869,"children":5870},{"style":3200},[5871],{"type":26,"value":3240},{"type":21,"tag":2320,"props":5873,"children":5874},{"style":2327},[5875],{"type":26,"value":5876},"backend.instruction_durations),\n",{"type":21,"tag":2320,"props":5878,"children":5879},{"class":2322,"line":171},[5880],{"type":21,"tag":2320,"props":5881,"children":5882},{"style":2327},[5883],{"type":26,"value":5884},"    PadDynamicalDecoupling(\n",{"type":21,"tag":2320,"props":5886,"children":5887},{"class":2322,"line":16},[5888,5893,5897],{"type":21,"tag":2320,"props":5889,"children":5890},{"style":3265},[5891],{"type":26,"value":5892},"        durations",{"type":21,"tag":2320,"props":5894,"children":5895},{"style":3200},[5896],{"type":26,"value":3240},{"type":21,"tag":2320,"props":5898,"children":5899},{"style":2327},[5900],{"type":26,"value":5901},"backend.instruction_durations,\n",{"type":21,"tag":2320,"props":5903,"children":5904},{"class":2322,"line":1370},[5905,5910,5914,5919],{"type":21,"tag":2320,"props":5906,"children":5907},{"style":3265},[5908],{"type":26,"value":5909},"        dd_sequence",{"type":21,"tag":2320,"props":5911,"children":5912},{"style":3200},[5913],{"type":26,"value":3240},{"type":21,"tag":2320,"props":5915,"children":5916},{"style":2327},[5917],{"type":26,"value":5918},"[XGate(), XGate()],   ",{"type":21,"tag":2320,"props":5920,"children":5921},{"style":3450},[5922],{"type":26,"value":5923},"# XX sequence\n",{"type":21,"tag":2320,"props":5925,"children":5926},{"class":2322,"line":3446},[5927],{"type":21,"tag":2320,"props":5928,"children":5929},{"style":2327},[5930],{"type":26,"value":5931},"    ),\n",{"type":21,"tag":2320,"props":5933,"children":5934},{"class":2322,"line":3456},[5935],{"type":21,"tag":2320,"props":5936,"children":5937},{"style":2327},[5938],{"type":26,"value":3561},{"type":21,"tag":2320,"props":5940,"children":5941},{"class":2322,"line":474},[5942,5947,5951],{"type":21,"tag":2320,"props":5943,"children":5944},{"style":2327},[5945],{"type":26,"value":5946},"dd_circuit ",{"type":21,"tag":2320,"props":5948,"children":5949},{"style":3200},[5950],{"type":26,"value":3240},{"type":21,"tag":2320,"props":5952,"children":5953},{"style":2327},[5954],{"type":26,"value":5955}," pm.run(transpiled_circuit)\n",{"type":21,"tag":22,"props":5957,"children":5958},{},[5959],{"type":26,"value":5960},"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":49,"props":5962,"children":5964},{"id":5963},"step-3-pauli-twirling-randomized-compiling",[5965],{"type":26,"value":5966},"Step 3: Pauli Twirling \u002F Randomized Compiling",{"type":21,"tag":22,"props":5968,"children":5969},{},[5970,5972,5977],{"type":26,"value":5971},"Coherent errors are the nasty kind. A systematic over-rotation of 0.5° per gate doesn't average out. It accumulates ",{"type":21,"tag":2054,"props":5973,"children":5974},{},[5975],{"type":26,"value":5976},"linearly",{"type":26,"value":5978}," in amplitude, so error in the expectation value grows quadratically with depth. Stochastic errors merely accumulate additively.",{"type":21,"tag":22,"props":5980,"children":5981},{},[5982],{"type":26,"value":5983},"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":5985,"children":5986},{},[5987,5989,5994],{"type":26,"value":5988},"Twirling rarely improves accuracy much on its own. Its real value is that it makes the noise ",{"type":21,"tag":2054,"props":5990,"children":5991},{},[5992],{"type":26,"value":5993},"model-able",{"type":26,"value":5995},", 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":49,"props":5997,"children":5999},{"id":5998},"step-4-zero-noise-extrapolation",[6000],{"type":26,"value":6001},"Step 4: Zero-Noise Extrapolation",{"type":21,"tag":22,"props":6003,"children":6004},{},[6005,6007,6012],{"type":26,"value":6006},"ZNE is the technique behind most headline NISQ results, including IBM's ",{"type":21,"tag":29,"props":6008,"children":6009},{"href":1462},[6010],{"type":26,"value":6011},"quantum utility demonstration",{"type":26,"value":6013}," on a 127-qubit Eagle processor.",{"type":21,"tag":22,"props":6015,"children":6016},{},[6017,6019,6024,6026,6032,6034,6040],{"type":26,"value":6018},"The idea: you can't reduce hardware noise, but you ",{"type":21,"tag":2054,"props":6020,"children":6021},{},[6022],{"type":26,"value":6023},"increase",{"type":26,"value":6025}," it in a controlled way. Run the same circuit at noise scale factors λ = 1, 3, 5 (via unitary folding: replace ",{"type":21,"tag":2080,"props":6027,"children":6029},{"className":6028},[],[6030],{"type":26,"value":6031},"U",{"type":26,"value":6033}," with ",{"type":21,"tag":2080,"props":6035,"children":6037},{"className":6036},[],[6038],{"type":26,"value":6039},"U(U†U)^k",{"type":26,"value":6041},", 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":2310,"props":6043,"children":6045},{"code":6044,"language":3190,"meta":7,"className":3188,"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",[6046],{"type":21,"tag":2080,"props":6047,"children":6048},{"__ignoreMap":7},[6049,6066,6074,6113,6130,6155,6172,6184,6191,6221,6238,6246,6263,6301,6309,6399,6429,6436,6444,6468,6484,6516,6537,6568,6599,6619,6638,6645,6688,6723,6762],{"type":21,"tag":2320,"props":6050,"children":6051},{"class":2322,"line":2323},[6052,6056,6061],{"type":21,"tag":2320,"props":6053,"children":6054},{"style":3200},[6055],{"type":26,"value":4361},{"type":21,"tag":2320,"props":6057,"children":6058},{"style":4364},[6059],{"type":26,"value":6060}," fold_global",{"type":21,"tag":2320,"props":6062,"children":6063},{"style":2327},[6064],{"type":26,"value":6065},"(qc, scale):\n",{"type":21,"tag":2320,"props":6067,"children":6068},{"class":2322,"line":150},[6069],{"type":21,"tag":2320,"props":6070,"children":6071},{"style":2356},[6072],{"type":26,"value":6073},"    \"\"\"Odd integer scale: U -> U (U^dag U)^k\"\"\"\n",{"type":21,"tag":2320,"props":6075,"children":6076},{"class":2322,"line":2341},[6077,6082,6086,6091,6095,6100,6104,6109],{"type":21,"tag":2320,"props":6078,"children":6079},{"style":2327},[6080],{"type":26,"value":6081},"    k ",{"type":21,"tag":2320,"props":6083,"children":6084},{"style":3200},[6085],{"type":26,"value":3240},{"type":21,"tag":2320,"props":6087,"children":6088},{"style":2327},[6089],{"type":26,"value":6090}," (scale ",{"type":21,"tag":2320,"props":6092,"children":6093},{"style":3200},[6094],{"type":26,"value":4848},{"type":21,"tag":2320,"props":6096,"children":6097},{"style":2345},[6098],{"type":26,"value":6099}," 1",{"type":21,"tag":2320,"props":6101,"children":6102},{"style":2327},[6103],{"type":26,"value":5347},{"type":21,"tag":2320,"props":6105,"children":6106},{"style":3200},[6107],{"type":26,"value":6108},"\u002F\u002F",{"type":21,"tag":2320,"props":6110,"children":6111},{"style":2345},[6112],{"type":26,"value":5094},{"type":21,"tag":2320,"props":6114,"children":6115},{"class":2322,"line":2403},[6116,6121,6125],{"type":21,"tag":2320,"props":6117,"children":6118},{"style":2327},[6119],{"type":26,"value":6120},"    out, inv ",{"type":21,"tag":2320,"props":6122,"children":6123},{"style":3200},[6124],{"type":26,"value":3240},{"type":21,"tag":2320,"props":6126,"children":6127},{"style":2327},[6128],{"type":26,"value":6129}," qc.copy(), qc.inverse()\n",{"type":21,"tag":2320,"props":6131,"children":6132},{"class":2322,"line":2427},[6133,6137,6142,6146,6150],{"type":21,"tag":2320,"props":6134,"children":6135},{"style":3200},[6136],{"type":26,"value":4740},{"type":21,"tag":2320,"props":6138,"children":6139},{"style":2327},[6140],{"type":26,"value":6141}," _ ",{"type":21,"tag":2320,"props":6143,"children":6144},{"style":3200},[6145],{"type":26,"value":3503},{"type":21,"tag":2320,"props":6147,"children":6148},{"style":2345},[6149],{"type":26,"value":3508},{"type":21,"tag":2320,"props":6151,"children":6152},{"style":2327},[6153],{"type":26,"value":6154},"(k):\n",{"type":21,"tag":2320,"props":6156,"children":6157},{"class":2322,"line":854},[6158,6163,6167],{"type":21,"tag":2320,"props":6159,"children":6160},{"style":2327},[6161],{"type":26,"value":6162},"        out ",{"type":21,"tag":2320,"props":6164,"children":6165},{"style":3200},[6166],{"type":26,"value":3240},{"type":21,"tag":2320,"props":6168,"children":6169},{"style":2327},[6170],{"type":26,"value":6171}," out.compose(inv).compose(qc)\n",{"type":21,"tag":2320,"props":6173,"children":6174},{"class":2322,"line":171},[6175,6179],{"type":21,"tag":2320,"props":6176,"children":6177},{"style":3200},[6178],{"type":26,"value":4586},{"type":21,"tag":2320,"props":6180,"children":6181},{"style":2327},[6182],{"type":26,"value":6183}," out\n",{"type":21,"tag":2320,"props":6185,"children":6186},{"class":2322,"line":16},[6187],{"type":21,"tag":2320,"props":6188,"children":6189},{"emptyLinePlaceholder":3224},[6190],{"type":26,"value":3227},{"type":21,"tag":2320,"props":6192,"children":6193},{"class":2322,"line":1370},[6194,6198,6203,6208,6212,6217],{"type":21,"tag":2320,"props":6195,"children":6196},{"style":3200},[6197],{"type":26,"value":4361},{"type":21,"tag":2320,"props":6199,"children":6200},{"style":4364},[6201],{"type":26,"value":6202}," expval_parity",{"type":21,"tag":2320,"props":6204,"children":6205},{"style":2327},[6206],{"type":26,"value":6207},"(qc, backend, shots",{"type":21,"tag":2320,"props":6209,"children":6210},{"style":3200},[6211],{"type":26,"value":3240},{"type":21,"tag":2320,"props":6213,"children":6214},{"style":2345},[6215],{"type":26,"value":6216},"40000",{"type":21,"tag":2320,"props":6218,"children":6219},{"style":2327},[6220],{"type":26,"value":4414},{"type":21,"tag":2320,"props":6222,"children":6223},{"class":2322,"line":3446},[6224,6229,6233],{"type":21,"tag":2320,"props":6225,"children":6226},{"style":2327},[6227],{"type":26,"value":6228},"    c ",{"type":21,"tag":2320,"props":6230,"children":6231},{"style":3200},[6232],{"type":26,"value":3240},{"type":21,"tag":2320,"props":6234,"children":6235},{"style":2327},[6236],{"type":26,"value":6237}," qc.copy()\n",{"type":21,"tag":2320,"props":6239,"children":6240},{"class":2322,"line":3456},[6241],{"type":21,"tag":2320,"props":6242,"children":6243},{"style":2327},[6244],{"type":26,"value":6245},"    c.measure_all()\n",{"type":21,"tag":2320,"props":6247,"children":6248},{"class":2322,"line":474},[6249,6254,6258],{"type":21,"tag":2320,"props":6250,"children":6251},{"style":2327},[6252],{"type":26,"value":6253},"    counts ",{"type":21,"tag":2320,"props":6255,"children":6256},{"style":3200},[6257],{"type":26,"value":3240},{"type":21,"tag":2320,"props":6259,"children":6260},{"style":2327},[6261],{"type":26,"value":6262}," backend.run(\n",{"type":21,"tag":2320,"props":6264,"children":6265},{"class":2322,"line":3516},[6266,6271,6276,6280,6284,6288,6292,6296],{"type":21,"tag":2320,"props":6267,"children":6268},{"style":2327},[6269],{"type":26,"value":6270},"        transpile(c, backend, ",{"type":21,"tag":2320,"props":6272,"children":6273},{"style":3265},[6274],{"type":26,"value":6275},"optimization_level",{"type":21,"tag":2320,"props":6277,"children":6278},{"style":3200},[6279],{"type":26,"value":3240},{"type":21,"tag":2320,"props":6281,"children":6282},{"style":2345},[6283],{"type":26,"value":5168},{"type":21,"tag":2320,"props":6285,"children":6286},{"style":2327},[6287],{"type":26,"value":5338},{"type":21,"tag":2320,"props":6289,"children":6290},{"style":3265},[6291],{"type":26,"value":4123},{"type":21,"tag":2320,"props":6293,"children":6294},{"style":3200},[6295],{"type":26,"value":3240},{"type":21,"tag":2320,"props":6297,"children":6298},{"style":2327},[6299],{"type":26,"value":6300},"shots\n",{"type":21,"tag":2320,"props":6302,"children":6303},{"class":2322,"line":3564},[6304],{"type":21,"tag":2320,"props":6305,"children":6306},{"style":2327},[6307],{"type":26,"value":6308},"    ).result().get_counts()\n",{"type":21,"tag":2320,"props":6310,"children":6311},{"class":2322,"line":3606},[6312,6316,6321,6326,6330,6334,6338,6342,6347,6352,6356,6361,6366,6371,6375,6380,6385,6389,6394],{"type":21,"tag":2320,"props":6313,"children":6314},{"style":3200},[6315],{"type":26,"value":4586},{"type":21,"tag":2320,"props":6317,"children":6318},{"style":2345},[6319],{"type":26,"value":6320}," sum",{"type":21,"tag":2320,"props":6322,"children":6323},{"style":2327},[6324],{"type":26,"value":6325},"((",{"type":21,"tag":2320,"props":6327,"children":6328},{"style":3200},[6329],{"type":26,"value":4848},{"type":21,"tag":2320,"props":6331,"children":6332},{"style":2345},[6333],{"type":26,"value":3556},{"type":21,"tag":2320,"props":6335,"children":6336},{"style":2327},[6337],{"type":26,"value":5347},{"type":21,"tag":2320,"props":6339,"children":6340},{"style":3200},[6341],{"type":26,"value":4713},{"type":21,"tag":2320,"props":6343,"children":6344},{"style":2327},[6345],{"type":26,"value":6346}," (k.replace(",{"type":21,"tag":2320,"props":6348,"children":6349},{"style":2356},[6350],{"type":26,"value":6351},"\" \"",{"type":21,"tag":2320,"props":6353,"children":6354},{"style":2327},[6355],{"type":26,"value":1315},{"type":21,"tag":2320,"props":6357,"children":6358},{"style":2356},[6359],{"type":26,"value":6360},"\"\"",{"type":21,"tag":2320,"props":6362,"children":6363},{"style":2327},[6364],{"type":26,"value":6365},").count(",{"type":21,"tag":2320,"props":6367,"children":6368},{"style":2356},[6369],{"type":26,"value":6370},"\"1\"",{"type":21,"tag":2320,"props":6372,"children":6373},{"style":2327},[6374],{"type":26,"value":5347},{"type":21,"tag":2320,"props":6376,"children":6377},{"style":3200},[6378],{"type":26,"value":6379},"%",{"type":21,"tag":2320,"props":6381,"children":6382},{"style":2345},[6383],{"type":26,"value":6384}," 2",{"type":21,"tag":2320,"props":6386,"children":6387},{"style":2327},[6388],{"type":26,"value":5347},{"type":21,"tag":2320,"props":6390,"children":6391},{"style":3200},[6392],{"type":26,"value":6393},"*",{"type":21,"tag":2320,"props":6395,"children":6396},{"style":2327},[6397],{"type":26,"value":6398}," v\n",{"type":21,"tag":2320,"props":6400,"children":6401},{"class":2322,"line":4631},[6402,6407,6412,6416,6421,6425],{"type":21,"tag":2320,"props":6403,"children":6404},{"style":3200},[6405],{"type":26,"value":6406},"               for",{"type":21,"tag":2320,"props":6408,"children":6409},{"style":2327},[6410],{"type":26,"value":6411}," k, v ",{"type":21,"tag":2320,"props":6413,"children":6414},{"style":3200},[6415],{"type":26,"value":3503},{"type":21,"tag":2320,"props":6417,"children":6418},{"style":2327},[6419],{"type":26,"value":6420}," counts.items()) ",{"type":21,"tag":2320,"props":6422,"children":6423},{"style":3200},[6424],{"type":26,"value":2175},{"type":21,"tag":2320,"props":6426,"children":6427},{"style":2327},[6428],{"type":26,"value":5055},{"type":21,"tag":2320,"props":6430,"children":6431},{"class":2322,"line":4650},[6432],{"type":21,"tag":2320,"props":6433,"children":6434},{"emptyLinePlaceholder":3224},[6435],{"type":26,"value":3227},{"type":21,"tag":2320,"props":6437,"children":6438},{"class":2322,"line":4658},[6439],{"type":21,"tag":2320,"props":6440,"children":6441},{"style":3450},[6442],{"type":26,"value":6443},"# 4-qubit GHZ padded with cancelling CX pairs, ideal \u003CZZZZ> = +1.0\n",{"type":21,"tag":2320,"props":6445,"children":6446},{"class":2322,"line":4689},[6447,6452,6456,6460,6464],{"type":21,"tag":2320,"props":6448,"children":6449},{"style":2327},[6450],{"type":26,"value":6451},"base ",{"type":21,"tag":2320,"props":6453,"children":6454},{"style":3200},[6455],{"type":26,"value":3240},{"type":21,"tag":2320,"props":6457,"children":6458},{"style":2327},[6459],{"type":26,"value":5138},{"type":21,"tag":2320,"props":6461,"children":6462},{"style":2345},[6463],{"type":26,"value":5532},{"type":21,"tag":2320,"props":6465,"children":6466},{"style":2327},[6467],{"type":26,"value":3300},{"type":21,"tag":2320,"props":6469,"children":6470},{"class":2322,"line":4734},[6471,6476,6480],{"type":21,"tag":2320,"props":6472,"children":6473},{"style":2327},[6474],{"type":26,"value":6475},"base.h(",{"type":21,"tag":2320,"props":6477,"children":6478},{"style":2345},[6479],{"type":26,"value":5168},{"type":21,"tag":2320,"props":6481,"children":6482},{"style":2327},[6483],{"type":26,"value":3300},{"type":21,"tag":2320,"props":6485,"children":6486},{"class":2322,"line":4773},[6487,6491,6495,6499,6503,6507,6512],{"type":21,"tag":2320,"props":6488,"children":6489},{"style":3200},[6490],{"type":26,"value":3493},{"type":21,"tag":2320,"props":6492,"children":6493},{"style":2327},[6494],{"type":26,"value":3498},{"type":21,"tag":2320,"props":6496,"children":6497},{"style":3200},[6498],{"type":26,"value":3503},{"type":21,"tag":2320,"props":6500,"children":6501},{"style":2345},[6502],{"type":26,"value":3508},{"type":21,"tag":2320,"props":6504,"children":6505},{"style":2327},[6506],{"type":26,"value":3320},{"type":21,"tag":2320,"props":6508,"children":6509},{"style":2345},[6510],{"type":26,"value":6511},"3",{"type":21,"tag":2320,"props":6513,"children":6514},{"style":2327},[6515],{"type":26,"value":4414},{"type":21,"tag":2320,"props":6517,"children":6518},{"class":2322,"line":4791},[6519,6524,6529,6533],{"type":21,"tag":2320,"props":6520,"children":6521},{"style":2327},[6522],{"type":26,"value":6523},"    base.cx(q, q ",{"type":21,"tag":2320,"props":6525,"children":6526},{"style":3200},[6527],{"type":26,"value":6528},"+",{"type":21,"tag":2320,"props":6530,"children":6531},{"style":2345},[6532],{"type":26,"value":6099},{"type":21,"tag":2320,"props":6534,"children":6535},{"style":2327},[6536],{"type":26,"value":3300},{"type":21,"tag":2320,"props":6538,"children":6539},{"class":2322,"line":4865},[6540,6544,6548,6552,6556,6560,6564],{"type":21,"tag":2320,"props":6541,"children":6542},{"style":3200},[6543],{"type":26,"value":3493},{"type":21,"tag":2320,"props":6545,"children":6546},{"style":2327},[6547],{"type":26,"value":6141},{"type":21,"tag":2320,"props":6549,"children":6550},{"style":3200},[6551],{"type":26,"value":3503},{"type":21,"tag":2320,"props":6553,"children":6554},{"style":2345},[6555],{"type":26,"value":3508},{"type":21,"tag":2320,"props":6557,"children":6558},{"style":2327},[6559],{"type":26,"value":3320},{"type":21,"tag":2320,"props":6561,"children":6562},{"style":2345},[6563],{"type":26,"value":5532},{"type":21,"tag":2320,"props":6565,"children":6566},{"style":2327},[6567],{"type":26,"value":4414},{"type":21,"tag":2320,"props":6569,"children":6570},{"class":2322,"line":4893},[6571,6575,6579,6583,6587,6591,6595],{"type":21,"tag":2320,"props":6572,"children":6573},{"style":3200},[6574],{"type":26,"value":4740},{"type":21,"tag":2320,"props":6576,"children":6577},{"style":2327},[6578],{"type":26,"value":3498},{"type":21,"tag":2320,"props":6580,"children":6581},{"style":3200},[6582],{"type":26,"value":3503},{"type":21,"tag":2320,"props":6584,"children":6585},{"style":2345},[6586],{"type":26,"value":3508},{"type":21,"tag":2320,"props":6588,"children":6589},{"style":2327},[6590],{"type":26,"value":3320},{"type":21,"tag":2320,"props":6592,"children":6593},{"style":2345},[6594],{"type":26,"value":6511},{"type":21,"tag":2320,"props":6596,"children":6597},{"style":2327},[6598],{"type":26,"value":4414},{"type":21,"tag":2320,"props":6600,"children":6601},{"class":2322,"line":4922},[6602,6607,6611,6615],{"type":21,"tag":2320,"props":6603,"children":6604},{"style":2327},[6605],{"type":26,"value":6606},"        base.cx(q, q ",{"type":21,"tag":2320,"props":6608,"children":6609},{"style":3200},[6610],{"type":26,"value":6528},{"type":21,"tag":2320,"props":6612,"children":6613},{"style":2345},[6614],{"type":26,"value":6099},{"type":21,"tag":2320,"props":6616,"children":6617},{"style":2327},[6618],{"type":26,"value":3300},{"type":21,"tag":2320,"props":6620,"children":6621},{"class":2322,"line":4931},[6622,6626,6630,6634],{"type":21,"tag":2320,"props":6623,"children":6624},{"style":2327},[6625],{"type":26,"value":6606},{"type":21,"tag":2320,"props":6627,"children":6628},{"style":3200},[6629],{"type":26,"value":6528},{"type":21,"tag":2320,"props":6631,"children":6632},{"style":2345},[6633],{"type":26,"value":6099},{"type":21,"tag":2320,"props":6635,"children":6636},{"style":2327},[6637],{"type":26,"value":3300},{"type":21,"tag":2320,"props":6639,"children":6640},{"class":2322,"line":4959},[6641],{"type":21,"tag":2320,"props":6642,"children":6643},{"emptyLinePlaceholder":3224},[6644],{"type":26,"value":3227},{"type":21,"tag":2320,"props":6646,"children":6647},{"class":2322,"line":4990},[6648,6653,6657,6662,6666,6670,6674,6678,6683],{"type":21,"tag":2320,"props":6649,"children":6650},{"style":2327},[6651],{"type":26,"value":6652},"scales ",{"type":21,"tag":2320,"props":6654,"children":6655},{"style":3200},[6656],{"type":26,"value":3240},{"type":21,"tag":2320,"props":6658,"children":6659},{"style":2327},[6660],{"type":26,"value":6661}," [",{"type":21,"tag":2320,"props":6663,"children":6664},{"style":2345},[6665],{"type":26,"value":3556},{"type":21,"tag":2320,"props":6667,"children":6668},{"style":2327},[6669],{"type":26,"value":1315},{"type":21,"tag":2320,"props":6671,"children":6672},{"style":2345},[6673],{"type":26,"value":6511},{"type":21,"tag":2320,"props":6675,"children":6676},{"style":2327},[6677],{"type":26,"value":1315},{"type":21,"tag":2320,"props":6679,"children":6680},{"style":2345},[6681],{"type":26,"value":6682},"5",{"type":21,"tag":2320,"props":6684,"children":6685},{"style":2327},[6686],{"type":26,"value":6687},"]\n",{"type":21,"tag":2320,"props":6689,"children":6690},{"class":2322,"line":5012},[6691,6696,6700,6705,6709,6714,6718],{"type":21,"tag":2320,"props":6692,"children":6693},{"style":2327},[6694],{"type":26,"value":6695},"vals ",{"type":21,"tag":2320,"props":6697,"children":6698},{"style":3200},[6699],{"type":26,"value":3240},{"type":21,"tag":2320,"props":6701,"children":6702},{"style":2327},[6703],{"type":26,"value":6704}," [expval_parity(fold_global(base, s), backend) ",{"type":21,"tag":2320,"props":6706,"children":6707},{"style":3200},[6708],{"type":26,"value":3493},{"type":21,"tag":2320,"props":6710,"children":6711},{"style":2327},[6712],{"type":26,"value":6713}," s ",{"type":21,"tag":2320,"props":6715,"children":6716},{"style":3200},[6717],{"type":26,"value":3503},{"type":21,"tag":2320,"props":6719,"children":6720},{"style":2327},[6721],{"type":26,"value":6722}," scales]\n",{"type":21,"tag":2320,"props":6724,"children":6725},{"class":2322,"line":5058},[6726,6731,6735,6740,6744,6748,6752,6757],{"type":21,"tag":2320,"props":6727,"children":6728},{"style":2327},[6729],{"type":26,"value":6730},"zne ",{"type":21,"tag":2320,"props":6732,"children":6733},{"style":3200},[6734],{"type":26,"value":3240},{"type":21,"tag":2320,"props":6736,"children":6737},{"style":2327},[6738],{"type":26,"value":6739}," np.polyval(np.polyfit(scales, vals, ",{"type":21,"tag":2320,"props":6741,"children":6742},{"style":2345},[6743],{"type":26,"value":2419},{"type":21,"tag":2320,"props":6745,"children":6746},{"style":2327},[6747],{"type":26,"value":5338},{"type":21,"tag":2320,"props":6749,"children":6750},{"style":2345},[6751],{"type":26,"value":5168},{"type":21,"tag":2320,"props":6753,"children":6754},{"style":2327},[6755],{"type":26,"value":6756},")   ",{"type":21,"tag":2320,"props":6758,"children":6759},{"style":3450},[6760],{"type":26,"value":6761},"# Richardson, order 2\n",{"type":21,"tag":2320,"props":6763,"children":6764},{"class":2322,"line":5071},[6765,6769,6774,6779],{"type":21,"tag":2320,"props":6766,"children":6767},{"style":2345},[6768],{"type":26,"value":3315},{"type":21,"tag":2320,"props":6770,"children":6771},{"style":2327},[6772],{"type":26,"value":6773},"(vals, ",{"type":21,"tag":2320,"props":6775,"children":6776},{"style":2356},[6777],{"type":26,"value":6778},"\"->\"",{"type":21,"tag":2320,"props":6780,"children":6781},{"style":2327},[6782],{"type":26,"value":6783},", zne)\n",{"type":21,"tag":22,"props":6785,"children":6786},{},[6787,6792],{"type":21,"tag":180,"props":6788,"children":6789},{},[6790],{"type":26,"value":6791},"Real measured output",{"type":26,"value":6793},", same versions, readout error switched off to isolate gate noise. With a 0.4% two-qubit error rate:",{"type":21,"tag":2310,"props":6795,"children":6797},{"code":6796},"scale 1: 0.8973   scale 3: 0.7286   scale 5: 0.5767\nZNE estimate: 0.988   (exact: 1.000)\n",[6798],{"type":21,"tag":2080,"props":6799,"children":6800},{"__ignoreMap":7},[6801],{"type":26,"value":6796},{"type":21,"tag":22,"props":6803,"children":6804},{},[6805],{"type":26,"value":6806},"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":49,"props":6808,"children":6810},{"id":6809},"when-zne-lies",[6811],{"type":26,"value":6812},"When ZNE Lies",{"type":21,"tag":22,"props":6814,"children":6815},{},[6816],{"type":26,"value":6817},"Now turn the two-qubit error rate up to 4% and rerun the identical code:",{"type":21,"tag":2310,"props":6819,"children":6821},{"code":6820},"scale 1: 0.3311   scale 3: 0.0320   scale 5: 0.0008\nZNE estimate: 0.581   (exact: 1.000)\n",[6822],{"type":21,"tag":2080,"props":6823,"children":6824},{"__ignoreMap":7},[6825],{"type":26,"value":6820},{"type":21,"tag":22,"props":6827,"children":6828},{},[6829,6831,6836],{"type":26,"value":6830},"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":2054,"props":6832,"children":6833},{},[6834],{"type":26,"value":6835},"gone",{"type":26,"value":6837},". 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":6839,"children":6840},{},[6841,6843,6849,6851,6856,6858,6863],{"type":26,"value":6842},"This is precisely the failure mode Köster and Mauerer characterize in ",{"type":21,"tag":29,"props":6844,"children":6846},{"href":6845},"\u002Fresearch\u002Fzne-artefactual-improvements-2026",[6847],{"type":26,"value":6848},"Artefactual Improvements in Zero-Noise Extrapolation",{"type":26,"value":6850}," (2026). Their finding: once noise amplification pushes past usable signal, ",{"type":21,"tag":180,"props":6852,"children":6853},{},[6854],{"type":26,"value":6855},"Richardson extrapolation degenerates into a fixed rescaling of a single noisy measurement",{"type":26,"value":6857},". 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":2054,"props":6859,"children":6860},{},[6861],{"type":26,"value":6862},"overshot",{"type":26,"value":6864}," the ideal value by up to 21%.",{"type":21,"tag":22,"props":6866,"children":6867},{},[6868,6870,6875],{"type":26,"value":6869},"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":2054,"props":6871,"children":6872},{},[6873],{"type":26,"value":6874},"larger",{"type":26,"value":6876}," 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":6878,"children":6879},{},[6880,6885],{"type":21,"tag":180,"props":6881,"children":6882},{},[6883],{"type":26,"value":6884},"The operational lesson: improvement magnitude never validates a mitigation result.",{"type":26,"value":6886}," 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":49,"props":6888,"children":6890},{"id":6889},"the-sanity-checks-that-catch-this",[6891],{"type":26,"value":6892},"The Sanity Checks That Catch This",{"type":21,"tag":22,"props":6894,"children":6895},{},[6896],{"type":26,"value":6897},"Three of them, none expensive:",{"type":21,"tag":22,"props":6899,"children":6900},{},[6901,6906,6908,6914],{"type":21,"tag":180,"props":6902,"children":6903},{},[6904],{"type":26,"value":6905},"1. Inspect the raw scale-factor points, always.",{"type":26,"value":6907}," 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":2080,"props":6909,"children":6911},{"className":6910},[],[6912],{"type":26,"value":6913},"0.0008",{"type":26,"value":6915}," tells you the extrapolation is unsupported.",{"type":21,"tag":22,"props":6917,"children":6918},{},[6919,6924,6926,6931,6933,6939,6941,6946],{"type":21,"tag":180,"props":6920,"children":6921},{},[6922],{"type":26,"value":6923},"2. Run a negative control.",{"type":26,"value":6925}," Build a variant of your folding that ",{"type":21,"tag":2054,"props":6927,"children":6928},{},[6929],{"type":26,"value":6930},"shouldn't",{"type":26,"value":6932}," work (random gates of comparable depth instead of ",{"type":21,"tag":2080,"props":6934,"children":6936},{"className":6935},[],[6937],{"type":26,"value":6938},"U†U",{"type":26,"value":6940}," 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":2054,"props":6942,"children":6943},{},[6944],{"type":26,"value":6945},"away",{"type":26,"value":6947}," 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":6949,"children":6950},{},[6951,6962],{"type":21,"tag":180,"props":6952,"children":6953},{},[6954,6956,6960],{"type":26,"value":6955},"3. Verify against a ",{"type":21,"tag":29,"props":6957,"children":6958},{"href":446},[6959],{"type":26,"value":3286},{"type":26,"value":6961}," at small scale.",{"type":26,"value":6963}," Run the same mitigation pipeline on a problem size you compute exactly. If ZNE doesn't recover the known answer at 6 qubits, nothing about 60 qubits will be trustworthy.",{"type":21,"tag":49,"props":6965,"children":6967},{"id":6966},"probabilistic-error-cancellation-briefly",[6968],{"type":26,"value":6969},"Probabilistic Error Cancellation (Briefly)",{"type":21,"tag":22,"props":6971,"children":6972},{},[6973,6975,6980],{"type":26,"value":6974},"PEC is the rigorous option. Characterize the noise channel precisely, express the ",{"type":21,"tag":2054,"props":6976,"children":6977},{},[6978],{"type":26,"value":6979},"inverse",{"type":26,"value":6981}," 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":6983,"children":6984},{},[6985,6987,6993],{"type":26,"value":6986},"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":29,"props":6988,"children":6990},{"href":6989},"\u002Fglossary\u002Fshot-budget",[6991],{"type":26,"value":6992},"shot budget",{"type":26,"value":6994},". For most work, it isn't.",{"type":21,"tag":49,"props":6996,"children":6998},{"id":6997},"what-to-do",[6999],{"type":26,"value":7000},"What To Do",{"type":21,"tag":22,"props":7002,"children":7003},{},[7004],{"type":26,"value":7005},"In order:",{"type":21,"tag":7007,"props":7008,"children":7009},"ol",{},[7010,7020,7030,7040,7050],{"type":21,"tag":3122,"props":7011,"children":7012},{},[7013,7018],{"type":21,"tag":180,"props":7014,"children":7015},{},[7016],{"type":26,"value":7017},"Readout mitigation",{"type":26,"value":7019},": always. Cheap, bounded, low-risk.",{"type":21,"tag":3122,"props":7021,"children":7022},{},[7023,7028],{"type":21,"tag":180,"props":7024,"children":7025},{},[7026],{"type":26,"value":7027},"Dynamical decoupling",{"type":26,"value":7029},": always, if your circuit has idle qubits. Free.",{"type":21,"tag":3122,"props":7031,"children":7032},{},[7033,7038],{"type":21,"tag":180,"props":7034,"children":7035},{},[7036],{"type":26,"value":7037},"Twirling",{"type":26,"value":7039},": if you plan to use ZNE or PEC, so the noise is stochastic.",{"type":21,"tag":3122,"props":7041,"children":7042},{},[7043,7048],{"type":21,"tag":180,"props":7044,"children":7045},{},[7046],{"type":26,"value":7047},"ZNE",{"type":26,"value":7049},": only with scale-factor inspection and a negative control.",{"type":21,"tag":3122,"props":7051,"children":7052},{},[7053,7058],{"type":21,"tag":180,"props":7054,"children":7055},{},[7056],{"type":26,"value":7057},"PEC",{"type":26,"value":7059},": only when the circuit is small and the answer matters more than the cost.",{"type":21,"tag":22,"props":7061,"children":7062},{},[7063,7068,7070,7075,7077,7083],{"type":21,"tag":180,"props":7064,"children":7065},{},[7066],{"type":26,"value":7067},"Skip mitigation entirely when:",{"type":26,"value":7069}," 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":2054,"props":7071,"children":7072},{},[7073],{"type":26,"value":7074},"gradient direction",{"type":26,"value":7076},": 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":29,"props":7078,"children":7080},{"href":7079},"\u002Fblog\u002Freduce-shot-count",[7081],{"type":26,"value":7082},"cutting your shot count",{"type":26,"value":802},{"type":21,"tag":22,"props":7085,"children":7086},{},[7087,7089,7095],{"type":26,"value":7088},"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":29,"props":7090,"children":7092},{"href":7091},"\u002Fsdks\u002Fqiskit",[7093],{"type":26,"value":7094},"Qiskit tooling",{"type":26,"value":7096},", always sanity-check against exact simulation, and treat any unvalidated improvement as a hypothesis rather than a result.",{"type":21,"tag":22,"props":7098,"children":7099},{},[7100,7105,7106,7111,7113,7118,7119],{"type":21,"tag":180,"props":7101,"children":7102},{},[7103],{"type":26,"value":7104},"Related:",{"type":26,"value":1307},{"type":21,"tag":29,"props":7107,"children":7108},{"href":84},[7109],{"type":26,"value":7110},"Error correction explained",{"type":26,"value":7112}," · ",{"type":21,"tag":29,"props":7114,"children":7115},{"href":6845},[7116],{"type":26,"value":7117},"ZNE artefacts paper",{"type":26,"value":7112},{"type":21,"tag":29,"props":7120,"children":7122},{"href":7121},"\u002Fglossary\u002Fquantum-utility",[7123],{"type":26,"value":7124},"Quantum utility",{"type":21,"tag":2694,"props":7126,"children":7127},{},[7128],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":7130},[7131,7132,7133,7134,7135,7136,7137,7138,7139],{"id":4004,"depth":150,"text":4007},{"id":4201,"depth":150,"text":4204},{"id":5723,"depth":150,"text":5726},{"id":5963,"depth":150,"text":5966},{"id":5998,"depth":150,"text":6001},{"id":6809,"depth":150,"text":6812},{"id":6889,"depth":150,"text":6892},{"id":6966,"depth":150,"text":6969},{"id":6997,"depth":150,"text":7000},"content:blog:error-mitigation-practical-guide.md","blog\u002Ferror-mitigation-practical-guide.md","blog\u002Ferror-mitigation-practical-guide",{"_path":7144,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":7145,"description":7146,"date":3063,"author":11,"tags":7147,"readingTime":3446,"body":7150,"_type":156,"_id":8882,"_source":158,"_file":8883,"_stem":8884,"_extension":161},"\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.",[7148,1369,7149],"Algorithms","Beginners",{"type":18,"children":7151,"toc":8870},[7152,7163,7168,7174,7179,7184,7196,7202,7207,7237,7242,7248,7261,7413,7426,7432,7437,7458,7779,7807,7813,7818,8040,8053,8059,8064,8072,8082,8087,8505,8510,8518,8530,8536,8548,8553,8561,8573,8585,8591,8596,8614,8624,8648,8660,8666,8678,8746,8765,8784,8790,8866],{"type":21,"tag":22,"props":7153,"children":7154},{},[7155,7161],{"type":21,"tag":29,"props":7156,"children":7158},{"href":7157},"\u002Fglossary\u002Fgrover-algorithm",[7159],{"type":26,"value":7160},"Grover's algorithm",{"type":26,"value":7162}," 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":7164,"children":7165},{},[7166],{"type":26,"value":7167},"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":49,"props":7169,"children":7171},{"id":7170},"the-problem-unstructured-search",[7172],{"type":26,"value":7173},"The Problem: Unstructured Search",{"type":21,"tag":22,"props":7175,"children":7176},{},[7177],{"type":26,"value":7178},"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":7180,"children":7181},{},[7182],{"type":26,"value":7183},"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":7185,"children":7186},{},[7187,7189,7194],{"type":26,"value":7188},"The word ",{"type":21,"tag":180,"props":7190,"children":7191},{},[7192],{"type":26,"value":7193},"unstructured",{"type":26,"value":7195}," 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":49,"props":7197,"children":7199},{"id":7198},"the-core-idea-amplitude-amplification",[7200],{"type":26,"value":7201},"The Core Idea: Amplitude Amplification",{"type":21,"tag":22,"props":7203,"children":7204},{},[7205],{"type":26,"value":7206},"Start with every state equally likely. Then repeat two operations:",{"type":21,"tag":7007,"props":7208,"children":7209},{},[7210,7227],{"type":21,"tag":3122,"props":7211,"children":7212},{},[7213,7218,7220,7225],{"type":21,"tag":180,"props":7214,"children":7215},{},[7216],{"type":26,"value":7217},"The oracle",{"type":26,"value":7219}," flips the ",{"type":21,"tag":2054,"props":7221,"children":7222},{},[7223],{"type":26,"value":7224},"sign",{"type":26,"value":7226}," 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":3122,"props":7228,"children":7229},{},[7230,7235],{"type":21,"tag":180,"props":7231,"children":7232},{},[7233],{"type":26,"value":7234},"The diffusion operator",{"type":26,"value":7236}," 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":7238,"children":7239},{},[7240],{"type":26,"value":7241},"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":49,"props":7243,"children":7245},{"id":7244},"step-1-uniform-superposition",[7246],{"type":26,"value":7247},"Step 1: Uniform Superposition",{"type":21,"tag":22,"props":7249,"children":7250},{},[7251,7253,7259],{"type":26,"value":7252},"Apply a ",{"type":21,"tag":29,"props":7254,"children":7256},{"href":7255},"\u002Fglossary\u002Fhadamard-gate",[7257],{"type":26,"value":7258},"Hadamard gate",{"type":26,"value":7260}," to every qubit. Three qubits give eight basis states each with amplitude 1\u002F√8.",{"type":21,"tag":2310,"props":7262,"children":7264},{"code":7263,"language":3190,"meta":7,"className":3188,"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",[7265],{"type":21,"tag":2080,"props":7266,"children":7267},{"__ignoreMap":7},[7268,7287,7306,7318,7325,7346,7368,7375,7391],{"type":21,"tag":2320,"props":7269,"children":7270},{"class":2322,"line":2323},[7271,7275,7279,7283],{"type":21,"tag":2320,"props":7272,"children":7273},{"style":3200},[7274],{"type":26,"value":3203},{"type":21,"tag":2320,"props":7276,"children":7277},{"style":2327},[7278],{"type":26,"value":4295},{"type":21,"tag":2320,"props":7280,"children":7281},{"style":3200},[7282],{"type":26,"value":3213},{"type":21,"tag":2320,"props":7284,"children":7285},{"style":2327},[7286],{"type":26,"value":4304},{"type":21,"tag":2320,"props":7288,"children":7289},{"class":2322,"line":150},[7290,7294,7298,7302],{"type":21,"tag":2320,"props":7291,"children":7292},{"style":3200},[7293],{"type":26,"value":3203},{"type":21,"tag":2320,"props":7295,"children":7296},{"style":2327},[7297],{"type":26,"value":4316},{"type":21,"tag":2320,"props":7299,"children":7300},{"style":3200},[7301],{"type":26,"value":3213},{"type":21,"tag":2320,"props":7303,"children":7304},{"style":2327},[7305],{"type":26,"value":4325},{"type":21,"tag":2320,"props":7307,"children":7308},{"class":2322,"line":2341},[7309,7313],{"type":21,"tag":2320,"props":7310,"children":7311},{"style":3200},[7312],{"type":26,"value":3213},{"type":21,"tag":2320,"props":7314,"children":7315},{"style":2327},[7316],{"type":26,"value":7317}," math\n",{"type":21,"tag":2320,"props":7319,"children":7320},{"class":2322,"line":2403},[7321],{"type":21,"tag":2320,"props":7322,"children":7323},{"emptyLinePlaceholder":3224},[7324],{"type":26,"value":3227},{"type":21,"tag":2320,"props":7326,"children":7327},{"class":2322,"line":2427},[7328,7332,7336,7341],{"type":21,"tag":2320,"props":7329,"children":7330},{"style":2327},[7331],{"type":26,"value":5085},{"type":21,"tag":2320,"props":7333,"children":7334},{"style":3200},[7335],{"type":26,"value":3240},{"type":21,"tag":2320,"props":7337,"children":7338},{"style":2345},[7339],{"type":26,"value":7340}," 3",{"type":21,"tag":2320,"props":7342,"children":7343},{"style":3450},[7344],{"type":26,"value":7345},"                # 3 qubits -> N = 8 states\n",{"type":21,"tag":2320,"props":7347,"children":7348},{"class":2322,"line":854},[7349,7354,7358,7363],{"type":21,"tag":2320,"props":7350,"children":7351},{"style":2327},[7352],{"type":26,"value":7353},"marked ",{"type":21,"tag":2320,"props":7355,"children":7356},{"style":3200},[7357],{"type":26,"value":3240},{"type":21,"tag":2320,"props":7359,"children":7360},{"style":2356},[7361],{"type":26,"value":7362}," \"101\"",{"type":21,"tag":2320,"props":7364,"children":7365},{"style":3450},[7366],{"type":26,"value":7367},"       # the state we want to find\n",{"type":21,"tag":2320,"props":7369,"children":7370},{"class":2322,"line":171},[7371],{"type":21,"tag":2320,"props":7372,"children":7373},{"emptyLinePlaceholder":3224},[7374],{"type":26,"value":3227},{"type":21,"tag":2320,"props":7376,"children":7377},{"class":2322,"line":16},[7378,7383,7387],{"type":21,"tag":2320,"props":7379,"children":7380},{"style":2327},[7381],{"type":26,"value":7382},"qc ",{"type":21,"tag":2320,"props":7384,"children":7385},{"style":3200},[7386],{"type":26,"value":3240},{"type":21,"tag":2320,"props":7388,"children":7389},{"style":2327},[7390],{"type":26,"value":4788},{"type":21,"tag":2320,"props":7392,"children":7393},{"class":2322,"line":1370},[7394,7399,7403,7408],{"type":21,"tag":2320,"props":7395,"children":7396},{"style":2327},[7397],{"type":26,"value":7398},"qc.h(",{"type":21,"tag":2320,"props":7400,"children":7401},{"style":2345},[7402],{"type":26,"value":4942},{"type":21,"tag":2320,"props":7404,"children":7405},{"style":2327},[7406],{"type":26,"value":7407},"(n))       ",{"type":21,"tag":2320,"props":7409,"children":7410},{"style":3450},[7411],{"type":26,"value":7412},"# uniform superposition\n",{"type":21,"tag":22,"props":7414,"children":7415},{},[7416,7418,7424],{"type":26,"value":7417},"If you ",{"type":21,"tag":29,"props":7419,"children":7421},{"href":7420},"\u002Fglossary\u002Fmeasurement",[7422],{"type":26,"value":7423},"measure",{"type":26,"value":7425}," here you get a uniform random bitstring: 12.5% for each of the eight outcomes. That's the baseline to beat.",{"type":21,"tag":49,"props":7427,"children":7429},{"id":7428},"step-2-the-oracle",[7430],{"type":26,"value":7431},"Step 2: The Oracle",{"type":21,"tag":22,"props":7433,"children":7434},{},[7435],{"type":26,"value":7436},"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":7438,"children":7439},{},[7440,7442,7448,7450,7456],{"type":26,"value":7441},"Qiskit has no ",{"type":21,"tag":2080,"props":7443,"children":7445},{"className":7444},[],[7446],{"type":26,"value":7447},"mcz",{"type":26,"value":7449},", so we build it the standard way: an H on the target, a multi-controlled X (",{"type":21,"tag":29,"props":7451,"children":7453},{"href":7452},"\u002Fglossary\u002Ftoffoli-gate",[7454],{"type":26,"value":7455},"Toffoli",{"type":26,"value":7457}," generalized), an H back:",{"type":21,"tag":2310,"props":7459,"children":7461},{"code":7460,"language":3190,"meta":7,"className":3188,"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",[7462],{"type":21,"tag":2080,"props":7463,"children":7464},{"__ignoreMap":7},[7465,7482,7490,7525,7559,7584,7610,7618,7644,7695,7714,7737,7760,7767],{"type":21,"tag":2320,"props":7466,"children":7467},{"class":2322,"line":2323},[7468,7472,7477],{"type":21,"tag":2320,"props":7469,"children":7470},{"style":3200},[7471],{"type":26,"value":4361},{"type":21,"tag":2320,"props":7473,"children":7474},{"style":4364},[7475],{"type":26,"value":7476}," oracle",{"type":21,"tag":2320,"props":7478,"children":7479},{"style":2327},[7480],{"type":26,"value":7481},"(n, marked):\n",{"type":21,"tag":2320,"props":7483,"children":7484},{"class":2322,"line":150},[7485],{"type":21,"tag":2320,"props":7486,"children":7487},{"style":2356},[7488],{"type":26,"value":7489},"    \"\"\"Phase-flip the marked basis state.\"\"\"\n",{"type":21,"tag":2320,"props":7491,"children":7492},{"class":2322,"line":2341},[7493,7498,7502,7507,7512,7516,7521],{"type":21,"tag":2320,"props":7494,"children":7495},{"style":2327},[7496],{"type":26,"value":7497},"    qc ",{"type":21,"tag":2320,"props":7499,"children":7500},{"style":3200},[7501],{"type":26,"value":3240},{"type":21,"tag":2320,"props":7503,"children":7504},{"style":2327},[7505],{"type":26,"value":7506}," QuantumCircuit(n, ",{"type":21,"tag":2320,"props":7508,"children":7509},{"style":3265},[7510],{"type":26,"value":7511},"name",{"type":21,"tag":2320,"props":7513,"children":7514},{"style":3200},[7515],{"type":26,"value":3240},{"type":21,"tag":2320,"props":7517,"children":7518},{"style":2356},[7519],{"type":26,"value":7520},"\"Oracle\"",{"type":21,"tag":2320,"props":7522,"children":7523},{"style":2327},[7524],{"type":26,"value":3300},{"type":21,"tag":2320,"props":7526,"children":7527},{"class":2322,"line":2403},[7528,7533,7537,7542,7546,7550,7555],{"type":21,"tag":2320,"props":7529,"children":7530},{"style":2327},[7531],{"type":26,"value":7532},"    rev ",{"type":21,"tag":2320,"props":7534,"children":7535},{"style":3200},[7536],{"type":26,"value":3240},{"type":21,"tag":2320,"props":7538,"children":7539},{"style":2327},[7540],{"type":26,"value":7541}," marked[::",{"type":21,"tag":2320,"props":7543,"children":7544},{"style":3200},[7545],{"type":26,"value":4848},{"type":21,"tag":2320,"props":7547,"children":7548},{"style":2345},[7549],{"type":26,"value":3556},{"type":21,"tag":2320,"props":7551,"children":7552},{"style":2327},[7553],{"type":26,"value":7554},"]              ",{"type":21,"tag":2320,"props":7556,"children":7557},{"style":3450},[7558],{"type":26,"value":4862},{"type":21,"tag":2320,"props":7560,"children":7561},{"class":2322,"line":2427},[7562,7566,7571,7575,7579],{"type":21,"tag":2320,"props":7563,"children":7564},{"style":3200},[7565],{"type":26,"value":4740},{"type":21,"tag":2320,"props":7567,"children":7568},{"style":2327},[7569],{"type":26,"value":7570}," i, bit ",{"type":21,"tag":2320,"props":7572,"children":7573},{"style":3200},[7574],{"type":26,"value":3503},{"type":21,"tag":2320,"props":7576,"children":7577},{"style":2345},[7578],{"type":26,"value":4885},{"type":21,"tag":2320,"props":7580,"children":7581},{"style":2327},[7582],{"type":26,"value":7583},"(rev):\n",{"type":21,"tag":2320,"props":7585,"children":7586},{"class":2322,"line":854},[7587,7592,7597,7601,7606],{"type":21,"tag":2320,"props":7588,"children":7589},{"style":3200},[7590],{"type":26,"value":7591},"        if",{"type":21,"tag":2320,"props":7593,"children":7594},{"style":2327},[7595],{"type":26,"value":7596}," bit ",{"type":21,"tag":2320,"props":7598,"children":7599},{"style":3200},[7600],{"type":26,"value":4909},{"type":21,"tag":2320,"props":7602,"children":7603},{"style":2356},[7604],{"type":26,"value":7605}," \"0\"",{"type":21,"tag":2320,"props":7607,"children":7608},{"style":2327},[7609],{"type":26,"value":4919},{"type":21,"tag":2320,"props":7611,"children":7612},{"class":2322,"line":171},[7613],{"type":21,"tag":2320,"props":7614,"children":7615},{"style":2327},[7616],{"type":26,"value":7617},"            qc.x(i)\n",{"type":21,"tag":2320,"props":7619,"children":7620},{"class":2322,"line":16},[7621,7626,7630,7634,7639],{"type":21,"tag":2320,"props":7622,"children":7623},{"style":2327},[7624],{"type":26,"value":7625},"    qc.h(n ",{"type":21,"tag":2320,"props":7627,"children":7628},{"style":3200},[7629],{"type":26,"value":4848},{"type":21,"tag":2320,"props":7631,"children":7632},{"style":2345},[7633],{"type":26,"value":6099},{"type":21,"tag":2320,"props":7635,"children":7636},{"style":2327},[7637],{"type":26,"value":7638},")                     ",{"type":21,"tag":2320,"props":7640,"children":7641},{"style":3450},[7642],{"type":26,"value":7643},"# multi-controlled Z\n",{"type":21,"tag":2320,"props":7645,"children":7646},{"class":2322,"line":1370},[7647,7652,7657,7661,7665,7670,7674,7678,7683,7687,7691],{"type":21,"tag":2320,"props":7648,"children":7649},{"style":2327},[7650],{"type":26,"value":7651},"    qc.mcx(",{"type":21,"tag":2320,"props":7653,"children":7654},{"style":2345},[7655],{"type":26,"value":7656},"list",{"type":21,"tag":2320,"props":7658,"children":7659},{"style":2327},[7660],{"type":26,"value":3320},{"type":21,"tag":2320,"props":7662,"children":7663},{"style":2345},[7664],{"type":26,"value":4942},{"type":21,"tag":2320,"props":7666,"children":7667},{"style":2327},[7668],{"type":26,"value":7669},"(n ",{"type":21,"tag":2320,"props":7671,"children":7672},{"style":3200},[7673],{"type":26,"value":4848},{"type":21,"tag":2320,"props":7675,"children":7676},{"style":2345},[7677],{"type":26,"value":6099},{"type":21,"tag":2320,"props":7679,"children":7680},{"style":2327},[7681],{"type":26,"value":7682},")), n ",{"type":21,"tag":2320,"props":7684,"children":7685},{"style":3200},[7686],{"type":26,"value":4848},{"type":21,"tag":2320,"props":7688,"children":7689},{"style":2345},[7690],{"type":26,"value":6099},{"type":21,"tag":2320,"props":7692,"children":7693},{"style":2327},[7694],{"type":26,"value":3300},{"type":21,"tag":2320,"props":7696,"children":7697},{"class":2322,"line":3446},[7698,7702,7706,7710],{"type":21,"tag":2320,"props":7699,"children":7700},{"style":2327},[7701],{"type":26,"value":7625},{"type":21,"tag":2320,"props":7703,"children":7704},{"style":3200},[7705],{"type":26,"value":4848},{"type":21,"tag":2320,"props":7707,"children":7708},{"style":2345},[7709],{"type":26,"value":6099},{"type":21,"tag":2320,"props":7711,"children":7712},{"style":2327},[7713],{"type":26,"value":3300},{"type":21,"tag":2320,"props":7715,"children":7716},{"class":2322,"line":3456},[7717,7721,7725,7729,7733],{"type":21,"tag":2320,"props":7718,"children":7719},{"style":3200},[7720],{"type":26,"value":4740},{"type":21,"tag":2320,"props":7722,"children":7723},{"style":2327},[7724],{"type":26,"value":7570},{"type":21,"tag":2320,"props":7726,"children":7727},{"style":3200},[7728],{"type":26,"value":3503},{"type":21,"tag":2320,"props":7730,"children":7731},{"style":2345},[7732],{"type":26,"value":4885},{"type":21,"tag":2320,"props":7734,"children":7735},{"style":2327},[7736],{"type":26,"value":7583},{"type":21,"tag":2320,"props":7738,"children":7739},{"class":2322,"line":474},[7740,7744,7748,7752,7756],{"type":21,"tag":2320,"props":7741,"children":7742},{"style":3200},[7743],{"type":26,"value":7591},{"type":21,"tag":2320,"props":7745,"children":7746},{"style":2327},[7747],{"type":26,"value":7596},{"type":21,"tag":2320,"props":7749,"children":7750},{"style":3200},[7751],{"type":26,"value":4909},{"type":21,"tag":2320,"props":7753,"children":7754},{"style":2356},[7755],{"type":26,"value":7605},{"type":21,"tag":2320,"props":7757,"children":7758},{"style":2327},[7759],{"type":26,"value":4919},{"type":21,"tag":2320,"props":7761,"children":7762},{"class":2322,"line":3516},[7763],{"type":21,"tag":2320,"props":7764,"children":7765},{"style":2327},[7766],{"type":26,"value":7617},{"type":21,"tag":2320,"props":7768,"children":7769},{"class":2322,"line":3564},[7770,7774],{"type":21,"tag":2320,"props":7771,"children":7772},{"style":3200},[7773],{"type":26,"value":4586},{"type":21,"tag":2320,"props":7775,"children":7776},{"style":2327},[7777],{"type":26,"value":7778}," qc\n",{"type":21,"tag":22,"props":7780,"children":7781},{},[7782,7784,7789,7791,7797,7799,7805],{"type":26,"value":7783},"Watch the endianness. Qiskit orders bitstrings with qubit 0 on the ",{"type":21,"tag":180,"props":7785,"children":7786},{},[7787],{"type":26,"value":7788},"right",{"type":26,"value":7790},", so ",{"type":21,"tag":2080,"props":7792,"children":7794},{"className":7793},[],[7795],{"type":26,"value":7796},"marked[::-1]",{"type":26,"value":7798}," 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":2080,"props":7800,"children":7802},{"className":7801},[],[7803],{"type":26,"value":7804},"101",{"type":26,"value":7806}," reversed and wonder why.",{"type":21,"tag":49,"props":7808,"children":7810},{"id":7809},"step-3-the-diffusion-operator",[7811],{"type":26,"value":7812},"Step 3: The Diffusion Operator",{"type":21,"tag":22,"props":7814,"children":7815},{},[7816],{"type":26,"value":7817},"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":2310,"props":7819,"children":7821},{"code":7820,"language":3190,"meta":7,"className":3188,"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",[7822],{"type":21,"tag":2080,"props":7823,"children":7824},{"__ignoreMap":7},[7825,7842,7850,7882,7898,7914,7933,7980,7999,8014,8029],{"type":21,"tag":2320,"props":7826,"children":7827},{"class":2322,"line":2323},[7828,7832,7837],{"type":21,"tag":2320,"props":7829,"children":7830},{"style":3200},[7831],{"type":26,"value":4361},{"type":21,"tag":2320,"props":7833,"children":7834},{"style":4364},[7835],{"type":26,"value":7836}," diffuser",{"type":21,"tag":2320,"props":7838,"children":7839},{"style":2327},[7840],{"type":26,"value":7841},"(n):\n",{"type":21,"tag":2320,"props":7843,"children":7844},{"class":2322,"line":150},[7845],{"type":21,"tag":2320,"props":7846,"children":7847},{"style":2356},[7848],{"type":26,"value":7849},"    \"\"\"Inversion about the mean.\"\"\"\n",{"type":21,"tag":2320,"props":7851,"children":7852},{"class":2322,"line":2341},[7853,7857,7861,7865,7869,7873,7878],{"type":21,"tag":2320,"props":7854,"children":7855},{"style":2327},[7856],{"type":26,"value":7497},{"type":21,"tag":2320,"props":7858,"children":7859},{"style":3200},[7860],{"type":26,"value":3240},{"type":21,"tag":2320,"props":7862,"children":7863},{"style":2327},[7864],{"type":26,"value":7506},{"type":21,"tag":2320,"props":7866,"children":7867},{"style":3265},[7868],{"type":26,"value":7511},{"type":21,"tag":2320,"props":7870,"children":7871},{"style":3200},[7872],{"type":26,"value":3240},{"type":21,"tag":2320,"props":7874,"children":7875},{"style":2356},[7876],{"type":26,"value":7877},"\"Diffuser\"",{"type":21,"tag":2320,"props":7879,"children":7880},{"style":2327},[7881],{"type":26,"value":3300},{"type":21,"tag":2320,"props":7883,"children":7884},{"class":2322,"line":2403},[7885,7890,7894],{"type":21,"tag":2320,"props":7886,"children":7887},{"style":2327},[7888],{"type":26,"value":7889},"    qc.h(",{"type":21,"tag":2320,"props":7891,"children":7892},{"style":2345},[7893],{"type":26,"value":4942},{"type":21,"tag":2320,"props":7895,"children":7896},{"style":2327},[7897],{"type":26,"value":4956},{"type":21,"tag":2320,"props":7899,"children":7900},{"class":2322,"line":2427},[7901,7906,7910],{"type":21,"tag":2320,"props":7902,"children":7903},{"style":2327},[7904],{"type":26,"value":7905},"    qc.x(",{"type":21,"tag":2320,"props":7907,"children":7908},{"style":2345},[7909],{"type":26,"value":4942},{"type":21,"tag":2320,"props":7911,"children":7912},{"style":2327},[7913],{"type":26,"value":4956},{"type":21,"tag":2320,"props":7915,"children":7916},{"class":2322,"line":854},[7917,7921,7925,7929],{"type":21,"tag":2320,"props":7918,"children":7919},{"style":2327},[7920],{"type":26,"value":7625},{"type":21,"tag":2320,"props":7922,"children":7923},{"style":3200},[7924],{"type":26,"value":4848},{"type":21,"tag":2320,"props":7926,"children":7927},{"style":2345},[7928],{"type":26,"value":6099},{"type":21,"tag":2320,"props":7930,"children":7931},{"style":2327},[7932],{"type":26,"value":3300},{"type":21,"tag":2320,"props":7934,"children":7935},{"class":2322,"line":171},[7936,7940,7944,7948,7952,7956,7960,7964,7968,7972,7976],{"type":21,"tag":2320,"props":7937,"children":7938},{"style":2327},[7939],{"type":26,"value":7651},{"type":21,"tag":2320,"props":7941,"children":7942},{"style":2345},[7943],{"type":26,"value":7656},{"type":21,"tag":2320,"props":7945,"children":7946},{"style":2327},[7947],{"type":26,"value":3320},{"type":21,"tag":2320,"props":7949,"children":7950},{"style":2345},[7951],{"type":26,"value":4942},{"type":21,"tag":2320,"props":7953,"children":7954},{"style":2327},[7955],{"type":26,"value":7669},{"type":21,"tag":2320,"props":7957,"children":7958},{"style":3200},[7959],{"type":26,"value":4848},{"type":21,"tag":2320,"props":7961,"children":7962},{"style":2345},[7963],{"type":26,"value":6099},{"type":21,"tag":2320,"props":7965,"children":7966},{"style":2327},[7967],{"type":26,"value":7682},{"type":21,"tag":2320,"props":7969,"children":7970},{"style":3200},[7971],{"type":26,"value":4848},{"type":21,"tag":2320,"props":7973,"children":7974},{"style":2345},[7975],{"type":26,"value":6099},{"type":21,"tag":2320,"props":7977,"children":7978},{"style":2327},[7979],{"type":26,"value":3300},{"type":21,"tag":2320,"props":7981,"children":7982},{"class":2322,"line":16},[7983,7987,7991,7995],{"type":21,"tag":2320,"props":7984,"children":7985},{"style":2327},[7986],{"type":26,"value":7625},{"type":21,"tag":2320,"props":7988,"children":7989},{"style":3200},[7990],{"type":26,"value":4848},{"type":21,"tag":2320,"props":7992,"children":7993},{"style":2345},[7994],{"type":26,"value":6099},{"type":21,"tag":2320,"props":7996,"children":7997},{"style":2327},[7998],{"type":26,"value":3300},{"type":21,"tag":2320,"props":8000,"children":8001},{"class":2322,"line":1370},[8002,8006,8010],{"type":21,"tag":2320,"props":8003,"children":8004},{"style":2327},[8005],{"type":26,"value":7905},{"type":21,"tag":2320,"props":8007,"children":8008},{"style":2345},[8009],{"type":26,"value":4942},{"type":21,"tag":2320,"props":8011,"children":8012},{"style":2327},[8013],{"type":26,"value":4956},{"type":21,"tag":2320,"props":8015,"children":8016},{"class":2322,"line":3446},[8017,8021,8025],{"type":21,"tag":2320,"props":8018,"children":8019},{"style":2327},[8020],{"type":26,"value":7889},{"type":21,"tag":2320,"props":8022,"children":8023},{"style":2345},[8024],{"type":26,"value":4942},{"type":21,"tag":2320,"props":8026,"children":8027},{"style":2327},[8028],{"type":26,"value":4956},{"type":21,"tag":2320,"props":8030,"children":8031},{"class":2322,"line":3456},[8032,8036],{"type":21,"tag":2320,"props":8033,"children":8034},{"style":3200},[8035],{"type":26,"value":4586},{"type":21,"tag":2320,"props":8037,"children":8038},{"style":2327},[8039],{"type":26,"value":7778},{"type":21,"tag":22,"props":8041,"children":8042},{},[8043,8045,8051],{"type":26,"value":8044},"Note the diffuser knows nothing about the marked state. It is the same ",{"type":21,"tag":29,"props":8046,"children":8048},{"href":8047},"\u002Fglossary\u002Fquantum-circuit",[8049],{"type":26,"value":8050},"circuit",{"type":26,"value":8052}," for every search problem. Only the oracle changes.",{"type":21,"tag":49,"props":8054,"children":8056},{"id":8055},"step-4-iterate-the-right-number-of-times",[8057],{"type":26,"value":8058},"Step 4: Iterate the Right Number of Times",{"type":21,"tag":22,"props":8060,"children":8061},{},[8062],{"type":26,"value":8063},"This is where people go wrong. The optimal count is:",{"type":21,"tag":2310,"props":8065,"children":8067},{"code":8066},"k = floor( (π\u002F4) · √(N\u002FM) )\n",[8068],{"type":21,"tag":2080,"props":8069,"children":8070},{"__ignoreMap":7},[8071],{"type":26,"value":8066},{"type":21,"tag":22,"props":8073,"children":8074},{},[8075,8077,8081],{"type":26,"value":8076},"where N = 2ⁿ and M is the number of marked states. For N = 8, M = 1: k = floor(2.22) = ",{"type":21,"tag":180,"props":8078,"children":8079},{},[8080],{"type":26,"value":2419},{"type":26,"value":802},{"type":21,"tag":22,"props":8083,"children":8084},{},[8085],{"type":26,"value":8086},"Here's the complete program:",{"type":21,"tag":2310,"props":8088,"children":8090},{"code":8089,"language":3190,"meta":7,"className":3188,"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",[8091],{"type":21,"tag":2080,"props":8092,"children":8093},{"__ignoreMap":7},[8094,8111,8126,8146,8163,8187,8218,8247,8271,8282,8289,8315,8351,8410,8417,8434,8450,8484],{"type":21,"tag":2320,"props":8095,"children":8096},{"class":2322,"line":2323},[8097,8101,8106],{"type":21,"tag":2320,"props":8098,"children":8099},{"style":3200},[8100],{"type":26,"value":4361},{"type":21,"tag":2320,"props":8102,"children":8103},{"style":4364},[8104],{"type":26,"value":8105}," grover",{"type":21,"tag":2320,"props":8107,"children":8108},{"style":2327},[8109],{"type":26,"value":8110},"(n, marked, iterations):\n",{"type":21,"tag":2320,"props":8112,"children":8113},{"class":2322,"line":150},[8114,8118,8122],{"type":21,"tag":2320,"props":8115,"children":8116},{"style":2327},[8117],{"type":26,"value":7497},{"type":21,"tag":2320,"props":8119,"children":8120},{"style":3200},[8121],{"type":26,"value":3240},{"type":21,"tag":2320,"props":8123,"children":8124},{"style":2327},[8125],{"type":26,"value":4788},{"type":21,"tag":2320,"props":8127,"children":8128},{"class":2322,"line":2341},[8129,8133,8137,8142],{"type":21,"tag":2320,"props":8130,"children":8131},{"style":2327},[8132],{"type":26,"value":7889},{"type":21,"tag":2320,"props":8134,"children":8135},{"style":2345},[8136],{"type":26,"value":4942},{"type":21,"tag":2320,"props":8138,"children":8139},{"style":2327},[8140],{"type":26,"value":8141},"(n))                       ",{"type":21,"tag":2320,"props":8143,"children":8144},{"style":3450},[8145],{"type":26,"value":7412},{"type":21,"tag":2320,"props":8147,"children":8148},{"class":2322,"line":2403},[8149,8154,8158],{"type":21,"tag":2320,"props":8150,"children":8151},{"style":2327},[8152],{"type":26,"value":8153},"    orc, dif ",{"type":21,"tag":2320,"props":8155,"children":8156},{"style":3200},[8157],{"type":26,"value":3240},{"type":21,"tag":2320,"props":8159,"children":8160},{"style":2327},[8161],{"type":26,"value":8162}," oracle(n, marked), diffuser(n)\n",{"type":21,"tag":2320,"props":8164,"children":8165},{"class":2322,"line":2427},[8166,8170,8174,8178,8182],{"type":21,"tag":2320,"props":8167,"children":8168},{"style":3200},[8169],{"type":26,"value":4740},{"type":21,"tag":2320,"props":8171,"children":8172},{"style":2327},[8173],{"type":26,"value":6141},{"type":21,"tag":2320,"props":8175,"children":8176},{"style":3200},[8177],{"type":26,"value":3503},{"type":21,"tag":2320,"props":8179,"children":8180},{"style":2345},[8181],{"type":26,"value":3508},{"type":21,"tag":2320,"props":8183,"children":8184},{"style":2327},[8185],{"type":26,"value":8186},"(iterations):\n",{"type":21,"tag":2320,"props":8188,"children":8189},{"class":2322,"line":854},[8190,8195,8200,8204,8208,8213],{"type":21,"tag":2320,"props":8191,"children":8192},{"style":2327},[8193],{"type":26,"value":8194},"        qc.compose(orc, ",{"type":21,"tag":2320,"props":8196,"children":8197},{"style":3265},[8198],{"type":26,"value":8199},"inplace",{"type":21,"tag":2320,"props":8201,"children":8202},{"style":3200},[8203],{"type":26,"value":3240},{"type":21,"tag":2320,"props":8205,"children":8206},{"style":2345},[8207],{"type":26,"value":3277},{"type":21,"tag":2320,"props":8209,"children":8210},{"style":2327},[8211],{"type":26,"value":8212},")    ",{"type":21,"tag":2320,"props":8214,"children":8215},{"style":3450},[8216],{"type":26,"value":8217},"# phase-flip the target\n",{"type":21,"tag":2320,"props":8219,"children":8220},{"class":2322,"line":171},[8221,8226,8230,8234,8238,8242],{"type":21,"tag":2320,"props":8222,"children":8223},{"style":2327},[8224],{"type":26,"value":8225},"        qc.compose(dif, ",{"type":21,"tag":2320,"props":8227,"children":8228},{"style":3265},[8229],{"type":26,"value":8199},{"type":21,"tag":2320,"props":8231,"children":8232},{"style":3200},[8233],{"type":26,"value":3240},{"type":21,"tag":2320,"props":8235,"children":8236},{"style":2345},[8237],{"type":26,"value":3277},{"type":21,"tag":2320,"props":8239,"children":8240},{"style":2327},[8241],{"type":26,"value":8212},{"type":21,"tag":2320,"props":8243,"children":8244},{"style":3450},[8245],{"type":26,"value":8246},"# amplify it\n",{"type":21,"tag":2320,"props":8248,"children":8249},{"class":2322,"line":16},[8250,8255,8259,8263,8267],{"type":21,"tag":2320,"props":8251,"children":8252},{"style":2327},[8253],{"type":26,"value":8254},"    qc.measure(",{"type":21,"tag":2320,"props":8256,"children":8257},{"style":2345},[8258],{"type":26,"value":4942},{"type":21,"tag":2320,"props":8260,"children":8261},{"style":2327},[8262],{"type":26,"value":4947},{"type":21,"tag":2320,"props":8264,"children":8265},{"style":2345},[8266],{"type":26,"value":4942},{"type":21,"tag":2320,"props":8268,"children":8269},{"style":2327},[8270],{"type":26,"value":4956},{"type":21,"tag":2320,"props":8272,"children":8273},{"class":2322,"line":1370},[8274,8278],{"type":21,"tag":2320,"props":8275,"children":8276},{"style":3200},[8277],{"type":26,"value":4586},{"type":21,"tag":2320,"props":8279,"children":8280},{"style":2327},[8281],{"type":26,"value":7778},{"type":21,"tag":2320,"props":8283,"children":8284},{"class":2322,"line":3446},[8285],{"type":21,"tag":2320,"props":8286,"children":8287},{"emptyLinePlaceholder":3224},[8288],{"type":26,"value":3227},{"type":21,"tag":2320,"props":8290,"children":8291},{"class":2322,"line":3456},[8292,8297,8301,8305,8310],{"type":21,"tag":2320,"props":8293,"children":8294},{"style":2327},[8295],{"type":26,"value":8296},"N ",{"type":21,"tag":2320,"props":8298,"children":8299},{"style":3200},[8300],{"type":26,"value":3240},{"type":21,"tag":2320,"props":8302,"children":8303},{"style":2345},[8304],{"type":26,"value":6384},{"type":21,"tag":2320,"props":8306,"children":8307},{"style":3200},[8308],{"type":26,"value":8309}," **",{"type":21,"tag":2320,"props":8311,"children":8312},{"style":2327},[8313],{"type":26,"value":8314}," n\n",{"type":21,"tag":2320,"props":8316,"children":8317},{"class":2322,"line":474},[8318,8323,8327,8332,8336,8341,8346],{"type":21,"tag":2320,"props":8319,"children":8320},{"style":2327},[8321],{"type":26,"value":8322},"optimal ",{"type":21,"tag":2320,"props":8324,"children":8325},{"style":3200},[8326],{"type":26,"value":3240},{"type":21,"tag":2320,"props":8328,"children":8329},{"style":2327},[8330],{"type":26,"value":8331}," math.floor(math.pi ",{"type":21,"tag":2320,"props":8333,"children":8334},{"style":3200},[8335],{"type":26,"value":2175},{"type":21,"tag":2320,"props":8337,"children":8338},{"style":2345},[8339],{"type":26,"value":8340}," 4",{"type":21,"tag":2320,"props":8342,"children":8343},{"style":3200},[8344],{"type":26,"value":8345}," *",{"type":21,"tag":2320,"props":8347,"children":8348},{"style":2327},[8349],{"type":26,"value":8350}," math.sqrt(N))\n",{"type":21,"tag":2320,"props":8352,"children":8353},{"class":2322,"line":3516},[8354,8358,8362,8366,8371,8375,8380,8384,8389,8393,8398,8402,8406],{"type":21,"tag":2320,"props":8355,"children":8356},{"style":2345},[8357],{"type":26,"value":3315},{"type":21,"tag":2320,"props":8359,"children":8360},{"style":2327},[8361],{"type":26,"value":3320},{"type":21,"tag":2320,"props":8363,"children":8364},{"style":3200},[8365],{"type":26,"value":3325},{"type":21,"tag":2320,"props":8367,"children":8368},{"style":2356},[8369],{"type":26,"value":8370},"\"N = ",{"type":21,"tag":2320,"props":8372,"children":8373},{"style":2345},[8374],{"type":26,"value":3335},{"type":21,"tag":2320,"props":8376,"children":8377},{"style":2327},[8378],{"type":26,"value":8379},"N",{"type":21,"tag":2320,"props":8381,"children":8382},{"style":2345},[8383],{"type":26,"value":3345},{"type":21,"tag":2320,"props":8385,"children":8386},{"style":2356},[8387],{"type":26,"value":8388},", optimal iterations = ",{"type":21,"tag":2320,"props":8390,"children":8391},{"style":2345},[8392],{"type":26,"value":3335},{"type":21,"tag":2320,"props":8394,"children":8395},{"style":2327},[8396],{"type":26,"value":8397},"optimal",{"type":21,"tag":2320,"props":8399,"children":8400},{"style":2345},[8401],{"type":26,"value":3345},{"type":21,"tag":2320,"props":8403,"children":8404},{"style":2356},[8405],{"type":26,"value":3350},{"type":21,"tag":2320,"props":8407,"children":8408},{"style":2327},[8409],{"type":26,"value":3300},{"type":21,"tag":2320,"props":8411,"children":8412},{"class":2322,"line":3564},[8413],{"type":21,"tag":2320,"props":8414,"children":8415},{"emptyLinePlaceholder":3224},[8416],{"type":26,"value":3227},{"type":21,"tag":2320,"props":8418,"children":8419},{"class":2322,"line":3606},[8420,8425,8429],{"type":21,"tag":2320,"props":8421,"children":8422},{"style":2327},[8423],{"type":26,"value":8424},"sim ",{"type":21,"tag":2320,"props":8426,"children":8427},{"style":3200},[8428],{"type":26,"value":3240},{"type":21,"tag":2320,"props":8430,"children":8431},{"style":2327},[8432],{"type":26,"value":8433}," AerSimulator()\n",{"type":21,"tag":2320,"props":8435,"children":8436},{"class":2322,"line":4631},[8437,8441,8445],{"type":21,"tag":2320,"props":8438,"children":8439},{"style":2327},[8440],{"type":26,"value":7382},{"type":21,"tag":2320,"props":8442,"children":8443},{"style":3200},[8444],{"type":26,"value":3240},{"type":21,"tag":2320,"props":8446,"children":8447},{"style":2327},[8448],{"type":26,"value":8449}," grover(n, marked, optimal)\n",{"type":21,"tag":2320,"props":8451,"children":8452},{"class":2322,"line":4650},[8453,8458,8462,8467,8471,8475,8480],{"type":21,"tag":2320,"props":8454,"children":8455},{"style":2327},[8456],{"type":26,"value":8457},"counts ",{"type":21,"tag":2320,"props":8459,"children":8460},{"style":3200},[8461],{"type":26,"value":3240},{"type":21,"tag":2320,"props":8463,"children":8464},{"style":2327},[8465],{"type":26,"value":8466}," sim.run(transpile(qc, sim), ",{"type":21,"tag":2320,"props":8468,"children":8469},{"style":3265},[8470],{"type":26,"value":4123},{"type":21,"tag":2320,"props":8472,"children":8473},{"style":3200},[8474],{"type":26,"value":3240},{"type":21,"tag":2320,"props":8476,"children":8477},{"style":2345},[8478],{"type":26,"value":8479},"4096",{"type":21,"tag":2320,"props":8481,"children":8482},{"style":2327},[8483],{"type":26,"value":5282},{"type":21,"tag":2320,"props":8485,"children":8486},{"class":2322,"line":4658},[8487,8491,8495,8500],{"type":21,"tag":2320,"props":8488,"children":8489},{"style":2345},[8490],{"type":26,"value":3315},{"type":21,"tag":2320,"props":8492,"children":8493},{"style":2327},[8494],{"type":26,"value":3320},{"type":21,"tag":2320,"props":8496,"children":8497},{"style":2345},[8498],{"type":26,"value":8499},"sorted",{"type":21,"tag":2320,"props":8501,"children":8502},{"style":2327},[8503],{"type":26,"value":8504},"(counts.items()))\n",{"type":21,"tag":22,"props":8506,"children":8507},{},[8508],{"type":26,"value":8509},"Real output from this exact code (Qiskit 2.5, Aer 0.17):",{"type":21,"tag":2310,"props":8511,"children":8513},{"code":8512},"N = 8, optimal iterations = 2\n[('000', 35), ('001', 34), ('010', 33), ('011', 27),\n ('100', 33), ('101', 3866), ('110', 35), ('111', 33)]\n",[8514],{"type":21,"tag":2080,"props":8515,"children":8516},{"__ignoreMap":7},[8517],{"type":26,"value":8512},{"type":21,"tag":22,"props":8519,"children":8520},{},[8521,8523,8528],{"type":26,"value":8522},"94.4% on ",{"type":21,"tag":2080,"props":8524,"children":8526},{"className":8525},[],[8527],{"type":26,"value":7804},{"type":26,"value":8529},", versus 12.5% by chance. Two oracle calls where classical search would need 4.5 on average.",{"type":21,"tag":49,"props":8531,"children":8533},{"id":8532},"the-mistake-more-iterations-make-it-worse",[8534],{"type":26,"value":8535},"The Mistake: More Iterations Make It Worse",{"type":21,"tag":22,"props":8537,"children":8538},{},[8539,8541,8546],{"type":26,"value":8540},"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":180,"props":8542,"children":8543},{},[8544],{"type":26,"value":8545},"fixed",{"type":26,"value":8547}," 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":8549,"children":8550},{},[8551],{"type":26,"value":8552},"Loop the iteration count and watch. Measured counts over 4096 shots each:",{"type":21,"tag":2310,"props":8554,"children":8556},{"code":8555},"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",[8557],{"type":21,"tag":2080,"props":8558,"children":8559},{"__ignoreMap":7},[8560],{"type":26,"value":8555},{"type":21,"tag":22,"props":8562,"children":8563},{},[8564,8566,8571],{"type":26,"value":8565},"Four iterations gives you a 1.3% success rate. You did ",{"type":21,"tag":2054,"props":8567,"children":8568},{},[8569],{"type":26,"value":8570},"twice",{"type":26,"value":8572}," 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":8574,"children":8575},{},[8576,8578,8583],{"type":26,"value":8577},"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":180,"props":8579,"children":8580},{},[8581],{"type":26,"value":8582},"quantum counting",{"type":26,"value":8584}," (an amplitude-estimation routine) first, or you use randomized iteration counts, which costs you a constant factor. Textbook presentations tend to skip this.",{"type":21,"tag":49,"props":8586,"children":8588},{"id":8587},"what-the-speedup-buys-you",[8589],{"type":26,"value":8590},"What the Speedup Buys You",{"type":21,"tag":22,"props":8592,"children":8593},{},[8594],{"type":26,"value":8595},"Be precise about this, because a lot of writing on Grover is not.",{"type":21,"tag":22,"props":8597,"children":8598},{},[8599,8604,8606,8612],{"type":21,"tag":180,"props":8600,"children":8601},{},[8602],{"type":26,"value":8603},"It is quadratic, not exponential.",{"type":26,"value":8605}," √N versus N. ",{"type":21,"tag":29,"props":8607,"children":8609},{"href":8608},"\u002Fresearch\u002Fshor-factoring-1994",[8610],{"type":26,"value":8611},"Shor's factoring algorithm",{"type":26,"value":8613}," is exponential. That's a categorically different 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":8615,"children":8616},{},[8617,8622],{"type":21,"tag":180,"props":8618,"children":8619},{},[8620],{"type":26,"value":8621},"It does not make NP-hard problems easy.",{"type":26,"value":8623}," 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":8625,"children":8626},{},[8627,8632,8634,8639,8641,8646],{"type":21,"tag":180,"props":8628,"children":8629},{},[8630],{"type":26,"value":8631},"The \"database search\" framing is misleading.",{"type":26,"value":8633}," Grover needs an ",{"type":21,"tag":2054,"props":8635,"children":8636},{},[8637],{"type":26,"value":8638},"oracle",{"type":26,"value":8640}," (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":2054,"props":8642,"children":8643},{},[8644],{"type":26,"value":8645},"defined by a computable property",{"type":26,"value":8647}," (this key decrypts the ciphertext, this input hashes to that digest) rather than looked up in a table.",{"type":21,"tag":22,"props":8649,"children":8650},{},[8651,8653,8659],{"type":26,"value":8652},"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":29,"props":8654,"children":8656},{"href":8655},"\u002Fresearch\u002Fgrover-search-1996",[8657],{"type":26,"value":8658},"breakdown of the paper",{"type":26,"value":802},{"type":21,"tag":49,"props":8661,"children":8663},{"id":8662},"running-on-real-hardware",[8664],{"type":26,"value":8665},"Running on Real Hardware",{"type":21,"tag":22,"props":8667,"children":8668},{},[8669,8671,8676],{"type":26,"value":8670},"Moving to a QPU, the picture changes fast. Multi-controlled X gates are not native to any hardware. ",{"type":21,"tag":29,"props":8672,"children":8673},{"href":5755},[8674],{"type":26,"value":8675},"Transpilation",{"type":26,"value":8677}," 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":2310,"props":8679,"children":8681},{"code":8680,"language":3190,"meta":7,"className":3188,"style":7},"# Check what your circuit costs before submitting\nqc = grover(3, \"101\", 2)\nprint(qc.decompose().count_ops())\n",[8682],{"type":21,"tag":2080,"props":8683,"children":8684},{"__ignoreMap":7},[8685,8693,8734],{"type":21,"tag":2320,"props":8686,"children":8687},{"class":2322,"line":2323},[8688],{"type":21,"tag":2320,"props":8689,"children":8690},{"style":3450},[8691],{"type":26,"value":8692},"# Check what your circuit costs before submitting\n",{"type":21,"tag":2320,"props":8694,"children":8695},{"class":2322,"line":150},[8696,8700,8704,8709,8713,8717,8722,8726,8730],{"type":21,"tag":2320,"props":8697,"children":8698},{"style":2327},[8699],{"type":26,"value":7382},{"type":21,"tag":2320,"props":8701,"children":8702},{"style":3200},[8703],{"type":26,"value":3240},{"type":21,"tag":2320,"props":8705,"children":8706},{"style":2327},[8707],{"type":26,"value":8708}," grover(",{"type":21,"tag":2320,"props":8710,"children":8711},{"style":2345},[8712],{"type":26,"value":6511},{"type":21,"tag":2320,"props":8714,"children":8715},{"style":2327},[8716],{"type":26,"value":1315},{"type":21,"tag":2320,"props":8718,"children":8719},{"style":2356},[8720],{"type":26,"value":8721},"\"101\"",{"type":21,"tag":2320,"props":8723,"children":8724},{"style":2327},[8725],{"type":26,"value":1315},{"type":21,"tag":2320,"props":8727,"children":8728},{"style":2345},[8729],{"type":26,"value":2419},{"type":21,"tag":2320,"props":8731,"children":8732},{"style":2327},[8733],{"type":26,"value":3300},{"type":21,"tag":2320,"props":8735,"children":8736},{"class":2322,"line":2341},[8737,8741],{"type":21,"tag":2320,"props":8738,"children":8739},{"style":2345},[8740],{"type":26,"value":3315},{"type":21,"tag":2320,"props":8742,"children":8743},{"style":2327},[8744],{"type":26,"value":8745},"(qc.decompose().count_ops())\n",{"type":21,"tag":22,"props":8747,"children":8748},{},[8749,8751,8757,8759,8763],{"type":26,"value":8750},"On ",{"type":21,"tag":29,"props":8752,"children":8754},{"href":8753},"\u002Fresearch\u002Fpreskill-nisq-2018",[8755],{"type":26,"value":8756},"NISQ devices",{"type":26,"value":8758},", 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":29,"props":8760,"children":8761},{"href":5708},[8762],{"type":26,"value":5711},{"type":26,"value":8764}," on top and you need enough samples to distinguish a modest peak from the floor.",{"type":21,"tag":22,"props":8766,"children":8767},{},[8768,8770,8775,8777,8782],{"type":26,"value":8769},"The practical advice: develop and debug on ",{"type":21,"tag":29,"props":8771,"children":8772},{"href":446},[8773],{"type":26,"value":8774},"simulators",{"type":26,"value":8776},", where you verify correctness exactly. Only move to ",{"type":21,"tag":29,"props":8778,"children":8779},{"href":249},[8780],{"type":26,"value":8781},"real hardware",{"type":26,"value":8783}," when you understand what your circuit costs in native gates, and expect degraded results.",{"type":21,"tag":49,"props":8785,"children":8787},{"id":8786},"next-steps",[8788],{"type":26,"value":8789},"Next Steps",{"type":21,"tag":3118,"props":8791,"children":8792},{},[8793,8806,8818,8839],{"type":21,"tag":3122,"props":8794,"children":8795},{},[8796,8804],{"type":21,"tag":180,"props":8797,"children":8798},{},[8799],{"type":21,"tag":29,"props":8800,"children":8801},{"href":7091},[8802],{"type":26,"value":8803},"Qiskit SDK guide",{"type":26,"value":8805},": full setup, backends, and transpiler options",{"type":21,"tag":3122,"props":8807,"children":8808},{},[8809,8816],{"type":21,"tag":180,"props":8810,"children":8811},{},[8812],{"type":21,"tag":29,"props":8813,"children":8814},{"href":2035},[8815],{"type":26,"value":2653},{"type":26,"value":8817},": the other big near-term algorithm, applied to Max-Cut",{"type":21,"tag":3122,"props":8819,"children":8820},{},[8821,8829,8831,8837],{"type":21,"tag":180,"props":8822,"children":8823},{},[8824],{"type":21,"tag":29,"props":8825,"children":8826},{"href":257},[8827],{"type":26,"value":8828},"Compare the SDKs",{"type":26,"value":8830},": the same Grover circuit in ",{"type":21,"tag":29,"props":8832,"children":8834},{"href":8833},"\u002Fsdks\u002Fcirq",[8835],{"type":26,"value":8836},"Cirq",{"type":26,"value":8838}," or PennyLane",{"type":21,"tag":3122,"props":8840,"children":8841},{},[8842,8850,8851,8857,8858,8864],{"type":21,"tag":180,"props":8843,"children":8844},{},[8845],{"type":21,"tag":29,"props":8846,"children":8847},{"href":3964},[8848],{"type":26,"value":8849},"Glossary",{"type":26,"value":2414},{"type":21,"tag":29,"props":8852,"children":8854},{"href":8853},"\u002Fglossary\u002Fsuperposition",[8855],{"type":26,"value":8856},"superposition",{"type":26,"value":1315},{"type":21,"tag":29,"props":8859,"children":8861},{"href":8860},"\u002Fglossary\u002Fquantum-advantage",[8862],{"type":26,"value":8863},"quantum advantage",{"type":26,"value":8865},", and the rest of the vocabulary",{"type":21,"tag":2694,"props":8867,"children":8868},{},[8869],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":8871},[8872,8873,8874,8875,8876,8877,8878,8879,8880,8881],{"id":7170,"depth":150,"text":7173},{"id":7198,"depth":150,"text":7201},{"id":7244,"depth":150,"text":7247},{"id":7428,"depth":150,"text":7431},{"id":7809,"depth":150,"text":7812},{"id":8055,"depth":150,"text":8058},{"id":8532,"depth":150,"text":8535},{"id":8587,"depth":150,"text":8590},{"id":8662,"depth":150,"text":8665},{"id":8786,"depth":150,"text":8789},"content:blog:grover-algorithm-tutorial.md","blog\u002Fgrover-algorithm-tutorial.md","blog\u002Fgrover-algorithm-tutorial",{"_path":143,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8886,"description":8887,"date":3063,"author":11,"tags":8888,"readingTime":16,"body":8890,"_type":156,"_id":9340,"_source":158,"_file":9341,"_stem":9342,"_extension":161},"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.",[14,13,8889],"QPU",{"type":18,"children":8891,"toc":9330},[8892,8897,8909,8915,8942,8956,8983,8989,9001,9006,9019,9037,9043,9048,9059,9072,9077,9082,9088,9100,9105,9124,9129,9135,9140,9150,9160,9183,9189,9194,9204,9214,9224,9234,9239,9245,9250,9255,9281,9300,9306,9318],{"type":21,"tag":22,"props":8893,"children":8894},{},[8895],{"type":26,"value":8896},"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":8898,"children":8899},{},[8900,8902,8907],{"type":26,"value":8901},"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":2054,"props":8903,"children":8904},{},[8905],{"type":26,"value":8906},"worse",{"type":26,"value":8908}," 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":49,"props":8910,"children":8912},{"id":8911},"two-things-called-qubit",[8913],{"type":26,"value":8914},"Two things called \"qubit\"",{"type":21,"tag":22,"props":8916,"children":8917},{},[8918,8920,8925,8927,8933,8935,8940],{"type":26,"value":8919},"A ",{"type":21,"tag":180,"props":8921,"children":8922},{},[8923],{"type":26,"value":8924},"physical qubit",{"type":26,"value":8926}," 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":29,"props":8928,"children":8930},{"href":8929},"\u002Fglossary\u002Fdecoherence",[8931],{"type":26,"value":8932},"decoherence",{"type":26,"value":8934},", and the ",{"type":21,"tag":29,"props":8936,"children":8937},{"href":5734},[8938],{"type":26,"value":8939},"T1 and T2 times",{"type":26,"value":8941}," that quantify it are among the few hardware specs worth reading closely.",{"type":21,"tag":22,"props":8943,"children":8944},{},[8945,8946,8954],{"type":26,"value":8919},{"type":21,"tag":180,"props":8947,"children":8948},{},[8949],{"type":21,"tag":29,"props":8950,"children":8951},{"href":1391},[8952],{"type":26,"value":8953},"logical qubit",{"type":26,"value":8955}," 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":8957,"children":8958},{},[8959,8961,8966,8968,8973,8975,8981],{"type":26,"value":8960},"The technique is ",{"type":21,"tag":29,"props":8962,"children":8963},{"href":65},[8964],{"type":26,"value":8965},"quantum error correction",{"type":26,"value":8967},", and our ",{"type":21,"tag":29,"props":8969,"children":8970},{"href":84},[8971],{"type":26,"value":8972},"companion post on QEC",{"type":26,"value":8974}," covers the mechanics: parity checks, ",{"type":21,"tag":29,"props":8976,"children":8978},{"href":8977},"\u002Fglossary\u002Fancilla-qubit",[8979],{"type":26,"value":8980},"ancilla qubits",{"type":26,"value":8982},", 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":49,"props":8984,"children":8986},{"id":8985},"why-how-many-qubits-is-nearly-meaningless",[8987],{"type":26,"value":8988},"Why \"how many qubits?\" is nearly meaningless",{"type":21,"tag":22,"props":8990,"children":8991},{},[8992,8994,8999],{"type":26,"value":8993},"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":180,"props":8995,"children":8996},{},[8997],{"type":26,"value":8998},"zero",{"type":26,"value":9000}," logical qubits, not few, zero.",{"type":21,"tag":22,"props":9002,"children":9003},{},[9004],{"type":26,"value":9005},"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":9007,"children":9008},{},[9009,9011,9017],{"type":26,"value":9010},"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":29,"props":9012,"children":9014},{"href":9013},"\u002Fglossary\u002Ffidelity",[9015],{"type":26,"value":9016},"fidelity",{"type":26,"value":9018}," improvements that look small in isolation. A 2x hardware win is a 4x or 8x win after encoding.",{"type":21,"tag":22,"props":9020,"children":9021},{},[9022,9024,9028,9030,9035],{"type":26,"value":9023},"This is also why single-number benchmarks keep failing the field. ",{"type":21,"tag":29,"props":9025,"children":9026},{"href":3140},[9027],{"type":26,"value":3143},{"type":26,"value":9029},", algorithmic qubits, gate counts: each captures a slice and hides the rest. We wrote about that measurement problem ",{"type":21,"tag":29,"props":9031,"children":9032},{"href":714},[9033],{"type":26,"value":9034},"in the context of EO 14413",{"type":26,"value":9036},", and it applies with full force here.",{"type":21,"tag":49,"props":9038,"children":9040},{"id":9039},"the-overhead-is-the-whole-story",[9041],{"type":26,"value":9042},"The overhead is the whole story",{"type":21,"tag":22,"props":9044,"children":9045},{},[9046],{"type":26,"value":9047},"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":9049,"children":9050},{},[9051,9057],{"type":21,"tag":29,"props":9052,"children":9054},{"href":9053},"\u002Fresearch\u002Fshor-error-correction-1995",[9055],{"type":26,"value":9056},"Shor's 1995 code",{"type":26,"value":9058},", 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":9060,"children":9061},{},[9062,9064,9070],{"type":26,"value":9063},"Nine turned out to be optimistic for practical machines. ",{"type":21,"tag":29,"props":9065,"children":9067},{"href":9066},"\u002Fresearch\u002Fkitaev-anyons-1997",[9068],{"type":26,"value":9069},"Kitaev's 1997 work on anyons",{"type":26,"value":9071}," 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":9073,"children":9074},{},[9075],{"type":26,"value":9076},"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":9078,"children":9079},{},[9080],{"type":26,"value":9081},"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":49,"props":9083,"children":9085},{"id":9084},"the-threshold-theorem-and-why-2024-mattered",[9086],{"type":26,"value":9087},"The threshold theorem, and why 2024 mattered",{"type":21,"tag":22,"props":9089,"children":9090},{},[9091,9093,9098],{"type":26,"value":9092},"The theoretical foundation under all of this is the ",{"type":21,"tag":180,"props":9094,"children":9095},{},[9096],{"type":26,"value":9097},"threshold theorem",{"type":26,"value":9099},". It says there exists a critical physical error rate. Below it, increasing the size of your code suppresses logical errors exponentially. You make them as small as you like by spending more qubits. Above it, the opposite: bigger codes are worse codes.",{"type":21,"tag":22,"props":9101,"children":9102},{},[9103],{"type":26,"value":9104},"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":9106,"children":9107},{},[9108,9110,9115,9117,9122],{"type":26,"value":9109},"That changed with ",{"type":21,"tag":29,"props":9111,"children":9112},{"href":3745},[9113],{"type":26,"value":9114},"Google's below-threshold result in 2024",{"type":26,"value":9116},". 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":180,"props":9118,"children":9119},{},[9120],{"type":26,"value":9121},"halving",{"type":26,"value":9123}," 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":9125,"children":9126},{},[9127],{"type":26,"value":9128},"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":49,"props":9130,"children":9132},{"id":9131},"different-hardware-different-arithmetic",[9133],{"type":26,"value":9134},"Different hardware, different arithmetic",{"type":21,"tag":22,"props":9136,"children":9137},{},[9138],{"type":26,"value":9139},"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":9141,"children":9142},{},[9143,9148],{"type":21,"tag":180,"props":9144,"children":9145},{},[9146],{"type":26,"value":9147},"Superconducting",{"type":26,"value":9149}," processors offer fast 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":9151,"children":9152},{},[9153,9158],{"type":21,"tag":180,"props":9154,"children":9155},{},[9156],{"type":26,"value":9157},"Trapped ions",{"type":26,"value":9159}," 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":9161,"children":9162},{},[9163,9165,9169,9170,9175,9177,9181],{"type":26,"value":9164},"Neither is obviously winning. Our ",{"type":21,"tag":29,"props":9166,"children":9167},{"href":249},[9168],{"type":26,"value":1112},{"type":26,"value":38},{"type":21,"tag":29,"props":9171,"children":9172},{"href":257},[9173],{"type":26,"value":9174},"modality comparison",{"type":26,"value":9176}," go into the specifics, and the broader ",{"type":21,"tag":29,"props":9178,"children":9179},{"href":307},[9180],{"type":26,"value":895},{"type":26,"value":9182}," 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":49,"props":9184,"children":9186},{"id":9185},"encoding-is-necessary-not-sufficient",[9187],{"type":26,"value":9188},"Encoding is necessary, not sufficient",{"type":21,"tag":22,"props":9190,"children":9191},{},[9192],{"type":26,"value":9193},"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":9195,"children":9196},{},[9197,9202],{"type":21,"tag":180,"props":9198,"children":9199},{},[9200],{"type":26,"value":9201},"Fault-tolerant gate operations.",{"type":26,"value":9203}," 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":9205,"children":9206},{},[9207,9212],{"type":21,"tag":180,"props":9208,"children":9209},{},[9210],{"type":26,"value":9211},"Continuous syndrome extraction.",{"type":26,"value":9213}," 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":9215,"children":9216},{},[9217,9222],{"type":21,"tag":180,"props":9218,"children":9219},{},[9220],{"type":26,"value":9221},"Magic state distillation.",{"type":26,"value":9223}," 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":9225,"children":9226},{},[9227,9232],{"type":21,"tag":180,"props":9228,"children":9229},{},[9230],{"type":26,"value":9231},"Real-time decoding.",{"type":26,"value":9233}," 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":9235,"children":9236},{},[9237],{"type":26,"value":9238},"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":49,"props":9240,"children":9242},{"id":9241},"where-the-field-stands",[9243],{"type":26,"value":9244},"Where the field stands",{"type":21,"tag":22,"props":9246,"children":9247},{},[9248],{"type":26,"value":9249},"Honest summary as of mid-2026: logical qubits are real, demonstrated, and few.",{"type":21,"tag":22,"props":9251,"children":9252},{},[9253],{"type":26,"value":9254},"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 small numbers of encoded qubits. These are genuine milestones, not marketing.",{"type":21,"tag":22,"props":9256,"children":9257},{},[9258,9260,9265,9267,9272,9274,9279],{"type":26,"value":9259},"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":29,"props":9261,"children":9262},{"href":418},[9263],{"type":26,"value":9264},"NISQ regime",{"type":26,"value":9266}," that ",{"type":21,"tag":29,"props":9268,"children":9269},{"href":8753},[9270],{"type":26,"value":9271},"Preskill named in 2018",{"type":26,"value":9273},", where ",{"type":21,"tag":29,"props":9275,"children":9276},{"href":4047},[9277],{"type":26,"value":9278},"error mitigation",{"type":26,"value":9280}," (statistical post-processing rather than true correction) is the practical tool.",{"type":21,"tag":22,"props":9282,"children":9283},{},[9284,9286,9291,9293,9298],{"type":26,"value":9285},"None of which means waiting around. The abstractions transfer: circuits, gates, measurement, and noise behave the same way whether you're on a simulator or a fault-tolerant machine a decade out. You start on ",{"type":21,"tag":29,"props":9287,"children":9288},{"href":446},[9289],{"type":26,"value":9290},"free simulators",{"type":26,"value":9292}," or real QPUs today, and the ",{"type":21,"tag":29,"props":9294,"children":9295},{"href":3876},[9296],{"type":26,"value":9297},"courses page",{"type":26,"value":9299}," collects structured routes in.",{"type":21,"tag":49,"props":9301,"children":9303},{"id":9302},"the-one-habit-worth-forming",[9304],{"type":26,"value":9305},"The one habit worth forming",{"type":21,"tag":22,"props":9307,"children":9308},{},[9309,9311,9316],{"type":26,"value":9310},"When you next 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":2054,"props":9312,"children":9313},{},[9314],{"type":26,"value":9315},"logical",{"type":26,"value":9317}," qubits does that imply?",{"type":21,"tag":22,"props":9319,"children":9320},{},[9321,9323,9328],{"type":26,"value":9322},"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":29,"props":9324,"children":9325},{"href":3964},[9326],{"type":26,"value":9327},"glossary",{"type":26,"value":9329}," is a decent place to build the vocabulary for it.",{"title":7,"searchDepth":150,"depth":150,"links":9331},[9332,9333,9334,9335,9336,9337,9338,9339],{"id":8911,"depth":150,"text":8914},{"id":8985,"depth":150,"text":8988},{"id":9039,"depth":150,"text":9042},{"id":9084,"depth":150,"text":9087},{"id":9131,"depth":150,"text":9134},{"id":9185,"depth":150,"text":9188},{"id":9241,"depth":150,"text":9244},{"id":9302,"depth":150,"text":9305},"content:blog:logical-qubits-fault-tolerance-explained.md","blog\u002Flogical-qubits-fault-tolerance-explained.md","blog\u002Flogical-qubits-fault-tolerance-explained",{"_path":1751,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":9344,"description":9345,"date":3063,"author":11,"tags":9346,"readingTime":16,"body":9350,"_type":156,"_id":10448,"_source":158,"_file":10449,"_stem":10450,"_extension":161},"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.",[9347,9348,9349],"Post-Quantum","Security","Cryptography",{"type":18,"children":9351,"toc":10438},[9352,9372,9385,9391,9396,9506,9511,9530,9536,9541,9571,9581,9591,9603,9608,9614,9634,9639,9665,9676,9682,9687,9730,9736,9741,10161,10173,10179,10191,10203,10253,10258,10264,10269,10378,10384,10396,10401,10434],{"type":21,"tag":22,"props":9353,"children":9354},{},[9355,9357,9363,9365,9370],{"type":26,"value":9356},"Most discussions of ",{"type":21,"tag":29,"props":9358,"children":9360},{"href":9359},"\u002Fglossary\u002Fpost-quantum-cryptography",[9361],{"type":26,"value":9362},"post-quantum cryptography",{"type":26,"value":9364}," stall at the same place: ",{"type":21,"tag":2054,"props":9366,"children":9367},{},[9368],{"type":26,"value":9369},"when do we have to do this?",{"type":26,"value":9371}," 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":9373,"children":9374},{},[9375,9377,9383],{"type":26,"value":9376},"If you already understand what PQC is and which algorithms replace which, our ",{"type":21,"tag":29,"props":9378,"children":9380},{"href":9379},"\u002Fblog\u002Fpost-quantum-cryptography-guide",[9381],{"type":26,"value":9382},"guide to post-quantum cryptography",{"type":26,"value":9384}," covers that ground. This post is about the calendar and the project plan.",{"type":21,"tag":49,"props":9386,"children":9388},{"id":9387},"the-standards-are-settled",[9389],{"type":26,"value":9390},"The standards are settled",{"type":21,"tag":22,"props":9392,"children":9393},{},[9394],{"type":26,"value":9395},"NIST finalized three post-quantum standards on August 13, 2024, after an eight-year competition:",{"type":21,"tag":4066,"props":9397,"children":9398},{},[9399,9425],{"type":21,"tag":4070,"props":9400,"children":9401},{},[9402],{"type":21,"tag":4074,"props":9403,"children":9404},{},[9405,9410,9415,9420],{"type":21,"tag":4078,"props":9406,"children":9407},{},[9408],{"type":26,"value":9409},"Standard",{"type":21,"tag":4078,"props":9411,"children":9412},{},[9413],{"type":26,"value":9414},"Algorithm",{"type":21,"tag":4078,"props":9416,"children":9417},{},[9418],{"type":26,"value":9419},"Formerly",{"type":21,"tag":4078,"props":9421,"children":9422},{},[9423],{"type":26,"value":9424},"Replaces",{"type":21,"tag":4092,"props":9426,"children":9427},{},[9428,9454,9480],{"type":21,"tag":4074,"props":9429,"children":9430},{},[9431,9439,9444,9449],{"type":21,"tag":4099,"props":9432,"children":9433},{},[9434],{"type":21,"tag":180,"props":9435,"children":9436},{},[9437],{"type":26,"value":9438},"FIPS 203",{"type":21,"tag":4099,"props":9440,"children":9441},{},[9442],{"type":26,"value":9443},"ML-KEM",{"type":21,"tag":4099,"props":9445,"children":9446},{},[9447],{"type":26,"value":9448},"CRYSTALS-Kyber",{"type":21,"tag":4099,"props":9450,"children":9451},{},[9452],{"type":26,"value":9453},"RSA key transport, ECDH",{"type":21,"tag":4074,"props":9455,"children":9456},{},[9457,9465,9470,9475],{"type":21,"tag":4099,"props":9458,"children":9459},{},[9460],{"type":21,"tag":180,"props":9461,"children":9462},{},[9463],{"type":26,"value":9464},"FIPS 204",{"type":21,"tag":4099,"props":9466,"children":9467},{},[9468],{"type":26,"value":9469},"ML-DSA",{"type":21,"tag":4099,"props":9471,"children":9472},{},[9473],{"type":26,"value":9474},"CRYSTALS-Dilithium",{"type":21,"tag":4099,"props":9476,"children":9477},{},[9478],{"type":26,"value":9479},"ECDSA, RSA-PSS signatures",{"type":21,"tag":4074,"props":9481,"children":9482},{},[9483,9491,9496,9501],{"type":21,"tag":4099,"props":9484,"children":9485},{},[9486],{"type":21,"tag":180,"props":9487,"children":9488},{},[9489],{"type":26,"value":9490},"FIPS 205",{"type":21,"tag":4099,"props":9492,"children":9493},{},[9494],{"type":26,"value":9495},"SLH-DSA",{"type":21,"tag":4099,"props":9497,"children":9498},{},[9499],{"type":26,"value":9500},"SPHINCS+",{"type":21,"tag":4099,"props":9502,"children":9503},{},[9504],{"type":26,"value":9505},"Conservative hash-based signing",{"type":21,"tag":22,"props":9507,"children":9508},{},[9509],{"type":26,"value":9510},"Use the FIPS names in procurement documents and internal specs. \"Kyber\" and \"Dilithium\" refer to the competition submissions, which differ in small but real ways from the standardized versions. A vendor claiming \"Kyber support\" does or doesn't mean FIPS 203 compliance, and that ambiguity has already caused interop problems.",{"type":21,"tag":22,"props":9512,"children":9513},{},[9514,9516,9521,9523,9528],{"type":26,"value":9515},"Two more are in flight. NIST selected ",{"type":21,"tag":180,"props":9517,"children":9518},{},[9519],{"type":26,"value":9520},"HQC",{"type":26,"value":9522}," 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":180,"props":9524,"children":9525},{},[9526],{"type":26,"value":9527},"FN-DSA",{"type":26,"value":9529}," (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":49,"props":9531,"children":9533},{"id":9532},"the-deadlines-that-exist-on-paper",[9534],{"type":26,"value":9535},"The deadlines that exist on paper",{"type":21,"tag":22,"props":9537,"children":9538},{},[9539],{"type":26,"value":9540},"Three separate sets of dates matter, and they don't line up.",{"type":21,"tag":22,"props":9542,"children":9543},{},[9544,9549,9551,9556,9558,9563,9564,9569],{"type":21,"tag":180,"props":9545,"children":9546},{},[9547],{"type":26,"value":9548},"NIST IR 8547",{"type":26,"value":9550}," (",{"type":21,"tag":2054,"props":9552,"children":9553},{},[9554],{"type":26,"value":9555},"Transition to Post-Quantum Cryptography Standards",{"type":26,"value":9557},", 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":180,"props":9559,"children":9560},{},[9561],{"type":26,"value":9562},"deprecated after 2030",{"type":26,"value":38},{"type":21,"tag":180,"props":9565,"children":9566},{},[9567],{"type":26,"value":9568},"disallowed after 2035",{"type":26,"value":9570},". 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":9572,"children":9573},{},[9574,9579],{"type":21,"tag":180,"props":9575,"children":9576},{},[9577],{"type":26,"value":9578},"NSA's CNSA 2.0",{"type":26,"value":9580}," 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":9582,"children":9583},{},[9584,9589],{"type":21,"tag":180,"props":9585,"children":9586},{},[9587],{"type":26,"value":9588},"OMB M-23-02",{"type":26,"value":9590}," (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 full federal migration targeted for 2035.",{"type":21,"tag":22,"props":9592,"children":9593},{},[9594,9596,9601],{"type":26,"value":9595},"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":180,"props":9597,"children":9598},{},[9599],{"type":26,"value":9600},"2027, not 2035",{"type":26,"value":9602},". 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":9604,"children":9605},{},[9606],{"type":26,"value":9607},"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":49,"props":9609,"children":9611},{"id":9610},"why-the-threat-model-has-no-start-date",[9612],{"type":26,"value":9613},"Why the threat model has no start date",{"type":21,"tag":22,"props":9615,"children":9616},{},[9617,9619,9624,9626,9632],{"type":26,"value":9618},"The reason a 2030 deadline is defensible even though nobody expects a code-breaking quantum computer by 2030 is ",{"type":21,"tag":180,"props":9620,"children":9621},{},[9622],{"type":26,"value":9623},"harvest now, decrypt later",{"type":26,"value":9625},". An adversary records encrypted traffic today and decrypts it whenever ",{"type":21,"tag":29,"props":9627,"children":9629},{"href":9628},"\u002Fglossary\u002Fshor-algorithm",[9630],{"type":26,"value":9631},"Shor's algorithm",{"type":26,"value":9633}," becomes runnable at scale. Any data whose confidentiality must outlive that moment is already exposed.",{"type":21,"tag":22,"props":9635,"children":9636},{},[9637],{"type":26,"value":9638},"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":9640,"children":9641},{},[9642,9644,9649,9651,9655,9657,9663],{"type":26,"value":9643},"What makes this hard to plan against is that the hardware estimate keeps moving. ",{"type":21,"tag":29,"props":9645,"children":9646},{"href":8608},[9647],{"type":26,"value":9648},"Shor's 1994 paper",{"type":26,"value":9650}," established the algorithm. The resource question (how many ",{"type":21,"tag":29,"props":9652,"children":9653},{"href":1391},[9654],{"type":26,"value":1394},{"type":26,"value":9656}," and how many gates to break RSA-2048) has been re-estimated downward repeatedly as compilation techniques improved. Recent work ",{"type":21,"tag":29,"props":9658,"children":9660},{"href":9659},"\u002Fresearch\u002Fshor-lean-formalization-2026",[9661],{"type":26,"value":9662},"machine-checking those estimates in Lean",{"type":26,"value":9664}," is valuable precisely because it removes hand-waving from a number 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":9666,"children":9667},{},[9668,9670,9674],{"type":26,"value":9669},"For the record: symmetric cryptography is fine. ",{"type":21,"tag":29,"props":9671,"children":9672},{"href":7157},[9673],{"type":26,"value":7160},{"type":26,"value":9675}," gives only a quadratic speedup, so AES-256 retains 128-bit effective security. The migration is an asymmetric-crypto migration.",{"type":21,"tag":49,"props":9677,"children":9679},{"id":9678},"why-this-takes-years",[9680],{"type":26,"value":9681},"Why this takes years",{"type":21,"tag":22,"props":9683,"children":9684},{},[9685],{"type":26,"value":9686},"Migration is slow for reasons that have nothing to do with the algorithms:",{"type":21,"tag":3118,"props":9688,"children":9689},{},[9690,9700,9710,9720],{"type":21,"tag":3122,"props":9691,"children":9692},{},[9693,9698],{"type":21,"tag":180,"props":9694,"children":9695},{},[9696],{"type":26,"value":9697},"You don't know where your crypto is.",{"type":26,"value":9699}," 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":3122,"props":9701,"children":9702},{},[9703,9708],{"type":21,"tag":180,"props":9704,"children":9705},{},[9706],{"type":26,"value":9707},"Key and signature sizes change.",{"type":26,"value":9709}," 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":3122,"props":9711,"children":9712},{},[9713,9718],{"type":21,"tag":180,"props":9714,"children":9715},{},[9716],{"type":26,"value":9717},"Both endpoints must upgrade.",{"type":26,"value":9719}," You migrate at the speed of your slowest counterparty.",{"type":21,"tag":3122,"props":9721,"children":9722},{},[9723,9728],{"type":21,"tag":180,"props":9724,"children":9725},{},[9726],{"type":26,"value":9727},"Hardware has a decade-long tail.",{"type":26,"value":9729}," HSMs and embedded devices deployed today will still be running in 2035.",{"type":21,"tag":49,"props":9731,"children":9733},{"id":9732},"inventory-first-a-starting-point",[9734],{"type":26,"value":9735},"Inventory first: a starting point",{"type":21,"tag":22,"props":9737,"children":9738},{},[9739],{"type":26,"value":9740},"You cannot migrate an unknown. Start with automated discovery of what's negotiated in production, not what your architecture diagram claims.",{"type":21,"tag":2310,"props":9742,"children":9746},{"className":9743,"code":9744,"language":9745,"meta":7,"style":7},"language-bash shiki shiki-themes github-dark","# 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","bash",[9747],{"type":21,"tag":2080,"props":9748,"children":9749},{"__ignoreMap":7},[9750,9758,9806,9829,9836,9844,9852,9875,9919,9926,9934,9967,10034,10073,10094,10144],{"type":21,"tag":2320,"props":9751,"children":9752},{"class":2322,"line":2323},[9753],{"type":21,"tag":2320,"props":9754,"children":9755},{"style":3450},[9756],{"type":26,"value":9757},"# What key exchange and signature algorithms is this endpoint using?\n",{"type":21,"tag":2320,"props":9759,"children":9760},{"class":2322,"line":150},[9761,9766,9771,9776,9781,9786,9791,9796,9801],{"type":21,"tag":2320,"props":9762,"children":9763},{"style":4364},[9764],{"type":26,"value":9765},"openssl",{"type":21,"tag":2320,"props":9767,"children":9768},{"style":2356},[9769],{"type":26,"value":9770}," s_client",{"type":21,"tag":2320,"props":9772,"children":9773},{"style":2345},[9774],{"type":26,"value":9775}," -connect",{"type":21,"tag":2320,"props":9777,"children":9778},{"style":2356},[9779],{"type":26,"value":9780}," example.com:443",{"type":21,"tag":2320,"props":9782,"children":9783},{"style":2345},[9784],{"type":26,"value":9785}," -brief",{"type":21,"tag":2320,"props":9787,"children":9788},{"style":3200},[9789],{"type":26,"value":9790}," \u003C",{"type":21,"tag":2320,"props":9792,"children":9793},{"style":2356},[9794],{"type":26,"value":9795},"\u002Fdev\u002Fnull",{"type":21,"tag":2320,"props":9797,"children":9798},{"style":3200},[9799],{"type":26,"value":9800}," 2>&1",{"type":21,"tag":2320,"props":9802,"children":9803},{"style":2345},[9804],{"type":26,"value":9805}," \\\n",{"type":21,"tag":2320,"props":9807,"children":9808},{"class":2322,"line":2341},[9809,9814,9819,9824],{"type":21,"tag":2320,"props":9810,"children":9811},{"style":3200},[9812],{"type":26,"value":9813},"  |",{"type":21,"tag":2320,"props":9815,"children":9816},{"style":4364},[9817],{"type":26,"value":9818}," grep",{"type":21,"tag":2320,"props":9820,"children":9821},{"style":2345},[9822],{"type":26,"value":9823}," -Ei",{"type":21,"tag":2320,"props":9825,"children":9826},{"style":2356},[9827],{"type":26,"value":9828}," 'protocol|ciphersuite|group|peer signature'\n",{"type":21,"tag":2320,"props":9830,"children":9831},{"class":2322,"line":2403},[9832],{"type":21,"tag":2320,"props":9833,"children":9834},{"emptyLinePlaceholder":3224},[9835],{"type":26,"value":3227},{"type":21,"tag":2320,"props":9837,"children":9838},{"class":2322,"line":2427},[9839],{"type":21,"tag":2320,"props":9840,"children":9841},{"style":3450},[9842],{"type":26,"value":9843},"# Does the endpoint support hybrid post-quantum key exchange?\n",{"type":21,"tag":2320,"props":9845,"children":9846},{"class":2322,"line":854},[9847],{"type":21,"tag":2320,"props":9848,"children":9849},{"style":3450},[9850],{"type":26,"value":9851},"# Requires OpenSSL 3.5+, which ships ML-KEM natively.\n",{"type":21,"tag":2320,"props":9853,"children":9854},{"class":2322,"line":171},[9855,9859,9863,9867,9871],{"type":21,"tag":2320,"props":9856,"children":9857},{"style":4364},[9858],{"type":26,"value":9765},{"type":21,"tag":2320,"props":9860,"children":9861},{"style":2356},[9862],{"type":26,"value":9770},{"type":21,"tag":2320,"props":9864,"children":9865},{"style":2345},[9866],{"type":26,"value":9775},{"type":21,"tag":2320,"props":9868,"children":9869},{"style":2356},[9870],{"type":26,"value":9780},{"type":21,"tag":2320,"props":9872,"children":9873},{"style":2345},[9874],{"type":26,"value":9805},{"type":21,"tag":2320,"props":9876,"children":9877},{"class":2322,"line":16},[9878,9883,9888,9892,9896,9900,9905,9909,9914],{"type":21,"tag":2320,"props":9879,"children":9880},{"style":2345},[9881],{"type":26,"value":9882},"  -groups",{"type":21,"tag":2320,"props":9884,"children":9885},{"style":2356},[9886],{"type":26,"value":9887}," X25519MLKEM768",{"type":21,"tag":2320,"props":9889,"children":9890},{"style":3200},[9891],{"type":26,"value":9790},{"type":21,"tag":2320,"props":9893,"children":9894},{"style":2356},[9895],{"type":26,"value":9795},{"type":21,"tag":2320,"props":9897,"children":9898},{"style":3200},[9899],{"type":26,"value":9800},{"type":21,"tag":2320,"props":9901,"children":9902},{"style":3200},[9903],{"type":26,"value":9904}," |",{"type":21,"tag":2320,"props":9906,"children":9907},{"style":4364},[9908],{"type":26,"value":9818},{"type":21,"tag":2320,"props":9910,"children":9911},{"style":2345},[9912],{"type":26,"value":9913}," -i",{"type":21,"tag":2320,"props":9915,"children":9916},{"style":2356},[9917],{"type":26,"value":9918}," 'group\\|error'\n",{"type":21,"tag":2320,"props":9920,"children":9921},{"class":2322,"line":1370},[9922],{"type":21,"tag":2320,"props":9923,"children":9924},{"emptyLinePlaceholder":3224},[9925],{"type":26,"value":3227},{"type":21,"tag":2320,"props":9927,"children":9928},{"class":2322,"line":3446},[9929],{"type":21,"tag":2320,"props":9930,"children":9931},{"style":3450},[9932],{"type":26,"value":9933},"# Inventory certificate signature algorithms across an internal fleet\n",{"type":21,"tag":2320,"props":9935,"children":9936},{"class":2322,"line":3456},[9937,9942,9947,9952,9957,9962],{"type":21,"tag":2320,"props":9938,"children":9939},{"style":3200},[9940],{"type":26,"value":9941},"while",{"type":21,"tag":2320,"props":9943,"children":9944},{"style":2345},[9945],{"type":26,"value":9946}," read",{"type":21,"tag":2320,"props":9948,"children":9949},{"style":2345},[9950],{"type":26,"value":9951}," -r",{"type":21,"tag":2320,"props":9953,"children":9954},{"style":2356},[9955],{"type":26,"value":9956}," host",{"type":21,"tag":2320,"props":9958,"children":9959},{"style":2327},[9960],{"type":26,"value":9961},"; ",{"type":21,"tag":2320,"props":9963,"children":9964},{"style":3200},[9965],{"type":26,"value":9966},"do\n",{"type":21,"tag":2320,"props":9968,"children":9969},{"class":2322,"line":474},[9970,9975,9979,9984,9989,9993,9998,10002,10006,10011,10016,10021,10026,10030],{"type":21,"tag":2320,"props":9971,"children":9972},{"style":2327},[9973],{"type":26,"value":9974},"  alg",{"type":21,"tag":2320,"props":9976,"children":9977},{"style":3200},[9978],{"type":26,"value":3240},{"type":21,"tag":2320,"props":9980,"children":9981},{"style":2327},[9982],{"type":26,"value":9983},"$(",{"type":21,"tag":2320,"props":9985,"children":9986},{"style":2345},[9987],{"type":26,"value":9988},"echo",{"type":21,"tag":2320,"props":9990,"children":9991},{"style":3200},[9992],{"type":26,"value":9904},{"type":21,"tag":2320,"props":9994,"children":9995},{"style":4364},[9996],{"type":26,"value":9997}," openssl",{"type":21,"tag":2320,"props":9999,"children":10000},{"style":2356},[10001],{"type":26,"value":9770},{"type":21,"tag":2320,"props":10003,"children":10004},{"style":2345},[10005],{"type":26,"value":9775},{"type":21,"tag":2320,"props":10007,"children":10008},{"style":2356},[10009],{"type":26,"value":10010}," \"",{"type":21,"tag":2320,"props":10012,"children":10013},{"style":2327},[10014],{"type":26,"value":10015},"$host",{"type":21,"tag":2320,"props":10017,"children":10018},{"style":2356},[10019],{"type":26,"value":10020},":443\"",{"type":21,"tag":2320,"props":10022,"children":10023},{"style":3200},[10024],{"type":26,"value":10025}," 2>",{"type":21,"tag":2320,"props":10027,"children":10028},{"style":2356},[10029],{"type":26,"value":9795},{"type":21,"tag":2320,"props":10031,"children":10032},{"style":2345},[10033],{"type":26,"value":9805},{"type":21,"tag":2320,"props":10035,"children":10036},{"class":2322,"line":3516},[10037,10042,10046,10051,10056,10061,10065,10069],{"type":21,"tag":2320,"props":10038,"children":10039},{"style":3200},[10040],{"type":26,"value":10041},"    |",{"type":21,"tag":2320,"props":10043,"children":10044},{"style":4364},[10045],{"type":26,"value":9997},{"type":21,"tag":2320,"props":10047,"children":10048},{"style":2356},[10049],{"type":26,"value":10050}," x509",{"type":21,"tag":2320,"props":10052,"children":10053},{"style":2345},[10054],{"type":26,"value":10055}," -noout",{"type":21,"tag":2320,"props":10057,"children":10058},{"style":2345},[10059],{"type":26,"value":10060}," -text",{"type":21,"tag":2320,"props":10062,"children":10063},{"style":3200},[10064],{"type":26,"value":10025},{"type":21,"tag":2320,"props":10066,"children":10067},{"style":2356},[10068],{"type":26,"value":9795},{"type":21,"tag":2320,"props":10070,"children":10071},{"style":2345},[10072],{"type":26,"value":9805},{"type":21,"tag":2320,"props":10074,"children":10075},{"class":2322,"line":3564},[10076,10080,10085,10090],{"type":21,"tag":2320,"props":10077,"children":10078},{"style":3200},[10079],{"type":26,"value":10041},{"type":21,"tag":2320,"props":10081,"children":10082},{"style":4364},[10083],{"type":26,"value":10084}," awk",{"type":21,"tag":2320,"props":10086,"children":10087},{"style":2356},[10088],{"type":26,"value":10089}," '\u002FSignature Algorithm\u002F {print $3; exit}'",{"type":21,"tag":2320,"props":10091,"children":10092},{"style":2327},[10093],{"type":26,"value":3300},{"type":21,"tag":2320,"props":10095,"children":10096},{"class":2322,"line":3606},[10097,10102,10107,10111,10115,10119,10124,10129,10134,10139],{"type":21,"tag":2320,"props":10098,"children":10099},{"style":2345},[10100],{"type":26,"value":10101},"  printf",{"type":21,"tag":2320,"props":10103,"children":10104},{"style":2356},[10105],{"type":26,"value":10106}," '%s\\t%s\\n'",{"type":21,"tag":2320,"props":10108,"children":10109},{"style":2356},[10110],{"type":26,"value":10010},{"type":21,"tag":2320,"props":10112,"children":10113},{"style":2327},[10114],{"type":26,"value":10015},{"type":21,"tag":2320,"props":10116,"children":10117},{"style":2356},[10118],{"type":26,"value":3350},{"type":21,"tag":2320,"props":10120,"children":10121},{"style":2356},[10122],{"type":26,"value":10123}," \"${",{"type":21,"tag":2320,"props":10125,"children":10126},{"style":2327},[10127],{"type":26,"value":10128},"alg",{"type":21,"tag":2320,"props":10130,"children":10131},{"style":3200},[10132],{"type":26,"value":10133},":-",{"type":21,"tag":2320,"props":10135,"children":10136},{"style":2327},[10137],{"type":26,"value":10138},"UNREACHABLE",{"type":21,"tag":2320,"props":10140,"children":10141},{"style":2356},[10142],{"type":26,"value":10143},"}\"\n",{"type":21,"tag":2320,"props":10145,"children":10146},{"class":2322,"line":4631},[10147,10152,10156],{"type":21,"tag":2320,"props":10148,"children":10149},{"style":3200},[10150],{"type":26,"value":10151},"done",{"type":21,"tag":2320,"props":10153,"children":10154},{"style":3200},[10155],{"type":26,"value":9790},{"type":21,"tag":2320,"props":10157,"children":10158},{"style":2327},[10159],{"type":26,"value":10160}," hosts.txt\n",{"type":21,"tag":22,"props":10162,"children":10163},{},[10164,10166,10171],{"type":26,"value":10165},"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":180,"props":10167,"children":10168},{},[10169],{"type":26,"value":10170},"how long the data it protects must stay confidential",{"type":26,"value":10172},". That last column is what turns an inventory into a prioritized migration order.",{"type":21,"tag":49,"props":10174,"children":10176},{"id":10175},"hybrid-deployment-is-the-low-risk-path",[10177],{"type":26,"value":10178},"Hybrid deployment is the low-risk path",{"type":21,"tag":22,"props":10180,"children":10181},{},[10182,10184,10189],{"type":26,"value":10183},"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":2054,"props":10185,"children":10186},{},[10187],{"type":26,"value":10188},"both",{"type":26,"value":10190}," are broken. This hedges against implementation bugs and undiscovered cryptanalysis in the newer lattice schemes.",{"type":21,"tag":22,"props":10192,"children":10193},{},[10194,10196,10201],{"type":26,"value":10195},"This is no longer experimental. ",{"type":21,"tag":180,"props":10197,"children":10198},{},[10199],{"type":26,"value":10200},"X25519MLKEM768",{"type":26,"value":10202}," 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":2310,"props":10204,"children":10206},{"className":9743,"code":10205,"language":9745,"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",[10207],{"type":21,"tag":2080,"props":10208,"children":10209},{"__ignoreMap":7},[10210,10218,10236],{"type":21,"tag":2320,"props":10211,"children":10212},{"class":2322,"line":2323},[10213],{"type":21,"tag":2320,"props":10214,"children":10215},{"style":3450},[10216],{"type":26,"value":10217},"# nginx with OpenSSL 3.5+: explicit hybrid preference, classical fallback\n",{"type":21,"tag":2320,"props":10219,"children":10220},{"class":2322,"line":150},[10221,10226,10231],{"type":21,"tag":2320,"props":10222,"children":10223},{"style":4364},[10224],{"type":26,"value":10225},"ssl_protocols",{"type":21,"tag":2320,"props":10227,"children":10228},{"style":2356},[10229],{"type":26,"value":10230}," TLSv1.3",{"type":21,"tag":2320,"props":10232,"children":10233},{"style":2327},[10234],{"type":26,"value":10235},";\n",{"type":21,"tag":2320,"props":10237,"children":10238},{"class":2322,"line":2341},[10239,10244,10249],{"type":21,"tag":2320,"props":10240,"children":10241},{"style":4364},[10242],{"type":26,"value":10243},"ssl_ecdh_curve",{"type":21,"tag":2320,"props":10245,"children":10246},{"style":2356},[10247],{"type":26,"value":10248}," X25519MLKEM768:X25519:P-256",{"type":21,"tag":2320,"props":10250,"children":10251},{"style":2327},[10252],{"type":26,"value":10235},{"type":21,"tag":22,"props":10254,"children":10255},{},[10256],{"type":26,"value":10257},"Signatures are further behind. Public CAs are not yet issuing ML-DSA certificates at scale, so key exchange is where you get real HNDL protection today, and it's the cheapest win available.",{"type":21,"tag":49,"props":10259,"children":10261},{"id":10260},"what-to-do-this-quarter",[10262],{"type":26,"value":10263},"What to do this quarter",{"type":21,"tag":22,"props":10265,"children":10266},{},[10267],{"type":26,"value":10268},"A realistic 90-day slice:",{"type":21,"tag":7007,"props":10270,"children":10271},{},[10272,10282,10321,10331,10341,10351,10368],{"type":21,"tag":3122,"props":10273,"children":10274},{},[10275,10280],{"type":21,"tag":180,"props":10276,"children":10277},{},[10278],{"type":26,"value":10279},"Appoint an owner.",{"type":26,"value":10281}," Migrations without a named accountable person do not happen. This is a multi-year program, not a ticket.",{"type":21,"tag":3122,"props":10283,"children":10284},{},[10285,10290,10292,10298,10299,10305,10306,10312,10313,10319],{"type":21,"tag":180,"props":10286,"children":10287},{},[10288],{"type":26,"value":10289},"Run automated discovery",{"type":26,"value":10291}," across external endpoints, internal service mesh, and code repositories. Grep your codebases for ",{"type":21,"tag":2080,"props":10293,"children":10295},{"className":10294},[],[10296],{"type":26,"value":10297},"RSA",{"type":26,"value":1315},{"type":21,"tag":2080,"props":10300,"children":10302},{"className":10301},[],[10303],{"type":26,"value":10304},"ECDSA",{"type":26,"value":1315},{"type":21,"tag":2080,"props":10307,"children":10309},{"className":10308},[],[10310],{"type":26,"value":10311},"secp256",{"type":26,"value":1315},{"type":21,"tag":2080,"props":10314,"children":10316},{"className":10315},[],[10317],{"type":26,"value":10318},"PKCS1",{"type":26,"value":10320},", and hardcoded algorithm identifiers.",{"type":21,"tag":3122,"props":10322,"children":10323},{},[10324,10329],{"type":21,"tag":180,"props":10325,"children":10326},{},[10327],{"type":26,"value":10328},"Classify by data lifetime.",{"type":26,"value":10330}," Sort systems by how long their data must stay secret. Anything over ten years is priority one.",{"type":21,"tag":3122,"props":10332,"children":10333},{},[10334,10339],{"type":21,"tag":180,"props":10335,"children":10336},{},[10337],{"type":26,"value":10338},"Turn on hybrid TLS where it's free.",{"type":26,"value":10340}," Upgrade to OpenSSL 3.5+ or a TLS terminator that supports X25519MLKEM768. For many organizations this is a load-balancer config change covering the majority of traffic.",{"type":21,"tag":3122,"props":10342,"children":10343},{},[10344,10349],{"type":21,"tag":180,"props":10345,"children":10346},{},[10347],{"type":26,"value":10348},"Send the vendor questionnaire.",{"type":26,"value":10350}," 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":3122,"props":10352,"children":10353},{},[10354,10359,10361,10366],{"type":21,"tag":180,"props":10355,"children":10356},{},[10357],{"type":26,"value":10358},"Fix crypto-agility in new code.",{"type":26,"value":10360}," Stop hardcoding algorithms. Route every operation through an abstraction that takes the algorithm from configuration, so the ",{"type":21,"tag":2054,"props":10362,"children":10363},{},[10364],{"type":26,"value":10365},"next",{"type":26,"value":10367}," 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":3122,"props":10369,"children":10370},{},[10371,10376],{"type":21,"tag":180,"props":10372,"children":10373},{},[10374],{"type":26,"value":10375},"Move code signing early.",{"type":26,"value":10377}," It has the earliest federal deadline, the longest verification tail, and signatures that must remain verifiable for decades.",{"type":21,"tag":49,"props":10379,"children":10381},{"id":10380},"the-bottom-line",[10382],{"type":26,"value":10383},"The bottom line",{"type":21,"tag":22,"props":10385,"children":10386},{},[10387,10389,10394],{"type":26,"value":10388},"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":180,"props":10390,"children":10391},{},[10392],{"type":26,"value":10393},"after 2030, classical asymmetric crypto is deprecated, and after 2035, it's disallowed",{"type":26,"value":10395},", with federal national-security systems running years ahead of that.",{"type":21,"tag":22,"props":10397,"children":10398},{},[10399],{"type":26,"value":10400},"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":10402,"children":10403},{},[10404,10409,10410,10415,10416,10421,10422,10427,10428],{"type":21,"tag":180,"props":10405,"children":10406},{},[10407],{"type":26,"value":10408},"Further reading:",{"type":26,"value":1307},{"type":21,"tag":29,"props":10411,"children":10412},{"href":9379},[10413],{"type":26,"value":10414},"What PQC is",{"type":26,"value":7112},{"type":21,"tag":29,"props":10417,"children":10418},{"href":714},[10419],{"type":26,"value":10420},"Reading policy documents as technical assessments",{"type":26,"value":7112},{"type":21,"tag":29,"props":10423,"children":10424},{"href":3964},[10425],{"type":26,"value":10426},"Quantum computing glossary",{"type":26,"value":7112},{"type":21,"tag":29,"props":10429,"children":10431},{"href":10430},"\u002Fnews",[10432],{"type":26,"value":10433},"Latest developments",{"type":21,"tag":2694,"props":10435,"children":10436},{},[10437],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":10439},[10440,10441,10442,10443,10444,10445,10446,10447],{"id":9387,"depth":150,"text":9390},{"id":9532,"depth":150,"text":9535},{"id":9610,"depth":150,"text":9613},{"id":9678,"depth":150,"text":9681},{"id":9732,"depth":150,"text":9735},{"id":10175,"depth":150,"text":10178},{"id":10260,"depth":150,"text":10263},{"id":10380,"depth":150,"text":10383},"content:blog:post-quantum-migration-deadlines.md","blog\u002Fpost-quantum-migration-deadlines.md","blog\u002Fpost-quantum-migration-deadlines",{"_path":10452,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":10453,"description":10454,"date":3063,"author":11,"tags":10455,"readingTime":1370,"body":10456,"_type":156,"_id":11022,"_source":158,"_file":11023,"_stem":11024,"_extension":161},"\u002Fblog\u002Fq-day-breaking-rsa-2048","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.",[9347,9348,9349],{"type":18,"children":10457,"toc":11012},[10458,10463,10468,10474,10498,10510,10515,10521,10539,10551,10557,10577,10616,10645,10651,10685,10712,10738,10764,10769,10822,10832,10838,10862,10874,10880,10885,10897,10903,10908,10934,10946,10952,10957,10969,10981],{"type":21,"tag":22,"props":10459,"children":10460},{},[10461],{"type":26,"value":10462},"\"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 different things, and the gap between them is measured in years and billions of dollars of engineering.",{"type":21,"tag":22,"props":10464,"children":10465},{},[10466],{"type":26,"value":10467},"This post 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":49,"props":10469,"children":10471},{"id":10470},"defining-the-term-precisely",[10472],{"type":26,"value":10473},"Defining the term precisely",{"type":21,"tag":22,"props":10475,"children":10476},{},[10477,10483,10485,10490,10492,10496],{"type":21,"tag":29,"props":10478,"children":10480},{"href":10479},"\u002Fglossary\u002Fq-day",[10481],{"type":26,"value":10482},"Q-Day",{"type":26,"value":10484}," is most usefully defined as ",{"type":21,"tag":180,"props":10486,"children":10487},{},[10488],{"type":26,"value":10489},"the day a cryptographically relevant quantum computer (CRQC) first exists",{"type":26,"value":10491},": a machine that runs ",{"type":21,"tag":29,"props":10493,"children":10494},{"href":9628},[10495],{"type":26,"value":9631},{"type":26,"value":10497}," against real-world key sizes within an operationally useful time.",{"type":21,"tag":22,"props":10499,"children":10500},{},[10501,10503,10508],{"type":26,"value":10502},"The looseness creeps in around \"real-world key sizes.\" Some writers use Q-Day to mean specifically ",{"type":21,"tag":2054,"props":10504,"children":10505},{},[10506],{"type":26,"value":10507},"RSA-2048 is broken",{"type":26,"value":10509},". Others use it for any CRQC, which would include a machine that breaks NIST P-256 elliptic-curve keys, a meaningfully easier target, 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":10511,"children":10512},{},[10513],{"type":26,"value":10514},"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":49,"props":10516,"children":10518},{"id":10517},"why-the-date-matters-less-than-youd-think",[10519],{"type":26,"value":10520},"Why the date matters less than you'd think",{"type":21,"tag":22,"props":10522,"children":10523},{},[10524,10526,10530,10532,10537],{"type":26,"value":10525},"The instinct on hearing \"Q-Day\" is to ask when. That question is less decision-relevant than it feels, because of ",{"type":21,"tag":180,"props":10527,"children":10528},{},[10529],{"type":26,"value":9623},{"type":26,"value":10531},": 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":2054,"props":10533,"children":10534},{},[10535],{"type":26,"value":10536},"now",{"type":26,"value":10538},", regardless of when Q-Day lands.",{"type":21,"tag":22,"props":10540,"children":10541},{},[10542,10544,10549],{"type":26,"value":10543},"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":29,"props":10545,"children":10546},{"href":1751},[10547],{"type":26,"value":10548},"the post-quantum migration clock",{"type":26,"value":10550},", and they are deliberately independent of any hardware forecast.",{"type":21,"tag":49,"props":10552,"children":10554},{"id":10553},"the-core-question-what-would-the-machine-look-like",[10555],{"type":26,"value":10556},"The core question: what would the machine look like?",{"type":21,"tag":22,"props":10558,"children":10559},{},[10560,10562,10567,10569,10575],{"type":26,"value":10561},"Shor's algorithm, ",{"type":21,"tag":29,"props":10563,"children":10564},{"href":8608},[10565],{"type":26,"value":10566},"introduced in 1994",{"type":26,"value":10568},", reduces factoring to period-finding, which it solves using ",{"type":21,"tag":29,"props":10570,"children":10572},{"href":10571},"\u002Fglossary\u002Fphase-estimation",[10573],{"type":26,"value":10574},"quantum phase estimation",{"type":26,"value":10576}," 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":10578,"children":10579},{},[10580,10585,10587,10593,10595,10599,10601,10606,10608,10614],{"type":21,"tag":180,"props":10581,"children":10582},{},[10583],{"type":26,"value":10584},"Logical qubits",{"type":26,"value":10586}," are the idealized, error-free qubits the algorithm is written against. Gidney and Ekerå's 2019 construction expresses this as ",{"type":21,"tag":2080,"props":10588,"children":10590},{"className":10589},[],[10591],{"type":26,"value":10592},"3n + 0.002·n·lg n",{"type":26,"value":10594}," logical qubits for an ",{"type":21,"tag":2054,"props":10596,"children":10597},{},[10598],{"type":26,"value":4829},{"type":26,"value":10600},"-bit modulus. For RSA-2048 that works out to roughly ",{"type":21,"tag":180,"props":10602,"children":10603},{},[10604],{"type":26,"value":10605},"6,200 logical qubits",{"type":26,"value":10607},", alongside a Toffoli gate count on the order of ",{"type":21,"tag":2080,"props":10609,"children":10611},{"className":10610},[],[10612],{"type":26,"value":10613},"0.3n³",{"type":26,"value":10615},", billions of gates.",{"type":21,"tag":22,"props":10617,"children":10618},{},[10619,10624,10626,10630,10632,10636,10638,10643],{"type":21,"tag":180,"props":10620,"children":10621},{},[10622],{"type":26,"value":10623},"Physical qubits",{"type":26,"value":10625}," are what you build. The ratio between them is the overhead imposed by ",{"type":21,"tag":29,"props":10627,"children":10628},{"href":65},[10629],{"type":26,"value":8965},{"type":26,"value":10631},", and it is brutal. Under the surface code, each ",{"type":21,"tag":29,"props":10633,"children":10634},{"href":1391},[10635],{"type":26,"value":8953},{"type":26,"value":10637}," is encoded across a patch of physical qubits whose size grows with the ",{"type":21,"tag":2054,"props":10639,"children":10640},{},[10641],{"type":26,"value":10642},"code distance",{"type":26,"value":10644},", 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":49,"props":10646,"children":10648},{"id":10647},"the-published-estimates-and-why-they-moved",[10649],{"type":26,"value":10650},"The published estimates, and why they moved",{"type":21,"tag":22,"props":10652,"children":10653},{},[10654,10656,10661,10663,10668,10669,10676,10678,10683],{"type":26,"value":10655},"The most-cited figure comes from ",{"type":21,"tag":180,"props":10657,"children":10658},{},[10659],{"type":26,"value":10660},"Gidney and Ekerå (2019)",{"type":26,"value":10662},": factoring a 2048-bit RSA integer in ",{"type":21,"tag":180,"props":10664,"children":10665},{},[10666],{"type":26,"value":10667},"8 hours using 20 million noisy physical qubits",{"type":26,"value":9550},{"type":21,"tag":29,"props":10670,"children":10673},{"href":10671,"rel":10672},"https:\u002F\u002Farxiv.org\u002Fabs\u002F1905.09749",[33],[10674],{"type":26,"value":10675},"arXiv:1905.09749",{"type":26,"value":10677},", later published in ",{"type":21,"tag":2054,"props":10679,"children":10680},{},[10681],{"type":26,"value":10682},"Quantum",{"type":26,"value":10684},"). That was already a hundredfold reduction in spacetime volume over prior proposals.",{"type":21,"tag":22,"props":10686,"children":10687},{},[10688,10690,10695,10697,10702,10703,10710],{"type":26,"value":10689},"In May 2025, ",{"type":21,"tag":180,"props":10691,"children":10692},{},[10693],{"type":26,"value":10694},"Gidney",{"type":26,"value":10696}," published a revised analysis: ",{"type":21,"tag":180,"props":10698,"children":10699},{},[10700],{"type":26,"value":10701},"fewer than one million noisy physical qubits, running for under a week",{"type":26,"value":9550},{"type":21,"tag":29,"props":10704,"children":10707},{"href":10705,"rel":10706},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2505.15917",[33],[10708],{"type":26,"value":10709},"arXiv:2505.15917",{"type":26,"value":10711},"). That is roughly a 20× reduction in qubit count against his own earlier number, traded for a longer runtime.",{"type":21,"tag":22,"props":10713,"children":10714},{},[10715,10717,10722,10724,10729,10731,10736],{"type":26,"value":10716},"Both papers assume broadly the same hardware model: a planar square grid of superconducting qubits with nearest-neighbour connectivity, a ",{"type":21,"tag":180,"props":10718,"children":10719},{},[10720],{"type":26,"value":10721},"0.1% gate error rate",{"type":26,"value":10723},", a ",{"type":21,"tag":180,"props":10725,"children":10726},{},[10727],{"type":26,"value":10728},"1 microsecond",{"type":26,"value":10730}," surface code cycle, and a ",{"type":21,"tag":180,"props":10732,"children":10733},{},[10734],{"type":26,"value":10735},"10 microsecond",{"type":26,"value":10737}," control-system reaction time.",{"type":21,"tag":22,"props":10739,"children":10740},{},[10741,10743,10748,10750,10755,10757,10762],{"type":26,"value":10742},"That is the key insight about the discrepancy: ",{"type":21,"tag":180,"props":10744,"children":10745},{},[10746],{"type":26,"value":10747},"the hardware assumptions barely changed. The algorithms and codes did.",{"type":26,"value":10749}," The 2025 reduction comes from three specific advances: approximate residue arithmetic (fewer operations), ",{"type":21,"tag":2054,"props":10751,"children":10752},{},[10753],{"type":26,"value":10754},"yoked surface codes",{"type":26,"value":10756}," (roughly tripling storage density for idle logical qubits), and ",{"type":21,"tag":2054,"props":10758,"children":10759},{},[10760],{"type":26,"value":10761},"magic state cultivation",{"type":26,"value":10763},", which makes producing the high-fidelity non-Clifford resource states that dominate the cost far cheaper than traditional distillation.",{"type":21,"tag":22,"props":10765,"children":10766},{},[10767],{"type":26,"value":10768},"This is why estimates in the wild vary so wildly. Any published number is a function of at least five assumptions:",{"type":21,"tag":3118,"props":10770,"children":10771},{},[10772,10782,10792,10802,10812],{"type":21,"tag":3122,"props":10773,"children":10774},{},[10775,10780],{"type":21,"tag":180,"props":10776,"children":10777},{},[10778],{"type":26,"value":10779},"Physical error rate.",{"type":26,"value":10781}," 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":3122,"props":10783,"children":10784},{},[10785,10790],{"type":21,"tag":180,"props":10786,"children":10787},{},[10788],{"type":26,"value":10789},"Code choice.",{"type":26,"value":10791}," 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":3122,"props":10793,"children":10794},{},[10795,10800],{"type":21,"tag":180,"props":10796,"children":10797},{},[10798],{"type":26,"value":10799},"Cycle and reaction time.",{"type":26,"value":10801}," These set wall-clock runtime, and runtime feeds back into how much error correction you need.",{"type":21,"tag":3122,"props":10803,"children":10804},{},[10805,10810],{"type":21,"tag":180,"props":10806,"children":10807},{},[10808],{"type":26,"value":10809},"Magic state strategy.",{"type":26,"value":10811}," Distillation factories historically consumed the majority of the machine's footprint. Cultivation changes that budget.",{"type":21,"tag":3122,"props":10813,"children":10814},{},[10815,10820],{"type":21,"tag":180,"props":10816,"children":10817},{},[10818],{"type":26,"value":10819},"Space–time tradeoff.",{"type":26,"value":10821}," 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":10823,"children":10824},{},[10825,10830],{"type":21,"tag":180,"props":10826,"children":10827},{},[10828],{"type":26,"value":10829},"The direction of travel is the important dynamic.",{"type":26,"value":10831}," 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":49,"props":10833,"children":10835},{"id":10834},"where-hardware-stands",[10836],{"type":26,"value":10837},"Where hardware stands",{"type":21,"tag":22,"props":10839,"children":10840},{},[10841,10843,10848,10850,10854,10856,10860],{"type":26,"value":10842},"Current devices carry roughly 100 to 1,000 physical qubits. Google's Willow processor, used in the 2024 ",{"type":21,"tag":29,"props":10844,"children":10845},{"href":3745},[10846],{"type":26,"value":10847},"below-threshold demonstration",{"type":26,"value":10849},", 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":29,"props":10851,"children":10852},{"href":9013},[10853],{"type":26,"value":9016},{"type":26,"value":10855},", connectivity, and control requirements those papers assume. Our ",{"type":21,"tag":29,"props":10857,"children":10858},{"href":249},[10859],{"type":26,"value":1112},{"type":26,"value":10861}," tracks what is available.",{"type":21,"tag":22,"props":10863,"children":10864},{},[10865,10867,10872],{"type":26,"value":10866},"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":2054,"props":10868,"children":10869},{},[10870],{"type":26,"value":10871},"halved",{"type":26,"value":10873}," 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 different category of hard.",{"type":21,"tag":49,"props":10875,"children":10877},{"id":10876},"machine-checking-the-numbers",[10878],{"type":26,"value":10879},"Machine-checking the numbers",{"type":21,"tag":22,"props":10881,"children":10882},{},[10883],{"type":26,"value":10884},"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":10886,"children":10887},{},[10888,10890,10895],{"type":26,"value":10889},"That is why the 2026 ",{"type":21,"tag":29,"props":10891,"children":10892},{"href":9659},[10893],{"type":26,"value":10894},"Lean formalization of Shor's algorithm",{"type":26,"value":10896}," 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":49,"props":10898,"children":10900},{"id":10899},"the-vendor-perspective-clearly-labelled",[10901],{"type":26,"value":10902},"The vendor perspective, clearly labelled",{"type":21,"tag":22,"props":10904,"children":10905},{},[10906],{"type":26,"value":10907},"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":10909,"children":10910},{},[10911,10913,10918,10920,10925,10927,10932],{"type":26,"value":10912},"IonQ's December 2024 post ",{"type":21,"tag":2054,"props":10914,"children":10915},{},[10916],{"type":26,"value":10917},"Q-Day and the Impact of Breaking RSA2048",{"type":26,"value":10919},", by SVP of Product and Applications Ariel Braunstein, is a reasonable example. ",{"type":21,"tag":180,"props":10921,"children":10922},{},[10923],{"type":26,"value":10924},"IonQ argues",{"type":26,"value":10926}," 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":180,"props":10928,"children":10929},{},[10930],{"type":26,"value":10931},"IonQ's recommendation",{"type":26,"value":10933}," (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":10935,"children":10936},{},[10937,10939,10944],{"type":26,"value":10938},"Note also what it does not contain. ",{"type":21,"tag":180,"props":10940,"children":10941},{},[10942],{"type":26,"value":10943},"The IonQ post cites no qubit count or resource estimate for RSA-2048 at all.",{"type":26,"value":10945}," 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 different workload, and it is not evidence about factoring. Treat vendor content as a directionally useful signal about industry expectations, not as a neutral source for the resource question.",{"type":21,"tag":49,"props":10947,"children":10949},{"id":10948},"how-to-reason-about-it-yourself",[10950],{"type":26,"value":10951},"How to reason about it yourself",{"type":21,"tag":22,"props":10953,"children":10954},{},[10955],{"type":26,"value":10956},"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":10958,"children":10959},{},[10960,10962,10967],{"type":26,"value":10961},"So the honest conclusion is an uncomfortable one: ",{"type":21,"tag":180,"props":10963,"children":10964},{},[10965],{"type":26,"value":10966},"nobody credible gives you a date, and anyone who does is telling you about their business model or their priors, not about physics.",{"type":26,"value":10968}," 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":10970,"children":10971},{},[10972,10974,10979],{"type":26,"value":10973},"The responsible posture is to migrate on a schedule that does not depend on knowing the date. Start with ",{"type":21,"tag":29,"props":10975,"children":10976},{"href":9379},[10977],{"type":26,"value":10978},"what PQC is",{"type":26,"value":10980},", then work the calendar. If your plan breaks when the estimate drops another 10×, it was never a plan.",{"type":21,"tag":22,"props":10982,"children":10983},{},[10984,10988,10989,10994,10995,11000,11001,11007,11008],{"type":21,"tag":180,"props":10985,"children":10986},{},[10987],{"type":26,"value":10408},{"type":26,"value":1307},{"type":21,"tag":29,"props":10990,"children":10991},{"href":1751},[10992],{"type":26,"value":10993},"Post-quantum migration deadlines",{"type":26,"value":7112},{"type":21,"tag":29,"props":10996,"children":10997},{"href":84},[10998],{"type":26,"value":10999},"Quantum error correction explained",{"type":26,"value":7112},{"type":21,"tag":29,"props":11002,"children":11004},{"href":11003},"\u002Fresearch",[11005],{"type":26,"value":11006},"Landmark research papers",{"type":26,"value":7112},{"type":21,"tag":29,"props":11009,"children":11010},{"href":10430},[11011],{"type":26,"value":10433},{"title":7,"searchDepth":150,"depth":150,"links":11013},[11014,11015,11016,11017,11018,11019,11020,11021],{"id":10470,"depth":150,"text":10473},{"id":10517,"depth":150,"text":10520},{"id":10553,"depth":150,"text":10556},{"id":10647,"depth":150,"text":10650},{"id":10834,"depth":150,"text":10837},{"id":10876,"depth":150,"text":10879},{"id":10899,"depth":150,"text":10902},{"id":10948,"depth":150,"text":10951},"content:blog:q-day-breaking-rsa-2048.md","blog\u002Fq-day-breaking-rsa-2048.md","blog\u002Fq-day-breaking-rsa-2048",{"_path":548,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":11026,"description":11027,"date":3063,"author":11,"tags":11028,"readingTime":1370,"body":11029,"_type":156,"_id":11521,"_source":158,"_file":11522,"_stem":11523,"_extension":161},"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.",[14,13,3065],{"type":18,"children":11030,"toc":11511},[11031,11048,11060,11066,11078,11091,11103,11115,11121,11126,11131,11136,11148,11160,11172,11184,11190,11195,11205,11215,11225,11231,11236,11241,11253,11272,11277,11282,11288,11300,11305,11336,11348,11354,11359,11391,11396,11402,11414,11419,11438,11444,11449,11454,11465],{"type":21,"tag":22,"props":11032,"children":11033},{},[11034,11036,11040,11042,11046],{"type":26,"value":11035},"Most explanations of ",{"type":21,"tag":29,"props":11037,"children":11038},{"href":65},[11039],{"type":26,"value":8965},{"type":26,"value":11041}," end at the same place. You encode a logical qubit across many physical ones, you run parity checks with ",{"type":21,"tag":29,"props":11043,"children":11044},{"href":8977},[11045],{"type":26,"value":8980},{"type":26,"value":11047},", you detect errors without collapsing the state, and then the article stops, having implied that detection is correction.",{"type":21,"tag":22,"props":11049,"children":11050},{},[11051,11053,11058],{"type":26,"value":11052},"It isn't. In our ",{"type":21,"tag":29,"props":11054,"children":11055},{"href":143},[11056],{"type":26,"value":11057},"companion post on logical qubits and fault tolerance",{"type":26,"value":11059},", 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":49,"props":11061,"children":11063},{"id":11062},"what-syndrome-measurement-gives-you",[11064],{"type":26,"value":11065},"What syndrome measurement gives you",{"type":21,"tag":22,"props":11067,"children":11068},{},[11069,11071,11076],{"type":26,"value":11070},"The ",{"type":21,"tag":29,"props":11072,"children":11073},{"href":84},[11074],{"type":26,"value":11075},"QEC basics post",{"type":26,"value":11077}," 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":11079,"children":11080},{},[11081,11083,11089],{"type":26,"value":11082},"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":29,"props":11084,"children":11086},{"href":11085},"\u002Fglossary\u002Fpauli-operators",[11087],{"type":26,"value":11088},"Pauli operator",{"type":26,"value":11090}," 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":11092,"children":11093},{},[11094,11096,11101],{"type":26,"value":11095},"Worse, the ",{"type":21,"tag":29,"props":11097,"children":11098},{"href":7420},[11099],{"type":26,"value":11100},"measurement",{"type":26,"value":11102}," 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":11104,"children":11105},{},[11106,11108,11113],{"type":26,"value":11107},"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":180,"props":11109,"children":11110},{},[11111],{"type":26,"value":11112},"decoding",{"type":26,"value":11114},", and it is a genuine combinatorial optimisation problem.",{"type":21,"tag":49,"props":11116,"children":11118},{"id":11117},"the-part-that-makes-it-urgent",[11119],{"type":26,"value":11120},"The part that makes it urgent",{"type":21,"tag":22,"props":11122,"children":11123},{},[11124],{"type":26,"value":11125},"Here is where it stops being an interesting algorithms question and becomes an engineering crisis.",{"type":21,"tag":22,"props":11127,"children":11128},{},[11129],{"type":26,"value":11130},"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":11132,"children":11133},{},[11134],{"type":26,"value":11135},"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":11137,"children":11138},{},[11139,11141,11146],{"type":26,"value":11140},"If it doesn't, you get the ",{"type":21,"tag":180,"props":11142,"children":11143},{},[11144],{"type":26,"value":11145},"backlog problem",{"type":26,"value":11147},", 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":11149,"children":11150},{},[11151,11153,11158],{"type":26,"value":11152},"Certain operations in a fault-tolerant computation are ",{"type":21,"tag":2054,"props":11154,"children":11155},{},[11156],{"type":26,"value":11157},"conditional",{"type":26,"value":11159},": 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":11161,"children":11162},{},[11163,11165,11170],{"type":26,"value":11164},"The result is an ",{"type":21,"tag":180,"props":11166,"children":11167},{},[11168],{"type":26,"value":11169},"exponential slowdown",{"type":26,"value":11171},". 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 hard throughput threshold, not a performance preference.",{"type":21,"tag":22,"props":11173,"children":11174},{},[11175,11177,11182],{"type":26,"value":11176},"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":2054,"props":11178,"children":11179},{},[11180],{"type":26,"value":11181},"memory",{"type":26,"value":11183}," experiment, where you only want to know whether the stored state survived. It is useless for computation.",{"type":21,"tag":49,"props":11185,"children":11187},{"id":11186},"the-decoder-families-and-their-bargains",[11188],{"type":26,"value":11189},"The decoder families, and their bargains",{"type":21,"tag":22,"props":11191,"children":11192},{},[11193],{"type":26,"value":11194},"The decoding problem has a beautiful structure in the surface code, and a much uglier one elsewhere.",{"type":21,"tag":22,"props":11196,"children":11197},{},[11198,11203],{"type":21,"tag":180,"props":11199,"children":11200},{},[11201],{"type":26,"value":11202},"Minimum-weight perfect matching (MWPM).",{"type":26,"value":11204}," 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":11206,"children":11207},{},[11208,11213],{"type":21,"tag":180,"props":11209,"children":11210},{},[11211],{"type":26,"value":11212},"Union-find.",{"type":26,"value":11214}," 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 fast 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":11216,"children":11217},{},[11218,11223],{"type":21,"tag":180,"props":11219,"children":11220},{},[11221],{"type":26,"value":11222},"Belief propagation plus ordered statistics (BP-OSD).",{"type":26,"value":11224}," This is what you reach for when the matching trick stops working, which is exactly what happens with quantum LDPC codes.",{"type":21,"tag":49,"props":11226,"children":11228},{"id":11227},"why-qldpc-decoding-is-genuinely-harder",[11229],{"type":26,"value":11230},"Why qLDPC decoding is genuinely harder",{"type":21,"tag":22,"props":11232,"children":11233},{},[11234],{"type":26,"value":11235},"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":11237,"children":11238},{},[11239],{"type":26,"value":11240},"Except it works worse in the quantum case, for two structural reasons.",{"type":21,"tag":22,"props":11242,"children":11243},{},[11244,11246,11251],{"type":26,"value":11245},"First, ",{"type":21,"tag":180,"props":11247,"children":11248},{},[11249],{"type":26,"value":11250},"short cycles",{"type":26,"value":11252},". 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":11254,"children":11255},{},[11256,11258,11263,11265,11270],{"type":26,"value":11257},"Second, and more fundamentally, ",{"type":21,"tag":180,"props":11259,"children":11260},{},[11261],{"type":26,"value":11262},"degeneracy",{"type":26,"value":11264},". In a quantum code, genuinely different physical error patterns are sometimes ",{"type":21,"tag":2054,"props":11266,"children":11267},{},[11268],{"type":26,"value":11269},"equivalent",{"type":26,"value":11271},": 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":11273,"children":11274},{},[11275],{"type":26,"value":11276},"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":11278,"children":11279},{},[11280],{"type":26,"value":11281},"So qLDPC codes present the field with an awkward bargain: better codes, worse decoders.",{"type":21,"tag":49,"props":11283,"children":11285},{"id":11284},"why-anyone-puts-up-with-it",[11286],{"type":26,"value":11287},"Why anyone puts up with it",{"type":21,"tag":22,"props":11289,"children":11290},{},[11291,11293,11298],{"type":26,"value":11292},"Because the encoding rate is dramatically better. Surface codes are extravagant: the ",{"type":21,"tag":29,"props":11294,"children":11295},{"href":1391},[11296],{"type":26,"value":11297},"logical qubit overhead",{"type":26,"value":11299}," 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":11301,"children":11302},{},[11303],{"type":26,"value":11304},"This is where vendors have entered the picture, and where the claims need careful handling.",{"type":21,"tag":22,"props":11306,"children":11307},{},[11308,11313,11315,11320,11322,11327,11329,11334],{"type":21,"tag":180,"props":11309,"children":11310},{},[11311],{"type":26,"value":11312},"IonQ reports",{"type":26,"value":11314}," having developed a \"Beam Search\" decoder intended to replace BP-OSD for quantum LDPC codes. On bivariate bicycle codes, ",{"type":21,"tag":180,"props":11316,"children":11317},{},[11318],{"type":26,"value":11319},"IonQ claims",{"type":26,"value":11321}," 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":180,"props":11323,"children":11324},{},[11325],{"type":26,"value":11326},"IonQ states",{"type":26,"value":11328}," it brought under one millisecond on a single core of a commercial CPU. ",{"type":21,"tag":180,"props":11330,"children":11331},{},[11332],{"type":26,"value":11333},"IonQ further estimates",{"type":26,"value":11335}," 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":11337,"children":11338},{},[11339,11341,11346],{"type":26,"value":11340},"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 specific multipliers should be treated as claims pending independent reproduction, in the same way we'd treat any ",{"type":21,"tag":29,"props":11342,"children":11343},{"href":714},[11344],{"type":26,"value":11345},"benchmark",{"type":26,"value":11347}," that hasn't been replicated by a disinterested party.",{"type":21,"tag":49,"props":11349,"children":11351},{"id":11350},"why-you-cant-simply-pick-the-fast-decoder",[11352],{"type":26,"value":11353},"Why you can't simply pick the fast decoder",{"type":21,"tag":22,"props":11355,"children":11356},{},[11357],{"type":26,"value":11358},"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":11360,"children":11361},{},[11362,11364,11369,11371,11376,11378,11383,11385,11389],{"type":26,"value":11363},"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":29,"props":11365,"children":11366},{"href":3745},[11367],{"type":26,"value":11368},"Google's 2024 below-threshold result",{"type":26,"value":11370}," (the first experimental demonstration that increasing code distance suppresses logical errors rather than amplifying them, descending from ",{"type":21,"tag":29,"props":11372,"children":11373},{"href":9066},[11374],{"type":26,"value":11375},"Kitaev's topological codes",{"type":26,"value":11377}," and ultimately ",{"type":21,"tag":29,"props":11379,"children":11380},{"href":9053},[11381],{"type":26,"value":11382},"Shor's original 1995 code",{"type":26,"value":11384},") was a narrow win. Each distance increase roughly halved the error rate. A decoder that degrades logical ",{"type":21,"tag":29,"props":11386,"children":11387},{"href":9013},[11388],{"type":26,"value":9016},{"type":26,"value":11390}," 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":11392,"children":11393},{},[11394],{"type":26,"value":11395},"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 same 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":49,"props":11397,"children":11399},{"id":11398},"where-the-decoder-physically-lives",[11400],{"type":26,"value":11401},"Where the decoder physically lives",{"type":21,"tag":22,"props":11403,"children":11404},{},[11405,11407,11412],{"type":26,"value":11406},"The last constraint is a plumbing one. Syndrome bits have to travel from the ",{"type":21,"tag":29,"props":11408,"children":11410},{"href":11409},"\u002Fglossary\u002Fqpu",[11411],{"type":26,"value":8889},{"type":26,"value":11413}," to whatever computes on them, and the answer has to travel back, inside the error-correction cycle time.",{"type":21,"tag":22,"props":11415,"children":11416},{},[11417],{"type":26,"value":11418},"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 easy 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":11420,"children":11421},{},[11422,11424,11429,11431,11436],{"type":26,"value":11423},"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":29,"props":11425,"children":11426},{"href":257},[11427],{"type":26,"value":11428},"modality differences",{"type":26,"value":11430}," drive architecture rather than being incidental, and it's visible in the ",{"type":21,"tag":29,"props":11432,"children":11433},{"href":307},[11434],{"type":26,"value":11435},"hardware landscape",{"type":26,"value":11437}," if you know to look for it.",{"type":21,"tag":49,"props":11439,"children":11441},{"id":11440},"the-honest-state-of-things",[11442],{"type":26,"value":11443},"The honest state of things",{"type":21,"tag":22,"props":11445,"children":11446},{},[11447],{"type":26,"value":11448},"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":11450,"children":11451},{},[11452],{"type":26,"value":11453},"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":11455,"children":11456},{},[11457,11459,11464],{"type":26,"value":11458},"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":29,"props":11460,"children":11461},{"href":10430},[11462],{"type":26,"value":11463},"quantum news",{"type":26,"value":802},{"type":21,"tag":22,"props":11466,"children":11467},{},[11468,11470,11474,11476,11480,11482,11486,11488,11493,11495,11501,11503,11509],{"type":26,"value":11469},"None of this is a reason to wait. The concepts underneath (noise, ",{"type":21,"tag":29,"props":11471,"children":11472},{"href":8929},[11473],{"type":26,"value":8932},{"type":26,"value":11475},", what a ",{"type":21,"tag":29,"props":11477,"children":11478},{"href":1200},[11479],{"type":26,"value":2782},{"type":26,"value":11481}," 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":29,"props":11483,"children":11484},{"href":446},[11485],{"type":26,"value":9290},{"type":26,"value":11487},". The ",{"type":21,"tag":29,"props":11489,"children":11490},{"href":11003},[11491],{"type":26,"value":11492},"research library",{"type":26,"value":11494}," has the primary sources, ",{"type":21,"tag":29,"props":11496,"children":11498},{"href":11497},"\u002Fglossary\u002Fsyndrome-decoding",[11499],{"type":26,"value":11500},"syndrome decoding",{"type":26,"value":11502}," has the compact definition, and if you want to see what problems this infrastructure is ultimately being built for, the ",{"type":21,"tag":29,"props":11504,"children":11506},{"href":11505},"\u002Fuse-cases",[11507],{"type":26,"value":11508},"use cases page",{"type":26,"value":11510}," is the place to start.",{"title":7,"searchDepth":150,"depth":150,"links":11512},[11513,11514,11515,11516,11517,11518,11519,11520],{"id":11062,"depth":150,"text":11065},{"id":11117,"depth":150,"text":11120},{"id":11186,"depth":150,"text":11189},{"id":11227,"depth":150,"text":11230},{"id":11284,"depth":150,"text":11287},{"id":11350,"depth":150,"text":11353},{"id":11398,"depth":150,"text":11401},{"id":11440,"depth":150,"text":11443},"content:blog:quantum-error-decoding-bottleneck.md","blog\u002Fquantum-error-decoding-bottleneck.md","blog\u002Fquantum-error-decoding-bottleneck",{"_path":11525,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":11526,"description":11527,"date":3063,"author":11,"tags":11528,"readingTime":3446,"body":11529,"_type":156,"_id":13776,"_source":158,"_file":13777,"_stem":13778,"_extension":161},"\u002Fblog\u002Fquantum-fourier-transform-tutorial","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.",[7148,1369,2865],{"type":18,"children":11530,"toc":13765},[11531,11543,11548,11556,11562,11574,11579,11587,11615,11626,11632,11644,11649,11672,11684,11690,11695,11746,11763,11769,11780,11810,11815,12381,12386,12394,12399,12405,12418,12600,12604,12612,12632,12638,12649,12991,12995,13003,13015,13020,13194,13198,13206,13211,13217,13240,13250,13276,13281,13287,13299,13603,13608,13700,13711,13717,13756,13761],{"type":21,"tag":22,"props":11532,"children":11533},{},[11534,11535,11541],{"type":26,"value":11070},{"type":21,"tag":29,"props":11536,"children":11538},{"href":11537},"\u002Fglossary\u002Fqft",[11539],{"type":26,"value":11540},"Quantum Fourier Transform",{"type":26,"value":11542}," is the single most important 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":11544,"children":11545},{},[11546],{"type":26,"value":11547},"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":11549,"children":11550},{},[11551],{"type":21,"tag":180,"props":11552,"children":11553},{},[11554],{"type":26,"value":11555},"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":49,"props":11557,"children":11559},{"id":11558},"what-the-qft-does",[11560],{"type":26,"value":11561},"What the QFT does",{"type":21,"tag":22,"props":11563,"children":11564},{},[11565,11567,11572],{"type":26,"value":11566},"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":2054,"props":11568,"children":11569},{},[11570],{"type":26,"value":11571},"amplitude vector",{"type":26,"value":11573}," of an n-qubit state, so N = 2ⁿ.",{"type":21,"tag":22,"props":11575,"children":11576},{},[11577],{"type":26,"value":11578},"On basis states it acts as:",{"type":21,"tag":2310,"props":11580,"children":11582},{"code":11581},"QFT |x⟩ = (1\u002F√N) Σ_{k=0}^{N-1} e^{2πi·xk\u002FN} |k⟩\n",[11583],{"type":21,"tag":2080,"props":11584,"children":11585},{"__ignoreMap":7},[11586],{"type":26,"value":11581},{"type":21,"tag":22,"props":11588,"children":11589},{},[11590,11592,11597,11599,11605,11607,11613],{"type":26,"value":11591},"Notice what's on the right: every basis state gets amplitude of the ",{"type":21,"tag":2054,"props":11593,"children":11594},{},[11595],{"type":26,"value":11596},"same magnitude",{"type":26,"value":11598}," (1\u002F√N), and all the information about ",{"type":21,"tag":2080,"props":11600,"children":11602},{"className":11601},[],[11603],{"type":26,"value":11604},"x",{"type":26,"value":11606}," lives in the complex phase ",{"type":21,"tag":2080,"props":11608,"children":11610},{"className":11609},[],[11611],{"type":26,"value":11612},"e^{2πi·xk\u002FN}",{"type":26,"value":11614},". The QFT takes information that was sitting in the computational basis and pushes it into the phases.",{"type":21,"tag":22,"props":11616,"children":11617},{},[11618,11620,11624],{"type":26,"value":11619},"That single fact is the whole story of the QFT. It's a perfectly uniform state, as far as any ",{"type":21,"tag":29,"props":11621,"children":11622},{"href":7420},[11623],{"type":26,"value":11100},{"type":26,"value":11625}," 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":49,"props":11627,"children":11629},{"id":11628},"the-readout-problem-stated-plainly",[11630],{"type":26,"value":11631},"The readout problem, stated plainly",{"type":21,"tag":22,"props":11633,"children":11634},{},[11635,11637,11642],{"type":26,"value":11636},"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":2054,"props":11638,"children":11639},{},[11640],{"type":26,"value":11641},"gate count",{"type":26,"value":11643},", and it's the number everybody quotes.",{"type":21,"tag":22,"props":11645,"children":11646},{},[11647],{"type":26,"value":11648},"But it isn't a usable speedup, for two reasons:",{"type":21,"tag":7007,"props":11650,"children":11651},{},[11652,11662],{"type":21,"tag":3122,"props":11653,"children":11654},{},[11655,11660],{"type":21,"tag":180,"props":11656,"children":11657},{},[11658],{"type":26,"value":11659},"You can't load the input.",{"type":26,"value":11661}," Getting 2ⁿ arbitrary classical amplitudes into a quantum register generally costs O(2ⁿ) gates, wiping out the advantage before you start.",{"type":21,"tag":3122,"props":11663,"children":11664},{},[11665,11670],{"type":21,"tag":180,"props":11666,"children":11667},{},[11668],{"type":26,"value":11669},"You can't read the output.",{"type":26,"value":11671}," 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":11673,"children":11674},{},[11675,11677,11682],{"type":26,"value":11676},"So the QFT is never a drop-in replacement for the FFT. It is a ",{"type":21,"tag":2054,"props":11678,"children":11679},{},[11680],{"type":26,"value":11681},"transform you apply in the middle of a larger circuit",{"type":26,"value":11683},", 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":49,"props":11685,"children":11687},{"id":11686},"the-circuit-hadamard-rotate-recurse-swap",[11688],{"type":26,"value":11689},"The circuit: Hadamard, rotate, recurse, swap",{"type":21,"tag":22,"props":11691,"children":11692},{},[11693],{"type":26,"value":11694},"The construction follows directly from factoring the exponential above into a product over qubits. For the most significant qubit:",{"type":21,"tag":7007,"props":11696,"children":11697},{},[11698,11715,11736,11741],{"type":21,"tag":3122,"props":11699,"children":11700},{},[11701,11702,11707,11709,11713],{"type":26,"value":7252},{"type":21,"tag":29,"props":11703,"children":11704},{"href":7255},[11705],{"type":26,"value":11706},"Hadamard",{"type":26,"value":11708},". This creates a ",{"type":21,"tag":29,"props":11710,"children":11711},{"href":8853},[11712],{"type":26,"value":8856},{"type":26,"value":11714}," whose relative phase encodes one bit of the input.",{"type":21,"tag":3122,"props":11716,"children":11717},{},[11718,11720,11726,11728,11734],{"type":26,"value":11719},"Apply controlled-phase gates ",{"type":21,"tag":2080,"props":11721,"children":11723},{"className":11722},[],[11724],{"type":26,"value":11725},"CP(π\u002F2^k)",{"type":26,"value":11727}," from each less significant qubit, controlled onto that same qubit. Qubit distance ",{"type":21,"tag":2080,"props":11729,"children":11731},{"className":11730},[],[11732],{"type":26,"value":11733},"k",{"type":26,"value":11735}," contributes a rotation of π\u002F2^k: the further away, the smaller the correction.",{"type":21,"tag":3122,"props":11737,"children":11738},{},[11739],{"type":26,"value":11740},"Recurse on the remaining n−1 qubits.",{"type":21,"tag":3122,"props":11742,"children":11743},{},[11744],{"type":26,"value":11745},"Swap the qubit order at the end.",{"type":21,"tag":22,"props":11747,"children":11748},{},[11749,11754,11756,11761],{"type":21,"tag":180,"props":11750,"children":11751},{},[11752],{"type":26,"value":11753},"Why the swaps?",{"type":26,"value":11755}," 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 get a bit-reversed answer. The swaps fix it. (In hardware-aware compilation you sometimes ",{"type":21,"tag":2054,"props":11757,"children":11758},{},[11759],{"type":26,"value":11760},"do",{"type":26,"value":11762}," 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":49,"props":11764,"children":11766},{"id":11765},"building-it-in-qiskit",[11767],{"type":26,"value":11768},"Building it in Qiskit",{"type":21,"tag":22,"props":11770,"children":11771},{},[11772,11774,11778],{"type":26,"value":11773},"Make sure you have ",{"type":21,"tag":29,"props":11775,"children":11776},{"href":7091},[11777],{"type":26,"value":1369},{"type":26,"value":11779}," and the Aer simulator installed:",{"type":21,"tag":2310,"props":11781,"children":11783},{"code":11782,"language":9745,"meta":7,"className":9743,"style":7},"pip install qiskit qiskit-aer\n",[11784],{"type":21,"tag":2080,"props":11785,"children":11786},{"__ignoreMap":7},[11787],{"type":21,"tag":2320,"props":11788,"children":11789},{"class":2322,"line":2323},[11790,11795,11800,11805],{"type":21,"tag":2320,"props":11791,"children":11792},{"style":4364},[11793],{"type":26,"value":11794},"pip",{"type":21,"tag":2320,"props":11796,"children":11797},{"style":2356},[11798],{"type":26,"value":11799}," install",{"type":21,"tag":2320,"props":11801,"children":11802},{"style":2356},[11803],{"type":26,"value":11804}," qiskit",{"type":21,"tag":2320,"props":11806,"children":11807},{"style":2356},[11808],{"type":26,"value":11809}," qiskit-aer\n",{"type":21,"tag":22,"props":11811,"children":11812},{},[11813],{"type":26,"value":11814},"Now the construction, written recursively so it mirrors the math:",{"type":21,"tag":2310,"props":11816,"children":11818},{"code":11817,"language":3190,"meta":7,"className":3188,"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",[11819],{"type":21,"tag":2080,"props":11820,"children":11821},{"__ignoreMap":7},[11822,11841,11860,11881,11900,11907,11914,11931,11939,11965,11978,12000,12008,12032,12040,12074,12087,12098,12105,12112,12128,12136,12171,12199,12210,12217,12224,12240,12272,12280,12288,12299,12306,12313,12338,12369],{"type":21,"tag":2320,"props":11823,"children":11824},{"class":2322,"line":2323},[11825,11829,11833,11837],{"type":21,"tag":2320,"props":11826,"children":11827},{"style":3200},[11828],{"type":26,"value":3213},{"type":21,"tag":2320,"props":11830,"children":11831},{"style":2327},[11832],{"type":26,"value":4273},{"type":21,"tag":2320,"props":11834,"children":11835},{"style":3200},[11836],{"type":26,"value":4278},{"type":21,"tag":2320,"props":11838,"children":11839},{"style":2327},[11840],{"type":26,"value":4283},{"type":21,"tag":2320,"props":11842,"children":11843},{"class":2322,"line":150},[11844,11848,11852,11856],{"type":21,"tag":2320,"props":11845,"children":11846},{"style":3200},[11847],{"type":26,"value":3203},{"type":21,"tag":2320,"props":11849,"children":11850},{"style":2327},[11851],{"type":26,"value":4295},{"type":21,"tag":2320,"props":11853,"children":11854},{"style":3200},[11855],{"type":26,"value":3213},{"type":21,"tag":2320,"props":11857,"children":11858},{"style":2327},[11859],{"type":26,"value":4304},{"type":21,"tag":2320,"props":11861,"children":11862},{"class":2322,"line":2341},[11863,11867,11872,11876],{"type":21,"tag":2320,"props":11864,"children":11865},{"style":3200},[11866],{"type":26,"value":3203},{"type":21,"tag":2320,"props":11868,"children":11869},{"style":2327},[11870],{"type":26,"value":11871}," qiskit.quantum_info ",{"type":21,"tag":2320,"props":11873,"children":11874},{"style":3200},[11875],{"type":26,"value":3213},{"type":21,"tag":2320,"props":11877,"children":11878},{"style":2327},[11879],{"type":26,"value":11880}," Statevector, Operator\n",{"type":21,"tag":2320,"props":11882,"children":11883},{"class":2322,"line":2403},[11884,11888,11892,11896],{"type":21,"tag":2320,"props":11885,"children":11886},{"style":3200},[11887],{"type":26,"value":3203},{"type":21,"tag":2320,"props":11889,"children":11890},{"style":2327},[11891],{"type":26,"value":4316},{"type":21,"tag":2320,"props":11893,"children":11894},{"style":3200},[11895],{"type":26,"value":3213},{"type":21,"tag":2320,"props":11897,"children":11898},{"style":2327},[11899],{"type":26,"value":4325},{"type":21,"tag":2320,"props":11901,"children":11902},{"class":2322,"line":2427},[11903],{"type":21,"tag":2320,"props":11904,"children":11905},{"emptyLinePlaceholder":3224},[11906],{"type":26,"value":3227},{"type":21,"tag":2320,"props":11908,"children":11909},{"class":2322,"line":854},[11910],{"type":21,"tag":2320,"props":11911,"children":11912},{"emptyLinePlaceholder":3224},[11913],{"type":26,"value":3227},{"type":21,"tag":2320,"props":11915,"children":11916},{"class":2322,"line":171},[11917,11921,11926],{"type":21,"tag":2320,"props":11918,"children":11919},{"style":3200},[11920],{"type":26,"value":4361},{"type":21,"tag":2320,"props":11922,"children":11923},{"style":4364},[11924],{"type":26,"value":11925}," qft_rotations",{"type":21,"tag":2320,"props":11927,"children":11928},{"style":2327},[11929],{"type":26,"value":11930},"(circuit, n):\n",{"type":21,"tag":2320,"props":11932,"children":11933},{"class":2322,"line":16},[11934],{"type":21,"tag":2320,"props":11935,"children":11936},{"style":2356},[11937],{"type":26,"value":11938},"    \"\"\"Hadamard + controlled phases on the top qubit, then recurse.\"\"\"\n",{"type":21,"tag":2320,"props":11940,"children":11941},{"class":2322,"line":1370},[11942,11947,11952,11956,11961],{"type":21,"tag":2320,"props":11943,"children":11944},{"style":3200},[11945],{"type":26,"value":11946},"    if",{"type":21,"tag":2320,"props":11948,"children":11949},{"style":2327},[11950],{"type":26,"value":11951}," n ",{"type":21,"tag":2320,"props":11953,"children":11954},{"style":3200},[11955],{"type":26,"value":4909},{"type":21,"tag":2320,"props":11957,"children":11958},{"style":2345},[11959],{"type":26,"value":11960}," 0",{"type":21,"tag":2320,"props":11962,"children":11963},{"style":2327},[11964],{"type":26,"value":4919},{"type":21,"tag":2320,"props":11966,"children":11967},{"class":2322,"line":3446},[11968,11973],{"type":21,"tag":2320,"props":11969,"children":11970},{"style":3200},[11971],{"type":26,"value":11972},"        return",{"type":21,"tag":2320,"props":11974,"children":11975},{"style":2327},[11976],{"type":26,"value":11977}," circuit\n",{"type":21,"tag":2320,"props":11979,"children":11980},{"class":2322,"line":3456},[11981,11986,11991,11995],{"type":21,"tag":2320,"props":11982,"children":11983},{"style":2327},[11984],{"type":26,"value":11985},"    n ",{"type":21,"tag":2320,"props":11987,"children":11988},{"style":3200},[11989],{"type":26,"value":11990},"-=",{"type":21,"tag":2320,"props":11992,"children":11993},{"style":2345},[11994],{"type":26,"value":6099},{"type":21,"tag":2320,"props":11996,"children":11997},{"style":3450},[11998],{"type":26,"value":11999},"                      # index of the most significant qubit\n",{"type":21,"tag":2320,"props":12001,"children":12002},{"class":2322,"line":474},[12003],{"type":21,"tag":2320,"props":12004,"children":12005},{"style":2327},[12006],{"type":26,"value":12007},"    circuit.h(n)\n",{"type":21,"tag":2320,"props":12009,"children":12010},{"class":2322,"line":3516},[12011,12015,12020,12024,12028],{"type":21,"tag":2320,"props":12012,"children":12013},{"style":3200},[12014],{"type":26,"value":4740},{"type":21,"tag":2320,"props":12016,"children":12017},{"style":2327},[12018],{"type":26,"value":12019}," qubit ",{"type":21,"tag":2320,"props":12021,"children":12022},{"style":3200},[12023],{"type":26,"value":3503},{"type":21,"tag":2320,"props":12025,"children":12026},{"style":2345},[12027],{"type":26,"value":3508},{"type":21,"tag":2320,"props":12029,"children":12030},{"style":2327},[12031],{"type":26,"value":7841},{"type":21,"tag":2320,"props":12033,"children":12034},{"class":2322,"line":3564},[12035],{"type":21,"tag":2320,"props":12036,"children":12037},{"style":3450},[12038],{"type":26,"value":12039},"        # qubit is (n - qubit) positions below the target\n",{"type":21,"tag":2320,"props":12041,"children":12042},{"class":2322,"line":3606},[12043,12048,12052,12056,12060,12065,12069],{"type":21,"tag":2320,"props":12044,"children":12045},{"style":2327},[12046],{"type":26,"value":12047},"        circuit.cp(np.pi ",{"type":21,"tag":2320,"props":12049,"children":12050},{"style":3200},[12051],{"type":26,"value":2175},{"type":21,"tag":2320,"props":12053,"children":12054},{"style":2345},[12055],{"type":26,"value":6384},{"type":21,"tag":2320,"props":12057,"children":12058},{"style":3200},[12059],{"type":26,"value":8309},{"type":21,"tag":2320,"props":12061,"children":12062},{"style":2327},[12063],{"type":26,"value":12064}," (n ",{"type":21,"tag":2320,"props":12066,"children":12067},{"style":3200},[12068],{"type":26,"value":4848},{"type":21,"tag":2320,"props":12070,"children":12071},{"style":2327},[12072],{"type":26,"value":12073}," qubit), qubit, n)\n",{"type":21,"tag":2320,"props":12075,"children":12076},{"class":2322,"line":4631},[12077,12082],{"type":21,"tag":2320,"props":12078,"children":12079},{"style":2327},[12080],{"type":26,"value":12081},"    qft_rotations(circuit, n)   ",{"type":21,"tag":2320,"props":12083,"children":12084},{"style":3450},[12085],{"type":26,"value":12086},"# recurse on the rest\n",{"type":21,"tag":2320,"props":12088,"children":12089},{"class":2322,"line":4650},[12090,12094],{"type":21,"tag":2320,"props":12091,"children":12092},{"style":3200},[12093],{"type":26,"value":4586},{"type":21,"tag":2320,"props":12095,"children":12096},{"style":2327},[12097],{"type":26,"value":11977},{"type":21,"tag":2320,"props":12099,"children":12100},{"class":2322,"line":4658},[12101],{"type":21,"tag":2320,"props":12102,"children":12103},{"emptyLinePlaceholder":3224},[12104],{"type":26,"value":3227},{"type":21,"tag":2320,"props":12106,"children":12107},{"class":2322,"line":4689},[12108],{"type":21,"tag":2320,"props":12109,"children":12110},{"emptyLinePlaceholder":3224},[12111],{"type":26,"value":3227},{"type":21,"tag":2320,"props":12113,"children":12114},{"class":2322,"line":4734},[12115,12119,12124],{"type":21,"tag":2320,"props":12116,"children":12117},{"style":3200},[12118],{"type":26,"value":4361},{"type":21,"tag":2320,"props":12120,"children":12121},{"style":4364},[12122],{"type":26,"value":12123}," swap_registers",{"type":21,"tag":2320,"props":12125,"children":12126},{"style":2327},[12127],{"type":26,"value":11930},{"type":21,"tag":2320,"props":12129,"children":12130},{"class":2322,"line":4773},[12131],{"type":21,"tag":2320,"props":12132,"children":12133},{"style":2356},[12134],{"type":26,"value":12135},"    \"\"\"Reverse the qubit order to undo the bit reversal.\"\"\"\n",{"type":21,"tag":2320,"props":12137,"children":12138},{"class":2322,"line":4791},[12139,12143,12147,12151,12155,12159,12163,12167],{"type":21,"tag":2320,"props":12140,"children":12141},{"style":3200},[12142],{"type":26,"value":4740},{"type":21,"tag":2320,"props":12144,"children":12145},{"style":2327},[12146],{"type":26,"value":12019},{"type":21,"tag":2320,"props":12148,"children":12149},{"style":3200},[12150],{"type":26,"value":3503},{"type":21,"tag":2320,"props":12152,"children":12153},{"style":2345},[12154],{"type":26,"value":3508},{"type":21,"tag":2320,"props":12156,"children":12157},{"style":2327},[12158],{"type":26,"value":7669},{"type":21,"tag":2320,"props":12160,"children":12161},{"style":3200},[12162],{"type":26,"value":6108},{"type":21,"tag":2320,"props":12164,"children":12165},{"style":2345},[12166],{"type":26,"value":6384},{"type":21,"tag":2320,"props":12168,"children":12169},{"style":2327},[12170],{"type":26,"value":4414},{"type":21,"tag":2320,"props":12172,"children":12173},{"class":2322,"line":4865},[12174,12179,12183,12187,12191,12195],{"type":21,"tag":2320,"props":12175,"children":12176},{"style":2327},[12177],{"type":26,"value":12178},"        circuit.swap(qubit, n ",{"type":21,"tag":2320,"props":12180,"children":12181},{"style":3200},[12182],{"type":26,"value":4848},{"type":21,"tag":2320,"props":12184,"children":12185},{"style":2327},[12186],{"type":26,"value":12019},{"type":21,"tag":2320,"props":12188,"children":12189},{"style":3200},[12190],{"type":26,"value":4848},{"type":21,"tag":2320,"props":12192,"children":12193},{"style":2345},[12194],{"type":26,"value":6099},{"type":21,"tag":2320,"props":12196,"children":12197},{"style":2327},[12198],{"type":26,"value":3300},{"type":21,"tag":2320,"props":12200,"children":12201},{"class":2322,"line":4893},[12202,12206],{"type":21,"tag":2320,"props":12203,"children":12204},{"style":3200},[12205],{"type":26,"value":4586},{"type":21,"tag":2320,"props":12207,"children":12208},{"style":2327},[12209],{"type":26,"value":11977},{"type":21,"tag":2320,"props":12211,"children":12212},{"class":2322,"line":4922},[12213],{"type":21,"tag":2320,"props":12214,"children":12215},{"emptyLinePlaceholder":3224},[12216],{"type":26,"value":3227},{"type":21,"tag":2320,"props":12218,"children":12219},{"class":2322,"line":4931},[12220],{"type":21,"tag":2320,"props":12221,"children":12222},{"emptyLinePlaceholder":3224},[12223],{"type":26,"value":3227},{"type":21,"tag":2320,"props":12225,"children":12226},{"class":2322,"line":4959},[12227,12231,12236],{"type":21,"tag":2320,"props":12228,"children":12229},{"style":3200},[12230],{"type":26,"value":4361},{"type":21,"tag":2320,"props":12232,"children":12233},{"style":4364},[12234],{"type":26,"value":12235}," qft",{"type":21,"tag":2320,"props":12237,"children":12238},{"style":2327},[12239],{"type":26,"value":7841},{"type":21,"tag":2320,"props":12241,"children":12242},{"class":2322,"line":4990},[12243,12247,12251,12255,12259,12263,12268],{"type":21,"tag":2320,"props":12244,"children":12245},{"style":2327},[12246],{"type":26,"value":7497},{"type":21,"tag":2320,"props":12248,"children":12249},{"style":3200},[12250],{"type":26,"value":3240},{"type":21,"tag":2320,"props":12252,"children":12253},{"style":2327},[12254],{"type":26,"value":7506},{"type":21,"tag":2320,"props":12256,"children":12257},{"style":3265},[12258],{"type":26,"value":7511},{"type":21,"tag":2320,"props":12260,"children":12261},{"style":3200},[12262],{"type":26,"value":3240},{"type":21,"tag":2320,"props":12264,"children":12265},{"style":2356},[12266],{"type":26,"value":12267},"\"QFT\"",{"type":21,"tag":2320,"props":12269,"children":12270},{"style":2327},[12271],{"type":26,"value":3300},{"type":21,"tag":2320,"props":12273,"children":12274},{"class":2322,"line":5012},[12275],{"type":21,"tag":2320,"props":12276,"children":12277},{"style":2327},[12278],{"type":26,"value":12279},"    qft_rotations(qc, n)\n",{"type":21,"tag":2320,"props":12281,"children":12282},{"class":2322,"line":5058},[12283],{"type":21,"tag":2320,"props":12284,"children":12285},{"style":2327},[12286],{"type":26,"value":12287},"    swap_registers(qc, n)\n",{"type":21,"tag":2320,"props":12289,"children":12290},{"class":2322,"line":5071},[12291,12295],{"type":21,"tag":2320,"props":12292,"children":12293},{"style":3200},[12294],{"type":26,"value":4586},{"type":21,"tag":2320,"props":12296,"children":12297},{"style":2327},[12298],{"type":26,"value":7778},{"type":21,"tag":2320,"props":12300,"children":12301},{"class":2322,"line":5079},[12302],{"type":21,"tag":2320,"props":12303,"children":12304},{"emptyLinePlaceholder":3224},[12305],{"type":26,"value":3227},{"type":21,"tag":2320,"props":12307,"children":12308},{"class":2322,"line":5097},[12309],{"type":21,"tag":2320,"props":12310,"children":12311},{"emptyLinePlaceholder":3224},[12312],{"type":26,"value":3227},{"type":21,"tag":2320,"props":12314,"children":12315},{"class":2322,"line":5115},[12316,12321,12325,12330,12334],{"type":21,"tag":2320,"props":12317,"children":12318},{"style":2327},[12319],{"type":26,"value":12320},"my_qft ",{"type":21,"tag":2320,"props":12322,"children":12323},{"style":3200},[12324],{"type":26,"value":3240},{"type":21,"tag":2320,"props":12326,"children":12327},{"style":2327},[12328],{"type":26,"value":12329}," qft(",{"type":21,"tag":2320,"props":12331,"children":12332},{"style":2345},[12333],{"type":26,"value":5532},{"type":21,"tag":2320,"props":12335,"children":12336},{"style":2327},[12337],{"type":26,"value":3300},{"type":21,"tag":2320,"props":12339,"children":12340},{"class":2322,"line":5123},[12341,12345,12350,12355,12359,12364],{"type":21,"tag":2320,"props":12342,"children":12343},{"style":2345},[12344],{"type":26,"value":3315},{"type":21,"tag":2320,"props":12346,"children":12347},{"style":2327},[12348],{"type":26,"value":12349},"(my_qft.draw(",{"type":21,"tag":2320,"props":12351,"children":12352},{"style":3265},[12353],{"type":26,"value":12354},"output",{"type":21,"tag":2320,"props":12356,"children":12357},{"style":3200},[12358],{"type":26,"value":3240},{"type":21,"tag":2320,"props":12360,"children":12361},{"style":2356},[12362],{"type":26,"value":12363},"\"text\"",{"type":21,"tag":2320,"props":12365,"children":12366},{"style":2327},[12367],{"type":26,"value":12368},"))\n",{"type":21,"tag":2320,"props":12370,"children":12371},{"class":2322,"line":5157},[12372,12376],{"type":21,"tag":2320,"props":12373,"children":12374},{"style":2345},[12375],{"type":26,"value":3315},{"type":21,"tag":2320,"props":12377,"children":12378},{"style":2327},[12379],{"type":26,"value":12380},"(my_qft.count_ops())\n",{"type":21,"tag":22,"props":12382,"children":12383},{},[12384],{"type":26,"value":12385},"Real output:",{"type":21,"tag":2310,"props":12387,"children":12389},{"code":12388},"                                                                          ┌───┐»\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",[12390],{"type":21,"tag":2080,"props":12391,"children":12392},{"__ignoreMap":7},[12393],{"type":26,"value":12388},{"type":21,"tag":22,"props":12395,"children":12396},{},[12397],{"type":26,"value":12398},"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":49,"props":12400,"children":12402},{"id":12401},"proving-its-correct",[12403],{"type":26,"value":12404},"Proving it's correct",{"type":21,"tag":22,"props":12406,"children":12407},{},[12408,12410,12416],{"type":26,"value":12409},"Never trust a hand-built QFT. Compare the full unitary against Qiskit's ",{"type":21,"tag":2080,"props":12411,"children":12413},{"className":12412},[],[12414],{"type":26,"value":12415},"QFTGate",{"type":26,"value":12417},":",{"type":21,"tag":2310,"props":12419,"children":12421},{"code":12420,"language":3190,"meta":7,"className":3188,"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",[12422],{"type":21,"tag":2080,"props":12423,"children":12424},{"__ignoreMap":7},[12425,12445,12452,12468,12485,12492,12509,12525,12532,12549,12570],{"type":21,"tag":2320,"props":12426,"children":12427},{"class":2322,"line":2323},[12428,12432,12436,12440],{"type":21,"tag":2320,"props":12429,"children":12430},{"style":3200},[12431],{"type":26,"value":3203},{"type":21,"tag":2320,"props":12433,"children":12434},{"style":2327},[12435],{"type":26,"value":5821},{"type":21,"tag":2320,"props":12437,"children":12438},{"style":3200},[12439],{"type":26,"value":3213},{"type":21,"tag":2320,"props":12441,"children":12442},{"style":2327},[12443],{"type":26,"value":12444}," QFTGate\n",{"type":21,"tag":2320,"props":12446,"children":12447},{"class":2322,"line":150},[12448],{"type":21,"tag":2320,"props":12449,"children":12450},{"emptyLinePlaceholder":3224},[12451],{"type":26,"value":3227},{"type":21,"tag":2320,"props":12453,"children":12454},{"class":2322,"line":2341},[12455,12459,12463],{"type":21,"tag":2320,"props":12456,"children":12457},{"style":2327},[12458],{"type":26,"value":5085},{"type":21,"tag":2320,"props":12460,"children":12461},{"style":3200},[12462],{"type":26,"value":3240},{"type":21,"tag":2320,"props":12464,"children":12465},{"style":2345},[12466],{"type":26,"value":12467}," 4\n",{"type":21,"tag":2320,"props":12469,"children":12470},{"class":2322,"line":2403},[12471,12476,12480],{"type":21,"tag":2320,"props":12472,"children":12473},{"style":2327},[12474],{"type":26,"value":12475},"mine ",{"type":21,"tag":2320,"props":12477,"children":12478},{"style":3200},[12479],{"type":26,"value":3240},{"type":21,"tag":2320,"props":12481,"children":12482},{"style":2327},[12483],{"type":26,"value":12484}," qft(n)\n",{"type":21,"tag":2320,"props":12486,"children":12487},{"class":2322,"line":2427},[12488],{"type":21,"tag":2320,"props":12489,"children":12490},{"emptyLinePlaceholder":3224},[12491],{"type":26,"value":3227},{"type":21,"tag":2320,"props":12493,"children":12494},{"class":2322,"line":854},[12495,12500,12504],{"type":21,"tag":2320,"props":12496,"children":12497},{"style":2327},[12498],{"type":26,"value":12499},"reference ",{"type":21,"tag":2320,"props":12501,"children":12502},{"style":3200},[12503],{"type":26,"value":3240},{"type":21,"tag":2320,"props":12505,"children":12506},{"style":2327},[12507],{"type":26,"value":12508}," QuantumCircuit(n)\n",{"type":21,"tag":2320,"props":12510,"children":12511},{"class":2322,"line":171},[12512,12517,12521],{"type":21,"tag":2320,"props":12513,"children":12514},{"style":2327},[12515],{"type":26,"value":12516},"reference.append(QFTGate(n), ",{"type":21,"tag":2320,"props":12518,"children":12519},{"style":2345},[12520],{"type":26,"value":4942},{"type":21,"tag":2320,"props":12522,"children":12523},{"style":2327},[12524],{"type":26,"value":4956},{"type":21,"tag":2320,"props":12526,"children":12527},{"class":2322,"line":16},[12528],{"type":21,"tag":2320,"props":12529,"children":12530},{"emptyLinePlaceholder":3224},[12531],{"type":26,"value":3227},{"type":21,"tag":2320,"props":12533,"children":12534},{"class":2322,"line":1370},[12535,12540,12544],{"type":21,"tag":2320,"props":12536,"children":12537},{"style":2327},[12538],{"type":26,"value":12539},"a, b ",{"type":21,"tag":2320,"props":12541,"children":12542},{"style":3200},[12543],{"type":26,"value":3240},{"type":21,"tag":2320,"props":12545,"children":12546},{"style":2327},[12547],{"type":26,"value":12548}," Operator(mine), Operator(reference)\n",{"type":21,"tag":2320,"props":12550,"children":12551},{"class":2322,"line":3446},[12552,12556,12560,12565],{"type":21,"tag":2320,"props":12553,"children":12554},{"style":2345},[12555],{"type":26,"value":3315},{"type":21,"tag":2320,"props":12557,"children":12558},{"style":2327},[12559],{"type":26,"value":3320},{"type":21,"tag":2320,"props":12561,"children":12562},{"style":2356},[12563],{"type":26,"value":12564},"\"Equivalent:\"",{"type":21,"tag":2320,"props":12566,"children":12567},{"style":2327},[12568],{"type":26,"value":12569},", a.equiv(b))\n",{"type":21,"tag":2320,"props":12571,"children":12572},{"class":2322,"line":3456},[12573,12577,12581,12586,12591,12595],{"type":21,"tag":2320,"props":12574,"children":12575},{"style":2345},[12576],{"type":26,"value":3315},{"type":21,"tag":2320,"props":12578,"children":12579},{"style":2327},[12580],{"type":26,"value":3320},{"type":21,"tag":2320,"props":12582,"children":12583},{"style":2356},[12584],{"type":26,"value":12585},"\"Max element difference:\"",{"type":21,"tag":2320,"props":12587,"children":12588},{"style":2327},[12589],{"type":26,"value":12590},", np.abs(a.data ",{"type":21,"tag":2320,"props":12592,"children":12593},{"style":3200},[12594],{"type":26,"value":4848},{"type":21,"tag":2320,"props":12596,"children":12597},{"style":2327},[12598],{"type":26,"value":12599}," b.data).max())\n",{"type":21,"tag":22,"props":12601,"children":12602},{},[12603],{"type":26,"value":12385},{"type":21,"tag":2310,"props":12605,"children":12607},{"code":12606},"Equivalent: True\nMax element difference: 2.285583597498884e-15\n",[12608],{"type":21,"tag":2080,"props":12609,"children":12610},{"__ignoreMap":7},[12611],{"type":26,"value":12606},{"type":21,"tag":22,"props":12613,"children":12614},{},[12615,12617,12623,12624,12630],{"type":26,"value":12616},"Identical to floating-point precision, not merely equal up to a global phase. If you're on an older Qiskit, use ",{"type":21,"tag":2080,"props":12618,"children":12620},{"className":12619},[],[12621],{"type":26,"value":12622},"from qiskit.circuit.library import QFT",{"type":26,"value":38},{"type":21,"tag":2080,"props":12625,"children":12627},{"className":12626},[],[12628],{"type":26,"value":12629},"QFT(n).decompose()",{"type":26,"value":12631}," instead.",{"type":21,"tag":49,"props":12633,"children":12635},{"id":12634},"seeing-it-find-a-period",[12636],{"type":26,"value":12637},"Seeing it find a period",{"type":21,"tag":22,"props":12639,"children":12640},{},[12641,12643,12647],{"type":26,"value":12642},"This is the one demonstration that shows what the QFT is ",{"type":21,"tag":2054,"props":12644,"children":12645},{},[12646],{"type":26,"value":3493},{"type":26,"value":12648},". Prepare a state that's a uniform superposition over multiples of 4 (a comb with period 4) and transform it:",{"type":21,"tag":2310,"props":12650,"children":12652},{"code":12651,"language":3190,"meta":7,"className":3188,"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",[12653],{"type":21,"tag":2080,"props":12654,"children":12655},{"__ignoreMap":7},[12656,12671,12719,12777,12794,12810,12817,12834,12859,12885],{"type":21,"tag":2320,"props":12657,"children":12658},{"class":2322,"line":2323},[12659,12663,12667],{"type":21,"tag":2320,"props":12660,"children":12661},{"style":2327},[12662],{"type":26,"value":5085},{"type":21,"tag":2320,"props":12664,"children":12665},{"style":3200},[12666],{"type":26,"value":3240},{"type":21,"tag":2320,"props":12668,"children":12669},{"style":2345},[12670],{"type":26,"value":12467},{"type":21,"tag":2320,"props":12672,"children":12673},{"class":2322,"line":150},[12674,12679,12683,12688,12692,12696,12701,12706,12710,12715],{"type":21,"tag":2320,"props":12675,"children":12676},{"style":2327},[12677],{"type":26,"value":12678},"psi ",{"type":21,"tag":2320,"props":12680,"children":12681},{"style":3200},[12682],{"type":26,"value":3240},{"type":21,"tag":2320,"props":12684,"children":12685},{"style":2327},[12686],{"type":26,"value":12687}," np.zeros(",{"type":21,"tag":2320,"props":12689,"children":12690},{"style":2345},[12691],{"type":26,"value":2419},{"type":21,"tag":2320,"props":12693,"children":12694},{"style":3200},[12695],{"type":26,"value":8309},{"type":21,"tag":2320,"props":12697,"children":12698},{"style":2327},[12699],{"type":26,"value":12700}," n, ",{"type":21,"tag":2320,"props":12702,"children":12703},{"style":3265},[12704],{"type":26,"value":12705},"dtype",{"type":21,"tag":2320,"props":12707,"children":12708},{"style":3200},[12709],{"type":26,"value":3240},{"type":21,"tag":2320,"props":12711,"children":12712},{"style":2345},[12713],{"type":26,"value":12714},"complex",{"type":21,"tag":2320,"props":12716,"children":12717},{"style":2327},[12718],{"type":26,"value":3300},{"type":21,"tag":2320,"props":12720,"children":12721},{"class":2322,"line":2341},[12722,12726,12731,12735,12739,12743,12747,12751,12755,12759,12763,12767,12772],{"type":21,"tag":2320,"props":12723,"children":12724},{"style":3200},[12725],{"type":26,"value":3493},{"type":21,"tag":2320,"props":12727,"children":12728},{"style":2327},[12729],{"type":26,"value":12730}," x ",{"type":21,"tag":2320,"props":12732,"children":12733},{"style":3200},[12734],{"type":26,"value":3503},{"type":21,"tag":2320,"props":12736,"children":12737},{"style":2345},[12738],{"type":26,"value":3508},{"type":21,"tag":2320,"props":12740,"children":12741},{"style":2327},[12742],{"type":26,"value":3320},{"type":21,"tag":2320,"props":12744,"children":12745},{"style":2345},[12746],{"type":26,"value":5168},{"type":21,"tag":2320,"props":12748,"children":12749},{"style":2327},[12750],{"type":26,"value":1315},{"type":21,"tag":2320,"props":12752,"children":12753},{"style":2345},[12754],{"type":26,"value":2419},{"type":21,"tag":2320,"props":12756,"children":12757},{"style":3200},[12758],{"type":26,"value":8309},{"type":21,"tag":2320,"props":12760,"children":12761},{"style":2327},[12762],{"type":26,"value":12700},{"type":21,"tag":2320,"props":12764,"children":12765},{"style":2345},[12766],{"type":26,"value":5532},{"type":21,"tag":2320,"props":12768,"children":12769},{"style":2327},[12770],{"type":26,"value":12771},"):   ",{"type":21,"tag":2320,"props":12773,"children":12774},{"style":3450},[12775],{"type":26,"value":12776},"# |0> + |4> + |8> + |12>\n",{"type":21,"tag":2320,"props":12778,"children":12779},{"class":2322,"line":2403},[12780,12785,12789],{"type":21,"tag":2320,"props":12781,"children":12782},{"style":2327},[12783],{"type":26,"value":12784},"    psi[x] ",{"type":21,"tag":2320,"props":12786,"children":12787},{"style":3200},[12788],{"type":26,"value":3240},{"type":21,"tag":2320,"props":12790,"children":12791},{"style":2345},[12792],{"type":26,"value":12793}," 1\n",{"type":21,"tag":2320,"props":12795,"children":12796},{"class":2322,"line":2427},[12797,12801,12805],{"type":21,"tag":2320,"props":12798,"children":12799},{"style":2327},[12800],{"type":26,"value":12678},{"type":21,"tag":2320,"props":12802,"children":12803},{"style":3200},[12804],{"type":26,"value":5464},{"type":21,"tag":2320,"props":12806,"children":12807},{"style":2327},[12808],{"type":26,"value":12809}," np.linalg.norm(psi)\n",{"type":21,"tag":2320,"props":12811,"children":12812},{"class":2322,"line":854},[12813],{"type":21,"tag":2320,"props":12814,"children":12815},{"emptyLinePlaceholder":3224},[12816],{"type":26,"value":3227},{"type":21,"tag":2320,"props":12818,"children":12819},{"class":2322,"line":171},[12820,12825,12829],{"type":21,"tag":2320,"props":12821,"children":12822},{"style":2327},[12823],{"type":26,"value":12824},"out ",{"type":21,"tag":2320,"props":12826,"children":12827},{"style":3200},[12828],{"type":26,"value":3240},{"type":21,"tag":2320,"props":12830,"children":12831},{"style":2327},[12832],{"type":26,"value":12833}," Statevector(psi).evolve(qft(n))\n",{"type":21,"tag":2320,"props":12835,"children":12836},{"class":2322,"line":16},[12837,12841,12846,12850,12854],{"type":21,"tag":2320,"props":12838,"children":12839},{"style":3200},[12840],{"type":26,"value":3493},{"type":21,"tag":2320,"props":12842,"children":12843},{"style":2327},[12844],{"type":26,"value":12845}," i, p ",{"type":21,"tag":2320,"props":12847,"children":12848},{"style":3200},[12849],{"type":26,"value":3503},{"type":21,"tag":2320,"props":12851,"children":12852},{"style":2345},[12853],{"type":26,"value":4885},{"type":21,"tag":2320,"props":12855,"children":12856},{"style":2327},[12857],{"type":26,"value":12858},"(out.probabilities()):\n",{"type":21,"tag":2320,"props":12860,"children":12861},{"class":2322,"line":1370},[12862,12866,12871,12876,12881],{"type":21,"tag":2320,"props":12863,"children":12864},{"style":3200},[12865],{"type":26,"value":11946},{"type":21,"tag":2320,"props":12867,"children":12868},{"style":2327},[12869],{"type":26,"value":12870}," p ",{"type":21,"tag":2320,"props":12872,"children":12873},{"style":3200},[12874],{"type":26,"value":12875},">",{"type":21,"tag":2320,"props":12877,"children":12878},{"style":2345},[12879],{"type":26,"value":12880}," 1e-6",{"type":21,"tag":2320,"props":12882,"children":12883},{"style":2327},[12884],{"type":26,"value":4919},{"type":21,"tag":2320,"props":12886,"children":12887},{"class":2322,"line":3446},[12888,12893,12897,12901,12906,12910,12914,12919,12923,12927,12931,12936,12940,12945,12949,12953,12958,12962,12967,12971,12975,12979,12983,12987],{"type":21,"tag":2320,"props":12889,"children":12890},{"style":2345},[12891],{"type":26,"value":12892},"        print",{"type":21,"tag":2320,"props":12894,"children":12895},{"style":2327},[12896],{"type":26,"value":3320},{"type":21,"tag":2320,"props":12898,"children":12899},{"style":3200},[12900],{"type":26,"value":3325},{"type":21,"tag":2320,"props":12902,"children":12903},{"style":2356},[12904],{"type":26,"value":12905},"\"|",{"type":21,"tag":2320,"props":12907,"children":12908},{"style":2345},[12909],{"type":26,"value":3335},{"type":21,"tag":2320,"props":12911,"children":12912},{"style":2327},[12913],{"type":26,"value":4236},{"type":21,"tag":2320,"props":12915,"children":12916},{"style":3200},[12917],{"type":26,"value":12918},":0",{"type":21,"tag":2320,"props":12920,"children":12921},{"style":2345},[12922],{"type":26,"value":3335},{"type":21,"tag":2320,"props":12924,"children":12925},{"style":2327},[12926],{"type":26,"value":4829},{"type":21,"tag":2320,"props":12928,"children":12929},{"style":2345},[12930],{"type":26,"value":3345},{"type":21,"tag":2320,"props":12932,"children":12933},{"style":3200},[12934],{"type":26,"value":12935},"b",{"type":21,"tag":2320,"props":12937,"children":12938},{"style":2345},[12939],{"type":26,"value":3345},{"type":21,"tag":2320,"props":12941,"children":12942},{"style":2356},[12943],{"type":26,"value":12944},"> = ",{"type":21,"tag":2320,"props":12946,"children":12947},{"style":2345},[12948],{"type":26,"value":3335},{"type":21,"tag":2320,"props":12950,"children":12951},{"style":2327},[12952],{"type":26,"value":4236},{"type":21,"tag":2320,"props":12954,"children":12955},{"style":3200},[12956],{"type":26,"value":12957},":2d",{"type":21,"tag":2320,"props":12959,"children":12960},{"style":2345},[12961],{"type":26,"value":3345},{"type":21,"tag":2320,"props":12963,"children":12964},{"style":2356},[12965],{"type":26,"value":12966},"   p = ",{"type":21,"tag":2320,"props":12968,"children":12969},{"style":2345},[12970],{"type":26,"value":3335},{"type":21,"tag":2320,"props":12972,"children":12973},{"style":2327},[12974],{"type":26,"value":22},{"type":21,"tag":2320,"props":12976,"children":12977},{"style":3200},[12978],{"type":26,"value":3647},{"type":21,"tag":2320,"props":12980,"children":12981},{"style":2345},[12982],{"type":26,"value":3345},{"type":21,"tag":2320,"props":12984,"children":12985},{"style":2356},[12986],{"type":26,"value":3350},{"type":21,"tag":2320,"props":12988,"children":12989},{"style":2327},[12990],{"type":26,"value":3300},{"type":21,"tag":22,"props":12992,"children":12993},{},[12994],{"type":26,"value":12385},{"type":21,"tag":2310,"props":12996,"children":12998},{"code":12997},"|0000> =  0   p = 0.2500\n|0100> =  4   p = 0.2500\n|1000> =  8   p = 0.2500\n|1100> = 12   p = 0.2500\n",[12999],{"type":21,"tag":2080,"props":13000,"children":13001},{"__ignoreMap":7},[13002],{"type":26,"value":12997},{"type":21,"tag":22,"props":13004,"children":13005},{},[13006,13008,13013],{"type":26,"value":13007},"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":180,"props":13009,"children":13010},{},[13011],{"type":26,"value":13012},"That",{"type":26,"value":13014}," is the readable signal: not the coefficients, but a periodicity converted into a sampling distribution.",{"type":21,"tag":22,"props":13016,"children":13017},{},[13018],{"type":26,"value":13019},"Confirm it on the simulator with actual shots:",{"type":21,"tag":2310,"props":13021,"children":13023},{"code":13022,"language":3190,"meta":7,"className":3188,"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",[13024],{"type":21,"tag":2080,"props":13025,"children":13026},{"__ignoreMap":7},[13027,13042,13058,13082,13090,13097,13112,13143],{"type":21,"tag":2320,"props":13028,"children":13029},{"class":2322,"line":2323},[13030,13034,13038],{"type":21,"tag":2320,"props":13031,"children":13032},{"style":2327},[13033],{"type":26,"value":7382},{"type":21,"tag":2320,"props":13035,"children":13036},{"style":3200},[13037],{"type":26,"value":3240},{"type":21,"tag":2320,"props":13039,"children":13040},{"style":2327},[13041],{"type":26,"value":12508},{"type":21,"tag":2320,"props":13043,"children":13044},{"class":2322,"line":150},[13045,13050,13054],{"type":21,"tag":2320,"props":13046,"children":13047},{"style":2327},[13048],{"type":26,"value":13049},"qc.initialize(psi, ",{"type":21,"tag":2320,"props":13051,"children":13052},{"style":2345},[13053],{"type":26,"value":4942},{"type":21,"tag":2320,"props":13055,"children":13056},{"style":2327},[13057],{"type":26,"value":4956},{"type":21,"tag":2320,"props":13059,"children":13060},{"class":2322,"line":2341},[13061,13066,13070,13074,13078],{"type":21,"tag":2320,"props":13062,"children":13063},{"style":2327},[13064],{"type":26,"value":13065},"qc.compose(qft(n), ",{"type":21,"tag":2320,"props":13067,"children":13068},{"style":3265},[13069],{"type":26,"value":8199},{"type":21,"tag":2320,"props":13071,"children":13072},{"style":3200},[13073],{"type":26,"value":3240},{"type":21,"tag":2320,"props":13075,"children":13076},{"style":2345},[13077],{"type":26,"value":3277},{"type":21,"tag":2320,"props":13079,"children":13080},{"style":2327},[13081],{"type":26,"value":3300},{"type":21,"tag":2320,"props":13083,"children":13084},{"class":2322,"line":2403},[13085],{"type":21,"tag":2320,"props":13086,"children":13087},{"style":2327},[13088],{"type":26,"value":13089},"qc.measure_all()\n",{"type":21,"tag":2320,"props":13091,"children":13092},{"class":2322,"line":2427},[13093],{"type":21,"tag":2320,"props":13094,"children":13095},{"emptyLinePlaceholder":3224},[13096],{"type":26,"value":3227},{"type":21,"tag":2320,"props":13098,"children":13099},{"class":2322,"line":854},[13100,13104,13108],{"type":21,"tag":2320,"props":13101,"children":13102},{"style":2327},[13103],{"type":26,"value":8424},{"type":21,"tag":2320,"props":13105,"children":13106},{"style":3200},[13107],{"type":26,"value":3240},{"type":21,"tag":2320,"props":13109,"children":13110},{"style":2327},[13111],{"type":26,"value":8433},{"type":21,"tag":2320,"props":13113,"children":13114},{"class":2322,"line":171},[13115,13119,13123,13127,13131,13135,13139],{"type":21,"tag":2320,"props":13116,"children":13117},{"style":2327},[13118],{"type":26,"value":8457},{"type":21,"tag":2320,"props":13120,"children":13121},{"style":3200},[13122],{"type":26,"value":3240},{"type":21,"tag":2320,"props":13124,"children":13125},{"style":2327},[13126],{"type":26,"value":8466},{"type":21,"tag":2320,"props":13128,"children":13129},{"style":3265},[13130],{"type":26,"value":4123},{"type":21,"tag":2320,"props":13132,"children":13133},{"style":3200},[13134],{"type":26,"value":3240},{"type":21,"tag":2320,"props":13136,"children":13137},{"style":2345},[13138],{"type":26,"value":8479},{"type":21,"tag":2320,"props":13140,"children":13141},{"style":2327},[13142],{"type":26,"value":5282},{"type":21,"tag":2320,"props":13144,"children":13145},{"class":2322,"line":16},[13146,13150,13154,13158,13163,13167,13171,13176,13180,13185,13189],{"type":21,"tag":2320,"props":13147,"children":13148},{"style":2345},[13149],{"type":26,"value":3315},{"type":21,"tag":2320,"props":13151,"children":13152},{"style":2327},[13153],{"type":26,"value":3320},{"type":21,"tag":2320,"props":13155,"children":13156},{"style":2345},[13157],{"type":26,"value":8499},{"type":21,"tag":2320,"props":13159,"children":13160},{"style":2327},[13161],{"type":26,"value":13162},"(counts.items(), ",{"type":21,"tag":2320,"props":13164,"children":13165},{"style":3265},[13166],{"type":26,"value":3541},{"type":21,"tag":2320,"props":13168,"children":13169},{"style":3200},[13170],{"type":26,"value":3546},{"type":21,"tag":2320,"props":13172,"children":13173},{"style":2327},[13174],{"type":26,"value":13175}," kv: ",{"type":21,"tag":2320,"props":13177,"children":13178},{"style":3200},[13179],{"type":26,"value":4848},{"type":21,"tag":2320,"props":13181,"children":13182},{"style":2327},[13183],{"type":26,"value":13184},"kv[",{"type":21,"tag":2320,"props":13186,"children":13187},{"style":2345},[13188],{"type":26,"value":3556},{"type":21,"tag":2320,"props":13190,"children":13191},{"style":2327},[13192],{"type":26,"value":13193},"]))\n",{"type":21,"tag":22,"props":13195,"children":13196},{},[13197],{"type":26,"value":12385},{"type":21,"tag":2310,"props":13199,"children":13201},{"code":13200},"[('0100', 1079), ('1000', 1030), ('0000', 1018), ('1100', 969)]\n",[13202],{"type":21,"tag":2080,"props":13203,"children":13204},{"__ignoreMap":7},[13205],{"type":26,"value":13200},{"type":21,"tag":22,"props":13207,"children":13208},{},[13209],{"type":26,"value":13210},"Four peaks, roughly 1024 counts each. Nothing else appears.",{"type":21,"tag":49,"props":13212,"children":13214},{"id":13213},"where-the-qft-earns-its-keep",[13215],{"type":26,"value":13216},"Where the QFT earns its keep",{"type":21,"tag":22,"props":13218,"children":13219},{},[13220,13225,13227,13231,13233,13239],{"type":21,"tag":180,"props":13221,"children":13222},{},[13223],{"type":26,"value":13224},"Quantum phase estimation (QPE).",{"type":26,"value":13226}," 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":2054,"props":13228,"children":13229},{},[13230],{"type":26,"value":6979},{"type":26,"value":13232}," 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":2080,"props":13234,"children":13236},{"className":13235},[],[13237],{"type":26,"value":13238},"qft(n).inverse()",{"type":26,"value":802},{"type":21,"tag":22,"props":13241,"children":13242},{},[13243,13248],{"type":21,"tag":180,"props":13244,"children":13245},{},[13246],{"type":26,"value":13247},"Order finding.",{"type":26,"value":13249}," 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":13251,"children":13252},{},[13253,13261,13263,13268,13270,13274],{"type":21,"tag":180,"props":13254,"children":13255},{},[13256,13260],{"type":21,"tag":29,"props":13257,"children":13258},{"href":9628},[13259],{"type":26,"value":9631},{"type":26,"value":802},{"type":26,"value":13262}," Factoring reduces to order finding, so Shor's is order finding plus classical post-processing (continued fractions and a GCD). The ",{"type":21,"tag":29,"props":13264,"children":13265},{"href":8608},[13266],{"type":26,"value":13267},"1994 paper",{"type":26,"value":13269}," is worth reading precisely because the QFT is the only quantum part: everything else is number theory. This is also why the algorithm threatens RSA, and why ",{"type":21,"tag":29,"props":13271,"children":13272},{"href":9379},[13273],{"type":26,"value":9362},{"type":26,"value":13275}," migration is happening now rather than later.",{"type":21,"tag":22,"props":13277,"children":13278},{},[13279],{"type":26,"value":13280},"In all three cases the QFT is doing the same job: turning phase information into position information so a measurement sees it.",{"type":21,"tag":49,"props":13282,"children":13284},{"id":13283},"approximate-qft-drop-the-tiny-rotations",[13285],{"type":26,"value":13286},"Approximate QFT: drop the tiny rotations",{"type":21,"tag":22,"props":13288,"children":13289},{},[13290,13292,13297],{"type":26,"value":13291},"On real hardware, ",{"type":21,"tag":2080,"props":13293,"children":13295},{"className":13294},[],[13296],{"type":26,"value":11725},{"type":26,"value":13298}," 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":2310,"props":13300,"children":13302},{"code":13301,"language":3190,"meta":7,"className":3188,"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",[13303],{"type":21,"tag":2080,"props":13304,"children":13305},{"__ignoreMap":7},[13306,13323,13355,13400,13424,13432,13456,13482,13504,13529,13564,13592],{"type":21,"tag":2320,"props":13307,"children":13308},{"class":2322,"line":2323},[13309,13313,13318],{"type":21,"tag":2320,"props":13310,"children":13311},{"style":3200},[13312],{"type":26,"value":4361},{"type":21,"tag":2320,"props":13314,"children":13315},{"style":4364},[13316],{"type":26,"value":13317}," aqft",{"type":21,"tag":2320,"props":13319,"children":13320},{"style":2327},[13321],{"type":26,"value":13322},"(n, k_max):\n",{"type":21,"tag":2320,"props":13324,"children":13325},{"class":2322,"line":150},[13326,13330,13334,13338,13342,13346,13351],{"type":21,"tag":2320,"props":13327,"children":13328},{"style":2327},[13329],{"type":26,"value":7497},{"type":21,"tag":2320,"props":13331,"children":13332},{"style":3200},[13333],{"type":26,"value":3240},{"type":21,"tag":2320,"props":13335,"children":13336},{"style":2327},[13337],{"type":26,"value":7506},{"type":21,"tag":2320,"props":13339,"children":13340},{"style":3265},[13341],{"type":26,"value":7511},{"type":21,"tag":2320,"props":13343,"children":13344},{"style":3200},[13345],{"type":26,"value":3240},{"type":21,"tag":2320,"props":13347,"children":13348},{"style":2356},[13349],{"type":26,"value":13350},"\"AQFT\"",{"type":21,"tag":2320,"props":13352,"children":13353},{"style":2327},[13354],{"type":26,"value":3300},{"type":21,"tag":2320,"props":13356,"children":13357},{"class":2322,"line":2341},[13358,13362,13367,13371,13375,13380,13384,13388,13392,13396],{"type":21,"tag":2320,"props":13359,"children":13360},{"style":3200},[13361],{"type":26,"value":4740},{"type":21,"tag":2320,"props":13363,"children":13364},{"style":2327},[13365],{"type":26,"value":13366}," size ",{"type":21,"tag":2320,"props":13368,"children":13369},{"style":3200},[13370],{"type":26,"value":3503},{"type":21,"tag":2320,"props":13372,"children":13373},{"style":2345},[13374],{"type":26,"value":3508},{"type":21,"tag":2320,"props":13376,"children":13377},{"style":2327},[13378],{"type":26,"value":13379},"(n, ",{"type":21,"tag":2320,"props":13381,"children":13382},{"style":2345},[13383],{"type":26,"value":5168},{"type":21,"tag":2320,"props":13385,"children":13386},{"style":2327},[13387],{"type":26,"value":1315},{"type":21,"tag":2320,"props":13389,"children":13390},{"style":3200},[13391],{"type":26,"value":4848},{"type":21,"tag":2320,"props":13393,"children":13394},{"style":2345},[13395],{"type":26,"value":3556},{"type":21,"tag":2320,"props":13397,"children":13398},{"style":2327},[13399],{"type":26,"value":4414},{"type":21,"tag":2320,"props":13401,"children":13402},{"class":2322,"line":2403},[13403,13408,13412,13416,13420],{"type":21,"tag":2320,"props":13404,"children":13405},{"style":2327},[13406],{"type":26,"value":13407},"        m ",{"type":21,"tag":2320,"props":13409,"children":13410},{"style":3200},[13411],{"type":26,"value":3240},{"type":21,"tag":2320,"props":13413,"children":13414},{"style":2327},[13415],{"type":26,"value":13366},{"type":21,"tag":2320,"props":13417,"children":13418},{"style":3200},[13419],{"type":26,"value":4848},{"type":21,"tag":2320,"props":13421,"children":13422},{"style":2345},[13423],{"type":26,"value":12793},{"type":21,"tag":2320,"props":13425,"children":13426},{"class":2322,"line":2427},[13427],{"type":21,"tag":2320,"props":13428,"children":13429},{"style":2327},[13430],{"type":26,"value":13431},"        qc.h(m)\n",{"type":21,"tag":2320,"props":13433,"children":13434},{"class":2322,"line":854},[13435,13439,13443,13447,13451],{"type":21,"tag":2320,"props":13436,"children":13437},{"style":3200},[13438],{"type":26,"value":4871},{"type":21,"tag":2320,"props":13440,"children":13441},{"style":2327},[13442],{"type":26,"value":12019},{"type":21,"tag":2320,"props":13444,"children":13445},{"style":3200},[13446],{"type":26,"value":3503},{"type":21,"tag":2320,"props":13448,"children":13449},{"style":2345},[13450],{"type":26,"value":3508},{"type":21,"tag":2320,"props":13452,"children":13453},{"style":2327},[13454],{"type":26,"value":13455},"(m):\n",{"type":21,"tag":2320,"props":13457,"children":13458},{"class":2322,"line":171},[13459,13464,13468,13473,13477],{"type":21,"tag":2320,"props":13460,"children":13461},{"style":2327},[13462],{"type":26,"value":13463},"            k ",{"type":21,"tag":2320,"props":13465,"children":13466},{"style":3200},[13467],{"type":26,"value":3240},{"type":21,"tag":2320,"props":13469,"children":13470},{"style":2327},[13471],{"type":26,"value":13472}," m ",{"type":21,"tag":2320,"props":13474,"children":13475},{"style":3200},[13476],{"type":26,"value":4848},{"type":21,"tag":2320,"props":13478,"children":13479},{"style":2327},[13480],{"type":26,"value":13481}," qubit\n",{"type":21,"tag":2320,"props":13483,"children":13484},{"class":2322,"line":16},[13485,13489,13494,13499],{"type":21,"tag":2320,"props":13486,"children":13487},{"style":3200},[13488],{"type":26,"value":4899},{"type":21,"tag":2320,"props":13490,"children":13491},{"style":2327},[13492],{"type":26,"value":13493}," k ",{"type":21,"tag":2320,"props":13495,"children":13496},{"style":3200},[13497],{"type":26,"value":13498},"\u003C=",{"type":21,"tag":2320,"props":13500,"children":13501},{"style":2327},[13502],{"type":26,"value":13503}," k_max:\n",{"type":21,"tag":2320,"props":13505,"children":13506},{"class":2322,"line":1370},[13507,13512,13516,13520,13524],{"type":21,"tag":2320,"props":13508,"children":13509},{"style":2327},[13510],{"type":26,"value":13511},"                qc.cp(np.pi ",{"type":21,"tag":2320,"props":13513,"children":13514},{"style":3200},[13515],{"type":26,"value":2175},{"type":21,"tag":2320,"props":13517,"children":13518},{"style":2345},[13519],{"type":26,"value":6384},{"type":21,"tag":2320,"props":13521,"children":13522},{"style":3200},[13523],{"type":26,"value":8309},{"type":21,"tag":2320,"props":13525,"children":13526},{"style":2327},[13527],{"type":26,"value":13528}," k, qubit, m)\n",{"type":21,"tag":2320,"props":13530,"children":13531},{"class":2322,"line":3446},[13532,13536,13540,13544,13548,13552,13556,13560],{"type":21,"tag":2320,"props":13533,"children":13534},{"style":3200},[13535],{"type":26,"value":4740},{"type":21,"tag":2320,"props":13537,"children":13538},{"style":2327},[13539],{"type":26,"value":3498},{"type":21,"tag":2320,"props":13541,"children":13542},{"style":3200},[13543],{"type":26,"value":3503},{"type":21,"tag":2320,"props":13545,"children":13546},{"style":2345},[13547],{"type":26,"value":3508},{"type":21,"tag":2320,"props":13549,"children":13550},{"style":2327},[13551],{"type":26,"value":7669},{"type":21,"tag":2320,"props":13553,"children":13554},{"style":3200},[13555],{"type":26,"value":6108},{"type":21,"tag":2320,"props":13557,"children":13558},{"style":2345},[13559],{"type":26,"value":6384},{"type":21,"tag":2320,"props":13561,"children":13562},{"style":2327},[13563],{"type":26,"value":4414},{"type":21,"tag":2320,"props":13565,"children":13566},{"class":2322,"line":3456},[13567,13572,13576,13580,13584,13588],{"type":21,"tag":2320,"props":13568,"children":13569},{"style":2327},[13570],{"type":26,"value":13571},"        qc.swap(q, n ",{"type":21,"tag":2320,"props":13573,"children":13574},{"style":3200},[13575],{"type":26,"value":4848},{"type":21,"tag":2320,"props":13577,"children":13578},{"style":2327},[13579],{"type":26,"value":3498},{"type":21,"tag":2320,"props":13581,"children":13582},{"style":3200},[13583],{"type":26,"value":4848},{"type":21,"tag":2320,"props":13585,"children":13586},{"style":2345},[13587],{"type":26,"value":6099},{"type":21,"tag":2320,"props":13589,"children":13590},{"style":2327},[13591],{"type":26,"value":3300},{"type":21,"tag":2320,"props":13593,"children":13594},{"class":2322,"line":474},[13595,13599],{"type":21,"tag":2320,"props":13596,"children":13597},{"style":3200},[13598],{"type":26,"value":4586},{"type":21,"tag":2320,"props":13600,"children":13601},{"style":2327},[13602],{"type":26,"value":7778},{"type":21,"tag":22,"props":13604,"children":13605},{},[13606],{"type":26,"value":13607},"Measured fidelity against the exact 4-qubit QFT:",{"type":21,"tag":4066,"props":13609,"children":13610},{},[13611,13632],{"type":21,"tag":4070,"props":13612,"children":13613},{},[13614],{"type":21,"tag":4074,"props":13615,"children":13616},{},[13617,13622,13627],{"type":21,"tag":4078,"props":13618,"children":13619},{},[13620],{"type":26,"value":13621},"k_max",{"type":21,"tag":4078,"props":13623,"children":13624},{},[13625],{"type":26,"value":13626},"CP gates",{"type":21,"tag":4078,"props":13628,"children":13629},{},[13630],{"type":26,"value":13631},"Fidelity",{"type":21,"tag":4092,"props":13633,"children":13634},{},[13635,13651,13667,13684],{"type":21,"tag":4074,"props":13636,"children":13637},{},[13638,13642,13646],{"type":21,"tag":4099,"props":13639,"children":13640},{},[13641],{"type":26,"value":3556},{"type":21,"tag":4099,"props":13643,"children":13644},{},[13645],{"type":26,"value":6511},{"type":21,"tag":4099,"props":13647,"children":13648},{},[13649],{"type":26,"value":13650},"0.8456",{"type":21,"tag":4074,"props":13652,"children":13653},{},[13654,13658,13662],{"type":21,"tag":4099,"props":13655,"children":13656},{},[13657],{"type":26,"value":2419},{"type":21,"tag":4099,"props":13659,"children":13660},{},[13661],{"type":26,"value":6682},{"type":21,"tag":4099,"props":13663,"children":13664},{},[13665],{"type":26,"value":13666},"0.9856",{"type":21,"tag":4074,"props":13668,"children":13669},{},[13670,13674,13679],{"type":21,"tag":4099,"props":13671,"children":13672},{},[13673],{"type":26,"value":6511},{"type":21,"tag":4099,"props":13675,"children":13676},{},[13677],{"type":26,"value":13678},"6",{"type":21,"tag":4099,"props":13680,"children":13681},{},[13682],{"type":26,"value":13683},"1.0000",{"type":21,"tag":4074,"props":13685,"children":13686},{},[13687,13692,13696],{"type":21,"tag":4099,"props":13688,"children":13689},{},[13690],{"type":26,"value":13691},"exact",{"type":21,"tag":4099,"props":13693,"children":13694},{},[13695],{"type":26,"value":13678},{"type":21,"tag":4099,"props":13697,"children":13698},{},[13699],{"type":26,"value":13683},{"type":21,"tag":22,"props":13701,"children":13702},{},[13703,13705,13709],{"type":26,"value":13704},"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":29,"props":13706,"children":13707},{"href":446},[13708],{"type":26,"value":3286},{"type":26,"value":13710}," with a realistic noise model before committing.",{"type":21,"tag":49,"props":13712,"children":13714},{"id":13713},"try-this-next",[13715],{"type":26,"value":13716},"Try this next",{"type":21,"tag":3118,"props":13718,"children":13719},{},[13720,13732,13745],{"type":21,"tag":3122,"props":13721,"children":13722},{},[13723,13725,13730],{"type":26,"value":13724},"Build ",{"type":21,"tag":2080,"props":13726,"children":13728},{"className":13727},[],[13729],{"type":26,"value":13238},{"type":26,"value":13731}," and use it to implement phase estimation on a T gate. You should recover θ = 1\u002F8 exactly with 3 counting qubits.",{"type":21,"tag":3122,"props":13733,"children":13734},{},[13735,13737,13743],{"type":26,"value":13736},"Run the 4-qubit QFT through ",{"type":21,"tag":2080,"props":13738,"children":13740},{"className":13739},[],[13741],{"type":26,"value":13742},"transpile(qc, backend, optimization_level=3)",{"type":26,"value":13744}," for a real device and watch the CP gates decompose into CNOTs. The depth increase is sobering.",{"type":21,"tag":3122,"props":13746,"children":13747},{},[13748,13750,13754],{"type":26,"value":13749},"Compare against a variational algorithm like ",{"type":21,"tag":29,"props":13751,"children":13752},{"href":2035},[13753],{"type":26,"value":2024},{"type":26,"value":13755}," to see the contrast between structured algorithms with proven speedups and heuristic NISQ ones.",{"type":21,"tag":22,"props":13757,"children":13758},{},[13759],{"type":26,"value":13760},"The takeaway to keep: the QFT is fast, exact, and useless by itself. Its power is entirely in what you wrap around it.",{"type":21,"tag":2694,"props":13762,"children":13763},{},[13764],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":13766},[13767,13768,13769,13770,13771,13772,13773,13774,13775],{"id":11558,"depth":150,"text":11561},{"id":11628,"depth":150,"text":11631},{"id":11686,"depth":150,"text":11689},{"id":11765,"depth":150,"text":11768},{"id":12401,"depth":150,"text":12404},{"id":12634,"depth":150,"text":12637},{"id":13213,"depth":150,"text":13216},{"id":13283,"depth":150,"text":13286},{"id":13713,"depth":150,"text":13716},"content:blog:quantum-fourier-transform-tutorial.md","blog\u002Fquantum-fourier-transform-tutorial.md","blog\u002Fquantum-fourier-transform-tutorial",{"_path":13780,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":13781,"description":13782,"date":3063,"author":11,"tags":13783,"readingTime":1370,"body":13786,"_type":156,"_id":15634,"_source":158,"_file":15635,"_stem":15636,"_extension":161},"\u002Fblog\u002Fquantum-machine-learning-reality-check","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.",[13784,13785,7148],"QML","PennyLane",{"type":18,"children":13787,"toc":15625},[13788,13793,13805,13810,13816,13821,13852,13862,13878,13888,13894,13906,13918,13923,13933,13939,13951,13963,13974,13979,13985,13990,14001,14006,14039,14044,14056,14062,14074,15406,15419,15474,15486,15505,15511,15516,15539,15549,15559,15565,15581,15593,15603,15621],{"type":21,"tag":22,"props":13789,"children":13790},{},[13791],{"type":26,"value":13792},"\"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":13794,"children":13795},{},[13796,13798,13803],{"type":26,"value":13797},"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":2054,"props":13799,"children":13800},{},[13801],{"type":26,"value":13802},"said",{"type":26,"value":13804}," 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":13806,"children":13807},{},[13808],{"type":26,"value":13809},"So: what QML is, what the evidence shows, and what's still worth watching.",{"type":21,"tag":49,"props":13811,"children":13813},{"id":13812},"what-quantum-machine-learning-means",[13814],{"type":26,"value":13815},"What quantum machine learning means",{"type":21,"tag":22,"props":13817,"children":13818},{},[13819],{"type":26,"value":13820},"The term covers several quite different things that get blurred together.",{"type":21,"tag":22,"props":13822,"children":13823},{},[13824,13829,13831,13837,13839,13844,13846,13850],{"type":21,"tag":180,"props":13825,"children":13826},{},[13827],{"type":26,"value":13828},"Variational circuits as trainable models.",{"type":26,"value":13830}," This is what most people building QML today are doing. You write a parameterized quantum circuit, a ",{"type":21,"tag":29,"props":13832,"children":13834},{"href":13833},"\u002Fglossary\u002Fvariational-circuit",[13835],{"type":26,"value":13836},"variational circuit",{"type":26,"value":13838},", 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":29,"props":13840,"children":13841},{"href":410},[13842],{"type":26,"value":13843},"hybrid algorithm",{"type":26,"value":13845}," pattern as ",{"type":21,"tag":29,"props":13847,"children":13848},{"href":368},[13849],{"type":26,"value":328},{"type":26,"value":13851},", 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":13853,"children":13854},{},[13855,13860],{"type":21,"tag":180,"props":13856,"children":13857},{},[13858],{"type":26,"value":13859},"Quantum kernels.",{"type":26,"value":13861}," 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":13863,"children":13864},{},[13865,13870,13872,13876],{"type":21,"tag":180,"props":13866,"children":13867},{},[13868],{"type":26,"value":13869},"Data encoding.",{"type":26,"value":13871}," 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":29,"props":13873,"children":13874},{"href":1200},[13875],{"type":26,"value":2782},{"type":26,"value":13877}," 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":13879,"children":13880},{},[13881,13886],{"type":21,"tag":180,"props":13882,"children":13883},{},[13884],{"type":26,"value":13885},"Quantum-accelerated linear algebra.",{"type":26,"value":13887}," 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":49,"props":13889,"children":13891},{"id":13890},"the-data-loading-bottleneck",[13892],{"type":26,"value":13893},"The data-loading bottleneck",{"type":21,"tag":22,"props":13895,"children":13896},{},[13897,13898,13904],{"type":26,"value":11070},{"type":21,"tag":29,"props":13899,"children":13901},{"href":13900},"\u002Fresearch\u002Fbiamonte-quantum-machine-learning-2017",[13902],{"type":26,"value":13903},"Biamonte et al. review",{"type":26,"value":13905},", 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":13907,"children":13908},{},[13909,13911,13916],{"type":26,"value":13910},"Many quantum ML algorithms with proven exponential speedups assume your data is ",{"type":21,"tag":2054,"props":13912,"children":13913},{},[13914],{"type":26,"value":13915},"already",{"type":26,"value":13917}," 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":13919,"children":13920},{},[13921],{"type":26,"value":13922},"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":13924,"children":13925},{},[13926,13928],{"type":26,"value":13927},"The practical rule: ",{"type":21,"tag":180,"props":13929,"children":13930},{},[13931],{"type":26,"value":13932},"be suspicious of any quantum ML speedup claim that doesn't account for how the data got in.",{"type":21,"tag":49,"props":13934,"children":13936},{"id":13935},"barren-plateaus",[13937],{"type":26,"value":13938},"Barren plateaus",{"type":21,"tag":22,"props":13940,"children":13941},{},[13942,13944,13950],{"type":26,"value":13943},"The variational approach (the one most people build with) has its own structural obstacle, and it's the one described in ",{"type":21,"tag":29,"props":13945,"children":13947},{"href":13946},"\u002Fresearch\u002Fmcclean-barren-plateaus-2018",[13948],{"type":26,"value":13949},"McClean et al.",{"type":26,"value":802},{"type":21,"tag":22,"props":13952,"children":13953},{},[13954,13956,13961],{"type":26,"value":13955},"Training a variational model means computing gradients and stepping downhill. McClean and colleagues showed that for randomly initialized circuits, the ",{"type":21,"tag":2054,"props":13957,"children":13958},{},[13959],{"type":26,"value":13960},"variance",{"type":26,"value":13962}," 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":13964,"children":13965},{},[13966,13968,13972],{"type":26,"value":13967},"Why this is fatal rather than merely annoying: gradients on quantum hardware are estimated from measurement statistics, so they come with ",{"type":21,"tag":29,"props":13969,"children":13970},{"href":5708},[13971],{"type":26,"value":5711},{"type":26,"value":13973},". 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":13975,"children":13976},{},[13977],{"type":26,"value":13978},"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 claim that a variational quantum model scales to useful problem sizes has to explain how it escapes this, and most don't.",{"type":21,"tag":49,"props":13980,"children":13982},{"id":13981},"the-2026-head-to-head-comparison",[13983],{"type":26,"value":13984},"The 2026 head-to-head comparison",{"type":21,"tag":22,"props":13986,"children":13987},{},[13988],{"type":26,"value":13989},"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":13991,"children":13992},{},[13993,13999],{"type":21,"tag":29,"props":13994,"children":13996},{"href":13995},"\u002Fresearch\u002Fquantum-vs-classical-ml-2026",[13997],{"type":26,"value":13998},"Yu et al. (2026)",{"type":26,"value":14000}," 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":14002,"children":14003},{},[14004],{"type":26,"value":14005},"The quantum models lost. Not on one axis: on three:",{"type":21,"tag":3118,"props":14007,"children":14008},{},[14009,14019,14029],{"type":21,"tag":3122,"props":14010,"children":14011},{},[14012,14017],{"type":21,"tag":180,"props":14013,"children":14014},{},[14015],{"type":26,"value":14016},"Prediction performance.",{"type":26,"value":14018}," Classical baselines were more accurate.",{"type":21,"tag":3122,"props":14020,"children":14021},{},[14022,14027],{"type":21,"tag":180,"props":14023,"children":14024},{},[14025],{"type":26,"value":14026},"Policy stability.",{"type":26,"value":14028}," In the reinforcement learning tasks, the quantum models produced less stable policies.",{"type":21,"tag":3122,"props":14030,"children":14031},{},[14032,14037],{"type":21,"tag":180,"props":14033,"children":14034},{},[14035],{"type":26,"value":14036},"Training time.",{"type":26,"value":14038}," The quantum models were slower to train.",{"type":21,"tag":22,"props":14040,"children":14041},{},[14042],{"type":26,"value":14043},"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":14045,"children":14046},{},[14047,14049,14054],{"type":26,"value":14048},"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":180,"props":14050,"children":14051},{},[14052],{"type":26,"value":14053},"As of mid-2026, \"quantum will make AI faster\" is not supported by the evidence.",{"type":26,"value":14055}," If someone tells you otherwise, ask them for the head-to-head benchmark.",{"type":21,"tag":49,"props":14057,"children":14059},{"id":14058},"try-it-yourself",[14060],{"type":26,"value":14061},"Try it yourself",{"type":21,"tag":22,"props":14063,"children":14064},{},[14065,14067,14072],{"type":26,"value":14066},"The best way to develop intuition here is to build one. This is a complete variational quantum classifier in ",{"type":21,"tag":29,"props":14068,"children":14070},{"href":14069},"\u002Fsdks\u002Fpennylane",[14071],{"type":26,"value":13785},{"type":26,"value":14073},": angle encoding, a trainable entangling ansatz, and a gradient-descent loop:",{"type":21,"tag":2310,"props":14075,"children":14077},{"className":3188,"code":14076,"language":3190,"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",[14078],{"type":21,"tag":2080,"props":14079,"children":14080},{"__ignoreMap":7},[14081,14102,14129,14150,14171,14178,14194,14211,14218,14258,14265,14278,14295,14303,14346,14353,14361,14386,14393,14413,14420,14437,14458,14465,14482,14515,14522,14539,14573,14585,14592,14600,14671,14703,14720,14759,14766,14773,14817,14842,14894,14936,14943,14977,14994,15001,15034,15069,15087,15105,15113,15147,15182,15209,15300,15308,15342],{"type":21,"tag":2320,"props":14082,"children":14083},{"class":2322,"line":2323},[14084,14088,14093,14097],{"type":21,"tag":2320,"props":14085,"children":14086},{"style":3200},[14087],{"type":26,"value":3213},{"type":21,"tag":2320,"props":14089,"children":14090},{"style":2327},[14091],{"type":26,"value":14092}," pennylane ",{"type":21,"tag":2320,"props":14094,"children":14095},{"style":3200},[14096],{"type":26,"value":4278},{"type":21,"tag":2320,"props":14098,"children":14099},{"style":2327},[14100],{"type":26,"value":14101}," qml\n",{"type":21,"tag":2320,"props":14103,"children":14104},{"class":2322,"line":150},[14105,14109,14113,14117,14121,14125],{"type":21,"tag":2320,"props":14106,"children":14107},{"style":3200},[14108],{"type":26,"value":3203},{"type":21,"tag":2320,"props":14110,"children":14111},{"style":2327},[14112],{"type":26,"value":14092},{"type":21,"tag":2320,"props":14114,"children":14115},{"style":3200},[14116],{"type":26,"value":3213},{"type":21,"tag":2320,"props":14118,"children":14119},{"style":2327},[14120],{"type":26,"value":4273},{"type":21,"tag":2320,"props":14122,"children":14123},{"style":3200},[14124],{"type":26,"value":4278},{"type":21,"tag":2320,"props":14126,"children":14127},{"style":2327},[14128],{"type":26,"value":4283},{"type":21,"tag":2320,"props":14130,"children":14131},{"class":2322,"line":2341},[14132,14136,14141,14145],{"type":21,"tag":2320,"props":14133,"children":14134},{"style":3200},[14135],{"type":26,"value":3203},{"type":21,"tag":2320,"props":14137,"children":14138},{"style":2327},[14139],{"type":26,"value":14140}," sklearn.datasets ",{"type":21,"tag":2320,"props":14142,"children":14143},{"style":3200},[14144],{"type":26,"value":3213},{"type":21,"tag":2320,"props":14146,"children":14147},{"style":2327},[14148],{"type":26,"value":14149}," make_moons\n",{"type":21,"tag":2320,"props":14151,"children":14152},{"class":2322,"line":2403},[14153,14157,14162,14166],{"type":21,"tag":2320,"props":14154,"children":14155},{"style":3200},[14156],{"type":26,"value":3203},{"type":21,"tag":2320,"props":14158,"children":14159},{"style":2327},[14160],{"type":26,"value":14161}," sklearn.model_selection ",{"type":21,"tag":2320,"props":14163,"children":14164},{"style":3200},[14165],{"type":26,"value":3213},{"type":21,"tag":2320,"props":14167,"children":14168},{"style":2327},[14169],{"type":26,"value":14170}," train_test_split\n",{"type":21,"tag":2320,"props":14172,"children":14173},{"class":2322,"line":2427},[14174],{"type":21,"tag":2320,"props":14175,"children":14176},{"emptyLinePlaceholder":3224},[14177],{"type":26,"value":3227},{"type":21,"tag":2320,"props":14179,"children":14180},{"class":2322,"line":854},[14181,14186,14190],{"type":21,"tag":2320,"props":14182,"children":14183},{"style":2327},[14184],{"type":26,"value":14185},"n_qubits ",{"type":21,"tag":2320,"props":14187,"children":14188},{"style":3200},[14189],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14191,"children":14192},{"style":2345},[14193],{"type":26,"value":5094},{"type":21,"tag":2320,"props":14195,"children":14196},{"class":2322,"line":171},[14197,14202,14206],{"type":21,"tag":2320,"props":14198,"children":14199},{"style":2327},[14200],{"type":26,"value":14201},"n_layers ",{"type":21,"tag":2320,"props":14203,"children":14204},{"style":3200},[14205],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14207,"children":14208},{"style":2345},[14209],{"type":26,"value":14210}," 3\n",{"type":21,"tag":2320,"props":14212,"children":14213},{"class":2322,"line":16},[14214],{"type":21,"tag":2320,"props":14215,"children":14216},{"emptyLinePlaceholder":3224},[14217],{"type":26,"value":3227},{"type":21,"tag":2320,"props":14219,"children":14220},{"class":2322,"line":1370},[14221,14226,14230,14235,14240,14244,14249,14253],{"type":21,"tag":2320,"props":14222,"children":14223},{"style":2327},[14224],{"type":26,"value":14225},"dev ",{"type":21,"tag":2320,"props":14227,"children":14228},{"style":3200},[14229],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14231,"children":14232},{"style":2327},[14233],{"type":26,"value":14234}," qml.device(",{"type":21,"tag":2320,"props":14236,"children":14237},{"style":2356},[14238],{"type":26,"value":14239},"\"default.qubit\"",{"type":21,"tag":2320,"props":14241,"children":14242},{"style":2327},[14243],{"type":26,"value":1315},{"type":21,"tag":2320,"props":14245,"children":14246},{"style":3265},[14247],{"type":26,"value":14248},"wires",{"type":21,"tag":2320,"props":14250,"children":14251},{"style":3200},[14252],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14254,"children":14255},{"style":2327},[14256],{"type":26,"value":14257},"n_qubits)\n",{"type":21,"tag":2320,"props":14259,"children":14260},{"class":2322,"line":3446},[14261],{"type":21,"tag":2320,"props":14262,"children":14263},{"emptyLinePlaceholder":3224},[14264],{"type":26,"value":3227},{"type":21,"tag":2320,"props":14266,"children":14267},{"class":2322,"line":3456},[14268,14273],{"type":21,"tag":2320,"props":14269,"children":14270},{"style":4364},[14271],{"type":26,"value":14272},"@qml.qnode",{"type":21,"tag":2320,"props":14274,"children":14275},{"style":2327},[14276],{"type":26,"value":14277},"(dev)\n",{"type":21,"tag":2320,"props":14279,"children":14280},{"class":2322,"line":474},[14281,14285,14290],{"type":21,"tag":2320,"props":14282,"children":14283},{"style":3200},[14284],{"type":26,"value":4361},{"type":21,"tag":2320,"props":14286,"children":14287},{"style":4364},[14288],{"type":26,"value":14289}," circuit",{"type":21,"tag":2320,"props":14291,"children":14292},{"style":2327},[14293],{"type":26,"value":14294},"(weights, x):\n",{"type":21,"tag":2320,"props":14296,"children":14297},{"class":2322,"line":3516},[14298],{"type":21,"tag":2320,"props":14299,"children":14300},{"style":3450},[14301],{"type":26,"value":14302},"    # Data encoding: each feature becomes a rotation angle\n",{"type":21,"tag":2320,"props":14304,"children":14305},{"class":2322,"line":3564},[14306,14311,14315,14319,14323,14328,14333,14337,14342],{"type":21,"tag":2320,"props":14307,"children":14308},{"style":2327},[14309],{"type":26,"value":14310},"    qml.AngleEmbedding(x, ",{"type":21,"tag":2320,"props":14312,"children":14313},{"style":3265},[14314],{"type":26,"value":14248},{"type":21,"tag":2320,"props":14316,"children":14317},{"style":3200},[14318],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14320,"children":14321},{"style":2345},[14322],{"type":26,"value":4942},{"type":21,"tag":2320,"props":14324,"children":14325},{"style":2327},[14326],{"type":26,"value":14327},"(n_qubits), ",{"type":21,"tag":2320,"props":14329,"children":14330},{"style":3265},[14331],{"type":26,"value":14332},"rotation",{"type":21,"tag":2320,"props":14334,"children":14335},{"style":3200},[14336],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14338,"children":14339},{"style":2356},[14340],{"type":26,"value":14341},"\"Y\"",{"type":21,"tag":2320,"props":14343,"children":14344},{"style":2327},[14345],{"type":26,"value":3300},{"type":21,"tag":2320,"props":14347,"children":14348},{"class":2322,"line":3606},[14349],{"type":21,"tag":2320,"props":14350,"children":14351},{"emptyLinePlaceholder":3224},[14352],{"type":26,"value":3227},{"type":21,"tag":2320,"props":14354,"children":14355},{"class":2322,"line":4631},[14356],{"type":21,"tag":2320,"props":14357,"children":14358},{"style":3450},[14359],{"type":26,"value":14360},"    # Trainable ansatz: rotations plus entangling CNOTs\n",{"type":21,"tag":2320,"props":14362,"children":14363},{"class":2322,"line":4650},[14364,14369,14373,14377,14381],{"type":21,"tag":2320,"props":14365,"children":14366},{"style":2327},[14367],{"type":26,"value":14368},"    qml.BasicEntanglerLayers(weights, ",{"type":21,"tag":2320,"props":14370,"children":14371},{"style":3265},[14372],{"type":26,"value":14248},{"type":21,"tag":2320,"props":14374,"children":14375},{"style":3200},[14376],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14378,"children":14379},{"style":2345},[14380],{"type":26,"value":4942},{"type":21,"tag":2320,"props":14382,"children":14383},{"style":2327},[14384],{"type":26,"value":14385},"(n_qubits))\n",{"type":21,"tag":2320,"props":14387,"children":14388},{"class":2322,"line":4658},[14389],{"type":21,"tag":2320,"props":14390,"children":14391},{"emptyLinePlaceholder":3224},[14392],{"type":26,"value":3227},{"type":21,"tag":2320,"props":14394,"children":14395},{"class":2322,"line":4689},[14396,14400,14405,14409],{"type":21,"tag":2320,"props":14397,"children":14398},{"style":3200},[14399],{"type":26,"value":4586},{"type":21,"tag":2320,"props":14401,"children":14402},{"style":2327},[14403],{"type":26,"value":14404}," qml.expval(qml.PauliZ(",{"type":21,"tag":2320,"props":14406,"children":14407},{"style":2345},[14408],{"type":26,"value":5168},{"type":21,"tag":2320,"props":14410,"children":14411},{"style":2327},[14412],{"type":26,"value":12368},{"type":21,"tag":2320,"props":14414,"children":14415},{"class":2322,"line":4734},[14416],{"type":21,"tag":2320,"props":14417,"children":14418},{"emptyLinePlaceholder":3224},[14419],{"type":26,"value":3227},{"type":21,"tag":2320,"props":14421,"children":14422},{"class":2322,"line":4773},[14423,14427,14432],{"type":21,"tag":2320,"props":14424,"children":14425},{"style":3200},[14426],{"type":26,"value":4361},{"type":21,"tag":2320,"props":14428,"children":14429},{"style":4364},[14430],{"type":26,"value":14431}," variational_classifier",{"type":21,"tag":2320,"props":14433,"children":14434},{"style":2327},[14435],{"type":26,"value":14436},"(weights, bias, x):\n",{"type":21,"tag":2320,"props":14438,"children":14439},{"class":2322,"line":4791},[14440,14444,14449,14453],{"type":21,"tag":2320,"props":14441,"children":14442},{"style":3200},[14443],{"type":26,"value":4586},{"type":21,"tag":2320,"props":14445,"children":14446},{"style":2327},[14447],{"type":26,"value":14448}," circuit(weights, x) ",{"type":21,"tag":2320,"props":14450,"children":14451},{"style":3200},[14452],{"type":26,"value":6528},{"type":21,"tag":2320,"props":14454,"children":14455},{"style":2327},[14456],{"type":26,"value":14457}," bias\n",{"type":21,"tag":2320,"props":14459,"children":14460},{"class":2322,"line":4865},[14461],{"type":21,"tag":2320,"props":14462,"children":14463},{"emptyLinePlaceholder":3224},[14464],{"type":26,"value":3227},{"type":21,"tag":2320,"props":14466,"children":14467},{"class":2322,"line":4893},[14468,14472,14477],{"type":21,"tag":2320,"props":14469,"children":14470},{"style":3200},[14471],{"type":26,"value":4361},{"type":21,"tag":2320,"props":14473,"children":14474},{"style":4364},[14475],{"type":26,"value":14476}," square_loss",{"type":21,"tag":2320,"props":14478,"children":14479},{"style":2327},[14480],{"type":26,"value":14481},"(labels, preds):\n",{"type":21,"tag":2320,"props":14483,"children":14484},{"class":2322,"line":4922},[14485,14489,14494,14498,14503,14507,14511],{"type":21,"tag":2320,"props":14486,"children":14487},{"style":3200},[14488],{"type":26,"value":4586},{"type":21,"tag":2320,"props":14490,"children":14491},{"style":2327},[14492],{"type":26,"value":14493}," np.mean((labels ",{"type":21,"tag":2320,"props":14495,"children":14496},{"style":3200},[14497],{"type":26,"value":4848},{"type":21,"tag":2320,"props":14499,"children":14500},{"style":2327},[14501],{"type":26,"value":14502}," qml.math.stack(preds)) ",{"type":21,"tag":2320,"props":14504,"children":14505},{"style":3200},[14506],{"type":26,"value":4713},{"type":21,"tag":2320,"props":14508,"children":14509},{"style":2345},[14510],{"type":26,"value":6384},{"type":21,"tag":2320,"props":14512,"children":14513},{"style":2327},[14514],{"type":26,"value":3300},{"type":21,"tag":2320,"props":14516,"children":14517},{"class":2322,"line":4931},[14518],{"type":21,"tag":2320,"props":14519,"children":14520},{"emptyLinePlaceholder":3224},[14521],{"type":26,"value":3227},{"type":21,"tag":2320,"props":14523,"children":14524},{"class":2322,"line":4959},[14525,14529,14534],{"type":21,"tag":2320,"props":14526,"children":14527},{"style":3200},[14528],{"type":26,"value":4361},{"type":21,"tag":2320,"props":14530,"children":14531},{"style":4364},[14532],{"type":26,"value":14533}," cost",{"type":21,"tag":2320,"props":14535,"children":14536},{"style":2327},[14537],{"type":26,"value":14538},"(weights, bias, X, Y):\n",{"type":21,"tag":2320,"props":14540,"children":14541},{"class":2322,"line":4990},[14542,14547,14551,14556,14560,14564,14568],{"type":21,"tag":2320,"props":14543,"children":14544},{"style":2327},[14545],{"type":26,"value":14546},"    preds ",{"type":21,"tag":2320,"props":14548,"children":14549},{"style":3200},[14550],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14552,"children":14553},{"style":2327},[14554],{"type":26,"value":14555}," [variational_classifier(weights, bias, x) ",{"type":21,"tag":2320,"props":14557,"children":14558},{"style":3200},[14559],{"type":26,"value":3493},{"type":21,"tag":2320,"props":14561,"children":14562},{"style":2327},[14563],{"type":26,"value":12730},{"type":21,"tag":2320,"props":14565,"children":14566},{"style":3200},[14567],{"type":26,"value":3503},{"type":21,"tag":2320,"props":14569,"children":14570},{"style":2327},[14571],{"type":26,"value":14572}," X]\n",{"type":21,"tag":2320,"props":14574,"children":14575},{"class":2322,"line":5012},[14576,14580],{"type":21,"tag":2320,"props":14577,"children":14578},{"style":3200},[14579],{"type":26,"value":4586},{"type":21,"tag":2320,"props":14581,"children":14582},{"style":2327},[14583],{"type":26,"value":14584}," square_loss(Y, preds)\n",{"type":21,"tag":2320,"props":14586,"children":14587},{"class":2322,"line":5058},[14588],{"type":21,"tag":2320,"props":14589,"children":14590},{"emptyLinePlaceholder":3224},[14591],{"type":26,"value":3227},{"type":21,"tag":2320,"props":14593,"children":14594},{"class":2322,"line":5071},[14595],{"type":21,"tag":2320,"props":14596,"children":14597},{"style":3450},[14598],{"type":26,"value":14599},"# Two-moons dataset, labels mapped to -1 \u002F +1 to match \u003CZ>\n",{"type":21,"tag":2320,"props":14601,"children":14602},{"class":2322,"line":5079},[14603,14608,14612,14617,14622,14626,14631,14635,14640,14644,14649,14653,14658,14662,14667],{"type":21,"tag":2320,"props":14604,"children":14605},{"style":2327},[14606],{"type":26,"value":14607},"X, y ",{"type":21,"tag":2320,"props":14609,"children":14610},{"style":3200},[14611],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14613,"children":14614},{"style":2327},[14615],{"type":26,"value":14616}," make_moons(",{"type":21,"tag":2320,"props":14618,"children":14619},{"style":3265},[14620],{"type":26,"value":14621},"n_samples",{"type":21,"tag":2320,"props":14623,"children":14624},{"style":3200},[14625],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14627,"children":14628},{"style":2345},[14629],{"type":26,"value":14630},"200",{"type":21,"tag":2320,"props":14632,"children":14633},{"style":2327},[14634],{"type":26,"value":1315},{"type":21,"tag":2320,"props":14636,"children":14637},{"style":3265},[14638],{"type":26,"value":14639},"noise",{"type":21,"tag":2320,"props":14641,"children":14642},{"style":3200},[14643],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14645,"children":14646},{"style":2345},[14647],{"type":26,"value":14648},"0.15",{"type":21,"tag":2320,"props":14650,"children":14651},{"style":2327},[14652],{"type":26,"value":1315},{"type":21,"tag":2320,"props":14654,"children":14655},{"style":3265},[14656],{"type":26,"value":14657},"random_state",{"type":21,"tag":2320,"props":14659,"children":14660},{"style":3200},[14661],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14663,"children":14664},{"style":2345},[14665],{"type":26,"value":14666},"42",{"type":21,"tag":2320,"props":14668,"children":14669},{"style":2327},[14670],{"type":26,"value":3300},{"type":21,"tag":2320,"props":14672,"children":14673},{"class":2322,"line":5097},[14674,14679,14683,14687,14691,14695,14699],{"type":21,"tag":2320,"props":14675,"children":14676},{"style":2327},[14677],{"type":26,"value":14678},"y ",{"type":21,"tag":2320,"props":14680,"children":14681},{"style":3200},[14682],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14684,"children":14685},{"style":2345},[14686],{"type":26,"value":6384},{"type":21,"tag":2320,"props":14688,"children":14689},{"style":3200},[14690],{"type":26,"value":8345},{"type":21,"tag":2320,"props":14692,"children":14693},{"style":2327},[14694],{"type":26,"value":726},{"type":21,"tag":2320,"props":14696,"children":14697},{"style":3200},[14698],{"type":26,"value":4848},{"type":21,"tag":2320,"props":14700,"children":14701},{"style":2345},[14702],{"type":26,"value":12793},{"type":21,"tag":2320,"props":14704,"children":14705},{"class":2322,"line":5115},[14706,14711,14715],{"type":21,"tag":2320,"props":14707,"children":14708},{"style":2327},[14709],{"type":26,"value":14710},"X_train, X_test, y_train, y_test ",{"type":21,"tag":2320,"props":14712,"children":14713},{"style":3200},[14714],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14716,"children":14717},{"style":2327},[14718],{"type":26,"value":14719}," train_test_split(\n",{"type":21,"tag":2320,"props":14721,"children":14722},{"class":2322,"line":5123},[14723,14728,14733,14737,14742,14746,14750,14754],{"type":21,"tag":2320,"props":14724,"children":14725},{"style":2327},[14726],{"type":26,"value":14727},"    X, y, ",{"type":21,"tag":2320,"props":14729,"children":14730},{"style":3265},[14731],{"type":26,"value":14732},"test_size",{"type":21,"tag":2320,"props":14734,"children":14735},{"style":3200},[14736],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14738,"children":14739},{"style":2345},[14740],{"type":26,"value":14741},"0.3",{"type":21,"tag":2320,"props":14743,"children":14744},{"style":2327},[14745],{"type":26,"value":1315},{"type":21,"tag":2320,"props":14747,"children":14748},{"style":3265},[14749],{"type":26,"value":14657},{"type":21,"tag":2320,"props":14751,"children":14752},{"style":3200},[14753],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14755,"children":14756},{"style":2345},[14757],{"type":26,"value":14758},"42\n",{"type":21,"tag":2320,"props":14760,"children":14761},{"class":2322,"line":5157},[14762],{"type":21,"tag":2320,"props":14763,"children":14764},{"style":2327},[14765],{"type":26,"value":3300},{"type":21,"tag":2320,"props":14767,"children":14768},{"class":2322,"line":5175},[14769],{"type":21,"tag":2320,"props":14770,"children":14771},{"emptyLinePlaceholder":3224},[14772],{"type":26,"value":3227},{"type":21,"tag":2320,"props":14774,"children":14775},{"class":2322,"line":5200},[14776,14781,14785,14790,14795,14799,14804,14809,14813],{"type":21,"tag":2320,"props":14777,"children":14778},{"style":2327},[14779],{"type":26,"value":14780},"shape ",{"type":21,"tag":2320,"props":14782,"children":14783},{"style":3200},[14784],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14786,"children":14787},{"style":2327},[14788],{"type":26,"value":14789}," qml.BasicEntanglerLayers.shape(",{"type":21,"tag":2320,"props":14791,"children":14792},{"style":3265},[14793],{"type":26,"value":14794},"n_layers",{"type":21,"tag":2320,"props":14796,"children":14797},{"style":3200},[14798],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14800,"children":14801},{"style":2327},[14802],{"type":26,"value":14803},"n_layers, ",{"type":21,"tag":2320,"props":14805,"children":14806},{"style":3265},[14807],{"type":26,"value":14808},"n_wires",{"type":21,"tag":2320,"props":14810,"children":14811},{"style":3200},[14812],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14814,"children":14815},{"style":2327},[14816],{"type":26,"value":14257},{"type":21,"tag":2320,"props":14818,"children":14819},{"class":2322,"line":5242},[14820,14825,14829,14834,14838],{"type":21,"tag":2320,"props":14821,"children":14822},{"style":2327},[14823],{"type":26,"value":14824},"rng ",{"type":21,"tag":2320,"props":14826,"children":14827},{"style":3200},[14828],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14830,"children":14831},{"style":2327},[14832],{"type":26,"value":14833}," np.random.default_rng(",{"type":21,"tag":2320,"props":14835,"children":14836},{"style":2345},[14837],{"type":26,"value":14666},{"type":21,"tag":2320,"props":14839,"children":14840},{"style":2327},[14841],{"type":26,"value":3300},{"type":21,"tag":2320,"props":14843,"children":14844},{"class":2322,"line":5250},[14845,14850,14854,14859,14863,14867,14872,14877,14882,14886,14890],{"type":21,"tag":2320,"props":14846,"children":14847},{"style":2327},[14848],{"type":26,"value":14849},"weights ",{"type":21,"tag":2320,"props":14851,"children":14852},{"style":3200},[14853],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14855,"children":14856},{"style":2327},[14857],{"type":26,"value":14858}," np.array(rng.normal(",{"type":21,"tag":2320,"props":14860,"children":14861},{"style":2345},[14862],{"type":26,"value":5168},{"type":21,"tag":2320,"props":14864,"children":14865},{"style":2327},[14866],{"type":26,"value":1315},{"type":21,"tag":2320,"props":14868,"children":14869},{"style":2345},[14870],{"type":26,"value":14871},"0.1",{"type":21,"tag":2320,"props":14873,"children":14874},{"style":2327},[14875],{"type":26,"value":14876},", shape), ",{"type":21,"tag":2320,"props":14878,"children":14879},{"style":3265},[14880],{"type":26,"value":14881},"requires_grad",{"type":21,"tag":2320,"props":14883,"children":14884},{"style":3200},[14885],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14887,"children":14888},{"style":2345},[14889],{"type":26,"value":3277},{"type":21,"tag":2320,"props":14891,"children":14892},{"style":2327},[14893],{"type":26,"value":3300},{"type":21,"tag":2320,"props":14895,"children":14896},{"class":2322,"line":5285},[14897,14902,14906,14911,14916,14920,14924,14928,14932],{"type":21,"tag":2320,"props":14898,"children":14899},{"style":2327},[14900],{"type":26,"value":14901},"bias ",{"type":21,"tag":2320,"props":14903,"children":14904},{"style":3200},[14905],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14907,"children":14908},{"style":2327},[14909],{"type":26,"value":14910}," np.array(",{"type":21,"tag":2320,"props":14912,"children":14913},{"style":2345},[14914],{"type":26,"value":14915},"0.0",{"type":21,"tag":2320,"props":14917,"children":14918},{"style":2327},[14919],{"type":26,"value":1315},{"type":21,"tag":2320,"props":14921,"children":14922},{"style":3265},[14923],{"type":26,"value":14881},{"type":21,"tag":2320,"props":14925,"children":14926},{"style":3200},[14927],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14929,"children":14930},{"style":2345},[14931],{"type":26,"value":3277},{"type":21,"tag":2320,"props":14933,"children":14934},{"style":2327},[14935],{"type":26,"value":3300},{"type":21,"tag":2320,"props":14937,"children":14938},{"class":2322,"line":5401},[14939],{"type":21,"tag":2320,"props":14940,"children":14941},{"emptyLinePlaceholder":3224},[14942],{"type":26,"value":3227},{"type":21,"tag":2320,"props":14944,"children":14945},{"class":2322,"line":5409},[14946,14951,14955,14960,14965,14969,14973],{"type":21,"tag":2320,"props":14947,"children":14948},{"style":2327},[14949],{"type":26,"value":14950},"opt ",{"type":21,"tag":2320,"props":14952,"children":14953},{"style":3200},[14954],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14956,"children":14957},{"style":2327},[14958],{"type":26,"value":14959}," qml.AdamOptimizer(",{"type":21,"tag":2320,"props":14961,"children":14962},{"style":3265},[14963],{"type":26,"value":14964},"stepsize",{"type":21,"tag":2320,"props":14966,"children":14967},{"style":3200},[14968],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14970,"children":14971},{"style":2345},[14972],{"type":26,"value":14871},{"type":21,"tag":2320,"props":14974,"children":14975},{"style":2327},[14976],{"type":26,"value":3300},{"type":21,"tag":2320,"props":14978,"children":14979},{"class":2322,"line":5454},[14980,14985,14989],{"type":21,"tag":2320,"props":14981,"children":14982},{"style":2327},[14983],{"type":26,"value":14984},"batch_size ",{"type":21,"tag":2320,"props":14986,"children":14987},{"style":3200},[14988],{"type":26,"value":3240},{"type":21,"tag":2320,"props":14990,"children":14991},{"style":2345},[14992],{"type":26,"value":14993}," 20\n",{"type":21,"tag":2320,"props":14995,"children":14996},{"class":2322,"line":5472},[14997],{"type":21,"tag":2320,"props":14998,"children":14999},{"emptyLinePlaceholder":3224},[15000],{"type":26,"value":3227},{"type":21,"tag":2320,"props":15002,"children":15003},{"class":2322,"line":5480},[15004,15008,15013,15017,15021,15025,15030],{"type":21,"tag":2320,"props":15005,"children":15006},{"style":3200},[15007],{"type":26,"value":3493},{"type":21,"tag":2320,"props":15009,"children":15010},{"style":2327},[15011],{"type":26,"value":15012}," step ",{"type":21,"tag":2320,"props":15014,"children":15015},{"style":3200},[15016],{"type":26,"value":3503},{"type":21,"tag":2320,"props":15018,"children":15019},{"style":2345},[15020],{"type":26,"value":3508},{"type":21,"tag":2320,"props":15022,"children":15023},{"style":2327},[15024],{"type":26,"value":3320},{"type":21,"tag":2320,"props":15026,"children":15027},{"style":2345},[15028],{"type":26,"value":15029},"60",{"type":21,"tag":2320,"props":15031,"children":15032},{"style":2327},[15033],{"type":26,"value":4414},{"type":21,"tag":2320,"props":15035,"children":15036},{"class":2322,"line":5568},[15037,15042,15046,15051,15055,15059,15064],{"type":21,"tag":2320,"props":15038,"children":15039},{"style":2327},[15040],{"type":26,"value":15041},"    idx ",{"type":21,"tag":2320,"props":15043,"children":15044},{"style":3200},[15045],{"type":26,"value":3240},{"type":21,"tag":2320,"props":15047,"children":15048},{"style":2327},[15049],{"type":26,"value":15050}," np.random.randint(",{"type":21,"tag":2320,"props":15052,"children":15053},{"style":2345},[15054],{"type":26,"value":5168},{"type":21,"tag":2320,"props":15056,"children":15057},{"style":2327},[15058],{"type":26,"value":1315},{"type":21,"tag":2320,"props":15060,"children":15061},{"style":2345},[15062],{"type":26,"value":15063},"len",{"type":21,"tag":2320,"props":15065,"children":15066},{"style":2327},[15067],{"type":26,"value":15068},"(X_train), (batch_size,))\n",{"type":21,"tag":2320,"props":15070,"children":15072},{"class":2322,"line":15071},48,[15073,15078,15082],{"type":21,"tag":2320,"props":15074,"children":15075},{"style":2327},[15076],{"type":26,"value":15077},"    X_batch, y_batch ",{"type":21,"tag":2320,"props":15079,"children":15080},{"style":3200},[15081],{"type":26,"value":3240},{"type":21,"tag":2320,"props":15083,"children":15084},{"style":2327},[15085],{"type":26,"value":15086}," X_train[idx], y_train[idx]\n",{"type":21,"tag":2320,"props":15088,"children":15090},{"class":2322,"line":15089},49,[15091,15096,15100],{"type":21,"tag":2320,"props":15092,"children":15093},{"style":2327},[15094],{"type":26,"value":15095},"    weights, bias, _, _ ",{"type":21,"tag":2320,"props":15097,"children":15098},{"style":3200},[15099],{"type":26,"value":3240},{"type":21,"tag":2320,"props":15101,"children":15102},{"style":2327},[15103],{"type":26,"value":15104}," opt.step(cost, weights, bias, X_batch, y_batch)\n",{"type":21,"tag":2320,"props":15106,"children":15108},{"class":2322,"line":15107},50,[15109],{"type":21,"tag":2320,"props":15110,"children":15111},{"emptyLinePlaceholder":3224},[15112],{"type":26,"value":3227},{"type":21,"tag":2320,"props":15114,"children":15116},{"class":2322,"line":15115},51,[15117,15121,15125,15129,15134,15139,15143],{"type":21,"tag":2320,"props":15118,"children":15119},{"style":3200},[15120],{"type":26,"value":11946},{"type":21,"tag":2320,"props":15122,"children":15123},{"style":2327},[15124],{"type":26,"value":15012},{"type":21,"tag":2320,"props":15126,"children":15127},{"style":3200},[15128],{"type":26,"value":6379},{"type":21,"tag":2320,"props":15130,"children":15131},{"style":2345},[15132],{"type":26,"value":15133}," 15",{"type":21,"tag":2320,"props":15135,"children":15136},{"style":3200},[15137],{"type":26,"value":15138}," ==",{"type":21,"tag":2320,"props":15140,"children":15141},{"style":2345},[15142],{"type":26,"value":11960},{"type":21,"tag":2320,"props":15144,"children":15145},{"style":2327},[15146],{"type":26,"value":4919},{"type":21,"tag":2320,"props":15148,"children":15150},{"class":2322,"line":15149},52,[15151,15156,15160,15165,15169,15173,15177],{"type":21,"tag":2320,"props":15152,"children":15153},{"style":2327},[15154],{"type":26,"value":15155},"        preds ",{"type":21,"tag":2320,"props":15157,"children":15158},{"style":3200},[15159],{"type":26,"value":3240},{"type":21,"tag":2320,"props":15161,"children":15162},{"style":2327},[15163],{"type":26,"value":15164}," [np.sign(variational_classifier(weights, bias, x)) ",{"type":21,"tag":2320,"props":15166,"children":15167},{"style":3200},[15168],{"type":26,"value":3493},{"type":21,"tag":2320,"props":15170,"children":15171},{"style":2327},[15172],{"type":26,"value":12730},{"type":21,"tag":2320,"props":15174,"children":15175},{"style":3200},[15176],{"type":26,"value":3503},{"type":21,"tag":2320,"props":15178,"children":15179},{"style":2327},[15180],{"type":26,"value":15181}," X_train]\n",{"type":21,"tag":2320,"props":15183,"children":15185},{"class":2322,"line":15184},53,[15186,15191,15195,15200,15204],{"type":21,"tag":2320,"props":15187,"children":15188},{"style":2327},[15189],{"type":26,"value":15190},"        acc ",{"type":21,"tag":2320,"props":15192,"children":15193},{"style":3200},[15194],{"type":26,"value":3240},{"type":21,"tag":2320,"props":15196,"children":15197},{"style":2327},[15198],{"type":26,"value":15199}," np.mean(np.array(preds) ",{"type":21,"tag":2320,"props":15201,"children":15202},{"style":3200},[15203],{"type":26,"value":4909},{"type":21,"tag":2320,"props":15205,"children":15206},{"style":2327},[15207],{"type":26,"value":15208}," y_train)\n",{"type":21,"tag":2320,"props":15210,"children":15212},{"class":2322,"line":15211},54,[15213,15217,15221,15225,15230,15234,15239,15243,15247,15252,15256,15261,15265,15269,15274,15278,15283,15288,15292,15296],{"type":21,"tag":2320,"props":15214,"children":15215},{"style":2345},[15216],{"type":26,"value":12892},{"type":21,"tag":2320,"props":15218,"children":15219},{"style":2327},[15220],{"type":26,"value":3320},{"type":21,"tag":2320,"props":15222,"children":15223},{"style":3200},[15224],{"type":26,"value":3325},{"type":21,"tag":2320,"props":15226,"children":15227},{"style":2356},[15228],{"type":26,"value":15229},"\"Step ",{"type":21,"tag":2320,"props":15231,"children":15232},{"style":2345},[15233],{"type":26,"value":3335},{"type":21,"tag":2320,"props":15235,"children":15236},{"style":2327},[15237],{"type":26,"value":15238},"step",{"type":21,"tag":2320,"props":15240,"children":15241},{"style":3200},[15242],{"type":26,"value":12957},{"type":21,"tag":2320,"props":15244,"children":15245},{"style":2345},[15246],{"type":26,"value":3345},{"type":21,"tag":2320,"props":15248,"children":15249},{"style":2356},[15250],{"type":26,"value":15251}," | cost ",{"type":21,"tag":2320,"props":15253,"children":15254},{"style":2345},[15255],{"type":26,"value":3335},{"type":21,"tag":2320,"props":15257,"children":15258},{"style":2327},[15259],{"type":26,"value":15260},"cost(weights, bias, X_train, y_train)",{"type":21,"tag":2320,"props":15262,"children":15263},{"style":3200},[15264],{"type":26,"value":3647},{"type":21,"tag":2320,"props":15266,"children":15267},{"style":2345},[15268],{"type":26,"value":3345},{"type":21,"tag":2320,"props":15270,"children":15271},{"style":2356},[15272],{"type":26,"value":15273}," | acc ",{"type":21,"tag":2320,"props":15275,"children":15276},{"style":2345},[15277],{"type":26,"value":3335},{"type":21,"tag":2320,"props":15279,"children":15280},{"style":2327},[15281],{"type":26,"value":15282},"acc",{"type":21,"tag":2320,"props":15284,"children":15285},{"style":3200},[15286],{"type":26,"value":15287},":.3f",{"type":21,"tag":2320,"props":15289,"children":15290},{"style":2345},[15291],{"type":26,"value":3345},{"type":21,"tag":2320,"props":15293,"children":15294},{"style":2356},[15295],{"type":26,"value":3350},{"type":21,"tag":2320,"props":15297,"children":15298},{"style":2327},[15299],{"type":26,"value":3300},{"type":21,"tag":2320,"props":15301,"children":15303},{"class":2322,"line":15302},55,[15304],{"type":21,"tag":2320,"props":15305,"children":15306},{"emptyLinePlaceholder":3224},[15307],{"type":26,"value":3227},{"type":21,"tag":2320,"props":15309,"children":15311},{"class":2322,"line":15310},56,[15312,15317,15321,15325,15329,15333,15337],{"type":21,"tag":2320,"props":15313,"children":15314},{"style":2327},[15315],{"type":26,"value":15316},"test_preds ",{"type":21,"tag":2320,"props":15318,"children":15319},{"style":3200},[15320],{"type":26,"value":3240},{"type":21,"tag":2320,"props":15322,"children":15323},{"style":2327},[15324],{"type":26,"value":15164},{"type":21,"tag":2320,"props":15326,"children":15327},{"style":3200},[15328],{"type":26,"value":3493},{"type":21,"tag":2320,"props":15330,"children":15331},{"style":2327},[15332],{"type":26,"value":12730},{"type":21,"tag":2320,"props":15334,"children":15335},{"style":3200},[15336],{"type":26,"value":3503},{"type":21,"tag":2320,"props":15338,"children":15339},{"style":2327},[15340],{"type":26,"value":15341}," X_test]\n",{"type":21,"tag":2320,"props":15343,"children":15345},{"class":2322,"line":15344},57,[15346,15350,15354,15358,15362,15367,15372,15376,15381,15385,15390,15394,15398,15402],{"type":21,"tag":2320,"props":15347,"children":15348},{"style":2345},[15349],{"type":26,"value":3315},{"type":21,"tag":2320,"props":15351,"children":15352},{"style":2327},[15353],{"type":26,"value":3320},{"type":21,"tag":2320,"props":15355,"children":15356},{"style":3200},[15357],{"type":26,"value":3325},{"type":21,"tag":2320,"props":15359,"children":15360},{"style":2356},[15361],{"type":26,"value":3350},{"type":21,"tag":2320,"props":15363,"children":15364},{"style":2345},[15365],{"type":26,"value":15366},"\\n",{"type":21,"tag":2320,"props":15368,"children":15369},{"style":2356},[15370],{"type":26,"value":15371},"Test accuracy: ",{"type":21,"tag":2320,"props":15373,"children":15374},{"style":2345},[15375],{"type":26,"value":3335},{"type":21,"tag":2320,"props":15377,"children":15378},{"style":2327},[15379],{"type":26,"value":15380},"np.mean(np.array(test_preds) ",{"type":21,"tag":2320,"props":15382,"children":15383},{"style":3200},[15384],{"type":26,"value":4909},{"type":21,"tag":2320,"props":15386,"children":15387},{"style":2327},[15388],{"type":26,"value":15389}," y_test)",{"type":21,"tag":2320,"props":15391,"children":15392},{"style":3200},[15393],{"type":26,"value":15287},{"type":21,"tag":2320,"props":15395,"children":15396},{"style":2345},[15397],{"type":26,"value":3345},{"type":21,"tag":2320,"props":15399,"children":15400},{"style":2356},[15401],{"type":26,"value":3350},{"type":21,"tag":2320,"props":15403,"children":15404},{"style":2327},[15405],{"type":26,"value":3300},{"type":21,"tag":22,"props":15407,"children":15408},{},[15409,15411,15417],{"type":26,"value":15410},"Running it (PennyLane 0.45, ",{"type":21,"tag":2080,"props":15412,"children":15414},{"className":15413},[],[15415],{"type":26,"value":15416},"default.qubit",{"type":26,"value":15418},") gives:",{"type":21,"tag":2310,"props":15420,"children":15423},{"className":15421,"code":15422,"language":26,"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",[15424],{"type":21,"tag":2080,"props":15425,"children":15426},{"__ignoreMap":7},[15427,15435,15443,15451,15459,15466],{"type":21,"tag":2320,"props":15428,"children":15429},{"class":2322,"line":2323},[15430],{"type":21,"tag":2320,"props":15431,"children":15432},{},[15433],{"type":26,"value":15434},"Step  0 | cost 1.6158 | acc 0.336\n",{"type":21,"tag":2320,"props":15436,"children":15437},{"class":2322,"line":150},[15438],{"type":21,"tag":2320,"props":15439,"children":15440},{},[15441],{"type":26,"value":15442},"Step 15 | cost 0.6775 | acc 0.764\n",{"type":21,"tag":2320,"props":15444,"children":15445},{"class":2322,"line":2341},[15446],{"type":21,"tag":2320,"props":15447,"children":15448},{},[15449],{"type":26,"value":15450},"Step 30 | cost 0.6466 | acc 0.779\n",{"type":21,"tag":2320,"props":15452,"children":15453},{"class":2322,"line":2403},[15454],{"type":21,"tag":2320,"props":15455,"children":15456},{},[15457],{"type":26,"value":15458},"Step 45 | cost 0.6372 | acc 0.850\n",{"type":21,"tag":2320,"props":15460,"children":15461},{"class":2322,"line":2427},[15462],{"type":21,"tag":2320,"props":15463,"children":15464},{"emptyLinePlaceholder":3224},[15465],{"type":26,"value":3227},{"type":21,"tag":2320,"props":15467,"children":15468},{"class":2322,"line":854},[15469],{"type":21,"tag":2320,"props":15470,"children":15471},{},[15472],{"type":26,"value":15473},"Test accuracy: 0.817\n",{"type":21,"tag":22,"props":15475,"children":15476},{},[15477,15479,15484],{"type":26,"value":15478},"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":180,"props":15480,"children":15481},{},[15482],{"type":26,"value":15483},"0.983",{"type":26,"value":15485}," 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":15487,"children":15488},{},[15489,15491,15497,15499,15503],{"type":26,"value":15490},"Try scaling it. Push ",{"type":21,"tag":2080,"props":15492,"children":15494},{"className":15493},[],[15495],{"type":26,"value":15496},"n_qubits",{"type":26,"value":15498}," up, widen the ansatz, and watch the gradients shrink. You reproduce the barren-plateau effect on a ",{"type":21,"tag":29,"props":15500,"children":15501},{"href":446},[15502],{"type":26,"value":3286},{"type":26,"value":15504}," in an afternoon, which is a far better education than reading about it.",{"type":21,"tag":49,"props":15506,"children":15508},{"id":15507},"whats-genuinely-promising",[15509],{"type":26,"value":15510},"What's genuinely promising",{"type":21,"tag":22,"props":15512,"children":15513},{},[15514],{"type":26,"value":15515},"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":15517,"children":15518},{},[15519,15524,15526,15531,15533,15537],{"type":21,"tag":180,"props":15520,"children":15521},{},[15522],{"type":26,"value":15523},"Quantum data instead of classical data.",{"type":26,"value":15525}," The data-loading bottleneck exists because we're forcing classical numbers into quantum states. If your data is ",{"type":21,"tag":2054,"props":15527,"children":15528},{},[15529],{"type":26,"value":15530},"already quantum",{"type":26,"value":15532}," (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":29,"props":15534,"children":15535},{"href":11505},[15536],{"type":26,"value":11508},{"type":26,"value":15538}," covers the distinction.",{"type":21,"tag":22,"props":15540,"children":15541},{},[15542,15547],{"type":21,"tag":180,"props":15543,"children":15544},{},[15545],{"type":26,"value":15546},"Quantum kernels for structured data.",{"type":26,"value":15548}," 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":15550,"children":15551},{},[15552,15557],{"type":21,"tag":180,"props":15553,"children":15554},{},[15555],{"type":26,"value":15556},"Noise filtering.",{"type":26,"value":15558}," 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, specific niches are how technologies gain footholds.",{"type":21,"tag":49,"props":15560,"children":15562},{"id":15561},"where-this-leaves-you",[15563],{"type":26,"value":15564},"Where this leaves you",{"type":21,"tag":22,"props":15566,"children":15567},{},[15568,15570,15574,15575,15579],{"type":26,"value":15569},"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":29,"props":15571,"children":15572},{"href":338},[15573],{"type":26,"value":328},{"type":26,"value":38},{"type":21,"tag":29,"props":15576,"children":15577},{"href":2035},[15578],{"type":26,"value":2024},{"type":26,"value":15580}," need, and those have clearer near-term paths. Learning QML makes you better at variational quantum computing generally.",{"type":21,"tag":22,"props":15582,"children":15583},{},[15584,15586,15591],{"type":26,"value":15585},"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":29,"props":15587,"children":15588},{"href":714},[15589],{"type":26,"value":15590},"benchmarking hardware claims",{"type":26,"value":15592},": ask what the classical baseline was, ask whether data loading was counted, ask how many qubits the result scales to.",{"type":21,"tag":22,"props":15594,"children":15595},{},[15596,15601],{"type":21,"tag":29,"props":15597,"children":15598},{"href":8753},[15599],{"type":26,"value":15600},"Preskill's NISQ paper",{"type":26,"value":15602}," 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":15604,"children":15605},{},[15606,15608,15613,15615,15619],{"type":26,"value":15607},"The field is more interesting when you stop needing it to be revolutionary. Start with the ",{"type":21,"tag":29,"props":15609,"children":15610},{"href":14069},[15611],{"type":26,"value":15612},"PennyLane SDK guide",{"type":26,"value":15614},", keep the ",{"type":21,"tag":29,"props":15616,"children":15617},{"href":3964},[15618],{"type":26,"value":9327},{"type":26,"value":15620}," open, and run the experiments yourself. The evidence is more useful than the pitch.",{"type":21,"tag":2694,"props":15622,"children":15623},{},[15624],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":15626},[15627,15628,15629,15630,15631,15632,15633],{"id":13812,"depth":150,"text":13815},{"id":13890,"depth":150,"text":13893},{"id":13935,"depth":150,"text":13938},{"id":13981,"depth":150,"text":13984},{"id":14058,"depth":150,"text":14061},{"id":15507,"depth":150,"text":15510},{"id":15561,"depth":150,"text":15564},"content:blog:quantum-machine-learning-reality-check.md","blog\u002Fquantum-machine-learning-reality-check.md","blog\u002Fquantum-machine-learning-reality-check",{"_path":900,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":15638,"description":15639,"date":3063,"author":11,"tags":15640,"readingTime":1370,"body":15641,"_type":156,"_id":16015,"_source":158,"_file":16016,"_stem":16017,"_extension":161},"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.",[13,8889,15],{"type":18,"children":15642,"toc":16006},[15643,15648,15653,15673,15678,15684,15689,15699,15730,15740,15745,15751,15756,15767,15772,15802,15820,15826,15838,15843,15855,15860,15866,15871,15876,15881,15892,15898,15903,15912,15929,15940,15946,15951,15956,15961,15966,15972,15977,15994],{"type":21,"tag":22,"props":15644,"children":15645},{},[15646],{"type":26,"value":15647},"There is a ceiling problem in quantum hardware that doesn't get discussed as often as qubit counts do.",{"type":21,"tag":22,"props":15649,"children":15650},{},[15651],{"type":26,"value":15652},"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":15654,"children":15655},{},[15656,15658,15664,15666,15671],{"type":26,"value":15657},"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":29,"props":15659,"children":15661},{"href":15660},"\u002Fglossary\u002Fdistributed-quantum-computing",[15662],{"type":26,"value":15663},"distributed quantum computing",{"type":26,"value":15665}," means, and it is why quantum networking has moved from a communications curiosity to a scaling strategy. When we ",{"type":21,"tag":29,"props":15667,"children":15668},{"href":714},[15669],{"type":26,"value":15670},"read EO 14413 as a technical document",{"type":26,"value":15672},", 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":15674,"children":15675},{},[15676],{"type":26,"value":15677},"The catch is that connecting quantum computers is nothing like connecting classical ones.",{"type":21,"tag":49,"props":15679,"children":15681},{"id":15680},"three-different-things-people-call-quantum-networking",[15682],{"type":26,"value":15683},"Three different things people call \"quantum networking\"",{"type":21,"tag":22,"props":15685,"children":15686},{},[15687],{"type":26,"value":15688},"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":15690,"children":15691},{},[15692,15697],{"type":21,"tag":180,"props":15693,"children":15694},{},[15695],{"type":26,"value":15696},"(a) Quantum networking for distributed computation.",{"type":26,"value":15698}," 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":15700,"children":15701},{},[15702,15707,15709,15714,15716,15722,15724,15728],{"type":21,"tag":180,"props":15703,"children":15704},{},[15705],{"type":26,"value":15706},"(b) Quantum key distribution and the \"quantum internet.\"",{"type":26,"value":15708}," 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":2054,"props":15710,"children":15711},{},[15712],{"type":26,"value":15713},"communications security",{"type":26,"value":15715}," technology, descending from ",{"type":21,"tag":29,"props":15717,"children":15719},{"href":15718},"\u002Fresearch\u002Fbennett-brassard-bb84-1984",[15720],{"type":26,"value":15721},"Bennett and Brassard's BB84 protocol",{"type":26,"value":15723},". 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":29,"props":15725,"children":15726},{"href":9379},[15727],{"type":26,"value":9362},{"type":26,"value":15729},", which is software you deploy today, not hardware that needs new fibre.",{"type":21,"tag":22,"props":15731,"children":15732},{},[15733,15738],{"type":21,"tag":180,"props":15734,"children":15735},{},[15736],{"type":26,"value":15737},"(c) Classical networking of quantum computers.",{"type":26,"value":15739}," 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":15741,"children":15742},{},[15743],{"type":26,"value":15744},"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":49,"props":15746,"children":15748},{"id":15747},"why-you-cannot-simply-amplify-a-qubit",[15749],{"type":26,"value":15750},"Why you cannot simply amplify a qubit",{"type":21,"tag":22,"props":15752,"children":15753},{},[15754],{"type":26,"value":15755},"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":15757,"children":15758},{},[15759,15761,15765],{"type":26,"value":15760},"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":29,"props":15762,"children":15763},{"href":8853},[15764],{"type":26,"value":8856},{"type":26,"value":15766}," 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":15768,"children":15769},{},[15770],{"type":26,"value":15771},"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":15773,"children":15774},{},[15775,15777,15785,15787,15792,15794,15800],{"type":26,"value":15776},"Quantum repeaters solve this by a genuinely different mechanism. Rather than relaying the qubit, they relay ",{"type":21,"tag":2054,"props":15778,"children":15779},{},[15780],{"type":21,"tag":29,"props":15781,"children":15782},{"href":3847},[15783],{"type":26,"value":15784},"entanglement",{"type":26,"value":15786},". 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":180,"props":15788,"children":15789},{},[15790],{"type":26,"value":15791},"entanglement swapping",{"type":26,"value":15793},": at each intermediate node, jointly measure the two local halves of two adjacent pairs in the ",{"type":21,"tag":29,"props":15795,"children":15797},{"href":15796},"\u002Fglossary\u002Fbell-state",[15798],{"type":26,"value":15799},"Bell basis",{"type":26,"value":15801},". 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":15803,"children":15804},{},[15805,15807,15811,15813,15818],{"type":26,"value":15806},"The ingredients this demands are exactly the hard 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":29,"props":15808,"children":15809},{"href":9013},[15810],{"type":26,"value":9016},{"type":26,"value":15812}," from degrading across hops. ",{"type":21,"tag":29,"props":15814,"children":15815},{"href":8929},[15816],{"type":26,"value":15817},"Decoherence",{"type":26,"value":15819}," 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":49,"props":15821,"children":15823},{"id":15822},"teleportation-is-the-transport-primitive",[15824],{"type":26,"value":15825},"Teleportation is the transport primitive",{"type":21,"tag":22,"props":15827,"children":15828},{},[15829,15831,15836],{"type":26,"value":15830},"Once two nodes share an entangled pair, moving an actual qubit between them is a solved protocol: ",{"type":21,"tag":29,"props":15832,"children":15833},{"href":3839},[15834],{"type":26,"value":15835},"quantum teleportation",{"type":26,"value":15837},", from Bennett and colleagues in 1993.",{"type":21,"tag":22,"props":15839,"children":15840},{},[15841],{"type":26,"value":15842},"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":15844,"children":15845},{},[15846,15848,15853],{"type":26,"value":15847},"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":180,"props":15849,"children":15850},{},[15851],{"type":26,"value":15852},"the classical channel is mandatory",{"type":26,"value":15854},". 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":15856,"children":15857},{},[15858],{"type":26,"value":15859},"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":49,"props":15861,"children":15863},{"id":15862},"the-interconnect-is-the-bottleneck",[15864],{"type":26,"value":15865},"The interconnect is the bottleneck",{"type":21,"tag":22,"props":15867,"children":15868},{},[15869],{"type":26,"value":15870},"Now the engineering reality of stitching QPUs together.",{"type":21,"tag":22,"props":15872,"children":15873},{},[15874],{"type":26,"value":15875},"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":15877,"children":15878},{},[15879],{"type":26,"value":15880},"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":15882,"children":15883},{},[15884,15886,15890],{"type":26,"value":15885},"There is a genuinely appealing upside, though, and it's the reason serious people pursue this: ",{"type":21,"tag":29,"props":15887,"children":15888},{"href":143},[15889],{"type":26,"value":1038},{"type":26,"value":15891}," 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":49,"props":15893,"children":15895},{"id":15894},"modality-matters-here-more-than-usual",[15896],{"type":26,"value":15897},"Modality matters here more than usual",{"type":21,"tag":22,"props":15899,"children":15900},{},[15901],{"type":26,"value":15902},"The photonic interface is where hardware platforms diverge sharply.",{"type":21,"tag":22,"props":15904,"children":15905},{},[15906,15910],{"type":21,"tag":180,"props":15907,"children":15908},{},[15909],{"type":26,"value":9157},{"type":26,"value":15911}," 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 vendor 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":15913,"children":15914},{},[15915,15920,15922,15927],{"type":21,"tag":180,"props":15916,"children":15917},{},[15918],{"type":26,"value":15919},"Superconducting qubits",{"type":26,"value":15921}," 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":180,"props":15923,"children":15924},{},[15925],{"type":26,"value":15926},"microwave-to-optical transduction",{"type":26,"value":15928},": 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":15930,"children":15931},{},[15932,15934,15938],{"type":26,"value":15933},"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":29,"props":15935,"children":15936},{"href":257},[15937],{"type":26,"value":9174},{"type":26,"value":15939}," covers the broader trade-offs.",{"type":21,"tag":49,"props":15941,"children":15943},{"id":15942},"where-this-stands",[15944],{"type":26,"value":15945},"Where this stands",{"type":21,"tag":22,"props":15947,"children":15948},{},[15949],{"type":26,"value":15950},"Plainly: early.",{"type":21,"tag":22,"props":15952,"children":15953},{},[15954],{"type":26,"value":15955},"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":15957,"children":15958},{},[15959],{"type":26,"value":15960},"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 fast 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 company describing why its own architecture wins.",{"type":21,"tag":22,"props":15962,"children":15963},{},[15964],{"type":26,"value":15965},"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":49,"props":15967,"children":15969},{"id":15968},"the-takeaway",[15970],{"type":26,"value":15971},"The takeaway",{"type":21,"tag":22,"props":15973,"children":15974},{},[15975],{"type":26,"value":15976},"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":15978,"children":15979},{},[15980,15982,15987,15988,15992],{"type":26,"value":15981},"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":2054,"props":15983,"children":15984},{},[15985],{"type":26,"value":15986},"rate",{"type":26,"value":38},{"type":21,"tag":2054,"props":15989,"children":15990},{},[15991],{"type":26,"value":9016},{"type":26,"value":15993}," 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":15995,"children":15996},{},[15997,15999,16004],{"type":26,"value":15998},"Answers to those tend to be absent from the announcements, which is itself informative. The ",{"type":21,"tag":29,"props":16000,"children":16002},{"href":16001},"\u002Fglossary\u002Fquantum-network",[16003],{"type":26,"value":9327},{"type":26,"value":16005}," covers the vocabulary if you want to read the primary sources yourself.",{"title":7,"searchDepth":150,"depth":150,"links":16007},[16008,16009,16010,16011,16012,16013,16014],{"id":15680,"depth":150,"text":15683},{"id":15747,"depth":150,"text":15750},{"id":15822,"depth":150,"text":15825},{"id":15862,"depth":150,"text":15865},{"id":15894,"depth":150,"text":15897},{"id":15942,"depth":150,"text":15945},{"id":15968,"depth":150,"text":15971},"content:blog:quantum-networking-distributed-computing.md","blog\u002Fquantum-networking-distributed-computing.md","blog\u002Fquantum-networking-distributed-computing",{"_path":16019,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":16020,"description":16021,"date":3063,"author":11,"tags":16022,"readingTime":3456,"body":16023,"_type":156,"_id":18117,"_source":158,"_file":18118,"_stem":18119,"_extension":161},"\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.",[7148,1369,2865],{"type":18,"children":16024,"toc":18105},[16025,16043,16061,16066,16074,16080,16085,16093,16098,16109,16148,16153,16165,16171,16176,16187,16195,16219,16227,16237,16242,16250,16270,16276,16287,16292,16302,16307,16335,16339,16375,17325,17329,17337,17347,17355,17360,17367,17399,17412,17420,17440,17445,17451,17456,17700,17704,17712,17724,17736,17744,17756,17768,17774,17797,17814,17842,17940,17964,17970,17981,17992,18034,18039,18044,18101],{"type":21,"tag":22,"props":16026,"children":16027},{},[16028,16030,16035,16037,16041],{"type":26,"value":16029},"Our ",{"type":21,"tag":29,"props":16031,"children":16032},{"href":11525},[16033],{"type":26,"value":16034},"QFT tutorial",{"type":26,"value":16036}," ended on a deliberately unsatisfying note: the ",{"type":21,"tag":29,"props":16038,"children":16039},{"href":11537},[16040],{"type":26,"value":11540},{"type":26,"value":16042}," 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":16044,"children":16045},{},[16046,16048,16052,16054,16059],{"type":26,"value":16047},"This post is the sequel that resolves that. Quantum phase estimation (QPE) is the machine that turns the ",{"type":21,"tag":2054,"props":16049,"children":16050},{},[16051],{"type":26,"value":6979},{"type":26,"value":16053}," QFT into a readout primitive. It's the reason the QFT matters, and it is the algorithm sitting underneath ",{"type":21,"tag":29,"props":16055,"children":16056},{"href":9628},[16057],{"type":26,"value":16058},"Shor's",{"type":26,"value":16060},": Shor's is QPE applied to modular exponentiation, plus number theory.",{"type":21,"tag":22,"props":16062,"children":16063},{},[16064],{"type":26,"value":16065},"Read the QFT post first if you haven't. This one assumes the construction and won't rebuild it.",{"type":21,"tag":22,"props":16067,"children":16068},{},[16069],{"type":21,"tag":180,"props":16070,"children":16071},{},[16072],{"type":26,"value":16073},"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":49,"props":16075,"children":16077},{"id":16076},"the-problem-qpe-solves",[16078],{"type":26,"value":16079},"The problem QPE solves",{"type":21,"tag":22,"props":16081,"children":16082},{},[16083],{"type":26,"value":16084},"Given a unitary U and an eigenstate |ψ⟩ satisfying",{"type":21,"tag":2310,"props":16086,"children":16088},{"code":16087},"U|ψ⟩ = e^{2πiθ} |ψ⟩\n",[16089],{"type":21,"tag":2080,"props":16090,"children":16091},{"__ignoreMap":7},[16092],{"type":26,"value":16087},{"type":21,"tag":22,"props":16094,"children":16095},{},[16096],{"type":26,"value":16097},"estimate θ ∈ [0, 1).",{"type":21,"tag":22,"props":16099,"children":16100},{},[16101,16103,16108],{"type":26,"value":16102},"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":2054,"props":16104,"children":16105},{},[16106],{"type":26,"value":16107},"enormous numbers of questions are secretly eigenvalue questions",{"type":26,"value":12417},{"type":21,"tag":3118,"props":16110,"children":16111},{},[16112,16122,16132],{"type":21,"tag":3122,"props":16113,"children":16114},{},[16115,16120],{"type":21,"tag":180,"props":16116,"children":16117},{},[16118],{"type":26,"value":16119},"What is a molecule's ground-state energy?",{"type":26,"value":16121}," Build U = e^{-iHt} for the molecular Hamiltonian H. Its eigenphases are the energy levels. Estimating θ estimates the energy.",{"type":21,"tag":3122,"props":16123,"children":16124},{},[16125,16130],{"type":21,"tag":180,"props":16126,"children":16127},{},[16128],{"type":26,"value":16129},"What is the order of a mod N?",{"type":26,"value":16131}," 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":3122,"props":16133,"children":16134},{},[16135,16140,16142,16147],{"type":21,"tag":180,"props":16136,"children":16137},{},[16138],{"type":26,"value":16139},"How many solutions does an oracle mark?",{"type":26,"value":16141}," 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":29,"props":16143,"children":16144},{"href":7144},[16145],{"type":26,"value":16146},"Grover tutorial",{"type":26,"value":802},{"type":21,"tag":22,"props":16149,"children":16150},{},[16151],{"type":26,"value":16152},"One primitive, three flagship algorithms. That's why \"estimate an eigenphase\" is worth a dedicated circuit.",{"type":21,"tag":22,"props":16154,"children":16155},{},[16156,16158,16163],{"type":26,"value":16157},"Note the precondition, which people gloss over: you need to ",{"type":21,"tag":2054,"props":16159,"children":16160},{},[16161],{"type":26,"value":16162},"have",{"type":26,"value":16164}," 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":49,"props":16166,"children":16168},{"id":16167},"phase-kickback-the-key-insight",[16169],{"type":26,"value":16170},"Phase kickback: the key insight",{"type":21,"tag":22,"props":16172,"children":16173},{},[16174],{"type":26,"value":16175},"Here's the thing that makes QPE work, and it's worth slowing down for.",{"type":21,"tag":22,"props":16177,"children":16178},{},[16179,16181,16185],{"type":26,"value":16180},"A controlled-U applied to a control ",{"type":21,"tag":29,"props":16182,"children":16183},{"href":1200},[16184],{"type":26,"value":2782},{"type":26,"value":16186}," in state |1⟩ and a target in the eigenstate |ψ⟩ gives:",{"type":21,"tag":2310,"props":16188,"children":16190},{"code":16189},"CU |1⟩|ψ⟩ = |1⟩ ⊗ U|ψ⟩ = |1⟩ ⊗ e^{2πiθ}|ψ⟩ = e^{2πiθ} |1⟩|ψ⟩\n",[16191],{"type":21,"tag":2080,"props":16192,"children":16193},{"__ignoreMap":7},[16194],{"type":26,"value":16189},{"type":21,"tag":22,"props":16196,"children":16197},{},[16198,16200,16205,16207,16211,16213,16217],{"type":26,"value":16199},"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":2054,"props":16201,"children":16202},{},[16203],{"type":26,"value":16204},"relative",{"type":26,"value":16206}," phase on the control qubit. Put the control in ",{"type":21,"tag":29,"props":16208,"children":16209},{"href":8853},[16210],{"type":26,"value":8856},{"type":26,"value":16212}," with a ",{"type":21,"tag":29,"props":16214,"children":16215},{"href":7255},[16216],{"type":26,"value":11706},{"type":26,"value":16218}," and you get:",{"type":21,"tag":2310,"props":16220,"children":16222},{"code":16221},"CU (|0⟩+|1⟩)\u002F√2 ⊗ |ψ⟩ = (|0⟩ + e^{2πiθ}|1⟩)\u002F√2 ⊗ |ψ⟩\n",[16223],{"type":21,"tag":2080,"props":16224,"children":16225},{"__ignoreMap":7},[16226],{"type":26,"value":16221},{"type":21,"tag":22,"props":16228,"children":16229},{},[16230,16235],{"type":21,"tag":180,"props":16231,"children":16232},{},[16233],{"type":26,"value":16234},"The phase kicked back from the target onto the control.",{"type":26,"value":16236}," 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":16238,"children":16239},{},[16240],{"type":26,"value":16241},"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":2310,"props":16243,"children":16245},{"code":16244},"(1\u002F√N) Σ_{x=0}^{N-1} e^{2πi·x·θ} |x⟩\n",[16246],{"type":21,"tag":2080,"props":16247,"children":16248},{"__ignoreMap":7},[16249],{"type":26,"value":16244},{"type":21,"tag":22,"props":16251,"children":16252},{},[16253,16255,16261,16263,16268],{"type":26,"value":16254},"Stare at that and compare it to the QFT formula from the previous post: ",{"type":21,"tag":2080,"props":16256,"children":16258},{"className":16257},[],[16259],{"type":26,"value":16260},"QFT|j⟩ = (1\u002F√N) Σ_x e^{2πi·jx\u002FN}|x⟩",{"type":26,"value":16262},". They are the ",{"type":21,"tag":2054,"props":16264,"children":16265},{},[16266],{"type":26,"value":16267},"same state",{"type":26,"value":16269},", with j\u002FN = θ. The counting register is holding the QFT of the number j = Nθ.",{"type":21,"tag":49,"props":16271,"children":16273},{"id":16272},"why-the-inverse-qft",[16274],{"type":26,"value":16275},"Why the inverse QFT",{"type":21,"tag":22,"props":16277,"children":16278},{},[16279,16281,16285],{"type":26,"value":16280},"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":29,"props":16282,"children":16283},{"href":7420},[16284],{"type":26,"value":11100},{"type":26,"value":16286},". Measure now and you get uniform noise.",{"type":21,"tag":22,"props":16288,"children":16289},{},[16290],{"type":26,"value":16291},"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":16293,"children":16294},{},[16295,16297,16301],{"type":26,"value":16296},"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":29,"props":16298,"children":16299},{"href":8047},[16300],{"type":26,"value":8050},{"type":26,"value":802},{"type":21,"tag":22,"props":16303,"children":16304},{},[16305],{"type":26,"value":16306},"The full recipe:",{"type":21,"tag":7007,"props":16308,"children":16309},{},[16310,16315,16320,16325,16330],{"type":21,"tag":3122,"props":16311,"children":16312},{},[16313],{"type":26,"value":16314},"n counting qubits + enough qubits to hold |ψ⟩.",{"type":21,"tag":3122,"props":16316,"children":16317},{},[16318],{"type":26,"value":16319},"Hadamard the counting register.",{"type":21,"tag":3122,"props":16321,"children":16322},{},[16323],{"type":26,"value":16324},"For k = 0…n−1: apply controlled-U^(2^k) from counting qubit k onto the eigenstate register.",{"type":21,"tag":3122,"props":16326,"children":16327},{},[16328],{"type":26,"value":16329},"Apply the inverse QFT to the counting register.",{"type":21,"tag":3122,"props":16331,"children":16332},{},[16333],{"type":26,"value":16334},"Measure the counting register. The result, read as a binary fraction, is θ.",{"type":21,"tag":49,"props":16336,"children":16337},{"id":11765},[16338],{"type":26,"value":11768},{"type":21,"tag":22,"props":16340,"children":16341},{},[16342,16344,16350,16352,16358,16360,16365,16367,16373],{"type":26,"value":16343},"Simplest possible U with a known answer: the phase gate ",{"type":21,"tag":2080,"props":16345,"children":16347},{"className":16346},[],[16348],{"type":26,"value":16349},"P(λ)",{"type":26,"value":16351},", 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":2080,"props":16353,"children":16355},{"className":16354},[],[16356],{"type":26,"value":16357},"qft",{"type":26,"value":16359}," function from the ",{"type":21,"tag":29,"props":16361,"children":16362},{"href":11525},[16363],{"type":26,"value":16364},"previous post",{"type":26,"value":16366}," and simply call ",{"type":21,"tag":2080,"props":16368,"children":16370},{"className":16369},[],[16371],{"type":26,"value":16372},".inverse()",{"type":26,"value":16374}," on it.",{"type":21,"tag":2310,"props":16376,"children":16378},{"code":16377,"language":3190,"meta":7,"className":3188,"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",[16379],{"type":21,"tag":2080,"props":16380,"children":16381},{"__ignoreMap":7},[16382,16401,16420,16439,16446,16453,16468,16491,16502,16517,16524,16547,16578,16586,16597,16604,16611,16626,16657,16664,16705,16732,16743,16750,16757,16774,16782,16811,16832,16845,16852,16881,16928,16935,16976,17000,17011,17018,17025,17040,17079,17110,17117,17171,17217],{"type":21,"tag":2320,"props":16383,"children":16384},{"class":2322,"line":2323},[16385,16389,16393,16397],{"type":21,"tag":2320,"props":16386,"children":16387},{"style":3200},[16388],{"type":26,"value":3213},{"type":21,"tag":2320,"props":16390,"children":16391},{"style":2327},[16392],{"type":26,"value":4273},{"type":21,"tag":2320,"props":16394,"children":16395},{"style":3200},[16396],{"type":26,"value":4278},{"type":21,"tag":2320,"props":16398,"children":16399},{"style":2327},[16400],{"type":26,"value":4283},{"type":21,"tag":2320,"props":16402,"children":16403},{"class":2322,"line":150},[16404,16408,16412,16416],{"type":21,"tag":2320,"props":16405,"children":16406},{"style":3200},[16407],{"type":26,"value":3203},{"type":21,"tag":2320,"props":16409,"children":16410},{"style":2327},[16411],{"type":26,"value":4295},{"type":21,"tag":2320,"props":16413,"children":16414},{"style":3200},[16415],{"type":26,"value":3213},{"type":21,"tag":2320,"props":16417,"children":16418},{"style":2327},[16419],{"type":26,"value":4304},{"type":21,"tag":2320,"props":16421,"children":16422},{"class":2322,"line":2341},[16423,16427,16431,16435],{"type":21,"tag":2320,"props":16424,"children":16425},{"style":3200},[16426],{"type":26,"value":3203},{"type":21,"tag":2320,"props":16428,"children":16429},{"style":2327},[16430],{"type":26,"value":4316},{"type":21,"tag":2320,"props":16432,"children":16433},{"style":3200},[16434],{"type":26,"value":3213},{"type":21,"tag":2320,"props":16436,"children":16437},{"style":2327},[16438],{"type":26,"value":4325},{"type":21,"tag":2320,"props":16440,"children":16441},{"class":2322,"line":2403},[16442],{"type":21,"tag":2320,"props":16443,"children":16444},{"emptyLinePlaceholder":3224},[16445],{"type":26,"value":3227},{"type":21,"tag":2320,"props":16447,"children":16448},{"class":2322,"line":2427},[16449],{"type":21,"tag":2320,"props":16450,"children":16451},{"emptyLinePlaceholder":3224},[16452],{"type":26,"value":3227},{"type":21,"tag":2320,"props":16454,"children":16455},{"class":2322,"line":854},[16456,16460,16464],{"type":21,"tag":2320,"props":16457,"children":16458},{"style":3200},[16459],{"type":26,"value":4361},{"type":21,"tag":2320,"props":16461,"children":16462},{"style":4364},[16463],{"type":26,"value":11925},{"type":21,"tag":2320,"props":16465,"children":16466},{"style":2327},[16467],{"type":26,"value":11930},{"type":21,"tag":2320,"props":16469,"children":16470},{"class":2322,"line":171},[16471,16475,16479,16483,16487],{"type":21,"tag":2320,"props":16472,"children":16473},{"style":3200},[16474],{"type":26,"value":11946},{"type":21,"tag":2320,"props":16476,"children":16477},{"style":2327},[16478],{"type":26,"value":11951},{"type":21,"tag":2320,"props":16480,"children":16481},{"style":3200},[16482],{"type":26,"value":4909},{"type":21,"tag":2320,"props":16484,"children":16485},{"style":2345},[16486],{"type":26,"value":11960},{"type":21,"tag":2320,"props":16488,"children":16489},{"style":2327},[16490],{"type":26,"value":4919},{"type":21,"tag":2320,"props":16492,"children":16493},{"class":2322,"line":16},[16494,16498],{"type":21,"tag":2320,"props":16495,"children":16496},{"style":3200},[16497],{"type":26,"value":11972},{"type":21,"tag":2320,"props":16499,"children":16500},{"style":2327},[16501],{"type":26,"value":11977},{"type":21,"tag":2320,"props":16503,"children":16504},{"class":2322,"line":1370},[16505,16509,16513],{"type":21,"tag":2320,"props":16506,"children":16507},{"style":2327},[16508],{"type":26,"value":11985},{"type":21,"tag":2320,"props":16510,"children":16511},{"style":3200},[16512],{"type":26,"value":11990},{"type":21,"tag":2320,"props":16514,"children":16515},{"style":2345},[16516],{"type":26,"value":12793},{"type":21,"tag":2320,"props":16518,"children":16519},{"class":2322,"line":3446},[16520],{"type":21,"tag":2320,"props":16521,"children":16522},{"style":2327},[16523],{"type":26,"value":12007},{"type":21,"tag":2320,"props":16525,"children":16526},{"class":2322,"line":3456},[16527,16531,16535,16539,16543],{"type":21,"tag":2320,"props":16528,"children":16529},{"style":3200},[16530],{"type":26,"value":4740},{"type":21,"tag":2320,"props":16532,"children":16533},{"style":2327},[16534],{"type":26,"value":12019},{"type":21,"tag":2320,"props":16536,"children":16537},{"style":3200},[16538],{"type":26,"value":3503},{"type":21,"tag":2320,"props":16540,"children":16541},{"style":2345},[16542],{"type":26,"value":3508},{"type":21,"tag":2320,"props":16544,"children":16545},{"style":2327},[16546],{"type":26,"value":7841},{"type":21,"tag":2320,"props":16548,"children":16549},{"class":2322,"line":474},[16550,16554,16558,16562,16566,16570,16574],{"type":21,"tag":2320,"props":16551,"children":16552},{"style":2327},[16553],{"type":26,"value":12047},{"type":21,"tag":2320,"props":16555,"children":16556},{"style":3200},[16557],{"type":26,"value":2175},{"type":21,"tag":2320,"props":16559,"children":16560},{"style":2345},[16561],{"type":26,"value":6384},{"type":21,"tag":2320,"props":16563,"children":16564},{"style":3200},[16565],{"type":26,"value":8309},{"type":21,"tag":2320,"props":16567,"children":16568},{"style":2327},[16569],{"type":26,"value":12064},{"type":21,"tag":2320,"props":16571,"children":16572},{"style":3200},[16573],{"type":26,"value":4848},{"type":21,"tag":2320,"props":16575,"children":16576},{"style":2327},[16577],{"type":26,"value":12073},{"type":21,"tag":2320,"props":16579,"children":16580},{"class":2322,"line":3516},[16581],{"type":21,"tag":2320,"props":16582,"children":16583},{"style":2327},[16584],{"type":26,"value":16585},"    qft_rotations(circuit, n)\n",{"type":21,"tag":2320,"props":16587,"children":16588},{"class":2322,"line":3564},[16589,16593],{"type":21,"tag":2320,"props":16590,"children":16591},{"style":3200},[16592],{"type":26,"value":4586},{"type":21,"tag":2320,"props":16594,"children":16595},{"style":2327},[16596],{"type":26,"value":11977},{"type":21,"tag":2320,"props":16598,"children":16599},{"class":2322,"line":3606},[16600],{"type":21,"tag":2320,"props":16601,"children":16602},{"emptyLinePlaceholder":3224},[16603],{"type":26,"value":3227},{"type":21,"tag":2320,"props":16605,"children":16606},{"class":2322,"line":4631},[16607],{"type":21,"tag":2320,"props":16608,"children":16609},{"emptyLinePlaceholder":3224},[16610],{"type":26,"value":3227},{"type":21,"tag":2320,"props":16612,"children":16613},{"class":2322,"line":4650},[16614,16618,16622],{"type":21,"tag":2320,"props":16615,"children":16616},{"style":3200},[16617],{"type":26,"value":4361},{"type":21,"tag":2320,"props":16619,"children":16620},{"style":4364},[16621],{"type":26,"value":12235},{"type":21,"tag":2320,"props":16623,"children":16624},{"style":2327},[16625],{"type":26,"value":7841},{"type":21,"tag":2320,"props":16627,"children":16628},{"class":2322,"line":4658},[16629,16633,16637,16641,16645,16649,16653],{"type":21,"tag":2320,"props":16630,"children":16631},{"style":2327},[16632],{"type":26,"value":7497},{"type":21,"tag":2320,"props":16634,"children":16635},{"style":3200},[16636],{"type":26,"value":3240},{"type":21,"tag":2320,"props":16638,"children":16639},{"style":2327},[16640],{"type":26,"value":7506},{"type":21,"tag":2320,"props":16642,"children":16643},{"style":3265},[16644],{"type":26,"value":7511},{"type":21,"tag":2320,"props":16646,"children":16647},{"style":3200},[16648],{"type":26,"value":3240},{"type":21,"tag":2320,"props":16650,"children":16651},{"style":2356},[16652],{"type":26,"value":12267},{"type":21,"tag":2320,"props":16654,"children":16655},{"style":2327},[16656],{"type":26,"value":3300},{"type":21,"tag":2320,"props":16658,"children":16659},{"class":2322,"line":4689},[16660],{"type":21,"tag":2320,"props":16661,"children":16662},{"style":2327},[16663],{"type":26,"value":12279},{"type":21,"tag":2320,"props":16665,"children":16666},{"class":2322,"line":4734},[16667,16671,16675,16679,16683,16687,16691,16695,16700],{"type":21,"tag":2320,"props":16668,"children":16669},{"style":3200},[16670],{"type":26,"value":4740},{"type":21,"tag":2320,"props":16672,"children":16673},{"style":2327},[16674],{"type":26,"value":3498},{"type":21,"tag":2320,"props":16676,"children":16677},{"style":3200},[16678],{"type":26,"value":3503},{"type":21,"tag":2320,"props":16680,"children":16681},{"style":2345},[16682],{"type":26,"value":3508},{"type":21,"tag":2320,"props":16684,"children":16685},{"style":2327},[16686],{"type":26,"value":7669},{"type":21,"tag":2320,"props":16688,"children":16689},{"style":3200},[16690],{"type":26,"value":6108},{"type":21,"tag":2320,"props":16692,"children":16693},{"style":2345},[16694],{"type":26,"value":6384},{"type":21,"tag":2320,"props":16696,"children":16697},{"style":2327},[16698],{"type":26,"value":16699},"):          ",{"type":21,"tag":2320,"props":16701,"children":16702},{"style":3450},[16703],{"type":26,"value":16704},"# the swaps matter here, see below\n",{"type":21,"tag":2320,"props":16706,"children":16707},{"class":2322,"line":4773},[16708,16712,16716,16720,16724,16728],{"type":21,"tag":2320,"props":16709,"children":16710},{"style":2327},[16711],{"type":26,"value":13571},{"type":21,"tag":2320,"props":16713,"children":16714},{"style":3200},[16715],{"type":26,"value":4848},{"type":21,"tag":2320,"props":16717,"children":16718},{"style":2327},[16719],{"type":26,"value":3498},{"type":21,"tag":2320,"props":16721,"children":16722},{"style":3200},[16723],{"type":26,"value":4848},{"type":21,"tag":2320,"props":16725,"children":16726},{"style":2345},[16727],{"type":26,"value":6099},{"type":21,"tag":2320,"props":16729,"children":16730},{"style":2327},[16731],{"type":26,"value":3300},{"type":21,"tag":2320,"props":16733,"children":16734},{"class":2322,"line":4791},[16735,16739],{"type":21,"tag":2320,"props":16736,"children":16737},{"style":3200},[16738],{"type":26,"value":4586},{"type":21,"tag":2320,"props":16740,"children":16741},{"style":2327},[16742],{"type":26,"value":7778},{"type":21,"tag":2320,"props":16744,"children":16745},{"class":2322,"line":4865},[16746],{"type":21,"tag":2320,"props":16747,"children":16748},{"emptyLinePlaceholder":3224},[16749],{"type":26,"value":3227},{"type":21,"tag":2320,"props":16751,"children":16752},{"class":2322,"line":4893},[16753],{"type":21,"tag":2320,"props":16754,"children":16755},{"emptyLinePlaceholder":3224},[16756],{"type":26,"value":3227},{"type":21,"tag":2320,"props":16758,"children":16759},{"class":2322,"line":4922},[16760,16764,16769],{"type":21,"tag":2320,"props":16761,"children":16762},{"style":3200},[16763],{"type":26,"value":4361},{"type":21,"tag":2320,"props":16765,"children":16766},{"style":4364},[16767],{"type":26,"value":16768}," qpe_phase_gate",{"type":21,"tag":2320,"props":16770,"children":16771},{"style":2327},[16772],{"type":26,"value":16773},"(n_count, theta):\n",{"type":21,"tag":2320,"props":16775,"children":16776},{"class":2322,"line":4931},[16777],{"type":21,"tag":2320,"props":16778,"children":16779},{"style":2356},[16780],{"type":26,"value":16781},"    \"\"\"QPE for U = P(2*pi*theta), whose eigenstate is |1>.\"\"\"\n",{"type":21,"tag":2320,"props":16783,"children":16784},{"class":2322,"line":4959},[16785,16789,16793,16798,16802,16806],{"type":21,"tag":2320,"props":16786,"children":16787},{"style":2327},[16788],{"type":26,"value":7497},{"type":21,"tag":2320,"props":16790,"children":16791},{"style":3200},[16792],{"type":26,"value":3240},{"type":21,"tag":2320,"props":16794,"children":16795},{"style":2327},[16796],{"type":26,"value":16797}," QuantumCircuit(n_count ",{"type":21,"tag":2320,"props":16799,"children":16800},{"style":3200},[16801],{"type":26,"value":6528},{"type":21,"tag":2320,"props":16803,"children":16804},{"style":2345},[16805],{"type":26,"value":6099},{"type":21,"tag":2320,"props":16807,"children":16808},{"style":2327},[16809],{"type":26,"value":16810},", n_count)\n",{"type":21,"tag":2320,"props":16812,"children":16813},{"class":2322,"line":4990},[16814,16818,16822,16827],{"type":21,"tag":2320,"props":16815,"children":16816},{"style":2327},[16817],{"type":26,"value":7889},{"type":21,"tag":2320,"props":16819,"children":16820},{"style":2345},[16821],{"type":26,"value":4942},{"type":21,"tag":2320,"props":16823,"children":16824},{"style":2327},[16825],{"type":26,"value":16826},"(n_count))             ",{"type":21,"tag":2320,"props":16828,"children":16829},{"style":3450},[16830],{"type":26,"value":16831},"# counting register in superposition\n",{"type":21,"tag":2320,"props":16833,"children":16834},{"class":2322,"line":5012},[16835,16840],{"type":21,"tag":2320,"props":16836,"children":16837},{"style":2327},[16838],{"type":26,"value":16839},"    qc.x(n_count)                    ",{"type":21,"tag":2320,"props":16841,"children":16842},{"style":3450},[16843],{"type":26,"value":16844},"# prepare the eigenstate |1>\n",{"type":21,"tag":2320,"props":16846,"children":16847},{"class":2322,"line":5058},[16848],{"type":21,"tag":2320,"props":16849,"children":16850},{"emptyLinePlaceholder":3224},[16851],{"type":26,"value":3227},{"type":21,"tag":2320,"props":16853,"children":16854},{"class":2322,"line":5071},[16855,16859,16863,16867,16871,16876],{"type":21,"tag":2320,"props":16856,"children":16857},{"style":3200},[16858],{"type":26,"value":4740},{"type":21,"tag":2320,"props":16860,"children":16861},{"style":2327},[16862],{"type":26,"value":13493},{"type":21,"tag":2320,"props":16864,"children":16865},{"style":3200},[16866],{"type":26,"value":3503},{"type":21,"tag":2320,"props":16868,"children":16869},{"style":2345},[16870],{"type":26,"value":3508},{"type":21,"tag":2320,"props":16872,"children":16873},{"style":2327},[16874],{"type":26,"value":16875},"(n_count):         ",{"type":21,"tag":2320,"props":16877,"children":16878},{"style":3450},[16879],{"type":26,"value":16880},"# controlled-U^(2^k) = CP(2*pi*theta*2^k)\n",{"type":21,"tag":2320,"props":16882,"children":16883},{"class":2322,"line":5079},[16884,16889,16893,16897,16902,16906,16911,16915,16919,16923],{"type":21,"tag":2320,"props":16885,"children":16886},{"style":2327},[16887],{"type":26,"value":16888},"        qc.cp(",{"type":21,"tag":2320,"props":16890,"children":16891},{"style":2345},[16892],{"type":26,"value":2419},{"type":21,"tag":2320,"props":16894,"children":16895},{"style":3200},[16896],{"type":26,"value":8345},{"type":21,"tag":2320,"props":16898,"children":16899},{"style":2327},[16900],{"type":26,"value":16901}," np.pi ",{"type":21,"tag":2320,"props":16903,"children":16904},{"style":3200},[16905],{"type":26,"value":6393},{"type":21,"tag":2320,"props":16907,"children":16908},{"style":2327},[16909],{"type":26,"value":16910}," theta ",{"type":21,"tag":2320,"props":16912,"children":16913},{"style":3200},[16914],{"type":26,"value":6393},{"type":21,"tag":2320,"props":16916,"children":16917},{"style":2345},[16918],{"type":26,"value":6384},{"type":21,"tag":2320,"props":16920,"children":16921},{"style":3200},[16922],{"type":26,"value":8309},{"type":21,"tag":2320,"props":16924,"children":16925},{"style":2327},[16926],{"type":26,"value":16927}," k, k, n_count)\n",{"type":21,"tag":2320,"props":16929,"children":16930},{"class":2322,"line":5097},[16931],{"type":21,"tag":2320,"props":16932,"children":16933},{"emptyLinePlaceholder":3224},[16934],{"type":26,"value":3227},{"type":21,"tag":2320,"props":16936,"children":16937},{"class":2322,"line":5115},[16938,16943,16947,16951,16955,16960,16964,16968,16972],{"type":21,"tag":2320,"props":16939,"children":16940},{"style":2327},[16941],{"type":26,"value":16942},"    qc.compose(qft(n_count).inverse(), ",{"type":21,"tag":2320,"props":16944,"children":16945},{"style":3265},[16946],{"type":26,"value":1203},{"type":21,"tag":2320,"props":16948,"children":16949},{"style":3200},[16950],{"type":26,"value":3240},{"type":21,"tag":2320,"props":16952,"children":16953},{"style":2345},[16954],{"type":26,"value":4942},{"type":21,"tag":2320,"props":16956,"children":16957},{"style":2327},[16958],{"type":26,"value":16959},"(n_count), ",{"type":21,"tag":2320,"props":16961,"children":16962},{"style":3265},[16963],{"type":26,"value":8199},{"type":21,"tag":2320,"props":16965,"children":16966},{"style":3200},[16967],{"type":26,"value":3240},{"type":21,"tag":2320,"props":16969,"children":16970},{"style":2345},[16971],{"type":26,"value":3277},{"type":21,"tag":2320,"props":16973,"children":16974},{"style":2327},[16975],{"type":26,"value":3300},{"type":21,"tag":2320,"props":16977,"children":16978},{"class":2322,"line":5123},[16979,16983,16987,16991,16995],{"type":21,"tag":2320,"props":16980,"children":16981},{"style":2327},[16982],{"type":26,"value":8254},{"type":21,"tag":2320,"props":16984,"children":16985},{"style":2345},[16986],{"type":26,"value":4942},{"type":21,"tag":2320,"props":16988,"children":16989},{"style":2327},[16990],{"type":26,"value":16959},{"type":21,"tag":2320,"props":16992,"children":16993},{"style":2345},[16994],{"type":26,"value":4942},{"type":21,"tag":2320,"props":16996,"children":16997},{"style":2327},[16998],{"type":26,"value":16999},"(n_count))\n",{"type":21,"tag":2320,"props":17001,"children":17002},{"class":2322,"line":5157},[17003,17007],{"type":21,"tag":2320,"props":17004,"children":17005},{"style":3200},[17006],{"type":26,"value":4586},{"type":21,"tag":2320,"props":17008,"children":17009},{"style":2327},[17010],{"type":26,"value":7778},{"type":21,"tag":2320,"props":17012,"children":17013},{"class":2322,"line":5175},[17014],{"type":21,"tag":2320,"props":17015,"children":17016},{"emptyLinePlaceholder":3224},[17017],{"type":26,"value":3227},{"type":21,"tag":2320,"props":17019,"children":17020},{"class":2322,"line":5200},[17021],{"type":21,"tag":2320,"props":17022,"children":17023},{"emptyLinePlaceholder":3224},[17024],{"type":26,"value":3227},{"type":21,"tag":2320,"props":17026,"children":17027},{"class":2322,"line":5242},[17028,17032,17036],{"type":21,"tag":2320,"props":17029,"children":17030},{"style":2327},[17031],{"type":26,"value":8424},{"type":21,"tag":2320,"props":17033,"children":17034},{"style":3200},[17035],{"type":26,"value":3240},{"type":21,"tag":2320,"props":17037,"children":17038},{"style":2327},[17039],{"type":26,"value":8433},{"type":21,"tag":2320,"props":17041,"children":17042},{"class":2322,"line":5250},[17043,17047,17051,17056,17060,17064,17069,17074],{"type":21,"tag":2320,"props":17044,"children":17045},{"style":2327},[17046],{"type":26,"value":7382},{"type":21,"tag":2320,"props":17048,"children":17049},{"style":3200},[17050],{"type":26,"value":3240},{"type":21,"tag":2320,"props":17052,"children":17053},{"style":2327},[17054],{"type":26,"value":17055}," qpe_phase_gate(",{"type":21,"tag":2320,"props":17057,"children":17058},{"style":2345},[17059],{"type":26,"value":5532},{"type":21,"tag":2320,"props":17061,"children":17062},{"style":2327},[17063],{"type":26,"value":1315},{"type":21,"tag":2320,"props":17065,"children":17066},{"style":2345},[17067],{"type":26,"value":17068},"0.625",{"type":21,"tag":2320,"props":17070,"children":17071},{"style":2327},[17072],{"type":26,"value":17073},")        ",{"type":21,"tag":2320,"props":17075,"children":17076},{"style":3450},[17077],{"type":26,"value":17078},"# theta = 0.625 = 0.1010 in binary\n",{"type":21,"tag":2320,"props":17080,"children":17081},{"class":2322,"line":5285},[17082,17086,17090,17094,17098,17102,17106],{"type":21,"tag":2320,"props":17083,"children":17084},{"style":2327},[17085],{"type":26,"value":8457},{"type":21,"tag":2320,"props":17087,"children":17088},{"style":3200},[17089],{"type":26,"value":3240},{"type":21,"tag":2320,"props":17091,"children":17092},{"style":2327},[17093],{"type":26,"value":8466},{"type":21,"tag":2320,"props":17095,"children":17096},{"style":3265},[17097],{"type":26,"value":4123},{"type":21,"tag":2320,"props":17099,"children":17100},{"style":3200},[17101],{"type":26,"value":3240},{"type":21,"tag":2320,"props":17103,"children":17104},{"style":2345},[17105],{"type":26,"value":8479},{"type":21,"tag":2320,"props":17107,"children":17108},{"style":2327},[17109],{"type":26,"value":5282},{"type":21,"tag":2320,"props":17111,"children":17112},{"class":2322,"line":5401},[17113],{"type":21,"tag":2320,"props":17114,"children":17115},{"emptyLinePlaceholder":3224},[17116],{"type":26,"value":3227},{"type":21,"tag":2320,"props":17118,"children":17119},{"class":2322,"line":5409},[17120,17124,17129,17133,17138,17142,17146,17150,17154,17158,17162,17166],{"type":21,"tag":2320,"props":17121,"children":17122},{"style":3200},[17123],{"type":26,"value":3493},{"type":21,"tag":2320,"props":17125,"children":17126},{"style":2327},[17127],{"type":26,"value":17128}," bits, c ",{"type":21,"tag":2320,"props":17130,"children":17131},{"style":3200},[17132],{"type":26,"value":3503},{"type":21,"tag":2320,"props":17134,"children":17135},{"style":2345},[17136],{"type":26,"value":17137}," sorted",{"type":21,"tag":2320,"props":17139,"children":17140},{"style":2327},[17141],{"type":26,"value":13162},{"type":21,"tag":2320,"props":17143,"children":17144},{"style":3265},[17145],{"type":26,"value":3541},{"type":21,"tag":2320,"props":17147,"children":17148},{"style":3200},[17149],{"type":26,"value":3546},{"type":21,"tag":2320,"props":17151,"children":17152},{"style":2327},[17153],{"type":26,"value":13175},{"type":21,"tag":2320,"props":17155,"children":17156},{"style":3200},[17157],{"type":26,"value":4848},{"type":21,"tag":2320,"props":17159,"children":17160},{"style":2327},[17161],{"type":26,"value":13184},{"type":21,"tag":2320,"props":17163,"children":17164},{"style":2345},[17165],{"type":26,"value":3556},{"type":21,"tag":2320,"props":17167,"children":17168},{"style":2327},[17169],{"type":26,"value":17170},"]):\n",{"type":21,"tag":2320,"props":17172,"children":17173},{"class":2322,"line":5454},[17174,17179,17183,17188,17193,17197,17201,17205,17209,17213],{"type":21,"tag":2320,"props":17175,"children":17176},{"style":2327},[17177],{"type":26,"value":17178},"    est ",{"type":21,"tag":2320,"props":17180,"children":17181},{"style":3200},[17182],{"type":26,"value":3240},{"type":21,"tag":2320,"props":17184,"children":17185},{"style":2345},[17186],{"type":26,"value":17187}," int",{"type":21,"tag":2320,"props":17189,"children":17190},{"style":2327},[17191],{"type":26,"value":17192},"(bits, ",{"type":21,"tag":2320,"props":17194,"children":17195},{"style":2345},[17196],{"type":26,"value":2419},{"type":21,"tag":2320,"props":17198,"children":17199},{"style":2327},[17200],{"type":26,"value":5347},{"type":21,"tag":2320,"props":17202,"children":17203},{"style":3200},[17204],{"type":26,"value":2175},{"type":21,"tag":2320,"props":17206,"children":17207},{"style":2345},[17208],{"type":26,"value":6384},{"type":21,"tag":2320,"props":17210,"children":17211},{"style":3200},[17212],{"type":26,"value":8309},{"type":21,"tag":2320,"props":17214,"children":17215},{"style":2345},[17216],{"type":26,"value":12467},{"type":21,"tag":2320,"props":17218,"children":17219},{"class":2322,"line":5472},[17220,17225,17229,17233,17237,17241,17246,17250,17255,17260,17264,17268,17273,17277,17282,17286,17291,17295,17299,17304,17308,17313,17317,17321],{"type":21,"tag":2320,"props":17221,"children":17222},{"style":2345},[17223],{"type":26,"value":17224},"    print",{"type":21,"tag":2320,"props":17226,"children":17227},{"style":2327},[17228],{"type":26,"value":3320},{"type":21,"tag":2320,"props":17230,"children":17231},{"style":3200},[17232],{"type":26,"value":3325},{"type":21,"tag":2320,"props":17234,"children":17235},{"style":2356},[17236],{"type":26,"value":3350},{"type":21,"tag":2320,"props":17238,"children":17239},{"style":2345},[17240],{"type":26,"value":3335},{"type":21,"tag":2320,"props":17242,"children":17243},{"style":2327},[17244],{"type":26,"value":17245},"bits",{"type":21,"tag":2320,"props":17247,"children":17248},{"style":2345},[17249],{"type":26,"value":3345},{"type":21,"tag":2320,"props":17251,"children":17252},{"style":2356},[17253],{"type":26,"value":17254}," -> theta = ",{"type":21,"tag":2320,"props":17256,"children":17257},{"style":2345},[17258],{"type":26,"value":17259},"{int",{"type":21,"tag":2320,"props":17261,"children":17262},{"style":2327},[17263],{"type":26,"value":17192},{"type":21,"tag":2320,"props":17265,"children":17266},{"style":2345},[17267],{"type":26,"value":2419},{"type":21,"tag":2320,"props":17269,"children":17270},{"style":2327},[17271],{"type":26,"value":17272},")",{"type":21,"tag":2320,"props":17274,"children":17275},{"style":2345},[17276],{"type":26,"value":3345},{"type":21,"tag":2320,"props":17278,"children":17279},{"style":2356},[17280],{"type":26,"value":17281},"\u002F16 = ",{"type":21,"tag":2320,"props":17283,"children":17284},{"style":2345},[17285],{"type":26,"value":3335},{"type":21,"tag":2320,"props":17287,"children":17288},{"style":2327},[17289],{"type":26,"value":17290},"est",{"type":21,"tag":2320,"props":17292,"children":17293},{"style":3200},[17294],{"type":26,"value":3647},{"type":21,"tag":2320,"props":17296,"children":17297},{"style":2345},[17298],{"type":26,"value":3345},{"type":21,"tag":2320,"props":17300,"children":17301},{"style":2356},[17302],{"type":26,"value":17303},"   counts = ",{"type":21,"tag":2320,"props":17305,"children":17306},{"style":2345},[17307],{"type":26,"value":3335},{"type":21,"tag":2320,"props":17309,"children":17310},{"style":2327},[17311],{"type":26,"value":17312},"c",{"type":21,"tag":2320,"props":17314,"children":17315},{"style":2345},[17316],{"type":26,"value":3345},{"type":21,"tag":2320,"props":17318,"children":17319},{"style":2356},[17320],{"type":26,"value":3350},{"type":21,"tag":2320,"props":17322,"children":17323},{"style":2327},[17324],{"type":26,"value":3300},{"type":21,"tag":22,"props":17326,"children":17327},{},[17328],{"type":26,"value":12385},{"type":21,"tag":2310,"props":17330,"children":17332},{"code":17331},"1010 -> theta = 10\u002F16 = 0.6250   counts = 4096\n",[17333],{"type":21,"tag":2080,"props":17334,"children":17335},{"__ignoreMap":7},[17336],{"type":26,"value":17331},{"type":21,"tag":22,"props":17338,"children":17339},{},[17340,17345],{"type":21,"tag":180,"props":17341,"children":17342},{},[17343],{"type":26,"value":17344},"4096 out of 4096 shots.",{"type":26,"value":17346}," θ = 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":2310,"props":17348,"children":17350},{"code":17349},"[('001', 4096)]\n",[17351],{"type":21,"tag":2080,"props":17352,"children":17353},{"__ignoreMap":7},[17354],{"type":26,"value":17349},{"type":21,"tag":22,"props":17356,"children":17357},{},[17358],{"type":26,"value":17359},"001 = 1, and 1\u002F8 = 0.125. Exact again.",{"type":21,"tag":17361,"props":17362,"children":17364},"h3",{"id":17363},"the-endianness-trap",[17365],{"type":26,"value":17366},"The endianness trap",{"type":21,"tag":22,"props":17368,"children":17369},{},[17370,17376,17378,17383,17385,17389,17391,17397],{"type":21,"tag":2080,"props":17371,"children":17373},{"className":17372},[],[17374],{"type":26,"value":17375},"int(bits, 2) \u002F 2**n",{"type":26,"value":17377}," worked above, and it is worth understanding ",{"type":21,"tag":2054,"props":17379,"children":17380},{},[17381],{"type":26,"value":17382},"why",{"type":26,"value":17384}," rather than copying it. Qiskit prints bitstrings with classical bit 0 on the ",{"type":21,"tag":180,"props":17386,"children":17387},{},[17388],{"type":26,"value":7788},{"type":26,"value":17390},", and our counting qubit 0 (the one that got the smallest rotation, ",{"type":21,"tag":2080,"props":17392,"children":17394},{"className":17393},[],[17395],{"type":26,"value":17396},"U^1",{"type":26,"value":17398},") 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":17400,"children":17401},{},[17402,17404,17410],{"type":26,"value":17403},"Drop the swaps from ",{"type":21,"tag":2080,"props":17405,"children":17407},{"className":17406},[],[17408],{"type":26,"value":17409},"qft()",{"type":26,"value":17411}," (a tempting \"optimization\", since they look cosmetic) and rerun the exact θ = 0.625 case. Real output over 2048 shots:",{"type":21,"tag":2310,"props":17413,"children":17415},{"code":17414},"{'1101': 1007, '0101': 470, '0001': 251, '0100': 80, '1100': 77,\n '0010': 66, '1110': 64, '0110': 16, '1010': 9, '1001': 8}\n",[17416],{"type":21,"tag":2080,"props":17417,"children":17418},{"__ignoreMap":7},[17419],{"type":26,"value":17414},{"type":21,"tag":22,"props":17421,"children":17422},{},[17423,17425,17431,17433,17438],{"type":26,"value":17424},"The correct answer ",{"type":21,"tag":2080,"props":17426,"children":17428},{"className":17427},[],[17429],{"type":26,"value":17430},"1010",{"type":26,"value":17432}," now gets ",{"type":21,"tag":180,"props":17434,"children":17435},{},[17436],{"type":26,"value":17437},"9 shots out of 2048",{"type":26,"value":17439},". 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":17441,"children":17442},{},[17443],{"type":26,"value":17444},"Always sanity-check a QPE implementation against a θ you already know before pointing it at one you don't.",{"type":21,"tag":49,"props":17446,"children":17448},{"id":17447},"when-θ-doesnt-fit-in-n-bits",[17449],{"type":26,"value":17450},"When θ doesn't fit in n bits",{"type":21,"tag":22,"props":17452,"children":17453},{},[17454],{"type":26,"value":17455},"Real eigenphases are not tidy binary fractions. Try θ = 0.3, which has an infinite binary expansion, with 4 counting qubits:",{"type":21,"tag":2310,"props":17457,"children":17459},{"code":17458,"language":3190,"meta":7,"className":3188,"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",[17460],{"type":21,"tag":2080,"props":17461,"children":17462},{"__ignoreMap":7},[17463,17494,17525,17586],{"type":21,"tag":2320,"props":17464,"children":17465},{"class":2322,"line":2323},[17466,17470,17474,17478,17482,17486,17490],{"type":21,"tag":2320,"props":17467,"children":17468},{"style":2327},[17469],{"type":26,"value":7382},{"type":21,"tag":2320,"props":17471,"children":17472},{"style":3200},[17473],{"type":26,"value":3240},{"type":21,"tag":2320,"props":17475,"children":17476},{"style":2327},[17477],{"type":26,"value":17055},{"type":21,"tag":2320,"props":17479,"children":17480},{"style":2345},[17481],{"type":26,"value":5532},{"type":21,"tag":2320,"props":17483,"children":17484},{"style":2327},[17485],{"type":26,"value":1315},{"type":21,"tag":2320,"props":17487,"children":17488},{"style":2345},[17489],{"type":26,"value":14741},{"type":21,"tag":2320,"props":17491,"children":17492},{"style":2327},[17493],{"type":26,"value":3300},{"type":21,"tag":2320,"props":17495,"children":17496},{"class":2322,"line":150},[17497,17501,17505,17509,17513,17517,17521],{"type":21,"tag":2320,"props":17498,"children":17499},{"style":2327},[17500],{"type":26,"value":8457},{"type":21,"tag":2320,"props":17502,"children":17503},{"style":3200},[17504],{"type":26,"value":3240},{"type":21,"tag":2320,"props":17506,"children":17507},{"style":2327},[17508],{"type":26,"value":8466},{"type":21,"tag":2320,"props":17510,"children":17511},{"style":3265},[17512],{"type":26,"value":4123},{"type":21,"tag":2320,"props":17514,"children":17515},{"style":3200},[17516],{"type":26,"value":3240},{"type":21,"tag":2320,"props":17518,"children":17519},{"style":2345},[17520],{"type":26,"value":8479},{"type":21,"tag":2320,"props":17522,"children":17523},{"style":2327},[17524],{"type":26,"value":5282},{"type":21,"tag":2320,"props":17526,"children":17527},{"class":2322,"line":2341},[17528,17532,17536,17540,17544,17548,17552,17556,17560,17564,17568,17572,17577,17581],{"type":21,"tag":2320,"props":17529,"children":17530},{"style":3200},[17531],{"type":26,"value":3493},{"type":21,"tag":2320,"props":17533,"children":17534},{"style":2327},[17535],{"type":26,"value":17128},{"type":21,"tag":2320,"props":17537,"children":17538},{"style":3200},[17539],{"type":26,"value":3503},{"type":21,"tag":2320,"props":17541,"children":17542},{"style":2345},[17543],{"type":26,"value":17137},{"type":21,"tag":2320,"props":17545,"children":17546},{"style":2327},[17547],{"type":26,"value":13162},{"type":21,"tag":2320,"props":17549,"children":17550},{"style":3265},[17551],{"type":26,"value":3541},{"type":21,"tag":2320,"props":17553,"children":17554},{"style":3200},[17555],{"type":26,"value":3546},{"type":21,"tag":2320,"props":17557,"children":17558},{"style":2327},[17559],{"type":26,"value":13175},{"type":21,"tag":2320,"props":17561,"children":17562},{"style":3200},[17563],{"type":26,"value":4848},{"type":21,"tag":2320,"props":17565,"children":17566},{"style":2327},[17567],{"type":26,"value":13184},{"type":21,"tag":2320,"props":17569,"children":17570},{"style":2345},[17571],{"type":26,"value":3556},{"type":21,"tag":2320,"props":17573,"children":17574},{"style":2327},[17575],{"type":26,"value":17576},"])[:",{"type":21,"tag":2320,"props":17578,"children":17579},{"style":2345},[17580],{"type":26,"value":13678},{"type":21,"tag":2320,"props":17582,"children":17583},{"style":2327},[17584],{"type":26,"value":17585},"]:\n",{"type":21,"tag":2320,"props":17587,"children":17588},{"class":2322,"line":2403},[17589,17593,17597,17601,17605,17609,17613,17617,17622,17626,17630,17634,17638,17642,17646,17650,17654,17658,17662,17666,17670,17675,17679,17684,17688,17692,17696],{"type":21,"tag":2320,"props":17590,"children":17591},{"style":2345},[17592],{"type":26,"value":17224},{"type":21,"tag":2320,"props":17594,"children":17595},{"style":2327},[17596],{"type":26,"value":3320},{"type":21,"tag":2320,"props":17598,"children":17599},{"style":3200},[17600],{"type":26,"value":3325},{"type":21,"tag":2320,"props":17602,"children":17603},{"style":2356},[17604],{"type":26,"value":3350},{"type":21,"tag":2320,"props":17606,"children":17607},{"style":2345},[17608],{"type":26,"value":3335},{"type":21,"tag":2320,"props":17610,"children":17611},{"style":2327},[17612],{"type":26,"value":17245},{"type":21,"tag":2320,"props":17614,"children":17615},{"style":2345},[17616],{"type":26,"value":3345},{"type":21,"tag":2320,"props":17618,"children":17619},{"style":2356},[17620],{"type":26,"value":17621},"  theta_est = ",{"type":21,"tag":2320,"props":17623,"children":17624},{"style":2345},[17625],{"type":26,"value":17259},{"type":21,"tag":2320,"props":17627,"children":17628},{"style":2327},[17629],{"type":26,"value":17192},{"type":21,"tag":2320,"props":17631,"children":17632},{"style":2345},[17633],{"type":26,"value":2419},{"type":21,"tag":2320,"props":17635,"children":17636},{"style":2327},[17637],{"type":26,"value":5347},{"type":21,"tag":2320,"props":17639,"children":17640},{"style":3200},[17641],{"type":26,"value":2175},{"type":21,"tag":2320,"props":17643,"children":17644},{"style":2345},[17645],{"type":26,"value":6384},{"type":21,"tag":2320,"props":17647,"children":17648},{"style":3200},[17649],{"type":26,"value":4713},{"type":21,"tag":2320,"props":17651,"children":17652},{"style":2345},[17653],{"type":26,"value":5532},{"type":21,"tag":2320,"props":17655,"children":17656},{"style":3200},[17657],{"type":26,"value":3647},{"type":21,"tag":2320,"props":17659,"children":17660},{"style":2345},[17661],{"type":26,"value":3345},{"type":21,"tag":2320,"props":17663,"children":17664},{"style":2356},[17665],{"type":26,"value":12966},{"type":21,"tag":2320,"props":17667,"children":17668},{"style":2345},[17669],{"type":26,"value":3335},{"type":21,"tag":2320,"props":17671,"children":17672},{"style":2327},[17673],{"type":26,"value":17674},"c ",{"type":21,"tag":2320,"props":17676,"children":17677},{"style":3200},[17678],{"type":26,"value":2175},{"type":21,"tag":2320,"props":17680,"children":17681},{"style":2345},[17682],{"type":26,"value":17683}," 4096",{"type":21,"tag":2320,"props":17685,"children":17686},{"style":3200},[17687],{"type":26,"value":3647},{"type":21,"tag":2320,"props":17689,"children":17690},{"style":2345},[17691],{"type":26,"value":3345},{"type":21,"tag":2320,"props":17693,"children":17694},{"style":2356},[17695],{"type":26,"value":3350},{"type":21,"tag":2320,"props":17697,"children":17698},{"style":2327},[17699],{"type":26,"value":3300},{"type":21,"tag":22,"props":17701,"children":17702},{},[17703],{"type":26,"value":12385},{"type":21,"tag":2310,"props":17705,"children":17707},{"code":17706},"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",[17708],{"type":21,"tag":2080,"props":17709,"children":17710},{"__ignoreMap":7},[17711],{"type":26,"value":17706},{"type":21,"tag":22,"props":17713,"children":17714},{},[17715,17717,17722],{"type":26,"value":17716},"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":180,"props":17718,"children":17719},{},[17720],{"type":26,"value":17721},"you get the nearest n-bit value with high probability, not certainty.",{"type":26,"value":17723}," 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":17725,"children":17726},{},[17727,17729,17734],{"type":26,"value":17728},"Two things improve together when you add counting qubits: finer resolution ",{"type":21,"tag":2054,"props":17730,"children":17731},{},[17732],{"type":26,"value":17733},"and",{"type":26,"value":17735}," a tighter peak. Same θ = 0.3 with 8 counting qubits:",{"type":21,"tag":2310,"props":17737,"children":17739},{"code":17738},"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",[17740],{"type":21,"tag":2080,"props":17741,"children":17742},{"__ignoreMap":7},[17743],{"type":26,"value":17738},{"type":21,"tag":22,"props":17745,"children":17746},{},[17747,17749,17754],{"type":26,"value":17748},"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":29,"props":17750,"children":17751},{"href":8977},[17752],{"type":26,"value":17753},"ancillas",{"type":26,"value":17755}," buys you a lot of confidence.",{"type":21,"tag":22,"props":17757,"children":17758},{},[17759,17761,17766],{"type":26,"value":17760},"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":180,"props":17762,"children":17763},{},[17764],{"type":26,"value":17765},"doubles",{"type":26,"value":17767}," 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":49,"props":17769,"children":17771},{"id":17770},"where-qpe-gets-used",[17772],{"type":26,"value":17773},"Where QPE gets used",{"type":21,"tag":22,"props":17775,"children":17776},{},[17777,17782,17784,17788,17790,17795],{"type":21,"tag":180,"props":17778,"children":17779},{},[17780],{"type":26,"value":17781},"Shor's algorithm.",{"type":26,"value":17783}," 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":29,"props":17785,"children":17786},{"href":8608},[17787],{"type":26,"value":9648},{"type":26,"value":17789}," 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":29,"props":17791,"children":17792},{"href":9659},[17793],{"type":26,"value":17794},"machine-verified in Lean",{"type":26,"value":17796},", if you want the formal treatment.)",{"type":21,"tag":22,"props":17798,"children":17799},{},[17800,17805,17807,17812],{"type":21,"tag":180,"props":17801,"children":17802},{},[17803],{"type":26,"value":17804},"Quantum chemistry.",{"type":26,"value":17806}," 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":2054,"props":17808,"children":17809},{},[17810],{"type":26,"value":17811},"provable",{"type":26,"value":17813}," 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":17815,"children":17816},{},[17817,17822,17823,17827,17829,17833,17835,17840],{"type":21,"tag":180,"props":17818,"children":17819},{},[17820],{"type":26,"value":17821},"Contrast with VQE.",{"type":26,"value":1307},{"type":21,"tag":29,"props":17824,"children":17825},{"href":368},[17826],{"type":26,"value":328},{"type":26,"value":17828}," attacks the same chemistry problem from the opposite direction. Instead of one deep coherent circuit, it uses a shallow ",{"type":21,"tag":29,"props":17830,"children":17831},{"href":13833},[17832],{"type":26,"value":13836},{"type":26,"value":17834}," plus a classical optimizer, as introduced in ",{"type":21,"tag":29,"props":17836,"children":17837},{"href":375},[17838],{"type":26,"value":17839},"Peruzzo et al. 2014",{"type":26,"value":17841},". The trade is explicit:",{"type":21,"tag":4066,"props":17843,"children":17844},{},[17845,17863],{"type":21,"tag":4070,"props":17846,"children":17847},{},[17848],{"type":21,"tag":4074,"props":17849,"children":17850},{},[17851,17854,17859],{"type":21,"tag":4078,"props":17852,"children":17853},{},[],{"type":21,"tag":4078,"props":17855,"children":17856},{},[17857],{"type":26,"value":17858},"QPE",{"type":21,"tag":4078,"props":17860,"children":17861},{},[17862],{"type":26,"value":328},{"type":21,"tag":4092,"props":17864,"children":17865},{},[17866,17884,17902,17920],{"type":21,"tag":4074,"props":17867,"children":17868},{},[17869,17874,17879],{"type":21,"tag":4099,"props":17870,"children":17871},{},[17872],{"type":26,"value":17873},"Circuit depth",{"type":21,"tag":4099,"props":17875,"children":17876},{},[17877],{"type":26,"value":17878},"Deep, grows as 2ⁿ in precision bits",{"type":21,"tag":4099,"props":17880,"children":17881},{},[17882],{"type":26,"value":17883},"Shallow, fixed ansatz",{"type":21,"tag":4074,"props":17885,"children":17886},{},[17887,17892,17897],{"type":21,"tag":4099,"props":17888,"children":17889},{},[17890],{"type":26,"value":17891},"Precision",{"type":21,"tag":4099,"props":17893,"children":17894},{},[17895],{"type":26,"value":17896},"Provable, arbitrary",{"type":21,"tag":4099,"props":17898,"children":17899},{},[17900],{"type":26,"value":17901},"Heuristic, ansatz-limited",{"type":21,"tag":4074,"props":17903,"children":17904},{},[17905,17910,17915],{"type":21,"tag":4099,"props":17906,"children":17907},{},[17908],{"type":26,"value":17909},"Measurements",{"type":21,"tag":4099,"props":17911,"children":17912},{},[17913],{"type":26,"value":17914},"Few shots",{"type":21,"tag":4099,"props":17916,"children":17917},{},[17918],{"type":26,"value":17919},"Many thousands per iteration",{"type":21,"tag":4074,"props":17921,"children":17922},{},[17923,17928,17933],{"type":21,"tag":4099,"props":17924,"children":17925},{},[17926],{"type":26,"value":17927},"Hardware era",{"type":21,"tag":4099,"props":17929,"children":17930},{},[17931],{"type":26,"value":17932},"Fault-tolerant",{"type":21,"tag":4099,"props":17934,"children":17935},{},[17936],{"type":21,"tag":29,"props":17937,"children":17938},{"href":418},[17939],{"type":26,"value":421},{"type":21,"tag":22,"props":17941,"children":17942},{},[17943,17945,17950,17952,17956,17958,17962],{"type":26,"value":17944},"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":29,"props":17946,"children":17947},{"href":338},[17948],{"type":26,"value":17949},"VQE walkthrough in PennyLane",{"type":26,"value":17951}," covers the near-term side. ",{"type":21,"tag":29,"props":17953,"children":17954},{"href":14069},[17955],{"type":26,"value":13785},{"type":26,"value":17957}," is generally the better fit for variational work while ",{"type":21,"tag":29,"props":17959,"children":17960},{"href":7091},[17961],{"type":26,"value":1369},{"type":26,"value":17963}," suits structured circuits like this one.",{"type":21,"tag":49,"props":17965,"children":17967},{"id":17966},"the-honest-caveat",[17968],{"type":26,"value":17969},"The honest caveat",{"type":21,"tag":22,"props":17971,"children":17972},{},[17973,17975,17979],{"type":26,"value":17974},"QPE is not a NISQ algorithm and no amount of clever ",{"type":21,"tag":29,"props":17976,"children":17977},{"href":5755},[17978],{"type":26,"value":5758},{"type":26,"value":17980}," will make it one.",{"type":21,"tag":22,"props":17982,"children":17983},{},[17984,17986,17990],{"type":26,"value":17985},"The circuit must stay coherent through 2ⁿ − 1 controlled-U applications, each of which decomposes into many 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":29,"props":17987,"children":17988},{"href":8929},[17989],{"type":26,"value":15817},{"type":26,"value":17991}," 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":17993,"children":17994},{},[17995,17997,18001,18003,18008,18010,18014,18016,18020,18022,18026,18028,18033],{"type":26,"value":17996},"QPE becomes practical when circuits run on ",{"type":21,"tag":29,"props":17998,"children":17999},{"href":1391},[18000],{"type":26,"value":1394},{"type":26,"value":18002}," rather than physical ones. Google's ",{"type":21,"tag":29,"props":18004,"children":18005},{"href":3745},[18006],{"type":26,"value":18007},"below-threshold result",{"type":26,"value":18009}," is the first real evidence that path is open, and our ",{"type":21,"tag":29,"props":18011,"children":18012},{"href":143},[18013],{"type":26,"value":1504},{"type":26,"value":18015}," covers what still has to happen. Until then: develop QPE on ",{"type":21,"tag":29,"props":18017,"children":18018},{"href":446},[18019],{"type":26,"value":8774},{"type":26,"value":18021},", where you verify it exactly, and reach for VQE or ",{"type":21,"tag":29,"props":18023,"children":18024},{"href":3986},[18025],{"type":26,"value":9278},{"type":26,"value":18027}," if you need results from ",{"type":21,"tag":29,"props":18029,"children":18030},{"href":249},[18031],{"type":26,"value":18032},"today's hardware",{"type":26,"value":802},{"type":21,"tag":22,"props":18035,"children":18036},{},[18037],{"type":26,"value":18038},"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":49,"props":18040,"children":18041},{"id":8786},[18042],{"type":26,"value":18043},"Next steps",{"type":21,"tag":3118,"props":18045,"children":18046},{},[18047,18059,18072,18096],{"type":21,"tag":3122,"props":18048,"children":18049},{},[18050,18057],{"type":21,"tag":180,"props":18051,"children":18052},{},[18053],{"type":21,"tag":29,"props":18054,"children":18055},{"href":257},[18056],{"type":26,"value":8828},{"type":26,"value":18058},": build the same QPE circuit in Cirq or Braket",{"type":21,"tag":3122,"props":18060,"children":18061},{},[18062,18070],{"type":21,"tag":180,"props":18063,"children":18064},{},[18065],{"type":21,"tag":29,"props":18066,"children":18067},{"href":3876},[18068],{"type":26,"value":18069},"Courses",{"type":26,"value":18071},": structured paths through the algorithm canon",{"type":21,"tag":3122,"props":18073,"children":18074},{},[18075,18082,18083,18089,18090,18095],{"type":21,"tag":180,"props":18076,"children":18077},{},[18078],{"type":21,"tag":29,"props":18079,"children":18080},{"href":3964},[18081],{"type":26,"value":8849},{"type":26,"value":2414},{"type":21,"tag":29,"props":18084,"children":18086},{"href":18085},"\u002Fglossary\u002Fquantum-gate",[18087],{"type":26,"value":18088},"quantum gate",{"type":26,"value":1315},{"type":21,"tag":29,"props":18091,"children":18092},{"href":8977},[18093],{"type":26,"value":18094},"ancilla qubit",{"type":26,"value":8865},{"type":21,"tag":3122,"props":18097,"children":18098},{},[18099],{"type":26,"value":18100},"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":2694,"props":18102,"children":18103},{},[18104],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":18106},[18107,18108,18109,18110,18113,18114,18115,18116],{"id":16076,"depth":150,"text":16079},{"id":16167,"depth":150,"text":16170},{"id":16272,"depth":150,"text":16275},{"id":11765,"depth":150,"text":11768,"children":18111},[18112],{"id":17363,"depth":2341,"text":17366},{"id":17447,"depth":150,"text":17450},{"id":17770,"depth":150,"text":17773},{"id":17966,"depth":150,"text":17969},{"id":8786,"depth":150,"text":18043},"content:blog:quantum-phase-estimation-tutorial.md","blog\u002Fquantum-phase-estimation-tutorial.md","blog\u002Fquantum-phase-estimation-tutorial",{"_path":18121,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":18122,"description":18123,"date":18124,"author":11,"tags":18125,"readingTime":1370,"body":18127,"_type":156,"_id":19157,"_source":158,"_file":19158,"_stem":19159,"_extension":161},"\u002Fes\u002Fblog\u002Fquantum-computing-new-vocabulary","El nuevo vocabulario de la computación cuántica: 16 términos que se volverán habituales","Así como la IA nos dio 'tokens', 'alucinaciones' y 'fine-tuning', la computación cuántica está construyendo su propio vocabulario. Estos son los términos que desarrolladores y empresas usarán dentro de unos años.","2026-03-15",[7149,15,18126],"Terminology",{"type":18,"children":18128,"toc":19138},[18129,18165,18170,18175,18179,18185,18193,18198,18224,18229,18232,18238,18246,18265,18270,18278,18283,18286,18292,18300,18312,18323,18335,18338,18344,18352,18364,18376,18379,18385,18393,18405,18495,18500,18503,18509,18517,18543,18555,18563,18568,18571,18577,18585,18597,18602,18605,18611,18619,18631,18636,18639,18645,18653,18679,18691,18696,18701,18704,18710,18718,18730,18742,18754,18757,18763,18771,18783,18788,18791,18797,18805,18824,18829,18832,18838,18846,18858,18863,18866,18872,18880,18899,18904,18907,18913,18921,18926,18936,18953,18958,18961,18967,18975,18987,19010,19023,19026,19032,19037,19110,19115,19120,19134],{"type":21,"tag":22,"props":18130,"children":18131},{},[18132,18134,18139,18140,18145,18146,18151,18152,18157,18158,18163],{"type":26,"value":18133},"Cuando el aprendizaje profundo irrumpió en la corriente principal alrededor de 2022–2023, arrastró todo un nuevo vocabulario a las conversaciones cotidianas. De repente todo el mundo hablaba de ",{"type":21,"tag":2054,"props":18135,"children":18136},{},[18137],{"type":26,"value":18138},"tokens",{"type":26,"value":1315},{"type":21,"tag":2054,"props":18141,"children":18142},{},[18143],{"type":26,"value":18144},"alucinaciones",{"type":26,"value":1315},{"type":21,"tag":2054,"props":18147,"children":18148},{},[18149],{"type":26,"value":18150},"ventanas de contexto",{"type":26,"value":1315},{"type":21,"tag":2054,"props":18153,"children":18154},{},[18155],{"type":26,"value":18156},"fine-tuning",{"type":26,"value":726},{"type":21,"tag":2054,"props":18159,"children":18160},{},[18161],{"type":26,"value":18162},"ingeniería de prompts",{"type":26,"value":18164}," — términos que apenas existían en el léxico común de los desarrolladores una década antes. Surgió una nueva generación de \"ingenieros de IA\", el tiempo de GPU se convirtió en un bien preciado, y el \"coste de inferencia\" pasó a ser una partida en los presupuestos de ingeniería.",{"type":21,"tag":22,"props":18166,"children":18167},{},[18168],{"type":26,"value":18169},"La computación cuántica sigue una trayectoria similar. Está en una etapa más temprana de la curva, pero el punto de inflexión se acerca — y con él, un nuevo conjunto de términos que pasarán de los artículos de investigación a las descripciones de puestos de trabajo, los pitches de startups y las preguntas de Stack Overflow. Algunos de ellos ya existen en la comunidad cuántica. La mayoría son desconocidos fuera de ella. Todos merecen aprenderse ahora, antes de que lo haga todo el mundo.",{"type":21,"tag":22,"props":18171,"children":18172},{},[18173],{"type":26,"value":18174},"Aquí están 16 términos del mundo de la computación cuántica que están bien posicionados para volverse habituales.",{"type":21,"tag":18176,"props":18177,"children":18178},"hr",{},[],{"type":21,"tag":49,"props":18180,"children":18182},{"id":18181},"_1-qpu-unidad-de-procesamiento-cuántico",[18183],{"type":26,"value":18184},"1. QPU (Unidad de Procesamiento Cuántico)",{"type":21,"tag":22,"props":18186,"children":18187},{},[18188],{"type":21,"tag":180,"props":18189,"children":18190},{},[18191],{"type":26,"value":18192},"El paralelo con la IA: GPU",{"type":21,"tag":22,"props":18194,"children":18195},{},[18196],{"type":26,"value":18197},"\"¿Tienes acceso a GPU?\" se convirtió en una pregunta estándar en los equipos de ML. \"¿Tienes acceso a QPU?\" se convertirá en su equivalente cuántico.",{"type":21,"tag":22,"props":18199,"children":18200},{},[18201,18203,18208,18210,18215,18217,18222],{"type":26,"value":18202},"Una QPU es el chip de hardware que ejecuta circuitos cuánticos. IBM llama a sus sistemas ",{"type":21,"tag":2054,"props":18204,"children":18205},{},[18206],{"type":26,"value":18207},"quantum computers",{"type":26,"value":18209},", NVIDIA tiene ",{"type":21,"tag":180,"props":18211,"children":18212},{},[18213],{"type":26,"value":18214},"CUDA-Q",{"type":26,"value":18216}," para simulación acelerada por GPU, y los sistemas de iones atrapados de IonQ son las QPU de mayor fidelidad disponibles hoy en día. Así como el \"tiempo de GPU\" se convirtió en un recurso por el que los ingenieros se pelean, el ",{"type":21,"tag":180,"props":18218,"children":18219},{},[18220],{"type":26,"value":18221},"tiempo de QPU",{"type":26,"value":18223}," — ciclos reales de ejecución en hardware cuántico — se convertirá en un recurso premium y planificable.",{"type":21,"tag":22,"props":18225,"children":18226},{},[18227],{"type":26,"value":18228},"El término ya aparece en las páginas de precios de la nube (AWS Braket, Azure Quantum). Estará en las descripciones de puestos de trabajo dentro de cinco años.",{"type":21,"tag":18176,"props":18230,"children":18231},{},[],{"type":21,"tag":49,"props":18233,"children":18235},{"id":18234},"_2-presupuesto-de-shots",[18236],{"type":26,"value":18237},"2. Presupuesto de shots",{"type":21,"tag":22,"props":18239,"children":18240},{},[18241],{"type":21,"tag":180,"props":18242,"children":18243},{},[18244],{"type":26,"value":18245},"El paralelo con la IA: presupuesto de tokens \u002F ventana de contexto",{"type":21,"tag":22,"props":18247,"children":18248},{},[18249,18251,18256,18258,18263],{"type":26,"value":18250},"Cuando ejecutas un circuito cuántico, no obtienes una única respuesta — obtienes una ",{"type":21,"tag":2054,"props":18252,"children":18253},{},[18254],{"type":26,"value":18255},"distribución de probabilidad",{"type":26,"value":18257}," muestreada ejecutando el circuito muchas veces. Cada ejecución se llama ",{"type":21,"tag":180,"props":18259,"children":18260},{},[18261],{"type":26,"value":18262},"shot",{"type":26,"value":18264},". Un circuito ejecutado 1.000 veces cuesta más tiempo de QPU que el mismo circuito ejecutado 100 veces.",{"type":21,"tag":22,"props":18266,"children":18267},{},[18268],{"type":26,"value":18269},"El \"presupuesto de shots\" — cuántas ejecuciones puedes permitirte — se convertirá en una preocupación real de optimización a medida que el acceso a QPU escale. Así como los desarrolladores aprendieron a recortar prompts para mantenerse dentro de los límites de tokens, los desarrolladores cuánticos aprenderán a diseñar circuitos que extraigan la máxima señal a partir de un presupuesto mínimo de shots.",{"type":21,"tag":2201,"props":18271,"children":18272},{},[18273],{"type":21,"tag":22,"props":18274,"children":18275},{},[18276],{"type":26,"value":18277},"\"Conseguimos que el VQE convergiera en 200 shots en lugar de 2.000 — eso redujo nuestros costes de QPU en un 90%.\"",{"type":21,"tag":22,"props":18279,"children":18280},{},[18281],{"type":26,"value":18282},"Esta ya es una preocupación real en algoritmos variacionales como VQE y QAOA, donde el ruido de los shots impacta directamente en la calidad de los resultados.",{"type":21,"tag":18176,"props":18284,"children":18285},{},[],{"type":21,"tag":49,"props":18287,"children":18289},{"id":18288},"_3-ventaja-cuántica",[18290],{"type":26,"value":18291},"3. Ventaja cuántica",{"type":21,"tag":22,"props":18293,"children":18294},{},[18295],{"type":21,"tag":180,"props":18296,"children":18297},{},[18298],{"type":26,"value":18299},"El paralelo con la IA: aceleración de 10x, \"mejor que un humano\"",{"type":21,"tag":22,"props":18301,"children":18302},{},[18303,18305,18310],{"type":26,"value":18304},"La \"ventaja cuántica\" es el momento en que un ordenador cuántico resuelve un problema específico y del mundo real ",{"type":21,"tag":2054,"props":18306,"children":18307},{},[18308],{"type":26,"value":18309},"más rápido o mejor",{"type":26,"value":18311}," de lo que cualquier ordenador clásico puede hacerlo. Es el equivalente cuántico del \"rendimiento sobrehumano\" en los benchmarks de IA.",{"type":21,"tag":22,"props":18313,"children":18314},{},[18315,18317,18321],{"type":26,"value":18316},"IBM introdujo el término relacionado ",{"type":21,"tag":180,"props":18318,"children":18319},{},[18320],{"type":26,"value":1465},{"type":26,"value":18322}," en 2023 para describir circuitos que son demasiado complejos para simularse clásicamente pero prácticamente útiles — un precursor más realista de la ventaja cuántica completa. Espera ver ambos términos en comunicados de prensa, anuncios de financiación y debates regulatorios a medida que el hardware madure.",{"type":21,"tag":22,"props":18324,"children":18325},{},[18326,18328,18333],{"type":26,"value":18327},"La distinción importa: la ventaja cuántica es una propiedad de una ",{"type":21,"tag":2054,"props":18329,"children":18330},{},[18331],{"type":26,"value":18332},"combinación de problema + hardware",{"type":26,"value":18334},", no una afirmación general sobre que los ordenadores cuánticos son \"mejores\". Entender esto separará las conversaciones cuánticas informadas del bombo publicitario.",{"type":21,"tag":18176,"props":18336,"children":18337},{},[],{"type":21,"tag":49,"props":18339,"children":18341},{"id":18340},"_4-utilidad-cuántica",[18342],{"type":26,"value":18343},"4. Utilidad cuántica",{"type":21,"tag":22,"props":18345,"children":18346},{},[18347],{"type":21,"tag":180,"props":18348,"children":18349},{},[18350],{"type":26,"value":18351},"El paralelo con la IA: \"IA en producción\" vs. demos de investigación",{"type":21,"tag":22,"props":18353,"children":18354},{},[18355,18357,18362],{"type":26,"value":18356},"Estrechamente relacionada con la ventaja cuántica, la ",{"type":21,"tag":180,"props":18358,"children":18359},{},[18360],{"type":26,"value":18361},"utilidad cuántica",{"type":26,"value":18363}," significa específicamente: un circuito cuántico que produce resultados útiles para una aplicación real, incluso si la simulación clásica de ese circuito exacto sigue siendo posible en principio pero impráctica.",{"type":21,"tag":22,"props":18365,"children":18366},{},[18367,18369,18374],{"type":26,"value":18368},"IBM usó el término por primera vez en un artículo de ",{"type":21,"tag":2054,"props":18370,"children":18371},{},[18372],{"type":26,"value":18373},"Nature",{"type":26,"value":18375}," de 2023 que demostraba que ciertos circuitos cuánticos ejecutándose en su procesador Eagle producían resultados que la simulación clásica no podía verificar fácilmente. Es un hito más alcanzable y a corto plazo que la ventaja cuántica completa — y del que es más probable que oigamos hablar en los próximos años.",{"type":21,"tag":18176,"props":18377,"children":18378},{},[],{"type":21,"tag":49,"props":18380,"children":18382},{"id":18381},"_5-transpilación",[18383],{"type":26,"value":18384},"5. Transpilación",{"type":21,"tag":22,"props":18386,"children":18387},{},[18388],{"type":21,"tag":180,"props":18389,"children":18390},{},[18391],{"type":26,"value":18392},"El paralelo con la IA: compilación de modelos \u002F cuantización",{"type":21,"tag":22,"props":18394,"children":18395},{},[18396,18398,18403],{"type":26,"value":18397},"Antes de que un circuito cuántico se ejecute en hardware real, debe ser ",{"type":21,"tag":2054,"props":18399,"children":18400},{},[18401],{"type":26,"value":18402},"transpilado",{"type":26,"value":18404}," — convertido de operaciones abstractas al conjunto de puertas nativo del hardware, con las operaciones de qubits redirigidas para respetar las restricciones de conectividad física. Esto es análogo a cómo un modelo de aprendizaje profundo debe compilarse y optimizarse para una arquitectura de chip específica.",{"type":21,"tag":2310,"props":18406,"children":18408},{"className":3188,"code":18407,"language":3190,"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",[18409],{"type":21,"tag":2080,"props":18410,"children":18411},{"__ignoreMap":7},[18412,18433,18440,18448],{"type":21,"tag":2320,"props":18413,"children":18414},{"class":2322,"line":2323},[18415,18419,18424,18428],{"type":21,"tag":2320,"props":18416,"children":18417},{"style":3200},[18418],{"type":26,"value":3203},{"type":21,"tag":2320,"props":18420,"children":18421},{"style":2327},[18422],{"type":26,"value":18423}," qiskit.compiler ",{"type":21,"tag":2320,"props":18425,"children":18426},{"style":3200},[18427],{"type":26,"value":3213},{"type":21,"tag":2320,"props":18429,"children":18430},{"style":2327},[18431],{"type":26,"value":18432}," transpile\n",{"type":21,"tag":2320,"props":18434,"children":18435},{"class":2322,"line":150},[18436],{"type":21,"tag":2320,"props":18437,"children":18438},{"emptyLinePlaceholder":3224},[18439],{"type":26,"value":3227},{"type":21,"tag":2320,"props":18441,"children":18442},{"class":2322,"line":2341},[18443],{"type":21,"tag":2320,"props":18444,"children":18445},{"style":3450},[18446],{"type":26,"value":18447},"# Circuit written in abstract gates\n",{"type":21,"tag":2320,"props":18449,"children":18450},{"class":2322,"line":2403},[18451,18456,18460,18465,18470,18474,18479,18483,18487,18491],{"type":21,"tag":2320,"props":18452,"children":18453},{"style":2327},[18454],{"type":26,"value":18455},"transpiled ",{"type":21,"tag":2320,"props":18457,"children":18458},{"style":3200},[18459],{"type":26,"value":3240},{"type":21,"tag":2320,"props":18461,"children":18462},{"style":2327},[18463],{"type":26,"value":18464}," transpile(circuit, ",{"type":21,"tag":2320,"props":18466,"children":18467},{"style":3265},[18468],{"type":26,"value":18469},"backend",{"type":21,"tag":2320,"props":18471,"children":18472},{"style":3200},[18473],{"type":26,"value":3240},{"type":21,"tag":2320,"props":18475,"children":18476},{"style":2327},[18477],{"type":26,"value":18478},"real_qpu, ",{"type":21,"tag":2320,"props":18480,"children":18481},{"style":3265},[18482],{"type":26,"value":6275},{"type":21,"tag":2320,"props":18484,"children":18485},{"style":3200},[18486],{"type":26,"value":3240},{"type":21,"tag":2320,"props":18488,"children":18489},{"style":2345},[18490],{"type":26,"value":6511},{"type":21,"tag":2320,"props":18492,"children":18493},{"style":2327},[18494],{"type":26,"value":3300},{"type":21,"tag":22,"props":18496,"children":18497},{},[18498],{"type":26,"value":18499},"A medida que lo cuántico pase a producción, el \"coste de transpilación\" y la \"profundidad de transpilación\" se convertirán en preocupaciones de ingeniería estándar — igual que la latencia de inferencia y la cuantización de modelos lo son hoy.",{"type":21,"tag":18176,"props":18501,"children":18502},{},[],{"type":21,"tag":49,"props":18504,"children":18506},{"id":18505},"_6-tiempo-de-coherencia-t1-t2",[18507],{"type":26,"value":18508},"6. Tiempo de coherencia (T1 \u002F T2)",{"type":21,"tag":22,"props":18510,"children":18511},{},[18512],{"type":21,"tag":180,"props":18513,"children":18514},{},[18515],{"type":26,"value":18516},"El paralelo con la IA: ventana de contexto \u002F límite de memoria",{"type":21,"tag":22,"props":18518,"children":18519},{},[18520,18522,18527,18529,18534,18536,18541],{"type":26,"value":18521},"Un qubit no permanece cuántico para siempre. Se degrada — perdiendo su superposición a causa del ruido ambiental en un proceso llamado ",{"type":21,"tag":2054,"props":18523,"children":18524},{},[18525],{"type":26,"value":18526},"decoherencia",{"type":26,"value":18528},". El ",{"type":21,"tag":180,"props":18530,"children":18531},{},[18532],{"type":26,"value":18533},"tiempo T1",{"type":26,"value":18535}," (relajación de energía) y el ",{"type":21,"tag":180,"props":18537,"children":18538},{},[18539],{"type":26,"value":18540},"tiempo T2",{"type":26,"value":18542}," (coherencia de fase) miden cuánto tiempo permanece utilizable un qubit.",{"type":21,"tag":22,"props":18544,"children":18545},{},[18546,18548,18553],{"type":26,"value":18547},"Este es el equivalente cuántico de una ventana de contexto: define la ",{"type":21,"tag":2054,"props":18549,"children":18550},{},[18551],{"type":26,"value":18552},"profundidad máxima de circuito",{"type":26,"value":18554}," que puedes ejecutar antes de que tus qubits se conviertan en ruido clásico. Los qubits superconductores de IBM tienen tiempos T2 en torno a 100–300 microsegundos. Los qubits de iones atrapados de IonQ tienen tiempos T2 que superan un segundo — por lo que sus circuitos pueden ser mucho más profundos.",{"type":21,"tag":2201,"props":18556,"children":18557},{},[18558],{"type":21,"tag":22,"props":18559,"children":18560},{},[18561],{"type":26,"value":18562},"\"Nuestro circuito es demasiado profundo para este backend — alcanzaremos T2 antes de que se ejecute la última puerta.\"",{"type":21,"tag":22,"props":18564,"children":18565},{},[18566],{"type":26,"value":18567},"Los desarrolladores aprenderán a presupuestar el tiempo de coherencia de la misma forma que presupuestan la memoria.",{"type":21,"tag":18176,"props":18569,"children":18570},{},[],{"type":21,"tag":49,"props":18572,"children":18574},{"id":18573},"_7-presupuesto-de-decoherencia",[18575],{"type":26,"value":18576},"7. Presupuesto de decoherencia",{"type":21,"tag":22,"props":18578,"children":18579},{},[18580],{"type":21,"tag":180,"props":18581,"children":18582},{},[18583],{"type":26,"value":18584},"El paralelo con la IA: presupuesto de latencia \u002F presupuesto de cómputo",{"type":21,"tag":22,"props":18586,"children":18587},{},[18588,18590,18595],{"type":26,"value":18589},"Una extensión natural de T1\u002FT2: el ",{"type":21,"tag":180,"props":18591,"children":18592},{},[18593],{"type":26,"value":18594},"presupuesto de decoherencia",{"type":26,"value":18596}," es el \"tiempo de coherencia\" total disponible para que un circuito se complete antes de que los errores se acumulen más allá de lo útil. Los circuitos más largos consumen más presupuesto de decoherencia.",{"type":21,"tag":22,"props":18598,"children":18599},{},[18600],{"type":26,"value":18601},"A medida que las aplicaciones cuánticas se vuelvan más complejas, los arquitectos diseñarán sistemas que se mantengan dentro de los presupuestos de decoherencia — sopesando profundidad de circuito vs. fidelidad de resultados, de forma similar a cómo los ingenieros de backend sopesan hoy latencia de respuesta vs. coste de cómputo.",{"type":21,"tag":18176,"props":18603,"children":18604},{},[],{"type":21,"tag":49,"props":18606,"children":18608},{"id":18607},"_8-fidelidad-de-circuito",[18609],{"type":26,"value":18610},"8. Fidelidad de circuito",{"type":21,"tag":22,"props":18612,"children":18613},{},[18614],{"type":21,"tag":180,"props":18615,"children":18616},{},[18617],{"type":26,"value":18618},"El paralelo con la IA: precisión del modelo \u002F puntuación F1",{"type":21,"tag":22,"props":18620,"children":18621},{},[18622,18624,18629],{"type":26,"value":18623},"La ",{"type":21,"tag":180,"props":18625,"children":18626},{},[18627],{"type":26,"value":18628},"fidelidad",{"type":26,"value":18630}," mide cuán cerca está el estado cuántico real producido por un circuito del estado teórico ideal. Un circuito con un 99% de fidelidad es excelente. Uno con un 90% puede ser inútil para aplicaciones de precisión.",{"type":21,"tag":22,"props":18632,"children":18633},{},[18634],{"type":26,"value":18635},"La fidelidad se degrada con cada puerta aplicada (cada puerta tiene una tasa de error) y con la profundidad del circuito (los circuitos más largos se decoheren más). Se convertirá en la principal métrica de calidad de los resultados de QPU — el equivalente cuántico de la precisión de un modelo en un benchmark.",{"type":21,"tag":18176,"props":18637,"children":18638},{},[],{"type":21,"tag":49,"props":18640,"children":18642},{"id":18641},"_9-qubit-físico-vs-lógico",[18643],{"type":26,"value":18644},"9. Qubit físico vs. lógico",{"type":21,"tag":22,"props":18646,"children":18647},{},[18648],{"type":21,"tag":180,"props":18649,"children":18650},{},[18651],{"type":26,"value":18652},"El paralelo con la IA: parámetros brutos vs. capacidad efectiva del modelo",{"type":21,"tag":22,"props":18654,"children":18655},{},[18656,18658,18663,18665,18670,18672,18677],{"type":26,"value":18657},"Una de las distinciones más importantes que se volverán habituales: un ",{"type":21,"tag":180,"props":18659,"children":18660},{},[18661],{"type":26,"value":18662},"qubit físico",{"type":26,"value":18664}," es un qubit de hardware real (ruidoso, propenso a errores). Un ",{"type":21,"tag":180,"props":18666,"children":18667},{},[18668],{"type":26,"value":18669},"qubit lógico",{"type":26,"value":18671}," es un qubit ",{"type":21,"tag":2054,"props":18673,"children":18674},{},[18675],{"type":26,"value":18676},"con corrección de errores",{"type":26,"value":18678}," codificado a través de muchos qubits físicos — fiable, pero costoso.",{"type":21,"tag":22,"props":18680,"children":18681},{},[18682,18684,18689],{"type":26,"value":18683},"El mejor hardware actual (IBM, IonQ) opera con qubits físicos. La computación cuántica totalmente tolerante a fallos requiere qubits lógicos. Las estimaciones actuales sitúan la proporción en ",{"type":21,"tag":180,"props":18685,"children":18686},{},[18687],{"type":26,"value":18688},"1.000–10.000 qubits físicos por qubit lógico",{"type":26,"value":18690}," para la corrección de errores mediante código de superficie.",{"type":21,"tag":22,"props":18692,"children":18693},{},[18694],{"type":26,"value":18695},"Cuando oyes \"IBM tiene 1.000 qubits\", esos son qubits físicos. Un ordenador tolerante a fallos capaz de ejecutar el algoritmo de Shor contra RSA-2048 necesitaría millones de qubits físicos.",{"type":21,"tag":22,"props":18697,"children":18698},{},[18699],{"type":26,"value":18700},"Entender esta distinción será esencial para separar el marketing del hardware cuántico de la realidad técnica.",{"type":21,"tag":18176,"props":18702,"children":18703},{},[],{"type":21,"tag":49,"props":18705,"children":18707},{"id":18706},"_10-criptografía-a-prueba-de-cuántica-post-cuántica",[18708],{"type":26,"value":18709},"10. Criptografía a prueba de cuántica \u002F post-cuántica",{"type":21,"tag":22,"props":18711,"children":18712},{},[18713],{"type":21,"tag":180,"props":18714,"children":18715},{},[18716],{"type":26,"value":18717},"El paralelo con la IA: \"resistente a la IA\" (menos apto) → en realidad más cercano a \"GDPR para algoritmos\"",{"type":21,"tag":22,"props":18719,"children":18720},{},[18721,18723,18728],{"type":26,"value":18722},"Este ya está saliendo del mundo de la investigación. La ",{"type":21,"tag":180,"props":18724,"children":18725},{},[18726],{"type":26,"value":18727},"criptografía post-cuántica",{"type":26,"value":18729}," (PQC) se refiere a algoritmos criptográficos clásicos diseñados para resistir ataques de ordenadores cuánticos. La amenaza: el algoritmo de Shor puede factorizar los grandes números primos que sustentan RSA, rompiendo la mayor parte del cifrado de clave pública actual.",{"type":21,"tag":22,"props":18731,"children":18732},{},[18733,18735,18740],{"type":26,"value":18734},"El NIST finalizó sus primeros estándares de criptografía post-cuántica en 2024 (CRYSTALS-Kyber, CRYSTALS-Dilithium). ",{"type":21,"tag":180,"props":18736,"children":18737},{},[18738],{"type":26,"value":18739},"\"A prueba de cuántica\"",{"type":26,"value":18741}," será un término de certificación y cumplimiento dentro de cinco años — apareciendo en auditorías de seguridad, requisitos de adquisición y documentación de proveedores de nube.",{"type":21,"tag":22,"props":18743,"children":18744},{},[18745,18747,18752],{"type":26,"value":18746},"El vector de ataque para el que la mayoría de las organizaciones deberían prepararse: ",{"type":21,"tag":180,"props":18748,"children":18749},{},[18750],{"type":26,"value":18751},"\"cosechar ahora, descifrar después\"",{"type":26,"value":18753}," — adversarios que recopilan datos cifrados hoy con la intención de descifrarlos una vez que los ordenadores cuánticos sean lo suficientemente capaces.",{"type":21,"tag":18176,"props":18755,"children":18756},{},[],{"type":21,"tag":49,"props":18758,"children":18760},{"id":18759},"_11-algoritmo-híbrido-híbrido-cuántico-clásico",[18761],{"type":26,"value":18762},"11. Algoritmo híbrido \u002F híbrido cuántico-clásico",{"type":21,"tag":22,"props":18764,"children":18765},{},[18766],{"type":21,"tag":180,"props":18767,"children":18768},{},[18769],{"type":26,"value":18770},"El paralelo con la IA: flujos de trabajo \"asistidos por IA\", computación heterogénea CPU+GPU",{"type":21,"tag":22,"props":18772,"children":18773},{},[18774,18776,18781],{"type":26,"value":18775},"Casi todas las aplicaciones cuánticas a corto plazo son ",{"type":21,"tag":180,"props":18777,"children":18778},{},[18779],{"type":26,"value":18780},"híbridas",{"type":26,"value":18782},": un optimizador clásico llama repetidamente a un circuito cuántico, usando el hardware cuántico para las partes con las que los ordenadores clásicos tienen dificultades (preparación de estados, interferencia) mientras que los ordenadores clásicos gestionan los bucles de optimización.",{"type":21,"tag":22,"props":18784,"children":18785},{},[18786],{"type":26,"value":18787},"VQE y QAOA son los algoritmos híbridos canónicos. A medida que los frameworks de programación cuántica maduren, la \"orquestación de flujos de trabajo híbridos\" — gestionar el traspaso entre cómputo clásico y cuántico — se convertirá en un problema estándar de ingeniería de software. Espera ver herramientas, frameworks y títulos de puestos construidos en torno a ello.",{"type":21,"tag":18176,"props":18789,"children":18790},{},[],{"type":21,"tag":49,"props":18792,"children":18794},{"id":18793},"_12-circuito-variacional-circuito-cuántico-parametrizado",[18795],{"type":26,"value":18796},"12. Circuito variacional (circuito cuántico parametrizado)",{"type":21,"tag":22,"props":18798,"children":18799},{},[18800],{"type":21,"tag":180,"props":18801,"children":18802},{},[18803],{"type":26,"value":18804},"El paralelo con la IA: red neuronal (pesos entrenables)",{"type":21,"tag":22,"props":18806,"children":18807},{},[18808,18810,18815,18817,18822],{"type":26,"value":18809},"Un ",{"type":21,"tag":180,"props":18811,"children":18812},{},[18813],{"type":26,"value":18814},"circuito variacional",{"type":26,"value":18816}," o ",{"type":21,"tag":180,"props":18818,"children":18819},{},[18820],{"type":26,"value":18821},"circuito cuántico parametrizado (PQC)",{"type":26,"value":18823}," es un circuito cuántico con ángulos de rotación ajustables — esencialmente una capa de red neuronal cuántica. Los parámetros son ajustados por un optimizador clásico para minimizar una función de coste.",{"type":21,"tag":22,"props":18825,"children":18826},{},[18827],{"type":26,"value":18828},"VQE usa un circuito variacional como estimador de energía. QAOA usa uno para codificar problemas de optimización. A medida que se desarrolle el aprendizaje automático cuántico, \"entrenar un circuito cuántico\" se convertirá en una frase tan natural como \"entrenar una red neuronal\".",{"type":21,"tag":18176,"props":18830,"children":18831},{},[],{"type":21,"tag":49,"props":18833,"children":18835},{"id":18834},"_13-volumen-cuántico-qv",[18836],{"type":26,"value":18837},"13. Volumen cuántico (QV)",{"type":21,"tag":22,"props":18839,"children":18840},{},[18841],{"type":21,"tag":180,"props":18842,"children":18843},{},[18844],{"type":26,"value":18845},"El paralelo con la IA: FLOPS, puntuaciones de benchmark (MLPerf)",{"type":21,"tag":22,"props":18847,"children":18848},{},[18849,18851,18856],{"type":26,"value":18850},"El ",{"type":21,"tag":180,"props":18852,"children":18853},{},[18854],{"type":26,"value":18855},"volumen cuántico",{"type":26,"value":18857}," es un benchmark de un solo número introducido por IBM que captura el rendimiento de una QPU de forma holística — teniendo en cuenta simultáneamente el número de qubits, la fidelidad de las puertas, la conectividad y la profundidad máxima de circuito ejecutable.",{"type":21,"tag":22,"props":18859,"children":18860},{},[18861],{"type":26,"value":18862},"Una QPU con QV 128 (= 2^7, un circuito equivalente a 7 qubits) supera a una con QV 64 incluso si la máquina con QV menor tiene más qubits brutos. Es la \"puntuación MLPerf\" del mundo cuántico — un número que los proveedores anunciarán y que los desarrolladores usarán para comparar hardware.",{"type":21,"tag":18176,"props":18864,"children":18865},{},[],{"type":21,"tag":49,"props":18867,"children":18869},{"id":18868},"_14-trabajo-cuántico-cola-cuántica",[18870],{"type":26,"value":18871},"14. Trabajo cuántico \u002F cola cuántica",{"type":21,"tag":22,"props":18873,"children":18874},{},[18875],{"type":21,"tag":180,"props":18876,"children":18877},{},[18878],{"type":26,"value":18879},"El paralelo con la IA: trabajos de inferencia por lotes, cola de GPU",{"type":21,"tag":22,"props":18881,"children":18882},{},[18883,18885,18890,18892,18897],{"type":26,"value":18884},"Cuando envías un circuito a una QPU real, envías un ",{"type":21,"tag":180,"props":18886,"children":18887},{},[18888],{"type":26,"value":18889},"trabajo cuántico",{"type":26,"value":18891}," que entra en una ",{"type":21,"tag":180,"props":18893,"children":18894},{},[18895],{"type":26,"value":18896},"cola cuántica",{"type":26,"value":18898}," — un sistema de planificación que gestiona el acceso a hardware compartido. Los trabajos del nivel gratuito de IBM Quantum a menudo esperan minutos u horas en cola por detrás de los clientes de pago.",{"type":21,"tag":22,"props":18900,"children":18901},{},[18902],{"type":26,"value":18903},"El \"rendimiento de trabajos\", la \"profundidad de cola\" y la \"prioridad de trabajos\" se convertirán en métricas operativas para los equipos de infraestructura cuántica — idénticas en espíritu a la gestión de las colas de trabajos de clústeres de GPU de hoy.",{"type":21,"tag":18176,"props":18905,"children":18906},{},[],{"type":21,"tag":49,"props":18908,"children":18910},{"id":18909},"_15-mitigación-de-errores-vs-corrección-de-errores",[18911],{"type":26,"value":18912},"15. Mitigación de errores vs. corrección de errores",{"type":21,"tag":22,"props":18914,"children":18915},{},[18916],{"type":21,"tag":180,"props":18917,"children":18918},{},[18919],{"type":26,"value":18920},"El paralelo con la IA: regularización (mitigación) vs. ECC de hardware (corrección)",{"type":21,"tag":22,"props":18922,"children":18923},{},[18924],{"type":26,"value":18925},"Esta distinción importa y se usará mal constantemente una vez que lo cuántico se vuelva habitual.",{"type":21,"tag":22,"props":18927,"children":18928},{},[18929,18934],{"type":21,"tag":180,"props":18930,"children":18931},{},[18932],{"type":26,"value":18933},"Corrección de errores",{"type":26,"value":18935}," — codificar qubits lógicos con redundancia para que los errores puedan detectarse y corregirse. Requiere una sobrecarga de ~1.000:1 de qubits físicos a lógicos. Aún no está disponible a escala.",{"type":21,"tag":22,"props":18937,"children":18938},{},[18939,18944,18946,18951],{"type":21,"tag":180,"props":18940,"children":18941},{},[18942],{"type":26,"value":18943},"Mitigación de errores",{"type":26,"value":18945}," — técnicas de posprocesamiento clásico que reducen estadísticamente el efecto del ruido ",{"type":21,"tag":2054,"props":18947,"children":18948},{},[18949],{"type":26,"value":18950},"sin",{"type":26,"value":18952}," corregirlo físicamente. Extrapolación a ruido cero, cancelación probabilística de errores, mitigación de errores de medición. Disponible ahora, en hardware NISQ.",{"type":21,"tag":22,"props":18954,"children":18955},{},[18956],{"type":26,"value":18957},"Cuando un proveedor afirme que su QPU \"gestiona los errores\", pregunta siempre a cuál de los dos se refiere.",{"type":21,"tag":18176,"props":18959,"children":18960},{},[],{"type":21,"tag":49,"props":18962,"children":18964},{"id":18963},"_16-desarrollador-cuántico-ingeniero-cuántico",[18965],{"type":26,"value":18966},"16. Desarrollador cuántico \u002F ingeniero cuántico",{"type":21,"tag":22,"props":18968,"children":18969},{},[18970],{"type":21,"tag":180,"props":18971,"children":18972},{},[18973],{"type":26,"value":18974},"El paralelo con la IA: ingeniero de ML, ingeniero de IA, ingeniero de prompts",{"type":21,"tag":22,"props":18976,"children":18977},{},[18978,18980,18985],{"type":26,"value":18979},"Quizás el nuevo término más trascendental: el ",{"type":21,"tag":180,"props":18981,"children":18982},{},[18983],{"type":26,"value":18984},"desarrollador cuántico",{"type":26,"value":18986},". Así como el rol de \"ingeniero de IA\" cristalizó alrededor de 2023 — distinto tanto de la ingeniería de software tradicional como de la investigación en ML — el rol de \"desarrollador cuántico\" está emergiendo en torno a un conjunto de habilidades específico:",{"type":21,"tag":3118,"props":18988,"children":18989},{},[18990,18995,19000,19005],{"type":21,"tag":3122,"props":18991,"children":18992},{},[18993],{"type":26,"value":18994},"Escribir circuitos en frameworks como Qiskit, Cirq o HLQuantum",{"type":21,"tag":3122,"props":18996,"children":18997},{},[18998],{"type":26,"value":18999},"Entender las restricciones del hardware (conectividad, ruido, coherencia)",{"type":21,"tag":3122,"props":19001,"children":19002},{},[19003],{"type":26,"value":19004},"Diseñar flujos de trabajo híbridos clásico-cuánticos",{"type":21,"tag":3122,"props":19006,"children":19007},{},[19008],{"type":26,"value":19009},"Interpretar resultados probabilísticos y métricas de fidelidad",{"type":21,"tag":22,"props":19011,"children":19012},{},[19013,19015,19021],{"type":26,"value":19014},"Herramientas como ",{"type":21,"tag":29,"props":19016,"children":19018},{"href":19017},"\u002Fhlquantum",[19019],{"type":26,"value":19020},"HLQuantum",{"type":26,"value":19022}," — que proporcionan una API unificada a través de todos los backends — están acelerando esto al permitir a los desarrolladores escribir código cuántico portable sin experiencia profunda en las particularidades de cada SDK. El \"desarrollador cuántico\" de 2028 probablemente usará una capa de abstracción de la misma forma que el desarrollador web de hoy usa un framework, en lugar de escribir circuitos en bruto para cada backend.",{"type":21,"tag":18176,"props":19024,"children":19025},{},[],{"type":21,"tag":49,"props":19027,"children":19029},{"id":19028},"el-patrón",[19030],{"type":26,"value":19031},"El patrón",{"type":21,"tag":22,"props":19033,"children":19034},{},[19035],{"type":26,"value":19036},"Al observar estos 16 términos, emerge un patrón. Todo gran cambio de plataforma genera:",{"type":21,"tag":7007,"props":19038,"children":19039},{},[19040,19050,19060,19070,19080,19090,19100],{"type":21,"tag":3122,"props":19041,"children":19042},{},[19043,19048],{"type":21,"tag":180,"props":19044,"children":19045},{},[19046],{"type":26,"value":19047},"Una nueva unidad de cómputo",{"type":26,"value":19049}," — GPU → QPU, tokens → shots",{"type":21,"tag":3122,"props":19051,"children":19052},{},[19053,19058],{"type":21,"tag":180,"props":19054,"children":19055},{},[19056],{"type":26,"value":19057},"Una nueva restricción de recursos",{"type":26,"value":19059}," — VRAM, ventana de contexto → tiempo de coherencia, presupuesto de shots",{"type":21,"tag":3122,"props":19061,"children":19062},{},[19063,19068],{"type":21,"tag":180,"props":19064,"children":19065},{},[19066],{"type":26,"value":19067},"Una nueva métrica de calidad",{"type":26,"value":19069}," — precisión, F1 → fidelidad, volumen cuántico",{"type":21,"tag":3122,"props":19071,"children":19072},{},[19073,19078],{"type":21,"tag":180,"props":19074,"children":19075},{},[19076],{"type":26,"value":19077},"Un nuevo paso de compilación",{"type":26,"value":19079}," — cuantización de modelos → transpilación",{"type":21,"tag":3122,"props":19081,"children":19082},{},[19083,19088],{"type":21,"tag":180,"props":19084,"children":19085},{},[19086],{"type":26,"value":19087},"Una nueva arquitectura híbrida",{"type":26,"value":19089}," — CPU+GPU → clásico+cuántico",{"type":21,"tag":3122,"props":19091,"children":19092},{},[19093,19098],{"type":21,"tag":180,"props":19094,"children":19095},{},[19096],{"type":26,"value":19097},"Una nueva superficie de seguridad",{"type":26,"value":19099}," — ML adversarial → criptografía post-cuántica",{"type":21,"tag":3122,"props":19101,"children":19102},{},[19103,19108],{"type":21,"tag":180,"props":19104,"children":19105},{},[19106],{"type":26,"value":19107},"Un nuevo título de puesto",{"type":26,"value":19109}," — ingeniero de ML → ingeniero cuántico",{"type":21,"tag":22,"props":19111,"children":19112},{},[19113],{"type":26,"value":19114},"El vocabulario de la computación cuántica no es solo jerga — se corresponde directamente con restricciones reales de ingeniería, compromisos reales y oportunidades reales. Aprenderlo antes de que llegue la ola mayoritaria es la misma apuesta que hicieron los primeros ingenieros de la nube cuando empezaron a preocuparse por la \"latencia\" y el \"rendimiento\" antes que la mayoría de los desarrolladores.",{"type":21,"tag":22,"props":19116,"children":19117},{},[19118],{"type":26,"value":19119},"El mejor momento para empezar fue hace cinco años. El segundo mejor momento es ahora — mientras el hardware todavía es de acceso gratuito y la curva de aprendizaje es la más baja.",{"type":21,"tag":22,"props":19121,"children":19122},{},[19123,19128,19129],{"type":21,"tag":180,"props":19124,"children":19125},{},[19126],{"type":26,"value":19127},"Empieza aquí:",{"type":26,"value":1307},{"type":21,"tag":29,"props":19130,"children":19131},{"href":446},[19132],{"type":26,"value":19133},"Ejecuta tu primer circuito cuántico gratis →",{"type":21,"tag":2694,"props":19135,"children":19136},{},[19137],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":19139},[19140,19141,19142,19143,19144,19145,19146,19147,19148,19149,19150,19151,19152,19153,19154,19155,19156],{"id":18181,"depth":150,"text":18184},{"id":18234,"depth":150,"text":18237},{"id":18288,"depth":150,"text":18291},{"id":18340,"depth":150,"text":18343},{"id":18381,"depth":150,"text":18384},{"id":18505,"depth":150,"text":18508},{"id":18573,"depth":150,"text":18576},{"id":18607,"depth":150,"text":18610},{"id":18641,"depth":150,"text":18644},{"id":18706,"depth":150,"text":18709},{"id":18759,"depth":150,"text":18762},{"id":18793,"depth":150,"text":18796},{"id":18834,"depth":150,"text":18837},{"id":18868,"depth":150,"text":18871},{"id":18909,"depth":150,"text":18912},{"id":18963,"depth":150,"text":18966},{"id":19028,"depth":150,"text":19031},"content:es:blog:quantum-computing-new-vocabulary.md","es\u002Fblog\u002Fquantum-computing-new-vocabulary.md","es\u002Fblog\u002Fquantum-computing-new-vocabulary",{"_path":19161,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":19162,"description":19163,"date":19164,"author":11,"tags":19165,"readingTime":1370,"body":19166,"_type":156,"_id":20178,"_source":158,"_file":20179,"_stem":20180,"_extension":161},"\u002Fes\u002Fblog\u002Fquantum-use-cases-2026","Lo que las computadoras cuánticas realmente pueden hacer en 2026","Una mirada realista a qué aplicaciones de la computación cuántica están listas para producción ahora, cuáles son a corto plazo y cuáles siguen siendo objetivos de investigación a largo plazo — separando el progreso genuino de la exageración.","2026-03-12",[15,2025,7148],{"type":18,"children":19167,"toc":20158},[19168,19173,19178,19184,19189,19222,19227,19230,19236,19242,19252,19262,19272,19282,19292,19457,19460,19466,19475,19484,19502,19512,19521,19524,19530,19539,19556,19565,19582,19585,19591,19600,19609,19626,19636,19639,19645,19651,19660,19669,19679,19689,19692,19698,19723,19732,19741,19744,19750,19759,19768,19777,19786,19789,19795,19801,19810,19820,19830,19846,19849,19855,19864,19873,19882,19885,19891,19900,19909,19918,19921,19927,20093,20112,20123,20128,20154],{"type":21,"tag":22,"props":19169,"children":19170},{},[19171],{"type":26,"value":19172},"\"Las computadoras cuánticas revolucionarán el descubrimiento de fármacos, romperán todo el cifrado y resolverán el cambio climático.\" Ya has escuchado el discurso. Ahora aquí está la respuesta honesta: ¿qué pueden hacer realmente las computadoras cuánticas en 2026, con el hardware que existe hoy?",{"type":21,"tag":22,"props":19174,"children":19175},{},[19176],{"type":26,"value":19177},"La respuesta honesta es matizada — y más interesante de lo que sugieren tanto la exageración como el escepticismo.",{"type":21,"tag":49,"props":19179,"children":19181},{"id":19180},"cómo-pensar-sobre-la-preparación-cuántica",[19182],{"type":26,"value":19183},"Cómo pensar sobre la preparación cuántica",{"type":21,"tag":22,"props":19185,"children":19186},{},[19187],{"type":26,"value":19188},"Las aplicaciones cuánticas se dividen en tres categorías:",{"type":21,"tag":3118,"props":19190,"children":19191},{},[19192,19202,19212],{"type":21,"tag":3122,"props":19193,"children":19194},{},[19195,19200],{"type":21,"tag":180,"props":19196,"children":19197},{},[19198],{"type":26,"value":19199},"Aplicaciones de la era NISQ (ahora):",{"type":26,"value":19201}," Algoritmos que funcionan en el hardware ruidoso actual de 50 a 1000 cúbits con profundidad de circuito limitada. Los resultados pueden ser aproximados. El valor es exploratorio o demostrativo.",{"type":21,"tag":3122,"props":19203,"children":19204},{},[19205,19210],{"type":21,"tag":180,"props":19206,"children":19207},{},[19208],{"type":26,"value":19209},"Aplicaciones a corto plazo (2–7 años):",{"type":26,"value":19211}," Requieren una corrección de errores modesta — de cientos a unos pocos miles de cúbits lógicos. Comienzan a aparecer aceleraciones prácticas para instancias de problemas específicos.",{"type":21,"tag":3122,"props":19213,"children":19214},{},[19215,19220],{"type":21,"tag":180,"props":19216,"children":19217},{},[19218],{"type":26,"value":19219},"Aplicaciones a largo plazo (7–20+ años):",{"type":26,"value":19221}," Requieren millones de cúbits físicos y tolerancia a fallos completa. Impacto transformador.",{"type":21,"tag":22,"props":19223,"children":19224},{},[19225],{"type":26,"value":19226},"La brecha entre la exageración y la realidad proviene principalmente de confundir estas tres categorías.",{"type":21,"tag":18176,"props":19228,"children":19229},{},[],{"type":21,"tag":49,"props":19231,"children":19233},{"id":19232},"lo-que-funciona-ahora-era-nisq",[19234],{"type":26,"value":19235},"Lo que funciona ahora (era NISQ)",{"type":21,"tag":17361,"props":19237,"children":19239},{"id":19238},"simulación-de-química-cuántica-moléculas-limitadas",[19240],{"type":26,"value":19241},"Simulación de química cuántica — Moléculas limitadas",{"type":21,"tag":22,"props":19243,"children":19244},{},[19245,19250],{"type":21,"tag":180,"props":19246,"children":19247},{},[19248],{"type":26,"value":19249},"Qué:",{"type":26,"value":19251}," Simular la energía del estado fundamental de moléculas pequeñas usando VQE.",{"type":21,"tag":22,"props":19253,"children":19254},{},[19255,19260],{"type":21,"tag":180,"props":19256,"children":19257},{},[19258],{"type":26,"value":19259},"Demostrado:",{"type":26,"value":19261}," IBM y otros han calculado energías del estado fundamental para H₂, LiH, BeH₂ e hidrocarburos pequeños en QPU reales. Los resultados coinciden con los métodos clásicos para problemas de 4 a 12 cúbits.",{"type":21,"tag":22,"props":19263,"children":19264},{},[19265,19270],{"type":21,"tag":180,"props":19266,"children":19267},{},[19268],{"type":26,"value":19269},"Valor práctico ahora:",{"type":26,"value":19271}," Investigación y evaluación comparativa. Para moléculas que las computadoras clásicas también pueden simular exactamente, no hay ventaja — pero los métodos se están validando.",{"type":21,"tag":22,"props":19273,"children":19274},{},[19275,19280],{"type":21,"tag":180,"props":19276,"children":19277},{},[19278],{"type":26,"value":19279},"Cuello de botella:",{"type":26,"value":19281}," Escalar a moléculas con relevancia farmacéutica práctica (más de 50 átomos) requiere cientos de cúbits lógicos. No es posible en el hardware ruidoso actual.",{"type":21,"tag":22,"props":19283,"children":19284},{},[19285,19290],{"type":21,"tag":180,"props":19286,"children":19287},{},[19288],{"type":26,"value":19289},"Quién lo está haciendo:",{"type":26,"value":19291}," IBM Quantum, IonQ (para asociaciones de descubrimiento de fármacos), Quantinuum.",{"type":21,"tag":2310,"props":19293,"children":19295},{"className":3188,"code":19294,"language":3190,"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",[19296],{"type":21,"tag":2080,"props":19297,"children":19298},{"__ignoreMap":7},[19299,19320,19327,19335,19405],{"type":21,"tag":2320,"props":19300,"children":19301},{"class":2322,"line":2323},[19302,19306,19311,19315],{"type":21,"tag":2320,"props":19303,"children":19304},{"style":3200},[19305],{"type":26,"value":3213},{"type":21,"tag":2320,"props":19307,"children":19308},{"style":2327},[19309],{"type":26,"value":19310}," hlquantum ",{"type":21,"tag":2320,"props":19312,"children":19313},{"style":3200},[19314],{"type":26,"value":4278},{"type":21,"tag":2320,"props":19316,"children":19317},{"style":2327},[19318],{"type":26,"value":19319}," hlq\n",{"type":21,"tag":2320,"props":19321,"children":19322},{"class":2322,"line":150},[19323],{"type":21,"tag":2320,"props":19324,"children":19325},{"emptyLinePlaceholder":3224},[19326],{"type":26,"value":3227},{"type":21,"tag":2320,"props":19328,"children":19329},{"class":2322,"line":2341},[19330],{"type":21,"tag":2320,"props":19331,"children":19332},{"style":3450},[19333],{"type":26,"value":19334},"# VQE for H2 — works today, results match classical\n",{"type":21,"tag":2320,"props":19336,"children":19337},{"class":2322,"line":2403},[19338,19343,19347,19352,19357,19361,19366,19370,19375,19379,19384,19388,19392,19396,19401],{"type":21,"tag":2320,"props":19339,"children":19340},{"style":2327},[19341],{"type":26,"value":19342},"result ",{"type":21,"tag":2320,"props":19344,"children":19345},{"style":3200},[19346],{"type":26,"value":3240},{"type":21,"tag":2320,"props":19348,"children":19349},{"style":2327},[19350],{"type":26,"value":19351}," hlq.algorithms.vqe(",{"type":21,"tag":2320,"props":19353,"children":19354},{"style":3265},[19355],{"type":26,"value":19356},"molecule",{"type":21,"tag":2320,"props":19358,"children":19359},{"style":3200},[19360],{"type":26,"value":3240},{"type":21,"tag":2320,"props":19362,"children":19363},{"style":2356},[19364],{"type":26,"value":19365},"'H2'",{"type":21,"tag":2320,"props":19367,"children":19368},{"style":2327},[19369],{"type":26,"value":1315},{"type":21,"tag":2320,"props":19371,"children":19372},{"style":3265},[19373],{"type":26,"value":19374},"basis",{"type":21,"tag":2320,"props":19376,"children":19377},{"style":3200},[19378],{"type":26,"value":3240},{"type":21,"tag":2320,"props":19380,"children":19381},{"style":2356},[19382],{"type":26,"value":19383},"'sto-3g'",{"type":21,"tag":2320,"props":19385,"children":19386},{"style":2327},[19387],{"type":26,"value":1315},{"type":21,"tag":2320,"props":19389,"children":19390},{"style":3265},[19391],{"type":26,"value":18469},{"type":21,"tag":2320,"props":19393,"children":19394},{"style":3200},[19395],{"type":26,"value":3240},{"type":21,"tag":2320,"props":19397,"children":19398},{"style":2356},[19399],{"type":26,"value":19400},"'qiskit'",{"type":21,"tag":2320,"props":19402,"children":19403},{"style":2327},[19404],{"type":26,"value":3300},{"type":21,"tag":2320,"props":19406,"children":19407},{"class":2322,"line":2427},[19408,19412,19416,19420,19425,19429,19434,19438,19442,19447,19452],{"type":21,"tag":2320,"props":19409,"children":19410},{"style":2345},[19411],{"type":26,"value":3315},{"type":21,"tag":2320,"props":19413,"children":19414},{"style":2327},[19415],{"type":26,"value":3320},{"type":21,"tag":2320,"props":19417,"children":19418},{"style":3200},[19419],{"type":26,"value":3325},{"type":21,"tag":2320,"props":19421,"children":19422},{"style":2356},[19423],{"type":26,"value":19424},"\"Ground state: ",{"type":21,"tag":2320,"props":19426,"children":19427},{"style":2345},[19428],{"type":26,"value":3335},{"type":21,"tag":2320,"props":19430,"children":19431},{"style":2327},[19432],{"type":26,"value":19433},"result.energy",{"type":21,"tag":2320,"props":19435,"children":19436},{"style":3200},[19437],{"type":26,"value":3647},{"type":21,"tag":2320,"props":19439,"children":19440},{"style":2345},[19441],{"type":26,"value":3345},{"type":21,"tag":2320,"props":19443,"children":19444},{"style":2356},[19445],{"type":26,"value":19446}," Ha\"",{"type":21,"tag":2320,"props":19448,"children":19449},{"style":2327},[19450],{"type":26,"value":19451},")  ",{"type":21,"tag":2320,"props":19453,"children":19454},{"style":3450},[19455],{"type":26,"value":19456},"# -1.1372 Ha\n",{"type":21,"tag":18176,"props":19458,"children":19459},{},[],{"type":21,"tag":17361,"props":19461,"children":19463},{"id":19462},"aprendizaje-automático-cuántico-prueba-de-concepto",[19464],{"type":26,"value":19465},"Aprendizaje automático cuántico — Prueba de concepto",{"type":21,"tag":22,"props":19467,"children":19468},{},[19469,19473],{"type":21,"tag":180,"props":19470,"children":19471},{},[19472],{"type":26,"value":19249},{"type":26,"value":19474}," Redes neuronales cuánticas (QNN) y métodos de núcleo cuántico para clasificación.",{"type":21,"tag":22,"props":19476,"children":19477},{},[19478,19482],{"type":21,"tag":180,"props":19479,"children":19480},{},[19481],{"type":26,"value":19259},{"type":26,"value":19483}," Se ha mostrado que los núcleos cuánticos funcionan en conjuntos de datos de juguete. No se ha demostrado ninguna ventaja cuántica sobre el ML clásico para conjuntos de datos prácticos.",{"type":21,"tag":22,"props":19485,"children":19486},{},[19487,19491,19493,19500],{"type":21,"tag":180,"props":19488,"children":19489},{},[19490],{"type":26,"value":19269},{"type":26,"value":19492}," Investigación. Se aplica el problema del \"",{"type":21,"tag":29,"props":19494,"children":19497},{"href":19495,"rel":19496},"https:\u002F\u002Farxiv.org\u002Fabs\u002F2109.01aborting",[33],[19498],{"type":26,"value":19499},"no free lunch",{"type":26,"value":19501},"\" — la ventaja cuántica en QML, si existe, será para datos específicos con una estructura cuántica específica.",{"type":21,"tag":22,"props":19503,"children":19504},{},[19505,19510],{"type":21,"tag":180,"props":19506,"children":19507},{},[19508],{"type":26,"value":19509},"Caso de uso realista emergente:",{"type":26,"value":19511}," Los núcleos cuánticos para conjuntos de datos que surgen de experimentos de física cuántica pueden tener una estructura cuántica inherente que el ML cuántico explota mejor que los métodos clásicos.",{"type":21,"tag":22,"props":19513,"children":19514},{},[19515,19519],{"type":21,"tag":180,"props":19516,"children":19517},{},[19518],{"type":26,"value":19289},{"type":26,"value":19520}," PennyLane\u002FXanadu (enfoque en QML), IBM, Google (Quantum AI).",{"type":21,"tag":18176,"props":19522,"children":19523},{},[],{"type":21,"tag":17361,"props":19525,"children":19527},{"id":19526},"evaluación-comparativa-de-optimización-qaoa",[19528],{"type":26,"value":19529},"Evaluación comparativa de optimización (QAOA)",{"type":21,"tag":22,"props":19531,"children":19532},{},[19533,19537],{"type":21,"tag":180,"props":19534,"children":19535},{},[19536],{"type":26,"value":19249},{"type":26,"value":19538}," QAOA aplicado a Max-Cut, optimización de carteras, enrutamiento de vehículos.",{"type":21,"tag":22,"props":19540,"children":19541},{},[19542,19546,19548,19554],{"type":21,"tag":180,"props":19543,"children":19544},{},[19545],{"type":26,"value":19259},{"type":26,"value":19547}," Se han ejecutado circuitos QAOA en hardware real. Con ",{"type":21,"tag":2080,"props":19549,"children":19551},{"className":19550},[],[19552],{"type":26,"value":19553},"p=1",{"type":26,"value":19555},", se pueden alcanzar ratios de aproximación de ~0.75 en Max-Cut en dispositivos NISQ.",{"type":21,"tag":22,"props":19557,"children":19558},{},[19559,19563],{"type":21,"tag":180,"props":19560,"children":19561},{},[19562],{"type":26,"value":19269},{"type":26,"value":19564}," No es competitivo con los solucionadores clásicos (recocido simulado, GUROBI) para tamaños de problemas reales. Valioso para la investigación y la evaluación comparativa de hardware.",{"type":21,"tag":22,"props":19566,"children":19567},{},[19568,19573,19575,19580],{"type":21,"tag":180,"props":19569,"children":19570},{},[19571],{"type":26,"value":19572},"Cuándo importa:",{"type":26,"value":19574}," Con ",{"type":21,"tag":2080,"props":19576,"children":19578},{"className":19577},[],[19579],{"type":26,"value":22},{"type":26,"value":19581}," lo suficientemente grande para una ventaja significativa, los circuitos son demasiado profundos para los dispositivos NISQ. Se necesita corrección de errores.",{"type":21,"tag":18176,"props":19583,"children":19584},{},[],{"type":21,"tag":17361,"props":19586,"children":19588},{"id":19587},"muestreo-de-circuitos-aleatorios-afirmaciones-de-supremacía-cuántica",[19589],{"type":26,"value":19590},"Muestreo de circuitos aleatorios (afirmaciones de supremacía cuántica)",{"type":21,"tag":22,"props":19592,"children":19593},{},[19594,19598],{"type":21,"tag":180,"props":19595,"children":19596},{},[19597],{"type":26,"value":19249},{"type":26,"value":19599}," Muestreo de circuitos cuánticos aleatorios.",{"type":21,"tag":22,"props":19601,"children":19602},{},[19603,19607],{"type":21,"tag":180,"props":19604,"children":19605},{},[19606],{"type":26,"value":19259},{"type":26,"value":19608}," Google (2019, Sycamore), IBM (2023, Eagle), grupos chinos (2020, 2021).",{"type":21,"tag":22,"props":19610,"children":19611},{},[19612,19617,19619,19624],{"type":21,"tag":180,"props":19613,"children":19614},{},[19615],{"type":26,"value":19616},"Valor práctico:",{"type":26,"value":19618}," Ninguno actualmente — el muestreo de circuitos aleatorios no tiene ninguna aplicación conocida. Es una prueba de referencia de hardware que demuestra que los dispositivos cuánticos hacen ",{"type":21,"tag":2054,"props":19620,"children":19621},{},[19622],{"type":26,"value":19623},"algo",{"type":26,"value":19625}," que las computadoras clásicas tienen dificultades para simular.",{"type":21,"tag":22,"props":19627,"children":19628},{},[19629,19634],{"type":21,"tag":180,"props":19630,"children":19631},{},[19632],{"type":26,"value":19633},"Por qué importa:",{"type":26,"value":19635}," Valida que el hardware cuántico está funcionando correctamente y que la simulación clásica se está volviendo intratable para ciertos tamaños de circuito.",{"type":21,"tag":18176,"props":19637,"children":19638},{},[],{"type":21,"tag":49,"props":19640,"children":19642},{"id":19641},"lo-que-es-a-corto-plazo-27-años",[19643],{"type":26,"value":19644},"Lo que es a corto plazo (2–7 años)",{"type":21,"tag":17361,"props":19646,"children":19648},{"id":19647},"descubrimiento-de-fármacos-asistido-por-cuántica",[19649],{"type":26,"value":19650},"Descubrimiento de fármacos asistido por cuántica",{"type":21,"tag":22,"props":19652,"children":19653},{},[19654,19658],{"type":21,"tag":180,"props":19655,"children":19656},{},[19657],{"type":26,"value":19249},{"type":26,"value":19659}," Usar la simulación cuántica para modelar las energías de unión proteína-ligando, prediciendo qué candidatos a fármacos vale la pena sintetizar.",{"type":21,"tag":22,"props":19661,"children":19662},{},[19663,19667],{"type":21,"tag":180,"props":19664,"children":19665},{},[19666],{"type":26,"value":19633},{"type":26,"value":19668}," El descubrimiento de fármacos cuesta ~2.5 mil millones de dólares por cada fármaco aprobado. Reducir los ensayos clínicos fallidos mediante un mejor cribado computacional es enormemente valioso.",{"type":21,"tag":22,"props":19670,"children":19671},{},[19672,19677],{"type":21,"tag":180,"props":19673,"children":19674},{},[19675],{"type":26,"value":19676},"Estado actual:",{"type":26,"value":19678}," IBM y socios farmacéuticos (Pfizer, AstraZeneca, JSR) están ejecutando VQE en moléculas de hasta ~50 cúbits en hardware cuántico. Todavía es demostrativo — los métodos clásicos siguen siendo más precisos para moléculas comercialmente relevantes.",{"type":21,"tag":22,"props":19680,"children":19681},{},[19682,19687],{"type":21,"tag":180,"props":19683,"children":19684},{},[19685],{"type":26,"value":19686},"Cuándo se vuelve real:",{"type":26,"value":19688}," Cuando los recuentos de cúbits lógicos alcancen ~1,000–5,000. Entonces la simulación cuántica podrá superar a la clásica para clases moleculares clave. Estimaciones actuales: 5–10 años.",{"type":21,"tag":18176,"props":19690,"children":19691},{},[],{"type":21,"tag":17361,"props":19693,"children":19695},{"id":19694},"finanzas-cuánticas-aceleración-de-monte-carlo",[19696],{"type":26,"value":19697},"Finanzas cuánticas: aceleración de Monte Carlo",{"type":21,"tag":22,"props":19699,"children":19700},{},[19701,19705,19707,19713,19715,19721],{"type":21,"tag":180,"props":19702,"children":19703},{},[19704],{"type":26,"value":19249},{"type":26,"value":19706}," La estimación de amplitud cuántica puede teóricamente acelerar la integración de Monte Carlo de ",{"type":21,"tag":2080,"props":19708,"children":19710},{"className":19709},[],[19711],{"type":26,"value":19712},"O(1\u002Fε²)",{"type":26,"value":19714}," a ",{"type":21,"tag":2080,"props":19716,"children":19718},{"className":19717},[],[19719],{"type":26,"value":19720},"O(1\u002Fε)",{"type":26,"value":19722}," — una aceleración cuadrática que importa enormemente para la fijación de precios de opciones y la simulación de riesgos.",{"type":21,"tag":22,"props":19724,"children":19725},{},[19726,19730],{"type":21,"tag":180,"props":19727,"children":19728},{},[19729],{"type":26,"value":19676},{"type":26,"value":19731}," Goldman Sachs, JPMorgan y BBVA están investigando esto activamente. Se han realizado demostraciones a pequeña escala. Aún no a escala de producción.",{"type":21,"tag":22,"props":19733,"children":19734},{},[19735,19739],{"type":21,"tag":180,"props":19736,"children":19737},{},[19738],{"type":26,"value":19686},{"type":26,"value":19740}," Se necesita una tolerancia a fallos modesta (miles de cúbits lógicos). Las estimaciones oscilan entre 5 y 15 años para aceleraciones financieras prácticas.",{"type":21,"tag":18176,"props":19742,"children":19743},{},[],{"type":21,"tag":17361,"props":19745,"children":19747},{"id":19746},"ciencia-de-materiales-diseño-de-baterías-y-células-solares",[19748],{"type":26,"value":19749},"Ciencia de materiales: diseño de baterías y células solares",{"type":21,"tag":22,"props":19751,"children":19752},{},[19753,19757],{"type":21,"tag":180,"props":19754,"children":19755},{},[19756],{"type":26,"value":19249},{"type":26,"value":19758}," Simulación cuántica de materiales candidatos para baterías de litio-aire, catalizadores de fijación de nitrógeno (reemplazando el proceso Haber-Bosch) y materiales fotovoltaicos.",{"type":21,"tag":22,"props":19760,"children":19761},{},[19762,19766],{"type":21,"tag":180,"props":19763,"children":19764},{},[19765],{"type":26,"value":19633},{"type":26,"value":19767}," Mejores baterías = revolución de los vehículos eléctricos. Fijación eficiente de N₂ = uso de energía para fertilizantes drásticamente reducido (actualmente 1–2% del consumo energético mundial). Estos son problemas de billones de dólares.",{"type":21,"tag":22,"props":19769,"children":19770},{},[19771,19775],{"type":21,"tag":180,"props":19772,"children":19773},{},[19774],{"type":26,"value":19676},{"type":26,"value":19776}," Microsoft (StationQ), IBM y empresas emergentes como QunaSys y Good Chemistry están persiguiendo esto. Investigación en etapa temprana.",{"type":21,"tag":22,"props":19778,"children":19779},{},[19780,19784],{"type":21,"tag":180,"props":19781,"children":19782},{},[19783],{"type":26,"value":19686},{"type":26,"value":19785}," 5–20 años, dependiendo de la precisión objetivo y el tamaño de la molécula.",{"type":21,"tag":18176,"props":19787,"children":19788},{},[],{"type":21,"tag":49,"props":19790,"children":19792},{"id":19791},"lo-que-requiere-tolerancia-a-fallos-completa-720-años",[19793],{"type":26,"value":19794},"Lo que requiere tolerancia a fallos completa (7–20+ años)",{"type":21,"tag":17361,"props":19796,"children":19798},{"id":19797},"romper-rsaecc-con-el-algoritmo-de-shor",[19799],{"type":26,"value":19800},"Romper RSA\u002FECC con el algoritmo de Shor",{"type":21,"tag":22,"props":19802,"children":19803},{},[19804,19808],{"type":21,"tag":180,"props":19805,"children":19806},{},[19807],{"type":26,"value":19249},{"type":26,"value":19809}," Factorizar los grandes números primos que subyacen a RSA-2048.",{"type":21,"tag":22,"props":19811,"children":19812},{},[19813,19818],{"type":21,"tag":180,"props":19814,"children":19815},{},[19816],{"type":26,"value":19817},"Requerido:",{"type":26,"value":19819}," ~4,000 cúbits lógicos (cada uno requiriendo ~1,000 cúbits físicos = ~4 millones de cúbits físicos). Estado actual: cientos de cúbits físicos, muy ruidosos.",{"type":21,"tag":22,"props":19821,"children":19822},{},[19823,19828],{"type":21,"tag":180,"props":19824,"children":19825},{},[19826],{"type":26,"value":19827},"Cronología:",{"type":26,"value":19829}," La mayoría de las estimaciones sitúan las computadoras cuánticas amenazantes para RSA en 2030–2040. Algunos dicen que nunca — los desafíos de ingeniería pueden ser irresolubles a esta escala.",{"type":21,"tag":22,"props":19831,"children":19832},{},[19833,19838,19839,19844],{"type":21,"tag":180,"props":19834,"children":19835},{},[19836],{"type":26,"value":19837},"Qué hacer ahora:",{"type":26,"value":1307},{"type":21,"tag":29,"props":19840,"children":19841},{"href":9379},[19842],{"type":26,"value":19843},"Migrar a la criptografía post-cuántica",{"type":26,"value":19845}," independientemente de la cronología. La transición lleva años, y los ataques HNDL están ocurriendo ahora.",{"type":21,"tag":18176,"props":19847,"children":19848},{},[],{"type":21,"tag":17361,"props":19850,"children":19852},{"id":19851},"búsqueda-de-grover-a-escala",[19853],{"type":26,"value":19854},"Búsqueda de Grover a escala",{"type":21,"tag":22,"props":19856,"children":19857},{},[19858,19862],{"type":21,"tag":180,"props":19859,"children":19860},{},[19861],{"type":26,"value":19249},{"type":26,"value":19863}," Aceleración cuadrática para buscar en bases de datos no ordenadas, resolviendo problemas NP-difíciles.",{"type":21,"tag":22,"props":19865,"children":19866},{},[19867,19871],{"type":21,"tag":180,"props":19868,"children":19869},{},[19870],{"type":26,"value":19817},{"type":26,"value":19872}," Circuitos profundos y con corrección de errores. La aceleración cuadrática significa que √N sigue siendo enorme para N grande — los factores constantes deben favorecer al hardware cuántico.",{"type":21,"tag":22,"props":19874,"children":19875},{},[19876,19880],{"type":21,"tag":180,"props":19877,"children":19878},{},[19879],{"type":26,"value":19827},{"type":26,"value":19881}," Investigación a largo plazo.",{"type":21,"tag":18176,"props":19883,"children":19884},{},[],{"type":21,"tag":17361,"props":19886,"children":19888},{"id":19887},"modelado-climático-y-dinámica-de-fluidos",[19889],{"type":26,"value":19890},"Modelado climático y dinámica de fluidos",{"type":21,"tag":22,"props":19892,"children":19893},{},[19894,19898],{"type":21,"tag":180,"props":19895,"children":19896},{},[19897],{"type":26,"value":19249},{"type":26,"value":19899}," Los algoritmos cuánticos para resolver ecuaciones diferenciales (algoritmo HHL) podrían acelerar las simulaciones climáticas, la dinámica de fluidos y el modelado financiero.",{"type":21,"tag":22,"props":19901,"children":19902},{},[19903,19907],{"type":21,"tag":180,"props":19904,"children":19905},{},[19906],{"type":26,"value":19817},{"type":26,"value":19908}," Tolerancia a fallos completa. El algoritmo HHL tiene una enorme sobrecarga que hace que la ventaja práctica esté lejos de ser clara incluso en teoría.",{"type":21,"tag":22,"props":19910,"children":19911},{},[19912,19916],{"type":21,"tag":180,"props":19913,"children":19914},{},[19915],{"type":26,"value":19827},{"type":26,"value":19917}," Esta es la categoría más especulativa. La ventaja cuántica para resolver EDP sigue sin demostrarse en la práctica.",{"type":21,"tag":18176,"props":19919,"children":19920},{},[],{"type":21,"tag":49,"props":19922,"children":19924},{"id":19923},"la-conclusión-honesta",[19925],{"type":26,"value":19926},"La conclusión honesta",{"type":21,"tag":4066,"props":19928,"children":19929},{},[19930,19951],{"type":21,"tag":4070,"props":19931,"children":19932},{},[19933],{"type":21,"tag":4074,"props":19934,"children":19935},{},[19936,19941,19946],{"type":21,"tag":4078,"props":19937,"children":19938},{},[19939],{"type":26,"value":19940},"Aplicación",{"type":21,"tag":4078,"props":19942,"children":19943},{},[19944],{"type":26,"value":19945},"¿Ventaja cuántica hoy?",{"type":21,"tag":4078,"props":19947,"children":19948},{},[19949],{"type":26,"value":19950},"Horizonte",{"type":21,"tag":4092,"props":19952,"children":19953},{},[19954,19972,19990,20007,20025,20043,20059,20076],{"type":21,"tag":4074,"props":19955,"children":19956},{},[19957,19962,19967],{"type":21,"tag":4099,"props":19958,"children":19959},{},[19960],{"type":26,"value":19961},"Muestreo de circuitos aleatorios",{"type":21,"tag":4099,"props":19963,"children":19964},{},[19965],{"type":26,"value":19966},"Marginal, sin aplicación",{"type":21,"tag":4099,"props":19968,"children":19969},{},[19970],{"type":26,"value":19971},"Ahora (solo investigación)",{"type":21,"tag":4074,"props":19973,"children":19974},{},[19975,19980,19985],{"type":21,"tag":4099,"props":19976,"children":19977},{},[19978],{"type":26,"value":19979},"VQE para moléculas pequeñas",{"type":21,"tag":4099,"props":19981,"children":19982},{},[19983],{"type":26,"value":19984},"Sin ventaja clásica",{"type":21,"tag":4099,"props":19986,"children":19987},{},[19988],{"type":26,"value":19989},"3–5 años para moléculas útiles",{"type":21,"tag":4074,"props":19991,"children":19992},{},[19993,19998,20002],{"type":21,"tag":4099,"props":19994,"children":19995},{},[19996],{"type":26,"value":19997},"QAOA para optimización",{"type":21,"tag":4099,"props":19999,"children":20000},{},[20001],{"type":26,"value":19984},{"type":21,"tag":4099,"props":20003,"children":20004},{},[20005],{"type":26,"value":20006},"5–10 años",{"type":21,"tag":4074,"props":20008,"children":20009},{},[20010,20015,20020],{"type":21,"tag":4099,"props":20011,"children":20012},{},[20013],{"type":26,"value":20014},"QML \u002F núcleos cuánticos",{"type":21,"tag":4099,"props":20016,"children":20017},{},[20018],{"type":26,"value":20019},"Sin ventaja para datos reales",{"type":21,"tag":4099,"props":20021,"children":20022},{},[20023],{"type":26,"value":20024},"Incierto",{"type":21,"tag":4074,"props":20026,"children":20027},{},[20028,20033,20038],{"type":21,"tag":4099,"props":20029,"children":20030},{},[20031],{"type":26,"value":20032},"Descubrimiento de fármacos",{"type":21,"tag":4099,"props":20034,"children":20035},{},[20036],{"type":26,"value":20037},"No",{"type":21,"tag":4099,"props":20039,"children":20040},{},[20041],{"type":26,"value":20042},"7–10 años",{"type":21,"tag":4074,"props":20044,"children":20045},{},[20046,20051,20055],{"type":21,"tag":4099,"props":20047,"children":20048},{},[20049],{"type":26,"value":20050},"Finanzas (Monte Carlo)",{"type":21,"tag":4099,"props":20052,"children":20053},{},[20054],{"type":26,"value":20037},{"type":21,"tag":4099,"props":20056,"children":20057},{},[20058],{"type":26,"value":20006},{"type":21,"tag":4074,"props":20060,"children":20061},{},[20062,20067,20071],{"type":21,"tag":4099,"props":20063,"children":20064},{},[20065],{"type":26,"value":20066},"Simulación de materiales",{"type":21,"tag":4099,"props":20068,"children":20069},{},[20070],{"type":26,"value":20037},{"type":21,"tag":4099,"props":20072,"children":20073},{},[20074],{"type":26,"value":20075},"7–15 años",{"type":21,"tag":4074,"props":20077,"children":20078},{},[20079,20084,20088],{"type":21,"tag":4099,"props":20080,"children":20081},{},[20082],{"type":26,"value":20083},"Criptografía (Shor)",{"type":21,"tag":4099,"props":20085,"children":20086},{},[20087],{"type":26,"value":20037},{"type":21,"tag":4099,"props":20089,"children":20090},{},[20091],{"type":26,"value":20092},"10–20+ años",{"type":21,"tag":22,"props":20094,"children":20095},{},[20096,20098,20103,20105,20110],{"type":26,"value":20097},"El valor cuántico más inmediato ",{"type":21,"tag":180,"props":20099,"children":20100},{},[20101],{"type":26,"value":20102},"no",{"type":26,"value":20104}," está en ejecutar algoritmos — está en ",{"type":21,"tag":180,"props":20106,"children":20107},{},[20108],{"type":26,"value":20109},"aprender el campo temprano",{"type":26,"value":20111},". Empresas como IBM, Google, NVIDIA, AWS, IonQ y decenas de empresas emergentes están contratando ingenieros cuánticos. El conjunto de habilidades — diseño de circuitos, algoritmos variacionales, flujos de trabajo híbridos cuántico-clásicos — es genuinamente raro. Esa brecha se cerrará, y las personas que aprendieron temprano estarán bien posicionadas.",{"type":21,"tag":22,"props":20113,"children":20114},{},[20115,20117,20121],{"type":26,"value":20116},"El segundo valor más inmediato es la ",{"type":21,"tag":180,"props":20118,"children":20119},{},[20120],{"type":26,"value":18727},{"type":26,"value":20122}," — que es un problema de software clásico con una amenaza cuántica, y donde la acción requerida es clara y urgente.",{"type":21,"tag":22,"props":20124,"children":20125},{},[20126],{"type":26,"value":20127},"Para todo lo demás: el hardware es real, el progreso es genuino, la exageración es prematura y la trayectoria es empinada.",{"type":21,"tag":22,"props":20129,"children":20130},{},[20131,20136,20137,20142,20143,20148,20149],{"type":21,"tag":180,"props":20132,"children":20133},{},[20134],{"type":26,"value":20135},"Explora el hardware:",{"type":26,"value":1307},{"type":21,"tag":29,"props":20138,"children":20139},{"href":249},[20140],{"type":26,"value":20141},"Acceso gratuito a QPU",{"type":26,"value":7112},{"type":21,"tag":29,"props":20144,"children":20145},{"href":446},[20146],{"type":26,"value":20147},"Compara todos los simuladores",{"type":26,"value":7112},{"type":21,"tag":29,"props":20150,"children":20151},{"href":11505},[20152],{"type":26,"value":20153},"Análisis a fondo de casos de uso cuánticos",{"type":21,"tag":2694,"props":20155,"children":20156},{},[20157],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":20159},[20160,20161,20167,20172,20177],{"id":19180,"depth":150,"text":19183},{"id":19232,"depth":150,"text":19235,"children":20162},[20163,20164,20165,20166],{"id":19238,"depth":2341,"text":19241},{"id":19462,"depth":2341,"text":19465},{"id":19526,"depth":2341,"text":19529},{"id":19587,"depth":2341,"text":19590},{"id":19641,"depth":150,"text":19644,"children":20168},[20169,20170,20171],{"id":19647,"depth":2341,"text":19650},{"id":19694,"depth":2341,"text":19697},{"id":19746,"depth":2341,"text":19749},{"id":19791,"depth":150,"text":19794,"children":20173},[20174,20175,20176],{"id":19797,"depth":2341,"text":19800},{"id":19851,"depth":2341,"text":19854},{"id":19887,"depth":2341,"text":19890},{"id":19923,"depth":150,"text":19926},"content:es:blog:quantum-use-cases-2026.md","es\u002Fblog\u002Fquantum-use-cases-2026.md","es\u002Fblog\u002Fquantum-use-cases-2026",{"_path":20182,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":20183,"description":20184,"date":20185,"author":11,"tags":20186,"readingTime":854,"body":20188,"_type":156,"_id":21025,"_source":158,"_file":21026,"_stem":21027,"_extension":161},"\u002Fes\u002Fblog\u002Fgetting-started-free-quantum-computing","Primeros pasos con la computación cuántica gratuita en 2026","Una guía completa para principiantes sobre cómo ejecutar tu primer circuito cuántico gratis — sin hardware costoso, sin suscripciones de pago.","2026-03-10",[7149,20187,1369],"Simulators",{"type":18,"children":20189,"toc":21017},[20190,20195,20201,20206,20239,20244,20250,20255,20280,20292,20502,20536,20542,20547,20621,20641,20647,20659,20686,20772,20780,20785,20791,20905,20916,20922,20927,20976,20992,20995,21013],{"type":21,"tag":22,"props":20191,"children":20192},{},[20193],{"type":26,"value":20194},"La computación cuántica ya no está encerrada tras equipos de laboratorios de investigación que cuestan millones de dólares. Hoy puedes escribir y ejecutar un circuito cuántico en una máquina real de 127 cúbits — gratis — desde tu portátil. Esta guía te muestra todas las opciones disponibles para ti ahora mismo.",{"type":21,"tag":49,"props":20196,"children":20198},{"id":20197},"lo-que-realmente-necesitas",[20199],{"type":26,"value":20200},"Lo que realmente necesitas",{"type":21,"tag":22,"props":20202,"children":20203},{},[20204],{"type":26,"value":20205},"Para empezar, necesitas exactamente tres cosas:",{"type":21,"tag":7007,"props":20207,"children":20208},{},[20209,20219,20229],{"type":21,"tag":3122,"props":20210,"children":20211},{},[20212,20217],{"type":21,"tag":180,"props":20213,"children":20214},{},[20215],{"type":26,"value":20216},"Python 3.9+",{"type":26,"value":20218}," instalado en tu máquina",{"type":21,"tag":3122,"props":20220,"children":20221},{},[20222,20227],{"type":21,"tag":180,"props":20223,"children":20224},{},[20225],{"type":26,"value":20226},"Una cuenta gratuita",{"type":26,"value":20228}," en una de las plataformas cuánticas en la nube (IBM Quantum es la más sencilla)",{"type":21,"tag":3122,"props":20230,"children":20231},{},[20232,20237],{"type":21,"tag":180,"props":20233,"children":20234},{},[20235],{"type":26,"value":20236},"Cinco minutos",{"type":26,"value":20238}," para ejecutar tu primer estado de Bell",{"type":21,"tag":22,"props":20240,"children":20241},{},[20242],{"type":26,"value":20243},"Eso es todo. Sin GPU. Sin hardware especial. Sin tarjeta de crédito.",{"type":21,"tag":49,"props":20245,"children":20247},{"id":20246},"tu-primer-circuito-cuántico",[20248],{"type":26,"value":20249},"Tu primer circuito cuántico",{"type":21,"tag":22,"props":20251,"children":20252},{},[20253],{"type":26,"value":20254},"Instala Qiskit y su simulador:",{"type":21,"tag":2310,"props":20256,"children":20257},{"className":9743,"code":11782,"language":9745,"meta":7,"style":7},[20258],{"type":21,"tag":2080,"props":20259,"children":20260},{"__ignoreMap":7},[20261],{"type":21,"tag":2320,"props":20262,"children":20263},{"class":2322,"line":2323},[20264,20268,20272,20276],{"type":21,"tag":2320,"props":20265,"children":20266},{"style":4364},[20267],{"type":26,"value":11794},{"type":21,"tag":2320,"props":20269,"children":20270},{"style":2356},[20271],{"type":26,"value":11799},{"type":21,"tag":2320,"props":20273,"children":20274},{"style":2356},[20275],{"type":26,"value":11804},{"type":21,"tag":2320,"props":20277,"children":20278},{"style":2356},[20279],{"type":26,"value":11809},{"type":21,"tag":22,"props":20281,"children":20282},{},[20283,20285,20290],{"type":26,"value":20284},"Ahora crea un ",{"type":21,"tag":180,"props":20286,"children":20287},{},[20288],{"type":26,"value":20289},"estado de Bell",{"type":26,"value":20291}," — el circuito de dos cúbits por excelencia que demuestra la superposición y el entrelazamiento:",{"type":21,"tag":2310,"props":20293,"children":20295},{"className":3188,"code":20294,"language":3190,"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",[20296],{"type":21,"tag":2080,"props":20297,"children":20298},{"__ignoreMap":7},[20299,20319,20338,20345,20353,20376,20397,20426,20433,20440,20448,20482,20494],{"type":21,"tag":2320,"props":20300,"children":20301},{"class":2322,"line":2323},[20302,20306,20310,20314],{"type":21,"tag":2320,"props":20303,"children":20304},{"style":3200},[20305],{"type":26,"value":3203},{"type":21,"tag":2320,"props":20307,"children":20308},{"style":2327},[20309],{"type":26,"value":4295},{"type":21,"tag":2320,"props":20311,"children":20312},{"style":3200},[20313],{"type":26,"value":3213},{"type":21,"tag":2320,"props":20315,"children":20316},{"style":2327},[20317],{"type":26,"value":20318}," QuantumCircuit\n",{"type":21,"tag":2320,"props":20320,"children":20321},{"class":2322,"line":150},[20322,20326,20330,20334],{"type":21,"tag":2320,"props":20323,"children":20324},{"style":3200},[20325],{"type":26,"value":3203},{"type":21,"tag":2320,"props":20327,"children":20328},{"style":2327},[20329],{"type":26,"value":4316},{"type":21,"tag":2320,"props":20331,"children":20332},{"style":3200},[20333],{"type":26,"value":3213},{"type":21,"tag":2320,"props":20335,"children":20336},{"style":2327},[20337],{"type":26,"value":4325},{"type":21,"tag":2320,"props":20339,"children":20340},{"class":2322,"line":2341},[20341],{"type":21,"tag":2320,"props":20342,"children":20343},{"emptyLinePlaceholder":3224},[20344],{"type":26,"value":3227},{"type":21,"tag":2320,"props":20346,"children":20347},{"class":2322,"line":2403},[20348],{"type":21,"tag":2320,"props":20349,"children":20350},{"style":3450},[20351],{"type":26,"value":20352},"# Build the circuit\n",{"type":21,"tag":2320,"props":20354,"children":20355},{"class":2322,"line":2427},[20356,20360,20364,20368,20372],{"type":21,"tag":2320,"props":20357,"children":20358},{"style":2327},[20359],{"type":26,"value":7382},{"type":21,"tag":2320,"props":20361,"children":20362},{"style":3200},[20363],{"type":26,"value":3240},{"type":21,"tag":2320,"props":20365,"children":20366},{"style":2327},[20367],{"type":26,"value":5138},{"type":21,"tag":2320,"props":20369,"children":20370},{"style":2345},[20371],{"type":26,"value":2419},{"type":21,"tag":2320,"props":20373,"children":20374},{"style":2327},[20375],{"type":26,"value":3300},{"type":21,"tag":2320,"props":20377,"children":20378},{"class":2322,"line":854},[20379,20383,20387,20392],{"type":21,"tag":2320,"props":20380,"children":20381},{"style":2327},[20382],{"type":26,"value":7398},{"type":21,"tag":2320,"props":20384,"children":20385},{"style":2345},[20386],{"type":26,"value":5168},{"type":21,"tag":2320,"props":20388,"children":20389},{"style":2327},[20390],{"type":26,"value":20391},")       ",{"type":21,"tag":2320,"props":20393,"children":20394},{"style":3450},[20395],{"type":26,"value":20396},"# Hadamard — puts qubit 0 into superposition\n",{"type":21,"tag":2320,"props":20398,"children":20399},{"class":2322,"line":171},[20400,20405,20409,20413,20417,20421],{"type":21,"tag":2320,"props":20401,"children":20402},{"style":2327},[20403],{"type":26,"value":20404},"qc.cx(",{"type":21,"tag":2320,"props":20406,"children":20407},{"style":2345},[20408],{"type":26,"value":5168},{"type":21,"tag":2320,"props":20410,"children":20411},{"style":2327},[20412],{"type":26,"value":1315},{"type":21,"tag":2320,"props":20414,"children":20415},{"style":2345},[20416],{"type":26,"value":3556},{"type":21,"tag":2320,"props":20418,"children":20419},{"style":2327},[20420],{"type":26,"value":6756},{"type":21,"tag":2320,"props":20422,"children":20423},{"style":3450},[20424],{"type":26,"value":20425},"# CNOT — entangles qubit 1 with qubit 0\n",{"type":21,"tag":2320,"props":20427,"children":20428},{"class":2322,"line":16},[20429],{"type":21,"tag":2320,"props":20430,"children":20431},{"style":2327},[20432],{"type":26,"value":13089},{"type":21,"tag":2320,"props":20434,"children":20435},{"class":2322,"line":1370},[20436],{"type":21,"tag":2320,"props":20437,"children":20438},{"emptyLinePlaceholder":3224},[20439],{"type":26,"value":3227},{"type":21,"tag":2320,"props":20441,"children":20442},{"class":2322,"line":3446},[20443],{"type":21,"tag":2320,"props":20444,"children":20445},{"style":3450},[20446],{"type":26,"value":20447},"# Run locally on a simulator\n",{"type":21,"tag":2320,"props":20449,"children":20450},{"class":2322,"line":3456},[20451,20455,20459,20464,20468,20472,20477],{"type":21,"tag":2320,"props":20452,"children":20453},{"style":2327},[20454],{"type":26,"value":19342},{"type":21,"tag":2320,"props":20456,"children":20457},{"style":3200},[20458],{"type":26,"value":3240},{"type":21,"tag":2320,"props":20460,"children":20461},{"style":2327},[20462],{"type":26,"value":20463}," AerSimulator().run(qc, ",{"type":21,"tag":2320,"props":20465,"children":20466},{"style":3265},[20467],{"type":26,"value":4123},{"type":21,"tag":2320,"props":20469,"children":20470},{"style":3200},[20471],{"type":26,"value":3240},{"type":21,"tag":2320,"props":20473,"children":20474},{"style":2345},[20475],{"type":26,"value":20476},"1000",{"type":21,"tag":2320,"props":20478,"children":20479},{"style":2327},[20480],{"type":26,"value":20481},").result()\n",{"type":21,"tag":2320,"props":20483,"children":20484},{"class":2322,"line":474},[20485,20489],{"type":21,"tag":2320,"props":20486,"children":20487},{"style":2345},[20488],{"type":26,"value":3315},{"type":21,"tag":2320,"props":20490,"children":20491},{"style":2327},[20492],{"type":26,"value":20493},"(result.get_counts())\n",{"type":21,"tag":2320,"props":20495,"children":20496},{"class":2322,"line":3516},[20497],{"type":21,"tag":2320,"props":20498,"children":20499},{"style":3450},[20500],{"type":26,"value":20501},"# {'00': 503, '11': 497}\n",{"type":21,"tag":22,"props":20503,"children":20504},{},[20505,20507,20512,20513,20518,20520,20526,20528,20534],{"type":26,"value":20506},"El resultado — conteos aproximadamente iguales de ",{"type":21,"tag":2080,"props":20508,"children":20510},{"className":20509},[],[20511],{"type":26,"value":5676},{"type":26,"value":726},{"type":21,"tag":2080,"props":20514,"children":20516},{"className":20515},[],[20517],{"type":26,"value":5683},{"type":26,"value":20519},", nunca ",{"type":21,"tag":2080,"props":20521,"children":20523},{"className":20522},[],[20524],{"type":26,"value":20525},"01",{"type":26,"value":20527}," ni ",{"type":21,"tag":2080,"props":20529,"children":20531},{"className":20530},[],[20532],{"type":26,"value":20533},"10",{"type":26,"value":20535}," — es la firma del entrelazamiento. Mide un cúbit e inmediatamente conoces el otro, sin importar la distancia entre ellos.",{"type":21,"tag":49,"props":20537,"children":20539},{"id":20538},"simuladores-gratuitos-sin-cuenta-necesaria",[20540],{"type":26,"value":20541},"Simuladores gratuitos: sin cuenta necesaria",{"type":21,"tag":22,"props":20543,"children":20544},{},[20545],{"type":26,"value":20546},"Todos los SDK principales incluyen potentes simuladores locales que se ejecutan en tu CPU o GPU sin necesidad de registrarse:",{"type":21,"tag":2310,"props":20548,"children":20550},{"className":9743,"code":20549,"language":9745,"meta":7,"style":7},"pip install qiskit qiskit-aer   # IBM Qiskit + Aer simulator\npip install cirq                 # Google Cirq\npip install pennylane            # PennyLane\n",[20551],{"type":21,"tag":2080,"props":20552,"children":20553},{"__ignoreMap":7},[20554,20579,20600],{"type":21,"tag":2320,"props":20555,"children":20556},{"class":2322,"line":2323},[20557,20561,20565,20569,20574],{"type":21,"tag":2320,"props":20558,"children":20559},{"style":4364},[20560],{"type":26,"value":11794},{"type":21,"tag":2320,"props":20562,"children":20563},{"style":2356},[20564],{"type":26,"value":11799},{"type":21,"tag":2320,"props":20566,"children":20567},{"style":2356},[20568],{"type":26,"value":11804},{"type":21,"tag":2320,"props":20570,"children":20571},{"style":2356},[20572],{"type":26,"value":20573}," qiskit-aer",{"type":21,"tag":2320,"props":20575,"children":20576},{"style":3450},[20577],{"type":26,"value":20578},"   # IBM Qiskit + Aer simulator\n",{"type":21,"tag":2320,"props":20580,"children":20581},{"class":2322,"line":150},[20582,20586,20590,20595],{"type":21,"tag":2320,"props":20583,"children":20584},{"style":4364},[20585],{"type":26,"value":11794},{"type":21,"tag":2320,"props":20587,"children":20588},{"style":2356},[20589],{"type":26,"value":11799},{"type":21,"tag":2320,"props":20591,"children":20592},{"style":2356},[20593],{"type":26,"value":20594}," cirq",{"type":21,"tag":2320,"props":20596,"children":20597},{"style":3450},[20598],{"type":26,"value":20599},"                 # Google Cirq\n",{"type":21,"tag":2320,"props":20601,"children":20602},{"class":2322,"line":2341},[20603,20607,20611,20616],{"type":21,"tag":2320,"props":20604,"children":20605},{"style":4364},[20606],{"type":26,"value":11794},{"type":21,"tag":2320,"props":20608,"children":20609},{"style":2356},[20610],{"type":26,"value":11799},{"type":21,"tag":2320,"props":20612,"children":20613},{"style":2356},[20614],{"type":26,"value":20615}," pennylane",{"type":21,"tag":2320,"props":20617,"children":20618},{"style":3450},[20619],{"type":26,"value":20620},"            # PennyLane\n",{"type":21,"tag":22,"props":20622,"children":20623},{},[20624,20626,20632,20634,20639],{"type":26,"value":20625},"Cada uno gestiona con soltura circuitos de 20 a 30 cúbits. Para circuitos grandes o aceleración por GPU, ",{"type":21,"tag":29,"props":20627,"children":20629},{"href":20628},"\u002Fsdks\u002Fcudaq",[20630],{"type":26,"value":20631},"NVIDIA CUDA-Q",{"type":26,"value":20633}," puede simular más de 34 cúbits en una sola GPU. Consulta la ",{"type":21,"tag":29,"props":20635,"children":20636},{"href":446},[20637],{"type":26,"value":20638},"guía de simuladores",{"type":26,"value":20640}," completa para una comparación detallada.",{"type":21,"tag":49,"props":20642,"children":20644},{"id":20643},"hardware-real-gratuito-ibm-quantum",[20645],{"type":26,"value":20646},"Hardware real gratuito: IBM Quantum",{"type":21,"tag":22,"props":20648,"children":20649},{},[20650,20652,20657],{"type":26,"value":20651},"IBM Quantum ofrece acceso ",{"type":21,"tag":180,"props":20653,"children":20654},{},[20655],{"type":26,"value":20656},"completamente gratuito",{"type":26,"value":20658}," a procesadores cuánticos reales para cualquiera que tenga un IBM ID:",{"type":21,"tag":7007,"props":20660,"children":20661},{},[20662,20676,20681],{"type":21,"tag":3122,"props":20663,"children":20664},{},[20665,20667,20674],{"type":26,"value":20666},"Ve a ",{"type":21,"tag":29,"props":20668,"children":20671},{"href":20669,"rel":20670},"https:\u002F\u002Fquantum.ibm.com\u002F",[33],[20672],{"type":26,"value":20673},"quantum.ibm.com",{"type":26,"value":20675}," y crea una cuenta gratuita",{"type":21,"tag":3122,"props":20677,"children":20678},{},[20679],{"type":26,"value":20680},"Copia tu token de API desde la configuración de la cuenta",{"type":21,"tag":3122,"props":20682,"children":20683},{},[20684],{"type":26,"value":20685},"Configura Qiskit con tu token:",{"type":21,"tag":2310,"props":20687,"children":20689},{"className":3188,"code":20688,"language":3190,"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",[20690],{"type":21,"tag":2080,"props":20691,"children":20692},{"__ignoreMap":7},[20693,20712,20719,20727,20748,20765],{"type":21,"tag":2320,"props":20694,"children":20695},{"class":2322,"line":2323},[20696,20700,20704,20708],{"type":21,"tag":2320,"props":20697,"children":20698},{"style":3200},[20699],{"type":26,"value":3203},{"type":21,"tag":2320,"props":20701,"children":20702},{"style":2327},[20703],{"type":26,"value":3208},{"type":21,"tag":2320,"props":20705,"children":20706},{"style":3200},[20707],{"type":26,"value":3213},{"type":21,"tag":2320,"props":20709,"children":20710},{"style":2327},[20711],{"type":26,"value":3218},{"type":21,"tag":2320,"props":20713,"children":20714},{"class":2322,"line":150},[20715],{"type":21,"tag":2320,"props":20716,"children":20717},{"emptyLinePlaceholder":3224},[20718],{"type":26,"value":3227},{"type":21,"tag":2320,"props":20720,"children":20721},{"class":2322,"line":2341},[20722],{"type":21,"tag":2320,"props":20723,"children":20724},{"style":2327},[20725],{"type":26,"value":20726},"QiskitRuntimeService.save_account(\n",{"type":21,"tag":2320,"props":20728,"children":20729},{"class":2322,"line":2403},[20730,20735,20739,20744],{"type":21,"tag":2320,"props":20731,"children":20732},{"style":3265},[20733],{"type":26,"value":20734},"    channel",{"type":21,"tag":2320,"props":20736,"children":20737},{"style":3200},[20738],{"type":26,"value":3240},{"type":21,"tag":2320,"props":20740,"children":20741},{"style":2356},[20742],{"type":26,"value":20743},"\"ibm_quantum\"",{"type":21,"tag":2320,"props":20745,"children":20746},{"style":2327},[20747],{"type":26,"value":2424},{"type":21,"tag":2320,"props":20749,"children":20750},{"class":2322,"line":2427},[20751,20756,20760],{"type":21,"tag":2320,"props":20752,"children":20753},{"style":3265},[20754],{"type":26,"value":20755},"    token",{"type":21,"tag":2320,"props":20757,"children":20758},{"style":3200},[20759],{"type":26,"value":3240},{"type":21,"tag":2320,"props":20761,"children":20762},{"style":2356},[20763],{"type":26,"value":20764},"\"YOUR_TOKEN_HERE\"\n",{"type":21,"tag":2320,"props":20766,"children":20767},{"class":2322,"line":854},[20768],{"type":21,"tag":2320,"props":20769,"children":20770},{"style":2327},[20771],{"type":26,"value":3300},{"type":21,"tag":7007,"props":20773,"children":20774},{"start":2403},[20775],{"type":21,"tag":3122,"props":20776,"children":20777},{},[20778],{"type":26,"value":20779},"Envía trabajos a cualquiera de las QPU públicas gratuitas de IBM",{"type":21,"tag":22,"props":20781,"children":20782},{},[20783],{"type":26,"value":20784},"Los tiempos de cola en los sistemas públicos suelen ser de unos pocos minutos a unas pocas horas. Compartes el tiempo con investigadores y estudiantes de todo el mundo — ese es el único inconveniente.",{"type":21,"tag":49,"props":20786,"children":20788},{"id":20787},"cómo-elegir-tu-primer-sdk",[20789],{"type":26,"value":20790},"Cómo elegir tu primer SDK",{"type":21,"tag":4066,"props":20792,"children":20793},{},[20794,20815],{"type":21,"tag":4070,"props":20795,"children":20796},{},[20797],{"type":21,"tag":4074,"props":20798,"children":20799},{},[20800,20805,20810],{"type":21,"tag":4078,"props":20801,"children":20802},{},[20803],{"type":26,"value":20804},"SDK",{"type":21,"tag":4078,"props":20806,"children":20807},{},[20808],{"type":26,"value":20809},"Ideal para",{"type":21,"tag":4078,"props":20811,"children":20812},{},[20813],{"type":26,"value":20814},"Nivel gratuito",{"type":21,"tag":4092,"props":20816,"children":20817},{},[20818,20836,20853,20870,20888],{"type":21,"tag":4074,"props":20819,"children":20820},{},[20821,20826,20831],{"type":21,"tag":4099,"props":20822,"children":20823},{},[20824],{"type":26,"value":20825},"IBM Qiskit",{"type":21,"tag":4099,"props":20827,"children":20828},{},[20829],{"type":26,"value":20830},"Uso general, hardware real",{"type":21,"tag":4099,"props":20832,"children":20833},{},[20834],{"type":26,"value":20835},"Completo — local + QPU real",{"type":21,"tag":4074,"props":20837,"children":20838},{},[20839,20843,20848],{"type":21,"tag":4099,"props":20840,"children":20841},{},[20842],{"type":26,"value":13785},{"type":21,"tag":4099,"props":20844,"children":20845},{},[20846],{"type":26,"value":20847},"ML cuántico, gradientes",{"type":21,"tag":4099,"props":20849,"children":20850},{},[20851],{"type":26,"value":20852},"Completo — simuladores locales",{"type":21,"tag":4074,"props":20854,"children":20855},{},[20856,20861,20866],{"type":21,"tag":4099,"props":20857,"children":20858},{},[20859],{"type":26,"value":20860},"Google Cirq",{"type":21,"tag":4099,"props":20862,"children":20863},{},[20864],{"type":26,"value":20865},"Investigación NISQ",{"type":21,"tag":4099,"props":20867,"children":20868},{},[20869],{"type":26,"value":20852},{"type":21,"tag":4074,"props":20871,"children":20872},{},[20873,20878,20883],{"type":21,"tag":4099,"props":20874,"children":20875},{},[20876],{"type":26,"value":20877},"Amazon Braket",{"type":21,"tag":4099,"props":20879,"children":20880},{},[20881],{"type":26,"value":20882},"Integración con AWS",{"type":21,"tag":4099,"props":20884,"children":20885},{},[20886],{"type":26,"value":20887},"Simulación local gratuita, nube de pago",{"type":21,"tag":4074,"props":20889,"children":20890},{},[20891,20895,20900],{"type":21,"tag":4099,"props":20892,"children":20893},{},[20894],{"type":26,"value":20631},{"type":21,"tag":4099,"props":20896,"children":20897},{},[20898],{"type":26,"value":20899},"Aceleración por GPU",{"type":21,"tag":4099,"props":20901,"children":20902},{},[20903],{"type":26,"value":20904},"Completo — GPU local",{"type":21,"tag":22,"props":20906,"children":20907},{},[20908,20910,20914],{"type":26,"value":20909},"Para la mayoría de los principiantes, ",{"type":21,"tag":180,"props":20911,"children":20912},{},[20913],{"type":26,"value":1369},{"type":26,"value":20915}," es el mejor punto de partida — tiene la comunidad más grande, la documentación más extensa y acceso directo a hardware real de IBM.",{"type":21,"tag":49,"props":20917,"children":20919},{"id":20918},"qué-construir-a-continuación",[20920],{"type":26,"value":20921},"Qué construir a continuación",{"type":21,"tag":22,"props":20923,"children":20924},{},[20925],{"type":26,"value":20926},"Una vez que tu estado de Bell funcione, aquí tienes una progresión de circuitos interesantes que probar:",{"type":21,"tag":3118,"props":20928,"children":20929},{},[20930,20947,20957,20967],{"type":21,"tag":3122,"props":20931,"children":20932},{},[20933,20938,20940,20946],{"type":21,"tag":180,"props":20934,"children":20935},{},[20936],{"type":26,"value":20937},"Estado GHZ",{"type":26,"value":20939}," — un estado entrelazado de 3 cúbits (",{"type":21,"tag":2080,"props":20941,"children":20943},{"className":20942},[],[20944],{"type":26,"value":20945},"h(0).cx(0,1).cx(0,2)",{"type":26,"value":17272},{"type":21,"tag":3122,"props":20948,"children":20949},{},[20950,20955],{"type":21,"tag":180,"props":20951,"children":20952},{},[20953],{"type":26,"value":20954},"Teletransportación cuántica",{"type":26,"value":20956}," — transfiere el estado de un cúbit usando entrelazamiento y comunicación clásica",{"type":21,"tag":3122,"props":20958,"children":20959},{},[20960,20965],{"type":21,"tag":180,"props":20961,"children":20962},{},[20963],{"type":26,"value":20964},"Búsqueda de Grover",{"type":26,"value":20966}," — encuentra un elemento marcado en una lista de forma cuadráticamente más rápida que la fuerza bruta",{"type":21,"tag":3122,"props":20968,"children":20969},{},[20970,20974],{"type":21,"tag":180,"props":20971,"children":20972},{},[20973],{"type":26,"value":328},{"type":26,"value":20975}," — estima las energías del estado fundamental molecular con un algoritmo variacional",{"type":21,"tag":22,"props":20977,"children":20978},{},[20979,20981,20985,20986,20990],{"type":26,"value":20980},"Consulta la ",{"type":21,"tag":29,"props":20982,"children":20983},{"href":446},[20984],{"type":26,"value":20638},{"type":26,"value":3707},{"type":21,"tag":29,"props":20987,"children":20988},{"href":249},[20989],{"type":26,"value":724},{"type":26,"value":20991}," para profundizar más.",{"type":21,"tag":18176,"props":20993,"children":20994},{},[],{"type":21,"tag":22,"props":20996,"children":20997},{},[20998,21000,21005,21007,21011],{"type":26,"value":20999},"💡 ",{"type":21,"tag":180,"props":21001,"children":21002},{},[21003],{"type":26,"value":21004},"Consejo:",{"type":26,"value":21006}," Si planeas experimentar con varios SDK sin reescribir tus circuitos cada vez, ",{"type":21,"tag":29,"props":21008,"children":21009},{"href":19017},[21010],{"type":26,"value":19020},{"type":26,"value":21012}," proporciona una API unificada que ejecuta el mismo circuito en Qiskit, Cirq, PennyLane, Braket, CUDA-Q o IonQ con un solo indicador de backend.",{"type":21,"tag":2694,"props":21014,"children":21015},{},[21016],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":21018},[21019,21020,21021,21022,21023,21024],{"id":20197,"depth":150,"text":20200},{"id":20246,"depth":150,"text":20249},{"id":20538,"depth":150,"text":20541},{"id":20643,"depth":150,"text":20646},{"id":20787,"depth":150,"text":20790},{"id":20918,"depth":150,"text":20921},"content:es:blog:getting-started-free-quantum-computing.md","es\u002Fblog\u002Fgetting-started-free-quantum-computing.md","es\u002Fblog\u002Fgetting-started-free-quantum-computing",{"_path":21029,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":21030,"description":21031,"date":21032,"author":11,"tags":21033,"readingTime":171,"body":21035,"_type":156,"_id":23494,"_source":158,"_file":23495,"_stem":23496,"_extension":161},"\u002Fes\u002Fblog\u002Fhlquantum-vs-qiskit","HLQuantum vs Qiskit puro: cuándo usar una capa de abstracción","Una comparación práctica entre escribir circuitos cuánticos directamente en Qiskit y usar la API unificada de HLQuantum — con código lado a lado y un marco para decidir cuál usar.","2026-03-08",[19020,1369,7149,21034],"Best Practices",{"type":18,"children":21036,"toc":23484},[21037,21042,21047,21053,21062,21071,21077,21085,21317,21325,21486,21491,21497,21505,22021,22029,22366,22371,22377,22385,22776,22784,23027,23032,23038,23043,23125,23131,23136,23211,23217,23222,23431,23436,23442,23450,23455,23480],{"type":21,"tag":22,"props":21038,"children":21039},{},[21040],{"type":26,"value":21041},"Hay una pregunta real al comenzar un proyecto de computación cuántica: ¿deberías escribir los circuitos directamente en Qiskit o usar la capa de abstracción de HLQuantum por encima? Ambas son opciones válidas, y la respuesta correcta depende de lo que estés construyendo.",{"type":21,"tag":22,"props":21043,"children":21044},{},[21045],{"type":26,"value":21046},"Esta publicación te ofrece una comparación concreta y basada en código para ayudarte a decidir.",{"type":21,"tag":49,"props":21048,"children":21050},{"id":21049},"la-diferencia-fundamental",[21051],{"type":26,"value":21052},"La diferencia fundamental",{"type":21,"tag":22,"props":21054,"children":21055},{},[21056,21060],{"type":21,"tag":180,"props":21057,"children":21058},{},[21059],{"type":26,"value":1369},{"type":26,"value":21061}," es el SDK cuántico de IBM. Te da control directo y preciso sobre cada puerta, qubit, medición y paso de compilación. Está orientado nativamente al hardware de IBM y tiene el ecosistema más profundo para flujos de trabajo específicos de IBM.",{"type":21,"tag":22,"props":21063,"children":21064},{},[21065,21069],{"type":21,"tag":180,"props":21066,"children":21067},{},[21068],{"type":26,"value":19020},{"type":26,"value":21070}," es una API unificada que se sitúa por encima de Qiskit, Cirq, PennyLane, Braket, CUDA-Q e IonQ. Escribes un solo circuito; este lo traduce y lo despacha a cualquiera que sea el backend al que lo apuntes. Sacrifica algo de control de bajo nivel a cambio de portabilidad y simplicidad.",{"type":21,"tag":49,"props":21072,"children":21074},{"id":21073},"lado-a-lado-estado-de-bell",[21075],{"type":26,"value":21076},"Lado a lado: estado de Bell",{"type":21,"tag":22,"props":21078,"children":21079},{},[21080],{"type":21,"tag":180,"props":21081,"children":21082},{},[21083],{"type":26,"value":21084},"Qiskit puro:",{"type":21,"tag":2310,"props":21086,"children":21088},{"code":21087,"language":3190,"meta":7,"className":3188,"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",[21089],{"type":21,"tag":2080,"props":21090,"children":21091},{"__ignoreMap":7},[21092,21111,21130,21137,21168,21183,21206,21246,21253,21268,21300],{"type":21,"tag":2320,"props":21093,"children":21094},{"class":2322,"line":2323},[21095,21099,21103,21107],{"type":21,"tag":2320,"props":21096,"children":21097},{"style":3200},[21098],{"type":26,"value":3203},{"type":21,"tag":2320,"props":21100,"children":21101},{"style":2327},[21102],{"type":26,"value":4295},{"type":21,"tag":2320,"props":21104,"children":21105},{"style":3200},[21106],{"type":26,"value":3213},{"type":21,"tag":2320,"props":21108,"children":21109},{"style":2327},[21110],{"type":26,"value":20318},{"type":21,"tag":2320,"props":21112,"children":21113},{"class":2322,"line":150},[21114,21118,21122,21126],{"type":21,"tag":2320,"props":21115,"children":21116},{"style":3200},[21117],{"type":26,"value":3203},{"type":21,"tag":2320,"props":21119,"children":21120},{"style":2327},[21121],{"type":26,"value":4316},{"type":21,"tag":2320,"props":21123,"children":21124},{"style":3200},[21125],{"type":26,"value":3213},{"type":21,"tag":2320,"props":21127,"children":21128},{"style":2327},[21129],{"type":26,"value":4325},{"type":21,"tag":2320,"props":21131,"children":21132},{"class":2322,"line":2341},[21133],{"type":21,"tag":2320,"props":21134,"children":21135},{"emptyLinePlaceholder":3224},[21136],{"type":26,"value":3227},{"type":21,"tag":2320,"props":21138,"children":21139},{"class":2322,"line":2403},[21140,21144,21148,21152,21156,21160,21164],{"type":21,"tag":2320,"props":21141,"children":21142},{"style":2327},[21143],{"type":26,"value":7382},{"type":21,"tag":2320,"props":21145,"children":21146},{"style":3200},[21147],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21149,"children":21150},{"style":2327},[21151],{"type":26,"value":5138},{"type":21,"tag":2320,"props":21153,"children":21154},{"style":2345},[21155],{"type":26,"value":2419},{"type":21,"tag":2320,"props":21157,"children":21158},{"style":2327},[21159],{"type":26,"value":1315},{"type":21,"tag":2320,"props":21161,"children":21162},{"style":2345},[21163],{"type":26,"value":2419},{"type":21,"tag":2320,"props":21165,"children":21166},{"style":2327},[21167],{"type":26,"value":3300},{"type":21,"tag":2320,"props":21169,"children":21170},{"class":2322,"line":2427},[21171,21175,21179],{"type":21,"tag":2320,"props":21172,"children":21173},{"style":2327},[21174],{"type":26,"value":7398},{"type":21,"tag":2320,"props":21176,"children":21177},{"style":2345},[21178],{"type":26,"value":5168},{"type":21,"tag":2320,"props":21180,"children":21181},{"style":2327},[21182],{"type":26,"value":3300},{"type":21,"tag":2320,"props":21184,"children":21185},{"class":2322,"line":854},[21186,21190,21194,21198,21202],{"type":21,"tag":2320,"props":21187,"children":21188},{"style":2327},[21189],{"type":26,"value":20404},{"type":21,"tag":2320,"props":21191,"children":21192},{"style":2345},[21193],{"type":26,"value":5168},{"type":21,"tag":2320,"props":21195,"children":21196},{"style":2327},[21197],{"type":26,"value":1315},{"type":21,"tag":2320,"props":21199,"children":21200},{"style":2345},[21201],{"type":26,"value":3556},{"type":21,"tag":2320,"props":21203,"children":21204},{"style":2327},[21205],{"type":26,"value":3300},{"type":21,"tag":2320,"props":21207,"children":21208},{"class":2322,"line":171},[21209,21214,21218,21222,21226,21230,21234,21238,21242],{"type":21,"tag":2320,"props":21210,"children":21211},{"style":2327},[21212],{"type":26,"value":21213},"qc.measure([",{"type":21,"tag":2320,"props":21215,"children":21216},{"style":2345},[21217],{"type":26,"value":5168},{"type":21,"tag":2320,"props":21219,"children":21220},{"style":2327},[21221],{"type":26,"value":1315},{"type":21,"tag":2320,"props":21223,"children":21224},{"style":2345},[21225],{"type":26,"value":3556},{"type":21,"tag":2320,"props":21227,"children":21228},{"style":2327},[21229],{"type":26,"value":5223},{"type":21,"tag":2320,"props":21231,"children":21232},{"style":2345},[21233],{"type":26,"value":5168},{"type":21,"tag":2320,"props":21235,"children":21236},{"style":2327},[21237],{"type":26,"value":1315},{"type":21,"tag":2320,"props":21239,"children":21240},{"style":2345},[21241],{"type":26,"value":3556},{"type":21,"tag":2320,"props":21243,"children":21244},{"style":2327},[21245],{"type":26,"value":3561},{"type":21,"tag":2320,"props":21247,"children":21248},{"class":2322,"line":16},[21249],{"type":21,"tag":2320,"props":21250,"children":21251},{"emptyLinePlaceholder":3224},[21252],{"type":26,"value":3227},{"type":21,"tag":2320,"props":21254,"children":21255},{"class":2322,"line":1370},[21256,21260,21264],{"type":21,"tag":2320,"props":21257,"children":21258},{"style":2327},[21259],{"type":26,"value":8424},{"type":21,"tag":2320,"props":21261,"children":21262},{"style":3200},[21263],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21265,"children":21266},{"style":2327},[21267],{"type":26,"value":8433},{"type":21,"tag":2320,"props":21269,"children":21270},{"class":2322,"line":3446},[21271,21275,21279,21284,21288,21292,21296],{"type":21,"tag":2320,"props":21272,"children":21273},{"style":2327},[21274],{"type":26,"value":19342},{"type":21,"tag":2320,"props":21276,"children":21277},{"style":3200},[21278],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21280,"children":21281},{"style":2327},[21282],{"type":26,"value":21283}," sim.run(qc, ",{"type":21,"tag":2320,"props":21285,"children":21286},{"style":3265},[21287],{"type":26,"value":4123},{"type":21,"tag":2320,"props":21289,"children":21290},{"style":3200},[21291],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21293,"children":21294},{"style":2345},[21295],{"type":26,"value":20476},{"type":21,"tag":2320,"props":21297,"children":21298},{"style":2327},[21299],{"type":26,"value":20481},{"type":21,"tag":2320,"props":21301,"children":21302},{"class":2322,"line":3456},[21303,21307,21312],{"type":21,"tag":2320,"props":21304,"children":21305},{"style":2345},[21306],{"type":26,"value":3315},{"type":21,"tag":2320,"props":21308,"children":21309},{"style":2327},[21310],{"type":26,"value":21311},"(result.get_counts())  ",{"type":21,"tag":2320,"props":21313,"children":21314},{"style":3450},[21315],{"type":26,"value":21316},"# {'00': 501, '11': 499}\n",{"type":21,"tag":22,"props":21318,"children":21319},{},[21320],{"type":21,"tag":180,"props":21321,"children":21322},{},[21323],{"type":26,"value":21324},"HLQuantum:",{"type":21,"tag":2310,"props":21326,"children":21328},{"code":21327,"language":3190,"meta":7,"className":3188,"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",[21329],{"type":21,"tag":2080,"props":21330,"children":21331},{"__ignoreMap":7},[21332,21351,21358,21382,21415,21422,21470],{"type":21,"tag":2320,"props":21333,"children":21334},{"class":2322,"line":2323},[21335,21339,21343,21347],{"type":21,"tag":2320,"props":21336,"children":21337},{"style":3200},[21338],{"type":26,"value":3213},{"type":21,"tag":2320,"props":21340,"children":21341},{"style":2327},[21342],{"type":26,"value":19310},{"type":21,"tag":2320,"props":21344,"children":21345},{"style":3200},[21346],{"type":26,"value":4278},{"type":21,"tag":2320,"props":21348,"children":21349},{"style":2327},[21350],{"type":26,"value":19319},{"type":21,"tag":2320,"props":21352,"children":21353},{"class":2322,"line":150},[21354],{"type":21,"tag":2320,"props":21355,"children":21356},{"emptyLinePlaceholder":3224},[21357],{"type":26,"value":3227},{"type":21,"tag":2320,"props":21359,"children":21360},{"class":2322,"line":2341},[21361,21365,21369,21374,21378],{"type":21,"tag":2320,"props":21362,"children":21363},{"style":2327},[21364],{"type":26,"value":7382},{"type":21,"tag":2320,"props":21366,"children":21367},{"style":3200},[21368],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21370,"children":21371},{"style":2327},[21372],{"type":26,"value":21373}," hlq.Circuit(",{"type":21,"tag":2320,"props":21375,"children":21376},{"style":2345},[21377],{"type":26,"value":2419},{"type":21,"tag":2320,"props":21379,"children":21380},{"style":2327},[21381],{"type":26,"value":3300},{"type":21,"tag":2320,"props":21383,"children":21384},{"class":2322,"line":2403},[21385,21389,21393,21398,21402,21406,21410],{"type":21,"tag":2320,"props":21386,"children":21387},{"style":2327},[21388],{"type":26,"value":7398},{"type":21,"tag":2320,"props":21390,"children":21391},{"style":2345},[21392],{"type":26,"value":5168},{"type":21,"tag":2320,"props":21394,"children":21395},{"style":2327},[21396],{"type":26,"value":21397},").cx(",{"type":21,"tag":2320,"props":21399,"children":21400},{"style":2345},[21401],{"type":26,"value":5168},{"type":21,"tag":2320,"props":21403,"children":21404},{"style":2327},[21405],{"type":26,"value":1315},{"type":21,"tag":2320,"props":21407,"children":21408},{"style":2345},[21409],{"type":26,"value":3556},{"type":21,"tag":2320,"props":21411,"children":21412},{"style":2327},[21413],{"type":26,"value":21414},").measure_all()\n",{"type":21,"tag":2320,"props":21416,"children":21417},{"class":2322,"line":2427},[21418],{"type":21,"tag":2320,"props":21419,"children":21420},{"emptyLinePlaceholder":3224},[21421],{"type":26,"value":3227},{"type":21,"tag":2320,"props":21423,"children":21424},{"class":2322,"line":854},[21425,21429,21433,21438,21442,21446,21450,21454,21458,21462,21466],{"type":21,"tag":2320,"props":21426,"children":21427},{"style":2327},[21428],{"type":26,"value":19342},{"type":21,"tag":2320,"props":21430,"children":21431},{"style":3200},[21432],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21434,"children":21435},{"style":2327},[21436],{"type":26,"value":21437}," hlq.run(qc, ",{"type":21,"tag":2320,"props":21439,"children":21440},{"style":3265},[21441],{"type":26,"value":18469},{"type":21,"tag":2320,"props":21443,"children":21444},{"style":3200},[21445],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21447,"children":21448},{"style":2356},[21449],{"type":26,"value":19400},{"type":21,"tag":2320,"props":21451,"children":21452},{"style":2327},[21453],{"type":26,"value":1315},{"type":21,"tag":2320,"props":21455,"children":21456},{"style":3265},[21457],{"type":26,"value":4123},{"type":21,"tag":2320,"props":21459,"children":21460},{"style":3200},[21461],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21463,"children":21464},{"style":2345},[21465],{"type":26,"value":20476},{"type":21,"tag":2320,"props":21467,"children":21468},{"style":2327},[21469],{"type":26,"value":3300},{"type":21,"tag":2320,"props":21471,"children":21472},{"class":2322,"line":171},[21473,21477,21482],{"type":21,"tag":2320,"props":21474,"children":21475},{"style":2345},[21476],{"type":26,"value":3315},{"type":21,"tag":2320,"props":21478,"children":21479},{"style":2327},[21480],{"type":26,"value":21481},"(result.counts)  ",{"type":21,"tag":2320,"props":21483,"children":21484},{"style":3450},[21485],{"type":26,"value":21316},{"type":21,"tag":22,"props":21487,"children":21488},{},[21489],{"type":26,"value":21490},"Aproximadamente la misma verbosidad para un único backend. La diferencia aparece cuando añades más backends.",{"type":21,"tag":49,"props":21492,"children":21494},{"id":21493},"lado-a-lado-ejecución-en-múltiples-backends",[21495],{"type":26,"value":21496},"Lado a lado: ejecución en múltiples backends",{"type":21,"tag":22,"props":21498,"children":21499},{},[21500],{"type":21,"tag":180,"props":21501,"children":21502},{},[21503],{"type":26,"value":21504},"Qiskit puro (para añadir un segundo backend, tienes que reescribir):",{"type":21,"tag":2310,"props":21506,"children":21508},{"code":21507,"language":3190,"meta":7,"className":3188,"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 completamente diferente, reescribir el circuito\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 — otra API más, reescribir de nuevo\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",[21509],{"type":21,"tag":2080,"props":21510,"children":21511},{"__ignoreMap":7},[21512,21520,21539,21558,21590,21624,21657,21664,21672,21691,21731,21742,21759,21783,21820,21860,21877,21884,21892,21904,21912,21927,21952,21987],{"type":21,"tag":2320,"props":21513,"children":21514},{"class":2322,"line":2323},[21515],{"type":21,"tag":2320,"props":21516,"children":21517},{"style":3450},[21518],{"type":26,"value":21519},"# Qiskit Aer\n",{"type":21,"tag":2320,"props":21521,"children":21522},{"class":2322,"line":150},[21523,21527,21531,21535],{"type":21,"tag":2320,"props":21524,"children":21525},{"style":3200},[21526],{"type":26,"value":3203},{"type":21,"tag":2320,"props":21528,"children":21529},{"style":2327},[21530],{"type":26,"value":4295},{"type":21,"tag":2320,"props":21532,"children":21533},{"style":3200},[21534],{"type":26,"value":3213},{"type":21,"tag":2320,"props":21536,"children":21537},{"style":2327},[21538],{"type":26,"value":20318},{"type":21,"tag":2320,"props":21540,"children":21541},{"class":2322,"line":2341},[21542,21546,21550,21554],{"type":21,"tag":2320,"props":21543,"children":21544},{"style":3200},[21545],{"type":26,"value":3203},{"type":21,"tag":2320,"props":21547,"children":21548},{"style":2327},[21549],{"type":26,"value":4316},{"type":21,"tag":2320,"props":21551,"children":21552},{"style":3200},[21553],{"type":26,"value":3213},{"type":21,"tag":2320,"props":21555,"children":21556},{"style":2327},[21557],{"type":26,"value":4325},{"type":21,"tag":2320,"props":21559,"children":21560},{"class":2322,"line":2403},[21561,21566,21570,21574,21578,21582,21586],{"type":21,"tag":2320,"props":21562,"children":21563},{"style":2327},[21564],{"type":26,"value":21565},"qc_qiskit ",{"type":21,"tag":2320,"props":21567,"children":21568},{"style":3200},[21569],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21571,"children":21572},{"style":2327},[21573],{"type":26,"value":5138},{"type":21,"tag":2320,"props":21575,"children":21576},{"style":2345},[21577],{"type":26,"value":2419},{"type":21,"tag":2320,"props":21579,"children":21580},{"style":2327},[21581],{"type":26,"value":1315},{"type":21,"tag":2320,"props":21583,"children":21584},{"style":2345},[21585],{"type":26,"value":2419},{"type":21,"tag":2320,"props":21587,"children":21588},{"style":2327},[21589],{"type":26,"value":3300},{"type":21,"tag":2320,"props":21591,"children":21592},{"class":2322,"line":2427},[21593,21598,21602,21607,21611,21615,21619],{"type":21,"tag":2320,"props":21594,"children":21595},{"style":2327},[21596],{"type":26,"value":21597},"qc_qiskit.h(",{"type":21,"tag":2320,"props":21599,"children":21600},{"style":2345},[21601],{"type":26,"value":5168},{"type":21,"tag":2320,"props":21603,"children":21604},{"style":2327},[21605],{"type":26,"value":21606},"); qc_qiskit.cx(",{"type":21,"tag":2320,"props":21608,"children":21609},{"style":2345},[21610],{"type":26,"value":5168},{"type":21,"tag":2320,"props":21612,"children":21613},{"style":2327},[21614],{"type":26,"value":1315},{"type":21,"tag":2320,"props":21616,"children":21617},{"style":2345},[21618],{"type":26,"value":3556},{"type":21,"tag":2320,"props":21620,"children":21621},{"style":2327},[21622],{"type":26,"value":21623},"); qc_qiskit.measure_all()\n",{"type":21,"tag":2320,"props":21625,"children":21626},{"class":2322,"line":854},[21627,21632,21636,21641,21645,21649,21653],{"type":21,"tag":2320,"props":21628,"children":21629},{"style":2327},[21630],{"type":26,"value":21631},"result_qiskit ",{"type":21,"tag":2320,"props":21633,"children":21634},{"style":3200},[21635],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21637,"children":21638},{"style":2327},[21639],{"type":26,"value":21640}," AerSimulator().run(qc_qiskit, ",{"type":21,"tag":2320,"props":21642,"children":21643},{"style":3265},[21644],{"type":26,"value":4123},{"type":21,"tag":2320,"props":21646,"children":21647},{"style":3200},[21648],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21650,"children":21651},{"style":2345},[21652],{"type":26,"value":20476},{"type":21,"tag":2320,"props":21654,"children":21655},{"style":2327},[21656],{"type":26,"value":20481},{"type":21,"tag":2320,"props":21658,"children":21659},{"class":2322,"line":171},[21660],{"type":21,"tag":2320,"props":21661,"children":21662},{"emptyLinePlaceholder":3224},[21663],{"type":26,"value":3227},{"type":21,"tag":2320,"props":21665,"children":21666},{"class":2322,"line":16},[21667],{"type":21,"tag":2320,"props":21668,"children":21669},{"style":3450},[21670],{"type":26,"value":21671},"# PennyLane — API completamente diferente, reescribir el circuito\n",{"type":21,"tag":2320,"props":21673,"children":21674},{"class":2322,"line":1370},[21675,21679,21683,21687],{"type":21,"tag":2320,"props":21676,"children":21677},{"style":3200},[21678],{"type":26,"value":3213},{"type":21,"tag":2320,"props":21680,"children":21681},{"style":2327},[21682],{"type":26,"value":14092},{"type":21,"tag":2320,"props":21684,"children":21685},{"style":3200},[21686],{"type":26,"value":4278},{"type":21,"tag":2320,"props":21688,"children":21689},{"style":2327},[21690],{"type":26,"value":14101},{"type":21,"tag":2320,"props":21692,"children":21693},{"class":2322,"line":3446},[21694,21698,21702,21706,21711,21715,21719,21723,21727],{"type":21,"tag":2320,"props":21695,"children":21696},{"style":2327},[21697],{"type":26,"value":14225},{"type":21,"tag":2320,"props":21699,"children":21700},{"style":3200},[21701],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21703,"children":21704},{"style":2327},[21705],{"type":26,"value":14234},{"type":21,"tag":2320,"props":21707,"children":21708},{"style":2356},[21709],{"type":26,"value":21710},"'default.qubit'",{"type":21,"tag":2320,"props":21712,"children":21713},{"style":2327},[21714],{"type":26,"value":1315},{"type":21,"tag":2320,"props":21716,"children":21717},{"style":3265},[21718],{"type":26,"value":14248},{"type":21,"tag":2320,"props":21720,"children":21721},{"style":3200},[21722],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21724,"children":21725},{"style":2345},[21726],{"type":26,"value":2419},{"type":21,"tag":2320,"props":21728,"children":21729},{"style":2327},[21730],{"type":26,"value":3300},{"type":21,"tag":2320,"props":21732,"children":21733},{"class":2322,"line":3456},[21734,21738],{"type":21,"tag":2320,"props":21735,"children":21736},{"style":4364},[21737],{"type":26,"value":14272},{"type":21,"tag":2320,"props":21739,"children":21740},{"style":2327},[21741],{"type":26,"value":14277},{"type":21,"tag":2320,"props":21743,"children":21744},{"class":2322,"line":474},[21745,21749,21754],{"type":21,"tag":2320,"props":21746,"children":21747},{"style":3200},[21748],{"type":26,"value":4361},{"type":21,"tag":2320,"props":21750,"children":21751},{"style":4364},[21752],{"type":26,"value":21753}," bell",{"type":21,"tag":2320,"props":21755,"children":21756},{"style":2327},[21757],{"type":26,"value":21758},"():\n",{"type":21,"tag":2320,"props":21760,"children":21761},{"class":2322,"line":3516},[21762,21767,21771,21775,21779],{"type":21,"tag":2320,"props":21763,"children":21764},{"style":2327},[21765],{"type":26,"value":21766},"    qml.Hadamard(",{"type":21,"tag":2320,"props":21768,"children":21769},{"style":3265},[21770],{"type":26,"value":14248},{"type":21,"tag":2320,"props":21772,"children":21773},{"style":3200},[21774],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21776,"children":21777},{"style":2345},[21778],{"type":26,"value":5168},{"type":21,"tag":2320,"props":21780,"children":21781},{"style":2327},[21782],{"type":26,"value":3300},{"type":21,"tag":2320,"props":21784,"children":21785},{"class":2322,"line":3564},[21786,21791,21795,21799,21804,21808,21812,21816],{"type":21,"tag":2320,"props":21787,"children":21788},{"style":2327},[21789],{"type":26,"value":21790},"    qml.CNOT(",{"type":21,"tag":2320,"props":21792,"children":21793},{"style":3265},[21794],{"type":26,"value":14248},{"type":21,"tag":2320,"props":21796,"children":21797},{"style":3200},[21798],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21800,"children":21801},{"style":2327},[21802],{"type":26,"value":21803},"[",{"type":21,"tag":2320,"props":21805,"children":21806},{"style":2345},[21807],{"type":26,"value":5168},{"type":21,"tag":2320,"props":21809,"children":21810},{"style":2327},[21811],{"type":26,"value":1315},{"type":21,"tag":2320,"props":21813,"children":21814},{"style":2345},[21815],{"type":26,"value":3556},{"type":21,"tag":2320,"props":21817,"children":21818},{"style":2327},[21819],{"type":26,"value":3561},{"type":21,"tag":2320,"props":21821,"children":21822},{"class":2322,"line":3606},[21823,21827,21832,21836,21840,21844,21848,21852,21856],{"type":21,"tag":2320,"props":21824,"children":21825},{"style":3200},[21826],{"type":26,"value":4586},{"type":21,"tag":2320,"props":21828,"children":21829},{"style":2327},[21830],{"type":26,"value":21831}," qml.probs(",{"type":21,"tag":2320,"props":21833,"children":21834},{"style":3265},[21835],{"type":26,"value":14248},{"type":21,"tag":2320,"props":21837,"children":21838},{"style":3200},[21839],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21841,"children":21842},{"style":2327},[21843],{"type":26,"value":21803},{"type":21,"tag":2320,"props":21845,"children":21846},{"style":2345},[21847],{"type":26,"value":5168},{"type":21,"tag":2320,"props":21849,"children":21850},{"style":2327},[21851],{"type":26,"value":1315},{"type":21,"tag":2320,"props":21853,"children":21854},{"style":2345},[21855],{"type":26,"value":3556},{"type":21,"tag":2320,"props":21857,"children":21858},{"style":2327},[21859],{"type":26,"value":3561},{"type":21,"tag":2320,"props":21861,"children":21862},{"class":2322,"line":4631},[21863,21868,21872],{"type":21,"tag":2320,"props":21864,"children":21865},{"style":2327},[21866],{"type":26,"value":21867},"result_pennylane ",{"type":21,"tag":2320,"props":21869,"children":21870},{"style":3200},[21871],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21873,"children":21874},{"style":2327},[21875],{"type":26,"value":21876}," bell()\n",{"type":21,"tag":2320,"props":21878,"children":21879},{"class":2322,"line":4650},[21880],{"type":21,"tag":2320,"props":21881,"children":21882},{"emptyLinePlaceholder":3224},[21883],{"type":26,"value":3227},{"type":21,"tag":2320,"props":21885,"children":21886},{"class":2322,"line":4658},[21887],{"type":21,"tag":2320,"props":21888,"children":21889},{"style":3450},[21890],{"type":26,"value":21891},"# CUDA-Q — otra API más, reescribir de nuevo\n",{"type":21,"tag":2320,"props":21893,"children":21894},{"class":2322,"line":4689},[21895,21899],{"type":21,"tag":2320,"props":21896,"children":21897},{"style":3200},[21898],{"type":26,"value":3213},{"type":21,"tag":2320,"props":21900,"children":21901},{"style":2327},[21902],{"type":26,"value":21903}," cudaq\n",{"type":21,"tag":2320,"props":21905,"children":21906},{"class":2322,"line":4734},[21907],{"type":21,"tag":2320,"props":21908,"children":21909},{"style":4364},[21910],{"type":26,"value":21911},"@cudaq.kernel\n",{"type":21,"tag":2320,"props":21913,"children":21914},{"class":2322,"line":4773},[21915,21919,21923],{"type":21,"tag":2320,"props":21916,"children":21917},{"style":3200},[21918],{"type":26,"value":4361},{"type":21,"tag":2320,"props":21920,"children":21921},{"style":4364},[21922],{"type":26,"value":21753},{"type":21,"tag":2320,"props":21924,"children":21925},{"style":2327},[21926],{"type":26,"value":21758},{"type":21,"tag":2320,"props":21928,"children":21929},{"class":2322,"line":4791},[21930,21935,21939,21944,21948],{"type":21,"tag":2320,"props":21931,"children":21932},{"style":2327},[21933],{"type":26,"value":21934},"    qvec ",{"type":21,"tag":2320,"props":21936,"children":21937},{"style":3200},[21938],{"type":26,"value":3240},{"type":21,"tag":2320,"props":21940,"children":21941},{"style":2327},[21942],{"type":26,"value":21943}," cudaq.qvector(",{"type":21,"tag":2320,"props":21945,"children":21946},{"style":2345},[21947],{"type":26,"value":2419},{"type":21,"tag":2320,"props":21949,"children":21950},{"style":2327},[21951],{"type":26,"value":3300},{"type":21,"tag":2320,"props":21953,"children":21954},{"class":2322,"line":4865},[21955,21960,21964,21969,21973,21978,21982],{"type":21,"tag":2320,"props":21956,"children":21957},{"style":2327},[21958],{"type":26,"value":21959},"    h(qvec[",{"type":21,"tag":2320,"props":21961,"children":21962},{"style":2345},[21963],{"type":26,"value":5168},{"type":21,"tag":2320,"props":21965,"children":21966},{"style":2327},[21967],{"type":26,"value":21968},"]); cx(qvec[",{"type":21,"tag":2320,"props":21970,"children":21971},{"style":2345},[21972],{"type":26,"value":5168},{"type":21,"tag":2320,"props":21974,"children":21975},{"style":2327},[21976],{"type":26,"value":21977},"], qvec[",{"type":21,"tag":2320,"props":21979,"children":21980},{"style":2345},[21981],{"type":26,"value":3556},{"type":21,"tag":2320,"props":21983,"children":21984},{"style":2327},[21985],{"type":26,"value":21986},"]); mz(qvec)\n",{"type":21,"tag":2320,"props":21988,"children":21989},{"class":2322,"line":4893},[21990,21995,21999,22004,22009,22013,22017],{"type":21,"tag":2320,"props":21991,"children":21992},{"style":2327},[21993],{"type":26,"value":21994},"result_cudaq ",{"type":21,"tag":2320,"props":21996,"children":21997},{"style":3200},[21998],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22000,"children":22001},{"style":2327},[22002],{"type":26,"value":22003}," cudaq.sample(bell, ",{"type":21,"tag":2320,"props":22005,"children":22006},{"style":3265},[22007],{"type":26,"value":22008},"shots_count",{"type":21,"tag":2320,"props":22010,"children":22011},{"style":3200},[22012],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22014,"children":22015},{"style":2345},[22016],{"type":26,"value":20476},{"type":21,"tag":2320,"props":22018,"children":22019},{"style":2327},[22020],{"type":26,"value":3300},{"type":21,"tag":22,"props":22022,"children":22023},{},[22024],{"type":21,"tag":180,"props":22025,"children":22026},{},[22027],{"type":26,"value":22028},"HLQuantum (un circuito, cualquier backend):",{"type":21,"tag":2310,"props":22030,"children":22032},{"code":22031,"language":3190,"meta":7,"className":3188,"style":7},"import hlquantum as hlq\n\nqc = hlq.Circuit(2)\nqc.h(0).cx(0, 1).measure_all()\n\n# Cambia de backend con una sola palabra\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",[22033],{"type":21,"tag":2080,"props":22034,"children":22035},{"__ignoreMap":7},[22036,22055,22062,22085,22116,22123,22131,22163,22195,22233,22266,22317],{"type":21,"tag":2320,"props":22037,"children":22038},{"class":2322,"line":2323},[22039,22043,22047,22051],{"type":21,"tag":2320,"props":22040,"children":22041},{"style":3200},[22042],{"type":26,"value":3213},{"type":21,"tag":2320,"props":22044,"children":22045},{"style":2327},[22046],{"type":26,"value":19310},{"type":21,"tag":2320,"props":22048,"children":22049},{"style":3200},[22050],{"type":26,"value":4278},{"type":21,"tag":2320,"props":22052,"children":22053},{"style":2327},[22054],{"type":26,"value":19319},{"type":21,"tag":2320,"props":22056,"children":22057},{"class":2322,"line":150},[22058],{"type":21,"tag":2320,"props":22059,"children":22060},{"emptyLinePlaceholder":3224},[22061],{"type":26,"value":3227},{"type":21,"tag":2320,"props":22063,"children":22064},{"class":2322,"line":2341},[22065,22069,22073,22077,22081],{"type":21,"tag":2320,"props":22066,"children":22067},{"style":2327},[22068],{"type":26,"value":7382},{"type":21,"tag":2320,"props":22070,"children":22071},{"style":3200},[22072],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22074,"children":22075},{"style":2327},[22076],{"type":26,"value":21373},{"type":21,"tag":2320,"props":22078,"children":22079},{"style":2345},[22080],{"type":26,"value":2419},{"type":21,"tag":2320,"props":22082,"children":22083},{"style":2327},[22084],{"type":26,"value":3300},{"type":21,"tag":2320,"props":22086,"children":22087},{"class":2322,"line":2403},[22088,22092,22096,22100,22104,22108,22112],{"type":21,"tag":2320,"props":22089,"children":22090},{"style":2327},[22091],{"type":26,"value":7398},{"type":21,"tag":2320,"props":22093,"children":22094},{"style":2345},[22095],{"type":26,"value":5168},{"type":21,"tag":2320,"props":22097,"children":22098},{"style":2327},[22099],{"type":26,"value":21397},{"type":21,"tag":2320,"props":22101,"children":22102},{"style":2345},[22103],{"type":26,"value":5168},{"type":21,"tag":2320,"props":22105,"children":22106},{"style":2327},[22107],{"type":26,"value":1315},{"type":21,"tag":2320,"props":22109,"children":22110},{"style":2345},[22111],{"type":26,"value":3556},{"type":21,"tag":2320,"props":22113,"children":22114},{"style":2327},[22115],{"type":26,"value":21414},{"type":21,"tag":2320,"props":22117,"children":22118},{"class":2322,"line":2427},[22119],{"type":21,"tag":2320,"props":22120,"children":22121},{"emptyLinePlaceholder":3224},[22122],{"type":26,"value":3227},{"type":21,"tag":2320,"props":22124,"children":22125},{"class":2322,"line":854},[22126],{"type":21,"tag":2320,"props":22127,"children":22128},{"style":3450},[22129],{"type":26,"value":22130},"# Cambia de backend con una sola palabra\n",{"type":21,"tag":2320,"props":22132,"children":22133},{"class":2322,"line":171},[22134,22139,22143,22147,22151,22155,22159],{"type":21,"tag":2320,"props":22135,"children":22136},{"style":2327},[22137],{"type":26,"value":22138},"result_qiskit    ",{"type":21,"tag":2320,"props":22140,"children":22141},{"style":3200},[22142],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22144,"children":22145},{"style":2327},[22146],{"type":26,"value":21437},{"type":21,"tag":2320,"props":22148,"children":22149},{"style":3265},[22150],{"type":26,"value":18469},{"type":21,"tag":2320,"props":22152,"children":22153},{"style":3200},[22154],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22156,"children":22157},{"style":2356},[22158],{"type":26,"value":19400},{"type":21,"tag":2320,"props":22160,"children":22161},{"style":2327},[22162],{"type":26,"value":3300},{"type":21,"tag":2320,"props":22164,"children":22165},{"class":2322,"line":16},[22166,22170,22174,22178,22182,22186,22191],{"type":21,"tag":2320,"props":22167,"children":22168},{"style":2327},[22169],{"type":26,"value":21867},{"type":21,"tag":2320,"props":22171,"children":22172},{"style":3200},[22173],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22175,"children":22176},{"style":2327},[22177],{"type":26,"value":21437},{"type":21,"tag":2320,"props":22179,"children":22180},{"style":3265},[22181],{"type":26,"value":18469},{"type":21,"tag":2320,"props":22183,"children":22184},{"style":3200},[22185],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22187,"children":22188},{"style":2356},[22189],{"type":26,"value":22190},"'pennylane'",{"type":21,"tag":2320,"props":22192,"children":22193},{"style":2327},[22194],{"type":26,"value":3300},{"type":21,"tag":2320,"props":22196,"children":22197},{"class":2322,"line":1370},[22198,22203,22207,22211,22215,22219,22224,22228],{"type":21,"tag":2320,"props":22199,"children":22200},{"style":2327},[22201],{"type":26,"value":22202},"result_cudaq     ",{"type":21,"tag":2320,"props":22204,"children":22205},{"style":3200},[22206],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22208,"children":22209},{"style":2327},[22210],{"type":26,"value":21437},{"type":21,"tag":2320,"props":22212,"children":22213},{"style":3265},[22214],{"type":26,"value":18469},{"type":21,"tag":2320,"props":22216,"children":22217},{"style":3200},[22218],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22220,"children":22221},{"style":2356},[22222],{"type":26,"value":22223},"'cudaq'",{"type":21,"tag":2320,"props":22225,"children":22226},{"style":2327},[22227],{"type":26,"value":8212},{"type":21,"tag":2320,"props":22229,"children":22230},{"style":3450},[22231],{"type":26,"value":22232},"# GPU\n",{"type":21,"tag":2320,"props":22234,"children":22235},{"class":2322,"line":3446},[22236,22241,22245,22249,22253,22257,22262],{"type":21,"tag":2320,"props":22237,"children":22238},{"style":2327},[22239],{"type":26,"value":22240},"result_cirq      ",{"type":21,"tag":2320,"props":22242,"children":22243},{"style":3200},[22244],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22246,"children":22247},{"style":2327},[22248],{"type":26,"value":21437},{"type":21,"tag":2320,"props":22250,"children":22251},{"style":3265},[22252],{"type":26,"value":18469},{"type":21,"tag":2320,"props":22254,"children":22255},{"style":3200},[22256],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22258,"children":22259},{"style":2356},[22260],{"type":26,"value":22261},"'cirq'",{"type":21,"tag":2320,"props":22263,"children":22264},{"style":2327},[22265],{"type":26,"value":3300},{"type":21,"tag":2320,"props":22267,"children":22268},{"class":2322,"line":3456},[22269,22274,22278,22282,22286,22290,22295,22299,22304,22308,22313],{"type":21,"tag":2320,"props":22270,"children":22271},{"style":2327},[22272],{"type":26,"value":22273},"result_ionq      ",{"type":21,"tag":2320,"props":22275,"children":22276},{"style":3200},[22277],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22279,"children":22280},{"style":2327},[22281],{"type":26,"value":21437},{"type":21,"tag":2320,"props":22283,"children":22284},{"style":3265},[22285],{"type":26,"value":18469},{"type":21,"tag":2320,"props":22287,"children":22288},{"style":3200},[22289],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22291,"children":22292},{"style":2356},[22293],{"type":26,"value":22294},"'ionq'",{"type":21,"tag":2320,"props":22296,"children":22297},{"style":2327},[22298],{"type":26,"value":1315},{"type":21,"tag":2320,"props":22300,"children":22301},{"style":3265},[22302],{"type":26,"value":22303},"device",{"type":21,"tag":2320,"props":22305,"children":22306},{"style":3200},[22307],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22309,"children":22310},{"style":2356},[22311],{"type":26,"value":22312},"'aria-1'",{"type":21,"tag":2320,"props":22314,"children":22315},{"style":2327},[22316],{"type":26,"value":3300},{"type":21,"tag":2320,"props":22318,"children":22319},{"class":2322,"line":474},[22320,22325,22329,22333,22337,22341,22345,22349,22353,22357,22362],{"type":21,"tag":2320,"props":22321,"children":22322},{"style":2327},[22323],{"type":26,"value":22324},"result_ibm       ",{"type":21,"tag":2320,"props":22326,"children":22327},{"style":3200},[22328],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22330,"children":22331},{"style":2327},[22332],{"type":26,"value":21437},{"type":21,"tag":2320,"props":22334,"children":22335},{"style":3265},[22336],{"type":26,"value":18469},{"type":21,"tag":2320,"props":22338,"children":22339},{"style":3200},[22340],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22342,"children":22343},{"style":2356},[22344],{"type":26,"value":19400},{"type":21,"tag":2320,"props":22346,"children":22347},{"style":2327},[22348],{"type":26,"value":1315},{"type":21,"tag":2320,"props":22350,"children":22351},{"style":3265},[22352],{"type":26,"value":22303},{"type":21,"tag":2320,"props":22354,"children":22355},{"style":3200},[22356],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22358,"children":22359},{"style":2356},[22360],{"type":26,"value":22361},"'ibm_sherbrooke'",{"type":21,"tag":2320,"props":22363,"children":22364},{"style":2327},[22365],{"type":26,"value":3300},{"type":21,"tag":22,"props":22367,"children":22368},{},[22369],{"type":26,"value":22370},"Aquí es donde HLQuantum rinde sus frutos — prototipar en un simulador local y desplegar en una QPU sin reescribir el circuito.",{"type":21,"tag":49,"props":22372,"children":22374},{"id":22373},"lado-a-lado-vqe",[22375],{"type":26,"value":22376},"Lado a lado: VQE",{"type":21,"tag":22,"props":22378,"children":22379},{},[22380],{"type":21,"tag":180,"props":22381,"children":22382},{},[22383],{"type":26,"value":22384},"VQE con Qiskit puro:",{"type":21,"tag":2310,"props":22386,"children":22388},{"code":22387,"language":3190,"meta":7,"className":3188,"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",[22389],{"type":21,"tag":2080,"props":22390,"children":22391},{"__ignoreMap":7},[22392,22413,22434,22455,22476,22497,22518,22525,22560,22577,22594,22619,22626,22643,22651,22659,22667,22684,22691,22698,22715,22731],{"type":21,"tag":2320,"props":22393,"children":22394},{"class":2322,"line":2323},[22395,22399,22404,22408],{"type":21,"tag":2320,"props":22396,"children":22397},{"style":3200},[22398],{"type":26,"value":3203},{"type":21,"tag":2320,"props":22400,"children":22401},{"style":2327},[22402],{"type":26,"value":22403}," qiskit_nature.second_q.drivers ",{"type":21,"tag":2320,"props":22405,"children":22406},{"style":3200},[22407],{"type":26,"value":3213},{"type":21,"tag":2320,"props":22409,"children":22410},{"style":2327},[22411],{"type":26,"value":22412}," PySCFDriver\n",{"type":21,"tag":2320,"props":22414,"children":22415},{"class":2322,"line":150},[22416,22420,22425,22429],{"type":21,"tag":2320,"props":22417,"children":22418},{"style":3200},[22419],{"type":26,"value":3203},{"type":21,"tag":2320,"props":22421,"children":22422},{"style":2327},[22423],{"type":26,"value":22424}," qiskit_nature.second_q.mappers ",{"type":21,"tag":2320,"props":22426,"children":22427},{"style":3200},[22428],{"type":26,"value":3213},{"type":21,"tag":2320,"props":22430,"children":22431},{"style":2327},[22432],{"type":26,"value":22433}," JordanWignerMapper\n",{"type":21,"tag":2320,"props":22435,"children":22436},{"class":2322,"line":2341},[22437,22441,22446,22450],{"type":21,"tag":2320,"props":22438,"children":22439},{"style":3200},[22440],{"type":26,"value":3203},{"type":21,"tag":2320,"props":22442,"children":22443},{"style":2327},[22444],{"type":26,"value":22445}," qiskit_nature.second_q.circuit.library ",{"type":21,"tag":2320,"props":22447,"children":22448},{"style":3200},[22449],{"type":26,"value":3213},{"type":21,"tag":2320,"props":22451,"children":22452},{"style":2345},[22453],{"type":26,"value":22454}," UCCSD\n",{"type":21,"tag":2320,"props":22456,"children":22457},{"class":2322,"line":2403},[22458,22462,22467,22471],{"type":21,"tag":2320,"props":22459,"children":22460},{"style":3200},[22461],{"type":26,"value":3203},{"type":21,"tag":2320,"props":22463,"children":22464},{"style":2327},[22465],{"type":26,"value":22466}," qiskit_algorithms ",{"type":21,"tag":2320,"props":22468,"children":22469},{"style":3200},[22470],{"type":26,"value":3213},{"type":21,"tag":2320,"props":22472,"children":22473},{"style":2345},[22474],{"type":26,"value":22475}," VQE\n",{"type":21,"tag":2320,"props":22477,"children":22478},{"class":2322,"line":2427},[22479,22483,22488,22492],{"type":21,"tag":2320,"props":22480,"children":22481},{"style":3200},[22482],{"type":26,"value":3203},{"type":21,"tag":2320,"props":22484,"children":22485},{"style":2327},[22486],{"type":26,"value":22487}," qiskit_algorithms.optimizers ",{"type":21,"tag":2320,"props":22489,"children":22490},{"style":3200},[22491],{"type":26,"value":3213},{"type":21,"tag":2320,"props":22493,"children":22494},{"style":2345},[22495],{"type":26,"value":22496}," COBYLA\n",{"type":21,"tag":2320,"props":22498,"children":22499},{"class":2322,"line":854},[22500,22504,22509,22513],{"type":21,"tag":2320,"props":22501,"children":22502},{"style":3200},[22503],{"type":26,"value":3203},{"type":21,"tag":2320,"props":22505,"children":22506},{"style":2327},[22507],{"type":26,"value":22508}," qiskit.primitives ",{"type":21,"tag":2320,"props":22510,"children":22511},{"style":3200},[22512],{"type":26,"value":3213},{"type":21,"tag":2320,"props":22514,"children":22515},{"style":2327},[22516],{"type":26,"value":22517}," Estimator\n",{"type":21,"tag":2320,"props":22519,"children":22520},{"class":2322,"line":171},[22521],{"type":21,"tag":2320,"props":22522,"children":22523},{"emptyLinePlaceholder":3224},[22524],{"type":26,"value":3227},{"type":21,"tag":2320,"props":22526,"children":22527},{"class":2322,"line":16},[22528,22533,22537,22542,22547,22551,22556],{"type":21,"tag":2320,"props":22529,"children":22530},{"style":2327},[22531],{"type":26,"value":22532},"driver ",{"type":21,"tag":2320,"props":22534,"children":22535},{"style":3200},[22536],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22538,"children":22539},{"style":2327},[22540],{"type":26,"value":22541}," PySCFDriver(",{"type":21,"tag":2320,"props":22543,"children":22544},{"style":3265},[22545],{"type":26,"value":22546},"atom",{"type":21,"tag":2320,"props":22548,"children":22549},{"style":3200},[22550],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22552,"children":22553},{"style":2356},[22554],{"type":26,"value":22555},"'H .0 .0 .0; H .0 .0 0.735'",{"type":21,"tag":2320,"props":22557,"children":22558},{"style":2327},[22559],{"type":26,"value":3300},{"type":21,"tag":2320,"props":22561,"children":22562},{"class":2322,"line":1370},[22563,22568,22572],{"type":21,"tag":2320,"props":22564,"children":22565},{"style":2327},[22566],{"type":26,"value":22567},"problem ",{"type":21,"tag":2320,"props":22569,"children":22570},{"style":3200},[22571],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22573,"children":22574},{"style":2327},[22575],{"type":26,"value":22576}," driver.run()\n",{"type":21,"tag":2320,"props":22578,"children":22579},{"class":2322,"line":3446},[22580,22585,22589],{"type":21,"tag":2320,"props":22581,"children":22582},{"style":2327},[22583],{"type":26,"value":22584},"mapper ",{"type":21,"tag":2320,"props":22586,"children":22587},{"style":3200},[22588],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22590,"children":22591},{"style":2327},[22592],{"type":26,"value":22593}," JordanWignerMapper()\n",{"type":21,"tag":2320,"props":22595,"children":22596},{"class":2322,"line":3456},[22597,22602,22606,22611,22615],{"type":21,"tag":2320,"props":22598,"children":22599},{"style":2327},[22600],{"type":26,"value":22601},"hamiltonian ",{"type":21,"tag":2320,"props":22603,"children":22604},{"style":3200},[22605],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22607,"children":22608},{"style":2327},[22609],{"type":26,"value":22610}," mapper.map(problem.second_q_ops()[",{"type":21,"tag":2320,"props":22612,"children":22613},{"style":2345},[22614],{"type":26,"value":5168},{"type":21,"tag":2320,"props":22616,"children":22617},{"style":2327},[22618],{"type":26,"value":3561},{"type":21,"tag":2320,"props":22620,"children":22621},{"class":2322,"line":474},[22622],{"type":21,"tag":2320,"props":22623,"children":22624},{"emptyLinePlaceholder":3224},[22625],{"type":26,"value":3227},{"type":21,"tag":2320,"props":22627,"children":22628},{"class":2322,"line":3516},[22629,22634,22638],{"type":21,"tag":2320,"props":22630,"children":22631},{"style":2327},[22632],{"type":26,"value":22633},"ansatz ",{"type":21,"tag":2320,"props":22635,"children":22636},{"style":3200},[22637],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22639,"children":22640},{"style":2327},[22641],{"type":26,"value":22642}," UCCSD(\n",{"type":21,"tag":2320,"props":22644,"children":22645},{"class":2322,"line":3564},[22646],{"type":21,"tag":2320,"props":22647,"children":22648},{"style":2327},[22649],{"type":26,"value":22650},"    problem.num_spatial_orbitals,\n",{"type":21,"tag":2320,"props":22652,"children":22653},{"class":2322,"line":3606},[22654],{"type":21,"tag":2320,"props":22655,"children":22656},{"style":2327},[22657],{"type":26,"value":22658},"    problem.num_particles,\n",{"type":21,"tag":2320,"props":22660,"children":22661},{"class":2322,"line":4631},[22662],{"type":21,"tag":2320,"props":22663,"children":22664},{"style":2327},[22665],{"type":26,"value":22666},"    mapper,\n",{"type":21,"tag":2320,"props":22668,"children":22669},{"class":2322,"line":4650},[22670,22675,22679],{"type":21,"tag":2320,"props":22671,"children":22672},{"style":3265},[22673],{"type":26,"value":22674},"    initial_state",{"type":21,"tag":2320,"props":22676,"children":22677},{"style":3200},[22678],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22680,"children":22681},{"style":2327},[22682],{"type":26,"value":22683},"problem.reference_state,\n",{"type":21,"tag":2320,"props":22685,"children":22686},{"class":2322,"line":4658},[22687],{"type":21,"tag":2320,"props":22688,"children":22689},{"style":2327},[22690],{"type":26,"value":3300},{"type":21,"tag":2320,"props":22692,"children":22693},{"class":2322,"line":4689},[22694],{"type":21,"tag":2320,"props":22695,"children":22696},{"emptyLinePlaceholder":3224},[22697],{"type":26,"value":3227},{"type":21,"tag":2320,"props":22699,"children":22700},{"class":2322,"line":4734},[22701,22706,22710],{"type":21,"tag":2320,"props":22702,"children":22703},{"style":2327},[22704],{"type":26,"value":22705},"vqe ",{"type":21,"tag":2320,"props":22707,"children":22708},{"style":3200},[22709],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22711,"children":22712},{"style":2327},[22713],{"type":26,"value":22714}," VQE(Estimator(), ansatz, COBYLA())\n",{"type":21,"tag":2320,"props":22716,"children":22717},{"class":2322,"line":4773},[22718,22722,22726],{"type":21,"tag":2320,"props":22719,"children":22720},{"style":2327},[22721],{"type":26,"value":19342},{"type":21,"tag":2320,"props":22723,"children":22724},{"style":3200},[22725],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22727,"children":22728},{"style":2327},[22729],{"type":26,"value":22730}," vqe.compute_minimum_eigenvalue(hamiltonian)\n",{"type":21,"tag":2320,"props":22732,"children":22733},{"class":2322,"line":4791},[22734,22738,22742,22746,22751,22755,22760,22764,22768,22772],{"type":21,"tag":2320,"props":22735,"children":22736},{"style":2345},[22737],{"type":26,"value":3315},{"type":21,"tag":2320,"props":22739,"children":22740},{"style":2327},[22741],{"type":26,"value":3320},{"type":21,"tag":2320,"props":22743,"children":22744},{"style":3200},[22745],{"type":26,"value":3325},{"type":21,"tag":2320,"props":22747,"children":22748},{"style":2356},[22749],{"type":26,"value":22750},"\"H2 ground state: ",{"type":21,"tag":2320,"props":22752,"children":22753},{"style":2345},[22754],{"type":26,"value":3335},{"type":21,"tag":2320,"props":22756,"children":22757},{"style":2327},[22758],{"type":26,"value":22759},"result.eigenvalue.real",{"type":21,"tag":2320,"props":22761,"children":22762},{"style":3200},[22763],{"type":26,"value":3647},{"type":21,"tag":2320,"props":22765,"children":22766},{"style":2345},[22767],{"type":26,"value":3345},{"type":21,"tag":2320,"props":22769,"children":22770},{"style":2356},[22771],{"type":26,"value":19446},{"type":21,"tag":2320,"props":22773,"children":22774},{"style":2327},[22775],{"type":26,"value":3300},{"type":21,"tag":22,"props":22777,"children":22778},{},[22779],{"type":21,"tag":180,"props":22780,"children":22781},{},[22782],{"type":26,"value":22783},"VQE con HLQuantum:",{"type":21,"tag":2310,"props":22785,"children":22787},{"code":22786,"language":3190,"meta":7,"className":3188,"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# Cambia a GPU:\nresult_gpu = hlq.algorithms.vqe(molecule='H2', backend='cudaq')\n",[22788],{"type":21,"tag":2080,"props":22789,"children":22790},{"__ignoreMap":7},[22791,22810,22817,22833,22853,22873,22893,22914,22921,22964,22971,22979],{"type":21,"tag":2320,"props":22792,"children":22793},{"class":2322,"line":2323},[22794,22798,22802,22806],{"type":21,"tag":2320,"props":22795,"children":22796},{"style":3200},[22797],{"type":26,"value":3213},{"type":21,"tag":2320,"props":22799,"children":22800},{"style":2327},[22801],{"type":26,"value":19310},{"type":21,"tag":2320,"props":22803,"children":22804},{"style":3200},[22805],{"type":26,"value":4278},{"type":21,"tag":2320,"props":22807,"children":22808},{"style":2327},[22809],{"type":26,"value":19319},{"type":21,"tag":2320,"props":22811,"children":22812},{"class":2322,"line":150},[22813],{"type":21,"tag":2320,"props":22814,"children":22815},{"emptyLinePlaceholder":3224},[22816],{"type":26,"value":3227},{"type":21,"tag":2320,"props":22818,"children":22819},{"class":2322,"line":2341},[22820,22824,22828],{"type":21,"tag":2320,"props":22821,"children":22822},{"style":2327},[22823],{"type":26,"value":19342},{"type":21,"tag":2320,"props":22825,"children":22826},{"style":3200},[22827],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22829,"children":22830},{"style":2327},[22831],{"type":26,"value":22832}," hlq.algorithms.vqe(\n",{"type":21,"tag":2320,"props":22834,"children":22835},{"class":2322,"line":2403},[22836,22841,22845,22849],{"type":21,"tag":2320,"props":22837,"children":22838},{"style":3265},[22839],{"type":26,"value":22840},"    molecule",{"type":21,"tag":2320,"props":22842,"children":22843},{"style":3200},[22844],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22846,"children":22847},{"style":2356},[22848],{"type":26,"value":19365},{"type":21,"tag":2320,"props":22850,"children":22851},{"style":2327},[22852],{"type":26,"value":2424},{"type":21,"tag":2320,"props":22854,"children":22855},{"class":2322,"line":2427},[22856,22861,22865,22869],{"type":21,"tag":2320,"props":22857,"children":22858},{"style":3265},[22859],{"type":26,"value":22860},"    basis",{"type":21,"tag":2320,"props":22862,"children":22863},{"style":3200},[22864],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22866,"children":22867},{"style":2356},[22868],{"type":26,"value":19383},{"type":21,"tag":2320,"props":22870,"children":22871},{"style":2327},[22872],{"type":26,"value":2424},{"type":21,"tag":2320,"props":22874,"children":22875},{"class":2322,"line":854},[22876,22881,22885,22889],{"type":21,"tag":2320,"props":22877,"children":22878},{"style":3265},[22879],{"type":26,"value":22880},"    backend",{"type":21,"tag":2320,"props":22882,"children":22883},{"style":3200},[22884],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22886,"children":22887},{"style":2356},[22888],{"type":26,"value":19400},{"type":21,"tag":2320,"props":22890,"children":22891},{"style":2327},[22892],{"type":26,"value":2424},{"type":21,"tag":2320,"props":22894,"children":22895},{"class":2322,"line":171},[22896,22901,22905,22910],{"type":21,"tag":2320,"props":22897,"children":22898},{"style":3265},[22899],{"type":26,"value":22900},"    optimizer",{"type":21,"tag":2320,"props":22902,"children":22903},{"style":3200},[22904],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22906,"children":22907},{"style":2356},[22908],{"type":26,"value":22909},"'COBYLA'",{"type":21,"tag":2320,"props":22911,"children":22912},{"style":2327},[22913],{"type":26,"value":2424},{"type":21,"tag":2320,"props":22915,"children":22916},{"class":2322,"line":16},[22917],{"type":21,"tag":2320,"props":22918,"children":22919},{"style":2327},[22920],{"type":26,"value":3300},{"type":21,"tag":2320,"props":22922,"children":22923},{"class":2322,"line":1370},[22924,22928,22932,22936,22940,22944,22948,22952,22956,22960],{"type":21,"tag":2320,"props":22925,"children":22926},{"style":2345},[22927],{"type":26,"value":3315},{"type":21,"tag":2320,"props":22929,"children":22930},{"style":2327},[22931],{"type":26,"value":3320},{"type":21,"tag":2320,"props":22933,"children":22934},{"style":3200},[22935],{"type":26,"value":3325},{"type":21,"tag":2320,"props":22937,"children":22938},{"style":2356},[22939],{"type":26,"value":22750},{"type":21,"tag":2320,"props":22941,"children":22942},{"style":2345},[22943],{"type":26,"value":3335},{"type":21,"tag":2320,"props":22945,"children":22946},{"style":2327},[22947],{"type":26,"value":19433},{"type":21,"tag":2320,"props":22949,"children":22950},{"style":3200},[22951],{"type":26,"value":3647},{"type":21,"tag":2320,"props":22953,"children":22954},{"style":2345},[22955],{"type":26,"value":3345},{"type":21,"tag":2320,"props":22957,"children":22958},{"style":2356},[22959],{"type":26,"value":19446},{"type":21,"tag":2320,"props":22961,"children":22962},{"style":2327},[22963],{"type":26,"value":3300},{"type":21,"tag":2320,"props":22965,"children":22966},{"class":2322,"line":3446},[22967],{"type":21,"tag":2320,"props":22968,"children":22969},{"emptyLinePlaceholder":3224},[22970],{"type":26,"value":3227},{"type":21,"tag":2320,"props":22972,"children":22973},{"class":2322,"line":3456},[22974],{"type":21,"tag":2320,"props":22975,"children":22976},{"style":3450},[22977],{"type":26,"value":22978},"# Cambia a GPU:\n",{"type":21,"tag":2320,"props":22980,"children":22981},{"class":2322,"line":474},[22982,22987,22991,22995,22999,23003,23007,23011,23015,23019,23023],{"type":21,"tag":2320,"props":22983,"children":22984},{"style":2327},[22985],{"type":26,"value":22986},"result_gpu ",{"type":21,"tag":2320,"props":22988,"children":22989},{"style":3200},[22990],{"type":26,"value":3240},{"type":21,"tag":2320,"props":22992,"children":22993},{"style":2327},[22994],{"type":26,"value":19351},{"type":21,"tag":2320,"props":22996,"children":22997},{"style":3265},[22998],{"type":26,"value":19356},{"type":21,"tag":2320,"props":23000,"children":23001},{"style":3200},[23002],{"type":26,"value":3240},{"type":21,"tag":2320,"props":23004,"children":23005},{"style":2356},[23006],{"type":26,"value":19365},{"type":21,"tag":2320,"props":23008,"children":23009},{"style":2327},[23010],{"type":26,"value":1315},{"type":21,"tag":2320,"props":23012,"children":23013},{"style":3265},[23014],{"type":26,"value":18469},{"type":21,"tag":2320,"props":23016,"children":23017},{"style":3200},[23018],{"type":26,"value":3240},{"type":21,"tag":2320,"props":23020,"children":23021},{"style":2356},[23022],{"type":26,"value":22223},{"type":21,"tag":2320,"props":23024,"children":23025},{"style":2327},[23026],{"type":26,"value":3300},{"type":21,"tag":22,"props":23028,"children":23029},{},[23030],{"type":26,"value":23031},"Qiskit puro te da control total sobre el ansatz, el mapper y el driver. La línea única de HLQuantum es ideal para comparar backends u obtener resultados rápidamente; Qiskit puro es mejor cuando necesitas ansatze personalizados o ajuste fino del algoritmo.",{"type":21,"tag":49,"props":23033,"children":23035},{"id":23034},"cuándo-usar-qiskit-puro",[23036],{"type":26,"value":23037},"Cuándo usar Qiskit puro",{"type":21,"tag":22,"props":23039,"children":23040},{},[23041],{"type":26,"value":23042},"Usa Qiskit directamente cuando:",{"type":21,"tag":7007,"props":23044,"children":23045},{},[23046,23056,23066,23105,23115],{"type":21,"tag":3122,"props":23047,"children":23048},{},[23049,23054],{"type":21,"tag":180,"props":23050,"children":23051},{},[23052],{"type":26,"value":23053},"Te diriges exclusivamente al hardware de IBM",{"type":26,"value":23055}," — el transpilador de Qiskit y las primitivas de IBM Runtime te dan el mejor rendimiento en las QPU de IBM. La abstracción de HLQuantum añade sobrecarga.",{"type":21,"tag":3122,"props":23057,"children":23058},{},[23059,23064],{"type":21,"tag":180,"props":23060,"children":23061},{},[23062],{"type":26,"value":23063},"Necesitas control detallado del circuito",{"type":26,"value":23065}," — descomposiciones de puertas personalizadas, pasos específicos del transpilador, control a nivel de pulso, circuitos dinámicos con mediciones a mitad del circuito.",{"type":21,"tag":3122,"props":23067,"children":23068},{},[23069,23074,23076,23082,23083,23089,23090,23096,23097,23103],{"type":21,"tag":180,"props":23070,"children":23071},{},[23072],{"type":26,"value":23073},"Estás haciendo investigación en el ecosistema de IBM",{"type":26,"value":23075}," — usando ",{"type":21,"tag":2080,"props":23077,"children":23079},{"className":23078},[],[23080],{"type":26,"value":23081},"qiskit-nature",{"type":26,"value":1315},{"type":21,"tag":2080,"props":23084,"children":23086},{"className":23085},[],[23087],{"type":26,"value":23088},"qiskit-finance",{"type":26,"value":1315},{"type":21,"tag":2080,"props":23091,"children":23093},{"className":23092},[],[23094],{"type":26,"value":23095},"qiskit-optimization",{"type":26,"value":18816},{"type":21,"tag":2080,"props":23098,"children":23100},{"className":23099},[],[23101],{"type":26,"value":23102},"qiskit-machine-learning",{"type":26,"value":23104}," — estos se integran más profundamente con Qiskit puro.",{"type":21,"tag":3122,"props":23106,"children":23107},{},[23108,23113],{"type":21,"tag":180,"props":23109,"children":23110},{},[23111],{"type":26,"value":23112},"El rendimiento es crítico",{"type":26,"value":23114}," — el código directo de Qiskit tiene menos sobrecarga que la capa de traducción de HLQuantum.",{"type":21,"tag":3122,"props":23116,"children":23117},{},[23118,23123],{"type":21,"tag":180,"props":23119,"children":23120},{},[23121],{"type":26,"value":23122},"Estás contribuyendo al ecosistema de Qiskit",{"type":26,"value":23124}," — escribiendo plugins de Qiskit, tutoriales o artículos de investigación donde Qiskit es la implementación de referencia.",{"type":21,"tag":49,"props":23126,"children":23128},{"id":23127},"cuándo-usar-hlquantum",[23129],{"type":26,"value":23130},"Cuándo usar HLQuantum",{"type":21,"tag":22,"props":23132,"children":23133},{},[23134],{"type":26,"value":23135},"Usa HLQuantum cuando:",{"type":21,"tag":7007,"props":23137,"children":23138},{},[23139,23149,23159,23169,23201],{"type":21,"tag":3122,"props":23140,"children":23141},{},[23142,23147],{"type":21,"tag":180,"props":23143,"children":23144},{},[23145],{"type":26,"value":23146},"Necesitas flexibilidad de backend",{"type":26,"value":23148}," — comparar el rendimiento de simuladores, hacer benchmarking de circuitos en distintas arquitecturas o acceder a múltiples QPU en la nube.",{"type":21,"tag":3122,"props":23150,"children":23151},{},[23152,23157],{"type":21,"tag":180,"props":23153,"children":23154},{},[23155],{"type":26,"value":23156},"Estás prototipando algoritmos",{"type":26,"value":23158}," — escribe una vez, prueba en todas partes. No tienes que recablear circuitos al pasar de la simulación local a la GPU y al hardware real.",{"type":21,"tag":3122,"props":23160,"children":23161},{},[23162,23167],{"type":21,"tag":180,"props":23163,"children":23164},{},[23165],{"type":26,"value":23166},"Estás enseñando o aprendiendo",{"type":26,"value":23168}," — una API consistente en todos los backends facilita el aprendizaje. No hay necesidad de aprender 6 APIs diferentes.",{"type":21,"tag":3122,"props":23170,"children":23171},{},[23172,23177,23179,23185,23186,23192,23193,23199],{"type":21,"tag":180,"props":23173,"children":23174},{},[23175],{"type":26,"value":23176},"Quieres algoritmos integrados",{"type":26,"value":23178}," — ",{"type":21,"tag":2080,"props":23180,"children":23182},{"className":23181},[],[23183],{"type":26,"value":23184},"hlq.algorithms.vqe()",{"type":26,"value":1315},{"type":21,"tag":2080,"props":23187,"children":23189},{"className":23188},[],[23190],{"type":26,"value":23191},"hlq.algorithms.qaoa()",{"type":26,"value":1315},{"type":21,"tag":2080,"props":23194,"children":23196},{"className":23195},[],[23197],{"type":26,"value":23198},"hlq.algorithms.grover()",{"type":26,"value":23200}," se encargan del código repetitivo.",{"type":21,"tag":3122,"props":23202,"children":23203},{},[23204,23209],{"type":21,"tag":180,"props":23205,"children":23206},{},[23207],{"type":26,"value":23208},"Estás construyendo aplicaciones multi-backend",{"type":26,"value":23210}," — si tu aplicación necesita ejecutarse en la QPU que tenga la cola más corta o el menor costo, el despachador de HLQuantum se encarga de ello.",{"type":21,"tag":49,"props":23212,"children":23214},{"id":23213},"migración-qiskit-hlquantum",[23215],{"type":26,"value":23216},"Migración: Qiskit → HLQuantum",{"type":21,"tag":22,"props":23218,"children":23219},{},[23220],{"type":26,"value":23221},"Si tienes código de Qiskit existente, HLQuantum puede consumir circuitos de Qiskit directamente:",{"type":21,"tag":2310,"props":23223,"children":23225},{"code":23224,"language":3190,"meta":7,"className":3188,"style":7},"import hlquantum as hlq\nfrom qiskit import QuantumCircuit\n\n# Circuito de Qiskit existente\nqc = QuantumCircuit(3)\nqc.h(0); qc.cx(0, 1); qc.cx(1, 2)\n\n# Envuélvelo y ejecútalo en cualquier backend\nresult = hlq.run(hlq.from_qiskit(qc), backend='pennylane')\nresult_gpu = hlq.run(hlq.from_qiskit(qc), backend='cudaq')\n",[23226],{"type":21,"tag":2080,"props":23227,"children":23228},{"__ignoreMap":7},[23229,23248,23267,23274,23282,23305,23353,23360,23368,23400],{"type":21,"tag":2320,"props":23230,"children":23231},{"class":2322,"line":2323},[23232,23236,23240,23244],{"type":21,"tag":2320,"props":23233,"children":23234},{"style":3200},[23235],{"type":26,"value":3213},{"type":21,"tag":2320,"props":23237,"children":23238},{"style":2327},[23239],{"type":26,"value":19310},{"type":21,"tag":2320,"props":23241,"children":23242},{"style":3200},[23243],{"type":26,"value":4278},{"type":21,"tag":2320,"props":23245,"children":23246},{"style":2327},[23247],{"type":26,"value":19319},{"type":21,"tag":2320,"props":23249,"children":23250},{"class":2322,"line":150},[23251,23255,23259,23263],{"type":21,"tag":2320,"props":23252,"children":23253},{"style":3200},[23254],{"type":26,"value":3203},{"type":21,"tag":2320,"props":23256,"children":23257},{"style":2327},[23258],{"type":26,"value":4295},{"type":21,"tag":2320,"props":23260,"children":23261},{"style":3200},[23262],{"type":26,"value":3213},{"type":21,"tag":2320,"props":23264,"children":23265},{"style":2327},[23266],{"type":26,"value":20318},{"type":21,"tag":2320,"props":23268,"children":23269},{"class":2322,"line":2341},[23270],{"type":21,"tag":2320,"props":23271,"children":23272},{"emptyLinePlaceholder":3224},[23273],{"type":26,"value":3227},{"type":21,"tag":2320,"props":23275,"children":23276},{"class":2322,"line":2403},[23277],{"type":21,"tag":2320,"props":23278,"children":23279},{"style":3450},[23280],{"type":26,"value":23281},"# Circuito de Qiskit existente\n",{"type":21,"tag":2320,"props":23283,"children":23284},{"class":2322,"line":2427},[23285,23289,23293,23297,23301],{"type":21,"tag":2320,"props":23286,"children":23287},{"style":2327},[23288],{"type":26,"value":7382},{"type":21,"tag":2320,"props":23290,"children":23291},{"style":3200},[23292],{"type":26,"value":3240},{"type":21,"tag":2320,"props":23294,"children":23295},{"style":2327},[23296],{"type":26,"value":5138},{"type":21,"tag":2320,"props":23298,"children":23299},{"style":2345},[23300],{"type":26,"value":6511},{"type":21,"tag":2320,"props":23302,"children":23303},{"style":2327},[23304],{"type":26,"value":3300},{"type":21,"tag":2320,"props":23306,"children":23307},{"class":2322,"line":854},[23308,23312,23316,23321,23325,23329,23333,23337,23341,23345,23349],{"type":21,"tag":2320,"props":23309,"children":23310},{"style":2327},[23311],{"type":26,"value":7398},{"type":21,"tag":2320,"props":23313,"children":23314},{"style":2345},[23315],{"type":26,"value":5168},{"type":21,"tag":2320,"props":23317,"children":23318},{"style":2327},[23319],{"type":26,"value":23320},"); qc.cx(",{"type":21,"tag":2320,"props":23322,"children":23323},{"style":2345},[23324],{"type":26,"value":5168},{"type":21,"tag":2320,"props":23326,"children":23327},{"style":2327},[23328],{"type":26,"value":1315},{"type":21,"tag":2320,"props":23330,"children":23331},{"style":2345},[23332],{"type":26,"value":3556},{"type":21,"tag":2320,"props":23334,"children":23335},{"style":2327},[23336],{"type":26,"value":23320},{"type":21,"tag":2320,"props":23338,"children":23339},{"style":2345},[23340],{"type":26,"value":3556},{"type":21,"tag":2320,"props":23342,"children":23343},{"style":2327},[23344],{"type":26,"value":1315},{"type":21,"tag":2320,"props":23346,"children":23347},{"style":2345},[23348],{"type":26,"value":2419},{"type":21,"tag":2320,"props":23350,"children":23351},{"style":2327},[23352],{"type":26,"value":3300},{"type":21,"tag":2320,"props":23354,"children":23355},{"class":2322,"line":171},[23356],{"type":21,"tag":2320,"props":23357,"children":23358},{"emptyLinePlaceholder":3224},[23359],{"type":26,"value":3227},{"type":21,"tag":2320,"props":23361,"children":23362},{"class":2322,"line":16},[23363],{"type":21,"tag":2320,"props":23364,"children":23365},{"style":3450},[23366],{"type":26,"value":23367},"# Envuélvelo y ejecútalo en cualquier backend\n",{"type":21,"tag":2320,"props":23369,"children":23370},{"class":2322,"line":1370},[23371,23375,23379,23384,23388,23392,23396],{"type":21,"tag":2320,"props":23372,"children":23373},{"style":2327},[23374],{"type":26,"value":19342},{"type":21,"tag":2320,"props":23376,"children":23377},{"style":3200},[23378],{"type":26,"value":3240},{"type":21,"tag":2320,"props":23380,"children":23381},{"style":2327},[23382],{"type":26,"value":23383}," hlq.run(hlq.from_qiskit(qc), ",{"type":21,"tag":2320,"props":23385,"children":23386},{"style":3265},[23387],{"type":26,"value":18469},{"type":21,"tag":2320,"props":23389,"children":23390},{"style":3200},[23391],{"type":26,"value":3240},{"type":21,"tag":2320,"props":23393,"children":23394},{"style":2356},[23395],{"type":26,"value":22190},{"type":21,"tag":2320,"props":23397,"children":23398},{"style":2327},[23399],{"type":26,"value":3300},{"type":21,"tag":2320,"props":23401,"children":23402},{"class":2322,"line":3446},[23403,23407,23411,23415,23419,23423,23427],{"type":21,"tag":2320,"props":23404,"children":23405},{"style":2327},[23406],{"type":26,"value":22986},{"type":21,"tag":2320,"props":23408,"children":23409},{"style":3200},[23410],{"type":26,"value":3240},{"type":21,"tag":2320,"props":23412,"children":23413},{"style":2327},[23414],{"type":26,"value":23383},{"type":21,"tag":2320,"props":23416,"children":23417},{"style":3265},[23418],{"type":26,"value":18469},{"type":21,"tag":2320,"props":23420,"children":23421},{"style":3200},[23422],{"type":26,"value":3240},{"type":21,"tag":2320,"props":23424,"children":23425},{"style":2356},[23426],{"type":26,"value":22223},{"type":21,"tag":2320,"props":23428,"children":23429},{"style":2327},[23430],{"type":26,"value":3300},{"type":21,"tag":22,"props":23432,"children":23433},{},[23434],{"type":26,"value":23435},"No se requiere reescritura — puedes añadir las capacidades multi-backend de HLQuantum al código de Qiskit existente de forma incremental.",{"type":21,"tag":49,"props":23437,"children":23439},{"id":23438},"lista-de-verificación-para-decidir",[23440],{"type":26,"value":23441},"Lista de verificación para decidir",{"type":21,"tag":2310,"props":23443,"children":23445},{"code":23444},"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",[23446],{"type":21,"tag":2080,"props":23447,"children":23448},{"__ignoreMap":7},[23449],{"type":26,"value":23444},{"type":21,"tag":22,"props":23451,"children":23452},{},[23453],{"type":26,"value":23454},"Ambos no son mutuamente excluyentes. Muchos flujos de trabajo comienzan con Qiskit puro para el diseño del circuito y luego lo envuelven con HLQuantum para el despliegue multi-backend.",{"type":21,"tag":22,"props":23456,"children":23457},{},[23458,23462,23463,23468,23469,23474,23475],{"type":21,"tag":180,"props":23459,"children":23460},{},[23461],{"type":26,"value":19127},{"type":26,"value":1307},{"type":21,"tag":29,"props":23464,"children":23465},{"href":19017},[23466],{"type":26,"value":23467},"Guía de HLQuantum",{"type":26,"value":7112},{"type":21,"tag":29,"props":23470,"children":23471},{"href":7091},[23472],{"type":26,"value":23473},"Guía del SDK de Qiskit",{"type":26,"value":7112},{"type":21,"tag":29,"props":23476,"children":23477},{"href":257},[23478],{"type":26,"value":23479},"Compara todos los SDKs",{"type":21,"tag":2694,"props":23481,"children":23482},{},[23483],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":23485},[23486,23487,23488,23489,23490,23491,23492,23493],{"id":21049,"depth":150,"text":21052},{"id":21073,"depth":150,"text":21076},{"id":21493,"depth":150,"text":21496},{"id":22373,"depth":150,"text":22376},{"id":23034,"depth":150,"text":23037},{"id":23127,"depth":150,"text":23130},{"id":23213,"depth":150,"text":23216},{"id":23438,"depth":150,"text":23441},"content:es:blog:hlquantum-vs-qiskit.md","es\u002Fblog\u002Fhlquantum-vs-qiskit.md","es\u002Fblog\u002Fhlquantum-vs-qiskit",{"_path":23498,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":23499,"description":23500,"date":23501,"author":11,"tags":23502,"readingTime":3446,"body":23503,"_type":156,"_id":24547,"_source":158,"_file":24548,"_stem":24549,"_extension":161},"\u002Fes\u002Fblog\u002Fpost-quantum-cryptography-guide","Criptografía post-cuántica: lo que los desarrolladores deben hacer ahora","El algoritmo de Shor amenaza a RSA y ECC. El NIST ha finalizado sus estándares post-cuánticos. Aquí está en qué consiste la amenaza, qué dicen los estándares y qué medidas deberían tomar los desarrolladores hoy.","2026-03-05",[9348,9349,9347],{"type":18,"children":23504,"toc":24531},[23505,23517,23522,23528,23541,23549,23572,23580,23603,23614,23620,23625,23643,23660,23668,23696,23704,23722,23728,23733,23739,23782,23943,23949,23988,24111,24117,24156,24168,24174,24180,24190,24213,24223,24233,24239,24257,24282,24292,24302,24308,24318,24328,24338,24344,24488,24494,24502,24507,24527],{"type":21,"tag":22,"props":23506,"children":23507},{},[23508,23510,23515],{"type":26,"value":23509},"Los ordenadores cuánticos todavía no amenazan tu cifrado. Un ordenador cuántico capaz de romper RSA-2048 necesitaría millones de cúbits lógicos con corrección de errores — nosotros tenemos cientos de cúbits físicos ruidosos. Pero aquí está el problema: los adversarios podrían estar recopilando datos cifrados ",{"type":21,"tag":180,"props":23511,"children":23512},{},[23513],{"type":26,"value":23514},"ahora mismo",{"type":26,"value":23516}," con la intención de descifrarlos más adelante, una vez que el hardware cuántico madure. Y migrar la infraestructura criptográfica lleva años.",{"type":21,"tag":22,"props":23518,"children":23519},{},[23520],{"type":26,"value":23521},"Por eso los estándares de criptografía post-cuántica del NIST de 2024 son importantes para los desarrolladores hoy, no en 2035.",{"type":21,"tag":49,"props":23523,"children":23525},{"id":23524},"la-amenaza-real-el-algoritmo-de-shor",[23526],{"type":26,"value":23527},"La amenaza real: el algoritmo de Shor",{"type":21,"tag":22,"props":23529,"children":23530},{},[23531,23533,23539],{"type":26,"value":23532},"En 1994, Peter Shor demostró que un ordenador cuántico puede factorizar enteros grandes en tiempo polinómico ",{"type":21,"tag":2080,"props":23534,"children":23536},{"className":23535},[],[23537],{"type":26,"value":23538},"O((log N)³)",{"type":26,"value":23540},". Esto rompe RSA, cuya seguridad se basa en que la factorización sea difícil. El mismo algoritmo — con modificaciones menores — rompe la criptografía de curva elíptica (ECC), que sustenta a ECDSA y ECDH.",{"type":21,"tag":22,"props":23542,"children":23543},{},[23544],{"type":21,"tag":180,"props":23545,"children":23546},{},[23547],{"type":26,"value":23548},"Lo que se rompe:",{"type":21,"tag":3118,"props":23550,"children":23551},{},[23552,23557,23562,23567],{"type":21,"tag":3122,"props":23553,"children":23554},{},[23555],{"type":26,"value":23556},"RSA (cifrado, firmas)",{"type":21,"tag":3122,"props":23558,"children":23559},{},[23560],{"type":26,"value":23561},"ECDSA (firma — usado en TLS, SSH, firma de código, Bitcoin)",{"type":21,"tag":3122,"props":23563,"children":23564},{},[23565],{"type":26,"value":23566},"ECDH (intercambio de claves — usado en TLS, Signal, WhatsApp, iMessage)",{"type":21,"tag":3122,"props":23568,"children":23569},{},[23570],{"type":26,"value":23571},"Diffie-Hellman (intercambio de claves)",{"type":21,"tag":22,"props":23573,"children":23574},{},[23575],{"type":21,"tag":180,"props":23576,"children":23577},{},[23578],{"type":26,"value":23579},"Lo que no se rompe:",{"type":21,"tag":3118,"props":23581,"children":23582},{},[23583,23588,23593,23598],{"type":21,"tag":3122,"props":23584,"children":23585},{},[23586],{"type":26,"value":23587},"AES-256 (cifrado simétrico) — el algoritmo de Grover solo proporciona una aceleración cuadrática, reduciendo la fortaleza efectiva de la clave de 256 a 128 bits. Esto es manejable.",{"type":21,"tag":3122,"props":23589,"children":23590},{},[23591],{"type":26,"value":23592},"SHA-256, SHA-3 (funciones hash) — lo mismo: Grover proporciona una aceleración menor, la seguridad se reduce a la mitad, sigue siendo lo bastante fuerte con los tamaños de clave actuales",{"type":21,"tag":3122,"props":23594,"children":23595},{},[23596],{"type":26,"value":23597},"HMAC — seguro",{"type":21,"tag":3122,"props":23599,"children":23600},{},[23601],{"type":26,"value":23602},"Argon2, bcrypt (hashing de contraseñas) — seguro",{"type":21,"tag":22,"props":23604,"children":23605},{},[23606,23608,23613],{"type":26,"value":23607},"En resumen: ",{"type":21,"tag":180,"props":23609,"children":23610},{},[23611],{"type":26,"value":23612},"la criptografía asimétrica necesita ser reemplazada; la criptografía simétrica necesita un aumento del tamaño de clave (AES-128 → AES-256)",{"type":26,"value":802},{"type":21,"tag":49,"props":23615,"children":23617},{"id":23616},"cosechar-ahora-descifrar-después",[23618],{"type":26,"value":23619},"Cosechar ahora, descifrar después",{"type":21,"tag":22,"props":23621,"children":23622},{},[23623],{"type":26,"value":23624},"La amenaza no es \"los ordenadores cuánticos romperán el cifrado el año que viene\". La amenaza es:",{"type":21,"tag":7007,"props":23626,"children":23627},{},[23628,23633,23638],{"type":21,"tag":3122,"props":23629,"children":23630},{},[23631],{"type":26,"value":23632},"Un adversario captura y almacena tu tráfico TLS cifrado hoy",{"type":21,"tag":3122,"props":23634,"children":23635},{},[23636],{"type":26,"value":23637},"En 2032–2040, ejecuta el algoritmo de Shor sobre él",{"type":21,"tag":3122,"props":23639,"children":23640},{},[23641],{"type":26,"value":23642},"Descifra todo retroactivamente",{"type":21,"tag":22,"props":23644,"children":23645},{},[23646,23648,23652,23653,23658],{"type":26,"value":23647},"Este ataque — llamado ",{"type":21,"tag":180,"props":23649,"children":23650},{},[23651],{"type":26,"value":18751},{"type":26,"value":18816},{"type":21,"tag":180,"props":23654,"children":23655},{},[23656],{"type":26,"value":23657},"HNDL",{"type":26,"value":23659}," — ya está ocurriendo. La NSA y otras agencias de inteligencia están casi con certeza almacenando grandes volúmenes de tráfico cifrado. El aviso de la NSA de 2022 advirtió explícitamente sobre esto.",{"type":21,"tag":22,"props":23661,"children":23662},{},[23663],{"type":21,"tag":180,"props":23664,"children":23665},{},[23666],{"type":26,"value":23667},"Datos que necesitan protección hoy frente a HNDL:",{"type":21,"tag":3118,"props":23669,"children":23670},{},[23671,23676,23681,23686,23691],{"type":21,"tag":3122,"props":23672,"children":23673},{},[23674],{"type":26,"value":23675},"Secretos de estado, datos gubernamentales clasificados",{"type":21,"tag":3122,"props":23677,"children":23678},{},[23679],{"type":26,"value":23680},"Datos personales de larga duración (historiales médicos, documentos de identidad)",{"type":21,"tag":3122,"props":23682,"children":23683},{},[23684],{"type":26,"value":23685},"Datos financieros con largos requisitos regulatorios de retención",{"type":21,"tag":3122,"props":23687,"children":23688},{},[23689],{"type":26,"value":23690},"Secretos comerciales y propiedad intelectual",{"type":21,"tag":3122,"props":23692,"children":23693},{},[23694],{"type":26,"value":23695},"Bases de datos de contraseñas (aunque bcrypt\u002FArgon2 son seguros)",{"type":21,"tag":22,"props":23697,"children":23698},{},[23699],{"type":21,"tag":180,"props":23700,"children":23701},{},[23702],{"type":26,"value":23703},"Datos que no requieren preocupación inmediata:",{"type":21,"tag":3118,"props":23705,"children":23706},{},[23707,23712,23717],{"type":21,"tag":3122,"props":23708,"children":23709},{},[23710],{"type":26,"value":23711},"Tokens de sesión (de corta duración, sin valor dentro de 10 años)",{"type":21,"tag":3122,"props":23713,"children":23714},{},[23715],{"type":26,"value":23716},"Mensajes de chat efímeros (a menos que seas un objetivo de alto valor)",{"type":21,"tag":3122,"props":23718,"children":23719},{},[23720],{"type":26,"value":23721},"Información pública",{"type":21,"tag":49,"props":23723,"children":23725},{"id":23724},"los-estándares-post-cuánticos-del-nist-2024",[23726],{"type":26,"value":23727},"Los estándares post-cuánticos del NIST (2024)",{"type":21,"tag":22,"props":23729,"children":23730},{},[23731],{"type":26,"value":23732},"Tras una competición de 8 años, el NIST finalizó tres algoritmos de criptografía post-cuántica en agosto de 2024:",{"type":21,"tag":17361,"props":23734,"children":23736},{"id":23735},"ml-kem-crystals-kyber-encapsulación-de-claves",[23737],{"type":26,"value":23738},"ML-KEM (CRYSTALS-Kyber) — Encapsulación de claves",{"type":21,"tag":3118,"props":23740,"children":23741},{},[23742,23752,23762,23772],{"type":21,"tag":3122,"props":23743,"children":23744},{},[23745,23750],{"type":21,"tag":180,"props":23746,"children":23747},{},[23748],{"type":26,"value":23749},"Reemplaza:",{"type":26,"value":23751}," el intercambio de claves RSA, ECDH",{"type":21,"tag":3122,"props":23753,"children":23754},{},[23755,23760],{"type":21,"tag":180,"props":23756,"children":23757},{},[23758],{"type":26,"value":23759},"Base de seguridad:",{"type":26,"value":23761}," el problema Module Learning With Errors (MLWE) — que se cree difícil tanto para ordenadores clásicos como cuánticos",{"type":21,"tag":3122,"props":23763,"children":23764},{},[23765,23770],{"type":21,"tag":180,"props":23766,"children":23767},{},[23768],{"type":26,"value":23769},"Rendimiento:",{"type":26,"value":23771}," rápido, claves pequeñas (~800 bytes para KEM-768), operaciones rápidas",{"type":21,"tag":3122,"props":23773,"children":23774},{},[23775,23780],{"type":21,"tag":180,"props":23776,"children":23777},{},[23778],{"type":26,"value":23779},"Usar para:",{"type":26,"value":23781}," intercambio de claves TLS, envoltura cifrada de claves, esquemas de cifrado híbrido",{"type":21,"tag":2310,"props":23783,"children":23785},{"code":23784,"language":3190,"meta":7,"className":3188,"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",[23786],{"type":21,"tag":2080,"props":23787,"children":23788},{"__ignoreMap":7},[23789,23797,23818,23825,23842,23849,23857,23874,23881,23889,23906,23913,23935],{"type":21,"tag":2320,"props":23790,"children":23791},{"class":2322,"line":2323},[23792],{"type":21,"tag":2320,"props":23793,"children":23794},{"style":3450},[23795],{"type":26,"value":23796},"# Python example using pqcrypto library\n",{"type":21,"tag":2320,"props":23798,"children":23799},{"class":2322,"line":150},[23800,23804,23809,23813],{"type":21,"tag":2320,"props":23801,"children":23802},{"style":3200},[23803],{"type":26,"value":3203},{"type":21,"tag":2320,"props":23805,"children":23806},{"style":2327},[23807],{"type":26,"value":23808}," pqcrypto.kem.kyber768 ",{"type":21,"tag":2320,"props":23810,"children":23811},{"style":3200},[23812],{"type":26,"value":3213},{"type":21,"tag":2320,"props":23814,"children":23815},{"style":2327},[23816],{"type":26,"value":23817}," generate_keypair, encapsulate, decapsulate\n",{"type":21,"tag":2320,"props":23819,"children":23820},{"class":2322,"line":2341},[23821],{"type":21,"tag":2320,"props":23822,"children":23823},{"emptyLinePlaceholder":3224},[23824],{"type":26,"value":3227},{"type":21,"tag":2320,"props":23826,"children":23827},{"class":2322,"line":2403},[23828,23833,23837],{"type":21,"tag":2320,"props":23829,"children":23830},{"style":2327},[23831],{"type":26,"value":23832},"public_key, secret_key ",{"type":21,"tag":2320,"props":23834,"children":23835},{"style":3200},[23836],{"type":26,"value":3240},{"type":21,"tag":2320,"props":23838,"children":23839},{"style":2327},[23840],{"type":26,"value":23841}," generate_keypair()\n",{"type":21,"tag":2320,"props":23843,"children":23844},{"class":2322,"line":2427},[23845],{"type":21,"tag":2320,"props":23846,"children":23847},{"emptyLinePlaceholder":3224},[23848],{"type":26,"value":3227},{"type":21,"tag":2320,"props":23850,"children":23851},{"class":2322,"line":854},[23852],{"type":21,"tag":2320,"props":23853,"children":23854},{"style":3450},[23855],{"type":26,"value":23856},"# Sender encapsulates a shared secret\n",{"type":21,"tag":2320,"props":23858,"children":23859},{"class":2322,"line":171},[23860,23865,23869],{"type":21,"tag":2320,"props":23861,"children":23862},{"style":2327},[23863],{"type":26,"value":23864},"ciphertext, shared_secret_sender ",{"type":21,"tag":2320,"props":23866,"children":23867},{"style":3200},[23868],{"type":26,"value":3240},{"type":21,"tag":2320,"props":23870,"children":23871},{"style":2327},[23872],{"type":26,"value":23873}," encapsulate(public_key)\n",{"type":21,"tag":2320,"props":23875,"children":23876},{"class":2322,"line":16},[23877],{"type":21,"tag":2320,"props":23878,"children":23879},{"emptyLinePlaceholder":3224},[23880],{"type":26,"value":3227},{"type":21,"tag":2320,"props":23882,"children":23883},{"class":2322,"line":1370},[23884],{"type":21,"tag":2320,"props":23885,"children":23886},{"style":3450},[23887],{"type":26,"value":23888},"# Receiver decapsulates\n",{"type":21,"tag":2320,"props":23890,"children":23891},{"class":2322,"line":3446},[23892,23897,23901],{"type":21,"tag":2320,"props":23893,"children":23894},{"style":2327},[23895],{"type":26,"value":23896},"shared_secret_receiver ",{"type":21,"tag":2320,"props":23898,"children":23899},{"style":3200},[23900],{"type":26,"value":3240},{"type":21,"tag":2320,"props":23902,"children":23903},{"style":2327},[23904],{"type":26,"value":23905}," decapsulate(secret_key, ciphertext)\n",{"type":21,"tag":2320,"props":23907,"children":23908},{"class":2322,"line":3456},[23909],{"type":21,"tag":2320,"props":23910,"children":23911},{"emptyLinePlaceholder":3224},[23912],{"type":26,"value":3227},{"type":21,"tag":2320,"props":23914,"children":23915},{"class":2322,"line":474},[23916,23921,23926,23930],{"type":21,"tag":2320,"props":23917,"children":23918},{"style":3200},[23919],{"type":26,"value":23920},"assert",{"type":21,"tag":2320,"props":23922,"children":23923},{"style":2327},[23924],{"type":26,"value":23925}," shared_secret_sender ",{"type":21,"tag":2320,"props":23927,"children":23928},{"style":3200},[23929],{"type":26,"value":4909},{"type":21,"tag":2320,"props":23931,"children":23932},{"style":2327},[23933],{"type":26,"value":23934}," shared_secret_receiver\n",{"type":21,"tag":2320,"props":23936,"children":23937},{"class":2322,"line":3516},[23938],{"type":21,"tag":2320,"props":23939,"children":23940},{"style":3450},[23941],{"type":26,"value":23942},"# Now use shared_secret as AES key\n",{"type":21,"tag":17361,"props":23944,"children":23946},{"id":23945},"ml-dsa-crystals-dilithium-firmas-digitales",[23947],{"type":26,"value":23948},"ML-DSA (CRYSTALS-Dilithium) — Firmas digitales",{"type":21,"tag":3118,"props":23950,"children":23951},{},[23952,23961,23970,23979],{"type":21,"tag":3122,"props":23953,"children":23954},{},[23955,23959],{"type":21,"tag":180,"props":23956,"children":23957},{},[23958],{"type":26,"value":23749},{"type":26,"value":23960}," ECDSA, RSA-PSS para firma",{"type":21,"tag":3122,"props":23962,"children":23963},{},[23964,23968],{"type":21,"tag":180,"props":23965,"children":23966},{},[23967],{"type":26,"value":23759},{"type":26,"value":23969}," problemas MLWE + MSIS",{"type":21,"tag":3122,"props":23971,"children":23972},{},[23973,23977],{"type":21,"tag":180,"props":23974,"children":23975},{},[23976],{"type":26,"value":23769},{"type":26,"value":23978}," tamaños de clave moderados (~1,312 bytes de clave pública), firma rápida",{"type":21,"tag":3122,"props":23980,"children":23981},{},[23982,23986],{"type":21,"tag":180,"props":23983,"children":23984},{},[23985],{"type":26,"value":23779},{"type":26,"value":23987}," firma de código, certificados TLS, firma de documentos, firmas JWT",{"type":21,"tag":2310,"props":23989,"children":23991},{"code":23990,"language":3190,"meta":7,"className":3188,"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",[23992],{"type":21,"tag":2080,"props":23993,"children":23994},{"__ignoreMap":7},[23995,24016,24023,24038,24045,24067,24084,24091,24099],{"type":21,"tag":2320,"props":23996,"children":23997},{"class":2322,"line":2323},[23998,24002,24007,24011],{"type":21,"tag":2320,"props":23999,"children":24000},{"style":3200},[24001],{"type":26,"value":3203},{"type":21,"tag":2320,"props":24003,"children":24004},{"style":2327},[24005],{"type":26,"value":24006}," pqcrypto.sign.dilithium3 ",{"type":21,"tag":2320,"props":24008,"children":24009},{"style":3200},[24010],{"type":26,"value":3213},{"type":21,"tag":2320,"props":24012,"children":24013},{"style":2327},[24014],{"type":26,"value":24015}," generate_keypair, sign, verify\n",{"type":21,"tag":2320,"props":24017,"children":24018},{"class":2322,"line":150},[24019],{"type":21,"tag":2320,"props":24020,"children":24021},{"emptyLinePlaceholder":3224},[24022],{"type":26,"value":3227},{"type":21,"tag":2320,"props":24024,"children":24025},{"class":2322,"line":2341},[24026,24030,24034],{"type":21,"tag":2320,"props":24027,"children":24028},{"style":2327},[24029],{"type":26,"value":23832},{"type":21,"tag":2320,"props":24031,"children":24032},{"style":3200},[24033],{"type":26,"value":3240},{"type":21,"tag":2320,"props":24035,"children":24036},{"style":2327},[24037],{"type":26,"value":23841},{"type":21,"tag":2320,"props":24039,"children":24040},{"class":2322,"line":2403},[24041],{"type":21,"tag":2320,"props":24042,"children":24043},{"emptyLinePlaceholder":3224},[24044],{"type":26,"value":3227},{"type":21,"tag":2320,"props":24046,"children":24047},{"class":2322,"line":2427},[24048,24053,24057,24062],{"type":21,"tag":2320,"props":24049,"children":24050},{"style":2327},[24051],{"type":26,"value":24052},"message ",{"type":21,"tag":2320,"props":24054,"children":24055},{"style":3200},[24056],{"type":26,"value":3240},{"type":21,"tag":2320,"props":24058,"children":24059},{"style":3200},[24060],{"type":26,"value":24061}," b",{"type":21,"tag":2320,"props":24063,"children":24064},{"style":2356},[24065],{"type":26,"value":24066},"\"Deploy to production\"\n",{"type":21,"tag":2320,"props":24068,"children":24069},{"class":2322,"line":854},[24070,24075,24079],{"type":21,"tag":2320,"props":24071,"children":24072},{"style":2327},[24073],{"type":26,"value":24074},"signature ",{"type":21,"tag":2320,"props":24076,"children":24077},{"style":3200},[24078],{"type":26,"value":3240},{"type":21,"tag":2320,"props":24080,"children":24081},{"style":2327},[24082],{"type":26,"value":24083}," sign(message, secret_key)\n",{"type":21,"tag":2320,"props":24085,"children":24086},{"class":2322,"line":171},[24087],{"type":21,"tag":2320,"props":24088,"children":24089},{"emptyLinePlaceholder":3224},[24090],{"type":26,"value":3227},{"type":21,"tag":2320,"props":24092,"children":24093},{"class":2322,"line":16},[24094],{"type":21,"tag":2320,"props":24095,"children":24096},{"style":3450},[24097],{"type":26,"value":24098},"# Verify\n",{"type":21,"tag":2320,"props":24100,"children":24101},{"class":2322,"line":1370},[24102,24106],{"type":21,"tag":2320,"props":24103,"children":24104},{"style":3200},[24105],{"type":26,"value":23920},{"type":21,"tag":2320,"props":24107,"children":24108},{"style":2327},[24109],{"type":26,"value":24110}," verify(message, signature, public_key)\n",{"type":21,"tag":17361,"props":24112,"children":24114},{"id":24113},"slh-dsa-sphincs-firmas-basadas-en-hash",[24115],{"type":26,"value":24116},"SLH-DSA (SPHINCS+) — Firmas basadas en hash",{"type":21,"tag":3118,"props":24118,"children":24119},{},[24120,24129,24138,24147],{"type":21,"tag":3122,"props":24121,"children":24122},{},[24123,24127],{"type":21,"tag":180,"props":24124,"children":24125},{},[24126],{"type":26,"value":23749},{"type":26,"value":24128}," ECDSA como respaldo conservador",{"type":21,"tag":3122,"props":24130,"children":24131},{},[24132,24136],{"type":21,"tag":180,"props":24133,"children":24134},{},[24135],{"type":26,"value":23759},{"type":26,"value":24137}," solo funciones hash — la opción más conservadora",{"type":21,"tag":3122,"props":24139,"children":24140},{},[24141,24145],{"type":21,"tag":180,"props":24142,"children":24143},{},[24144],{"type":26,"value":23769},{"type":26,"value":24146}," firmas más grandes (~8–50 KB), firma más lenta",{"type":21,"tag":3122,"props":24148,"children":24149},{},[24150,24154],{"type":21,"tag":180,"props":24151,"children":24152},{},[24153],{"type":26,"value":23779},{"type":26,"value":24155}," firma de alta garantía donde la reutilización de claves es una preocupación, firma de documentos a largo plazo",{"type":21,"tag":22,"props":24157,"children":24158},{},[24159,24161,24166],{"type":26,"value":24160},"El NIST también estandarizó ",{"type":21,"tag":180,"props":24162,"children":24163},{},[24164],{"type":26,"value":24165},"FALCON (FN-DSA)",{"type":26,"value":24167}," — un esquema de firma basado en retículos con firmas compactas, adecuado para entornos con recursos limitados como IoT.",{"type":21,"tag":49,"props":24169,"children":24171},{"id":24170},"qué-hacer-ahora-un-plan-de-acción-por-niveles",[24172],{"type":26,"value":24173},"Qué hacer ahora: un plan de acción por niveles",{"type":21,"tag":17361,"props":24175,"children":24177},{"id":24176},"nivel-1-hazlo-hoy-bajo-esfuerzo-alto-impacto",[24178],{"type":26,"value":24179},"Nivel 1 — Hazlo hoy (bajo esfuerzo, alto impacto)",{"type":21,"tag":22,"props":24181,"children":24182},{},[24183,24188],{"type":21,"tag":180,"props":24184,"children":24185},{},[24186],{"type":26,"value":24187},"Audita tu inventario criptográfico.",{"type":26,"value":24189}," No puedes migrar lo que no has catalogado. Documenta:",{"type":21,"tag":3118,"props":24191,"children":24192},{},[24193,24198,24203,24208],{"type":21,"tag":3122,"props":24194,"children":24195},{},[24196],{"type":26,"value":24197},"¿Dónde usa TLS tu aplicación? (La mayoría de los frameworks lo gestionan)",{"type":21,"tag":3122,"props":24199,"children":24200},{},[24201],{"type":26,"value":24202},"¿Dónde generas o verificas firmas? (JWT, firma de código, firma de PDF)",{"type":21,"tag":3122,"props":24204,"children":24205},{},[24206],{"type":26,"value":24207},"¿Dónde usas intercambio de claves asimétrico? (claves AES envueltas con RSA, SSH)",{"type":21,"tag":3122,"props":24209,"children":24210},{},[24211],{"type":26,"value":24212},"¿Qué bibliotecas estás usando? (OpenSSL, BouncyCastle, AWS KMS, etc.)",{"type":21,"tag":22,"props":24214,"children":24215},{},[24216,24221],{"type":21,"tag":180,"props":24217,"children":24218},{},[24219],{"type":26,"value":24220},"Actualiza AES-128 a AES-256.",{"type":26,"value":24222}," Esto es de bajo riesgo e inmediato. AES-256 se reduce a 128 bits de seguridad frente a Grover — todavía más que seguro.",{"type":21,"tag":22,"props":24224,"children":24225},{},[24226,24231],{"type":21,"tag":180,"props":24227,"children":24228},{},[24229],{"type":26,"value":24230},"Habilita TLS 1.3 en todas partes.",{"type":26,"value":24232}," TLS 1.3 usa confidencialidad hacia adelante (forward secrecy) por defecto (ECDHE), lo que significa que las sesiones pasadas no pueden descifrarse aunque la clave a largo plazo se vea comprometida. Esto mitiga parcialmente HNDL para el tráfico TLS.",{"type":21,"tag":17361,"props":24234,"children":24236},{"id":24235},"nivel-2-planifica-para-los-próximos-618-meses",[24237],{"type":26,"value":24238},"Nivel 2 — Planifica para los próximos 6–18 meses",{"type":21,"tag":22,"props":24240,"children":24241},{},[24242,24247,24249,24255],{"type":21,"tag":180,"props":24243,"children":24244},{},[24245],{"type":26,"value":24246},"Adopta el intercambio de claves híbrido en TLS.",{"type":26,"value":24248}," El grupo de trabajo de TLS ha estandarizado ",{"type":21,"tag":2080,"props":24250,"children":24252},{"className":24251},[],[24253],{"type":26,"value":24254},"X25519Kyber768",{"type":26,"value":24256}," — un esquema híbrido que usa tanto ECDH clásico como ML-KEM. Google Chrome, Cloudflare y AWS ya lo soportan. Esto protege contra HNDL manteniendo la seguridad clásica:",{"type":21,"tag":2310,"props":24258,"children":24262},{"code":24259,"language":24260,"meta":7,"className":24261,"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",[24263],{"type":21,"tag":2080,"props":24264,"children":24265},{"__ignoreMap":7},[24266,24274],{"type":21,"tag":2320,"props":24267,"children":24268},{"class":2322,"line":2323},[24269],{"type":21,"tag":2320,"props":24270,"children":24271},{},[24272],{"type":26,"value":24273},"# Nginx with OpenSSL 3.x + oqs-provider (Open Quantum Safe)\n",{"type":21,"tag":2320,"props":24275,"children":24276},{"class":2322,"line":150},[24277],{"type":21,"tag":2320,"props":24278,"children":24279},{},[24280],{"type":26,"value":24281},"ssl_ecdh_curve X25519Kyber768;  # hybrid classical + PQC\n",{"type":21,"tag":22,"props":24283,"children":24284},{},[24285,24290],{"type":21,"tag":180,"props":24286,"children":24287},{},[24288],{"type":26,"value":24289},"Reemplaza RSA\u002FECDSA en sistemas nuevos por ML-DSA.",{"type":26,"value":24291}," Para cualquier cosa desde cero — nuevos microservicios, nuevas implementaciones de JWT, nuevos despliegues de SSH — usa ML-DSA (Dilithium3 o Dilithium5) en lugar de ECDSA-256.",{"type":21,"tag":22,"props":24293,"children":24294},{},[24295,24300],{"type":21,"tag":180,"props":24296,"children":24297},{},[24298],{"type":26,"value":24299},"Actualiza tu pipeline de certificados TLS.",{"type":26,"value":24301}," La mayoría de las CA públicas aún no emiten certificados PQC, pero puedes usar ML-DSA hoy para certificados firmados internamente y certificados de service mesh.",{"type":21,"tag":17361,"props":24303,"children":24305},{"id":24304},"nivel-3-migración-a-largo-plazo-15-años",[24306],{"type":26,"value":24307},"Nivel 3 — Migración a largo plazo (1–5 años)",{"type":21,"tag":22,"props":24309,"children":24310},{},[24311,24316],{"type":21,"tag":180,"props":24312,"children":24313},{},[24314],{"type":26,"value":24315},"Migración completa de la PKI.",{"type":26,"value":24317}," Reemplaza tu jerarquía de certificados RSA\u002FECC por una infraestructura de CA basada en PQC. Esta es la parte más difícil — los módulos de seguridad hardware (HSM), la rotación automatizada de certificados y las cadenas de certificados necesitan actualizarse.",{"type":21,"tag":22,"props":24319,"children":24320},{},[24321,24326],{"type":21,"tag":180,"props":24322,"children":24323},{},[24324],{"type":26,"value":24325},"Hardware y dispositivos embebidos.",{"type":26,"value":24327}," Los dispositivos IoT y embebidos a menudo no pueden parchearse de forma remota y tienen ciclos de vida de más de 10 años. Audita cualquier dispositivo de este tipo que dependa de RSA o ECDSA para la autenticación.",{"type":21,"tag":22,"props":24329,"children":24330},{},[24331,24336],{"type":21,"tag":180,"props":24332,"children":24333},{},[24334],{"type":26,"value":24335},"Sistemas de gestión de claves.",{"type":26,"value":24337}," AWS KMS, Azure Key Vault, HashiCorp Vault — verifica sus hojas de ruta de PQC y sus cronogramas de migración.",{"type":21,"tag":49,"props":24339,"children":24341},{"id":24340},"soporte-de-bibliotecas-y-frameworks",[24342],{"type":26,"value":24343},"Soporte de bibliotecas y frameworks",{"type":21,"tag":4066,"props":24345,"children":24346},{},[24347,24363],{"type":21,"tag":4070,"props":24348,"children":24349},{},[24350],{"type":21,"tag":4074,"props":24351,"children":24352},{},[24353,24358],{"type":21,"tag":4078,"props":24354,"children":24355},{},[24356],{"type":26,"value":24357},"Plataforma",{"type":21,"tag":4078,"props":24359,"children":24360},{},[24361],{"type":26,"value":24362},"Estado de PQC",{"type":21,"tag":4092,"props":24364,"children":24365},{},[24366,24379,24392,24405,24418,24431,24444,24463,24476],{"type":21,"tag":4074,"props":24367,"children":24368},{},[24369,24374],{"type":21,"tag":4099,"props":24370,"children":24371},{},[24372],{"type":26,"value":24373},"OpenSSL 3.x + oqs-provider",{"type":21,"tag":4099,"props":24375,"children":24376},{},[24377],{"type":26,"value":24378},"ML-KEM, ML-DSA, FALCON vía plugin",{"type":21,"tag":4074,"props":24380,"children":24381},{},[24382,24387],{"type":21,"tag":4099,"props":24383,"children":24384},{},[24385],{"type":26,"value":24386},"AWS KMS",{"type":21,"tag":4099,"props":24388,"children":24389},{},[24390],{"type":26,"value":24391},"TLS híbrido ML-KEM en vista previa",{"type":21,"tag":4074,"props":24393,"children":24394},{},[24395,24400],{"type":21,"tag":4099,"props":24396,"children":24397},{},[24398],{"type":26,"value":24399},"Cloudflare",{"type":21,"tag":4099,"props":24401,"children":24402},{},[24403],{"type":26,"value":24404},"TLS X25519Kyber768 (en producción desde 2023)",{"type":21,"tag":4074,"props":24406,"children":24407},{},[24408,24413],{"type":21,"tag":4099,"props":24409,"children":24410},{},[24411],{"type":26,"value":24412},"Chrome 124+",{"type":21,"tag":4099,"props":24414,"children":24415},{},[24416],{"type":26,"value":24417},"TLS X25519Kyber768",{"type":21,"tag":4074,"props":24419,"children":24420},{},[24421,24426],{"type":21,"tag":4099,"props":24422,"children":24423},{},[24424],{"type":26,"value":24425},"Java (BouncyCastle)",{"type":21,"tag":4099,"props":24427,"children":24428},{},[24429],{"type":26,"value":24430},"CRYSTALS-Kyber, Dilithium",{"type":21,"tag":4074,"props":24432,"children":24433},{},[24434,24439],{"type":21,"tag":4099,"props":24435,"children":24436},{},[24437],{"type":26,"value":24438},"Python (pqcrypto)",{"type":21,"tag":4099,"props":24440,"children":24441},{},[24442],{"type":26,"value":24443},"Conjunto NIST completo",{"type":21,"tag":4074,"props":24445,"children":24446},{},[24447,24452],{"type":21,"tag":4099,"props":24448,"children":24449},{},[24450],{"type":26,"value":24451},"Go",{"type":21,"tag":4099,"props":24453,"children":24454},{},[24455,24461],{"type":21,"tag":2080,"props":24456,"children":24458},{"className":24457},[],[24459],{"type":26,"value":24460},"golang.org\u002Fx\u002Fcrypto",{"type":26,"value":24462}," PQC en desarrollo",{"type":21,"tag":4074,"props":24464,"children":24465},{},[24466,24471],{"type":21,"tag":4099,"props":24467,"children":24468},{},[24469],{"type":26,"value":24470},"Node.js",{"type":21,"tag":4099,"props":24472,"children":24473},{},[24474],{"type":26,"value":24475},"Vía módulos nativos (bindings de OpenSSL 3.x)",{"type":21,"tag":4074,"props":24477,"children":24478},{},[24479,24484],{"type":21,"tag":4099,"props":24480,"children":24481},{},[24482],{"type":26,"value":24483},"Rust (pqcrypto crate)",{"type":21,"tag":4099,"props":24485,"children":24486},{},[24487],{"type":26,"value":24443},{"type":21,"tag":49,"props":24489,"children":24491},{"id":24490},"resumen-en-una-página",[24492],{"type":26,"value":24493},"Resumen en una página",{"type":21,"tag":2310,"props":24495,"children":24497},{"code":24496},"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",[24498],{"type":21,"tag":2080,"props":24499,"children":24500},{"__ignoreMap":7},[24501],{"type":26,"value":24496},{"type":21,"tag":22,"props":24503,"children":24504},{},[24505],{"type":26,"value":24506},"La amenaza cuántica a la criptografía es real y el calendario es incierto — que es exactamente por lo que actuar ahora, antes de que los ordenadores cuánticos sean capaces, es la decisión correcta.",{"type":21,"tag":22,"props":24508,"children":24509},{},[24510,24515,24516,24521,24522],{"type":21,"tag":180,"props":24511,"children":24512},{},[24513],{"type":26,"value":24514},"Lectura adicional:",{"type":26,"value":1307},{"type":21,"tag":29,"props":24517,"children":24518},{"href":9628},[24519],{"type":26,"value":24520},"Glosario de computación cuántica — Algoritmo de Shor",{"type":26,"value":7112},{"type":21,"tag":29,"props":24523,"children":24524},{"href":11505},[24525],{"type":26,"value":24526},"Lo que los ordenadores cuánticos pueden hacer hoy",{"type":21,"tag":2694,"props":24528,"children":24529},{},[24530],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":24532},[24533,24534,24535,24540,24545,24546],{"id":23524,"depth":150,"text":23527},{"id":23616,"depth":150,"text":23619},{"id":23724,"depth":150,"text":23727,"children":24536},[24537,24538,24539],{"id":23735,"depth":2341,"text":23738},{"id":23945,"depth":2341,"text":23948},{"id":24113,"depth":2341,"text":24116},{"id":24170,"depth":150,"text":24173,"children":24541},[24542,24543,24544],{"id":24176,"depth":2341,"text":24179},{"id":24235,"depth":2341,"text":24238},{"id":24304,"depth":2341,"text":24307},{"id":24340,"depth":150,"text":24343},{"id":24490,"depth":150,"text":24493},"content:es:blog:post-quantum-cryptography-guide.md","es\u002Fblog\u002Fpost-quantum-cryptography-guide.md","es\u002Fblog\u002Fpost-quantum-cryptography-guide",{"_path":24551,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":24552,"description":24553,"date":24554,"author":11,"tags":24555,"readingTime":16,"body":24556,"_type":156,"_id":27098,"_source":158,"_file":27099,"_stem":27100,"_extension":161},"\u002Fes\u002Fblog\u002Freduce-shot-count","Cómo reducir en un 80% el número de disparos en algoritmos cuánticos variacionales","Técnicas prácticas para reducir el número de ejecuciones de circuito necesarias en VQE y QAOA: optimizadores frugales en disparos, trucos de estimación de gradientes y agrupación de mediciones.","2026-03-01",[2023,328,2024,8889],{"type":18,"children":24557,"toc":27087},[24558,24563,24568,24574,24579,24701,24713,24719,24731,25031,25041,25047,25059,25382,25394,25400,25420,25613,25640,25646,25658,25807,25817,25823,25828,26161,26166,26172,26177,26350,26356,26918,26924,27053,27058,27083],{"type":21,"tag":22,"props":24559,"children":24560},{},[24561],{"type":26,"value":24562},"Cada vez que ejecutas un circuito cuántico en hardware real, cuesta tiempo de QPU y dinero. Los algoritmos variacionales como VQE y QAOA pueden requerir cientos de miles de ejecuciones de circuito para converger; a $0.075–$0.90 por tarea en QPU en la nube, eso se acumula rápidamente.",{"type":21,"tag":22,"props":24564,"children":24565},{},[24566],{"type":26,"value":24567},"La buena noticia: la mayoría de las implementaciones por defecto son tremendamente ineficientes en disparos. Con las técnicas adecuadas, puedes reducir los requisitos de disparos en un 50–90% sin sacrificar la calidad de los resultados.",{"type":21,"tag":49,"props":24569,"children":24571},{"id":24570},"por-qué-el-número-de-disparos-es-tan-alto-por-defecto",[24572],{"type":26,"value":24573},"Por qué el número de disparos es tan alto por defecto",{"type":21,"tag":22,"props":24575,"children":24576},{},[24577],{"type":26,"value":24578},"VQE calcula valores esperados de operadores de Pauli. Un hamiltoniano se descompone en una suma de términos de Pauli, y cada término requiere una ejecución de circuito separada. Para una molécula como H₂ (4 qubits), hay ~15 términos de Pauli. Para moléculas más grandes el número se dispara:",{"type":21,"tag":4066,"props":24580,"children":24581},{},[24582,24608],{"type":21,"tag":4070,"props":24583,"children":24584},{},[24585],{"type":21,"tag":4074,"props":24586,"children":24587},{},[24588,24593,24598,24603],{"type":21,"tag":4078,"props":24589,"children":24590},{},[24591],{"type":26,"value":24592},"Molécula",{"type":21,"tag":4078,"props":24594,"children":24595},{},[24596],{"type":26,"value":24597},"Qubits",{"type":21,"tag":4078,"props":24599,"children":24600},{},[24601],{"type":26,"value":24602},"Términos de Pauli",{"type":21,"tag":4078,"props":24604,"children":24605},{},[24606],{"type":26,"value":24607},"Disparos ingenuos\u002Fiteración",{"type":21,"tag":4092,"props":24609,"children":24610},{},[24611,24633,24656,24679],{"type":21,"tag":4074,"props":24612,"children":24613},{},[24614,24619,24623,24628],{"type":21,"tag":4099,"props":24615,"children":24616},{},[24617],{"type":26,"value":24618},"H₂",{"type":21,"tag":4099,"props":24620,"children":24621},{},[24622],{"type":26,"value":5532},{"type":21,"tag":4099,"props":24624,"children":24625},{},[24626],{"type":26,"value":24627},"15",{"type":21,"tag":4099,"props":24629,"children":24630},{},[24631],{"type":26,"value":24632},"15,000",{"type":21,"tag":4074,"props":24634,"children":24635},{},[24636,24641,24646,24651],{"type":21,"tag":4099,"props":24637,"children":24638},{},[24639],{"type":26,"value":24640},"LiH",{"type":21,"tag":4099,"props":24642,"children":24643},{},[24644],{"type":26,"value":24645},"12",{"type":21,"tag":4099,"props":24647,"children":24648},{},[24649],{"type":26,"value":24650},"631",{"type":21,"tag":4099,"props":24652,"children":24653},{},[24654],{"type":26,"value":24655},"631,000",{"type":21,"tag":4074,"props":24657,"children":24658},{},[24659,24664,24669,24674],{"type":21,"tag":4099,"props":24660,"children":24661},{},[24662],{"type":26,"value":24663},"BeH₂",{"type":21,"tag":4099,"props":24665,"children":24666},{},[24667],{"type":26,"value":24668},"14",{"type":21,"tag":4099,"props":24670,"children":24671},{},[24672],{"type":26,"value":24673},"666",{"type":21,"tag":4099,"props":24675,"children":24676},{},[24677],{"type":26,"value":24678},"666,000",{"type":21,"tag":4074,"props":24680,"children":24681},{},[24682,24687,24691,24696],{"type":21,"tag":4099,"props":24683,"children":24684},{},[24685],{"type":26,"value":24686},"H₂O",{"type":21,"tag":4099,"props":24688,"children":24689},{},[24690],{"type":26,"value":24668},{"type":21,"tag":4099,"props":24692,"children":24693},{},[24694],{"type":26,"value":24695},"1,086",{"type":21,"tag":4099,"props":24697,"children":24698},{},[24699],{"type":26,"value":24700},"1,086,000",{"type":21,"tag":22,"props":24702,"children":24703},{},[24704,24706,24711],{"type":26,"value":24705},"Con 200 iteraciones del optimizador, H₂O requiere de forma ingenua ",{"type":21,"tag":180,"props":24707,"children":24708},{},[24709],{"type":26,"value":24710},"217 millones de disparos",{"type":26,"value":24712},". Las técnicas siguientes reducen esto en un 80–95%.",{"type":21,"tag":49,"props":24714,"children":24716},{"id":24715},"técnica-1-agrupación-de-mediciones-la-mayor-ganancia",[24717],{"type":26,"value":24718},"Técnica 1: Agrupación de mediciones (la mayor ganancia)",{"type":21,"tag":22,"props":24720,"children":24721},{},[24722,24724,24729],{"type":26,"value":24723},"Muchos términos de Pauli ",{"type":21,"tag":180,"props":24725,"children":24726},{},[24727],{"type":26,"value":24728},"conmutan",{"type":26,"value":24730},": pueden medirse simultáneamente en una sola ejecución de circuito en lugar de por separado. Agrupar observables que conmutan es la mayor reducción disponible por sí sola.",{"type":21,"tag":2310,"props":24732,"children":24734},{"className":3188,"code":24733,"language":3190,"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",[24735],{"type":21,"tag":2080,"props":24736,"children":24737},{"__ignoreMap":7},[24738,24758,24777,24796,24815,24822,24830,24838,24855,24862,24870,24889,24896,24913,24920,24928,24963,25023],{"type":21,"tag":2320,"props":24739,"children":24740},{"class":2322,"line":2323},[24741,24745,24749,24753],{"type":21,"tag":2320,"props":24742,"children":24743},{"style":3200},[24744],{"type":26,"value":3203},{"type":21,"tag":2320,"props":24746,"children":24747},{"style":2327},[24748],{"type":26,"value":22508},{"type":21,"tag":2320,"props":24750,"children":24751},{"style":3200},[24752],{"type":26,"value":3213},{"type":21,"tag":2320,"props":24754,"children":24755},{"style":2327},[24756],{"type":26,"value":24757}," StatevectorEstimator\n",{"type":21,"tag":2320,"props":24759,"children":24760},{"class":2322,"line":150},[24761,24765,24769,24773],{"type":21,"tag":2320,"props":24762,"children":24763},{"style":3200},[24764],{"type":26,"value":3203},{"type":21,"tag":2320,"props":24766,"children":24767},{"style":2327},[24768],{"type":26,"value":22424},{"type":21,"tag":2320,"props":24770,"children":24771},{"style":3200},[24772],{"type":26,"value":3213},{"type":21,"tag":2320,"props":24774,"children":24775},{"style":2327},[24776],{"type":26,"value":22433},{"type":21,"tag":2320,"props":24778,"children":24779},{"class":2322,"line":2341},[24780,24784,24788,24792],{"type":21,"tag":2320,"props":24781,"children":24782},{"style":3200},[24783],{"type":26,"value":3203},{"type":21,"tag":2320,"props":24785,"children":24786},{"style":2327},[24787],{"type":26,"value":22466},{"type":21,"tag":2320,"props":24789,"children":24790},{"style":3200},[24791],{"type":26,"value":3213},{"type":21,"tag":2320,"props":24793,"children":24794},{"style":2345},[24795],{"type":26,"value":22475},{"type":21,"tag":2320,"props":24797,"children":24798},{"class":2322,"line":2403},[24799,24803,24807,24811],{"type":21,"tag":2320,"props":24800,"children":24801},{"style":3200},[24802],{"type":26,"value":3203},{"type":21,"tag":2320,"props":24804,"children":24805},{"style":2327},[24806],{"type":26,"value":22487},{"type":21,"tag":2320,"props":24808,"children":24809},{"style":3200},[24810],{"type":26,"value":3213},{"type":21,"tag":2320,"props":24812,"children":24813},{"style":2345},[24814],{"type":26,"value":22496},{"type":21,"tag":2320,"props":24816,"children":24817},{"class":2322,"line":2427},[24818],{"type":21,"tag":2320,"props":24819,"children":24820},{"emptyLinePlaceholder":3224},[24821],{"type":26,"value":3227},{"type":21,"tag":2320,"props":24823,"children":24824},{"class":2322,"line":854},[24825],{"type":21,"tag":2320,"props":24826,"children":24827},{"style":3450},[24828],{"type":26,"value":24829},"# Qiskit automatically groups commuting Paulis in the Estimator primitive\n",{"type":21,"tag":2320,"props":24831,"children":24832},{"class":2322,"line":171},[24833],{"type":21,"tag":2320,"props":24834,"children":24835},{"style":3450},[24836],{"type":26,"value":24837},"# This reduces shots from O(n_terms) to O(n_groups) — often 5-10x reduction\n",{"type":21,"tag":2320,"props":24839,"children":24840},{"class":2322,"line":16},[24841,24846,24850],{"type":21,"tag":2320,"props":24842,"children":24843},{"style":2327},[24844],{"type":26,"value":24845},"estimator ",{"type":21,"tag":2320,"props":24847,"children":24848},{"style":3200},[24849],{"type":26,"value":3240},{"type":21,"tag":2320,"props":24851,"children":24852},{"style":2327},[24853],{"type":26,"value":24854}," StatevectorEstimator()\n",{"type":21,"tag":2320,"props":24856,"children":24857},{"class":2322,"line":1370},[24858],{"type":21,"tag":2320,"props":24859,"children":24860},{"emptyLinePlaceholder":3224},[24861],{"type":26,"value":3227},{"type":21,"tag":2320,"props":24863,"children":24864},{"class":2322,"line":3446},[24865],{"type":21,"tag":2320,"props":24866,"children":24867},{"style":3450},[24868],{"type":26,"value":24869},"# With PennyLane, use grouping explicitly:\n",{"type":21,"tag":2320,"props":24871,"children":24872},{"class":2322,"line":3456},[24873,24877,24881,24885],{"type":21,"tag":2320,"props":24874,"children":24875},{"style":3200},[24876],{"type":26,"value":3213},{"type":21,"tag":2320,"props":24878,"children":24879},{"style":2327},[24880],{"type":26,"value":14092},{"type":21,"tag":2320,"props":24882,"children":24883},{"style":3200},[24884],{"type":26,"value":4278},{"type":21,"tag":2320,"props":24886,"children":24887},{"style":2327},[24888],{"type":26,"value":14101},{"type":21,"tag":2320,"props":24890,"children":24891},{"class":2322,"line":474},[24892],{"type":21,"tag":2320,"props":24893,"children":24894},{"emptyLinePlaceholder":3224},[24895],{"type":26,"value":3227},{"type":21,"tag":2320,"props":24897,"children":24898},{"class":2322,"line":3516},[24899,24904,24908],{"type":21,"tag":2320,"props":24900,"children":24901},{"style":2327},[24902],{"type":26,"value":24903},"H ",{"type":21,"tag":2320,"props":24905,"children":24906},{"style":3200},[24907],{"type":26,"value":3240},{"type":21,"tag":2320,"props":24909,"children":24910},{"style":2327},[24911],{"type":26,"value":24912}," qml.Hamiltonian(coeffs, observables)\n",{"type":21,"tag":2320,"props":24914,"children":24915},{"class":2322,"line":3564},[24916],{"type":21,"tag":2320,"props":24917,"children":24918},{"emptyLinePlaceholder":3224},[24919],{"type":26,"value":3227},{"type":21,"tag":2320,"props":24921,"children":24922},{"class":2322,"line":3606},[24923],{"type":21,"tag":2320,"props":24924,"children":24925},{"style":3450},[24926],{"type":26,"value":24927},"# Group commuting terms — usually reduces term count by 5-10x\n",{"type":21,"tag":2320,"props":24929,"children":24930},{"class":2322,"line":4631},[24931,24936,24940,24945,24950,24954,24959],{"type":21,"tag":2320,"props":24932,"children":24933},{"style":2327},[24934],{"type":26,"value":24935},"groups ",{"type":21,"tag":2320,"props":24937,"children":24938},{"style":3200},[24939],{"type":26,"value":3240},{"type":21,"tag":2320,"props":24941,"children":24942},{"style":2327},[24943],{"type":26,"value":24944}," qml.grouping.group_observables(observables, ",{"type":21,"tag":2320,"props":24946,"children":24947},{"style":3265},[24948],{"type":26,"value":24949},"grouping_type",{"type":21,"tag":2320,"props":24951,"children":24952},{"style":3200},[24953],{"type":26,"value":3240},{"type":21,"tag":2320,"props":24955,"children":24956},{"style":2356},[24957],{"type":26,"value":24958},"'qwc'",{"type":21,"tag":2320,"props":24960,"children":24961},{"style":2327},[24962],{"type":26,"value":3300},{"type":21,"tag":2320,"props":24964,"children":24965},{"class":2322,"line":4650},[24966,24970,24974,24978,24983,24988,24993,24997,25002,25006,25011,25015,25019],{"type":21,"tag":2320,"props":24967,"children":24968},{"style":2345},[24969],{"type":26,"value":3315},{"type":21,"tag":2320,"props":24971,"children":24972},{"style":2327},[24973],{"type":26,"value":3320},{"type":21,"tag":2320,"props":24975,"children":24976},{"style":3200},[24977],{"type":26,"value":3325},{"type":21,"tag":2320,"props":24979,"children":24980},{"style":2356},[24981],{"type":26,"value":24982},"\"Original terms: ",{"type":21,"tag":2320,"props":24984,"children":24985},{"style":2345},[24986],{"type":26,"value":24987},"{len",{"type":21,"tag":2320,"props":24989,"children":24990},{"style":2327},[24991],{"type":26,"value":24992},"(observables)",{"type":21,"tag":2320,"props":24994,"children":24995},{"style":2345},[24996],{"type":26,"value":3345},{"type":21,"tag":2320,"props":24998,"children":24999},{"style":2356},[25000],{"type":26,"value":25001},", Groups: ",{"type":21,"tag":2320,"props":25003,"children":25004},{"style":2345},[25005],{"type":26,"value":24987},{"type":21,"tag":2320,"props":25007,"children":25008},{"style":2327},[25009],{"type":26,"value":25010},"(groups)",{"type":21,"tag":2320,"props":25012,"children":25013},{"style":2345},[25014],{"type":26,"value":3345},{"type":21,"tag":2320,"props":25016,"children":25017},{"style":2356},[25018],{"type":26,"value":3350},{"type":21,"tag":2320,"props":25020,"children":25021},{"style":2327},[25022],{"type":26,"value":3300},{"type":21,"tag":2320,"props":25024,"children":25025},{"class":2322,"line":4658},[25026],{"type":21,"tag":2320,"props":25027,"children":25028},{"style":3450},[25029],{"type":26,"value":25030},"# Original terms: 631, Groups: 68  (for LiH)\n",{"type":21,"tag":22,"props":25032,"children":25033},{},[25034,25039],{"type":21,"tag":180,"props":25035,"children":25036},{},[25037],{"type":26,"value":25038},"Ahorro esperado: 5–15×",{"type":26,"value":25040}," en hamiltonianos de química típicos.",{"type":21,"tag":49,"props":25042,"children":25044},{"id":25043},"técnica-2-optimizadores-frugales-en-disparos",[25045],{"type":26,"value":25046},"Técnica 2: Optimizadores frugales en disparos",{"type":21,"tag":22,"props":25048,"children":25049},{},[25050,25052,25057],{"type":26,"value":25051},"Los optimizadores clásicos como L-BFGS-B o ADAM asumen evaluaciones de función sin ruido: solicitan más evaluaciones de gradiente de las necesarias cuando los resultados son ruidosos. Los ",{"type":21,"tag":180,"props":25053,"children":25054},{},[25055],{"type":26,"value":25056},"optimizadores frugales en disparos",{"type":26,"value":25058}," asignan disparos de forma adaptativa según la varianza de las mediciones.",{"type":21,"tag":2310,"props":25060,"children":25062},{"className":3188,"code":25061,"language":3190,"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",[25063],{"type":21,"tag":2080,"props":25064,"children":25065},{"__ignoreMap":7},[25066,25087,25094,25133,25140,25151,25167,25175,25183,25195,25202,25210,25243,25250,25276,25308,25325],{"type":21,"tag":2320,"props":25067,"children":25068},{"class":2322,"line":2323},[25069,25073,25078,25082],{"type":21,"tag":2320,"props":25070,"children":25071},{"style":3200},[25072],{"type":26,"value":3203},{"type":21,"tag":2320,"props":25074,"children":25075},{"style":2327},[25076],{"type":26,"value":25077}," pennylane.optimize ",{"type":21,"tag":2320,"props":25079,"children":25080},{"style":3200},[25081],{"type":26,"value":3213},{"type":21,"tag":2320,"props":25083,"children":25084},{"style":2327},[25085],{"type":26,"value":25086}," AdaptiveOptimizer, ShotAdaptiveOptimizer\n",{"type":21,"tag":2320,"props":25088,"children":25089},{"class":2322,"line":150},[25090],{"type":21,"tag":2320,"props":25091,"children":25092},{"emptyLinePlaceholder":3224},[25093],{"type":26,"value":3227},{"type":21,"tag":2320,"props":25095,"children":25096},{"class":2322,"line":2341},[25097,25101,25105,25109,25113,25117,25121,25125,25129],{"type":21,"tag":2320,"props":25098,"children":25099},{"style":2327},[25100],{"type":26,"value":14225},{"type":21,"tag":2320,"props":25102,"children":25103},{"style":3200},[25104],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25106,"children":25107},{"style":2327},[25108],{"type":26,"value":14234},{"type":21,"tag":2320,"props":25110,"children":25111},{"style":2356},[25112],{"type":26,"value":14239},{"type":21,"tag":2320,"props":25114,"children":25115},{"style":2327},[25116],{"type":26,"value":1315},{"type":21,"tag":2320,"props":25118,"children":25119},{"style":3265},[25120],{"type":26,"value":14248},{"type":21,"tag":2320,"props":25122,"children":25123},{"style":3200},[25124],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25126,"children":25127},{"style":2345},[25128],{"type":26,"value":5532},{"type":21,"tag":2320,"props":25130,"children":25131},{"style":2327},[25132],{"type":26,"value":3300},{"type":21,"tag":2320,"props":25134,"children":25135},{"class":2322,"line":2403},[25136],{"type":21,"tag":2320,"props":25137,"children":25138},{"emptyLinePlaceholder":3224},[25139],{"type":26,"value":3227},{"type":21,"tag":2320,"props":25141,"children":25142},{"class":2322,"line":2427},[25143,25147],{"type":21,"tag":2320,"props":25144,"children":25145},{"style":4364},[25146],{"type":26,"value":14272},{"type":21,"tag":2320,"props":25148,"children":25149},{"style":2327},[25150],{"type":26,"value":14277},{"type":21,"tag":2320,"props":25152,"children":25153},{"class":2322,"line":854},[25154,25158,25162],{"type":21,"tag":2320,"props":25155,"children":25156},{"style":3200},[25157],{"type":26,"value":4361},{"type":21,"tag":2320,"props":25159,"children":25160},{"style":4364},[25161],{"type":26,"value":14289},{"type":21,"tag":2320,"props":25163,"children":25164},{"style":2327},[25165],{"type":26,"value":25166},"(params):\n",{"type":21,"tag":2320,"props":25168,"children":25169},{"class":2322,"line":171},[25170],{"type":21,"tag":2320,"props":25171,"children":25172},{"style":3450},[25173],{"type":26,"value":25174},"    # ansatz\n",{"type":21,"tag":2320,"props":25176,"children":25177},{"class":2322,"line":16},[25178],{"type":21,"tag":2320,"props":25179,"children":25180},{"style":2345},[25181],{"type":26,"value":25182},"    ...\n",{"type":21,"tag":2320,"props":25184,"children":25185},{"class":2322,"line":1370},[25186,25190],{"type":21,"tag":2320,"props":25187,"children":25188},{"style":3200},[25189],{"type":26,"value":4586},{"type":21,"tag":2320,"props":25191,"children":25192},{"style":2327},[25193],{"type":26,"value":25194}," qml.expval(H)\n",{"type":21,"tag":2320,"props":25196,"children":25197},{"class":2322,"line":3446},[25198],{"type":21,"tag":2320,"props":25199,"children":25200},{"emptyLinePlaceholder":3224},[25201],{"type":26,"value":3227},{"type":21,"tag":2320,"props":25203,"children":25204},{"class":2322,"line":3456},[25205],{"type":21,"tag":2320,"props":25206,"children":25207},{"style":3450},[25208],{"type":26,"value":25209},"# ShotAdaptiveOptimizer: allocates more shots to high-variance directions\n",{"type":21,"tag":2320,"props":25211,"children":25212},{"class":2322,"line":474},[25213,25217,25221,25226,25231,25235,25239],{"type":21,"tag":2320,"props":25214,"children":25215},{"style":2327},[25216],{"type":26,"value":14950},{"type":21,"tag":2320,"props":25218,"children":25219},{"style":3200},[25220],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25222,"children":25223},{"style":2327},[25224],{"type":26,"value":25225}," ShotAdaptiveOptimizer(",{"type":21,"tag":2320,"props":25227,"children":25228},{"style":3265},[25229],{"type":26,"value":25230},"min_shots",{"type":21,"tag":2320,"props":25232,"children":25233},{"style":3200},[25234],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25236,"children":25237},{"style":2345},[25238],{"type":26,"value":20533},{"type":21,"tag":2320,"props":25240,"children":25241},{"style":2327},[25242],{"type":26,"value":3300},{"type":21,"tag":2320,"props":25244,"children":25245},{"class":2322,"line":3516},[25246],{"type":21,"tag":2320,"props":25247,"children":25248},{"emptyLinePlaceholder":3224},[25249],{"type":26,"value":3227},{"type":21,"tag":2320,"props":25251,"children":25252},{"class":2322,"line":3564},[25253,25258,25262,25267,25271],{"type":21,"tag":2320,"props":25254,"children":25255},{"style":2327},[25256],{"type":26,"value":25257},"params ",{"type":21,"tag":2320,"props":25259,"children":25260},{"style":3200},[25261],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25263,"children":25264},{"style":2327},[25265],{"type":26,"value":25266}," np.random.uniform(",{"type":21,"tag":2320,"props":25268,"children":25269},{"style":3200},[25270],{"type":26,"value":4848},{"type":21,"tag":2320,"props":25272,"children":25273},{"style":2327},[25274],{"type":26,"value":25275},"np.pi, np.pi, n_params)\n",{"type":21,"tag":2320,"props":25277,"children":25278},{"class":2322,"line":3606},[25279,25283,25287,25291,25295,25299,25304],{"type":21,"tag":2320,"props":25280,"children":25281},{"style":3200},[25282],{"type":26,"value":3493},{"type":21,"tag":2320,"props":25284,"children":25285},{"style":2327},[25286],{"type":26,"value":4745},{"type":21,"tag":2320,"props":25288,"children":25289},{"style":3200},[25290],{"type":26,"value":3503},{"type":21,"tag":2320,"props":25292,"children":25293},{"style":2345},[25294],{"type":26,"value":3508},{"type":21,"tag":2320,"props":25296,"children":25297},{"style":2327},[25298],{"type":26,"value":3320},{"type":21,"tag":2320,"props":25300,"children":25301},{"style":2345},[25302],{"type":26,"value":25303},"100",{"type":21,"tag":2320,"props":25305,"children":25306},{"style":2327},[25307],{"type":26,"value":4414},{"type":21,"tag":2320,"props":25309,"children":25310},{"class":2322,"line":4631},[25311,25316,25320],{"type":21,"tag":2320,"props":25312,"children":25313},{"style":2327},[25314],{"type":26,"value":25315},"    params, _, shots_used ",{"type":21,"tag":2320,"props":25317,"children":25318},{"style":3200},[25319],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25321,"children":25322},{"style":2327},[25323],{"type":26,"value":25324}," opt.step_and_cost(circuit, params)\n",{"type":21,"tag":2320,"props":25326,"children":25327},{"class":2322,"line":4650},[25328,25332,25336,25340,25344,25348,25352,25356,25361,25365,25370,25374,25378],{"type":21,"tag":2320,"props":25329,"children":25330},{"style":2345},[25331],{"type":26,"value":17224},{"type":21,"tag":2320,"props":25333,"children":25334},{"style":2327},[25335],{"type":26,"value":3320},{"type":21,"tag":2320,"props":25337,"children":25338},{"style":3200},[25339],{"type":26,"value":3325},{"type":21,"tag":2320,"props":25341,"children":25342},{"style":2356},[25343],{"type":26,"value":15229},{"type":21,"tag":2320,"props":25345,"children":25346},{"style":2345},[25347],{"type":26,"value":3335},{"type":21,"tag":2320,"props":25349,"children":25350},{"style":2327},[25351],{"type":26,"value":4236},{"type":21,"tag":2320,"props":25353,"children":25354},{"style":2345},[25355],{"type":26,"value":3345},{"type":21,"tag":2320,"props":25357,"children":25358},{"style":2356},[25359],{"type":26,"value":25360},": shots used = ",{"type":21,"tag":2320,"props":25362,"children":25363},{"style":2345},[25364],{"type":26,"value":3335},{"type":21,"tag":2320,"props":25366,"children":25367},{"style":2327},[25368],{"type":26,"value":25369},"shots_used",{"type":21,"tag":2320,"props":25371,"children":25372},{"style":2345},[25373],{"type":26,"value":3345},{"type":21,"tag":2320,"props":25375,"children":25376},{"style":2356},[25377],{"type":26,"value":3350},{"type":21,"tag":2320,"props":25379,"children":25380},{"style":2327},[25381],{"type":26,"value":3300},{"type":21,"tag":22,"props":25383,"children":25384},{},[25385,25387,25392],{"type":26,"value":25386},"El optimizador comienza con pocos disparos por evaluación y los aumenta solo cuando el gradiente es incierto. Una ejecución típica de VQE usa ",{"type":21,"tag":180,"props":25388,"children":25389},{},[25390],{"type":26,"value":25391},"5–10× menos disparos",{"type":26,"value":25393}," frente a COBYLA con disparos fijos.",{"type":21,"tag":49,"props":25395,"children":25397},{"id":25396},"técnica-3-gradientes-por-desplazamiento-de-parámetros-usa-menos-evaluaciones",[25398],{"type":26,"value":25399},"Técnica 3: Gradientes por desplazamiento de parámetros (usa menos evaluaciones)",{"type":21,"tag":22,"props":25401,"children":25402},{},[25403,25405,25411,25413,25418],{"type":26,"value":25404},"La estimación ingenua de gradiente por diferencias finitas ",{"type":21,"tag":2080,"props":25406,"children":25408},{"className":25407},[],[25409],{"type":26,"value":25410},"(f(x+ε) - f(x))\u002Fε",{"type":26,"value":25412}," tiene alta varianza con ε pequeño y gran sesgo con ε grande. La ",{"type":21,"tag":180,"props":25414,"children":25415},{},[25416],{"type":26,"value":25417},"regla de desplazamiento de parámetros",{"type":26,"value":25419}," da gradientes exactos con solo 2 evaluaciones de circuito por parámetro:",{"type":21,"tag":2310,"props":25421,"children":25423},{"className":3188,"code":25422,"language":3190,"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",[25424],{"type":21,"tag":2080,"props":25425,"children":25426},{"__ignoreMap":7},[25427,25435,25470,25485,25492,25499,25507,25540,25547,25555,25563,25591,25606],{"type":21,"tag":2320,"props":25428,"children":25429},{"class":2322,"line":2323},[25430],{"type":21,"tag":2320,"props":25431,"children":25432},{"style":3450},[25433],{"type":26,"value":25434},"# PennyLane uses parameter-shift by default for gradients\n",{"type":21,"tag":2320,"props":25436,"children":25437},{"class":2322,"line":150},[25438,25442,25447,25452,25456,25461,25465],{"type":21,"tag":2320,"props":25439,"children":25440},{"style":4364},[25441],{"type":26,"value":14272},{"type":21,"tag":2320,"props":25443,"children":25444},{"style":2327},[25445],{"type":26,"value":25446},"(dev, ",{"type":21,"tag":2320,"props":25448,"children":25449},{"style":3265},[25450],{"type":26,"value":25451},"diff_method",{"type":21,"tag":2320,"props":25453,"children":25454},{"style":3200},[25455],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25457,"children":25458},{"style":2356},[25459],{"type":26,"value":25460},"\"parameter-shift\"",{"type":21,"tag":2320,"props":25462,"children":25463},{"style":2327},[25464],{"type":26,"value":19451},{"type":21,"tag":2320,"props":25466,"children":25467},{"style":3450},[25468],{"type":26,"value":25469},"# 2 evals per param\n",{"type":21,"tag":2320,"props":25471,"children":25472},{"class":2322,"line":2341},[25473,25477,25481],{"type":21,"tag":2320,"props":25474,"children":25475},{"style":3200},[25476],{"type":26,"value":4361},{"type":21,"tag":2320,"props":25478,"children":25479},{"style":4364},[25480],{"type":26,"value":14289},{"type":21,"tag":2320,"props":25482,"children":25483},{"style":2327},[25484],{"type":26,"value":25166},{"type":21,"tag":2320,"props":25486,"children":25487},{"class":2322,"line":2403},[25488],{"type":21,"tag":2320,"props":25489,"children":25490},{"style":2345},[25491],{"type":26,"value":25182},{"type":21,"tag":2320,"props":25493,"children":25494},{"class":2322,"line":2427},[25495],{"type":21,"tag":2320,"props":25496,"children":25497},{"emptyLinePlaceholder":3224},[25498],{"type":26,"value":3227},{"type":21,"tag":2320,"props":25500,"children":25501},{"class":2322,"line":854},[25502],{"type":21,"tag":2320,"props":25503,"children":25504},{"style":3450},[25505],{"type":26,"value":25506},"# Compare to finite-difference (requires 1 eval per param but biased):\n",{"type":21,"tag":2320,"props":25508,"children":25509},{"class":2322,"line":171},[25510,25514,25518,25522,25526,25531,25535],{"type":21,"tag":2320,"props":25511,"children":25512},{"style":4364},[25513],{"type":26,"value":14272},{"type":21,"tag":2320,"props":25515,"children":25516},{"style":2327},[25517],{"type":26,"value":25446},{"type":21,"tag":2320,"props":25519,"children":25520},{"style":3265},[25521],{"type":26,"value":25451},{"type":21,"tag":2320,"props":25523,"children":25524},{"style":3200},[25525],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25527,"children":25528},{"style":2356},[25529],{"type":26,"value":25530},"\"finite-diff\"",{"type":21,"tag":2320,"props":25532,"children":25533},{"style":2327},[25534],{"type":26,"value":19451},{"type":21,"tag":2320,"props":25536,"children":25537},{"style":3450},[25538],{"type":26,"value":25539},"# 1 eval but approximate\n",{"type":21,"tag":2320,"props":25541,"children":25542},{"class":2322,"line":16},[25543],{"type":21,"tag":2320,"props":25544,"children":25545},{"emptyLinePlaceholder":3224},[25546],{"type":26,"value":3227},{"type":21,"tag":2320,"props":25548,"children":25549},{"class":2322,"line":1370},[25550],{"type":21,"tag":2320,"props":25551,"children":25552},{"style":3450},[25553],{"type":26,"value":25554},"# For large circuits, use \"best\" — PennyLane chooses adjoint on simulator,\n",{"type":21,"tag":2320,"props":25556,"children":25557},{"class":2322,"line":3446},[25558],{"type":21,"tag":2320,"props":25559,"children":25560},{"style":3450},[25561],{"type":26,"value":25562},"# parameter-shift on hardware\n",{"type":21,"tag":2320,"props":25564,"children":25565},{"class":2322,"line":3456},[25566,25570,25574,25578,25582,25587],{"type":21,"tag":2320,"props":25567,"children":25568},{"style":4364},[25569],{"type":26,"value":14272},{"type":21,"tag":2320,"props":25571,"children":25572},{"style":2327},[25573],{"type":26,"value":25446},{"type":21,"tag":2320,"props":25575,"children":25576},{"style":3265},[25577],{"type":26,"value":25451},{"type":21,"tag":2320,"props":25579,"children":25580},{"style":3200},[25581],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25583,"children":25584},{"style":2356},[25585],{"type":26,"value":25586},"\"best\"",{"type":21,"tag":2320,"props":25588,"children":25589},{"style":2327},[25590],{"type":26,"value":3300},{"type":21,"tag":2320,"props":25592,"children":25593},{"class":2322,"line":474},[25594,25598,25602],{"type":21,"tag":2320,"props":25595,"children":25596},{"style":3200},[25597],{"type":26,"value":4361},{"type":21,"tag":2320,"props":25599,"children":25600},{"style":4364},[25601],{"type":26,"value":14289},{"type":21,"tag":2320,"props":25603,"children":25604},{"style":2327},[25605],{"type":26,"value":25166},{"type":21,"tag":2320,"props":25607,"children":25608},{"class":2322,"line":3516},[25609],{"type":21,"tag":2320,"props":25610,"children":25611},{"style":2345},[25612],{"type":26,"value":25182},{"type":21,"tag":22,"props":25614,"children":25615},{},[25616,25618,25623,25625,25631,25633,25638],{"type":26,"value":25617},"Con ",{"type":21,"tag":2080,"props":25619,"children":25621},{"className":25620},[],[25622],{"type":26,"value":4829},{"type":26,"value":25624}," parámetros, el desplazamiento de parámetros cuesta ",{"type":21,"tag":2080,"props":25626,"children":25628},{"className":25627},[],[25629],{"type":26,"value":25630},"2n",{"type":26,"value":25632}," evaluaciones por paso de gradiente. Usa optimizadores sin gradiente (COBYLA, SPSA, Nelder-Mead) cuando ",{"type":21,"tag":2080,"props":25634,"children":25636},{"className":25635},[],[25637],{"type":26,"value":4829},{"type":26,"value":25639}," sea grande.",{"type":21,"tag":49,"props":25641,"children":25643},{"id":25642},"técnica-4-spsa-estimación-estocástica-de-gradientes",[25644],{"type":26,"value":25645},"Técnica 4: SPSA — Estimación estocástica de gradientes",{"type":21,"tag":22,"props":25647,"children":25648},{},[25649,25651,25656],{"type":26,"value":25650},"La Aproximación Estocástica por Perturbación Simultánea (SPSA) estima el gradiente completo con solo ",{"type":21,"tag":180,"props":25652,"children":25653},{},[25654],{"type":26,"value":25655},"2 evaluaciones de circuito",{"type":26,"value":25657}," independientemente del número de parámetros, perturbando todos los parámetros simultáneamente:",{"type":21,"tag":2310,"props":25659,"children":25661},{"className":3188,"code":25660,"language":3190,"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",[25662],{"type":21,"tag":2080,"props":25663,"children":25664},{"__ignoreMap":7},[25665,25685,25692,25700,25708,25776,25783,25791,25799],{"type":21,"tag":2320,"props":25666,"children":25667},{"class":2322,"line":2323},[25668,25672,25676,25680],{"type":21,"tag":2320,"props":25669,"children":25670},{"style":3200},[25671],{"type":26,"value":3203},{"type":21,"tag":2320,"props":25673,"children":25674},{"style":2327},[25675],{"type":26,"value":22487},{"type":21,"tag":2320,"props":25677,"children":25678},{"style":3200},[25679],{"type":26,"value":3213},{"type":21,"tag":2320,"props":25681,"children":25682},{"style":2345},[25683],{"type":26,"value":25684}," SPSA\n",{"type":21,"tag":2320,"props":25686,"children":25687},{"class":2322,"line":150},[25688],{"type":21,"tag":2320,"props":25689,"children":25690},{"emptyLinePlaceholder":3224},[25691],{"type":26,"value":3227},{"type":21,"tag":2320,"props":25693,"children":25694},{"class":2322,"line":2341},[25695],{"type":21,"tag":2320,"props":25696,"children":25697},{"style":3450},[25698],{"type":26,"value":25699},"# SPSA: 2 evaluations per step regardless of parameter count\n",{"type":21,"tag":2320,"props":25701,"children":25702},{"class":2322,"line":2403},[25703],{"type":21,"tag":2320,"props":25704,"children":25705},{"style":3450},[25706],{"type":26,"value":25707},"# vs parameter-shift: 2n evaluations per step\n",{"type":21,"tag":2320,"props":25709,"children":25710},{"class":2322,"line":2427},[25711,25716,25720,25725,25729,25733,25738,25742,25747,25751,25755,25759,25764,25768,25772],{"type":21,"tag":2320,"props":25712,"children":25713},{"style":2327},[25714],{"type":26,"value":25715},"optimizer ",{"type":21,"tag":2320,"props":25717,"children":25718},{"style":3200},[25719],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25721,"children":25722},{"style":2327},[25723],{"type":26,"value":25724}," SPSA(",{"type":21,"tag":2320,"props":25726,"children":25727},{"style":3265},[25728],{"type":26,"value":2608},{"type":21,"tag":2320,"props":25730,"children":25731},{"style":3200},[25732],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25734,"children":25735},{"style":2345},[25736],{"type":26,"value":25737},"300",{"type":21,"tag":2320,"props":25739,"children":25740},{"style":2327},[25741],{"type":26,"value":1315},{"type":21,"tag":2320,"props":25743,"children":25744},{"style":3265},[25745],{"type":26,"value":25746},"learning_rate",{"type":21,"tag":2320,"props":25748,"children":25749},{"style":3200},[25750],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25752,"children":25753},{"style":2345},[25754],{"type":26,"value":14871},{"type":21,"tag":2320,"props":25756,"children":25757},{"style":2327},[25758],{"type":26,"value":1315},{"type":21,"tag":2320,"props":25760,"children":25761},{"style":3265},[25762],{"type":26,"value":25763},"perturbation",{"type":21,"tag":2320,"props":25765,"children":25766},{"style":3200},[25767],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25769,"children":25770},{"style":2345},[25771],{"type":26,"value":4409},{"type":21,"tag":2320,"props":25773,"children":25774},{"style":2327},[25775],{"type":26,"value":3300},{"type":21,"tag":2320,"props":25777,"children":25778},{"class":2322,"line":854},[25779],{"type":21,"tag":2320,"props":25780,"children":25781},{"emptyLinePlaceholder":3224},[25782],{"type":26,"value":3227},{"type":21,"tag":2320,"props":25784,"children":25785},{"class":2322,"line":171},[25786],{"type":21,"tag":2320,"props":25787,"children":25788},{"style":3450},[25789],{"type":26,"value":25790},"# For 10 parameters:\n",{"type":21,"tag":2320,"props":25792,"children":25793},{"class":2322,"line":16},[25794],{"type":21,"tag":2320,"props":25795,"children":25796},{"style":3450},[25797],{"type":26,"value":25798},"# - Parameter shift: 2×10 = 20 evals\u002Fstep × 300 steps = 6,000 total\n",{"type":21,"tag":2320,"props":25800,"children":25801},{"class":2322,"line":1370},[25802],{"type":21,"tag":2320,"props":25803,"children":25804},{"style":3450},[25805],{"type":26,"value":25806},"# - SPSA: 2 evals\u002Fstep × 300 steps = 600 total  ← 10x reduction\n",{"type":21,"tag":22,"props":25808,"children":25809},{},[25810,25815],{"type":21,"tag":180,"props":25811,"children":25812},{},[25813],{"type":26,"value":25814},"Mejor cuando:",{"type":26,"value":25816}," el circuito tiene muchos parámetros (> 10). El compromiso es una convergencia más lenta por paso, pero menos disparos totales.",{"type":21,"tag":49,"props":25818,"children":25820},{"id":25819},"técnica-5-terminación-temprana-umbral-de-varianza",[25821],{"type":26,"value":25822},"Técnica 5: Terminación temprana + umbral de varianza",{"type":21,"tag":22,"props":25824,"children":25825},{},[25826],{"type":26,"value":25827},"No ejecutes los circuitos hasta el final cuando el resultado ya es suficientemente bueno:",{"type":21,"tag":2310,"props":25829,"children":25831},{"className":3188,"code":25830,"language":3190,"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",[25832],{"type":21,"tag":2080,"props":25833,"children":25834},{"__ignoreMap":7},[25835,25855,25874,25881,25913,25929,25959,25966,25990,26006,26013,26021,26053,26089,26129,26137,26144],{"type":21,"tag":2320,"props":25836,"children":25837},{"class":2322,"line":2323},[25838,25842,25846,25850],{"type":21,"tag":2320,"props":25839,"children":25840},{"style":3200},[25841],{"type":26,"value":3203},{"type":21,"tag":2320,"props":25843,"children":25844},{"style":2327},[25845],{"type":26,"value":25077},{"type":21,"tag":2320,"props":25847,"children":25848},{"style":3200},[25849],{"type":26,"value":3213},{"type":21,"tag":2320,"props":25851,"children":25852},{"style":2327},[25853],{"type":26,"value":25854}," AdamOptimizer\n",{"type":21,"tag":2320,"props":25856,"children":25857},{"class":2322,"line":150},[25858,25862,25866,25870],{"type":21,"tag":2320,"props":25859,"children":25860},{"style":3200},[25861],{"type":26,"value":3213},{"type":21,"tag":2320,"props":25863,"children":25864},{"style":2327},[25865],{"type":26,"value":4273},{"type":21,"tag":2320,"props":25867,"children":25868},{"style":3200},[25869],{"type":26,"value":4278},{"type":21,"tag":2320,"props":25871,"children":25872},{"style":2327},[25873],{"type":26,"value":4283},{"type":21,"tag":2320,"props":25875,"children":25876},{"class":2322,"line":2341},[25877],{"type":21,"tag":2320,"props":25878,"children":25879},{"emptyLinePlaceholder":3224},[25880],{"type":26,"value":3227},{"type":21,"tag":2320,"props":25882,"children":25883},{"class":2322,"line":2403},[25884,25888,25892,25897,25901,25905,25909],{"type":21,"tag":2320,"props":25885,"children":25886},{"style":2327},[25887],{"type":26,"value":14950},{"type":21,"tag":2320,"props":25889,"children":25890},{"style":3200},[25891],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25893,"children":25894},{"style":2327},[25895],{"type":26,"value":25896}," AdamOptimizer(",{"type":21,"tag":2320,"props":25898,"children":25899},{"style":3265},[25900],{"type":26,"value":14964},{"type":21,"tag":2320,"props":25902,"children":25903},{"style":3200},[25904],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25906,"children":25907},{"style":2345},[25908],{"type":26,"value":4395},{"type":21,"tag":2320,"props":25910,"children":25911},{"style":2327},[25912],{"type":26,"value":3300},{"type":21,"tag":2320,"props":25914,"children":25915},{"class":2322,"line":2427},[25916,25920,25924],{"type":21,"tag":2320,"props":25917,"children":25918},{"style":2327},[25919],{"type":26,"value":25257},{"type":21,"tag":2320,"props":25921,"children":25922},{"style":3200},[25923],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25925,"children":25926},{"style":2327},[25927],{"type":26,"value":25928}," init_params.copy()\n",{"type":21,"tag":2320,"props":25930,"children":25931},{"class":2322,"line":854},[25932,25937,25941,25946,25950,25955],{"type":21,"tag":2320,"props":25933,"children":25934},{"style":2327},[25935],{"type":26,"value":25936},"prev_energy ",{"type":21,"tag":2320,"props":25938,"children":25939},{"style":3200},[25940],{"type":26,"value":3240},{"type":21,"tag":2320,"props":25942,"children":25943},{"style":2345},[25944],{"type":26,"value":25945}," float",{"type":21,"tag":2320,"props":25947,"children":25948},{"style":2327},[25949],{"type":26,"value":3320},{"type":21,"tag":2320,"props":25951,"children":25952},{"style":2356},[25953],{"type":26,"value":25954},"'inf'",{"type":21,"tag":2320,"props":25956,"children":25957},{"style":2327},[25958],{"type":26,"value":3300},{"type":21,"tag":2320,"props":25960,"children":25961},{"class":2322,"line":171},[25962],{"type":21,"tag":2320,"props":25963,"children":25964},{"emptyLinePlaceholder":3224},[25965],{"type":26,"value":3227},{"type":21,"tag":2320,"props":25967,"children":25968},{"class":2322,"line":16},[25969,25973,25977,25981,25985],{"type":21,"tag":2320,"props":25970,"children":25971},{"style":3200},[25972],{"type":26,"value":3493},{"type":21,"tag":2320,"props":25974,"children":25975},{"style":2327},[25976],{"type":26,"value":15012},{"type":21,"tag":2320,"props":25978,"children":25979},{"style":3200},[25980],{"type":26,"value":3503},{"type":21,"tag":2320,"props":25982,"children":25983},{"style":2345},[25984],{"type":26,"value":3508},{"type":21,"tag":2320,"props":25986,"children":25987},{"style":2327},[25988],{"type":26,"value":25989},"(max_steps):\n",{"type":21,"tag":2320,"props":25991,"children":25992},{"class":2322,"line":1370},[25993,25998,26002],{"type":21,"tag":2320,"props":25994,"children":25995},{"style":2327},[25996],{"type":26,"value":25997},"    params, energy ",{"type":21,"tag":2320,"props":25999,"children":26000},{"style":3200},[26001],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26003,"children":26004},{"style":2327},[26005],{"type":26,"value":25324},{"type":21,"tag":2320,"props":26007,"children":26008},{"class":2322,"line":3446},[26009],{"type":21,"tag":2320,"props":26010,"children":26011},{"emptyLinePlaceholder":3224},[26012],{"type":26,"value":3227},{"type":21,"tag":2320,"props":26014,"children":26015},{"class":2322,"line":3456},[26016],{"type":21,"tag":2320,"props":26017,"children":26018},{"style":3450},[26019],{"type":26,"value":26020},"    # Stop when change is below shot-noise floor\n",{"type":21,"tag":2320,"props":26022,"children":26023},{"class":2322,"line":474},[26024,26029,26033,26038,26043,26048],{"type":21,"tag":2320,"props":26025,"children":26026},{"style":2327},[26027],{"type":26,"value":26028},"    variance ",{"type":21,"tag":2320,"props":26030,"children":26031},{"style":3200},[26032],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26034,"children":26035},{"style":2345},[26036],{"type":26,"value":26037}," 1.0",{"type":21,"tag":2320,"props":26039,"children":26040},{"style":3200},[26041],{"type":26,"value":26042}," \u002F",{"type":21,"tag":2320,"props":26044,"children":26045},{"style":2327},[26046],{"type":26,"value":26047}," np.sqrt(shots_per_eval)  ",{"type":21,"tag":2320,"props":26049,"children":26050},{"style":3450},[26051],{"type":26,"value":26052},"# shot noise floor\n",{"type":21,"tag":2320,"props":26054,"children":26055},{"class":2322,"line":3516},[26056,26060,26065,26070,26074,26079,26084],{"type":21,"tag":2320,"props":26057,"children":26058},{"style":3200},[26059],{"type":26,"value":11946},{"type":21,"tag":2320,"props":26061,"children":26062},{"style":2345},[26063],{"type":26,"value":26064}," abs",{"type":21,"tag":2320,"props":26066,"children":26067},{"style":2327},[26068],{"type":26,"value":26069},"(energy ",{"type":21,"tag":2320,"props":26071,"children":26072},{"style":3200},[26073],{"type":26,"value":4848},{"type":21,"tag":2320,"props":26075,"children":26076},{"style":2327},[26077],{"type":26,"value":26078}," prev_energy) ",{"type":21,"tag":2320,"props":26080,"children":26081},{"style":3200},[26082],{"type":26,"value":26083},"\u003C",{"type":21,"tag":2320,"props":26085,"children":26086},{"style":2327},[26087],{"type":26,"value":26088}," variance:\n",{"type":21,"tag":2320,"props":26090,"children":26091},{"class":2322,"line":3564},[26092,26096,26100,26104,26109,26113,26117,26121,26125],{"type":21,"tag":2320,"props":26093,"children":26094},{"style":2345},[26095],{"type":26,"value":12892},{"type":21,"tag":2320,"props":26097,"children":26098},{"style":2327},[26099],{"type":26,"value":3320},{"type":21,"tag":2320,"props":26101,"children":26102},{"style":3200},[26103],{"type":26,"value":3325},{"type":21,"tag":2320,"props":26105,"children":26106},{"style":2356},[26107],{"type":26,"value":26108},"\"Converged at step ",{"type":21,"tag":2320,"props":26110,"children":26111},{"style":2345},[26112],{"type":26,"value":3335},{"type":21,"tag":2320,"props":26114,"children":26115},{"style":2327},[26116],{"type":26,"value":15238},{"type":21,"tag":2320,"props":26118,"children":26119},{"style":2345},[26120],{"type":26,"value":3345},{"type":21,"tag":2320,"props":26122,"children":26123},{"style":2356},[26124],{"type":26,"value":3350},{"type":21,"tag":2320,"props":26126,"children":26127},{"style":2327},[26128],{"type":26,"value":3300},{"type":21,"tag":2320,"props":26130,"children":26131},{"class":2322,"line":3606},[26132],{"type":21,"tag":2320,"props":26133,"children":26134},{"style":3200},[26135],{"type":26,"value":26136},"        break\n",{"type":21,"tag":2320,"props":26138,"children":26139},{"class":2322,"line":4631},[26140],{"type":21,"tag":2320,"props":26141,"children":26142},{"emptyLinePlaceholder":3224},[26143],{"type":26,"value":3227},{"type":21,"tag":2320,"props":26145,"children":26146},{"class":2322,"line":4650},[26147,26152,26156],{"type":21,"tag":2320,"props":26148,"children":26149},{"style":2327},[26150],{"type":26,"value":26151},"    prev_energy ",{"type":21,"tag":2320,"props":26153,"children":26154},{"style":3200},[26155],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26157,"children":26158},{"style":2327},[26159],{"type":26,"value":26160}," energy\n",{"type":21,"tag":22,"props":26162,"children":26163},{},[26164],{"type":26,"value":26165},"Muchas ejecuciones de VQE se estabilizan pronto; continuar solo desperdicia disparos en fluctuaciones de ruido.",{"type":21,"tag":49,"props":26167,"children":26169},{"id":26168},"técnica-6-arranque-en-caliente",[26170],{"type":26,"value":26171},"Técnica 6: Arranque en caliente",{"type":21,"tag":22,"props":26173,"children":26174},{},[26175],{"type":26,"value":26176},"Inicializa los parámetros de QAOA o VQE a partir de una solución clásica relacionada en lugar de valores aleatorios:",{"type":21,"tag":2310,"props":26178,"children":26180},{"className":3188,"code":26179,"language":3190,"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",[26181],{"type":21,"tag":2080,"props":26182,"children":26183},{"__ignoreMap":7},[26184,26192,26213,26220,26237,26254,26261,26269,26277,26306,26335,26342],{"type":21,"tag":2320,"props":26185,"children":26186},{"class":2322,"line":2323},[26187],{"type":21,"tag":2320,"props":26188,"children":26189},{"style":3450},[26190],{"type":26,"value":26191},"# For QAOA on Max-Cut: warm start from a greedy classical solution\n",{"type":21,"tag":2320,"props":26193,"children":26194},{"class":2322,"line":150},[26195,26199,26204,26208],{"type":21,"tag":2320,"props":26196,"children":26197},{"style":3200},[26198],{"type":26,"value":3213},{"type":21,"tag":2320,"props":26200,"children":26201},{"style":2327},[26202],{"type":26,"value":26203}," networkx ",{"type":21,"tag":2320,"props":26205,"children":26206},{"style":3200},[26207],{"type":26,"value":4278},{"type":21,"tag":2320,"props":26209,"children":26210},{"style":2327},[26211],{"type":26,"value":26212}," nx\n",{"type":21,"tag":2320,"props":26214,"children":26215},{"class":2322,"line":2341},[26216],{"type":21,"tag":2320,"props":26217,"children":26218},{"emptyLinePlaceholder":3224},[26219],{"type":26,"value":3227},{"type":21,"tag":2320,"props":26221,"children":26222},{"class":2322,"line":2403},[26223,26228,26232],{"type":21,"tag":2320,"props":26224,"children":26225},{"style":2327},[26226],{"type":26,"value":26227},"G ",{"type":21,"tag":2320,"props":26229,"children":26230},{"style":3200},[26231],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26233,"children":26234},{"style":2327},[26235],{"type":26,"value":26236}," nx.from_edgelist(edges)\n",{"type":21,"tag":2320,"props":26238,"children":26239},{"class":2322,"line":2427},[26240,26245,26249],{"type":21,"tag":2320,"props":26241,"children":26242},{"style":2327},[26243],{"type":26,"value":26244},"classical_cut ",{"type":21,"tag":2320,"props":26246,"children":26247},{"style":3200},[26248],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26250,"children":26251},{"style":2327},[26252],{"type":26,"value":26253}," nx.algorithms.approximation.one_exchange(G)\n",{"type":21,"tag":2320,"props":26255,"children":26256},{"class":2322,"line":854},[26257],{"type":21,"tag":2320,"props":26258,"children":26259},{"emptyLinePlaceholder":3224},[26260],{"type":26,"value":3227},{"type":21,"tag":2320,"props":26262,"children":26263},{"class":2322,"line":171},[26264],{"type":21,"tag":2320,"props":26265,"children":26266},{"style":3450},[26267],{"type":26,"value":26268},"# Map classical solution to initial QAOA angles\n",{"type":21,"tag":2320,"props":26270,"children":26271},{"class":2322,"line":16},[26272],{"type":21,"tag":2320,"props":26273,"children":26274},{"style":3450},[26275],{"type":26,"value":26276},"# γ₀ ≈ π\u002F4 for a good cut, β₀ ≈ π\u002F8\n",{"type":21,"tag":2320,"props":26278,"children":26279},{"class":2322,"line":1370},[26280,26285,26289,26294,26298,26302],{"type":21,"tag":2320,"props":26281,"children":26282},{"style":2327},[26283],{"type":26,"value":26284},"init_gamma ",{"type":21,"tag":2320,"props":26286,"children":26287},{"style":3200},[26288],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26290,"children":26291},{"style":2327},[26292],{"type":26,"value":26293}," [np.pi ",{"type":21,"tag":2320,"props":26295,"children":26296},{"style":3200},[26297],{"type":26,"value":2175},{"type":21,"tag":2320,"props":26299,"children":26300},{"style":2345},[26301],{"type":26,"value":8340},{"type":21,"tag":2320,"props":26303,"children":26304},{"style":2327},[26305],{"type":26,"value":6687},{"type":21,"tag":2320,"props":26307,"children":26308},{"class":2322,"line":3446},[26309,26314,26318,26322,26326,26331],{"type":21,"tag":2320,"props":26310,"children":26311},{"style":2327},[26312],{"type":26,"value":26313},"init_beta ",{"type":21,"tag":2320,"props":26315,"children":26316},{"style":3200},[26317],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26319,"children":26320},{"style":2327},[26321],{"type":26,"value":26293},{"type":21,"tag":2320,"props":26323,"children":26324},{"style":3200},[26325],{"type":26,"value":2175},{"type":21,"tag":2320,"props":26327,"children":26328},{"style":2345},[26329],{"type":26,"value":26330}," 8",{"type":21,"tag":2320,"props":26332,"children":26333},{"style":2327},[26334],{"type":26,"value":6687},{"type":21,"tag":2320,"props":26336,"children":26337},{"class":2322,"line":3456},[26338],{"type":21,"tag":2320,"props":26339,"children":26340},{"emptyLinePlaceholder":3224},[26341],{"type":26,"value":3227},{"type":21,"tag":2320,"props":26343,"children":26344},{"class":2322,"line":474},[26345],{"type":21,"tag":2320,"props":26346,"children":26347},{"style":3450},[26348],{"type":26,"value":26349},"# Warm-started QAOA typically converges in 30-50% fewer iterations\n",{"type":21,"tag":49,"props":26351,"children":26353},{"id":26352},"combinándolo-todo-una-plantilla-práctica-de-vqe",[26354],{"type":26,"value":26355},"Combinándolo todo: una plantilla práctica de VQE",{"type":21,"tag":2310,"props":26357,"children":26359},{"className":3188,"code":26358,"language":3190,"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",[26360],{"type":21,"tag":2080,"props":26361,"children":26362},{"__ignoreMap":7},[26363,26382,26401,26421,26428,26481,26488,26496,26522,26529,26556,26572,26580,26604,26625,26661,26694,26706,26713,26721,26753,26760,26768,26784,26791,26799,26830,26847,26859,26866,26873],{"type":21,"tag":2320,"props":26364,"children":26365},{"class":2322,"line":2323},[26366,26370,26374,26378],{"type":21,"tag":2320,"props":26367,"children":26368},{"style":3200},[26369],{"type":26,"value":3213},{"type":21,"tag":2320,"props":26371,"children":26372},{"style":2327},[26373],{"type":26,"value":14092},{"type":21,"tag":2320,"props":26375,"children":26376},{"style":3200},[26377],{"type":26,"value":4278},{"type":21,"tag":2320,"props":26379,"children":26380},{"style":2327},[26381],{"type":26,"value":14101},{"type":21,"tag":2320,"props":26383,"children":26384},{"class":2322,"line":150},[26385,26389,26393,26397],{"type":21,"tag":2320,"props":26386,"children":26387},{"style":3200},[26388],{"type":26,"value":3213},{"type":21,"tag":2320,"props":26390,"children":26391},{"style":2327},[26392],{"type":26,"value":4273},{"type":21,"tag":2320,"props":26394,"children":26395},{"style":3200},[26396],{"type":26,"value":4278},{"type":21,"tag":2320,"props":26398,"children":26399},{"style":2327},[26400],{"type":26,"value":4283},{"type":21,"tag":2320,"props":26402,"children":26403},{"class":2322,"line":2341},[26404,26408,26412,26416],{"type":21,"tag":2320,"props":26405,"children":26406},{"style":3200},[26407],{"type":26,"value":3203},{"type":21,"tag":2320,"props":26409,"children":26410},{"style":2327},[26411],{"type":26,"value":25077},{"type":21,"tag":2320,"props":26413,"children":26414},{"style":3200},[26415],{"type":26,"value":3213},{"type":21,"tag":2320,"props":26417,"children":26418},{"style":2327},[26419],{"type":26,"value":26420}," ShotAdaptiveOptimizer\n",{"type":21,"tag":2320,"props":26422,"children":26423},{"class":2322,"line":2403},[26424],{"type":21,"tag":2320,"props":26425,"children":26426},{"emptyLinePlaceholder":3224},[26427],{"type":26,"value":3227},{"type":21,"tag":2320,"props":26429,"children":26430},{"class":2322,"line":2427},[26431,26435,26439,26443,26447,26451,26455,26459,26464,26468,26472,26477],{"type":21,"tag":2320,"props":26432,"children":26433},{"style":2327},[26434],{"type":26,"value":14225},{"type":21,"tag":2320,"props":26436,"children":26437},{"style":3200},[26438],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26440,"children":26441},{"style":2327},[26442],{"type":26,"value":14234},{"type":21,"tag":2320,"props":26444,"children":26445},{"style":2356},[26446],{"type":26,"value":14239},{"type":21,"tag":2320,"props":26448,"children":26449},{"style":2327},[26450],{"type":26,"value":1315},{"type":21,"tag":2320,"props":26452,"children":26453},{"style":3265},[26454],{"type":26,"value":14248},{"type":21,"tag":2320,"props":26456,"children":26457},{"style":3200},[26458],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26460,"children":26461},{"style":2327},[26462],{"type":26,"value":26463},"n_qubits, ",{"type":21,"tag":2320,"props":26465,"children":26466},{"style":3265},[26467],{"type":26,"value":4123},{"type":21,"tag":2320,"props":26469,"children":26470},{"style":3200},[26471],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26473,"children":26474},{"style":2345},[26475],{"type":26,"value":26476},"512",{"type":21,"tag":2320,"props":26478,"children":26479},{"style":2327},[26480],{"type":26,"value":3300},{"type":21,"tag":2320,"props":26482,"children":26483},{"class":2322,"line":854},[26484],{"type":21,"tag":2320,"props":26485,"children":26486},{"emptyLinePlaceholder":3224},[26487],{"type":26,"value":3227},{"type":21,"tag":2320,"props":26489,"children":26490},{"class":2322,"line":171},[26491],{"type":21,"tag":2320,"props":26492,"children":26493},{"style":3450},[26494],{"type":26,"value":26495},"# 1. Group commuting terms (5-10x reduction in circuit count)\n",{"type":21,"tag":2320,"props":26497,"children":26498},{"class":2322,"line":16},[26499,26504,26508,26513,26517],{"type":21,"tag":2320,"props":26500,"children":26501},{"style":2327},[26502],{"type":26,"value":26503},"grouped_H ",{"type":21,"tag":2320,"props":26505,"children":26506},{"style":3200},[26507],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26509,"children":26510},{"style":2327},[26511],{"type":26,"value":26512}," qml.Hamiltonian(",{"type":21,"tag":2320,"props":26514,"children":26515},{"style":3200},[26516],{"type":26,"value":6393},{"type":21,"tag":2320,"props":26518,"children":26519},{"style":2327},[26520],{"type":26,"value":26521},"qml.grouping.group_observables(H))\n",{"type":21,"tag":2320,"props":26523,"children":26524},{"class":2322,"line":1370},[26525],{"type":21,"tag":2320,"props":26526,"children":26527},{"emptyLinePlaceholder":3224},[26528],{"type":26,"value":3227},{"type":21,"tag":2320,"props":26530,"children":26531},{"class":2322,"line":3446},[26532,26536,26540,26544,26548,26552],{"type":21,"tag":2320,"props":26533,"children":26534},{"style":4364},[26535],{"type":26,"value":14272},{"type":21,"tag":2320,"props":26537,"children":26538},{"style":2327},[26539],{"type":26,"value":25446},{"type":21,"tag":2320,"props":26541,"children":26542},{"style":3265},[26543],{"type":26,"value":25451},{"type":21,"tag":2320,"props":26545,"children":26546},{"style":3200},[26547],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26549,"children":26550},{"style":2356},[26551],{"type":26,"value":25460},{"type":21,"tag":2320,"props":26553,"children":26554},{"style":2327},[26555],{"type":26,"value":3300},{"type":21,"tag":2320,"props":26557,"children":26558},{"class":2322,"line":3456},[26559,26563,26568],{"type":21,"tag":2320,"props":26560,"children":26561},{"style":3200},[26562],{"type":26,"value":4361},{"type":21,"tag":2320,"props":26564,"children":26565},{"style":4364},[26566],{"type":26,"value":26567}," ansatz",{"type":21,"tag":2320,"props":26569,"children":26570},{"style":2327},[26571],{"type":26,"value":25166},{"type":21,"tag":2320,"props":26573,"children":26574},{"class":2322,"line":474},[26575],{"type":21,"tag":2320,"props":26576,"children":26577},{"style":3450},[26578],{"type":26,"value":26579},"    # Hardware-efficient ansatz\n",{"type":21,"tag":2320,"props":26581,"children":26582},{"class":2322,"line":3516},[26583,26587,26591,26595,26599],{"type":21,"tag":2320,"props":26584,"children":26585},{"style":3200},[26586],{"type":26,"value":4740},{"type":21,"tag":2320,"props":26588,"children":26589},{"style":2327},[26590],{"type":26,"value":4745},{"type":21,"tag":2320,"props":26592,"children":26593},{"style":3200},[26594],{"type":26,"value":3503},{"type":21,"tag":2320,"props":26596,"children":26597},{"style":2345},[26598],{"type":26,"value":3508},{"type":21,"tag":2320,"props":26600,"children":26601},{"style":2327},[26602],{"type":26,"value":26603},"(n_qubits):\n",{"type":21,"tag":2320,"props":26605,"children":26606},{"class":2322,"line":3564},[26607,26612,26616,26620],{"type":21,"tag":2320,"props":26608,"children":26609},{"style":2327},[26610],{"type":26,"value":26611},"        qml.RY(params[i], ",{"type":21,"tag":2320,"props":26613,"children":26614},{"style":3265},[26615],{"type":26,"value":14248},{"type":21,"tag":2320,"props":26617,"children":26618},{"style":3200},[26619],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26621,"children":26622},{"style":2327},[26623],{"type":26,"value":26624},"i)\n",{"type":21,"tag":2320,"props":26626,"children":26627},{"class":2322,"line":3606},[26628,26632,26636,26640,26644,26649,26653,26657],{"type":21,"tag":2320,"props":26629,"children":26630},{"style":3200},[26631],{"type":26,"value":4740},{"type":21,"tag":2320,"props":26633,"children":26634},{"style":2327},[26635],{"type":26,"value":4745},{"type":21,"tag":2320,"props":26637,"children":26638},{"style":3200},[26639],{"type":26,"value":3503},{"type":21,"tag":2320,"props":26641,"children":26642},{"style":2345},[26643],{"type":26,"value":3508},{"type":21,"tag":2320,"props":26645,"children":26646},{"style":2327},[26647],{"type":26,"value":26648},"(n_qubits ",{"type":21,"tag":2320,"props":26650,"children":26651},{"style":3200},[26652],{"type":26,"value":4848},{"type":21,"tag":2320,"props":26654,"children":26655},{"style":2345},[26656],{"type":26,"value":6099},{"type":21,"tag":2320,"props":26658,"children":26659},{"style":2327},[26660],{"type":26,"value":4414},{"type":21,"tag":2320,"props":26662,"children":26663},{"class":2322,"line":4631},[26664,26669,26673,26677,26682,26686,26690],{"type":21,"tag":2320,"props":26665,"children":26666},{"style":2327},[26667],{"type":26,"value":26668},"        qml.CNOT(",{"type":21,"tag":2320,"props":26670,"children":26671},{"style":3265},[26672],{"type":26,"value":14248},{"type":21,"tag":2320,"props":26674,"children":26675},{"style":3200},[26676],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26678,"children":26679},{"style":2327},[26680],{"type":26,"value":26681},"[i, i ",{"type":21,"tag":2320,"props":26683,"children":26684},{"style":3200},[26685],{"type":26,"value":6528},{"type":21,"tag":2320,"props":26687,"children":26688},{"style":2345},[26689],{"type":26,"value":6099},{"type":21,"tag":2320,"props":26691,"children":26692},{"style":2327},[26693],{"type":26,"value":3561},{"type":21,"tag":2320,"props":26695,"children":26696},{"class":2322,"line":4650},[26697,26701],{"type":21,"tag":2320,"props":26698,"children":26699},{"style":3200},[26700],{"type":26,"value":4586},{"type":21,"tag":2320,"props":26702,"children":26703},{"style":2327},[26704],{"type":26,"value":26705}," qml.expval(grouped_H)\n",{"type":21,"tag":2320,"props":26707,"children":26708},{"class":2322,"line":4658},[26709],{"type":21,"tag":2320,"props":26710,"children":26711},{"emptyLinePlaceholder":3224},[26712],{"type":26,"value":3227},{"type":21,"tag":2320,"props":26714,"children":26715},{"class":2322,"line":4689},[26716],{"type":21,"tag":2320,"props":26717,"children":26718},{"style":3450},[26719],{"type":26,"value":26720},"# 2. Use shot-adaptive optimizer\n",{"type":21,"tag":2320,"props":26722,"children":26723},{"class":2322,"line":4734},[26724,26728,26732,26736,26740,26744,26749],{"type":21,"tag":2320,"props":26725,"children":26726},{"style":2327},[26727],{"type":26,"value":14950},{"type":21,"tag":2320,"props":26729,"children":26730},{"style":3200},[26731],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26733,"children":26734},{"style":2327},[26735],{"type":26,"value":25225},{"type":21,"tag":2320,"props":26737,"children":26738},{"style":3265},[26739],{"type":26,"value":25230},{"type":21,"tag":2320,"props":26741,"children":26742},{"style":3200},[26743],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26745,"children":26746},{"style":2345},[26747],{"type":26,"value":26748},"50",{"type":21,"tag":2320,"props":26750,"children":26751},{"style":2327},[26752],{"type":26,"value":3300},{"type":21,"tag":2320,"props":26754,"children":26755},{"class":2322,"line":4773},[26756],{"type":21,"tag":2320,"props":26757,"children":26758},{"emptyLinePlaceholder":3224},[26759],{"type":26,"value":3227},{"type":21,"tag":2320,"props":26761,"children":26762},{"class":2322,"line":4791},[26763],{"type":21,"tag":2320,"props":26764,"children":26765},{"style":3450},[26766],{"type":26,"value":26767},"# 3. Warm start\n",{"type":21,"tag":2320,"props":26769,"children":26770},{"class":2322,"line":4865},[26771,26775,26779],{"type":21,"tag":2320,"props":26772,"children":26773},{"style":2327},[26774],{"type":26,"value":25257},{"type":21,"tag":2320,"props":26776,"children":26777},{"style":3200},[26778],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26780,"children":26781},{"style":2327},[26782],{"type":26,"value":26783}," warm_start_params(H)\n",{"type":21,"tag":2320,"props":26785,"children":26786},{"class":2322,"line":4893},[26787],{"type":21,"tag":2320,"props":26788,"children":26789},{"emptyLinePlaceholder":3224},[26790],{"type":26,"value":3227},{"type":21,"tag":2320,"props":26792,"children":26793},{"class":2322,"line":4922},[26794],{"type":21,"tag":2320,"props":26795,"children":26796},{"style":3450},[26797],{"type":26,"value":26798},"# 4. Run with early stopping\n",{"type":21,"tag":2320,"props":26800,"children":26801},{"class":2322,"line":4931},[26802,26806,26810,26814,26818,26822,26826],{"type":21,"tag":2320,"props":26803,"children":26804},{"style":3200},[26805],{"type":26,"value":3493},{"type":21,"tag":2320,"props":26807,"children":26808},{"style":2327},[26809],{"type":26,"value":15012},{"type":21,"tag":2320,"props":26811,"children":26812},{"style":3200},[26813],{"type":26,"value":3503},{"type":21,"tag":2320,"props":26815,"children":26816},{"style":2345},[26817],{"type":26,"value":3508},{"type":21,"tag":2320,"props":26819,"children":26820},{"style":2327},[26821],{"type":26,"value":3320},{"type":21,"tag":2320,"props":26823,"children":26824},{"style":2345},[26825],{"type":26,"value":25737},{"type":21,"tag":2320,"props":26827,"children":26828},{"style":2327},[26829],{"type":26,"value":4414},{"type":21,"tag":2320,"props":26831,"children":26832},{"class":2322,"line":4959},[26833,26838,26842],{"type":21,"tag":2320,"props":26834,"children":26835},{"style":2327},[26836],{"type":26,"value":26837},"    params, energy, shots ",{"type":21,"tag":2320,"props":26839,"children":26840},{"style":3200},[26841],{"type":26,"value":3240},{"type":21,"tag":2320,"props":26843,"children":26844},{"style":2327},[26845],{"type":26,"value":26846}," opt.step_and_cost(ansatz, params)\n",{"type":21,"tag":2320,"props":26848,"children":26849},{"class":2322,"line":4990},[26850,26854],{"type":21,"tag":2320,"props":26851,"children":26852},{"style":3200},[26853],{"type":26,"value":11946},{"type":21,"tag":2320,"props":26855,"children":26856},{"style":2327},[26857],{"type":26,"value":26858}," check_convergence(energy, shots):\n",{"type":21,"tag":2320,"props":26860,"children":26861},{"class":2322,"line":5012},[26862],{"type":21,"tag":2320,"props":26863,"children":26864},{"style":3200},[26865],{"type":26,"value":26136},{"type":21,"tag":2320,"props":26867,"children":26868},{"class":2322,"line":5058},[26869],{"type":21,"tag":2320,"props":26870,"children":26871},{"emptyLinePlaceholder":3224},[26872],{"type":26,"value":3227},{"type":21,"tag":2320,"props":26874,"children":26875},{"class":2322,"line":5071},[26876,26880,26884,26888,26893,26897,26902,26906,26910,26914],{"type":21,"tag":2320,"props":26877,"children":26878},{"style":2345},[26879],{"type":26,"value":3315},{"type":21,"tag":2320,"props":26881,"children":26882},{"style":2327},[26883],{"type":26,"value":3320},{"type":21,"tag":2320,"props":26885,"children":26886},{"style":3200},[26887],{"type":26,"value":3325},{"type":21,"tag":2320,"props":26889,"children":26890},{"style":2356},[26891],{"type":26,"value":26892},"\"Ground state energy: ",{"type":21,"tag":2320,"props":26894,"children":26895},{"style":2345},[26896],{"type":26,"value":3335},{"type":21,"tag":2320,"props":26898,"children":26899},{"style":2327},[26900],{"type":26,"value":26901},"energy",{"type":21,"tag":2320,"props":26903,"children":26904},{"style":3200},[26905],{"type":26,"value":3647},{"type":21,"tag":2320,"props":26907,"children":26908},{"style":2345},[26909],{"type":26,"value":3345},{"type":21,"tag":2320,"props":26911,"children":26912},{"style":2356},[26913],{"type":26,"value":19446},{"type":21,"tag":2320,"props":26915,"children":26916},{"style":2327},[26917],{"type":26,"value":3300},{"type":21,"tag":49,"props":26919,"children":26921},{"id":26920},"referencia-rápida-presupuesto-de-disparos-por-método",[26922],{"type":26,"value":26923},"Referencia rápida: presupuesto de disparos por método",{"type":21,"tag":4066,"props":26925,"children":26926},{},[26927,26948],{"type":21,"tag":4070,"props":26928,"children":26929},{},[26930],{"type":21,"tag":4074,"props":26931,"children":26932},{},[26933,26938,26943],{"type":21,"tag":4078,"props":26934,"children":26935},{},[26936],{"type":26,"value":26937},"Método",{"type":21,"tag":4078,"props":26939,"children":26940},{},[26941],{"type":26,"value":26942},"Disparos\u002Fpaso",{"type":21,"tag":4078,"props":26944,"children":26945},{},[26946],{"type":26,"value":26947},"Mejor para",{"type":21,"tag":4092,"props":26949,"children":26950},{},[26951,26973,26995,27017,27035],{"type":21,"tag":4074,"props":26952,"children":26953},{},[26954,26959,26968],{"type":21,"tag":4099,"props":26955,"children":26956},{},[26957],{"type":26,"value":26958},"COBYLA + disparos fijos",{"type":21,"tag":4099,"props":26960,"children":26961},{},[26962],{"type":21,"tag":2080,"props":26963,"children":26965},{"className":26964},[],[26966],{"type":26,"value":26967},"n_terms × shots",{"type":21,"tag":4099,"props":26969,"children":26970},{},[26971],{"type":26,"value":26972},"Pocos parámetros",{"type":21,"tag":4074,"props":26974,"children":26975},{},[26976,26981,26990],{"type":21,"tag":4099,"props":26977,"children":26978},{},[26979],{"type":26,"value":26980},"Desplazamiento de parámetros + Adam",{"type":21,"tag":4099,"props":26982,"children":26983},{},[26984],{"type":21,"tag":2080,"props":26985,"children":26987},{"className":26986},[],[26988],{"type":26,"value":26989},"2n_params × shots",{"type":21,"tag":4099,"props":26991,"children":26992},{},[26993],{"type":26,"value":26994},"Circuitos diferenciables",{"type":21,"tag":4074,"props":26996,"children":26997},{},[26998,27003,27012],{"type":21,"tag":4099,"props":26999,"children":27000},{},[27001],{"type":26,"value":27002},"SPSA",{"type":21,"tag":4099,"props":27004,"children":27005},{},[27006],{"type":21,"tag":2080,"props":27007,"children":27009},{"className":27008},[],[27010],{"type":26,"value":27011},"2 × shots",{"type":21,"tag":4099,"props":27013,"children":27014},{},[27015],{"type":26,"value":27016},"Muchos parámetros",{"type":21,"tag":4074,"props":27018,"children":27019},{},[27020,27025,27030],{"type":21,"tag":4099,"props":27021,"children":27022},{},[27023],{"type":26,"value":27024},"ShotAdaptiveOptimizer",{"type":21,"tag":4099,"props":27026,"children":27027},{},[27028],{"type":26,"value":27029},"Adaptativo",{"type":21,"tag":4099,"props":27031,"children":27032},{},[27033],{"type":26,"value":27034},"VQE general",{"type":21,"tag":4074,"props":27036,"children":27037},{},[27038,27043,27048],{"type":21,"tag":4099,"props":27039,"children":27040},{},[27041],{"type":26,"value":27042},"Paulis agrupados",{"type":21,"tag":4099,"props":27044,"children":27045},{},[27046],{"type":26,"value":27047},"÷5–15×",{"type":21,"tag":4099,"props":27049,"children":27050},{},[27051],{"type":26,"value":27052},"Aplicar siempre primero",{"type":21,"tag":22,"props":27054,"children":27055},{},[27056],{"type":26,"value":27057},"Aplica primero la agrupación de mediciones: es la mayor ganancia individual y no requiere cambios en tu optimizador ni en tu circuito.",{"type":21,"tag":22,"props":27059,"children":27060},{},[27061,27066,27067,27072,27073,27078,27079],{"type":21,"tag":180,"props":27062,"children":27063},{},[27064],{"type":26,"value":27065},"Relacionado:",{"type":26,"value":1307},{"type":21,"tag":29,"props":27068,"children":27069},{"href":338},[27070],{"type":26,"value":27071},"VQE con PennyLane",{"type":26,"value":7112},{"type":21,"tag":29,"props":27074,"children":27075},{"href":249},[27076],{"type":26,"value":27077},"Guía de acceso a QPU",{"type":26,"value":7112},{"type":21,"tag":29,"props":27080,"children":27081},{"href":19017},[27082],{"type":26,"value":19020},{"type":21,"tag":2694,"props":27084,"children":27085},{},[27086],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":27088},[27089,27090,27091,27092,27093,27094,27095,27096,27097],{"id":24570,"depth":150,"text":24573},{"id":24715,"depth":150,"text":24718},{"id":25043,"depth":150,"text":25046},{"id":25396,"depth":150,"text":25399},{"id":25642,"depth":150,"text":25645},{"id":25819,"depth":150,"text":25822},{"id":26168,"depth":150,"text":26171},{"id":26352,"depth":150,"text":26355},{"id":26920,"depth":150,"text":26923},"content:es:blog:reduce-shot-count.md","es\u002Fblog\u002Freduce-shot-count.md","es\u002Fblog\u002Freduce-shot-count",{"_path":27102,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":27103,"description":27104,"date":27105,"updatedDate":10,"author":11,"tags":27106,"readingTime":16,"body":27108,"_type":156,"_id":28910,"_source":158,"_file":28911,"_stem":28912,"_extension":161},"\u002Fes\u002Fblog\u002Fibm-quantum-free-tier-2026","Nivel gratuito de IBM Quantum: todo lo que puedes usar en 2026","Un desglose detallado de lo que incluye el Open Plan gratuito de IBM Quantum, cómo funcionan los tiempos de espera y cómo aprovechar al máximo tu acceso gratuito a QPU.","2026-02-20",[27107,13,1369],"IBM",{"type":18,"children":27109,"toc":28896},[27110,27115,27121,27132,27187,27192,27198,27225,27246,27266,27272,27277,27381,27386,27628,27634,27640,27651,27657,27684,27690,27695,27806,27819,27825,28469,28475,28480,28506,28514,28545,28551,28556,28635,28640,28646,28651,28880,28892],{"type":21,"tag":22,"props":27111,"children":27112},{},[27113],{"type":26,"value":27114},"IBM Quantum tiene el nivel gratuito más accesible de la industria de la computación cuántica. Con un IBM ID gratuito, obtienes acceso a procesadores cuánticos reales de hasta 127 qubits: sin coste, sin tarjeta de crédito, sin necesidad de solicitud. Aquí tienes exactamente lo que eso significa en la práctica.",{"type":21,"tag":49,"props":27116,"children":27118},{"id":27117},"qué-incluye-el-nivel-gratuito",[27119],{"type":26,"value":27120},"Qué incluye el nivel gratuito",{"type":21,"tag":22,"props":27122,"children":27123},{},[27124,27125,27130],{"type":26,"value":18850},{"type":21,"tag":180,"props":27126,"children":27127},{},[27128],{"type":26,"value":27129},"Open Plan",{"type":26,"value":27131}," de IBM Quantum te ofrece:",{"type":21,"tag":3118,"props":27133,"children":27134},{},[27135,27145,27155,27165,27175],{"type":21,"tag":3122,"props":27136,"children":27137},{},[27138,27143],{"type":21,"tag":180,"props":27139,"children":27140},{},[27141],{"type":26,"value":27142},"Acceso ilimitado",{"type":26,"value":27144}," a todos los sistemas cuánticos disponibles públicamente",{"type":21,"tag":3122,"props":27146,"children":27147},{},[27148,27153],{"type":21,"tag":180,"props":27149,"children":27150},{},[27151],{"type":26,"value":27152},"10 minutos de tiempo cuántico",{"type":26,"value":27154}," al mes (el tiempo que tus circuitos están ejecutándose activamente en la QPU)",{"type":21,"tag":3122,"props":27156,"children":27157},{},[27158,27163],{"type":21,"tag":180,"props":27159,"children":27160},{},[27161],{"type":26,"value":27162},"Acceso a los simuladores de IBM",{"type":26,"value":27164}," sin límite de tiempo (statevector, QASM, matrix product state)",{"type":21,"tag":3122,"props":27166,"children":27167},{},[27168,27173],{"type":21,"tag":180,"props":27169,"children":27170},{},[27171],{"type":26,"value":27172},"Qiskit Runtime",{"type":26,"value":27174},": el entorno de ejecución moderno de IBM para circuitos",{"type":21,"tag":3122,"props":27176,"children":27177},{},[27178,27180,27185],{"type":26,"value":27179},"Plataforma ",{"type":21,"tag":180,"props":27181,"children":27182},{},[27183],{"type":26,"value":27184},"IBM Quantum Learning",{"type":26,"value":27186}," con tutoriales y cursos",{"type":21,"tag":22,"props":27188,"children":27189},{},[27190],{"type":26,"value":27191},"El límite mensual de 10 minutos suena restrictivo, pero en la práctica la mayoría de los circuitos de investigación se ejecutan en milisegundos de tiempo real de QPU. Rara vez se alcanza el límite en el caso de desarrolladores individuales que experimentan con algoritmos cuánticos.",{"type":21,"tag":49,"props":27193,"children":27195},{"id":27194},"actualización-de-agosto-de-2026-heron-r2-y-minutos-de-cómputo-adicionales",[27196],{"type":26,"value":27197},"Actualización de agosto de 2026: Heron r2 y minutos de cómputo adicionales",{"type":21,"tag":22,"props":27199,"children":27200},{},[27201,27203,27209,27211,27216,27218,27224],{"type":26,"value":27202},"IBM añadió su procesador Heron r2, de mayor rendimiento, (",{"type":21,"tag":2080,"props":27204,"children":27206},{"className":27205},[],[27207],{"type":26,"value":27208},"ibm_kingston",{"type":26,"value":27210},") al Open Plan en marzo de 2026, dando a los usuarios del nivel gratuito acceso a una fidelidad de puerta de dos qubits notablemente mejor que la de los sistemas Heron r1 originales. Si hace tiempo que no ejecutas nada, vale la pena comprobar si ",{"type":21,"tag":2080,"props":27212,"children":27214},{"className":27213},[],[27215],{"type":26,"value":27208},{"type":26,"value":27217}," aparece en tu lista de ",{"type":21,"tag":2080,"props":27219,"children":27221},{"className":27220},[],[27222],{"type":26,"value":27223},"service.backends()",{"type":26,"value":802},{"type":21,"tag":22,"props":27226,"children":27227},{},[27228,27230,27235,27237,27244],{"type":26,"value":27229},"IBM también organizó una promoción única para usuarios activos: quienes hubieran registrado al menos 20 minutos de tiempo de QPU en una ventana de 12 meses podían inscribirse para obtener un bono de ",{"type":21,"tag":180,"props":27231,"children":27232},{},[27233],{"type":26,"value":27234},"180 minutos durante los siguientes 12 meses",{"type":26,"value":27236},", dieciocho veces la asignación mensual estándar. Esa oferta estaba vinculada a una ventana de inscripción concreta y no era un cambio permanente a la base de 10 minutos al mes del Open Plan, así que no des por hecho que sigue vigente. Consulta la ",{"type":21,"tag":29,"props":27238,"children":27241},{"href":27239,"rel":27240},"https:\u002F\u002Fquantum.cloud.ibm.com\u002Fdocs\u002Fen\u002Fguides\u002Fplans-overview",[33],[27242],{"type":26,"value":27243},"página del Open Plan",{"type":26,"value":27245}," para ver qué está activo actualmente en tu cuenta.",{"type":21,"tag":22,"props":27247,"children":27248},{},[27249,27251,27257,27259,27264],{"type":26,"value":27250},"La oferta de sistemas también cambia en la otra dirección. IBM retiró ",{"type":21,"tag":2080,"props":27252,"children":27254},{"className":27253},[],[27255],{"type":26,"value":27256},"ibm_torino",{"type":26,"value":27258}," a principios de abril de 2026, lo cual es parte normal del funcionamiento del Open Plan: se añaden sistemas a medida que llega hardware más nuevo y se retiran los antiguos una vez terminada su vida útil. Por eso el fragmento de ",{"type":21,"tag":2080,"props":27260,"children":27262},{"className":27261},[],[27263],{"type":26,"value":27223},{"type":26,"value":27265}," de más abajo importa más que cualquier tabla estática. Trata la lista de este artículo como una instantánea, no como algo actual.",{"type":21,"tag":49,"props":27267,"children":27269},{"id":27268},"qpu-gratuitas-disponibles",[27270],{"type":26,"value":27271},"QPU gratuitas disponibles",{"type":21,"tag":22,"props":27273,"children":27274},{},[27275],{"type":26,"value":27276},"A mediados de 2026, el Open Plan de IBM incluye acceso a sistemas como:",{"type":21,"tag":4066,"props":27278,"children":27279},{},[27280,27305],{"type":21,"tag":4070,"props":27281,"children":27282},{},[27283],{"type":21,"tag":4074,"props":27284,"children":27285},{},[27286,27291,27295,27300],{"type":21,"tag":4078,"props":27287,"children":27288},{},[27289],{"type":26,"value":27290},"Sistema",{"type":21,"tag":4078,"props":27292,"children":27293},{},[27294],{"type":26,"value":24597},{"type":21,"tag":4078,"props":27296,"children":27297},{},[27298],{"type":26,"value":27299},"Tecnología",{"type":21,"tag":4078,"props":27301,"children":27302},{},[27303],{"type":26,"value":27304},"Cola típica",{"type":21,"tag":4092,"props":27306,"children":27307},{},[27308,27337,27359],{"type":21,"tag":4074,"props":27309,"children":27310},{},[27311,27322,27327,27332],{"type":21,"tag":4099,"props":27312,"children":27313},{},[27314,27316,27321],{"type":26,"value":27315},"IBM Heron r2 (",{"type":21,"tag":2080,"props":27317,"children":27319},{"className":27318},[],[27320],{"type":26,"value":27208},{"type":26,"value":17272},{"type":21,"tag":4099,"props":27323,"children":27324},{},[27325],{"type":26,"value":27326},"156",{"type":21,"tag":4099,"props":27328,"children":27329},{},[27330],{"type":26,"value":27331},"Procesador Heron, mayor fidelidad",{"type":21,"tag":4099,"props":27333,"children":27334},{},[27335],{"type":26,"value":27336},"30–120 min",{"type":21,"tag":4074,"props":27338,"children":27339},{},[27340,27345,27350,27354],{"type":21,"tag":4099,"props":27341,"children":27342},{},[27343],{"type":26,"value":27344},"IBM Eagle",{"type":21,"tag":4099,"props":27346,"children":27347},{},[27348],{"type":26,"value":27349},"127",{"type":21,"tag":4099,"props":27351,"children":27352},{},[27353],{"type":26,"value":9147},{"type":21,"tag":4099,"props":27355,"children":27356},{},[27357],{"type":26,"value":27358},"10–60 min",{"type":21,"tag":4074,"props":27360,"children":27361},{},[27362,27367,27372,27377],{"type":21,"tag":4099,"props":27363,"children":27364},{},[27365],{"type":26,"value":27366},"IBM Heron r1",{"type":21,"tag":4099,"props":27368,"children":27369},{},[27370],{"type":26,"value":27371},"133",{"type":21,"tag":4099,"props":27373,"children":27374},{},[27375],{"type":26,"value":27376},"Heron processor",{"type":21,"tag":4099,"props":27378,"children":27379},{},[27380],{"type":26,"value":27336},{"type":21,"tag":22,"props":27382,"children":27383},{},[27384],{"type":26,"value":27385},"IBM retira y añade sistemas con regularidad. Trata esta tabla como una instantánea, no como una garantía. Usa el servicio Qiskit Runtime para ver la lista actual:",{"type":21,"tag":2310,"props":27387,"children":27389},{"className":3188,"code":27388,"language":3190,"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",[27390],{"type":21,"tag":2080,"props":27391,"children":27392},{"__ignoreMap":7},[27393,27412,27419,27452,27469,27489,27509,27526,27533,27553],{"type":21,"tag":2320,"props":27394,"children":27395},{"class":2322,"line":2323},[27396,27400,27404,27408],{"type":21,"tag":2320,"props":27397,"children":27398},{"style":3200},[27399],{"type":26,"value":3203},{"type":21,"tag":2320,"props":27401,"children":27402},{"style":2327},[27403],{"type":26,"value":3208},{"type":21,"tag":2320,"props":27405,"children":27406},{"style":3200},[27407],{"type":26,"value":3213},{"type":21,"tag":2320,"props":27409,"children":27410},{"style":2327},[27411],{"type":26,"value":3218},{"type":21,"tag":2320,"props":27413,"children":27414},{"class":2322,"line":150},[27415],{"type":21,"tag":2320,"props":27416,"children":27417},{"emptyLinePlaceholder":3224},[27418],{"type":26,"value":3227},{"type":21,"tag":2320,"props":27420,"children":27421},{"class":2322,"line":2341},[27422,27426,27430,27435,27440,27444,27448],{"type":21,"tag":2320,"props":27423,"children":27424},{"style":2327},[27425],{"type":26,"value":3235},{"type":21,"tag":2320,"props":27427,"children":27428},{"style":3200},[27429],{"type":26,"value":3240},{"type":21,"tag":2320,"props":27431,"children":27432},{"style":2327},[27433],{"type":26,"value":27434}," QiskitRuntimeService(",{"type":21,"tag":2320,"props":27436,"children":27437},{"style":3265},[27438],{"type":26,"value":27439},"channel",{"type":21,"tag":2320,"props":27441,"children":27442},{"style":3200},[27443],{"type":26,"value":3240},{"type":21,"tag":2320,"props":27445,"children":27446},{"style":2356},[27447],{"type":26,"value":20743},{"type":21,"tag":2320,"props":27449,"children":27450},{"style":2327},[27451],{"type":26,"value":3300},{"type":21,"tag":2320,"props":27453,"children":27454},{"class":2322,"line":2403},[27455,27460,27464],{"type":21,"tag":2320,"props":27456,"children":27457},{"style":2327},[27458],{"type":26,"value":27459},"backends ",{"type":21,"tag":2320,"props":27461,"children":27462},{"style":3200},[27463],{"type":26,"value":3240},{"type":21,"tag":2320,"props":27465,"children":27466},{"style":2327},[27467],{"type":26,"value":27468}," service.backends(\n",{"type":21,"tag":2320,"props":27470,"children":27471},{"class":2322,"line":2427},[27472,27477,27481,27485],{"type":21,"tag":2320,"props":27473,"children":27474},{"style":3265},[27475],{"type":26,"value":27476},"    operational",{"type":21,"tag":2320,"props":27478,"children":27479},{"style":3200},[27480],{"type":26,"value":3240},{"type":21,"tag":2320,"props":27482,"children":27483},{"style":2345},[27484],{"type":26,"value":3277},{"type":21,"tag":2320,"props":27486,"children":27487},{"style":2327},[27488],{"type":26,"value":2424},{"type":21,"tag":2320,"props":27490,"children":27491},{"class":2322,"line":854},[27492,27497,27501,27505],{"type":21,"tag":2320,"props":27493,"children":27494},{"style":3265},[27495],{"type":26,"value":27496},"    simulator",{"type":21,"tag":2320,"props":27498,"children":27499},{"style":3200},[27500],{"type":26,"value":3240},{"type":21,"tag":2320,"props":27502,"children":27503},{"style":2345},[27504],{"type":26,"value":3295},{"type":21,"tag":2320,"props":27506,"children":27507},{"style":2327},[27508],{"type":26,"value":2424},{"type":21,"tag":2320,"props":27510,"children":27511},{"class":2322,"line":171},[27512,27517,27521],{"type":21,"tag":2320,"props":27513,"children":27514},{"style":3265},[27515],{"type":26,"value":27516},"    min_num_qubits",{"type":21,"tag":2320,"props":27518,"children":27519},{"style":3200},[27520],{"type":26,"value":3240},{"type":21,"tag":2320,"props":27522,"children":27523},{"style":2345},[27524],{"type":26,"value":27525},"1\n",{"type":21,"tag":2320,"props":27527,"children":27528},{"class":2322,"line":16},[27529],{"type":21,"tag":2320,"props":27530,"children":27531},{"style":2327},[27532],{"type":26,"value":3300},{"type":21,"tag":2320,"props":27534,"children":27535},{"class":2322,"line":1370},[27536,27540,27544,27548],{"type":21,"tag":2320,"props":27537,"children":27538},{"style":3200},[27539],{"type":26,"value":3493},{"type":21,"tag":2320,"props":27541,"children":27542},{"style":2327},[27543],{"type":26,"value":4904},{"type":21,"tag":2320,"props":27545,"children":27546},{"style":3200},[27547],{"type":26,"value":3503},{"type":21,"tag":2320,"props":27549,"children":27550},{"style":2327},[27551],{"type":26,"value":27552}," backends:\n",{"type":21,"tag":2320,"props":27554,"children":27555},{"class":2322,"line":3446},[27556,27560,27564,27568,27572,27576,27581,27585,27589,27593,27598,27602,27607,27611,27616,27620,27624],{"type":21,"tag":2320,"props":27557,"children":27558},{"style":2345},[27559],{"type":26,"value":17224},{"type":21,"tag":2320,"props":27561,"children":27562},{"style":2327},[27563],{"type":26,"value":3320},{"type":21,"tag":2320,"props":27565,"children":27566},{"style":3200},[27567],{"type":26,"value":3325},{"type":21,"tag":2320,"props":27569,"children":27570},{"style":2356},[27571],{"type":26,"value":3350},{"type":21,"tag":2320,"props":27573,"children":27574},{"style":2345},[27575],{"type":26,"value":3335},{"type":21,"tag":2320,"props":27577,"children":27578},{"style":2327},[27579],{"type":26,"value":27580},"b.name",{"type":21,"tag":2320,"props":27582,"children":27583},{"style":2345},[27584],{"type":26,"value":3345},{"type":21,"tag":2320,"props":27586,"children":27587},{"style":2356},[27588],{"type":26,"value":2414},{"type":21,"tag":2320,"props":27590,"children":27591},{"style":2345},[27592],{"type":26,"value":3335},{"type":21,"tag":2320,"props":27594,"children":27595},{"style":2327},[27596],{"type":26,"value":27597},"b.num_qubits",{"type":21,"tag":2320,"props":27599,"children":27600},{"style":2345},[27601],{"type":26,"value":3345},{"type":21,"tag":2320,"props":27603,"children":27604},{"style":2356},[27605],{"type":26,"value":27606}," qubits, status: ",{"type":21,"tag":2320,"props":27608,"children":27609},{"style":2345},[27610],{"type":26,"value":3335},{"type":21,"tag":2320,"props":27612,"children":27613},{"style":2327},[27614],{"type":26,"value":27615},"b.status().status_msg",{"type":21,"tag":2320,"props":27617,"children":27618},{"style":2345},[27619],{"type":26,"value":3345},{"type":21,"tag":2320,"props":27621,"children":27622},{"style":2356},[27623],{"type":26,"value":3350},{"type":21,"tag":2320,"props":27625,"children":27626},{"style":2327},[27627],{"type":26,"value":3300},{"type":21,"tag":49,"props":27629,"children":27631},{"id":27630},"configuración-en-10-minutos",[27632],{"type":26,"value":27633},"Configuración en 10 minutos",{"type":21,"tag":17361,"props":27635,"children":27637},{"id":27636},"paso-1-crea-tu-cuenta-gratuita",[27638],{"type":26,"value":27639},"Paso 1: Crea tu cuenta gratuita",{"type":21,"tag":22,"props":27641,"children":27642},{},[27643,27644,27649],{"type":26,"value":20666},{"type":21,"tag":29,"props":27645,"children":27647},{"href":20669,"rel":27646},[33],[27648],{"type":26,"value":20673},{"type":26,"value":27650}," y crea un IBM ID gratuito. No se requiere información de pago.",{"type":21,"tag":17361,"props":27652,"children":27654},{"id":27653},"paso-2-instala-el-sdk",[27655],{"type":26,"value":27656},"Paso 2: Instala el SDK",{"type":21,"tag":2310,"props":27658,"children":27660},{"className":9743,"code":27659,"language":9745,"meta":7,"style":7},"pip install qiskit qiskit-ibm-runtime\n",[27661],{"type":21,"tag":2080,"props":27662,"children":27663},{"__ignoreMap":7},[27664],{"type":21,"tag":2320,"props":27665,"children":27666},{"class":2322,"line":2323},[27667,27671,27675,27679],{"type":21,"tag":2320,"props":27668,"children":27669},{"style":4364},[27670],{"type":26,"value":11794},{"type":21,"tag":2320,"props":27672,"children":27673},{"style":2356},[27674],{"type":26,"value":11799},{"type":21,"tag":2320,"props":27676,"children":27677},{"style":2356},[27678],{"type":26,"value":11804},{"type":21,"tag":2320,"props":27680,"children":27681},{"style":2356},[27682],{"type":26,"value":27683}," qiskit-ibm-runtime\n",{"type":21,"tag":17361,"props":27685,"children":27687},{"id":27686},"paso-3-guarda-tus-credenciales",[27688],{"type":26,"value":27689},"Paso 3: Guarda tus credenciales",{"type":21,"tag":22,"props":27691,"children":27692},{},[27693],{"type":26,"value":27694},"Después de iniciar sesión en el panel de IBM Quantum, copia tu token de API desde la página de la cuenta (Account).",{"type":21,"tag":2310,"props":27696,"children":27698},{"className":3188,"code":27697,"language":3190,"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",[27699],{"type":21,"tag":2080,"props":27700,"children":27701},{"__ignoreMap":7},[27702,27721,27728,27736,27743,27762,27782,27799],{"type":21,"tag":2320,"props":27703,"children":27704},{"class":2322,"line":2323},[27705,27709,27713,27717],{"type":21,"tag":2320,"props":27706,"children":27707},{"style":3200},[27708],{"type":26,"value":3203},{"type":21,"tag":2320,"props":27710,"children":27711},{"style":2327},[27712],{"type":26,"value":3208},{"type":21,"tag":2320,"props":27714,"children":27715},{"style":3200},[27716],{"type":26,"value":3213},{"type":21,"tag":2320,"props":27718,"children":27719},{"style":2327},[27720],{"type":26,"value":3218},{"type":21,"tag":2320,"props":27722,"children":27723},{"class":2322,"line":150},[27724],{"type":21,"tag":2320,"props":27725,"children":27726},{"emptyLinePlaceholder":3224},[27727],{"type":26,"value":3227},{"type":21,"tag":2320,"props":27729,"children":27730},{"class":2322,"line":2341},[27731],{"type":21,"tag":2320,"props":27732,"children":27733},{"style":3450},[27734],{"type":26,"value":27735},"# Run this once to save your token locally\n",{"type":21,"tag":2320,"props":27737,"children":27738},{"class":2322,"line":2403},[27739],{"type":21,"tag":2320,"props":27740,"children":27741},{"style":2327},[27742],{"type":26,"value":20726},{"type":21,"tag":2320,"props":27744,"children":27745},{"class":2322,"line":2427},[27746,27750,27754,27758],{"type":21,"tag":2320,"props":27747,"children":27748},{"style":3265},[27749],{"type":26,"value":20734},{"type":21,"tag":2320,"props":27751,"children":27752},{"style":3200},[27753],{"type":26,"value":3240},{"type":21,"tag":2320,"props":27755,"children":27756},{"style":2356},[27757],{"type":26,"value":20743},{"type":21,"tag":2320,"props":27759,"children":27760},{"style":2327},[27761],{"type":26,"value":2424},{"type":21,"tag":2320,"props":27763,"children":27764},{"class":2322,"line":854},[27765,27769,27773,27778],{"type":21,"tag":2320,"props":27766,"children":27767},{"style":3265},[27768],{"type":26,"value":20755},{"type":21,"tag":2320,"props":27770,"children":27771},{"style":3200},[27772],{"type":26,"value":3240},{"type":21,"tag":2320,"props":27774,"children":27775},{"style":2356},[27776],{"type":26,"value":27777},"\"YOUR_API_TOKEN_HERE\"",{"type":21,"tag":2320,"props":27779,"children":27780},{"style":2327},[27781],{"type":26,"value":2424},{"type":21,"tag":2320,"props":27783,"children":27784},{"class":2322,"line":171},[27785,27790,27794],{"type":21,"tag":2320,"props":27786,"children":27787},{"style":3265},[27788],{"type":26,"value":27789},"    overwrite",{"type":21,"tag":2320,"props":27791,"children":27792},{"style":3200},[27793],{"type":26,"value":3240},{"type":21,"tag":2320,"props":27795,"children":27796},{"style":2345},[27797],{"type":26,"value":27798},"True\n",{"type":21,"tag":2320,"props":27800,"children":27801},{"class":2322,"line":16},[27802],{"type":21,"tag":2320,"props":27803,"children":27804},{"style":2327},[27805],{"type":26,"value":3300},{"type":21,"tag":22,"props":27807,"children":27808},{},[27809,27811,27817],{"type":26,"value":27810},"Tus credenciales se guardan en ",{"type":21,"tag":2080,"props":27812,"children":27814},{"className":27813},[],[27815],{"type":26,"value":27816},"~\u002F.qiskit\u002Fqiskit-ibm.json",{"type":26,"value":27818},": no tendrás que volver a hacerlo.",{"type":21,"tag":17361,"props":27820,"children":27822},{"id":27821},"paso-4-envía-tu-primer-trabajo",[27823],{"type":26,"value":27824},"Paso 4: Envía tu primer trabajo",{"type":21,"tag":2310,"props":27826,"children":27828},{"className":3188,"code":27827,"language":3190,"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",[27829],{"type":21,"tag":2080,"props":27830,"children":27831},{"__ignoreMap":7},[27832,27851,27872,27901,27908,27916,27947,27962,27985,28024,28031,28039,28070,28086,28105,28124,28140,28147,28187,28194,28202,28247,28264,28271,28279,28310,28343,28350,28391,28432,28448],{"type":21,"tag":2320,"props":27833,"children":27834},{"class":2322,"line":2323},[27835,27839,27843,27847],{"type":21,"tag":2320,"props":27836,"children":27837},{"style":3200},[27838],{"type":26,"value":3203},{"type":21,"tag":2320,"props":27840,"children":27841},{"style":2327},[27842],{"type":26,"value":4295},{"type":21,"tag":2320,"props":27844,"children":27845},{"style":3200},[27846],{"type":26,"value":3213},{"type":21,"tag":2320,"props":27848,"children":27849},{"style":2327},[27850],{"type":26,"value":20318},{"type":21,"tag":2320,"props":27852,"children":27853},{"class":2322,"line":150},[27854,27858,27863,27867],{"type":21,"tag":2320,"props":27855,"children":27856},{"style":3200},[27857],{"type":26,"value":3203},{"type":21,"tag":2320,"props":27859,"children":27860},{"style":2327},[27861],{"type":26,"value":27862}," qiskit.transpiler.preset_passmanagers ",{"type":21,"tag":2320,"props":27864,"children":27865},{"style":3200},[27866],{"type":26,"value":3213},{"type":21,"tag":2320,"props":27868,"children":27869},{"style":2327},[27870],{"type":26,"value":27871}," generate_preset_pass_manager\n",{"type":21,"tag":2320,"props":27873,"children":27874},{"class":2322,"line":2341},[27875,27879,27883,27887,27892,27896],{"type":21,"tag":2320,"props":27876,"children":27877},{"style":3200},[27878],{"type":26,"value":3203},{"type":21,"tag":2320,"props":27880,"children":27881},{"style":2327},[27882],{"type":26,"value":3208},{"type":21,"tag":2320,"props":27884,"children":27885},{"style":3200},[27886],{"type":26,"value":3213},{"type":21,"tag":2320,"props":27888,"children":27889},{"style":2327},[27890],{"type":26,"value":27891}," QiskitRuntimeService, SamplerV2 ",{"type":21,"tag":2320,"props":27893,"children":27894},{"style":3200},[27895],{"type":26,"value":4278},{"type":21,"tag":2320,"props":27897,"children":27898},{"style":2327},[27899],{"type":26,"value":27900}," Sampler\n",{"type":21,"tag":2320,"props":27902,"children":27903},{"class":2322,"line":2403},[27904],{"type":21,"tag":2320,"props":27905,"children":27906},{"emptyLinePlaceholder":3224},[27907],{"type":26,"value":3227},{"type":21,"tag":2320,"props":27909,"children":27910},{"class":2322,"line":2427},[27911],{"type":21,"tag":2320,"props":27912,"children":27913},{"style":3450},[27914],{"type":26,"value":27915},"# Build a Bell state\n",{"type":21,"tag":2320,"props":27917,"children":27918},{"class":2322,"line":854},[27919,27923,27927,27931,27935,27939,27943],{"type":21,"tag":2320,"props":27920,"children":27921},{"style":2327},[27922],{"type":26,"value":7382},{"type":21,"tag":2320,"props":27924,"children":27925},{"style":3200},[27926],{"type":26,"value":3240},{"type":21,"tag":2320,"props":27928,"children":27929},{"style":2327},[27930],{"type":26,"value":5138},{"type":21,"tag":2320,"props":27932,"children":27933},{"style":2345},[27934],{"type":26,"value":2419},{"type":21,"tag":2320,"props":27936,"children":27937},{"style":2327},[27938],{"type":26,"value":1315},{"type":21,"tag":2320,"props":27940,"children":27941},{"style":2345},[27942],{"type":26,"value":2419},{"type":21,"tag":2320,"props":27944,"children":27945},{"style":2327},[27946],{"type":26,"value":3300},{"type":21,"tag":2320,"props":27948,"children":27949},{"class":2322,"line":171},[27950,27954,27958],{"type":21,"tag":2320,"props":27951,"children":27952},{"style":2327},[27953],{"type":26,"value":7398},{"type":21,"tag":2320,"props":27955,"children":27956},{"style":2345},[27957],{"type":26,"value":5168},{"type":21,"tag":2320,"props":27959,"children":27960},{"style":2327},[27961],{"type":26,"value":3300},{"type":21,"tag":2320,"props":27963,"children":27964},{"class":2322,"line":16},[27965,27969,27973,27977,27981],{"type":21,"tag":2320,"props":27966,"children":27967},{"style":2327},[27968],{"type":26,"value":20404},{"type":21,"tag":2320,"props":27970,"children":27971},{"style":2345},[27972],{"type":26,"value":5168},{"type":21,"tag":2320,"props":27974,"children":27975},{"style":2327},[27976],{"type":26,"value":1315},{"type":21,"tag":2320,"props":27978,"children":27979},{"style":2345},[27980],{"type":26,"value":3556},{"type":21,"tag":2320,"props":27982,"children":27983},{"style":2327},[27984],{"type":26,"value":3300},{"type":21,"tag":2320,"props":27986,"children":27987},{"class":2322,"line":1370},[27988,27992,27996,28000,28004,28008,28012,28016,28020],{"type":21,"tag":2320,"props":27989,"children":27990},{"style":2327},[27991],{"type":26,"value":21213},{"type":21,"tag":2320,"props":27993,"children":27994},{"style":2345},[27995],{"type":26,"value":5168},{"type":21,"tag":2320,"props":27997,"children":27998},{"style":2327},[27999],{"type":26,"value":1315},{"type":21,"tag":2320,"props":28001,"children":28002},{"style":2345},[28003],{"type":26,"value":3556},{"type":21,"tag":2320,"props":28005,"children":28006},{"style":2327},[28007],{"type":26,"value":5223},{"type":21,"tag":2320,"props":28009,"children":28010},{"style":2345},[28011],{"type":26,"value":5168},{"type":21,"tag":2320,"props":28013,"children":28014},{"style":2327},[28015],{"type":26,"value":1315},{"type":21,"tag":2320,"props":28017,"children":28018},{"style":2345},[28019],{"type":26,"value":3556},{"type":21,"tag":2320,"props":28021,"children":28022},{"style":2327},[28023],{"type":26,"value":3561},{"type":21,"tag":2320,"props":28025,"children":28026},{"class":2322,"line":3446},[28027],{"type":21,"tag":2320,"props":28028,"children":28029},{"emptyLinePlaceholder":3224},[28030],{"type":26,"value":3227},{"type":21,"tag":2320,"props":28032,"children":28033},{"class":2322,"line":3456},[28034],{"type":21,"tag":2320,"props":28035,"children":28036},{"style":3450},[28037],{"type":26,"value":28038},"# Connect and pick the least-busy free QPU\n",{"type":21,"tag":2320,"props":28040,"children":28041},{"class":2322,"line":474},[28042,28046,28050,28054,28058,28062,28066],{"type":21,"tag":2320,"props":28043,"children":28044},{"style":2327},[28045],{"type":26,"value":3235},{"type":21,"tag":2320,"props":28047,"children":28048},{"style":3200},[28049],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28051,"children":28052},{"style":2327},[28053],{"type":26,"value":27434},{"type":21,"tag":2320,"props":28055,"children":28056},{"style":3265},[28057],{"type":26,"value":27439},{"type":21,"tag":2320,"props":28059,"children":28060},{"style":3200},[28061],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28063,"children":28064},{"style":2356},[28065],{"type":26,"value":20743},{"type":21,"tag":2320,"props":28067,"children":28068},{"style":2327},[28069],{"type":26,"value":3300},{"type":21,"tag":2320,"props":28071,"children":28072},{"class":2322,"line":3516},[28073,28077,28081],{"type":21,"tag":2320,"props":28074,"children":28075},{"style":2327},[28076],{"type":26,"value":3253},{"type":21,"tag":2320,"props":28078,"children":28079},{"style":3200},[28080],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28082,"children":28083},{"style":2327},[28084],{"type":26,"value":28085}," service.least_busy(\n",{"type":21,"tag":2320,"props":28087,"children":28088},{"class":2322,"line":3564},[28089,28093,28097,28101],{"type":21,"tag":2320,"props":28090,"children":28091},{"style":3265},[28092],{"type":26,"value":27476},{"type":21,"tag":2320,"props":28094,"children":28095},{"style":3200},[28096],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28098,"children":28099},{"style":2345},[28100],{"type":26,"value":3277},{"type":21,"tag":2320,"props":28102,"children":28103},{"style":2327},[28104],{"type":26,"value":2424},{"type":21,"tag":2320,"props":28106,"children":28107},{"class":2322,"line":3606},[28108,28112,28116,28120],{"type":21,"tag":2320,"props":28109,"children":28110},{"style":3265},[28111],{"type":26,"value":27496},{"type":21,"tag":2320,"props":28113,"children":28114},{"style":3200},[28115],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28117,"children":28118},{"style":2345},[28119],{"type":26,"value":3295},{"type":21,"tag":2320,"props":28121,"children":28122},{"style":2327},[28123],{"type":26,"value":2424},{"type":21,"tag":2320,"props":28125,"children":28126},{"class":2322,"line":4631},[28127,28131,28135],{"type":21,"tag":2320,"props":28128,"children":28129},{"style":3265},[28130],{"type":26,"value":27516},{"type":21,"tag":2320,"props":28132,"children":28133},{"style":3200},[28134],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28136,"children":28137},{"style":2345},[28138],{"type":26,"value":28139},"2\n",{"type":21,"tag":2320,"props":28141,"children":28142},{"class":2322,"line":4650},[28143],{"type":21,"tag":2320,"props":28144,"children":28145},{"style":2327},[28146],{"type":26,"value":3300},{"type":21,"tag":2320,"props":28148,"children":28149},{"class":2322,"line":4658},[28150,28154,28158,28162,28167,28171,28175,28179,28183],{"type":21,"tag":2320,"props":28151,"children":28152},{"style":2345},[28153],{"type":26,"value":3315},{"type":21,"tag":2320,"props":28155,"children":28156},{"style":2327},[28157],{"type":26,"value":3320},{"type":21,"tag":2320,"props":28159,"children":28160},{"style":3200},[28161],{"type":26,"value":3325},{"type":21,"tag":2320,"props":28163,"children":28164},{"style":2356},[28165],{"type":26,"value":28166},"\"Submitting to: ",{"type":21,"tag":2320,"props":28168,"children":28169},{"style":2345},[28170],{"type":26,"value":3335},{"type":21,"tag":2320,"props":28172,"children":28173},{"style":2327},[28174],{"type":26,"value":3340},{"type":21,"tag":2320,"props":28176,"children":28177},{"style":2345},[28178],{"type":26,"value":3345},{"type":21,"tag":2320,"props":28180,"children":28181},{"style":2356},[28182],{"type":26,"value":3350},{"type":21,"tag":2320,"props":28184,"children":28185},{"style":2327},[28186],{"type":26,"value":3300},{"type":21,"tag":2320,"props":28188,"children":28189},{"class":2322,"line":4689},[28190],{"type":21,"tag":2320,"props":28191,"children":28192},{"emptyLinePlaceholder":3224},[28193],{"type":26,"value":3227},{"type":21,"tag":2320,"props":28195,"children":28196},{"class":2322,"line":4734},[28197],{"type":21,"tag":2320,"props":28198,"children":28199},{"style":3450},[28200],{"type":26,"value":28201},"# Transpile for the target device\n",{"type":21,"tag":2320,"props":28203,"children":28204},{"class":2322,"line":4773},[28205,28209,28213,28218,28222,28226,28231,28235,28239,28243],{"type":21,"tag":2320,"props":28206,"children":28207},{"style":2327},[28208],{"type":26,"value":5845},{"type":21,"tag":2320,"props":28210,"children":28211},{"style":3200},[28212],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28214,"children":28215},{"style":2327},[28216],{"type":26,"value":28217}," generate_preset_pass_manager(",{"type":21,"tag":2320,"props":28219,"children":28220},{"style":3265},[28221],{"type":26,"value":18469},{"type":21,"tag":2320,"props":28223,"children":28224},{"style":3200},[28225],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28227,"children":28228},{"style":2327},[28229],{"type":26,"value":28230},"backend, ",{"type":21,"tag":2320,"props":28232,"children":28233},{"style":3265},[28234],{"type":26,"value":6275},{"type":21,"tag":2320,"props":28236,"children":28237},{"style":3200},[28238],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28240,"children":28241},{"style":2345},[28242],{"type":26,"value":3556},{"type":21,"tag":2320,"props":28244,"children":28245},{"style":2327},[28246],{"type":26,"value":3300},{"type":21,"tag":2320,"props":28248,"children":28249},{"class":2322,"line":4791},[28250,28255,28259],{"type":21,"tag":2320,"props":28251,"children":28252},{"style":2327},[28253],{"type":26,"value":28254},"isa_qc ",{"type":21,"tag":2320,"props":28256,"children":28257},{"style":3200},[28258],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28260,"children":28261},{"style":2327},[28262],{"type":26,"value":28263}," pm.run(qc)\n",{"type":21,"tag":2320,"props":28265,"children":28266},{"class":2322,"line":4865},[28267],{"type":21,"tag":2320,"props":28268,"children":28269},{"emptyLinePlaceholder":3224},[28270],{"type":26,"value":3227},{"type":21,"tag":2320,"props":28272,"children":28273},{"class":2322,"line":4893},[28274],{"type":21,"tag":2320,"props":28275,"children":28276},{"style":3450},[28277],{"type":26,"value":28278},"# Submit\n",{"type":21,"tag":2320,"props":28280,"children":28281},{"class":2322,"line":4922},[28282,28287,28291,28296,28301,28305],{"type":21,"tag":2320,"props":28283,"children":28284},{"style":2327},[28285],{"type":26,"value":28286},"sampler ",{"type":21,"tag":2320,"props":28288,"children":28289},{"style":3200},[28290],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28292,"children":28293},{"style":2327},[28294],{"type":26,"value":28295}," Sampler(",{"type":21,"tag":2320,"props":28297,"children":28298},{"style":3265},[28299],{"type":26,"value":28300},"mode",{"type":21,"tag":2320,"props":28302,"children":28303},{"style":3200},[28304],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28306,"children":28307},{"style":2327},[28308],{"type":26,"value":28309},"backend)\n",{"type":21,"tag":2320,"props":28311,"children":28312},{"class":2322,"line":4931},[28313,28318,28322,28327,28331,28335,28339],{"type":21,"tag":2320,"props":28314,"children":28315},{"style":2327},[28316],{"type":26,"value":28317},"job ",{"type":21,"tag":2320,"props":28319,"children":28320},{"style":3200},[28321],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28323,"children":28324},{"style":2327},[28325],{"type":26,"value":28326}," sampler.run([isa_qc], ",{"type":21,"tag":2320,"props":28328,"children":28329},{"style":3265},[28330],{"type":26,"value":4123},{"type":21,"tag":2320,"props":28332,"children":28333},{"style":3200},[28334],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28336,"children":28337},{"style":2345},[28338],{"type":26,"value":2483},{"type":21,"tag":2320,"props":28340,"children":28341},{"style":2327},[28342],{"type":26,"value":3300},{"type":21,"tag":2320,"props":28344,"children":28345},{"class":2322,"line":4959},[28346],{"type":21,"tag":2320,"props":28347,"children":28348},{"emptyLinePlaceholder":3224},[28349],{"type":26,"value":3227},{"type":21,"tag":2320,"props":28351,"children":28352},{"class":2322,"line":4990},[28353,28357,28361,28365,28370,28374,28379,28383,28387],{"type":21,"tag":2320,"props":28354,"children":28355},{"style":2345},[28356],{"type":26,"value":3315},{"type":21,"tag":2320,"props":28358,"children":28359},{"style":2327},[28360],{"type":26,"value":3320},{"type":21,"tag":2320,"props":28362,"children":28363},{"style":3200},[28364],{"type":26,"value":3325},{"type":21,"tag":2320,"props":28366,"children":28367},{"style":2356},[28368],{"type":26,"value":28369},"\"Job ID: ",{"type":21,"tag":2320,"props":28371,"children":28372},{"style":2345},[28373],{"type":26,"value":3335},{"type":21,"tag":2320,"props":28375,"children":28376},{"style":2327},[28377],{"type":26,"value":28378},"job.job_id()",{"type":21,"tag":2320,"props":28380,"children":28381},{"style":2345},[28382],{"type":26,"value":3345},{"type":21,"tag":2320,"props":28384,"children":28385},{"style":2356},[28386],{"type":26,"value":3350},{"type":21,"tag":2320,"props":28388,"children":28389},{"style":2327},[28390],{"type":26,"value":3300},{"type":21,"tag":2320,"props":28392,"children":28393},{"class":2322,"line":5012},[28394,28398,28402,28406,28411,28415,28420,28424,28428],{"type":21,"tag":2320,"props":28395,"children":28396},{"style":2345},[28397],{"type":26,"value":3315},{"type":21,"tag":2320,"props":28399,"children":28400},{"style":2327},[28401],{"type":26,"value":3320},{"type":21,"tag":2320,"props":28403,"children":28404},{"style":3200},[28405],{"type":26,"value":3325},{"type":21,"tag":2320,"props":28407,"children":28408},{"style":2356},[28409],{"type":26,"value":28410},"\"Status: ",{"type":21,"tag":2320,"props":28412,"children":28413},{"style":2345},[28414],{"type":26,"value":3335},{"type":21,"tag":2320,"props":28416,"children":28417},{"style":2327},[28418],{"type":26,"value":28419},"job.status()",{"type":21,"tag":2320,"props":28421,"children":28422},{"style":2345},[28423],{"type":26,"value":3345},{"type":21,"tag":2320,"props":28425,"children":28426},{"style":2356},[28427],{"type":26,"value":3350},{"type":21,"tag":2320,"props":28429,"children":28430},{"style":2327},[28431],{"type":26,"value":3300},{"type":21,"tag":2320,"props":28433,"children":28434},{"class":2322,"line":5058},[28435,28439,28443],{"type":21,"tag":2320,"props":28436,"children":28437},{"style":2327},[28438],{"type":26,"value":19342},{"type":21,"tag":2320,"props":28440,"children":28441},{"style":3200},[28442],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28444,"children":28445},{"style":2327},[28446],{"type":26,"value":28447}," job.result()\n",{"type":21,"tag":2320,"props":28449,"children":28450},{"class":2322,"line":5071},[28451,28455,28460,28464],{"type":21,"tag":2320,"props":28452,"children":28453},{"style":2345},[28454],{"type":26,"value":3315},{"type":21,"tag":2320,"props":28456,"children":28457},{"style":2327},[28458],{"type":26,"value":28459},"(result[",{"type":21,"tag":2320,"props":28461,"children":28462},{"style":2345},[28463],{"type":26,"value":5168},{"type":21,"tag":2320,"props":28465,"children":28466},{"style":2327},[28467],{"type":26,"value":28468},"].data.c.get_counts())\n",{"type":21,"tag":49,"props":28470,"children":28472},{"id":28471},"cómo-entender-los-tiempos-de-espera",[28473],{"type":26,"value":28474},"Cómo entender los tiempos de espera",{"type":21,"tag":22,"props":28476,"children":28477},{},[28478],{"type":26,"value":28479},"El tiempo de espera en cola es la frustración más común con el nivel gratuito. Esto es lo que ocurre:",{"type":21,"tag":3118,"props":28481,"children":28482},{},[28483,28488,28501],{"type":21,"tag":3122,"props":28484,"children":28485},{},[28486],{"type":26,"value":28487},"Estás compartiendo la QPU con todos los demás usuarios del Open Plan a nivel mundial",{"type":21,"tag":3122,"props":28489,"children":28490},{},[28491,28493,28499],{"type":26,"value":28492},"Los trabajos se ponen en cola por sistema: ",{"type":21,"tag":2080,"props":28494,"children":28496},{"className":28495},[],[28497],{"type":26,"value":28498},"least_busy()",{"type":26,"value":28500}," ayuda a encontrar la espera más corta",{"type":21,"tag":3122,"props":28502,"children":28503},{},[28504],{"type":26,"value":28505},"Espera típica: de 5 minutos a 2 horas según la carga del sistema",{"type":21,"tag":22,"props":28507,"children":28508},{},[28509],{"type":21,"tag":180,"props":28510,"children":28511},{},[28512],{"type":26,"value":28513},"Consejos para minimizar el tiempo de espera:",{"type":21,"tag":3118,"props":28515,"children":28516},{},[28517,28522,28535,28540],{"type":21,"tag":3122,"props":28518,"children":28519},{},[28520],{"type":26,"value":28521},"Ejecuta durante las horas de menor actividad (mañana europea = noche americana)",{"type":21,"tag":3122,"props":28523,"children":28524},{},[28525,28527,28533],{"type":26,"value":28526},"Usa ",{"type":21,"tag":2080,"props":28528,"children":28530},{"className":28529},[],[28531],{"type":26,"value":28532},"service.least_busy()",{"type":26,"value":28534}," en lugar de apuntar a un sistema específico",{"type":21,"tag":3122,"props":28536,"children":28537},{},[28538],{"type":26,"value":28539},"Para el desarrollo, usa el simulador Aer localmente, y envía a hardware real solo para la validación final",{"type":21,"tag":3122,"props":28541,"children":28542},{},[28543],{"type":26,"value":28544},"Agrupa varios circuitos en un único trabajo usando la entrada de lista de SamplerV2",{"type":21,"tag":49,"props":28546,"children":28548},{"id":28547},"usar-en-su-lugar-los-simuladores-gratuitos-en-la-nube",[28549],{"type":26,"value":28550},"Usar en su lugar los simuladores gratuitos en la nube",{"type":21,"tag":22,"props":28552,"children":28553},{},[28554],{"type":26,"value":28555},"Para la mayor parte del trabajo de desarrollo, los simuladores alojados en la nube de IBM son más rápidos que hacer cola para el hardware real:",{"type":21,"tag":2310,"props":28557,"children":28559},{"className":3188,"code":28558,"language":3190,"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",[28560],{"type":21,"tag":2080,"props":28561,"children":28562},{"__ignoreMap":7},[28563,28571,28596,28603,28611],{"type":21,"tag":2320,"props":28564,"children":28565},{"class":2322,"line":2323},[28566],{"type":21,"tag":2320,"props":28567,"children":28568},{"style":3450},[28569],{"type":26,"value":28570},"# IBM cloud QASM simulator (up to 32 qubits, no queue)\n",{"type":21,"tag":2320,"props":28572,"children":28573},{"class":2322,"line":150},[28574,28578,28582,28587,28592],{"type":21,"tag":2320,"props":28575,"children":28576},{"style":2327},[28577],{"type":26,"value":3253},{"type":21,"tag":2320,"props":28579,"children":28580},{"style":3200},[28581],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28583,"children":28584},{"style":2327},[28585],{"type":26,"value":28586}," service.backend(",{"type":21,"tag":2320,"props":28588,"children":28589},{"style":2356},[28590],{"type":26,"value":28591},"\"ibmq_qasm_simulator\"",{"type":21,"tag":2320,"props":28593,"children":28594},{"style":2327},[28595],{"type":26,"value":3300},{"type":21,"tag":2320,"props":28597,"children":28598},{"class":2322,"line":2341},[28599],{"type":21,"tag":2320,"props":28600,"children":28601},{"emptyLinePlaceholder":3224},[28602],{"type":26,"value":3227},{"type":21,"tag":2320,"props":28604,"children":28605},{"class":2322,"line":2403},[28606],{"type":21,"tag":2320,"props":28607,"children":28608},{"style":3450},[28609],{"type":26,"value":28610},"# Or use the Statevector simulator (exact simulation)\n",{"type":21,"tag":2320,"props":28612,"children":28613},{"class":2322,"line":2427},[28614,28618,28622,28626,28631],{"type":21,"tag":2320,"props":28615,"children":28616},{"style":2327},[28617],{"type":26,"value":3253},{"type":21,"tag":2320,"props":28619,"children":28620},{"style":3200},[28621],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28623,"children":28624},{"style":2327},[28625],{"type":26,"value":28586},{"type":21,"tag":2320,"props":28627,"children":28628},{"style":2356},[28629],{"type":26,"value":28630},"\"simulator_statevector\"",{"type":21,"tag":2320,"props":28632,"children":28633},{"style":2327},[28634],{"type":26,"value":3300},{"type":21,"tag":22,"props":28636,"children":28637},{},[28638],{"type":26,"value":28639},"Estos simuladores no tienen tiempo de espera en cola y se ejecutan al instante. Usa QPU reales cuando necesites características de ruido reales o quieras hacer benchmarks en hardware real.",{"type":21,"tag":49,"props":28641,"children":28643},{"id":28642},"usar-hlquantum-con-ibm-quantum",[28644],{"type":26,"value":28645},"Usar HLQuantum con IBM Quantum",{"type":21,"tag":22,"props":28647,"children":28648},{},[28649],{"type":26,"value":28650},"Si estás usando varios SDK, HLQuantum ofrece una interfaz más limpia para el hardware de IBM:",{"type":21,"tag":2310,"props":28652,"children":28654},{"className":3188,"code":28653,"language":3190,"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",[28655],{"type":21,"tag":2080,"props":28656,"children":28657},{"__ignoreMap":7},[28658,28677,28684,28707,28738,28745,28753,28769,28777,28797,28824,28844,28861,28868],{"type":21,"tag":2320,"props":28659,"children":28660},{"class":2322,"line":2323},[28661,28665,28669,28673],{"type":21,"tag":2320,"props":28662,"children":28663},{"style":3200},[28664],{"type":26,"value":3213},{"type":21,"tag":2320,"props":28666,"children":28667},{"style":2327},[28668],{"type":26,"value":19310},{"type":21,"tag":2320,"props":28670,"children":28671},{"style":3200},[28672],{"type":26,"value":4278},{"type":21,"tag":2320,"props":28674,"children":28675},{"style":2327},[28676],{"type":26,"value":19319},{"type":21,"tag":2320,"props":28678,"children":28679},{"class":2322,"line":150},[28680],{"type":21,"tag":2320,"props":28681,"children":28682},{"emptyLinePlaceholder":3224},[28683],{"type":26,"value":3227},{"type":21,"tag":2320,"props":28685,"children":28686},{"class":2322,"line":2341},[28687,28691,28695,28699,28703],{"type":21,"tag":2320,"props":28688,"children":28689},{"style":2327},[28690],{"type":26,"value":7382},{"type":21,"tag":2320,"props":28692,"children":28693},{"style":3200},[28694],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28696,"children":28697},{"style":2327},[28698],{"type":26,"value":21373},{"type":21,"tag":2320,"props":28700,"children":28701},{"style":2345},[28702],{"type":26,"value":2419},{"type":21,"tag":2320,"props":28704,"children":28705},{"style":2327},[28706],{"type":26,"value":3300},{"type":21,"tag":2320,"props":28708,"children":28709},{"class":2322,"line":2403},[28710,28714,28718,28722,28726,28730,28734],{"type":21,"tag":2320,"props":28711,"children":28712},{"style":2327},[28713],{"type":26,"value":7398},{"type":21,"tag":2320,"props":28715,"children":28716},{"style":2345},[28717],{"type":26,"value":5168},{"type":21,"tag":2320,"props":28719,"children":28720},{"style":2327},[28721],{"type":26,"value":21397},{"type":21,"tag":2320,"props":28723,"children":28724},{"style":2345},[28725],{"type":26,"value":5168},{"type":21,"tag":2320,"props":28727,"children":28728},{"style":2327},[28729],{"type":26,"value":1315},{"type":21,"tag":2320,"props":28731,"children":28732},{"style":2345},[28733],{"type":26,"value":3556},{"type":21,"tag":2320,"props":28735,"children":28736},{"style":2327},[28737],{"type":26,"value":21414},{"type":21,"tag":2320,"props":28739,"children":28740},{"class":2322,"line":2427},[28741],{"type":21,"tag":2320,"props":28742,"children":28743},{"emptyLinePlaceholder":3224},[28744],{"type":26,"value":3227},{"type":21,"tag":2320,"props":28746,"children":28747},{"class":2322,"line":854},[28748],{"type":21,"tag":2320,"props":28749,"children":28750},{"style":3450},[28751],{"type":26,"value":28752},"# Run on IBM's free QPU\n",{"type":21,"tag":2320,"props":28754,"children":28755},{"class":2322,"line":171},[28756,28760,28764],{"type":21,"tag":2320,"props":28757,"children":28758},{"style":2327},[28759],{"type":26,"value":19342},{"type":21,"tag":2320,"props":28761,"children":28762},{"style":3200},[28763],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28765,"children":28766},{"style":2327},[28767],{"type":26,"value":28768}," hlq.run(\n",{"type":21,"tag":2320,"props":28770,"children":28771},{"class":2322,"line":16},[28772],{"type":21,"tag":2320,"props":28773,"children":28774},{"style":2327},[28775],{"type":26,"value":28776},"    qc,\n",{"type":21,"tag":2320,"props":28778,"children":28779},{"class":2322,"line":1370},[28780,28784,28788,28793],{"type":21,"tag":2320,"props":28781,"children":28782},{"style":3265},[28783],{"type":26,"value":22880},{"type":21,"tag":2320,"props":28785,"children":28786},{"style":3200},[28787],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28789,"children":28790},{"style":2356},[28791],{"type":26,"value":28792},"\"qiskit\"",{"type":21,"tag":2320,"props":28794,"children":28795},{"style":2327},[28796],{"type":26,"value":2424},{"type":21,"tag":2320,"props":28798,"children":28799},{"class":2322,"line":3446},[28800,28805,28809,28814,28819],{"type":21,"tag":2320,"props":28801,"children":28802},{"style":3265},[28803],{"type":26,"value":28804},"    device",{"type":21,"tag":2320,"props":28806,"children":28807},{"style":3200},[28808],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28810,"children":28811},{"style":2356},[28812],{"type":26,"value":28813},"\"ibm_sherbrooke\"",{"type":21,"tag":2320,"props":28815,"children":28816},{"style":2327},[28817],{"type":26,"value":28818},",  ",{"type":21,"tag":2320,"props":28820,"children":28821},{"style":3450},[28822],{"type":26,"value":28823},"# or use \"auto\" for least busy\n",{"type":21,"tag":2320,"props":28825,"children":28826},{"class":2322,"line":3456},[28827,28832,28836,28840],{"type":21,"tag":2320,"props":28828,"children":28829},{"style":3265},[28830],{"type":26,"value":28831},"    shots",{"type":21,"tag":2320,"props":28833,"children":28834},{"style":3200},[28835],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28837,"children":28838},{"style":2345},[28839],{"type":26,"value":2483},{"type":21,"tag":2320,"props":28841,"children":28842},{"style":2327},[28843],{"type":26,"value":2424},{"type":21,"tag":2320,"props":28845,"children":28846},{"class":2322,"line":474},[28847,28852,28856],{"type":21,"tag":2320,"props":28848,"children":28849},{"style":3265},[28850],{"type":26,"value":28851},"    error_mitigation",{"type":21,"tag":2320,"props":28853,"children":28854},{"style":3200},[28855],{"type":26,"value":3240},{"type":21,"tag":2320,"props":28857,"children":28858},{"style":2356},[28859],{"type":26,"value":28860},"\"zne\"\n",{"type":21,"tag":2320,"props":28862,"children":28863},{"class":2322,"line":3516},[28864],{"type":21,"tag":2320,"props":28865,"children":28866},{"style":2327},[28867],{"type":26,"value":3300},{"type":21,"tag":2320,"props":28869,"children":28870},{"class":2322,"line":3564},[28871,28875],{"type":21,"tag":2320,"props":28872,"children":28873},{"style":2345},[28874],{"type":26,"value":3315},{"type":21,"tag":2320,"props":28876,"children":28877},{"style":2327},[28878],{"type":26,"value":28879},"(result)\n",{"type":21,"tag":22,"props":28881,"children":28882},{},[28883,28885,28890],{"type":26,"value":28884},"HLQuantum se encarga automáticamente de la transpilación, el envío de trabajos y el análisis de resultados. Consulta la ",{"type":21,"tag":29,"props":28886,"children":28887},{"href":7091},[28888],{"type":26,"value":28889},"guía completa del SDK de Qiskit",{"type":26,"value":28891}," para conocer la configuración avanzada.",{"type":21,"tag":2694,"props":28893,"children":28894},{},[28895],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":28897},[28898,28899,28900,28901,28907,28908,28909],{"id":27117,"depth":150,"text":27120},{"id":27194,"depth":150,"text":27197},{"id":27268,"depth":150,"text":27271},{"id":27630,"depth":150,"text":27633,"children":28902},[28903,28904,28905,28906],{"id":27636,"depth":2341,"text":27639},{"id":27653,"depth":2341,"text":27656},{"id":27686,"depth":2341,"text":27689},{"id":27821,"depth":2341,"text":27824},{"id":28471,"depth":150,"text":28474},{"id":28547,"depth":150,"text":28550},{"id":28642,"depth":150,"text":28645},"content:es:blog:ibm-quantum-free-tier-2026.md","es\u002Fblog\u002Fibm-quantum-free-tier-2026.md","es\u002Fblog\u002Fibm-quantum-free-tier-2026",{"_path":28914,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":28915,"description":28916,"date":27105,"author":11,"tags":28917,"readingTime":3456,"body":28918,"_type":156,"_id":31650,"_source":158,"_file":31651,"_stem":31652,"_extension":161},"\u002Fes\u002Fblog\u002Fqaoa-max-cut-tutorial","QAOA explicado: resolviendo Max-Cut paso a paso","Un recorrido práctico por el Algoritmo Cuántico Aproximado de Optimización aplicado al problema de grafos Max-Cut — con código Python completo usando Qiskit, PennyLane y HLQuantum.",[7148,2024,1369,13785],{"type":18,"children":28919,"toc":31640},[28920,28925,28930,28936,28941,28946,28954,28973,28979,28984,29021,29048,29054,30193,30213,30219,30224,30822,30827,30835,30853,30859,30864,31162,31167,31372,31378,31398,31492,31519,31525,31533,31551,31559,31572,31589,31595,31636],{"type":21,"tag":22,"props":28921,"children":28922},{},[28923],{"type":26,"value":28924},"QAOA (Quantum Approximate Optimization Algorithm) es uno de los algoritmos cuánticos de corto plazo con más expectación — y con razón. Es un candidato genuino a la ventaja cuántica en problemas de optimización combinatoria, se ejecuta en el hardware NISQ actual y es lo bastante accesible como para implementarlo en una tarde.",{"type":21,"tag":22,"props":28926,"children":28927},{},[28928],{"type":26,"value":28929},"Esta guía construye la canalización completa de QAOA desde cero, usando Max-Cut como problema de ejemplo. Al final entenderás qué hace realmente QAOA, cómo implementarlo y cuándo vale la pena usarlo.",{"type":21,"tag":49,"props":28931,"children":28933},{"id":28932},"qué-es-max-cut",[28934],{"type":26,"value":28935},"¿Qué es Max-Cut?",{"type":21,"tag":22,"props":28937,"children":28938},{},[28939],{"type":26,"value":28940},"Max-Cut es un problema de partición de grafos: dado un grafo, se dividen los nodos en dos grupos (0 y 1) para maximizar el número de aristas que cruzan entre grupos. Es NP-difícil en general, aparece en el diseño de chips VLSI, en la agrupación (clustering) y en el análisis de redes, y se mapea limpiamente sobre el hardware cuántico.",{"type":21,"tag":22,"props":28942,"children":28943},{},[28944],{"type":26,"value":28945},"Aquí tienes un grafo sencillo de 4 nodos:",{"type":21,"tag":2310,"props":28947,"children":28949},{"code":28948},"0 --- 1\n|   \\ |\n3 --- 2\n",[28950],{"type":21,"tag":2080,"props":28951,"children":28952},{"__ignoreMap":7},[28953],{"type":26,"value":28948},{"type":21,"tag":22,"props":28955,"children":28956},{},[28957,28959,28965,28966,28971],{"type":26,"value":28958},"El corte máximo de este grafo es 4 (las aristas 0-1, 1-2, 2-3, 3-0 cruzan todas). Nuestro objetivo: encontrar la cadena de bits ",{"type":21,"tag":2080,"props":28960,"children":28962},{"className":28961},[],[28963],{"type":26,"value":28964},"0101",{"type":26,"value":18816},{"type":21,"tag":2080,"props":28967,"children":28969},{"className":28968},[],[28970],{"type":26,"value":17430},{"type":26,"value":28972}," que logra esto.",{"type":21,"tag":49,"props":28974,"children":28976},{"id":28975},"la-idea-de-qaoa",[28977],{"type":26,"value":28978},"La idea de QAOA",{"type":21,"tag":22,"props":28980,"children":28981},{},[28982],{"type":26,"value":28983},"QAOA es un algoritmo híbrido variacional. Alterna dos operaciones parametrizadas:",{"type":21,"tag":7007,"props":28985,"children":28986},{},[28987,29004],{"type":21,"tag":3122,"props":28988,"children":28989},{},[28990,28995,28996,29002],{"type":21,"tag":180,"props":28991,"children":28992},{},[28993],{"type":26,"value":28994},"Unitaria del problema",{"type":26,"value":1307},{"type":21,"tag":2080,"props":28997,"children":28999},{"className":28998},[],[29000],{"type":26,"value":29001},"U_C(γ)",{"type":26,"value":29003}," — codifica la función de coste (cruces de aristas) como retorno de fase (phase kickback)",{"type":21,"tag":3122,"props":29005,"children":29006},{},[29007,29012,29013,29019],{"type":21,"tag":180,"props":29008,"children":29009},{},[29010],{"type":26,"value":29011},"Unitaria mezcladora",{"type":26,"value":1307},{"type":21,"tag":2080,"props":29014,"children":29016},{"className":29015},[],[29017],{"type":26,"value":29018},"U_B(β)",{"type":26,"value":29020}," — mezcla entre soluciones (rotaciones X)",{"type":21,"tag":22,"props":29022,"children":29023},{},[29024,29025,29030,29032,29038,29040,29046],{"type":26,"value":25617},{"type":21,"tag":2080,"props":29026,"children":29028},{"className":29027},[],[29029],{"type":26,"value":22},{"type":26,"value":29031}," capas de estas unitarias alternadas, QAOA prepara un estado cuántico cuya medición probablemente sea una buena solución. Un optimizador clásico ajusta los ",{"type":21,"tag":2080,"props":29033,"children":29035},{"className":29034},[],[29036],{"type":26,"value":29037},"2p",{"type":26,"value":29039}," ángulos ",{"type":21,"tag":2080,"props":29041,"children":29043},{"className":29042},[],[29044],{"type":26,"value":29045},"(γ, β)",{"type":26,"value":29047}," para maximizar el valor de corte esperado.",{"type":21,"tag":49,"props":29049,"children":29051},{"id":29050},"construyendo-qaoa-con-pennylane",[29052],{"type":26,"value":29053},"Construyendo QAOA con PennyLane",{"type":21,"tag":2310,"props":29055,"children":29057},{"code":29056,"language":3190,"meta":7,"className":3188,"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",[29058],{"type":21,"tag":2080,"props":29059,"children":29060},{"__ignoreMap":7},[29061,29080,29099,29120,29127,29135,29218,29233,29240,29275,29282,29299,29307,29328,29348,29382,29401,29408,29425,29433,29456,29489,29496,29507,29536,29553,29570,29578,29601,29621,29629,29654,29662,29670,29697,29704,29732,29740,29757,29774,29799,29849,29911,29938,29959,29966,29974,29990,30028,30061,30095,30102,30143],{"type":21,"tag":2320,"props":29062,"children":29063},{"class":2322,"line":2323},[29064,29068,29072,29076],{"type":21,"tag":2320,"props":29065,"children":29066},{"style":3200},[29067],{"type":26,"value":3213},{"type":21,"tag":2320,"props":29069,"children":29070},{"style":2327},[29071],{"type":26,"value":14092},{"type":21,"tag":2320,"props":29073,"children":29074},{"style":3200},[29075],{"type":26,"value":4278},{"type":21,"tag":2320,"props":29077,"children":29078},{"style":2327},[29079],{"type":26,"value":14101},{"type":21,"tag":2320,"props":29081,"children":29082},{"class":2322,"line":150},[29083,29087,29091,29095],{"type":21,"tag":2320,"props":29084,"children":29085},{"style":3200},[29086],{"type":26,"value":3213},{"type":21,"tag":2320,"props":29088,"children":29089},{"style":2327},[29090],{"type":26,"value":4273},{"type":21,"tag":2320,"props":29092,"children":29093},{"style":3200},[29094],{"type":26,"value":4278},{"type":21,"tag":2320,"props":29096,"children":29097},{"style":2327},[29098],{"type":26,"value":4283},{"type":21,"tag":2320,"props":29100,"children":29101},{"class":2322,"line":2341},[29102,29106,29111,29115],{"type":21,"tag":2320,"props":29103,"children":29104},{"style":3200},[29105],{"type":26,"value":3203},{"type":21,"tag":2320,"props":29107,"children":29108},{"style":2327},[29109],{"type":26,"value":29110}," scipy.optimize ",{"type":21,"tag":2320,"props":29112,"children":29113},{"style":3200},[29114],{"type":26,"value":3213},{"type":21,"tag":2320,"props":29116,"children":29117},{"style":2327},[29118],{"type":26,"value":29119}," minimize\n",{"type":21,"tag":2320,"props":29121,"children":29122},{"class":2322,"line":2403},[29123],{"type":21,"tag":2320,"props":29124,"children":29125},{"emptyLinePlaceholder":3224},[29126],{"type":26,"value":3227},{"type":21,"tag":2320,"props":29128,"children":29129},{"class":2322,"line":2427},[29130],{"type":21,"tag":2320,"props":29131,"children":29132},{"style":3450},[29133],{"type":26,"value":29134},"# Graph edges\n",{"type":21,"tag":2320,"props":29136,"children":29137},{"class":2322,"line":854},[29138,29143,29147,29152,29156,29160,29164,29169,29173,29177,29181,29185,29189,29193,29197,29201,29205,29209,29213],{"type":21,"tag":2320,"props":29139,"children":29140},{"style":2327},[29141],{"type":26,"value":29142},"edges ",{"type":21,"tag":2320,"props":29144,"children":29145},{"style":3200},[29146],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29148,"children":29149},{"style":2327},[29150],{"type":26,"value":29151}," [(",{"type":21,"tag":2320,"props":29153,"children":29154},{"style":2345},[29155],{"type":26,"value":5168},{"type":21,"tag":2320,"props":29157,"children":29158},{"style":2327},[29159],{"type":26,"value":1315},{"type":21,"tag":2320,"props":29161,"children":29162},{"style":2345},[29163],{"type":26,"value":3556},{"type":21,"tag":2320,"props":29165,"children":29166},{"style":2327},[29167],{"type":26,"value":29168},"), (",{"type":21,"tag":2320,"props":29170,"children":29171},{"style":2345},[29172],{"type":26,"value":3556},{"type":21,"tag":2320,"props":29174,"children":29175},{"style":2327},[29176],{"type":26,"value":1315},{"type":21,"tag":2320,"props":29178,"children":29179},{"style":2345},[29180],{"type":26,"value":2419},{"type":21,"tag":2320,"props":29182,"children":29183},{"style":2327},[29184],{"type":26,"value":29168},{"type":21,"tag":2320,"props":29186,"children":29187},{"style":2345},[29188],{"type":26,"value":2419},{"type":21,"tag":2320,"props":29190,"children":29191},{"style":2327},[29192],{"type":26,"value":1315},{"type":21,"tag":2320,"props":29194,"children":29195},{"style":2345},[29196],{"type":26,"value":6511},{"type":21,"tag":2320,"props":29198,"children":29199},{"style":2327},[29200],{"type":26,"value":29168},{"type":21,"tag":2320,"props":29202,"children":29203},{"style":2345},[29204],{"type":26,"value":6511},{"type":21,"tag":2320,"props":29206,"children":29207},{"style":2327},[29208],{"type":26,"value":1315},{"type":21,"tag":2320,"props":29210,"children":29211},{"style":2345},[29212],{"type":26,"value":5168},{"type":21,"tag":2320,"props":29214,"children":29215},{"style":2327},[29216],{"type":26,"value":29217},")]\n",{"type":21,"tag":2320,"props":29219,"children":29220},{"class":2322,"line":171},[29221,29225,29229],{"type":21,"tag":2320,"props":29222,"children":29223},{"style":2327},[29224],{"type":26,"value":14185},{"type":21,"tag":2320,"props":29226,"children":29227},{"style":3200},[29228],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29230,"children":29231},{"style":2345},[29232],{"type":26,"value":12467},{"type":21,"tag":2320,"props":29234,"children":29235},{"class":2322,"line":16},[29236],{"type":21,"tag":2320,"props":29237,"children":29238},{"emptyLinePlaceholder":3224},[29239],{"type":26,"value":3227},{"type":21,"tag":2320,"props":29241,"children":29242},{"class":2322,"line":1370},[29243,29247,29251,29255,29259,29263,29267,29271],{"type":21,"tag":2320,"props":29244,"children":29245},{"style":2327},[29246],{"type":26,"value":14225},{"type":21,"tag":2320,"props":29248,"children":29249},{"style":3200},[29250],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29252,"children":29253},{"style":2327},[29254],{"type":26,"value":14234},{"type":21,"tag":2320,"props":29256,"children":29257},{"style":2356},[29258],{"type":26,"value":14239},{"type":21,"tag":2320,"props":29260,"children":29261},{"style":2327},[29262],{"type":26,"value":1315},{"type":21,"tag":2320,"props":29264,"children":29265},{"style":3265},[29266],{"type":26,"value":14248},{"type":21,"tag":2320,"props":29268,"children":29269},{"style":3200},[29270],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29272,"children":29273},{"style":2327},[29274],{"type":26,"value":14257},{"type":21,"tag":2320,"props":29276,"children":29277},{"class":2322,"line":3446},[29278],{"type":21,"tag":2320,"props":29279,"children":29280},{"emptyLinePlaceholder":3224},[29281],{"type":26,"value":3227},{"type":21,"tag":2320,"props":29283,"children":29284},{"class":2322,"line":3456},[29285,29289,29294],{"type":21,"tag":2320,"props":29286,"children":29287},{"style":3200},[29288],{"type":26,"value":4361},{"type":21,"tag":2320,"props":29290,"children":29291},{"style":4364},[29292],{"type":26,"value":29293}," cost_unitary",{"type":21,"tag":2320,"props":29295,"children":29296},{"style":2327},[29297],{"type":26,"value":29298},"(gamma):\n",{"type":21,"tag":2320,"props":29300,"children":29301},{"class":2322,"line":474},[29302],{"type":21,"tag":2320,"props":29303,"children":29304},{"style":2356},[29305],{"type":26,"value":29306},"    \"\"\"Encode the Max-Cut cost into phases.\"\"\"\n",{"type":21,"tag":2320,"props":29308,"children":29309},{"class":2322,"line":3516},[29310,29314,29319,29323],{"type":21,"tag":2320,"props":29311,"children":29312},{"style":3200},[29313],{"type":26,"value":4740},{"type":21,"tag":2320,"props":29315,"children":29316},{"style":2327},[29317],{"type":26,"value":29318}," u, v ",{"type":21,"tag":2320,"props":29320,"children":29321},{"style":3200},[29322],{"type":26,"value":3503},{"type":21,"tag":2320,"props":29324,"children":29325},{"style":2327},[29326],{"type":26,"value":29327}," edges:\n",{"type":21,"tag":2320,"props":29329,"children":29330},{"class":2322,"line":3564},[29331,29335,29339,29343],{"type":21,"tag":2320,"props":29332,"children":29333},{"style":2327},[29334],{"type":26,"value":26668},{"type":21,"tag":2320,"props":29336,"children":29337},{"style":3265},[29338],{"type":26,"value":14248},{"type":21,"tag":2320,"props":29340,"children":29341},{"style":3200},[29342],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29344,"children":29345},{"style":2327},[29346],{"type":26,"value":29347},"[u, v])\n",{"type":21,"tag":2320,"props":29349,"children":29350},{"class":2322,"line":3606},[29351,29356,29360,29364,29369,29373,29377],{"type":21,"tag":2320,"props":29352,"children":29353},{"style":2327},[29354],{"type":26,"value":29355},"        qml.RZ(",{"type":21,"tag":2320,"props":29357,"children":29358},{"style":2345},[29359],{"type":26,"value":2419},{"type":21,"tag":2320,"props":29361,"children":29362},{"style":3200},[29363],{"type":26,"value":8345},{"type":21,"tag":2320,"props":29365,"children":29366},{"style":2327},[29367],{"type":26,"value":29368}," gamma, ",{"type":21,"tag":2320,"props":29370,"children":29371},{"style":3265},[29372],{"type":26,"value":14248},{"type":21,"tag":2320,"props":29374,"children":29375},{"style":3200},[29376],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29378,"children":29379},{"style":2327},[29380],{"type":26,"value":29381},"v)\n",{"type":21,"tag":2320,"props":29383,"children":29384},{"class":2322,"line":4631},[29385,29389,29393,29397],{"type":21,"tag":2320,"props":29386,"children":29387},{"style":2327},[29388],{"type":26,"value":26668},{"type":21,"tag":2320,"props":29390,"children":29391},{"style":3265},[29392],{"type":26,"value":14248},{"type":21,"tag":2320,"props":29394,"children":29395},{"style":3200},[29396],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29398,"children":29399},{"style":2327},[29400],{"type":26,"value":29347},{"type":21,"tag":2320,"props":29402,"children":29403},{"class":2322,"line":4650},[29404],{"type":21,"tag":2320,"props":29405,"children":29406},{"emptyLinePlaceholder":3224},[29407],{"type":26,"value":3227},{"type":21,"tag":2320,"props":29409,"children":29410},{"class":2322,"line":4658},[29411,29415,29420],{"type":21,"tag":2320,"props":29412,"children":29413},{"style":3200},[29414],{"type":26,"value":4361},{"type":21,"tag":2320,"props":29416,"children":29417},{"style":4364},[29418],{"type":26,"value":29419}," mixer_unitary",{"type":21,"tag":2320,"props":29421,"children":29422},{"style":2327},[29423],{"type":26,"value":29424},"(beta):\n",{"type":21,"tag":2320,"props":29426,"children":29427},{"class":2322,"line":4689},[29428],{"type":21,"tag":2320,"props":29429,"children":29430},{"style":2356},[29431],{"type":26,"value":29432},"    \"\"\"Apply X-rotation mixer to all qubits.\"\"\"\n",{"type":21,"tag":2320,"props":29434,"children":29435},{"class":2322,"line":4734},[29436,29440,29444,29448,29452],{"type":21,"tag":2320,"props":29437,"children":29438},{"style":3200},[29439],{"type":26,"value":4740},{"type":21,"tag":2320,"props":29441,"children":29442},{"style":2327},[29443],{"type":26,"value":4745},{"type":21,"tag":2320,"props":29445,"children":29446},{"style":3200},[29447],{"type":26,"value":3503},{"type":21,"tag":2320,"props":29449,"children":29450},{"style":2345},[29451],{"type":26,"value":3508},{"type":21,"tag":2320,"props":29453,"children":29454},{"style":2327},[29455],{"type":26,"value":26603},{"type":21,"tag":2320,"props":29457,"children":29458},{"class":2322,"line":4773},[29459,29464,29468,29472,29477,29481,29485],{"type":21,"tag":2320,"props":29460,"children":29461},{"style":2327},[29462],{"type":26,"value":29463},"        qml.RX(",{"type":21,"tag":2320,"props":29465,"children":29466},{"style":2345},[29467],{"type":26,"value":2419},{"type":21,"tag":2320,"props":29469,"children":29470},{"style":3200},[29471],{"type":26,"value":8345},{"type":21,"tag":2320,"props":29473,"children":29474},{"style":2327},[29475],{"type":26,"value":29476}," beta, ",{"type":21,"tag":2320,"props":29478,"children":29479},{"style":3265},[29480],{"type":26,"value":14248},{"type":21,"tag":2320,"props":29482,"children":29483},{"style":3200},[29484],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29486,"children":29487},{"style":2327},[29488],{"type":26,"value":26624},{"type":21,"tag":2320,"props":29490,"children":29491},{"class":2322,"line":4791},[29492],{"type":21,"tag":2320,"props":29493,"children":29494},{"emptyLinePlaceholder":3224},[29495],{"type":26,"value":3227},{"type":21,"tag":2320,"props":29497,"children":29498},{"class":2322,"line":4865},[29499,29503],{"type":21,"tag":2320,"props":29500,"children":29501},{"style":4364},[29502],{"type":26,"value":14272},{"type":21,"tag":2320,"props":29504,"children":29505},{"style":2327},[29506],{"type":26,"value":14277},{"type":21,"tag":2320,"props":29508,"children":29509},{"class":2322,"line":4893},[29510,29514,29519,29524,29528,29532],{"type":21,"tag":2320,"props":29511,"children":29512},{"style":3200},[29513],{"type":26,"value":4361},{"type":21,"tag":2320,"props":29515,"children":29516},{"style":4364},[29517],{"type":26,"value":29518}," qaoa_circuit",{"type":21,"tag":2320,"props":29520,"children":29521},{"style":2327},[29522],{"type":26,"value":29523},"(params, p",{"type":21,"tag":2320,"props":29525,"children":29526},{"style":3200},[29527],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29529,"children":29530},{"style":2345},[29531],{"type":26,"value":3556},{"type":21,"tag":2320,"props":29533,"children":29534},{"style":2327},[29535],{"type":26,"value":4414},{"type":21,"tag":2320,"props":29537,"children":29538},{"class":2322,"line":4922},[29539,29544,29548],{"type":21,"tag":2320,"props":29540,"children":29541},{"style":2327},[29542],{"type":26,"value":29543},"    gammas ",{"type":21,"tag":2320,"props":29545,"children":29546},{"style":3200},[29547],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29549,"children":29550},{"style":2327},[29551],{"type":26,"value":29552}," params[:p]\n",{"type":21,"tag":2320,"props":29554,"children":29555},{"class":2322,"line":4931},[29556,29561,29565],{"type":21,"tag":2320,"props":29557,"children":29558},{"style":2327},[29559],{"type":26,"value":29560},"    betas ",{"type":21,"tag":2320,"props":29562,"children":29563},{"style":3200},[29564],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29566,"children":29567},{"style":2327},[29568],{"type":26,"value":29569}," params[p:]\n",{"type":21,"tag":2320,"props":29571,"children":29572},{"class":2322,"line":4959},[29573],{"type":21,"tag":2320,"props":29574,"children":29575},{"style":3450},[29576],{"type":26,"value":29577},"    # Start in uniform superposition\n",{"type":21,"tag":2320,"props":29579,"children":29580},{"class":2322,"line":4990},[29581,29585,29589,29593,29597],{"type":21,"tag":2320,"props":29582,"children":29583},{"style":3200},[29584],{"type":26,"value":4740},{"type":21,"tag":2320,"props":29586,"children":29587},{"style":2327},[29588],{"type":26,"value":4745},{"type":21,"tag":2320,"props":29590,"children":29591},{"style":3200},[29592],{"type":26,"value":3503},{"type":21,"tag":2320,"props":29594,"children":29595},{"style":2345},[29596],{"type":26,"value":3508},{"type":21,"tag":2320,"props":29598,"children":29599},{"style":2327},[29600],{"type":26,"value":26603},{"type":21,"tag":2320,"props":29602,"children":29603},{"class":2322,"line":5012},[29604,29609,29613,29617],{"type":21,"tag":2320,"props":29605,"children":29606},{"style":2327},[29607],{"type":26,"value":29608},"        qml.Hadamard(",{"type":21,"tag":2320,"props":29610,"children":29611},{"style":3265},[29612],{"type":26,"value":14248},{"type":21,"tag":2320,"props":29614,"children":29615},{"style":3200},[29616],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29618,"children":29619},{"style":2327},[29620],{"type":26,"value":26624},{"type":21,"tag":2320,"props":29622,"children":29623},{"class":2322,"line":5058},[29624],{"type":21,"tag":2320,"props":29625,"children":29626},{"style":3450},[29627],{"type":26,"value":29628},"    # Alternate p layers\n",{"type":21,"tag":2320,"props":29630,"children":29631},{"class":2322,"line":5071},[29632,29636,29641,29645,29649],{"type":21,"tag":2320,"props":29633,"children":29634},{"style":3200},[29635],{"type":26,"value":4740},{"type":21,"tag":2320,"props":29637,"children":29638},{"style":2327},[29639],{"type":26,"value":29640}," layer ",{"type":21,"tag":2320,"props":29642,"children":29643},{"style":3200},[29644],{"type":26,"value":3503},{"type":21,"tag":2320,"props":29646,"children":29647},{"style":2345},[29648],{"type":26,"value":3508},{"type":21,"tag":2320,"props":29650,"children":29651},{"style":2327},[29652],{"type":26,"value":29653},"(p):\n",{"type":21,"tag":2320,"props":29655,"children":29656},{"class":2322,"line":5079},[29657],{"type":21,"tag":2320,"props":29658,"children":29659},{"style":2327},[29660],{"type":26,"value":29661},"        cost_unitary(gammas[layer])\n",{"type":21,"tag":2320,"props":29663,"children":29664},{"class":2322,"line":5097},[29665],{"type":21,"tag":2320,"props":29666,"children":29667},{"style":2327},[29668],{"type":26,"value":29669},"        mixer_unitary(betas[layer])\n",{"type":21,"tag":2320,"props":29671,"children":29672},{"class":2322,"line":5115},[29673,29677,29681,29685,29689,29693],{"type":21,"tag":2320,"props":29674,"children":29675},{"style":3200},[29676],{"type":26,"value":4586},{"type":21,"tag":2320,"props":29678,"children":29679},{"style":2327},[29680],{"type":26,"value":21831},{"type":21,"tag":2320,"props":29682,"children":29683},{"style":3265},[29684],{"type":26,"value":14248},{"type":21,"tag":2320,"props":29686,"children":29687},{"style":3200},[29688],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29690,"children":29691},{"style":2345},[29692],{"type":26,"value":4942},{"type":21,"tag":2320,"props":29694,"children":29695},{"style":2327},[29696],{"type":26,"value":14385},{"type":21,"tag":2320,"props":29698,"children":29699},{"class":2322,"line":5123},[29700],{"type":21,"tag":2320,"props":29701,"children":29702},{"emptyLinePlaceholder":3224},[29703],{"type":26,"value":3227},{"type":21,"tag":2320,"props":29705,"children":29706},{"class":2322,"line":5157},[29707,29711,29716,29720,29724,29728],{"type":21,"tag":2320,"props":29708,"children":29709},{"style":3200},[29710],{"type":26,"value":4361},{"type":21,"tag":2320,"props":29712,"children":29713},{"style":4364},[29714],{"type":26,"value":29715}," expected_cut",{"type":21,"tag":2320,"props":29717,"children":29718},{"style":2327},[29719],{"type":26,"value":29523},{"type":21,"tag":2320,"props":29721,"children":29722},{"style":3200},[29723],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29725,"children":29726},{"style":2345},[29727],{"type":26,"value":3556},{"type":21,"tag":2320,"props":29729,"children":29730},{"style":2327},[29731],{"type":26,"value":4414},{"type":21,"tag":2320,"props":29733,"children":29734},{"class":2322,"line":5175},[29735],{"type":21,"tag":2320,"props":29736,"children":29737},{"style":2356},[29738],{"type":26,"value":29739},"    \"\"\"Classical cost function: expected number of cut edges.\"\"\"\n",{"type":21,"tag":2320,"props":29741,"children":29742},{"class":2322,"line":5200},[29743,29748,29752],{"type":21,"tag":2320,"props":29744,"children":29745},{"style":2327},[29746],{"type":26,"value":29747},"    probs ",{"type":21,"tag":2320,"props":29749,"children":29750},{"style":3200},[29751],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29753,"children":29754},{"style":2327},[29755],{"type":26,"value":29756}," qaoa_circuit(params, p)\n",{"type":21,"tag":2320,"props":29758,"children":29759},{"class":2322,"line":5242},[29760,29765,29769],{"type":21,"tag":2320,"props":29761,"children":29762},{"style":2327},[29763],{"type":26,"value":29764},"    total ",{"type":21,"tag":2320,"props":29766,"children":29767},{"style":3200},[29768],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29770,"children":29771},{"style":2345},[29772],{"type":26,"value":29773}," 0.0\n",{"type":21,"tag":2320,"props":29775,"children":29776},{"class":2322,"line":5250},[29777,29781,29786,29790,29794],{"type":21,"tag":2320,"props":29778,"children":29779},{"style":3200},[29780],{"type":26,"value":4740},{"type":21,"tag":2320,"props":29782,"children":29783},{"style":2327},[29784],{"type":26,"value":29785}," bitstring_idx, prob ",{"type":21,"tag":2320,"props":29787,"children":29788},{"style":3200},[29789],{"type":26,"value":3503},{"type":21,"tag":2320,"props":29791,"children":29792},{"style":2345},[29793],{"type":26,"value":4885},{"type":21,"tag":2320,"props":29795,"children":29796},{"style":2327},[29797],{"type":26,"value":29798},"(probs):\n",{"type":21,"tag":2320,"props":29800,"children":29801},{"class":2322,"line":5285},[29802,29806,29810,29814,29819,29823,29828,29832,29836,29840,29845],{"type":21,"tag":2320,"props":29803,"children":29804},{"style":2327},[29805],{"type":26,"value":4797},{"type":21,"tag":2320,"props":29807,"children":29808},{"style":3200},[29809],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29811,"children":29812},{"style":2345},[29813],{"type":26,"value":4806},{"type":21,"tag":2320,"props":29815,"children":29816},{"style":2327},[29817],{"type":26,"value":29818},"(bitstring_idx, ",{"type":21,"tag":2320,"props":29820,"children":29821},{"style":3200},[29822],{"type":26,"value":3325},{"type":21,"tag":2320,"props":29824,"children":29825},{"style":2356},[29826],{"type":26,"value":29827},"'0",{"type":21,"tag":2320,"props":29829,"children":29830},{"style":2345},[29831],{"type":26,"value":3335},{"type":21,"tag":2320,"props":29833,"children":29834},{"style":2327},[29835],{"type":26,"value":15496},{"type":21,"tag":2320,"props":29837,"children":29838},{"style":2345},[29839],{"type":26,"value":3345},{"type":21,"tag":2320,"props":29841,"children":29842},{"style":2356},[29843],{"type":26,"value":29844},"b'",{"type":21,"tag":2320,"props":29846,"children":29847},{"style":2327},[29848],{"type":26,"value":3300},{"type":21,"tag":2320,"props":29850,"children":29851},{"class":2322,"line":5401},[29852,29857,29861,29865,29869,29873,29878,29882,29886,29891,29896,29901,29906],{"type":21,"tag":2320,"props":29853,"children":29854},{"style":2327},[29855],{"type":26,"value":29856},"        cut ",{"type":21,"tag":2320,"props":29858,"children":29859},{"style":3200},[29860],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29862,"children":29863},{"style":2345},[29864],{"type":26,"value":6320},{"type":21,"tag":2320,"props":29866,"children":29867},{"style":2327},[29868],{"type":26,"value":3320},{"type":21,"tag":2320,"props":29870,"children":29871},{"style":2345},[29872],{"type":26,"value":3556},{"type":21,"tag":2320,"props":29874,"children":29875},{"style":3200},[29876],{"type":26,"value":29877}," for",{"type":21,"tag":2320,"props":29879,"children":29880},{"style":2327},[29881],{"type":26,"value":29318},{"type":21,"tag":2320,"props":29883,"children":29884},{"style":3200},[29885],{"type":26,"value":3503},{"type":21,"tag":2320,"props":29887,"children":29888},{"style":2327},[29889],{"type":26,"value":29890}," edges ",{"type":21,"tag":2320,"props":29892,"children":29893},{"style":3200},[29894],{"type":26,"value":29895},"if",{"type":21,"tag":2320,"props":29897,"children":29898},{"style":2327},[29899],{"type":26,"value":29900}," bits[u] ",{"type":21,"tag":2320,"props":29902,"children":29903},{"style":3200},[29904],{"type":26,"value":29905},"!=",{"type":21,"tag":2320,"props":29907,"children":29908},{"style":2327},[29909],{"type":26,"value":29910}," bits[v])\n",{"type":21,"tag":2320,"props":29912,"children":29913},{"class":2322,"line":5409},[29914,29919,29924,29929,29933],{"type":21,"tag":2320,"props":29915,"children":29916},{"style":2327},[29917],{"type":26,"value":29918},"        total ",{"type":21,"tag":2320,"props":29920,"children":29921},{"style":3200},[29922],{"type":26,"value":29923},"+=",{"type":21,"tag":2320,"props":29925,"children":29926},{"style":2327},[29927],{"type":26,"value":29928}," prob ",{"type":21,"tag":2320,"props":29930,"children":29931},{"style":3200},[29932],{"type":26,"value":6393},{"type":21,"tag":2320,"props":29934,"children":29935},{"style":2327},[29936],{"type":26,"value":29937}," cut\n",{"type":21,"tag":2320,"props":29939,"children":29940},{"class":2322,"line":5454},[29941,29945,29949,29954],{"type":21,"tag":2320,"props":29942,"children":29943},{"style":3200},[29944],{"type":26,"value":4586},{"type":21,"tag":2320,"props":29946,"children":29947},{"style":3200},[29948],{"type":26,"value":4552},{"type":21,"tag":2320,"props":29950,"children":29951},{"style":2327},[29952],{"type":26,"value":29953},"total  ",{"type":21,"tag":2320,"props":29955,"children":29956},{"style":3450},[29957],{"type":26,"value":29958},"# Minimize negative cut\n",{"type":21,"tag":2320,"props":29960,"children":29961},{"class":2322,"line":5472},[29962],{"type":21,"tag":2320,"props":29963,"children":29964},{"emptyLinePlaceholder":3224},[29965],{"type":26,"value":3227},{"type":21,"tag":2320,"props":29967,"children":29968},{"class":2322,"line":5480},[29969],{"type":21,"tag":2320,"props":29970,"children":29971},{"style":3450},[29972],{"type":26,"value":29973},"# Optimize p=1 QAOA\n",{"type":21,"tag":2320,"props":29975,"children":29976},{"class":2322,"line":5568},[29977,29982,29986],{"type":21,"tag":2320,"props":29978,"children":29979},{"style":2327},[29980],{"type":26,"value":29981},"p ",{"type":21,"tag":2320,"props":29983,"children":29984},{"style":3200},[29985],{"type":26,"value":3240},{"type":21,"tag":2320,"props":29987,"children":29988},{"style":2345},[29989],{"type":26,"value":12793},{"type":21,"tag":2320,"props":29991,"children":29992},{"class":2322,"line":15071},[29993,29998,30002,30006,30010,30015,30019,30023],{"type":21,"tag":2320,"props":29994,"children":29995},{"style":2327},[29996],{"type":26,"value":29997},"init_params ",{"type":21,"tag":2320,"props":29999,"children":30000},{"style":3200},[30001],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30003,"children":30004},{"style":2327},[30005],{"type":26,"value":25266},{"type":21,"tag":2320,"props":30007,"children":30008},{"style":2345},[30009],{"type":26,"value":5168},{"type":21,"tag":2320,"props":30011,"children":30012},{"style":2327},[30013],{"type":26,"value":30014},", np.pi, ",{"type":21,"tag":2320,"props":30016,"children":30017},{"style":2345},[30018],{"type":26,"value":2419},{"type":21,"tag":2320,"props":30020,"children":30021},{"style":3200},[30022],{"type":26,"value":8345},{"type":21,"tag":2320,"props":30024,"children":30025},{"style":2327},[30026],{"type":26,"value":30027}," p)\n",{"type":21,"tag":2320,"props":30029,"children":30030},{"class":2322,"line":15089},[30031,30035,30039,30044,30049,30053,30057],{"type":21,"tag":2320,"props":30032,"children":30033},{"style":2327},[30034],{"type":26,"value":19342},{"type":21,"tag":2320,"props":30036,"children":30037},{"style":3200},[30038],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30040,"children":30041},{"style":2327},[30042],{"type":26,"value":30043}," minimize(expected_cut, init_params, ",{"type":21,"tag":2320,"props":30045,"children":30046},{"style":3265},[30047],{"type":26,"value":30048},"method",{"type":21,"tag":2320,"props":30050,"children":30051},{"style":3200},[30052],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30054,"children":30055},{"style":2356},[30056],{"type":26,"value":22909},{"type":21,"tag":2320,"props":30058,"children":30059},{"style":2327},[30060],{"type":26,"value":2424},{"type":21,"tag":2320,"props":30062,"children":30063},{"class":2322,"line":15107},[30064,30069,30073,30077,30082,30086,30090],{"type":21,"tag":2320,"props":30065,"children":30066},{"style":3265},[30067],{"type":26,"value":30068},"                  options",{"type":21,"tag":2320,"props":30070,"children":30071},{"style":3200},[30072],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30074,"children":30075},{"style":2327},[30076],{"type":26,"value":3335},{"type":21,"tag":2320,"props":30078,"children":30079},{"style":2356},[30080],{"type":26,"value":30081},"'maxiter'",{"type":21,"tag":2320,"props":30083,"children":30084},{"style":2327},[30085],{"type":26,"value":2414},{"type":21,"tag":2320,"props":30087,"children":30088},{"style":2345},[30089],{"type":26,"value":14630},{"type":21,"tag":2320,"props":30091,"children":30092},{"style":2327},[30093],{"type":26,"value":30094},"})\n",{"type":21,"tag":2320,"props":30096,"children":30097},{"class":2322,"line":15115},[30098],{"type":21,"tag":2320,"props":30099,"children":30100},{"emptyLinePlaceholder":3224},[30101],{"type":26,"value":3227},{"type":21,"tag":2320,"props":30103,"children":30104},{"class":2322,"line":15149},[30105,30109,30113,30117,30122,30126,30131,30135,30139],{"type":21,"tag":2320,"props":30106,"children":30107},{"style":2345},[30108],{"type":26,"value":3315},{"type":21,"tag":2320,"props":30110,"children":30111},{"style":2327},[30112],{"type":26,"value":3320},{"type":21,"tag":2320,"props":30114,"children":30115},{"style":3200},[30116],{"type":26,"value":3325},{"type":21,"tag":2320,"props":30118,"children":30119},{"style":2356},[30120],{"type":26,"value":30121},"\"Optimized params: ",{"type":21,"tag":2320,"props":30123,"children":30124},{"style":2345},[30125],{"type":26,"value":3335},{"type":21,"tag":2320,"props":30127,"children":30128},{"style":2327},[30129],{"type":26,"value":30130},"result.x",{"type":21,"tag":2320,"props":30132,"children":30133},{"style":2345},[30134],{"type":26,"value":3345},{"type":21,"tag":2320,"props":30136,"children":30137},{"style":2356},[30138],{"type":26,"value":3350},{"type":21,"tag":2320,"props":30140,"children":30141},{"style":2327},[30142],{"type":26,"value":3300},{"type":21,"tag":2320,"props":30144,"children":30145},{"class":2322,"line":15184},[30146,30150,30154,30158,30163,30167,30171,30176,30180,30184,30189],{"type":21,"tag":2320,"props":30147,"children":30148},{"style":2345},[30149],{"type":26,"value":3315},{"type":21,"tag":2320,"props":30151,"children":30152},{"style":2327},[30153],{"type":26,"value":3320},{"type":21,"tag":2320,"props":30155,"children":30156},{"style":3200},[30157],{"type":26,"value":3325},{"type":21,"tag":2320,"props":30159,"children":30160},{"style":2356},[30161],{"type":26,"value":30162},"\"Expected cut: ",{"type":21,"tag":2320,"props":30164,"children":30165},{"style":2345},[30166],{"type":26,"value":3335},{"type":21,"tag":2320,"props":30168,"children":30169},{"style":3200},[30170],{"type":26,"value":4848},{"type":21,"tag":2320,"props":30172,"children":30173},{"style":2327},[30174],{"type":26,"value":30175},"result.fun",{"type":21,"tag":2320,"props":30177,"children":30178},{"style":3200},[30179],{"type":26,"value":15287},{"type":21,"tag":2320,"props":30181,"children":30182},{"style":2345},[30183],{"type":26,"value":3345},{"type":21,"tag":2320,"props":30185,"children":30186},{"style":2356},[30187],{"type":26,"value":30188}," \u002F 4.0 maximum\"",{"type":21,"tag":2320,"props":30190,"children":30191},{"style":2327},[30192],{"type":26,"value":3300},{"type":21,"tag":22,"props":30194,"children":30195},{},[30196,30198,30204,30206,30211],{"type":26,"value":30197},"Ejecutar esto normalmente alcanza ",{"type":21,"tag":2080,"props":30199,"children":30201},{"className":30200},[],[30202],{"type":26,"value":30203},"expected_cut ≈ 3.5",{"type":26,"value":30205}," con ",{"type":21,"tag":2080,"props":30207,"children":30209},{"className":30208},[],[30210],{"type":26,"value":19553},{"type":26,"value":30212}," — el 87,5 % del corte máximo.",{"type":21,"tag":49,"props":30214,"children":30216},{"id":30215},"muestreando-la-mejor-solución",[30217],{"type":26,"value":30218},"Muestreando la mejor solución",{"type":21,"tag":22,"props":30220,"children":30221},{},[30222],{"type":26,"value":30223},"Después de la optimización, muestrea el circuito para encontrar las soluciones buenas más probables:",{"type":21,"tag":2310,"props":30225,"children":30227},{"code":30226,"language":3190,"meta":7,"className":3188,"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",[30228],{"type":21,"tag":2080,"props":30229,"children":30230},{"__ignoreMap":7},[30231,30242,30283,30298,30313,30336,30355,30378,30385,30392,30420,30427,30460,30467,30475,30496,30513,30534,30583,30639,30655,30662,30670,30733],{"type":21,"tag":2320,"props":30232,"children":30233},{"class":2322,"line":2323},[30234,30238],{"type":21,"tag":2320,"props":30235,"children":30236},{"style":4364},[30237],{"type":26,"value":14272},{"type":21,"tag":2320,"props":30239,"children":30240},{"style":2327},[30241],{"type":26,"value":14277},{"type":21,"tag":2320,"props":30243,"children":30244},{"class":2322,"line":150},[30245,30249,30254,30258,30262,30266,30271,30275,30279],{"type":21,"tag":2320,"props":30246,"children":30247},{"style":3200},[30248],{"type":26,"value":4361},{"type":21,"tag":2320,"props":30250,"children":30251},{"style":4364},[30252],{"type":26,"value":30253}," sample_circuit",{"type":21,"tag":2320,"props":30255,"children":30256},{"style":2327},[30257],{"type":26,"value":29523},{"type":21,"tag":2320,"props":30259,"children":30260},{"style":3200},[30261],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30263,"children":30264},{"style":2345},[30265],{"type":26,"value":3556},{"type":21,"tag":2320,"props":30267,"children":30268},{"style":2327},[30269],{"type":26,"value":30270},", shots",{"type":21,"tag":2320,"props":30272,"children":30273},{"style":3200},[30274],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30276,"children":30277},{"style":2345},[30278],{"type":26,"value":20476},{"type":21,"tag":2320,"props":30280,"children":30281},{"style":2327},[30282],{"type":26,"value":4414},{"type":21,"tag":2320,"props":30284,"children":30285},{"class":2322,"line":2341},[30286,30290,30294],{"type":21,"tag":2320,"props":30287,"children":30288},{"style":2327},[30289],{"type":26,"value":29543},{"type":21,"tag":2320,"props":30291,"children":30292},{"style":3200},[30293],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30295,"children":30296},{"style":2327},[30297],{"type":26,"value":29552},{"type":21,"tag":2320,"props":30299,"children":30300},{"class":2322,"line":2403},[30301,30305,30309],{"type":21,"tag":2320,"props":30302,"children":30303},{"style":2327},[30304],{"type":26,"value":29560},{"type":21,"tag":2320,"props":30306,"children":30307},{"style":3200},[30308],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30310,"children":30311},{"style":2327},[30312],{"type":26,"value":29569},{"type":21,"tag":2320,"props":30314,"children":30315},{"class":2322,"line":2427},[30316,30320,30324,30328,30332],{"type":21,"tag":2320,"props":30317,"children":30318},{"style":3200},[30319],{"type":26,"value":4740},{"type":21,"tag":2320,"props":30321,"children":30322},{"style":2327},[30323],{"type":26,"value":4745},{"type":21,"tag":2320,"props":30325,"children":30326},{"style":3200},[30327],{"type":26,"value":3503},{"type":21,"tag":2320,"props":30329,"children":30330},{"style":2345},[30331],{"type":26,"value":3508},{"type":21,"tag":2320,"props":30333,"children":30334},{"style":2327},[30335],{"type":26,"value":26603},{"type":21,"tag":2320,"props":30337,"children":30338},{"class":2322,"line":854},[30339,30343,30347,30351],{"type":21,"tag":2320,"props":30340,"children":30341},{"style":2327},[30342],{"type":26,"value":29608},{"type":21,"tag":2320,"props":30344,"children":30345},{"style":3265},[30346],{"type":26,"value":14248},{"type":21,"tag":2320,"props":30348,"children":30349},{"style":3200},[30350],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30352,"children":30353},{"style":2327},[30354],{"type":26,"value":26624},{"type":21,"tag":2320,"props":30356,"children":30357},{"class":2322,"line":171},[30358,30362,30366,30370,30374],{"type":21,"tag":2320,"props":30359,"children":30360},{"style":3200},[30361],{"type":26,"value":4740},{"type":21,"tag":2320,"props":30363,"children":30364},{"style":2327},[30365],{"type":26,"value":29640},{"type":21,"tag":2320,"props":30367,"children":30368},{"style":3200},[30369],{"type":26,"value":3503},{"type":21,"tag":2320,"props":30371,"children":30372},{"style":2345},[30373],{"type":26,"value":3508},{"type":21,"tag":2320,"props":30375,"children":30376},{"style":2327},[30377],{"type":26,"value":29653},{"type":21,"tag":2320,"props":30379,"children":30380},{"class":2322,"line":16},[30381],{"type":21,"tag":2320,"props":30382,"children":30383},{"style":2327},[30384],{"type":26,"value":29661},{"type":21,"tag":2320,"props":30386,"children":30387},{"class":2322,"line":1370},[30388],{"type":21,"tag":2320,"props":30389,"children":30390},{"style":2327},[30391],{"type":26,"value":29669},{"type":21,"tag":2320,"props":30393,"children":30394},{"class":2322,"line":3446},[30395,30399,30404,30408,30412,30416],{"type":21,"tag":2320,"props":30396,"children":30397},{"style":3200},[30398],{"type":26,"value":4586},{"type":21,"tag":2320,"props":30400,"children":30401},{"style":2327},[30402],{"type":26,"value":30403}," qml.sample(",{"type":21,"tag":2320,"props":30405,"children":30406},{"style":3265},[30407],{"type":26,"value":14248},{"type":21,"tag":2320,"props":30409,"children":30410},{"style":3200},[30411],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30413,"children":30414},{"style":2345},[30415],{"type":26,"value":4942},{"type":21,"tag":2320,"props":30417,"children":30418},{"style":2327},[30419],{"type":26,"value":14385},{"type":21,"tag":2320,"props":30421,"children":30422},{"class":2322,"line":3456},[30423],{"type":21,"tag":2320,"props":30424,"children":30425},{"emptyLinePlaceholder":3224},[30426],{"type":26,"value":3227},{"type":21,"tag":2320,"props":30428,"children":30429},{"class":2322,"line":474},[30430,30435,30439,30444,30448,30452,30456],{"type":21,"tag":2320,"props":30431,"children":30432},{"style":2327},[30433],{"type":26,"value":30434},"samples ",{"type":21,"tag":2320,"props":30436,"children":30437},{"style":3200},[30438],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30440,"children":30441},{"style":2327},[30442],{"type":26,"value":30443}," sample_circuit(result.x, ",{"type":21,"tag":2320,"props":30445,"children":30446},{"style":3265},[30447],{"type":26,"value":4123},{"type":21,"tag":2320,"props":30449,"children":30450},{"style":3200},[30451],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30453,"children":30454},{"style":2345},[30455],{"type":26,"value":20476},{"type":21,"tag":2320,"props":30457,"children":30458},{"style":2327},[30459],{"type":26,"value":3300},{"type":21,"tag":2320,"props":30461,"children":30462},{"class":2322,"line":3516},[30463],{"type":21,"tag":2320,"props":30464,"children":30465},{"emptyLinePlaceholder":3224},[30466],{"type":26,"value":3227},{"type":21,"tag":2320,"props":30468,"children":30469},{"class":2322,"line":3564},[30470],{"type":21,"tag":2320,"props":30471,"children":30472},{"style":3450},[30473],{"type":26,"value":30474},"# Count cut values for each bitstring\n",{"type":21,"tag":2320,"props":30476,"children":30477},{"class":2322,"line":3606},[30478,30482,30487,30491],{"type":21,"tag":2320,"props":30479,"children":30480},{"style":3200},[30481],{"type":26,"value":3203},{"type":21,"tag":2320,"props":30483,"children":30484},{"style":2327},[30485],{"type":26,"value":30486}," collections ",{"type":21,"tag":2320,"props":30488,"children":30489},{"style":3200},[30490],{"type":26,"value":3213},{"type":21,"tag":2320,"props":30492,"children":30493},{"style":2327},[30494],{"type":26,"value":30495}," Counter\n",{"type":21,"tag":2320,"props":30497,"children":30498},{"class":2322,"line":4631},[30499,30504,30508],{"type":21,"tag":2320,"props":30500,"children":30501},{"style":2327},[30502],{"type":26,"value":30503},"cut_counts ",{"type":21,"tag":2320,"props":30505,"children":30506},{"style":3200},[30507],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30509,"children":30510},{"style":2327},[30511],{"type":26,"value":30512}," Counter()\n",{"type":21,"tag":2320,"props":30514,"children":30515},{"class":2322,"line":4650},[30516,30520,30525,30529],{"type":21,"tag":2320,"props":30517,"children":30518},{"style":3200},[30519],{"type":26,"value":3493},{"type":21,"tag":2320,"props":30521,"children":30522},{"style":2327},[30523],{"type":26,"value":30524}," bits ",{"type":21,"tag":2320,"props":30526,"children":30527},{"style":3200},[30528],{"type":26,"value":3503},{"type":21,"tag":2320,"props":30530,"children":30531},{"style":2327},[30532],{"type":26,"value":30533}," samples:\n",{"type":21,"tag":2320,"props":30535,"children":30536},{"class":2322,"line":4658},[30537,30542,30546,30551,30556,30561,30566,30570,30574,30578],{"type":21,"tag":2320,"props":30538,"children":30539},{"style":2327},[30540],{"type":26,"value":30541},"    key ",{"type":21,"tag":2320,"props":30543,"children":30544},{"style":3200},[30545],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30547,"children":30548},{"style":2356},[30549],{"type":26,"value":30550}," ''",{"type":21,"tag":2320,"props":30552,"children":30553},{"style":2327},[30554],{"type":26,"value":30555},".join(",{"type":21,"tag":2320,"props":30557,"children":30558},{"style":2345},[30559],{"type":26,"value":30560},"str",{"type":21,"tag":2320,"props":30562,"children":30563},{"style":2327},[30564],{"type":26,"value":30565},"(b) ",{"type":21,"tag":2320,"props":30567,"children":30568},{"style":3200},[30569],{"type":26,"value":3493},{"type":21,"tag":2320,"props":30571,"children":30572},{"style":2327},[30573],{"type":26,"value":4904},{"type":21,"tag":2320,"props":30575,"children":30576},{"style":3200},[30577],{"type":26,"value":3503},{"type":21,"tag":2320,"props":30579,"children":30580},{"style":2327},[30581],{"type":26,"value":30582}," bits)\n",{"type":21,"tag":2320,"props":30584,"children":30585},{"class":2322,"line":4689},[30586,30591,30595,30599,30603,30607,30611,30615,30619,30623,30627,30631,30635],{"type":21,"tag":2320,"props":30587,"children":30588},{"style":2327},[30589],{"type":26,"value":30590},"    cut ",{"type":21,"tag":2320,"props":30592,"children":30593},{"style":3200},[30594],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30596,"children":30597},{"style":2345},[30598],{"type":26,"value":6320},{"type":21,"tag":2320,"props":30600,"children":30601},{"style":2327},[30602],{"type":26,"value":3320},{"type":21,"tag":2320,"props":30604,"children":30605},{"style":2345},[30606],{"type":26,"value":3556},{"type":21,"tag":2320,"props":30608,"children":30609},{"style":3200},[30610],{"type":26,"value":29877},{"type":21,"tag":2320,"props":30612,"children":30613},{"style":2327},[30614],{"type":26,"value":29318},{"type":21,"tag":2320,"props":30616,"children":30617},{"style":3200},[30618],{"type":26,"value":3503},{"type":21,"tag":2320,"props":30620,"children":30621},{"style":2327},[30622],{"type":26,"value":29890},{"type":21,"tag":2320,"props":30624,"children":30625},{"style":3200},[30626],{"type":26,"value":29895},{"type":21,"tag":2320,"props":30628,"children":30629},{"style":2327},[30630],{"type":26,"value":29900},{"type":21,"tag":2320,"props":30632,"children":30633},{"style":3200},[30634],{"type":26,"value":29905},{"type":21,"tag":2320,"props":30636,"children":30637},{"style":2327},[30638],{"type":26,"value":29910},{"type":21,"tag":2320,"props":30640,"children":30641},{"class":2322,"line":4734},[30642,30647,30651],{"type":21,"tag":2320,"props":30643,"children":30644},{"style":2327},[30645],{"type":26,"value":30646},"    cut_counts[(key, cut)] ",{"type":21,"tag":2320,"props":30648,"children":30649},{"style":3200},[30650],{"type":26,"value":29923},{"type":21,"tag":2320,"props":30652,"children":30653},{"style":2345},[30654],{"type":26,"value":12793},{"type":21,"tag":2320,"props":30656,"children":30657},{"class":2322,"line":4773},[30658],{"type":21,"tag":2320,"props":30659,"children":30660},{"emptyLinePlaceholder":3224},[30661],{"type":26,"value":3227},{"type":21,"tag":2320,"props":30663,"children":30664},{"class":2322,"line":4791},[30665],{"type":21,"tag":2320,"props":30666,"children":30667},{"style":3450},[30668],{"type":26,"value":30669},"# Show top 5 most frequent bitstrings\n",{"type":21,"tag":2320,"props":30671,"children":30672},{"class":2322,"line":4865},[30673,30677,30682,30686,30690,30695,30699,30703,30708,30712,30717,30721,30725,30729],{"type":21,"tag":2320,"props":30674,"children":30675},{"style":3200},[30676],{"type":26,"value":3493},{"type":21,"tag":2320,"props":30678,"children":30679},{"style":2327},[30680],{"type":26,"value":30681}," (bits, cut), count ",{"type":21,"tag":2320,"props":30683,"children":30684},{"style":3200},[30685],{"type":26,"value":3503},{"type":21,"tag":2320,"props":30687,"children":30688},{"style":2345},[30689],{"type":26,"value":17137},{"type":21,"tag":2320,"props":30691,"children":30692},{"style":2327},[30693],{"type":26,"value":30694},"(cut_counts.items(), ",{"type":21,"tag":2320,"props":30696,"children":30697},{"style":3265},[30698],{"type":26,"value":3541},{"type":21,"tag":2320,"props":30700,"children":30701},{"style":3200},[30702],{"type":26,"value":3546},{"type":21,"tag":2320,"props":30704,"children":30705},{"style":2327},[30706],{"type":26,"value":30707}," x: ",{"type":21,"tag":2320,"props":30709,"children":30710},{"style":3200},[30711],{"type":26,"value":4848},{"type":21,"tag":2320,"props":30713,"children":30714},{"style":2327},[30715],{"type":26,"value":30716},"x[",{"type":21,"tag":2320,"props":30718,"children":30719},{"style":2345},[30720],{"type":26,"value":3556},{"type":21,"tag":2320,"props":30722,"children":30723},{"style":2327},[30724],{"type":26,"value":17576},{"type":21,"tag":2320,"props":30726,"children":30727},{"style":2345},[30728],{"type":26,"value":6682},{"type":21,"tag":2320,"props":30730,"children":30731},{"style":2327},[30732],{"type":26,"value":17585},{"type":21,"tag":2320,"props":30734,"children":30735},{"class":2322,"line":4893},[30736,30740,30744,30748,30752,30756,30760,30764,30769,30773,30778,30782,30787,30791,30796,30800,30804,30809,30813,30818],{"type":21,"tag":2320,"props":30737,"children":30738},{"style":2345},[30739],{"type":26,"value":17224},{"type":21,"tag":2320,"props":30741,"children":30742},{"style":2327},[30743],{"type":26,"value":3320},{"type":21,"tag":2320,"props":30745,"children":30746},{"style":3200},[30747],{"type":26,"value":3325},{"type":21,"tag":2320,"props":30749,"children":30750},{"style":2356},[30751],{"type":26,"value":3350},{"type":21,"tag":2320,"props":30753,"children":30754},{"style":2345},[30755],{"type":26,"value":3335},{"type":21,"tag":2320,"props":30757,"children":30758},{"style":2327},[30759],{"type":26,"value":17245},{"type":21,"tag":2320,"props":30761,"children":30762},{"style":2345},[30763],{"type":26,"value":3345},{"type":21,"tag":2320,"props":30765,"children":30766},{"style":2356},[30767],{"type":26,"value":30768},"  cut=",{"type":21,"tag":2320,"props":30770,"children":30771},{"style":2345},[30772],{"type":26,"value":3335},{"type":21,"tag":2320,"props":30774,"children":30775},{"style":2327},[30776],{"type":26,"value":30777},"cut",{"type":21,"tag":2320,"props":30779,"children":30780},{"style":2345},[30781],{"type":26,"value":3345},{"type":21,"tag":2320,"props":30783,"children":30784},{"style":2356},[30785],{"type":26,"value":30786},"  frequency=",{"type":21,"tag":2320,"props":30788,"children":30789},{"style":2345},[30790],{"type":26,"value":3335},{"type":21,"tag":2320,"props":30792,"children":30793},{"style":2327},[30794],{"type":26,"value":30795},"count",{"type":21,"tag":2320,"props":30797,"children":30798},{"style":3200},[30799],{"type":26,"value":2175},{"type":21,"tag":2320,"props":30801,"children":30802},{"style":2345},[30803],{"type":26,"value":20533},{"type":21,"tag":2320,"props":30805,"children":30806},{"style":3200},[30807],{"type":26,"value":30808},":.1f",{"type":21,"tag":2320,"props":30810,"children":30811},{"style":2345},[30812],{"type":26,"value":3345},{"type":21,"tag":2320,"props":30814,"children":30815},{"style":2356},[30816],{"type":26,"value":30817},"%\"",{"type":21,"tag":2320,"props":30819,"children":30820},{"style":2327},[30821],{"type":26,"value":3300},{"type":21,"tag":22,"props":30823,"children":30824},{},[30825],{"type":26,"value":30826},"Salida esperada:",{"type":21,"tag":2310,"props":30828,"children":30830},{"code":30829},"0101  cut=4  frequency=28.3%\n1010  cut=4  frequency=27.1%\n0110  cut=3  frequency=8.4%\n...\n",[30831],{"type":21,"tag":2080,"props":30832,"children":30833},{"__ignoreMap":7},[30834],{"type":26,"value":30829},{"type":21,"tag":22,"props":30836,"children":30837},{},[30838,30840,30845,30846,30851],{"type":26,"value":30839},"Las soluciones óptimas (",{"type":21,"tag":2080,"props":30841,"children":30843},{"className":30842},[],[30844],{"type":26,"value":28964},{"type":26,"value":726},{"type":21,"tag":2080,"props":30847,"children":30849},{"className":30848},[],[30850],{"type":26,"value":17430},{"type":26,"value":30852},") dominan — QAOA amplificó su probabilidad.",{"type":21,"tag":49,"props":30854,"children":30856},{"id":30855},"el-mismo-problema-con-hlquantum",[30857],{"type":26,"value":30858},"El mismo problema con HLQuantum",{"type":21,"tag":22,"props":30860,"children":30861},{},[30862],{"type":26,"value":30863},"El QAOA integrado de HLQuantum te permite saltarte por completo la construcción del circuito:",{"type":21,"tag":2310,"props":30865,"children":30867},{"code":30866,"language":3190,"meta":7,"className":3188,"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",[30868],{"type":21,"tag":2080,"props":30869,"children":30870},{"__ignoreMap":7},[30871,30890,30897,30977,30984,31000,31017,31038,31058,31077,31097,31104,31111,31128,31145],{"type":21,"tag":2320,"props":30872,"children":30873},{"class":2322,"line":2323},[30874,30878,30882,30886],{"type":21,"tag":2320,"props":30875,"children":30876},{"style":3200},[30877],{"type":26,"value":3213},{"type":21,"tag":2320,"props":30879,"children":30880},{"style":2327},[30881],{"type":26,"value":19310},{"type":21,"tag":2320,"props":30883,"children":30884},{"style":3200},[30885],{"type":26,"value":4278},{"type":21,"tag":2320,"props":30887,"children":30888},{"style":2327},[30889],{"type":26,"value":19319},{"type":21,"tag":2320,"props":30891,"children":30892},{"class":2322,"line":150},[30893],{"type":21,"tag":2320,"props":30894,"children":30895},{"emptyLinePlaceholder":3224},[30896],{"type":26,"value":3227},{"type":21,"tag":2320,"props":30898,"children":30899},{"class":2322,"line":2341},[30900,30905,30909,30913,30917,30921,30925,30929,30933,30937,30941,30945,30949,30953,30957,30961,30965,30969,30973],{"type":21,"tag":2320,"props":30901,"children":30902},{"style":2327},[30903],{"type":26,"value":30904},"graph ",{"type":21,"tag":2320,"props":30906,"children":30907},{"style":3200},[30908],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30910,"children":30911},{"style":2327},[30912],{"type":26,"value":29151},{"type":21,"tag":2320,"props":30914,"children":30915},{"style":2345},[30916],{"type":26,"value":5168},{"type":21,"tag":2320,"props":30918,"children":30919},{"style":2327},[30920],{"type":26,"value":1315},{"type":21,"tag":2320,"props":30922,"children":30923},{"style":2345},[30924],{"type":26,"value":3556},{"type":21,"tag":2320,"props":30926,"children":30927},{"style":2327},[30928],{"type":26,"value":29168},{"type":21,"tag":2320,"props":30930,"children":30931},{"style":2345},[30932],{"type":26,"value":3556},{"type":21,"tag":2320,"props":30934,"children":30935},{"style":2327},[30936],{"type":26,"value":1315},{"type":21,"tag":2320,"props":30938,"children":30939},{"style":2345},[30940],{"type":26,"value":2419},{"type":21,"tag":2320,"props":30942,"children":30943},{"style":2327},[30944],{"type":26,"value":29168},{"type":21,"tag":2320,"props":30946,"children":30947},{"style":2345},[30948],{"type":26,"value":2419},{"type":21,"tag":2320,"props":30950,"children":30951},{"style":2327},[30952],{"type":26,"value":1315},{"type":21,"tag":2320,"props":30954,"children":30955},{"style":2345},[30956],{"type":26,"value":6511},{"type":21,"tag":2320,"props":30958,"children":30959},{"style":2327},[30960],{"type":26,"value":29168},{"type":21,"tag":2320,"props":30962,"children":30963},{"style":2345},[30964],{"type":26,"value":6511},{"type":21,"tag":2320,"props":30966,"children":30967},{"style":2327},[30968],{"type":26,"value":1315},{"type":21,"tag":2320,"props":30970,"children":30971},{"style":2345},[30972],{"type":26,"value":5168},{"type":21,"tag":2320,"props":30974,"children":30975},{"style":2327},[30976],{"type":26,"value":29217},{"type":21,"tag":2320,"props":30978,"children":30979},{"class":2322,"line":2403},[30980],{"type":21,"tag":2320,"props":30981,"children":30982},{"emptyLinePlaceholder":3224},[30983],{"type":26,"value":3227},{"type":21,"tag":2320,"props":30985,"children":30986},{"class":2322,"line":2427},[30987,30991,30995],{"type":21,"tag":2320,"props":30988,"children":30989},{"style":2327},[30990],{"type":26,"value":19342},{"type":21,"tag":2320,"props":30992,"children":30993},{"style":3200},[30994],{"type":26,"value":3240},{"type":21,"tag":2320,"props":30996,"children":30997},{"style":2327},[30998],{"type":26,"value":30999}," hlq.algorithms.qaoa(\n",{"type":21,"tag":2320,"props":31001,"children":31002},{"class":2322,"line":854},[31003,31008,31012],{"type":21,"tag":2320,"props":31004,"children":31005},{"style":3265},[31006],{"type":26,"value":31007},"    graph",{"type":21,"tag":2320,"props":31009,"children":31010},{"style":3200},[31011],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31013,"children":31014},{"style":2327},[31015],{"type":26,"value":31016},"graph,\n",{"type":21,"tag":2320,"props":31018,"children":31019},{"class":2322,"line":171},[31020,31025,31029,31034],{"type":21,"tag":2320,"props":31021,"children":31022},{"style":3265},[31023],{"type":26,"value":31024},"    problem",{"type":21,"tag":2320,"props":31026,"children":31027},{"style":3200},[31028],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31030,"children":31031},{"style":2356},[31032],{"type":26,"value":31033},"'max_cut'",{"type":21,"tag":2320,"props":31035,"children":31036},{"style":2327},[31037],{"type":26,"value":2424},{"type":21,"tag":2320,"props":31039,"children":31040},{"class":2322,"line":16},[31041,31046,31050,31054],{"type":21,"tag":2320,"props":31042,"children":31043},{"style":3265},[31044],{"type":26,"value":31045},"    p",{"type":21,"tag":2320,"props":31047,"children":31048},{"style":3200},[31049],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31051,"children":31052},{"style":2345},[31053],{"type":26,"value":2419},{"type":21,"tag":2320,"props":31055,"children":31056},{"style":2327},[31057],{"type":26,"value":2424},{"type":21,"tag":2320,"props":31059,"children":31060},{"class":2322,"line":1370},[31061,31065,31069,31073],{"type":21,"tag":2320,"props":31062,"children":31063},{"style":3265},[31064],{"type":26,"value":22880},{"type":21,"tag":2320,"props":31066,"children":31067},{"style":3200},[31068],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31070,"children":31071},{"style":2356},[31072],{"type":26,"value":22190},{"type":21,"tag":2320,"props":31074,"children":31075},{"style":2327},[31076],{"type":26,"value":2424},{"type":21,"tag":2320,"props":31078,"children":31079},{"class":2322,"line":3446},[31080,31084,31088,31093],{"type":21,"tag":2320,"props":31081,"children":31082},{"style":3265},[31083],{"type":26,"value":28831},{"type":21,"tag":2320,"props":31085,"children":31086},{"style":3200},[31087],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31089,"children":31090},{"style":2345},[31091],{"type":26,"value":31092},"2000",{"type":21,"tag":2320,"props":31094,"children":31095},{"style":2327},[31096],{"type":26,"value":2424},{"type":21,"tag":2320,"props":31098,"children":31099},{"class":2322,"line":3456},[31100],{"type":21,"tag":2320,"props":31101,"children":31102},{"style":2327},[31103],{"type":26,"value":3300},{"type":21,"tag":2320,"props":31105,"children":31106},{"class":2322,"line":474},[31107],{"type":21,"tag":2320,"props":31108,"children":31109},{"emptyLinePlaceholder":3224},[31110],{"type":26,"value":3227},{"type":21,"tag":2320,"props":31112,"children":31113},{"class":2322,"line":3516},[31114,31118,31123],{"type":21,"tag":2320,"props":31115,"children":31116},{"style":2345},[31117],{"type":26,"value":3315},{"type":21,"tag":2320,"props":31119,"children":31120},{"style":2327},[31121],{"type":26,"value":31122},"(result.best_solution)   ",{"type":21,"tag":2320,"props":31124,"children":31125},{"style":3450},[31126],{"type":26,"value":31127},"# '0101' or '1010'\n",{"type":21,"tag":2320,"props":31129,"children":31130},{"class":2322,"line":3564},[31131,31135,31140],{"type":21,"tag":2320,"props":31132,"children":31133},{"style":2345},[31134],{"type":26,"value":3315},{"type":21,"tag":2320,"props":31136,"children":31137},{"style":2327},[31138],{"type":26,"value":31139},"(result.cut_value)       ",{"type":21,"tag":2320,"props":31141,"children":31142},{"style":3450},[31143],{"type":26,"value":31144},"# 4\n",{"type":21,"tag":2320,"props":31146,"children":31147},{"class":2322,"line":3606},[31148,31152,31157],{"type":21,"tag":2320,"props":31149,"children":31150},{"style":2345},[31151],{"type":26,"value":3315},{"type":21,"tag":2320,"props":31153,"children":31154},{"style":2327},[31155],{"type":26,"value":31156},"(result.approximation_ratio)  ",{"type":21,"tag":2320,"props":31158,"children":31159},{"style":3450},[31160],{"type":26,"value":31161},"# ~0.96 for p=2\n",{"type":21,"tag":22,"props":31163,"children":31164},{},[31165],{"type":26,"value":31166},"Cambia de backend con un solo indicador:",{"type":21,"tag":2310,"props":31168,"children":31170},{"code":31169,"language":3190,"meta":7,"className":3188,"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",[31171],{"type":21,"tag":2080,"props":31172,"children":31173},{"__ignoreMap":7},[31174,31182,31261,31268,31276,31336],{"type":21,"tag":2320,"props":31175,"children":31176},{"class":2322,"line":2323},[31177],{"type":21,"tag":2320,"props":31178,"children":31179},{"style":3450},[31180],{"type":26,"value":31181},"# Run on Qiskit Aer\n",{"type":21,"tag":2320,"props":31183,"children":31184},{"class":2322,"line":150},[31185,31189,31193,31198,31203,31207,31212,31217,31221,31225,31229,31233,31237,31241,31245,31249,31253,31257],{"type":21,"tag":2320,"props":31186,"children":31187},{"style":2327},[31188],{"type":26,"value":21631},{"type":21,"tag":2320,"props":31190,"children":31191},{"style":3200},[31192],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31194,"children":31195},{"style":2327},[31196],{"type":26,"value":31197}," hlq.algorithms.qaoa(",{"type":21,"tag":2320,"props":31199,"children":31200},{"style":3265},[31201],{"type":26,"value":31202},"graph",{"type":21,"tag":2320,"props":31204,"children":31205},{"style":3200},[31206],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31208,"children":31209},{"style":2327},[31210],{"type":26,"value":31211},"graph, ",{"type":21,"tag":2320,"props":31213,"children":31214},{"style":3265},[31215],{"type":26,"value":31216},"problem",{"type":21,"tag":2320,"props":31218,"children":31219},{"style":3200},[31220],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31222,"children":31223},{"style":2356},[31224],{"type":26,"value":31033},{"type":21,"tag":2320,"props":31226,"children":31227},{"style":2327},[31228],{"type":26,"value":1315},{"type":21,"tag":2320,"props":31230,"children":31231},{"style":3265},[31232],{"type":26,"value":22},{"type":21,"tag":2320,"props":31234,"children":31235},{"style":3200},[31236],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31238,"children":31239},{"style":2345},[31240],{"type":26,"value":2419},{"type":21,"tag":2320,"props":31242,"children":31243},{"style":2327},[31244],{"type":26,"value":1315},{"type":21,"tag":2320,"props":31246,"children":31247},{"style":3265},[31248],{"type":26,"value":18469},{"type":21,"tag":2320,"props":31250,"children":31251},{"style":3200},[31252],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31254,"children":31255},{"style":2356},[31256],{"type":26,"value":19400},{"type":21,"tag":2320,"props":31258,"children":31259},{"style":2327},[31260],{"type":26,"value":3300},{"type":21,"tag":2320,"props":31262,"children":31263},{"class":2322,"line":2341},[31264],{"type":21,"tag":2320,"props":31265,"children":31266},{"emptyLinePlaceholder":3224},[31267],{"type":26,"value":3227},{"type":21,"tag":2320,"props":31269,"children":31270},{"class":2322,"line":2403},[31271],{"type":21,"tag":2320,"props":31272,"children":31273},{"style":3450},[31274],{"type":26,"value":31275},"# Run on real IonQ hardware (if you have credits)\n",{"type":21,"tag":2320,"props":31277,"children":31278},{"class":2322,"line":2427},[31279,31284,31288,31292,31296,31300,31304,31308,31312,31316,31320,31324,31328,31332],{"type":21,"tag":2320,"props":31280,"children":31281},{"style":2327},[31282],{"type":26,"value":31283},"result_ionq ",{"type":21,"tag":2320,"props":31285,"children":31286},{"style":3200},[31287],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31289,"children":31290},{"style":2327},[31291],{"type":26,"value":31197},{"type":21,"tag":2320,"props":31293,"children":31294},{"style":3265},[31295],{"type":26,"value":31202},{"type":21,"tag":2320,"props":31297,"children":31298},{"style":3200},[31299],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31301,"children":31302},{"style":2327},[31303],{"type":26,"value":31211},{"type":21,"tag":2320,"props":31305,"children":31306},{"style":3265},[31307],{"type":26,"value":31216},{"type":21,"tag":2320,"props":31309,"children":31310},{"style":3200},[31311],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31313,"children":31314},{"style":2356},[31315],{"type":26,"value":31033},{"type":21,"tag":2320,"props":31317,"children":31318},{"style":2327},[31319],{"type":26,"value":1315},{"type":21,"tag":2320,"props":31321,"children":31322},{"style":3265},[31323],{"type":26,"value":22},{"type":21,"tag":2320,"props":31325,"children":31326},{"style":3200},[31327],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31329,"children":31330},{"style":2345},[31331],{"type":26,"value":2419},{"type":21,"tag":2320,"props":31333,"children":31334},{"style":2327},[31335],{"type":26,"value":2424},{"type":21,"tag":2320,"props":31337,"children":31338},{"class":2322,"line":854},[31339,31344,31348,31352,31356,31360,31364,31368],{"type":21,"tag":2320,"props":31340,"children":31341},{"style":3265},[31342],{"type":26,"value":31343},"                                   backend",{"type":21,"tag":2320,"props":31345,"children":31346},{"style":3200},[31347],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31349,"children":31350},{"style":2356},[31351],{"type":26,"value":22294},{"type":21,"tag":2320,"props":31353,"children":31354},{"style":2327},[31355],{"type":26,"value":1315},{"type":21,"tag":2320,"props":31357,"children":31358},{"style":3265},[31359],{"type":26,"value":22303},{"type":21,"tag":2320,"props":31361,"children":31362},{"style":3200},[31363],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31365,"children":31366},{"style":2356},[31367],{"type":26,"value":22312},{"type":21,"tag":2320,"props":31369,"children":31370},{"style":2327},[31371],{"type":26,"value":3300},{"type":21,"tag":49,"props":31373,"children":31375},{"id":31374},"aumentando-p-para-obtener-mejores-resultados",[31376],{"type":26,"value":31377},"Aumentando p para obtener mejores resultados",{"type":21,"tag":22,"props":31379,"children":31380},{},[31381,31383,31388,31390,31396],{"type":26,"value":31382},"La razón de aproximación de QAOA mejora con la profundidad ",{"type":21,"tag":2080,"props":31384,"children":31386},{"className":31385},[],[31387],{"type":26,"value":22},{"type":26,"value":31389},". En ",{"type":21,"tag":2080,"props":31391,"children":31393},{"className":31392},[],[31394],{"type":26,"value":31395},"p→∞",{"type":26,"value":31397},", QAOA resuelve el problema exactamente. En la práctica:",{"type":21,"tag":4066,"props":31399,"children":31400},{},[31401,31421],{"type":21,"tag":4070,"props":31402,"children":31403},{},[31404],{"type":21,"tag":4074,"props":31405,"children":31406},{},[31407,31411,31416],{"type":21,"tag":4078,"props":31408,"children":31409},{},[31410],{"type":26,"value":22},{"type":21,"tag":4078,"props":31412,"children":31413},{},[31414],{"type":26,"value":31415},"Razón de aprox. típica (Max-Cut)",{"type":21,"tag":4078,"props":31417,"children":31418},{},[31419],{"type":26,"value":31420},"Puertas requeridas",{"type":21,"tag":4092,"props":31422,"children":31423},{},[31424,31441,31458,31475],{"type":21,"tag":4074,"props":31425,"children":31426},{},[31427,31431,31436],{"type":21,"tag":4099,"props":31428,"children":31429},{},[31430],{"type":26,"value":3556},{"type":21,"tag":4099,"props":31432,"children":31433},{},[31434],{"type":26,"value":31435},"~0.75",{"type":21,"tag":4099,"props":31437,"children":31438},{},[31439],{"type":26,"value":31440},"2×edges + 4n",{"type":21,"tag":4074,"props":31442,"children":31443},{},[31444,31448,31453],{"type":21,"tag":4099,"props":31445,"children":31446},{},[31447],{"type":26,"value":2419},{"type":21,"tag":4099,"props":31449,"children":31450},{},[31451],{"type":26,"value":31452},"~0.86",{"type":21,"tag":4099,"props":31454,"children":31455},{},[31456],{"type":26,"value":31457},"4×edges + 8n",{"type":21,"tag":4074,"props":31459,"children":31460},{},[31461,31465,31470],{"type":21,"tag":4099,"props":31462,"children":31463},{},[31464],{"type":26,"value":6511},{"type":21,"tag":4099,"props":31466,"children":31467},{},[31468],{"type":26,"value":31469},"~0.91",{"type":21,"tag":4099,"props":31471,"children":31472},{},[31473],{"type":26,"value":31474},"6×edges + 12n",{"type":21,"tag":4074,"props":31476,"children":31477},{},[31478,31482,31487],{"type":21,"tag":4099,"props":31479,"children":31480},{},[31481],{"type":26,"value":6682},{"type":21,"tag":4099,"props":31483,"children":31484},{},[31485],{"type":26,"value":31486},"~0.95",{"type":21,"tag":4099,"props":31488,"children":31489},{},[31490],{"type":26,"value":31491},"10×edges + 20n",{"type":21,"tag":22,"props":31493,"children":31494},{},[31495,31497,31503,31505,31510,31511,31517],{"type":26,"value":31496},"El compromiso: los circuitos más profundos acumulan más ruido en el hardware real. En simuladores, usa ",{"type":21,"tag":2080,"props":31498,"children":31500},{"className":31499},[],[31501],{"type":26,"value":31502},"p=3",{"type":26,"value":31504}," o más. En QPU NISQ, ",{"type":21,"tag":2080,"props":31506,"children":31508},{"className":31507},[],[31509],{"type":26,"value":19553},{"type":26,"value":18816},{"type":21,"tag":2080,"props":31512,"children":31514},{"className":31513},[],[31515],{"type":26,"value":31516},"p=2",{"type":26,"value":31518}," suele ser el límite práctico.",{"type":21,"tag":49,"props":31520,"children":31522},{"id":31521},"cuándo-vale-la-pena-usar-qaoa",[31523],{"type":26,"value":31524},"¿Cuándo vale la pena usar QAOA?",{"type":21,"tag":22,"props":31526,"children":31527},{},[31528],{"type":21,"tag":180,"props":31529,"children":31530},{},[31531],{"type":26,"value":31532},"Actualmente útil para:",{"type":21,"tag":3118,"props":31534,"children":31535},{},[31536,31541,31546],{"type":21,"tag":3122,"props":31537,"children":31538},{},[31539],{"type":26,"value":31540},"Evaluar el rendimiento de dispositivos NISQ (QAOA es un circuito de benchmark estándar)",{"type":21,"tag":3122,"props":31542,"children":31543},{},[31544],{"type":26,"value":31545},"Investigación académica sobre algoritmos cuánticos variacionales",{"type":21,"tag":3122,"props":31547,"children":31548},{},[31549],{"type":26,"value":31550},"Grafos pequeños (menos de 20 nodos) en simuladores",{"type":21,"tag":22,"props":31552,"children":31553},{},[31554],{"type":21,"tag":180,"props":31555,"children":31556},{},[31557],{"type":26,"value":31558},"Aún no útil para:",{"type":21,"tag":3118,"props":31560,"children":31561},{},[31562,31567],{"type":21,"tag":3122,"props":31563,"children":31564},{},[31565],{"type":26,"value":31566},"Optimización en producción sobre hardware real a escala — las heurísticas clásicas (recocido simulado, búsqueda tabú) todavía superan a QAOA en problemas prácticos",{"type":21,"tag":3122,"props":31568,"children":31569},{},[31570],{"type":26,"value":31571},"Grafos grandes — la profundidad del circuito escala con la densidad del grafo",{"type":21,"tag":22,"props":31573,"children":31574},{},[31575,31580,31582,31587],{"type":21,"tag":180,"props":31576,"children":31577},{},[31578],{"type":26,"value":31579},"La promesa:",{"type":26,"value":31581}," En el futuro hardware tolerante a fallos con circuitos de gran profundidad, QAOA con un ",{"type":21,"tag":2080,"props":31583,"children":31585},{"className":31584},[],[31586],{"type":26,"value":22},{"type":26,"value":31588}," grande podría proporcionar aceleraciones genuinas para la optimización NP-difícil densa. Los fundamentos teóricos son sólidos; el hardware aún no está a la altura.",{"type":21,"tag":49,"props":31590,"children":31592},{"id":31591},"próximos-pasos",[31593],{"type":26,"value":31594},"Próximos pasos",{"type":21,"tag":3118,"props":31596,"children":31597},{},[31598,31611,31624],{"type":21,"tag":3122,"props":31599,"children":31600},{},[31601,31609],{"type":21,"tag":180,"props":31602,"children":31603},{},[31604],{"type":21,"tag":29,"props":31605,"children":31606},{"href":14069},[31607],{"type":26,"value":31608},"Guía del SDK PennyLane",{"type":26,"value":31610}," — configura PennyLane para más algoritmos variacionales",{"type":21,"tag":3122,"props":31612,"children":31613},{},[31614,31622],{"type":21,"tag":180,"props":31615,"children":31616},{},[31617],{"type":21,"tag":29,"props":31618,"children":31619},{"href":338},[31620],{"type":26,"value":31621},"Guía de VQE",{"type":26,"value":31623}," — el algoritmo hermano para química cuántica",{"type":21,"tag":3122,"props":31625,"children":31626},{},[31627,31634],{"type":21,"tag":180,"props":31628,"children":31629},{},[31630],{"type":21,"tag":29,"props":31631,"children":31632},{"href":19017},[31633],{"type":26,"value":19020},{"type":26,"value":31635}," — ejecuta QAOA en cualquier backend con una sola API",{"type":21,"tag":2694,"props":31637,"children":31638},{},[31639],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":31641},[31642,31643,31644,31645,31646,31647,31648,31649],{"id":28932,"depth":150,"text":28935},{"id":28975,"depth":150,"text":28978},{"id":29050,"depth":150,"text":29053},{"id":30215,"depth":150,"text":30218},{"id":30855,"depth":150,"text":30858},{"id":31374,"depth":150,"text":31377},{"id":31521,"depth":150,"text":31524},{"id":31591,"depth":150,"text":31594},"content:es:blog:qaoa-max-cut-tutorial.md","es\u002Fblog\u002Fqaoa-max-cut-tutorial.md","es\u002Fblog\u002Fqaoa-max-cut-tutorial",{"_path":31654,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":31655,"description":31656,"date":31657,"author":11,"tags":31658,"readingTime":171,"body":31660,"_type":156,"_id":33649,"_source":158,"_file":33650,"_stem":33651,"_extension":161},"\u002Fes\u002Fblog\u002Fquantum-simulators-compared","Comparación de simuladores cuánticos gratuitos: Qiskit Aer vs Cirq vs PennyLane vs CUDA-Q","Una comparación práctica de los principales simuladores cuánticos gratuitos: rendimiento, límites de cúbits, soporte de GPU y cuándo usar cada uno.","2026-02-10",[20187,3065,31659],"GPU",{"type":18,"children":31661,"toc":33640},[31662,31667,31673,31856,31862,31871,31924,32094,32104,32110,32126,32453,32473,32496,32544,32554,32560,32569,32806,32816,32834,32844,32850,32859,33035,33045,33051,33063,33276,33286,33292,33303,33631,33636],{"type":21,"tag":22,"props":31663,"children":31664},{},[31665],{"type":26,"value":31666},"Los simuladores cuánticos te permiten probar circuitos sin esperar en las colas del hardware ni pagar por cada disparo. Pero con seis grandes simuladores disponibles de forma gratuita, ¿cuál deberías usar? Aquí tienes un análisis práctico.",{"type":21,"tag":49,"props":31668,"children":31670},{"id":31669},"la-respuesta-rápida",[31671],{"type":26,"value":31672},"La respuesta rápida",{"type":21,"tag":4066,"props":31674,"children":31675},{},[31676,31701],{"type":21,"tag":4070,"props":31677,"children":31678},{},[31679],{"type":21,"tag":4074,"props":31680,"children":31681},{},[31682,31687,31691,31696],{"type":21,"tag":4078,"props":31683,"children":31684},{},[31685],{"type":26,"value":31686},"Simulador",{"type":21,"tag":4078,"props":31688,"children":31689},{},[31690],{"type":26,"value":20809},{"type":21,"tag":4078,"props":31692,"children":31693},{},[31694],{"type":26,"value":31695},"Máx. cúbits (CPU)",{"type":21,"tag":4078,"props":31697,"children":31698},{},[31699],{"type":26,"value":31700},"¿GPU?",{"type":21,"tag":4092,"props":31702,"children":31703},{},[31704,31730,31756,31782,31807,31832],{"type":21,"tag":4074,"props":31705,"children":31706},{},[31707,31715,31720,31725],{"type":21,"tag":4099,"props":31708,"children":31709},{},[31710],{"type":21,"tag":180,"props":31711,"children":31712},{},[31713],{"type":26,"value":31714},"Qiskit Aer",{"type":21,"tag":4099,"props":31716,"children":31717},{},[31718],{"type":26,"value":31719},"Uso general",{"type":21,"tag":4099,"props":31721,"children":31722},{},[31723],{"type":26,"value":31724},"~30 (statevector)",{"type":21,"tag":4099,"props":31726,"children":31727},{},[31728],{"type":26,"value":31729},"✅ AerCuda",{"type":21,"tag":4074,"props":31731,"children":31732},{},[31733,31741,31746,31751],{"type":21,"tag":4099,"props":31734,"children":31735},{},[31736],{"type":21,"tag":180,"props":31737,"children":31738},{},[31739],{"type":26,"value":31740},"Cirq Simulator",{"type":21,"tag":4099,"props":31742,"children":31743},{},[31744],{"type":26,"value":31745},"Circuitos de Cirq, matriz de densidad",{"type":21,"tag":4099,"props":31747,"children":31748},{},[31749],{"type":26,"value":31750},"~25",{"type":21,"tag":4099,"props":31752,"children":31753},{},[31754],{"type":26,"value":31755},"❌",{"type":21,"tag":4074,"props":31757,"children":31758},{},[31759,31767,31772,31777],{"type":21,"tag":4099,"props":31760,"children":31761},{},[31762],{"type":21,"tag":180,"props":31763,"children":31764},{},[31765],{"type":26,"value":31766},"PennyLane default.qubit",{"type":21,"tag":4099,"props":31768,"children":31769},{},[31770],{"type":26,"value":31771},"QML, gradientes",{"type":21,"tag":4099,"props":31773,"children":31774},{},[31775],{"type":26,"value":31776},"~20",{"type":21,"tag":4099,"props":31778,"children":31779},{},[31780],{"type":26,"value":31781},"✅ lightning.gpu",{"type":21,"tag":4074,"props":31783,"children":31784},{},[31785,31793,31798,31803],{"type":21,"tag":4099,"props":31786,"children":31787},{},[31788],{"type":21,"tag":180,"props":31789,"children":31790},{},[31791],{"type":26,"value":31792},"PennyLane lightning.qubit",{"type":21,"tag":4099,"props":31794,"children":31795},{},[31796],{"type":26,"value":31797},"Simulación rápida en CPU",{"type":21,"tag":4099,"props":31799,"children":31800},{},[31801],{"type":26,"value":31802},"~30",{"type":21,"tag":4099,"props":31804,"children":31805},{},[31806],{"type":26,"value":31781},{"type":21,"tag":4074,"props":31808,"children":31809},{},[31810,31817,31822,31827],{"type":21,"tag":4099,"props":31811,"children":31812},{},[31813],{"type":21,"tag":180,"props":31814,"children":31815},{},[31816],{"type":26,"value":20631},{"type":21,"tag":4099,"props":31818,"children":31819},{},[31820],{"type":26,"value":31821},"Circuitos grandes, velocidad",{"type":21,"tag":4099,"props":31823,"children":31824},{},[31825],{"type":26,"value":31826},"~34 con una sola GPU",{"type":21,"tag":4099,"props":31828,"children":31829},{},[31830],{"type":26,"value":31831},"✅ nativo",{"type":21,"tag":4074,"props":31833,"children":31834},{},[31835,31843,31848,31852],{"type":21,"tag":4099,"props":31836,"children":31837},{},[31838],{"type":21,"tag":180,"props":31839,"children":31840},{},[31841],{"type":26,"value":31842},"Braket LocalSimulator",{"type":21,"tag":4099,"props":31844,"children":31845},{},[31846],{"type":26,"value":31847},"Circuitos de Braket, gratuito",{"type":21,"tag":4099,"props":31849,"children":31850},{},[31851],{"type":26,"value":31750},{"type":21,"tag":4099,"props":31853,"children":31854},{},[31855],{"type":26,"value":31755},{"type":21,"tag":49,"props":31857,"children":31859},{"id":31858},"qiskit-aer-el-caballo-de-batalla",[31860],{"type":26,"value":31861},"Qiskit Aer: el caballo de batalla",{"type":21,"tag":22,"props":31863,"children":31864},{},[31865,31869],{"type":21,"tag":29,"props":31866,"children":31867},{"href":7091},[31868],{"type":26,"value":31714},{"type":26,"value":31870}," es el simulador gratuito más completo en funcionalidades. Admite múltiples métodos de simulación:",{"type":21,"tag":3118,"props":31872,"children":31873},{},[31874,31884,31894,31904,31914],{"type":21,"tag":3122,"props":31875,"children":31876},{},[31877,31882],{"type":21,"tag":180,"props":31878,"children":31879},{},[31880],{"type":26,"value":31881},"statevector_simulator",{"type":26,"value":31883},": Simulación exacta de hasta ~30 cúbits. La memoria escala como 2ⁿ números complejos (se necesitan 16 GB de RAM para 30 cúbits).",{"type":21,"tag":3122,"props":31885,"children":31886},{},[31887,31892],{"type":21,"tag":180,"props":31888,"children":31889},{},[31890],{"type":26,"value":31891},"qasm_simulator",{"type":26,"value":31893},": Muestreo basado en disparos con soporte de modelos de ruido",{"type":21,"tag":3122,"props":31895,"children":31896},{},[31897,31902],{"type":21,"tag":180,"props":31898,"children":31899},{},[31900],{"type":26,"value":31901},"density_matrix",{"type":26,"value":31903},": Simula estados mixtos y sistemas cuánticos abiertos",{"type":21,"tag":3122,"props":31905,"children":31906},{},[31907,31912],{"type":21,"tag":180,"props":31908,"children":31909},{},[31910],{"type":26,"value":31911},"mps",{"type":26,"value":31913},": Matrix Product State — simula circuitos con entrelazamiento limitado de hasta cientos de cúbits",{"type":21,"tag":3122,"props":31915,"children":31916},{},[31917,31922],{"type":21,"tag":180,"props":31918,"children":31919},{},[31920],{"type":26,"value":31921},"stabilizer",{"type":26,"value":31923},": Solo circuitos de Clifford, pero escala a miles de cúbits en tiempo polinómico",{"type":21,"tag":2310,"props":31925,"children":31927},{"className":3188,"code":31926,"language":3190,"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",[31928],{"type":21,"tag":2080,"props":31929,"children":31930},{"__ignoreMap":7},[31931,31950,31957,31965,31980,31987,31995,32028,32061],{"type":21,"tag":2320,"props":31932,"children":31933},{"class":2322,"line":2323},[31934,31938,31942,31946],{"type":21,"tag":2320,"props":31935,"children":31936},{"style":3200},[31937],{"type":26,"value":3203},{"type":21,"tag":2320,"props":31939,"children":31940},{"style":2327},[31941],{"type":26,"value":4316},{"type":21,"tag":2320,"props":31943,"children":31944},{"style":3200},[31945],{"type":26,"value":3213},{"type":21,"tag":2320,"props":31947,"children":31948},{"style":2327},[31949],{"type":26,"value":4325},{"type":21,"tag":2320,"props":31951,"children":31952},{"class":2322,"line":150},[31953],{"type":21,"tag":2320,"props":31954,"children":31955},{"emptyLinePlaceholder":3224},[31956],{"type":26,"value":3227},{"type":21,"tag":2320,"props":31958,"children":31959},{"class":2322,"line":2341},[31960],{"type":21,"tag":2320,"props":31961,"children":31962},{"style":3450},[31963],{"type":26,"value":31964},"# Default: automatic method selection\n",{"type":21,"tag":2320,"props":31966,"children":31967},{"class":2322,"line":2403},[31968,31972,31976],{"type":21,"tag":2320,"props":31969,"children":31970},{"style":2327},[31971],{"type":26,"value":8424},{"type":21,"tag":2320,"props":31973,"children":31974},{"style":3200},[31975],{"type":26,"value":3240},{"type":21,"tag":2320,"props":31977,"children":31978},{"style":2327},[31979],{"type":26,"value":8433},{"type":21,"tag":2320,"props":31981,"children":31982},{"class":2322,"line":2427},[31983],{"type":21,"tag":2320,"props":31984,"children":31985},{"emptyLinePlaceholder":3224},[31986],{"type":26,"value":3227},{"type":21,"tag":2320,"props":31988,"children":31989},{"class":2322,"line":854},[31990],{"type":21,"tag":2320,"props":31991,"children":31992},{"style":3450},[31993],{"type":26,"value":31994},"# Force a specific method\n",{"type":21,"tag":2320,"props":31996,"children":31997},{"class":2322,"line":171},[31998,32003,32007,32011,32015,32019,32024],{"type":21,"tag":2320,"props":31999,"children":32000},{"style":2327},[32001],{"type":26,"value":32002},"sim_sv ",{"type":21,"tag":2320,"props":32004,"children":32005},{"style":3200},[32006],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32008,"children":32009},{"style":2327},[32010],{"type":26,"value":4614},{"type":21,"tag":2320,"props":32012,"children":32013},{"style":3265},[32014],{"type":26,"value":30048},{"type":21,"tag":2320,"props":32016,"children":32017},{"style":3200},[32018],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32020,"children":32021},{"style":2356},[32022],{"type":26,"value":32023},"'statevector'",{"type":21,"tag":2320,"props":32025,"children":32026},{"style":2327},[32027],{"type":26,"value":3300},{"type":21,"tag":2320,"props":32029,"children":32030},{"class":2322,"line":16},[32031,32036,32040,32044,32048,32052,32057],{"type":21,"tag":2320,"props":32032,"children":32033},{"style":2327},[32034],{"type":26,"value":32035},"sim_dm ",{"type":21,"tag":2320,"props":32037,"children":32038},{"style":3200},[32039],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32041,"children":32042},{"style":2327},[32043],{"type":26,"value":4614},{"type":21,"tag":2320,"props":32045,"children":32046},{"style":3265},[32047],{"type":26,"value":30048},{"type":21,"tag":2320,"props":32049,"children":32050},{"style":3200},[32051],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32053,"children":32054},{"style":2356},[32055],{"type":26,"value":32056},"'density_matrix'",{"type":21,"tag":2320,"props":32058,"children":32059},{"style":2327},[32060],{"type":26,"value":3300},{"type":21,"tag":2320,"props":32062,"children":32063},{"class":2322,"line":1370},[32064,32069,32073,32077,32081,32085,32090],{"type":21,"tag":2320,"props":32065,"children":32066},{"style":2327},[32067],{"type":26,"value":32068},"sim_mps ",{"type":21,"tag":2320,"props":32070,"children":32071},{"style":3200},[32072],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32074,"children":32075},{"style":2327},[32076],{"type":26,"value":4614},{"type":21,"tag":2320,"props":32078,"children":32079},{"style":3265},[32080],{"type":26,"value":30048},{"type":21,"tag":2320,"props":32082,"children":32083},{"style":3200},[32084],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32086,"children":32087},{"style":2356},[32088],{"type":26,"value":32089},"'matrix_product_state'",{"type":21,"tag":2320,"props":32091,"children":32092},{"style":2327},[32093],{"type":26,"value":3300},{"type":21,"tag":22,"props":32095,"children":32096},{},[32097,32102],{"type":21,"tag":180,"props":32098,"children":32099},{},[32100],{"type":26,"value":32101},"Cuándo usar Aer:",{"type":26,"value":32103}," Para cualquier flujo de trabajo de Qiskit, modelado de ruido, o cuando quieras reproducir de cerca el comportamiento del hardware de IBM.",{"type":21,"tag":49,"props":32105,"children":32107},{"id":32106},"pennylane-lo-mejor-para-el-aprendizaje-automático-cuántico",[32108],{"type":26,"value":32109},"PennyLane: lo mejor para el aprendizaje automático cuántico",{"type":21,"tag":22,"props":32111,"children":32112},{},[32113,32117,32119,32124],{"type":21,"tag":29,"props":32114,"children":32115},{"href":14069},[32116],{"type":26,"value":13785},{"type":26,"value":32118}," brilla cuando necesitas circuitos diferenciables. Su simulador ",{"type":21,"tag":2080,"props":32120,"children":32122},{"className":32121},[],[32123],{"type":26,"value":15416},{"type":26,"value":32125}," calcula gradientes exactos mediante la regla de desplazamiento de parámetros, lo que permite la optimización basada en gradientes de circuitos cuánticos:",{"type":21,"tag":2310,"props":32127,"children":32129},{"className":3188,"code":32128,"language":3190,"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",[32130],{"type":21,"tag":2080,"props":32131,"children":32132},{"__ignoreMap":7},[32133,32152,32171,32178,32217,32224,32235,32251,32284,32316,32351,32370,32377,32385,32402,32436],{"type":21,"tag":2320,"props":32134,"children":32135},{"class":2322,"line":2323},[32136,32140,32144,32148],{"type":21,"tag":2320,"props":32137,"children":32138},{"style":3200},[32139],{"type":26,"value":3213},{"type":21,"tag":2320,"props":32141,"children":32142},{"style":2327},[32143],{"type":26,"value":14092},{"type":21,"tag":2320,"props":32145,"children":32146},{"style":3200},[32147],{"type":26,"value":4278},{"type":21,"tag":2320,"props":32149,"children":32150},{"style":2327},[32151],{"type":26,"value":14101},{"type":21,"tag":2320,"props":32153,"children":32154},{"class":2322,"line":150},[32155,32159,32163,32167],{"type":21,"tag":2320,"props":32156,"children":32157},{"style":3200},[32158],{"type":26,"value":3213},{"type":21,"tag":2320,"props":32160,"children":32161},{"style":2327},[32162],{"type":26,"value":4273},{"type":21,"tag":2320,"props":32164,"children":32165},{"style":3200},[32166],{"type":26,"value":4278},{"type":21,"tag":2320,"props":32168,"children":32169},{"style":2327},[32170],{"type":26,"value":4283},{"type":21,"tag":2320,"props":32172,"children":32173},{"class":2322,"line":2341},[32174],{"type":21,"tag":2320,"props":32175,"children":32176},{"emptyLinePlaceholder":3224},[32177],{"type":26,"value":3227},{"type":21,"tag":2320,"props":32179,"children":32180},{"class":2322,"line":2403},[32181,32185,32189,32193,32197,32201,32205,32209,32213],{"type":21,"tag":2320,"props":32182,"children":32183},{"style":2327},[32184],{"type":26,"value":14225},{"type":21,"tag":2320,"props":32186,"children":32187},{"style":3200},[32188],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32190,"children":32191},{"style":2327},[32192],{"type":26,"value":14234},{"type":21,"tag":2320,"props":32194,"children":32195},{"style":2356},[32196],{"type":26,"value":14239},{"type":21,"tag":2320,"props":32198,"children":32199},{"style":2327},[32200],{"type":26,"value":1315},{"type":21,"tag":2320,"props":32202,"children":32203},{"style":3265},[32204],{"type":26,"value":14248},{"type":21,"tag":2320,"props":32206,"children":32207},{"style":3200},[32208],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32210,"children":32211},{"style":2345},[32212],{"type":26,"value":2419},{"type":21,"tag":2320,"props":32214,"children":32215},{"style":2327},[32216],{"type":26,"value":3300},{"type":21,"tag":2320,"props":32218,"children":32219},{"class":2322,"line":2427},[32220],{"type":21,"tag":2320,"props":32221,"children":32222},{"emptyLinePlaceholder":3224},[32223],{"type":26,"value":3227},{"type":21,"tag":2320,"props":32225,"children":32226},{"class":2322,"line":854},[32227,32231],{"type":21,"tag":2320,"props":32228,"children":32229},{"style":4364},[32230],{"type":26,"value":14272},{"type":21,"tag":2320,"props":32232,"children":32233},{"style":2327},[32234],{"type":26,"value":14277},{"type":21,"tag":2320,"props":32236,"children":32237},{"class":2322,"line":171},[32238,32242,32246],{"type":21,"tag":2320,"props":32239,"children":32240},{"style":3200},[32241],{"type":26,"value":4361},{"type":21,"tag":2320,"props":32243,"children":32244},{"style":4364},[32245],{"type":26,"value":14289},{"type":21,"tag":2320,"props":32247,"children":32248},{"style":2327},[32249],{"type":26,"value":32250},"(theta):\n",{"type":21,"tag":2320,"props":32252,"children":32253},{"class":2322,"line":16},[32254,32259,32263,32268,32272,32276,32280],{"type":21,"tag":2320,"props":32255,"children":32256},{"style":2327},[32257],{"type":26,"value":32258},"    qml.RX(theta[",{"type":21,"tag":2320,"props":32260,"children":32261},{"style":2345},[32262],{"type":26,"value":5168},{"type":21,"tag":2320,"props":32264,"children":32265},{"style":2327},[32266],{"type":26,"value":32267},"], ",{"type":21,"tag":2320,"props":32269,"children":32270},{"style":3265},[32271],{"type":26,"value":14248},{"type":21,"tag":2320,"props":32273,"children":32274},{"style":3200},[32275],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32277,"children":32278},{"style":2345},[32279],{"type":26,"value":5168},{"type":21,"tag":2320,"props":32281,"children":32282},{"style":2327},[32283],{"type":26,"value":3300},{"type":21,"tag":2320,"props":32285,"children":32286},{"class":2322,"line":1370},[32287,32292,32296,32300,32304,32308,32312],{"type":21,"tag":2320,"props":32288,"children":32289},{"style":2327},[32290],{"type":26,"value":32291},"    qml.RY(theta[",{"type":21,"tag":2320,"props":32293,"children":32294},{"style":2345},[32295],{"type":26,"value":3556},{"type":21,"tag":2320,"props":32297,"children":32298},{"style":2327},[32299],{"type":26,"value":32267},{"type":21,"tag":2320,"props":32301,"children":32302},{"style":3265},[32303],{"type":26,"value":14248},{"type":21,"tag":2320,"props":32305,"children":32306},{"style":3200},[32307],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32309,"children":32310},{"style":2345},[32311],{"type":26,"value":3556},{"type":21,"tag":2320,"props":32313,"children":32314},{"style":2327},[32315],{"type":26,"value":3300},{"type":21,"tag":2320,"props":32317,"children":32318},{"class":2322,"line":3446},[32319,32323,32327,32331,32335,32339,32343,32347],{"type":21,"tag":2320,"props":32320,"children":32321},{"style":2327},[32322],{"type":26,"value":21790},{"type":21,"tag":2320,"props":32324,"children":32325},{"style":3265},[32326],{"type":26,"value":14248},{"type":21,"tag":2320,"props":32328,"children":32329},{"style":3200},[32330],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32332,"children":32333},{"style":2327},[32334],{"type":26,"value":21803},{"type":21,"tag":2320,"props":32336,"children":32337},{"style":2345},[32338],{"type":26,"value":5168},{"type":21,"tag":2320,"props":32340,"children":32341},{"style":2327},[32342],{"type":26,"value":1315},{"type":21,"tag":2320,"props":32344,"children":32345},{"style":2345},[32346],{"type":26,"value":3556},{"type":21,"tag":2320,"props":32348,"children":32349},{"style":2327},[32350],{"type":26,"value":3561},{"type":21,"tag":2320,"props":32352,"children":32353},{"class":2322,"line":3456},[32354,32358,32362,32366],{"type":21,"tag":2320,"props":32355,"children":32356},{"style":3200},[32357],{"type":26,"value":4586},{"type":21,"tag":2320,"props":32359,"children":32360},{"style":2327},[32361],{"type":26,"value":14404},{"type":21,"tag":2320,"props":32363,"children":32364},{"style":2345},[32365],{"type":26,"value":5168},{"type":21,"tag":2320,"props":32367,"children":32368},{"style":2327},[32369],{"type":26,"value":12368},{"type":21,"tag":2320,"props":32371,"children":32372},{"class":2322,"line":474},[32373],{"type":21,"tag":2320,"props":32374,"children":32375},{"emptyLinePlaceholder":3224},[32376],{"type":26,"value":3227},{"type":21,"tag":2320,"props":32378,"children":32379},{"class":2322,"line":3516},[32380],{"type":21,"tag":2320,"props":32381,"children":32382},{"style":3450},[32383],{"type":26,"value":32384},"# Automatic gradient computation\n",{"type":21,"tag":2320,"props":32386,"children":32387},{"class":2322,"line":3564},[32388,32393,32397],{"type":21,"tag":2320,"props":32389,"children":32390},{"style":2327},[32391],{"type":26,"value":32392},"grad_fn ",{"type":21,"tag":2320,"props":32394,"children":32395},{"style":3200},[32396],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32398,"children":32399},{"style":2327},[32400],{"type":26,"value":32401}," qml.grad(circuit)\n",{"type":21,"tag":2320,"props":32403,"children":32404},{"class":2322,"line":3606},[32405,32410,32414,32419,32423,32427,32432],{"type":21,"tag":2320,"props":32406,"children":32407},{"style":2327},[32408],{"type":26,"value":32409},"theta ",{"type":21,"tag":2320,"props":32411,"children":32412},{"style":3200},[32413],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32415,"children":32416},{"style":2327},[32417],{"type":26,"value":32418}," np.array([",{"type":21,"tag":2320,"props":32420,"children":32421},{"style":2345},[32422],{"type":26,"value":2442},{"type":21,"tag":2320,"props":32424,"children":32425},{"style":2327},[32426],{"type":26,"value":1315},{"type":21,"tag":2320,"props":32428,"children":32429},{"style":2345},[32430],{"type":26,"value":32431},"1.2",{"type":21,"tag":2320,"props":32433,"children":32434},{"style":2327},[32435],{"type":26,"value":3561},{"type":21,"tag":2320,"props":32437,"children":32438},{"class":2322,"line":4631},[32439,32443,32448],{"type":21,"tag":2320,"props":32440,"children":32441},{"style":2345},[32442],{"type":26,"value":3315},{"type":21,"tag":2320,"props":32444,"children":32445},{"style":2327},[32446],{"type":26,"value":32447},"(grad_fn(theta))  ",{"type":21,"tag":2320,"props":32449,"children":32450},{"style":3450},[32451],{"type":26,"value":32452},"# exact gradient\n",{"type":21,"tag":22,"props":32454,"children":32455},{},[32456,32458,32464,32466,32471],{"type":26,"value":32457},"Para una simulación más rápida sin gradientes, usa ",{"type":21,"tag":2080,"props":32459,"children":32461},{"className":32460},[],[32462],{"type":26,"value":32463},"lightning.qubit",{"type":26,"value":32465}," (backend en C++, ~10× más rápido que ",{"type":21,"tag":2080,"props":32467,"children":32469},{"className":32468},[],[32470],{"type":26,"value":15416},{"type":26,"value":32472},"):",{"type":21,"tag":2310,"props":32474,"children":32476},{"className":9743,"code":32475,"language":9745,"meta":7,"style":7},"pip install pennylane-lightning\n",[32477],{"type":21,"tag":2080,"props":32478,"children":32479},{"__ignoreMap":7},[32480],{"type":21,"tag":2320,"props":32481,"children":32482},{"class":2322,"line":2323},[32483,32487,32491],{"type":21,"tag":2320,"props":32484,"children":32485},{"style":4364},[32486],{"type":26,"value":11794},{"type":21,"tag":2320,"props":32488,"children":32489},{"style":2356},[32490],{"type":26,"value":11799},{"type":21,"tag":2320,"props":32492,"children":32493},{"style":2356},[32494],{"type":26,"value":32495}," pennylane-lightning\n",{"type":21,"tag":2310,"props":32497,"children":32499},{"className":3188,"code":32498,"language":3190,"meta":7,"style":7},"dev = qml.device(\"lightning.qubit\", wires=20)\n",[32500],{"type":21,"tag":2080,"props":32501,"children":32502},{"__ignoreMap":7},[32503],{"type":21,"tag":2320,"props":32504,"children":32505},{"class":2322,"line":2323},[32506,32510,32514,32518,32523,32527,32531,32535,32540],{"type":21,"tag":2320,"props":32507,"children":32508},{"style":2327},[32509],{"type":26,"value":14225},{"type":21,"tag":2320,"props":32511,"children":32512},{"style":3200},[32513],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32515,"children":32516},{"style":2327},[32517],{"type":26,"value":14234},{"type":21,"tag":2320,"props":32519,"children":32520},{"style":2356},[32521],{"type":26,"value":32522},"\"lightning.qubit\"",{"type":21,"tag":2320,"props":32524,"children":32525},{"style":2327},[32526],{"type":26,"value":1315},{"type":21,"tag":2320,"props":32528,"children":32529},{"style":3265},[32530],{"type":26,"value":14248},{"type":21,"tag":2320,"props":32532,"children":32533},{"style":3200},[32534],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32536,"children":32537},{"style":2345},[32538],{"type":26,"value":32539},"20",{"type":21,"tag":2320,"props":32541,"children":32542},{"style":2327},[32543],{"type":26,"value":3300},{"type":21,"tag":22,"props":32545,"children":32546},{},[32547,32552],{"type":21,"tag":180,"props":32548,"children":32549},{},[32550],{"type":26,"value":32551},"Cuándo usar PennyLane:",{"type":26,"value":32553}," Algoritmos variacionales (VQE, QAOA), aprendizaje automático cuántico, cualquier flujo de trabajo que requiera gradientes de circuitos.",{"type":21,"tag":49,"props":32555,"children":32557},{"id":32556},"nvidia-cuda-q-cuando-la-velocidad-importa",[32558],{"type":26,"value":32559},"NVIDIA CUDA-Q: cuando la velocidad importa",{"type":21,"tag":22,"props":32561,"children":32562},{},[32563,32567],{"type":21,"tag":29,"props":32564,"children":32565},{"href":20628},[32566],{"type":26,"value":18214},{"type":26,"value":32568}," ofrece simulación acelerada por GPU que puede ser entre 100 y 10.000× más rápida que los simuladores de CPU para circuitos grandes. Si tienes cualquier GPU de NVIDIA, esta es la opción adecuada para circuitos de más de 25 cúbits:",{"type":21,"tag":2310,"props":32570,"children":32572},{"className":3188,"code":32571,"language":3190,"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",[32573],{"type":21,"tag":2080,"props":32574,"children":32575},{"__ignoreMap":7},[32576,32587,32594,32601,32626,32642,32657,32692,32712,32720,32727,32735,32752,32794],{"type":21,"tag":2320,"props":32577,"children":32578},{"class":2322,"line":2323},[32579,32583],{"type":21,"tag":2320,"props":32580,"children":32581},{"style":3200},[32582],{"type":26,"value":3213},{"type":21,"tag":2320,"props":32584,"children":32585},{"style":2327},[32586],{"type":26,"value":21903},{"type":21,"tag":2320,"props":32588,"children":32589},{"class":2322,"line":150},[32590],{"type":21,"tag":2320,"props":32591,"children":32592},{"emptyLinePlaceholder":3224},[32593],{"type":26,"value":3227},{"type":21,"tag":2320,"props":32595,"children":32596},{"class":2322,"line":2341},[32597],{"type":21,"tag":2320,"props":32598,"children":32599},{"style":4364},[32600],{"type":26,"value":21911},{"type":21,"tag":2320,"props":32602,"children":32603},{"class":2322,"line":2403},[32604,32608,32613,32618,32622],{"type":21,"tag":2320,"props":32605,"children":32606},{"style":3200},[32607],{"type":26,"value":4361},{"type":21,"tag":2320,"props":32609,"children":32610},{"style":4364},[32611],{"type":26,"value":32612}," large_circuit",{"type":21,"tag":2320,"props":32614,"children":32615},{"style":2327},[32616],{"type":26,"value":32617},"(n: ",{"type":21,"tag":2320,"props":32619,"children":32620},{"style":2345},[32621],{"type":26,"value":5023},{"type":21,"tag":2320,"props":32623,"children":32624},{"style":2327},[32625],{"type":26,"value":4414},{"type":21,"tag":2320,"props":32627,"children":32628},{"class":2322,"line":2427},[32629,32633,32637],{"type":21,"tag":2320,"props":32630,"children":32631},{"style":2327},[32632],{"type":26,"value":21934},{"type":21,"tag":2320,"props":32634,"children":32635},{"style":3200},[32636],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32638,"children":32639},{"style":2327},[32640],{"type":26,"value":32641}," cudaq.qvector(n)\n",{"type":21,"tag":2320,"props":32643,"children":32644},{"class":2322,"line":854},[32645,32649,32653],{"type":21,"tag":2320,"props":32646,"children":32647},{"style":2327},[32648],{"type":26,"value":21959},{"type":21,"tag":2320,"props":32650,"children":32651},{"style":2345},[32652],{"type":26,"value":5168},{"type":21,"tag":2320,"props":32654,"children":32655},{"style":2327},[32656],{"type":26,"value":3561},{"type":21,"tag":2320,"props":32658,"children":32659},{"class":2322,"line":171},[32660,32664,32668,32672,32676,32680,32684,32688],{"type":21,"tag":2320,"props":32661,"children":32662},{"style":3200},[32663],{"type":26,"value":4740},{"type":21,"tag":2320,"props":32665,"children":32666},{"style":2327},[32667],{"type":26,"value":4745},{"type":21,"tag":2320,"props":32669,"children":32670},{"style":3200},[32671],{"type":26,"value":3503},{"type":21,"tag":2320,"props":32673,"children":32674},{"style":2345},[32675],{"type":26,"value":3508},{"type":21,"tag":2320,"props":32677,"children":32678},{"style":2327},[32679],{"type":26,"value":7669},{"type":21,"tag":2320,"props":32681,"children":32682},{"style":3200},[32683],{"type":26,"value":4848},{"type":21,"tag":2320,"props":32685,"children":32686},{"style":2345},[32687],{"type":26,"value":6099},{"type":21,"tag":2320,"props":32689,"children":32690},{"style":2327},[32691],{"type":26,"value":4414},{"type":21,"tag":2320,"props":32693,"children":32694},{"class":2322,"line":16},[32695,32700,32704,32708],{"type":21,"tag":2320,"props":32696,"children":32697},{"style":2327},[32698],{"type":26,"value":32699},"        cx(qvec[i], qvec[i ",{"type":21,"tag":2320,"props":32701,"children":32702},{"style":3200},[32703],{"type":26,"value":6528},{"type":21,"tag":2320,"props":32705,"children":32706},{"style":2345},[32707],{"type":26,"value":6099},{"type":21,"tag":2320,"props":32709,"children":32710},{"style":2327},[32711],{"type":26,"value":3561},{"type":21,"tag":2320,"props":32713,"children":32714},{"class":2322,"line":1370},[32715],{"type":21,"tag":2320,"props":32716,"children":32717},{"style":2327},[32718],{"type":26,"value":32719},"    mz(qvec)\n",{"type":21,"tag":2320,"props":32721,"children":32722},{"class":2322,"line":3446},[32723],{"type":21,"tag":2320,"props":32724,"children":32725},{"emptyLinePlaceholder":3224},[32726],{"type":26,"value":3227},{"type":21,"tag":2320,"props":32728,"children":32729},{"class":2322,"line":3456},[32730],{"type":21,"tag":2320,"props":32731,"children":32732},{"style":3450},[32733],{"type":26,"value":32734},"# Run on GPU (specify 'nvidia' target)\n",{"type":21,"tag":2320,"props":32736,"children":32737},{"class":2322,"line":474},[32738,32743,32748],{"type":21,"tag":2320,"props":32739,"children":32740},{"style":2327},[32741],{"type":26,"value":32742},"cudaq.set_target(",{"type":21,"tag":2320,"props":32744,"children":32745},{"style":2356},[32746],{"type":26,"value":32747},"'nvidia'",{"type":21,"tag":2320,"props":32749,"children":32750},{"style":2327},[32751],{"type":26,"value":3300},{"type":21,"tag":2320,"props":32753,"children":32754},{"class":2322,"line":3516},[32755,32759,32763,32768,32773,32777,32781,32785,32790],{"type":21,"tag":2320,"props":32756,"children":32757},{"style":2327},[32758],{"type":26,"value":8457},{"type":21,"tag":2320,"props":32760,"children":32761},{"style":3200},[32762],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32764,"children":32765},{"style":2327},[32766],{"type":26,"value":32767}," cudaq.sample(large_circuit, ",{"type":21,"tag":2320,"props":32769,"children":32770},{"style":2345},[32771],{"type":26,"value":32772},"30",{"type":21,"tag":2320,"props":32774,"children":32775},{"style":2327},[32776],{"type":26,"value":1315},{"type":21,"tag":2320,"props":32778,"children":32779},{"style":3265},[32780],{"type":26,"value":22008},{"type":21,"tag":2320,"props":32782,"children":32783},{"style":3200},[32784],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32786,"children":32787},{"style":2345},[32788],{"type":26,"value":32789},"10000",{"type":21,"tag":2320,"props":32791,"children":32792},{"style":2327},[32793],{"type":26,"value":3300},{"type":21,"tag":2320,"props":32795,"children":32796},{"class":2322,"line":3564},[32797,32801],{"type":21,"tag":2320,"props":32798,"children":32799},{"style":2345},[32800],{"type":26,"value":3315},{"type":21,"tag":2320,"props":32802,"children":32803},{"style":2327},[32804],{"type":26,"value":32805},"(counts)\n",{"type":21,"tag":22,"props":32807,"children":32808},{},[32809,32814],{"type":21,"tag":180,"props":32810,"children":32811},{},[32812],{"type":26,"value":32813},"Prueba de rendimiento",{"type":26,"value":32815}," (circuito GHZ, 28 cúbits, 1000 disparos):",{"type":21,"tag":3118,"props":32817,"children":32818},{},[32819,32824,32829],{"type":21,"tag":3122,"props":32820,"children":32821},{},[32822],{"type":26,"value":32823},"Qiskit Aer CPU: ~45 segundos",{"type":21,"tag":3122,"props":32825,"children":32826},{},[32827],{"type":26,"value":32828},"PennyLane lightning.qubit: ~30 segundos",{"type":21,"tag":3122,"props":32830,"children":32831},{},[32832],{"type":26,"value":32833},"CUDA-Q (GPU A100): ~0,8 segundos",{"type":21,"tag":22,"props":32835,"children":32836},{},[32837,32842],{"type":21,"tag":180,"props":32838,"children":32839},{},[32840],{"type":26,"value":32841},"Cuándo usar CUDA-Q:",{"type":26,"value":32843}," Cualquier circuito con más de 25 cúbits, simulaciones críticas en rendimiento, cargas de trabajo con múltiples GPU.",{"type":21,"tag":49,"props":32845,"children":32847},{"id":32846},"cirq-modelado-de-ruido-e-investigación-nisq",[32848],{"type":26,"value":32849},"Cirq: modelado de ruido e investigación NISQ",{"type":21,"tag":22,"props":32851,"children":32852},{},[32853,32857],{"type":21,"tag":29,"props":32854,"children":32855},{"href":8833},[32856],{"type":26,"value":20860},{"type":26,"value":32858}," incluye tres simuladores:",{"type":21,"tag":2310,"props":32860,"children":32862},{"className":3188,"code":32861,"language":3190,"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",[32863],{"type":21,"tag":2080,"props":32864,"children":32865},{"__ignoreMap":7},[32866,32878,32885,32893,32909,32916,32924,32941,32966,32973,33003,33010,33018],{"type":21,"tag":2320,"props":32867,"children":32868},{"class":2322,"line":2323},[32869,32873],{"type":21,"tag":2320,"props":32870,"children":32871},{"style":3200},[32872],{"type":26,"value":3213},{"type":21,"tag":2320,"props":32874,"children":32875},{"style":2327},[32876],{"type":26,"value":32877}," cirq\n",{"type":21,"tag":2320,"props":32879,"children":32880},{"class":2322,"line":150},[32881],{"type":21,"tag":2320,"props":32882,"children":32883},{"emptyLinePlaceholder":3224},[32884],{"type":26,"value":3227},{"type":21,"tag":2320,"props":32886,"children":32887},{"class":2322,"line":2341},[32888],{"type":21,"tag":2320,"props":32889,"children":32890},{"style":3450},[32891],{"type":26,"value":32892},"# Exact statevector simulation\n",{"type":21,"tag":2320,"props":32894,"children":32895},{"class":2322,"line":2403},[32896,32900,32904],{"type":21,"tag":2320,"props":32897,"children":32898},{"style":2327},[32899],{"type":26,"value":8424},{"type":21,"tag":2320,"props":32901,"children":32902},{"style":3200},[32903],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32905,"children":32906},{"style":2327},[32907],{"type":26,"value":32908}," cirq.Simulator()\n",{"type":21,"tag":2320,"props":32910,"children":32911},{"class":2322,"line":2427},[32912],{"type":21,"tag":2320,"props":32913,"children":32914},{"emptyLinePlaceholder":3224},[32915],{"type":26,"value":3227},{"type":21,"tag":2320,"props":32917,"children":32918},{"class":2322,"line":854},[32919],{"type":21,"tag":2320,"props":32920,"children":32921},{"style":3450},[32922],{"type":26,"value":32923},"# Density matrix with noise\n",{"type":21,"tag":2320,"props":32925,"children":32926},{"class":2322,"line":171},[32927,32932,32936],{"type":21,"tag":2320,"props":32928,"children":32929},{"style":2327},[32930],{"type":26,"value":32931},"noise_model ",{"type":21,"tag":2320,"props":32933,"children":32934},{"style":3200},[32935],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32937,"children":32938},{"style":2327},[32939],{"type":26,"value":32940}," cirq.ConstantQubitNoiseModel(\n",{"type":21,"tag":2320,"props":32942,"children":32943},{"class":2322,"line":16},[32944,32949,32953,32957,32962],{"type":21,"tag":2320,"props":32945,"children":32946},{"style":2327},[32947],{"type":26,"value":32948},"    cirq.depolarize(",{"type":21,"tag":2320,"props":32950,"children":32951},{"style":3265},[32952],{"type":26,"value":22},{"type":21,"tag":2320,"props":32954,"children":32955},{"style":3200},[32956],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32958,"children":32959},{"style":2345},[32960],{"type":26,"value":32961},"0.01",{"type":21,"tag":2320,"props":32963,"children":32964},{"style":2327},[32965],{"type":26,"value":3300},{"type":21,"tag":2320,"props":32967,"children":32968},{"class":2322,"line":1370},[32969],{"type":21,"tag":2320,"props":32970,"children":32971},{"style":2327},[32972],{"type":26,"value":3300},{"type":21,"tag":2320,"props":32974,"children":32975},{"class":2322,"line":3446},[32976,32981,32985,32990,32994,32998],{"type":21,"tag":2320,"props":32977,"children":32978},{"style":2327},[32979],{"type":26,"value":32980},"noisy_sim ",{"type":21,"tag":2320,"props":32982,"children":32983},{"style":3200},[32984],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32986,"children":32987},{"style":2327},[32988],{"type":26,"value":32989}," cirq.DensityMatrixSimulator(",{"type":21,"tag":2320,"props":32991,"children":32992},{"style":3265},[32993],{"type":26,"value":14639},{"type":21,"tag":2320,"props":32995,"children":32996},{"style":3200},[32997],{"type":26,"value":3240},{"type":21,"tag":2320,"props":32999,"children":33000},{"style":2327},[33001],{"type":26,"value":33002},"noise_model)\n",{"type":21,"tag":2320,"props":33004,"children":33005},{"class":2322,"line":3456},[33006],{"type":21,"tag":2320,"props":33007,"children":33008},{"emptyLinePlaceholder":3224},[33009],{"type":26,"value":3227},{"type":21,"tag":2320,"props":33011,"children":33012},{"class":2322,"line":474},[33013],{"type":21,"tag":2320,"props":33014,"children":33015},{"style":3450},[33016],{"type":26,"value":33017},"# Clifford circuits only (but exponentially faster for stabilizer states)\n",{"type":21,"tag":2320,"props":33019,"children":33020},{"class":2322,"line":3516},[33021,33026,33030],{"type":21,"tag":2320,"props":33022,"children":33023},{"style":2327},[33024],{"type":26,"value":33025},"clifford_sim ",{"type":21,"tag":2320,"props":33027,"children":33028},{"style":3200},[33029],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33031,"children":33032},{"style":2327},[33033],{"type":26,"value":33034}," cirq.CliffordSimulator()\n",{"type":21,"tag":22,"props":33036,"children":33037},{},[33038,33043],{"type":21,"tag":180,"props":33039,"children":33040},{},[33041],{"type":26,"value":33042},"Cuándo usar Cirq:",{"type":26,"value":33044}," Modelado de ruido NISQ, investigación de circuitos estabilizadores, flujos de trabajo de Google AI Quantum.",{"type":21,"tag":49,"props":33046,"children":33048},{"id":33047},"amazon-braket-localsimulator-aislamiento-y-portabilidad",[33049],{"type":26,"value":33050},"Amazon Braket LocalSimulator: aislamiento y portabilidad",{"type":21,"tag":22,"props":33052,"children":33053},{},[33054,33055,33061],{"type":26,"value":18850},{"type":21,"tag":29,"props":33056,"children":33058},{"href":33057},"\u002Fsdks\u002Fbraket",[33059],{"type":26,"value":33060},"Braket SDK",{"type":26,"value":33062}," incluye un simulador local gratuito que reproduce exactamente la API de la nube:",{"type":21,"tag":2310,"props":33064,"children":33066},{"className":3188,"code":33065,"language":3190,"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",[33067],{"type":21,"tag":2080,"props":33068,"children":33069},{"__ignoreMap":7},[33070,33091,33112,33119,33136,33143,33160,33176,33200,33208,33215,33248,33264],{"type":21,"tag":2320,"props":33071,"children":33072},{"class":2322,"line":2323},[33073,33077,33082,33086],{"type":21,"tag":2320,"props":33074,"children":33075},{"style":3200},[33076],{"type":26,"value":3203},{"type":21,"tag":2320,"props":33078,"children":33079},{"style":2327},[33080],{"type":26,"value":33081}," braket.devices ",{"type":21,"tag":2320,"props":33083,"children":33084},{"style":3200},[33085],{"type":26,"value":3213},{"type":21,"tag":2320,"props":33087,"children":33088},{"style":2327},[33089],{"type":26,"value":33090}," LocalSimulator\n",{"type":21,"tag":2320,"props":33092,"children":33093},{"class":2322,"line":150},[33094,33098,33103,33107],{"type":21,"tag":2320,"props":33095,"children":33096},{"style":3200},[33097],{"type":26,"value":3203},{"type":21,"tag":2320,"props":33099,"children":33100},{"style":2327},[33101],{"type":26,"value":33102}," braket.circuits ",{"type":21,"tag":2320,"props":33104,"children":33105},{"style":3200},[33106],{"type":26,"value":3213},{"type":21,"tag":2320,"props":33108,"children":33109},{"style":2327},[33110],{"type":26,"value":33111}," Circuit\n",{"type":21,"tag":2320,"props":33113,"children":33114},{"class":2322,"line":2341},[33115],{"type":21,"tag":2320,"props":33116,"children":33117},{"emptyLinePlaceholder":3224},[33118],{"type":26,"value":3227},{"type":21,"tag":2320,"props":33120,"children":33121},{"class":2322,"line":2403},[33122,33127,33131],{"type":21,"tag":2320,"props":33123,"children":33124},{"style":2327},[33125],{"type":26,"value":33126},"device ",{"type":21,"tag":2320,"props":33128,"children":33129},{"style":3200},[33130],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33132,"children":33133},{"style":2327},[33134],{"type":26,"value":33135}," LocalSimulator()\n",{"type":21,"tag":2320,"props":33137,"children":33138},{"class":2322,"line":2427},[33139],{"type":21,"tag":2320,"props":33140,"children":33141},{"emptyLinePlaceholder":3224},[33142],{"type":26,"value":3227},{"type":21,"tag":2320,"props":33144,"children":33145},{"class":2322,"line":854},[33146,33151,33155],{"type":21,"tag":2320,"props":33147,"children":33148},{"style":2327},[33149],{"type":26,"value":33150},"circuit ",{"type":21,"tag":2320,"props":33152,"children":33153},{"style":3200},[33154],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33156,"children":33157},{"style":2327},[33158],{"type":26,"value":33159}," Circuit()\n",{"type":21,"tag":2320,"props":33161,"children":33162},{"class":2322,"line":171},[33163,33168,33172],{"type":21,"tag":2320,"props":33164,"children":33165},{"style":2327},[33166],{"type":26,"value":33167},"circuit.h(",{"type":21,"tag":2320,"props":33169,"children":33170},{"style":2345},[33171],{"type":26,"value":5168},{"type":21,"tag":2320,"props":33173,"children":33174},{"style":2327},[33175],{"type":26,"value":3300},{"type":21,"tag":2320,"props":33177,"children":33178},{"class":2322,"line":16},[33179,33184,33188,33192,33196],{"type":21,"tag":2320,"props":33180,"children":33181},{"style":2327},[33182],{"type":26,"value":33183},"circuit.cnot(",{"type":21,"tag":2320,"props":33185,"children":33186},{"style":2345},[33187],{"type":26,"value":5168},{"type":21,"tag":2320,"props":33189,"children":33190},{"style":2327},[33191],{"type":26,"value":1315},{"type":21,"tag":2320,"props":33193,"children":33194},{"style":2345},[33195],{"type":26,"value":3556},{"type":21,"tag":2320,"props":33197,"children":33198},{"style":2327},[33199],{"type":26,"value":3300},{"type":21,"tag":2320,"props":33201,"children":33202},{"class":2322,"line":1370},[33203],{"type":21,"tag":2320,"props":33204,"children":33205},{"style":2327},[33206],{"type":26,"value":33207},"circuit.probability()\n",{"type":21,"tag":2320,"props":33209,"children":33210},{"class":2322,"line":3446},[33211],{"type":21,"tag":2320,"props":33212,"children":33213},{"emptyLinePlaceholder":3224},[33214],{"type":26,"value":3227},{"type":21,"tag":2320,"props":33216,"children":33217},{"class":2322,"line":3456},[33218,33223,33227,33232,33236,33240,33244],{"type":21,"tag":2320,"props":33219,"children":33220},{"style":2327},[33221],{"type":26,"value":33222},"task ",{"type":21,"tag":2320,"props":33224,"children":33225},{"style":3200},[33226],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33228,"children":33229},{"style":2327},[33230],{"type":26,"value":33231}," device.run(circuit, ",{"type":21,"tag":2320,"props":33233,"children":33234},{"style":3265},[33235],{"type":26,"value":4123},{"type":21,"tag":2320,"props":33237,"children":33238},{"style":3200},[33239],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33241,"children":33242},{"style":2345},[33243],{"type":26,"value":20476},{"type":21,"tag":2320,"props":33245,"children":33246},{"style":2327},[33247],{"type":26,"value":3300},{"type":21,"tag":2320,"props":33249,"children":33250},{"class":2322,"line":474},[33251,33255,33259],{"type":21,"tag":2320,"props":33252,"children":33253},{"style":2327},[33254],{"type":26,"value":19342},{"type":21,"tag":2320,"props":33256,"children":33257},{"style":3200},[33258],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33260,"children":33261},{"style":2327},[33262],{"type":26,"value":33263}," task.result()\n",{"type":21,"tag":2320,"props":33265,"children":33266},{"class":2322,"line":3516},[33267,33271],{"type":21,"tag":2320,"props":33268,"children":33269},{"style":2345},[33270],{"type":26,"value":3315},{"type":21,"tag":2320,"props":33272,"children":33273},{"style":2327},[33274],{"type":26,"value":33275},"(result.measurement_counts)\n",{"type":21,"tag":22,"props":33277,"children":33278},{},[33279,33284],{"type":21,"tag":180,"props":33280,"children":33281},{},[33282],{"type":26,"value":33283},"Cuándo usar Braket local:",{"type":26,"value":33285}," Estás desarrollando para un despliegue en AWS y quieres un entorno local de desarrollo\u002Fpruebas que coincida con la API de la nube.",{"type":21,"tag":49,"props":33287,"children":33289},{"id":33288},"el-atajo-de-hlquantum",[33290],{"type":26,"value":33291},"El atajo de HLQuantum",{"type":21,"tag":22,"props":33293,"children":33294},{},[33295,33297,33301],{"type":26,"value":33296},"Si necesitas ejecutar el mismo circuito en varios simuladores para hacer pruebas comparativas o comparaciones, ",{"type":21,"tag":29,"props":33298,"children":33299},{"href":19017},[33300],{"type":26,"value":19020},{"type":26,"value":33302}," lo hace trivial:",{"type":21,"tag":2310,"props":33304,"children":33306},{"className":3188,"code":33305,"language":3190,"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",[33307],{"type":21,"tag":2080,"props":33308,"children":33309},{"__ignoreMap":7},[33310,33329,33341,33348,33372,33387,33419,33439,33446,33453,33499,33516,33560],{"type":21,"tag":2320,"props":33311,"children":33312},{"class":2322,"line":2323},[33313,33317,33321,33325],{"type":21,"tag":2320,"props":33314,"children":33315},{"style":3200},[33316],{"type":26,"value":3213},{"type":21,"tag":2320,"props":33318,"children":33319},{"style":2327},[33320],{"type":26,"value":19310},{"type":21,"tag":2320,"props":33322,"children":33323},{"style":3200},[33324],{"type":26,"value":4278},{"type":21,"tag":2320,"props":33326,"children":33327},{"style":2327},[33328],{"type":26,"value":19319},{"type":21,"tag":2320,"props":33330,"children":33331},{"class":2322,"line":150},[33332,33336],{"type":21,"tag":2320,"props":33333,"children":33334},{"style":3200},[33335],{"type":26,"value":3213},{"type":21,"tag":2320,"props":33337,"children":33338},{"style":2327},[33339],{"type":26,"value":33340}," time\n",{"type":21,"tag":2320,"props":33342,"children":33343},{"class":2322,"line":2341},[33344],{"type":21,"tag":2320,"props":33345,"children":33346},{"emptyLinePlaceholder":3224},[33347],{"type":26,"value":3227},{"type":21,"tag":2320,"props":33349,"children":33350},{"class":2322,"line":2403},[33351,33355,33359,33363,33368],{"type":21,"tag":2320,"props":33352,"children":33353},{"style":2327},[33354],{"type":26,"value":7382},{"type":21,"tag":2320,"props":33356,"children":33357},{"style":3200},[33358],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33360,"children":33361},{"style":2327},[33362],{"type":26,"value":21373},{"type":21,"tag":2320,"props":33364,"children":33365},{"style":2345},[33366],{"type":26,"value":33367},"28",{"type":21,"tag":2320,"props":33369,"children":33370},{"style":2327},[33371],{"type":26,"value":3300},{"type":21,"tag":2320,"props":33373,"children":33374},{"class":2322,"line":2427},[33375,33379,33383],{"type":21,"tag":2320,"props":33376,"children":33377},{"style":2327},[33378],{"type":26,"value":7398},{"type":21,"tag":2320,"props":33380,"children":33381},{"style":2345},[33382],{"type":26,"value":5168},{"type":21,"tag":2320,"props":33384,"children":33385},{"style":2327},[33386],{"type":26,"value":3300},{"type":21,"tag":2320,"props":33388,"children":33389},{"class":2322,"line":854},[33390,33394,33398,33402,33406,33410,33415],{"type":21,"tag":2320,"props":33391,"children":33392},{"style":3200},[33393],{"type":26,"value":3493},{"type":21,"tag":2320,"props":33395,"children":33396},{"style":2327},[33397],{"type":26,"value":4745},{"type":21,"tag":2320,"props":33399,"children":33400},{"style":3200},[33401],{"type":26,"value":3503},{"type":21,"tag":2320,"props":33403,"children":33404},{"style":2345},[33405],{"type":26,"value":3508},{"type":21,"tag":2320,"props":33407,"children":33408},{"style":2327},[33409],{"type":26,"value":3320},{"type":21,"tag":2320,"props":33411,"children":33412},{"style":2345},[33413],{"type":26,"value":33414},"27",{"type":21,"tag":2320,"props":33416,"children":33417},{"style":2327},[33418],{"type":26,"value":4414},{"type":21,"tag":2320,"props":33420,"children":33421},{"class":2322,"line":171},[33422,33427,33431,33435],{"type":21,"tag":2320,"props":33423,"children":33424},{"style":2327},[33425],{"type":26,"value":33426},"    qc.cx(i, i ",{"type":21,"tag":2320,"props":33428,"children":33429},{"style":3200},[33430],{"type":26,"value":6528},{"type":21,"tag":2320,"props":33432,"children":33433},{"style":2345},[33434],{"type":26,"value":6099},{"type":21,"tag":2320,"props":33436,"children":33437},{"style":2327},[33438],{"type":26,"value":3300},{"type":21,"tag":2320,"props":33440,"children":33441},{"class":2322,"line":16},[33442],{"type":21,"tag":2320,"props":33443,"children":33444},{"style":2327},[33445],{"type":26,"value":13089},{"type":21,"tag":2320,"props":33447,"children":33448},{"class":2322,"line":1370},[33449],{"type":21,"tag":2320,"props":33450,"children":33451},{"emptyLinePlaceholder":3224},[33452],{"type":26,"value":3227},{"type":21,"tag":2320,"props":33454,"children":33455},{"class":2322,"line":3446},[33456,33460,33465,33469,33473,33477,33481,33486,33490,33495],{"type":21,"tag":2320,"props":33457,"children":33458},{"style":3200},[33459],{"type":26,"value":3493},{"type":21,"tag":2320,"props":33461,"children":33462},{"style":2327},[33463],{"type":26,"value":33464}," backend ",{"type":21,"tag":2320,"props":33466,"children":33467},{"style":3200},[33468],{"type":26,"value":3503},{"type":21,"tag":2320,"props":33470,"children":33471},{"style":2327},[33472],{"type":26,"value":6661},{"type":21,"tag":2320,"props":33474,"children":33475},{"style":2356},[33476],{"type":26,"value":28792},{"type":21,"tag":2320,"props":33478,"children":33479},{"style":2327},[33480],{"type":26,"value":1315},{"type":21,"tag":2320,"props":33482,"children":33483},{"style":2356},[33484],{"type":26,"value":33485},"\"pennylane\"",{"type":21,"tag":2320,"props":33487,"children":33488},{"style":2327},[33489],{"type":26,"value":1315},{"type":21,"tag":2320,"props":33491,"children":33492},{"style":2356},[33493],{"type":26,"value":33494},"\"cudaq\"",{"type":21,"tag":2320,"props":33496,"children":33497},{"style":2327},[33498],{"type":26,"value":17585},{"type":21,"tag":2320,"props":33500,"children":33501},{"class":2322,"line":3456},[33502,33507,33511],{"type":21,"tag":2320,"props":33503,"children":33504},{"style":2327},[33505],{"type":26,"value":33506},"    t0 ",{"type":21,"tag":2320,"props":33508,"children":33509},{"style":3200},[33510],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33512,"children":33513},{"style":2327},[33514],{"type":26,"value":33515}," time.time()\n",{"type":21,"tag":2320,"props":33517,"children":33518},{"class":2322,"line":474},[33519,33524,33528,33532,33536,33540,33544,33548,33552,33556],{"type":21,"tag":2320,"props":33520,"children":33521},{"style":2327},[33522],{"type":26,"value":33523},"    result ",{"type":21,"tag":2320,"props":33525,"children":33526},{"style":3200},[33527],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33529,"children":33530},{"style":2327},[33531],{"type":26,"value":21437},{"type":21,"tag":2320,"props":33533,"children":33534},{"style":3265},[33535],{"type":26,"value":4123},{"type":21,"tag":2320,"props":33537,"children":33538},{"style":3200},[33539],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33541,"children":33542},{"style":2345},[33543],{"type":26,"value":20476},{"type":21,"tag":2320,"props":33545,"children":33546},{"style":2327},[33547],{"type":26,"value":1315},{"type":21,"tag":2320,"props":33549,"children":33550},{"style":3265},[33551],{"type":26,"value":18469},{"type":21,"tag":2320,"props":33553,"children":33554},{"style":3200},[33555],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33557,"children":33558},{"style":2327},[33559],{"type":26,"value":28309},{"type":21,"tag":2320,"props":33561,"children":33562},{"class":2322,"line":3516},[33563,33567,33571,33575,33579,33583,33587,33591,33595,33599,33604,33608,33613,33618,33622,33627],{"type":21,"tag":2320,"props":33564,"children":33565},{"style":2345},[33566],{"type":26,"value":17224},{"type":21,"tag":2320,"props":33568,"children":33569},{"style":2327},[33570],{"type":26,"value":3320},{"type":21,"tag":2320,"props":33572,"children":33573},{"style":3200},[33574],{"type":26,"value":3325},{"type":21,"tag":2320,"props":33576,"children":33577},{"style":2356},[33578],{"type":26,"value":3350},{"type":21,"tag":2320,"props":33580,"children":33581},{"style":2345},[33582],{"type":26,"value":3335},{"type":21,"tag":2320,"props":33584,"children":33585},{"style":2327},[33586],{"type":26,"value":18469},{"type":21,"tag":2320,"props":33588,"children":33589},{"style":2345},[33590],{"type":26,"value":3345},{"type":21,"tag":2320,"props":33592,"children":33593},{"style":2356},[33594],{"type":26,"value":2414},{"type":21,"tag":2320,"props":33596,"children":33597},{"style":2345},[33598],{"type":26,"value":3335},{"type":21,"tag":2320,"props":33600,"children":33601},{"style":2327},[33602],{"type":26,"value":33603},"time.time() ",{"type":21,"tag":2320,"props":33605,"children":33606},{"style":3200},[33607],{"type":26,"value":4848},{"type":21,"tag":2320,"props":33609,"children":33610},{"style":2327},[33611],{"type":26,"value":33612}," t0",{"type":21,"tag":2320,"props":33614,"children":33615},{"style":3200},[33616],{"type":26,"value":33617},":.2f",{"type":21,"tag":2320,"props":33619,"children":33620},{"style":2345},[33621],{"type":26,"value":3345},{"type":21,"tag":2320,"props":33623,"children":33624},{"style":2356},[33625],{"type":26,"value":33626},"s\"",{"type":21,"tag":2320,"props":33628,"children":33629},{"style":2327},[33630],{"type":26,"value":3300},{"type":21,"tag":22,"props":33632,"children":33633},{},[33634],{"type":26,"value":33635},"Un circuito, tres backends, resultados directamente comparables.",{"type":21,"tag":2694,"props":33637,"children":33638},{},[33639],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":33641},[33642,33643,33644,33645,33646,33647,33648],{"id":31669,"depth":150,"text":31672},{"id":31858,"depth":150,"text":31861},{"id":32106,"depth":150,"text":32109},{"id":32556,"depth":150,"text":32559},{"id":32846,"depth":150,"text":32849},{"id":33047,"depth":150,"text":33050},{"id":33288,"depth":150,"text":33291},"content:es:blog:quantum-simulators-compared.md","es\u002Fblog\u002Fquantum-simulators-compared.md","es\u002Fblog\u002Fquantum-simulators-compared",{"_path":33653,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":33654,"description":33655,"date":33656,"author":11,"tags":33657,"readingTime":1370,"body":33658,"_type":156,"_id":35755,"_source":158,"_file":35756,"_stem":35757,"_extension":161},"\u002Fes\u002Fblog\u002Fvqe-pennylane-practical-guide","Construyendo un VQE con PennyLane: Una guía práctica","Implementación paso a paso del Variational Quantum Eigensolver usando PennyLane — desde la configuración del hamiltoniano hasta el bucle de optimización clásica.","2026-01-28",[328,13785,7148,13784],{"type":18,"children":33659,"toc":35746},[33660,33665,33671,33676,33699,33704,33710,33715,33742,33747,34078,34084,34095,34425,34431,34436,34911,34916,34924,34929,34935,34940,35224,35230,35235,35583,35589,35594,35604,35614,35632,35725,35742],{"type":21,"tag":22,"props":33661,"children":33662},{},[33663],{"type":26,"value":33664},"El Variational Quantum Eigensolver (VQE) es uno de los algoritmos cuánticos a corto plazo más importantes. Encuentra la energía del estado fundamental de una molécula o un material — un cálculo que es exponencialmente difícil para las computadoras clásicas pero abordable en dispositivos NISQ. Esta guía recorre una implementación completa de VQE en PennyLane.",{"type":21,"tag":49,"props":33666,"children":33668},{"id":33667},"qué-hace-vqe",[33669],{"type":26,"value":33670},"Qué hace VQE",{"type":21,"tag":22,"props":33672,"children":33673},{},[33674],{"type":26,"value":33675},"VQE encuentra el valor propio mínimo de un hamiltoniano H (que normalmente representa la energía de una molécula). Funciona mediante:",{"type":21,"tag":7007,"props":33677,"children":33678},{},[33679,33684,33689,33694],{"type":21,"tag":3122,"props":33680,"children":33681},{},[33682],{"type":26,"value":33683},"Preparar un estado de prueba parametrizado |ψ(θ)⟩ usando un circuito cuántico",{"type":21,"tag":3122,"props":33685,"children":33686},{},[33687],{"type":26,"value":33688},"Medir el valor esperado ⟨ψ(θ)|H|ψ(θ)⟩ en la QPU",{"type":21,"tag":3122,"props":33690,"children":33691},{},[33692],{"type":26,"value":33693},"Usar un optimizador clásico para actualizar θ y minimizar la energía",{"type":21,"tag":3122,"props":33695,"children":33696},{},[33697],{"type":26,"value":33698},"Repetir hasta la convergencia",{"type":21,"tag":22,"props":33700,"children":33701},{},[33702],{"type":26,"value":33703},"El principio variacional garantiza que ⟨ψ(θ)|H|ψ(θ)⟩ ≥ E₀ para cualquier estado — por lo que minimizar esta cantidad da una cota superior de la verdadera energía del estado fundamental E₀.",{"type":21,"tag":49,"props":33705,"children":33707},{"id":33706},"configuración",[33708],{"type":26,"value":33709},"Configuración",{"type":21,"tag":22,"props":33711,"children":33712},{},[33713],{"type":26,"value":33714},"Instala PennyLane con su complemento de química:",{"type":21,"tag":2310,"props":33716,"children":33718},{"code":33717,"language":9745,"meta":7,"className":9743,"style":7},"pip install pennylane pennylane-qchem\n",[33719],{"type":21,"tag":2080,"props":33720,"children":33721},{"__ignoreMap":7},[33722],{"type":21,"tag":2320,"props":33723,"children":33724},{"class":2322,"line":2323},[33725,33729,33733,33737],{"type":21,"tag":2320,"props":33726,"children":33727},{"style":4364},[33728],{"type":26,"value":11794},{"type":21,"tag":2320,"props":33730,"children":33731},{"style":2356},[33732],{"type":26,"value":11799},{"type":21,"tag":2320,"props":33734,"children":33735},{"style":2356},[33736],{"type":26,"value":20615},{"type":21,"tag":2320,"props":33738,"children":33739},{"style":2356},[33740],{"type":26,"value":33741}," pennylane-qchem\n",{"type":21,"tag":22,"props":33743,"children":33744},{},[33745],{"type":26,"value":33746},"Para la molécula de hidrógeno (H₂) — el benchmark clásico de VQE — necesitamos dos electrones y cuatro espín-orbitales (4 qubits):",{"type":21,"tag":2310,"props":33748,"children":33750},{"code":33749,"language":3190,"meta":7,"className":3188,"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",[33751],{"type":21,"tag":2080,"props":33752,"children":33753},{"__ignoreMap":7},[33754,33773,33800,33821,33828,33836,33869,33940,33947,33955,33972,33980,33988,34004,34011,34070],{"type":21,"tag":2320,"props":33755,"children":33756},{"class":2322,"line":2323},[33757,33761,33765,33769],{"type":21,"tag":2320,"props":33758,"children":33759},{"style":3200},[33760],{"type":26,"value":3213},{"type":21,"tag":2320,"props":33762,"children":33763},{"style":2327},[33764],{"type":26,"value":14092},{"type":21,"tag":2320,"props":33766,"children":33767},{"style":3200},[33768],{"type":26,"value":4278},{"type":21,"tag":2320,"props":33770,"children":33771},{"style":2327},[33772],{"type":26,"value":14101},{"type":21,"tag":2320,"props":33774,"children":33775},{"class":2322,"line":150},[33776,33780,33784,33788,33792,33796],{"type":21,"tag":2320,"props":33777,"children":33778},{"style":3200},[33779],{"type":26,"value":3203},{"type":21,"tag":2320,"props":33781,"children":33782},{"style":2327},[33783],{"type":26,"value":14092},{"type":21,"tag":2320,"props":33785,"children":33786},{"style":3200},[33787],{"type":26,"value":3213},{"type":21,"tag":2320,"props":33789,"children":33790},{"style":2327},[33791],{"type":26,"value":4273},{"type":21,"tag":2320,"props":33793,"children":33794},{"style":3200},[33795],{"type":26,"value":4278},{"type":21,"tag":2320,"props":33797,"children":33798},{"style":2327},[33799],{"type":26,"value":4283},{"type":21,"tag":2320,"props":33801,"children":33802},{"class":2322,"line":2341},[33803,33807,33812,33816],{"type":21,"tag":2320,"props":33804,"children":33805},{"style":3200},[33806],{"type":26,"value":3213},{"type":21,"tag":2320,"props":33808,"children":33809},{"style":2327},[33810],{"type":26,"value":33811}," pennylane.qchem ",{"type":21,"tag":2320,"props":33813,"children":33814},{"style":3200},[33815],{"type":26,"value":4278},{"type":21,"tag":2320,"props":33817,"children":33818},{"style":2327},[33819],{"type":26,"value":33820}," qchem\n",{"type":21,"tag":2320,"props":33822,"children":33823},{"class":2322,"line":2403},[33824],{"type":21,"tag":2320,"props":33825,"children":33826},{"emptyLinePlaceholder":3224},[33827],{"type":26,"value":3227},{"type":21,"tag":2320,"props":33829,"children":33830},{"class":2322,"line":2427},[33831],{"type":21,"tag":2320,"props":33832,"children":33833},{"style":3450},[33834],{"type":26,"value":33835},"# H2 at equilibrium bond length (Angstrom)\n",{"type":21,"tag":2320,"props":33837,"children":33838},{"class":2322,"line":854},[33839,33844,33848,33852,33857,33861,33865],{"type":21,"tag":2320,"props":33840,"children":33841},{"style":2327},[33842],{"type":26,"value":33843},"symbols ",{"type":21,"tag":2320,"props":33845,"children":33846},{"style":3200},[33847],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33849,"children":33850},{"style":2327},[33851],{"type":26,"value":6661},{"type":21,"tag":2320,"props":33853,"children":33854},{"style":2356},[33855],{"type":26,"value":33856},"\"H\"",{"type":21,"tag":2320,"props":33858,"children":33859},{"style":2327},[33860],{"type":26,"value":1315},{"type":21,"tag":2320,"props":33862,"children":33863},{"style":2356},[33864],{"type":26,"value":33856},{"type":21,"tag":2320,"props":33866,"children":33867},{"style":2327},[33868],{"type":26,"value":6687},{"type":21,"tag":2320,"props":33870,"children":33871},{"class":2322,"line":171},[33872,33877,33881,33886,33890,33894,33898,33902,33906,33911,33915,33919,33923,33927,33931,33935],{"type":21,"tag":2320,"props":33873,"children":33874},{"style":2327},[33875],{"type":26,"value":33876},"coordinates ",{"type":21,"tag":2320,"props":33878,"children":33879},{"style":3200},[33880],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33882,"children":33883},{"style":2327},[33884],{"type":26,"value":33885}," np.array([[",{"type":21,"tag":2320,"props":33887,"children":33888},{"style":2345},[33889],{"type":26,"value":14915},{"type":21,"tag":2320,"props":33891,"children":33892},{"style":2327},[33893],{"type":26,"value":1315},{"type":21,"tag":2320,"props":33895,"children":33896},{"style":2345},[33897],{"type":26,"value":14915},{"type":21,"tag":2320,"props":33899,"children":33900},{"style":2327},[33901],{"type":26,"value":1315},{"type":21,"tag":2320,"props":33903,"children":33904},{"style":3200},[33905],{"type":26,"value":4848},{"type":21,"tag":2320,"props":33907,"children":33908},{"style":2345},[33909],{"type":26,"value":33910},"0.6614",{"type":21,"tag":2320,"props":33912,"children":33913},{"style":2327},[33914],{"type":26,"value":5223},{"type":21,"tag":2320,"props":33916,"children":33917},{"style":2345},[33918],{"type":26,"value":14915},{"type":21,"tag":2320,"props":33920,"children":33921},{"style":2327},[33922],{"type":26,"value":1315},{"type":21,"tag":2320,"props":33924,"children":33925},{"style":2345},[33926],{"type":26,"value":14915},{"type":21,"tag":2320,"props":33928,"children":33929},{"style":2327},[33930],{"type":26,"value":1315},{"type":21,"tag":2320,"props":33932,"children":33933},{"style":2345},[33934],{"type":26,"value":33910},{"type":21,"tag":2320,"props":33936,"children":33937},{"style":2327},[33938],{"type":26,"value":33939},"]])\n",{"type":21,"tag":2320,"props":33941,"children":33942},{"class":2322,"line":16},[33943],{"type":21,"tag":2320,"props":33944,"children":33945},{"emptyLinePlaceholder":3224},[33946],{"type":26,"value":3227},{"type":21,"tag":2320,"props":33948,"children":33949},{"class":2322,"line":1370},[33950],{"type":21,"tag":2320,"props":33951,"children":33952},{"style":3450},[33953],{"type":26,"value":33954},"# Build the qubit Hamiltonian\n",{"type":21,"tag":2320,"props":33956,"children":33957},{"class":2322,"line":3446},[33958,33963,33967],{"type":21,"tag":2320,"props":33959,"children":33960},{"style":2327},[33961],{"type":26,"value":33962},"H, qubits ",{"type":21,"tag":2320,"props":33964,"children":33965},{"style":3200},[33966],{"type":26,"value":3240},{"type":21,"tag":2320,"props":33968,"children":33969},{"style":2327},[33970],{"type":26,"value":33971}," qchem.molecular_hamiltonian(\n",{"type":21,"tag":2320,"props":33973,"children":33974},{"class":2322,"line":3456},[33975],{"type":21,"tag":2320,"props":33976,"children":33977},{"style":2327},[33978],{"type":26,"value":33979},"    symbols,\n",{"type":21,"tag":2320,"props":33981,"children":33982},{"class":2322,"line":474},[33983],{"type":21,"tag":2320,"props":33984,"children":33985},{"style":2327},[33986],{"type":26,"value":33987},"    coordinates,\n",{"type":21,"tag":2320,"props":33989,"children":33990},{"class":2322,"line":3516},[33991,33995,33999],{"type":21,"tag":2320,"props":33992,"children":33993},{"style":3265},[33994],{"type":26,"value":22860},{"type":21,"tag":2320,"props":33996,"children":33997},{"style":3200},[33998],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34000,"children":34001},{"style":2356},[34002],{"type":26,"value":34003},"\"sto-3g\"\n",{"type":21,"tag":2320,"props":34005,"children":34006},{"class":2322,"line":3564},[34007],{"type":21,"tag":2320,"props":34008,"children":34009},{"style":2327},[34010],{"type":26,"value":3300},{"type":21,"tag":2320,"props":34012,"children":34013},{"class":2322,"line":3606},[34014,34018,34022,34026,34031,34035,34040,34044,34049,34053,34057,34061,34066],{"type":21,"tag":2320,"props":34015,"children":34016},{"style":2345},[34017],{"type":26,"value":3315},{"type":21,"tag":2320,"props":34019,"children":34020},{"style":2327},[34021],{"type":26,"value":3320},{"type":21,"tag":2320,"props":34023,"children":34024},{"style":3200},[34025],{"type":26,"value":3325},{"type":21,"tag":2320,"props":34027,"children":34028},{"style":2356},[34029],{"type":26,"value":34030},"\"Hamiltonian: ",{"type":21,"tag":2320,"props":34032,"children":34033},{"style":2345},[34034],{"type":26,"value":24987},{"type":21,"tag":2320,"props":34036,"children":34037},{"style":2327},[34038],{"type":26,"value":34039},"(H.ops)",{"type":21,"tag":2320,"props":34041,"children":34042},{"style":2345},[34043],{"type":26,"value":3345},{"type":21,"tag":2320,"props":34045,"children":34046},{"style":2356},[34047],{"type":26,"value":34048}," terms, ",{"type":21,"tag":2320,"props":34050,"children":34051},{"style":2345},[34052],{"type":26,"value":3335},{"type":21,"tag":2320,"props":34054,"children":34055},{"style":2327},[34056],{"type":26,"value":1203},{"type":21,"tag":2320,"props":34058,"children":34059},{"style":2345},[34060],{"type":26,"value":3345},{"type":21,"tag":2320,"props":34062,"children":34063},{"style":2356},[34064],{"type":26,"value":34065}," qubits\"",{"type":21,"tag":2320,"props":34067,"children":34068},{"style":2327},[34069],{"type":26,"value":3300},{"type":21,"tag":2320,"props":34071,"children":34072},{"class":2322,"line":4631},[34073],{"type":21,"tag":2320,"props":34074,"children":34075},{"style":3450},[34076],{"type":26,"value":34077},"# Hamiltonian: 15 terms, 4 qubits\n",{"type":21,"tag":49,"props":34079,"children":34081},{"id":34080},"definiendo-el-ansatz",[34082],{"type":26,"value":34083},"Definiendo el ansatz",{"type":21,"tag":22,"props":34085,"children":34086},{},[34087,34088,34093],{"type":26,"value":18850},{"type":21,"tag":180,"props":34089,"children":34090},{},[34091],{"type":26,"value":34092},"ansatz",{"type":26,"value":34094}," es el circuito parametrizado que prepara el estado de prueba. Para problemas de química, el ansatz UCCSD (Unitary Coupled-Cluster Singles and Doubles) es el estándar:",{"type":21,"tag":2310,"props":34096,"children":34098},{"code":34097,"language":3190,"meta":7,"className":3188,"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",[34099],{"type":21,"tag":2080,"props":34100,"children":34101},{"__ignoreMap":7},[34102,34110,34126,34143,34177,34184,34192,34209,34216,34252,34259,34270,34313,34321,34342,34349,34357,34407,34414],{"type":21,"tag":2320,"props":34103,"children":34104},{"class":2322,"line":2323},[34105],{"type":21,"tag":2320,"props":34106,"children":34107},{"style":3450},[34108],{"type":26,"value":34109},"# Get UCCSD circuit parameters\n",{"type":21,"tag":2320,"props":34111,"children":34112},{"class":2322,"line":150},[34113,34118,34122],{"type":21,"tag":2320,"props":34114,"children":34115},{"style":2327},[34116],{"type":26,"value":34117},"electrons ",{"type":21,"tag":2320,"props":34119,"children":34120},{"style":3200},[34121],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34123,"children":34124},{"style":2345},[34125],{"type":26,"value":5094},{"type":21,"tag":2320,"props":34127,"children":34128},{"class":2322,"line":2341},[34129,34134,34138],{"type":21,"tag":2320,"props":34130,"children":34131},{"style":2327},[34132],{"type":26,"value":34133},"singles, doubles ",{"type":21,"tag":2320,"props":34135,"children":34136},{"style":3200},[34137],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34139,"children":34140},{"style":2327},[34141],{"type":26,"value":34142}," qchem.excitations(electrons, qubits)\n",{"type":21,"tag":2320,"props":34144,"children":34145},{"class":2322,"line":2403},[34146,34151,34155,34160,34164,34168,34172],{"type":21,"tag":2320,"props":34147,"children":34148},{"style":2327},[34149],{"type":26,"value":34150},"s_wires, d_wires ",{"type":21,"tag":2320,"props":34152,"children":34153},{"style":3200},[34154],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34156,"children":34157},{"style":2327},[34158],{"type":26,"value":34159}," qchem.excitations_to_wires(singles, doubles, ",{"type":21,"tag":2320,"props":34161,"children":34162},{"style":3265},[34163],{"type":26,"value":14248},{"type":21,"tag":2320,"props":34165,"children":34166},{"style":3200},[34167],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34169,"children":34170},{"style":2345},[34171],{"type":26,"value":4942},{"type":21,"tag":2320,"props":34173,"children":34174},{"style":2327},[34175],{"type":26,"value":34176},"(qubits))\n",{"type":21,"tag":2320,"props":34178,"children":34179},{"class":2322,"line":2427},[34180],{"type":21,"tag":2320,"props":34181,"children":34182},{"emptyLinePlaceholder":3224},[34183],{"type":26,"value":3227},{"type":21,"tag":2320,"props":34185,"children":34186},{"class":2322,"line":854},[34187],{"type":21,"tag":2320,"props":34188,"children":34189},{"style":3450},[34190],{"type":26,"value":34191},"# Initial Hartree-Fock state (reference state)\n",{"type":21,"tag":2320,"props":34193,"children":34194},{"class":2322,"line":171},[34195,34200,34204],{"type":21,"tag":2320,"props":34196,"children":34197},{"style":2327},[34198],{"type":26,"value":34199},"hf_state ",{"type":21,"tag":2320,"props":34201,"children":34202},{"style":3200},[34203],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34205,"children":34206},{"style":2327},[34207],{"type":26,"value":34208}," qchem.hf_state(electrons, qubits)\n",{"type":21,"tag":2320,"props":34210,"children":34211},{"class":2322,"line":16},[34212],{"type":21,"tag":2320,"props":34213,"children":34214},{"emptyLinePlaceholder":3224},[34215],{"type":26,"value":3227},{"type":21,"tag":2320,"props":34217,"children":34218},{"class":2322,"line":1370},[34219,34223,34227,34231,34235,34239,34243,34247],{"type":21,"tag":2320,"props":34220,"children":34221},{"style":2327},[34222],{"type":26,"value":14225},{"type":21,"tag":2320,"props":34224,"children":34225},{"style":3200},[34226],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34228,"children":34229},{"style":2327},[34230],{"type":26,"value":14234},{"type":21,"tag":2320,"props":34232,"children":34233},{"style":2356},[34234],{"type":26,"value":14239},{"type":21,"tag":2320,"props":34236,"children":34237},{"style":2327},[34238],{"type":26,"value":1315},{"type":21,"tag":2320,"props":34240,"children":34241},{"style":3265},[34242],{"type":26,"value":14248},{"type":21,"tag":2320,"props":34244,"children":34245},{"style":3200},[34246],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34248,"children":34249},{"style":2327},[34250],{"type":26,"value":34251},"qubits)\n",{"type":21,"tag":2320,"props":34253,"children":34254},{"class":2322,"line":3446},[34255],{"type":21,"tag":2320,"props":34256,"children":34257},{"emptyLinePlaceholder":3224},[34258],{"type":26,"value":3227},{"type":21,"tag":2320,"props":34260,"children":34261},{"class":2322,"line":3456},[34262,34266],{"type":21,"tag":2320,"props":34263,"children":34264},{"style":4364},[34265],{"type":26,"value":14272},{"type":21,"tag":2320,"props":34267,"children":34268},{"style":2327},[34269],{"type":26,"value":14277},{"type":21,"tag":2320,"props":34271,"children":34272},{"class":2322,"line":474},[34273,34277,34281,34286,34290,34295,34299,34304,34308],{"type":21,"tag":2320,"props":34274,"children":34275},{"style":3200},[34276],{"type":26,"value":4361},{"type":21,"tag":2320,"props":34278,"children":34279},{"style":4364},[34280],{"type":26,"value":14289},{"type":21,"tag":2320,"props":34282,"children":34283},{"style":2327},[34284],{"type":26,"value":34285},"(weights, wires, s_wires",{"type":21,"tag":2320,"props":34287,"children":34288},{"style":3200},[34289],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34291,"children":34292},{"style":2327},[34293],{"type":26,"value":34294},"[], d_wires",{"type":21,"tag":2320,"props":34296,"children":34297},{"style":3200},[34298],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34300,"children":34301},{"style":2327},[34302],{"type":26,"value":34303},"[], hf_state",{"type":21,"tag":2320,"props":34305,"children":34306},{"style":3200},[34307],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34309,"children":34310},{"style":2327},[34311],{"type":26,"value":34312},"hf_state):\n",{"type":21,"tag":2320,"props":34314,"children":34315},{"class":2322,"line":3516},[34316],{"type":21,"tag":2320,"props":34317,"children":34318},{"style":3450},[34319],{"type":26,"value":34320},"    # Prepare HF reference state\n",{"type":21,"tag":2320,"props":34322,"children":34323},{"class":2322,"line":3564},[34324,34329,34333,34337],{"type":21,"tag":2320,"props":34325,"children":34326},{"style":2327},[34327],{"type":26,"value":34328},"    qml.BasisState(hf_state, ",{"type":21,"tag":2320,"props":34330,"children":34331},{"style":3265},[34332],{"type":26,"value":14248},{"type":21,"tag":2320,"props":34334,"children":34335},{"style":3200},[34336],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34338,"children":34339},{"style":2327},[34340],{"type":26,"value":34341},"wires)\n",{"type":21,"tag":2320,"props":34343,"children":34344},{"class":2322,"line":3606},[34345],{"type":21,"tag":2320,"props":34346,"children":34347},{"emptyLinePlaceholder":3224},[34348],{"type":26,"value":3227},{"type":21,"tag":2320,"props":34350,"children":34351},{"class":2322,"line":4631},[34352],{"type":21,"tag":2320,"props":34353,"children":34354},{"style":3450},[34355],{"type":26,"value":34356},"    # Apply UCCSD excitations\n",{"type":21,"tag":2320,"props":34358,"children":34359},{"class":2322,"line":4650},[34360,34365,34370,34374,34379,34384,34388,34393,34398,34402],{"type":21,"tag":2320,"props":34361,"children":34362},{"style":2327},[34363],{"type":26,"value":34364},"    qml.UCCSD(weights, wires, ",{"type":21,"tag":2320,"props":34366,"children":34367},{"style":3265},[34368],{"type":26,"value":34369},"s_wires",{"type":21,"tag":2320,"props":34371,"children":34372},{"style":3200},[34373],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34375,"children":34376},{"style":2327},[34377],{"type":26,"value":34378},"s_wires, ",{"type":21,"tag":2320,"props":34380,"children":34381},{"style":3265},[34382],{"type":26,"value":34383},"d_wires",{"type":21,"tag":2320,"props":34385,"children":34386},{"style":3200},[34387],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34389,"children":34390},{"style":2327},[34391],{"type":26,"value":34392},"d_wires, ",{"type":21,"tag":2320,"props":34394,"children":34395},{"style":3265},[34396],{"type":26,"value":34397},"init_state",{"type":21,"tag":2320,"props":34399,"children":34400},{"style":3200},[34401],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34403,"children":34404},{"style":2327},[34405],{"type":26,"value":34406},"hf_state)\n",{"type":21,"tag":2320,"props":34408,"children":34409},{"class":2322,"line":4658},[34410],{"type":21,"tag":2320,"props":34411,"children":34412},{"emptyLinePlaceholder":3224},[34413],{"type":26,"value":3227},{"type":21,"tag":2320,"props":34415,"children":34416},{"class":2322,"line":4689},[34417,34421],{"type":21,"tag":2320,"props":34418,"children":34419},{"style":3200},[34420],{"type":26,"value":4586},{"type":21,"tag":2320,"props":34422,"children":34423},{"style":2327},[34424],{"type":26,"value":25194},{"type":21,"tag":49,"props":34426,"children":34428},{"id":34427},"ejecutando-la-optimización-de-vqe",[34429],{"type":26,"value":34430},"Ejecutando la optimización de VQE",{"type":21,"tag":22,"props":34432,"children":34433},{},[34434],{"type":26,"value":34435},"Con la diferenciación automática de PennyLane, podemos usar optimizadores basados en gradientes directamente:",{"type":21,"tag":2310,"props":34437,"children":34439},{"code":34438,"language":3190,"meta":7,"className":3188,"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",[34440],{"type":21,"tag":2080,"props":34441,"children":34442},{"__ignoreMap":7},[34443,34451,34505,34512,34520,34552,34559,34567,34584,34599,34606,34637,34653,34700,34708,34715,34723,34730,34762,34828,34835,34887],{"type":21,"tag":2320,"props":34444,"children":34445},{"class":2322,"line":2323},[34446],{"type":21,"tag":2320,"props":34447,"children":34448},{"style":3450},[34449],{"type":26,"value":34450},"# Initial parameters (all zeros = Hartree-Fock state)\n",{"type":21,"tag":2320,"props":34452,"children":34453},{"class":2322,"line":150},[34454,34458,34462,34466,34470,34475,34479,34484,34489,34493,34497,34501],{"type":21,"tag":2320,"props":34455,"children":34456},{"style":2327},[34457],{"type":26,"value":29997},{"type":21,"tag":2320,"props":34459,"children":34460},{"style":3200},[34461],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34463,"children":34464},{"style":2327},[34465],{"type":26,"value":12687},{"type":21,"tag":2320,"props":34467,"children":34468},{"style":2345},[34469],{"type":26,"value":15063},{"type":21,"tag":2320,"props":34471,"children":34472},{"style":2327},[34473],{"type":26,"value":34474},"(singles) ",{"type":21,"tag":2320,"props":34476,"children":34477},{"style":3200},[34478],{"type":26,"value":6528},{"type":21,"tag":2320,"props":34480,"children":34481},{"style":2345},[34482],{"type":26,"value":34483}," len",{"type":21,"tag":2320,"props":34485,"children":34486},{"style":2327},[34487],{"type":26,"value":34488},"(doubles), ",{"type":21,"tag":2320,"props":34490,"children":34491},{"style":3265},[34492],{"type":26,"value":14881},{"type":21,"tag":2320,"props":34494,"children":34495},{"style":3200},[34496],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34498,"children":34499},{"style":2345},[34500],{"type":26,"value":3277},{"type":21,"tag":2320,"props":34502,"children":34503},{"style":2327},[34504],{"type":26,"value":3300},{"type":21,"tag":2320,"props":34506,"children":34507},{"class":2322,"line":2341},[34508],{"type":21,"tag":2320,"props":34509,"children":34510},{"emptyLinePlaceholder":3224},[34511],{"type":26,"value":3227},{"type":21,"tag":2320,"props":34513,"children":34514},{"class":2322,"line":2403},[34515],{"type":21,"tag":2320,"props":34516,"children":34517},{"style":3450},[34518],{"type":26,"value":34519},"# Adam optimizer (works well for VQE)\n",{"type":21,"tag":2320,"props":34521,"children":34522},{"class":2322,"line":2427},[34523,34527,34531,34535,34539,34543,34548],{"type":21,"tag":2320,"props":34524,"children":34525},{"style":2327},[34526],{"type":26,"value":14950},{"type":21,"tag":2320,"props":34528,"children":34529},{"style":3200},[34530],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34532,"children":34533},{"style":2327},[34534],{"type":26,"value":14959},{"type":21,"tag":2320,"props":34536,"children":34537},{"style":3265},[34538],{"type":26,"value":14964},{"type":21,"tag":2320,"props":34540,"children":34541},{"style":3200},[34542],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34544,"children":34545},{"style":2345},[34546],{"type":26,"value":34547},"0.4",{"type":21,"tag":2320,"props":34549,"children":34550},{"style":2327},[34551],{"type":26,"value":3300},{"type":21,"tag":2320,"props":34553,"children":34554},{"class":2322,"line":854},[34555],{"type":21,"tag":2320,"props":34556,"children":34557},{"emptyLinePlaceholder":3224},[34558],{"type":26,"value":3227},{"type":21,"tag":2320,"props":34560,"children":34561},{"class":2322,"line":171},[34562],{"type":21,"tag":2320,"props":34563,"children":34564},{"style":3450},[34565],{"type":26,"value":34566},"# Optimization loop\n",{"type":21,"tag":2320,"props":34568,"children":34569},{"class":2322,"line":16},[34570,34575,34579],{"type":21,"tag":2320,"props":34571,"children":34572},{"style":2327},[34573],{"type":26,"value":34574},"energy_history ",{"type":21,"tag":2320,"props":34576,"children":34577},{"style":3200},[34578],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34580,"children":34581},{"style":2327},[34582],{"type":26,"value":34583}," []\n",{"type":21,"tag":2320,"props":34585,"children":34586},{"class":2322,"line":1370},[34587,34591,34595],{"type":21,"tag":2320,"props":34588,"children":34589},{"style":2327},[34590],{"type":26,"value":25257},{"type":21,"tag":2320,"props":34592,"children":34593},{"style":3200},[34594],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34596,"children":34597},{"style":2327},[34598],{"type":26,"value":25928},{"type":21,"tag":2320,"props":34600,"children":34601},{"class":2322,"line":3446},[34602],{"type":21,"tag":2320,"props":34603,"children":34604},{"emptyLinePlaceholder":3224},[34605],{"type":26,"value":3227},{"type":21,"tag":2320,"props":34607,"children":34608},{"class":2322,"line":3456},[34609,34613,34617,34621,34625,34629,34633],{"type":21,"tag":2320,"props":34610,"children":34611},{"style":3200},[34612],{"type":26,"value":3493},{"type":21,"tag":2320,"props":34614,"children":34615},{"style":2327},[34616],{"type":26,"value":15012},{"type":21,"tag":2320,"props":34618,"children":34619},{"style":3200},[34620],{"type":26,"value":3503},{"type":21,"tag":2320,"props":34622,"children":34623},{"style":2345},[34624],{"type":26,"value":3508},{"type":21,"tag":2320,"props":34626,"children":34627},{"style":2327},[34628],{"type":26,"value":3320},{"type":21,"tag":2320,"props":34630,"children":34631},{"style":2345},[34632],{"type":26,"value":14630},{"type":21,"tag":2320,"props":34634,"children":34635},{"style":2327},[34636],{"type":26,"value":4414},{"type":21,"tag":2320,"props":34638,"children":34639},{"class":2322,"line":474},[34640,34644,34648],{"type":21,"tag":2320,"props":34641,"children":34642},{"style":2327},[34643],{"type":26,"value":25997},{"type":21,"tag":2320,"props":34645,"children":34646},{"style":3200},[34647],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34649,"children":34650},{"style":2327},[34651],{"type":26,"value":34652}," opt.step_and_cost(\n",{"type":21,"tag":2320,"props":34654,"children":34655},{"class":2322,"line":3516},[34656,34661,34666,34670,34675,34679,34683,34687,34691,34695],{"type":21,"tag":2320,"props":34657,"children":34658},{"style":3200},[34659],{"type":26,"value":34660},"        lambda",{"type":21,"tag":2320,"props":34662,"children":34663},{"style":2327},[34664],{"type":26,"value":34665}," p: circuit(p, ",{"type":21,"tag":2320,"props":34667,"children":34668},{"style":2345},[34669],{"type":26,"value":4942},{"type":21,"tag":2320,"props":34671,"children":34672},{"style":2327},[34673],{"type":26,"value":34674},"(qubits), ",{"type":21,"tag":2320,"props":34676,"children":34677},{"style":3265},[34678],{"type":26,"value":34369},{"type":21,"tag":2320,"props":34680,"children":34681},{"style":3200},[34682],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34684,"children":34685},{"style":2327},[34686],{"type":26,"value":34378},{"type":21,"tag":2320,"props":34688,"children":34689},{"style":3265},[34690],{"type":26,"value":34383},{"type":21,"tag":2320,"props":34692,"children":34693},{"style":3200},[34694],{"type":26,"value":3240},{"type":21,"tag":2320,"props":34696,"children":34697},{"style":2327},[34698],{"type":26,"value":34699},"d_wires),\n",{"type":21,"tag":2320,"props":34701,"children":34702},{"class":2322,"line":3564},[34703],{"type":21,"tag":2320,"props":34704,"children":34705},{"style":2327},[34706],{"type":26,"value":34707},"        params\n",{"type":21,"tag":2320,"props":34709,"children":34710},{"class":2322,"line":3606},[34711],{"type":21,"tag":2320,"props":34712,"children":34713},{"style":2327},[34714],{"type":26,"value":4578},{"type":21,"tag":2320,"props":34716,"children":34717},{"class":2322,"line":4631},[34718],{"type":21,"tag":2320,"props":34719,"children":34720},{"style":2327},[34721],{"type":26,"value":34722},"    energy_history.append(energy)\n",{"type":21,"tag":2320,"props":34724,"children":34725},{"class":2322,"line":4650},[34726],{"type":21,"tag":2320,"props":34727,"children":34728},{"emptyLinePlaceholder":3224},[34729],{"type":26,"value":3227},{"type":21,"tag":2320,"props":34731,"children":34732},{"class":2322,"line":4658},[34733,34737,34741,34745,34750,34754,34758],{"type":21,"tag":2320,"props":34734,"children":34735},{"style":3200},[34736],{"type":26,"value":11946},{"type":21,"tag":2320,"props":34738,"children":34739},{"style":2327},[34740],{"type":26,"value":15012},{"type":21,"tag":2320,"props":34742,"children":34743},{"style":3200},[34744],{"type":26,"value":6379},{"type":21,"tag":2320,"props":34746,"children":34747},{"style":2345},[34748],{"type":26,"value":34749}," 20",{"type":21,"tag":2320,"props":34751,"children":34752},{"style":3200},[34753],{"type":26,"value":15138},{"type":21,"tag":2320,"props":34755,"children":34756},{"style":2345},[34757],{"type":26,"value":11960},{"type":21,"tag":2320,"props":34759,"children":34760},{"style":2327},[34761],{"type":26,"value":4919},{"type":21,"tag":2320,"props":34763,"children":34764},{"class":2322,"line":4689},[34765,34769,34773,34777,34781,34785,34789,34794,34798,34803,34807,34811,34816,34820,34824],{"type":21,"tag":2320,"props":34766,"children":34767},{"style":2345},[34768],{"type":26,"value":12892},{"type":21,"tag":2320,"props":34770,"children":34771},{"style":2327},[34772],{"type":26,"value":3320},{"type":21,"tag":2320,"props":34774,"children":34775},{"style":3200},[34776],{"type":26,"value":3325},{"type":21,"tag":2320,"props":34778,"children":34779},{"style":2356},[34780],{"type":26,"value":15229},{"type":21,"tag":2320,"props":34782,"children":34783},{"style":2345},[34784],{"type":26,"value":3335},{"type":21,"tag":2320,"props":34786,"children":34787},{"style":2327},[34788],{"type":26,"value":15238},{"type":21,"tag":2320,"props":34790,"children":34791},{"style":3200},[34792],{"type":26,"value":34793},":3d",{"type":21,"tag":2320,"props":34795,"children":34796},{"style":2345},[34797],{"type":26,"value":3345},{"type":21,"tag":2320,"props":34799,"children":34800},{"style":2356},[34801],{"type":26,"value":34802},": E = ",{"type":21,"tag":2320,"props":34804,"children":34805},{"style":2345},[34806],{"type":26,"value":3335},{"type":21,"tag":2320,"props":34808,"children":34809},{"style":2327},[34810],{"type":26,"value":26901},{"type":21,"tag":2320,"props":34812,"children":34813},{"style":3200},[34814],{"type":26,"value":34815},":.6f",{"type":21,"tag":2320,"props":34817,"children":34818},{"style":2345},[34819],{"type":26,"value":3345},{"type":21,"tag":2320,"props":34821,"children":34822},{"style":2356},[34823],{"type":26,"value":19446},{"type":21,"tag":2320,"props":34825,"children":34826},{"style":2327},[34827],{"type":26,"value":3300},{"type":21,"tag":2320,"props":34829,"children":34830},{"class":2322,"line":4734},[34831],{"type":21,"tag":2320,"props":34832,"children":34833},{"emptyLinePlaceholder":3224},[34834],{"type":26,"value":3227},{"type":21,"tag":2320,"props":34836,"children":34837},{"class":2322,"line":4773},[34838,34842,34846,34850,34854,34858,34863,34867,34871,34875,34879,34883],{"type":21,"tag":2320,"props":34839,"children":34840},{"style":2345},[34841],{"type":26,"value":3315},{"type":21,"tag":2320,"props":34843,"children":34844},{"style":2327},[34845],{"type":26,"value":3320},{"type":21,"tag":2320,"props":34847,"children":34848},{"style":3200},[34849],{"type":26,"value":3325},{"type":21,"tag":2320,"props":34851,"children":34852},{"style":2356},[34853],{"type":26,"value":3350},{"type":21,"tag":2320,"props":34855,"children":34856},{"style":2345},[34857],{"type":26,"value":15366},{"type":21,"tag":2320,"props":34859,"children":34860},{"style":2356},[34861],{"type":26,"value":34862},"VQE ground state energy: ",{"type":21,"tag":2320,"props":34864,"children":34865},{"style":2345},[34866],{"type":26,"value":3335},{"type":21,"tag":2320,"props":34868,"children":34869},{"style":2327},[34870],{"type":26,"value":26901},{"type":21,"tag":2320,"props":34872,"children":34873},{"style":3200},[34874],{"type":26,"value":34815},{"type":21,"tag":2320,"props":34876,"children":34877},{"style":2345},[34878],{"type":26,"value":3345},{"type":21,"tag":2320,"props":34880,"children":34881},{"style":2356},[34882],{"type":26,"value":19446},{"type":21,"tag":2320,"props":34884,"children":34885},{"style":2327},[34886],{"type":26,"value":3300},{"type":21,"tag":2320,"props":34888,"children":34889},{"class":2322,"line":4791},[34890,34894,34898,34902,34907],{"type":21,"tag":2320,"props":34891,"children":34892},{"style":2345},[34893],{"type":26,"value":3315},{"type":21,"tag":2320,"props":34895,"children":34896},{"style":2327},[34897],{"type":26,"value":3320},{"type":21,"tag":2320,"props":34899,"children":34900},{"style":3200},[34901],{"type":26,"value":3325},{"type":21,"tag":2320,"props":34903,"children":34904},{"style":2356},[34905],{"type":26,"value":34906},"\"Reference (exact): -1.136189 Ha\"",{"type":21,"tag":2320,"props":34908,"children":34909},{"style":2327},[34910],{"type":26,"value":3300},{"type":21,"tag":22,"props":34912,"children":34913},{},[34914],{"type":26,"value":34915},"Salida típica:",{"type":21,"tag":2310,"props":34917,"children":34919},{"code":34918},"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",[34920],{"type":21,"tag":2080,"props":34921,"children":34922},{"__ignoreMap":7},[34923],{"type":26,"value":34918},{"type":21,"tag":22,"props":34925,"children":34926},{},[34927],{"type":26,"value":34928},"VQE alcanza un valor dentro de ~0.015 mHa de la energía exacta — precisión química para H₂.",{"type":21,"tag":49,"props":34930,"children":34932},{"id":34931},"usando-un-optimizador-sin-gradientes",[34933],{"type":26,"value":34934},"Usando un optimizador sin gradientes",{"type":21,"tag":22,"props":34936,"children":34937},{},[34938],{"type":26,"value":34939},"Para hardware ruidoso, los optimizadores sin gradientes como COBYLA o SPSA suelen ser mejores, ya que los gradientes del hardware son ruidosos:",{"type":21,"tag":2310,"props":34941,"children":34943},{"code":34942,"language":3190,"meta":7,"className":3188,"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",[34944],{"type":21,"tag":2080,"props":34945,"children":34946},{"__ignoreMap":7},[34947,34966,34973,34981,34997,35046,35053,35069,35077,35094,35115,35166,35173,35180],{"type":21,"tag":2320,"props":34948,"children":34949},{"class":2322,"line":2323},[34950,34954,34958,34962],{"type":21,"tag":2320,"props":34951,"children":34952},{"style":3200},[34953],{"type":26,"value":3203},{"type":21,"tag":2320,"props":34955,"children":34956},{"style":2327},[34957],{"type":26,"value":29110},{"type":21,"tag":2320,"props":34959,"children":34960},{"style":3200},[34961],{"type":26,"value":3213},{"type":21,"tag":2320,"props":34963,"children":34964},{"style":2327},[34965],{"type":26,"value":29119},{"type":21,"tag":2320,"props":34967,"children":34968},{"class":2322,"line":150},[34969],{"type":21,"tag":2320,"props":34970,"children":34971},{"emptyLinePlaceholder":3224},[34972],{"type":26,"value":3227},{"type":21,"tag":2320,"props":34974,"children":34975},{"class":2322,"line":2341},[34976],{"type":21,"tag":2320,"props":34977,"children":34978},{"style":3450},[34979],{"type":26,"value":34980},"# Objective function (no gradient needed)\n",{"type":21,"tag":2320,"props":34982,"children":34983},{"class":2322,"line":2403},[34984,34988,34993],{"type":21,"tag":2320,"props":34985,"children":34986},{"style":3200},[34987],{"type":26,"value":4361},{"type":21,"tag":2320,"props":34989,"children":34990},{"style":4364},[34991],{"type":26,"value":34992}," objective",{"type":21,"tag":2320,"props":34994,"children":34995},{"style":2327},[34996],{"type":26,"value":25166},{"type":21,"tag":2320,"props":34998,"children":34999},{"class":2322,"line":2427},[35000,35004,35008,35013,35017,35021,35025,35029,35033,35037,35041],{"type":21,"tag":2320,"props":35001,"children":35002},{"style":3200},[35003],{"type":26,"value":4586},{"type":21,"tag":2320,"props":35005,"children":35006},{"style":2345},[35007],{"type":26,"value":25945},{"type":21,"tag":2320,"props":35009,"children":35010},{"style":2327},[35011],{"type":26,"value":35012},"(circuit(params, ",{"type":21,"tag":2320,"props":35014,"children":35015},{"style":2345},[35016],{"type":26,"value":4942},{"type":21,"tag":2320,"props":35018,"children":35019},{"style":2327},[35020],{"type":26,"value":34674},{"type":21,"tag":2320,"props":35022,"children":35023},{"style":3265},[35024],{"type":26,"value":34369},{"type":21,"tag":2320,"props":35026,"children":35027},{"style":3200},[35028],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35030,"children":35031},{"style":2327},[35032],{"type":26,"value":34378},{"type":21,"tag":2320,"props":35034,"children":35035},{"style":3265},[35036],{"type":26,"value":34383},{"type":21,"tag":2320,"props":35038,"children":35039},{"style":3200},[35040],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35042,"children":35043},{"style":2327},[35044],{"type":26,"value":35045},"d_wires))\n",{"type":21,"tag":2320,"props":35047,"children":35048},{"class":2322,"line":854},[35049],{"type":21,"tag":2320,"props":35050,"children":35051},{"emptyLinePlaceholder":3224},[35052],{"type":26,"value":3227},{"type":21,"tag":2320,"props":35054,"children":35055},{"class":2322,"line":171},[35056,35060,35064],{"type":21,"tag":2320,"props":35057,"children":35058},{"style":2327},[35059],{"type":26,"value":19342},{"type":21,"tag":2320,"props":35061,"children":35062},{"style":3200},[35063],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35065,"children":35066},{"style":2327},[35067],{"type":26,"value":35068}," minimize(\n",{"type":21,"tag":2320,"props":35070,"children":35071},{"class":2322,"line":16},[35072],{"type":21,"tag":2320,"props":35073,"children":35074},{"style":2327},[35075],{"type":26,"value":35076},"    objective,\n",{"type":21,"tag":2320,"props":35078,"children":35079},{"class":2322,"line":1370},[35080,35085,35089],{"type":21,"tag":2320,"props":35081,"children":35082},{"style":3265},[35083],{"type":26,"value":35084},"    x0",{"type":21,"tag":2320,"props":35086,"children":35087},{"style":3200},[35088],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35090,"children":35091},{"style":2327},[35092],{"type":26,"value":35093},"init_params,\n",{"type":21,"tag":2320,"props":35095,"children":35096},{"class":2322,"line":3446},[35097,35102,35106,35111],{"type":21,"tag":2320,"props":35098,"children":35099},{"style":3265},[35100],{"type":26,"value":35101},"    method",{"type":21,"tag":2320,"props":35103,"children":35104},{"style":3200},[35105],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35107,"children":35108},{"style":2356},[35109],{"type":26,"value":35110},"\"COBYLA\"",{"type":21,"tag":2320,"props":35112,"children":35113},{"style":2327},[35114],{"type":26,"value":2424},{"type":21,"tag":2320,"props":35116,"children":35117},{"class":2322,"line":3456},[35118,35123,35127,35131,35136,35140,35145,35149,35154,35158,35162],{"type":21,"tag":2320,"props":35119,"children":35120},{"style":3265},[35121],{"type":26,"value":35122},"    options",{"type":21,"tag":2320,"props":35124,"children":35125},{"style":3200},[35126],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35128,"children":35129},{"style":2327},[35130],{"type":26,"value":3335},{"type":21,"tag":2320,"props":35132,"children":35133},{"style":2356},[35134],{"type":26,"value":35135},"\"maxiter\"",{"type":21,"tag":2320,"props":35137,"children":35138},{"style":2327},[35139],{"type":26,"value":2414},{"type":21,"tag":2320,"props":35141,"children":35142},{"style":2345},[35143],{"type":26,"value":35144},"500",{"type":21,"tag":2320,"props":35146,"children":35147},{"style":2327},[35148],{"type":26,"value":1315},{"type":21,"tag":2320,"props":35150,"children":35151},{"style":2356},[35152],{"type":26,"value":35153},"\"rhobeg\"",{"type":21,"tag":2320,"props":35155,"children":35156},{"style":2327},[35157],{"type":26,"value":2414},{"type":21,"tag":2320,"props":35159,"children":35160},{"style":2345},[35161],{"type":26,"value":14871},{"type":21,"tag":2320,"props":35163,"children":35164},{"style":2327},[35165],{"type":26,"value":2512},{"type":21,"tag":2320,"props":35167,"children":35168},{"class":2322,"line":474},[35169],{"type":21,"tag":2320,"props":35170,"children":35171},{"style":2327},[35172],{"type":26,"value":3300},{"type":21,"tag":2320,"props":35174,"children":35175},{"class":2322,"line":3516},[35176],{"type":21,"tag":2320,"props":35177,"children":35178},{"emptyLinePlaceholder":3224},[35179],{"type":26,"value":3227},{"type":21,"tag":2320,"props":35181,"children":35182},{"class":2322,"line":3564},[35183,35187,35191,35195,35200,35204,35208,35212,35216,35220],{"type":21,"tag":2320,"props":35184,"children":35185},{"style":2345},[35186],{"type":26,"value":3315},{"type":21,"tag":2320,"props":35188,"children":35189},{"style":2327},[35190],{"type":26,"value":3320},{"type":21,"tag":2320,"props":35192,"children":35193},{"style":3200},[35194],{"type":26,"value":3325},{"type":21,"tag":2320,"props":35196,"children":35197},{"style":2356},[35198],{"type":26,"value":35199},"\"COBYLA energy: ",{"type":21,"tag":2320,"props":35201,"children":35202},{"style":2345},[35203],{"type":26,"value":3335},{"type":21,"tag":2320,"props":35205,"children":35206},{"style":2327},[35207],{"type":26,"value":30175},{"type":21,"tag":2320,"props":35209,"children":35210},{"style":3200},[35211],{"type":26,"value":34815},{"type":21,"tag":2320,"props":35213,"children":35214},{"style":2345},[35215],{"type":26,"value":3345},{"type":21,"tag":2320,"props":35217,"children":35218},{"style":2356},[35219],{"type":26,"value":19446},{"type":21,"tag":2320,"props":35221,"children":35222},{"style":2327},[35223],{"type":26,"value":3300},{"type":21,"tag":49,"props":35225,"children":35227},{"id":35226},"ejecutando-vqe-con-hlquantum",[35228],{"type":26,"value":35229},"Ejecutando VQE con HLQuantum",{"type":21,"tag":22,"props":35231,"children":35232},{},[35233],{"type":26,"value":35234},"HLQuantum incluye una implementación de VQE integrada que funciona en todos los backends:",{"type":21,"tag":2310,"props":35236,"children":35238},{"code":35237,"language":3190,"meta":7,"className":3188,"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",[35239],{"type":21,"tag":2080,"props":35240,"children":35241},{"__ignoreMap":7},[35242,35261,35268,35276,35310,35317,35325,35340,35357,35378,35398,35418,35443,35450,35457,35500,35541],{"type":21,"tag":2320,"props":35243,"children":35244},{"class":2322,"line":2323},[35245,35249,35253,35257],{"type":21,"tag":2320,"props":35246,"children":35247},{"style":3200},[35248],{"type":26,"value":3213},{"type":21,"tag":2320,"props":35250,"children":35251},{"style":2327},[35252],{"type":26,"value":19310},{"type":21,"tag":2320,"props":35254,"children":35255},{"style":3200},[35256],{"type":26,"value":4278},{"type":21,"tag":2320,"props":35258,"children":35259},{"style":2327},[35260],{"type":26,"value":19319},{"type":21,"tag":2320,"props":35262,"children":35263},{"class":2322,"line":150},[35264],{"type":21,"tag":2320,"props":35265,"children":35266},{"emptyLinePlaceholder":3224},[35267],{"type":26,"value":3227},{"type":21,"tag":2320,"props":35269,"children":35270},{"class":2322,"line":2341},[35271],{"type":21,"tag":2320,"props":35272,"children":35273},{"style":3450},[35274],{"type":26,"value":35275},"# Define the Hamiltonian in HLQuantum's format\n",{"type":21,"tag":2320,"props":35277,"children":35278},{"class":2322,"line":2403},[35279,35283,35287,35292,35297,35301,35306],{"type":21,"tag":2320,"props":35280,"children":35281},{"style":2327},[35282],{"type":26,"value":24903},{"type":21,"tag":2320,"props":35284,"children":35285},{"style":3200},[35286],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35288,"children":35289},{"style":2327},[35290],{"type":26,"value":35291}," hlq.hamiltonians.h2_molecule(",{"type":21,"tag":2320,"props":35293,"children":35294},{"style":3265},[35295],{"type":26,"value":35296},"bond_length",{"type":21,"tag":2320,"props":35298,"children":35299},{"style":3200},[35300],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35302,"children":35303},{"style":2345},[35304],{"type":26,"value":35305},"1.32",{"type":21,"tag":2320,"props":35307,"children":35308},{"style":2327},[35309],{"type":26,"value":3300},{"type":21,"tag":2320,"props":35311,"children":35312},{"class":2322,"line":2427},[35313],{"type":21,"tag":2320,"props":35314,"children":35315},{"emptyLinePlaceholder":3224},[35316],{"type":26,"value":3227},{"type":21,"tag":2320,"props":35318,"children":35319},{"class":2322,"line":854},[35320],{"type":21,"tag":2320,"props":35321,"children":35322},{"style":3450},[35323],{"type":26,"value":35324},"# Run VQE on any backend\n",{"type":21,"tag":2320,"props":35326,"children":35327},{"class":2322,"line":171},[35328,35332,35336],{"type":21,"tag":2320,"props":35329,"children":35330},{"style":2327},[35331],{"type":26,"value":19342},{"type":21,"tag":2320,"props":35333,"children":35334},{"style":3200},[35335],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35337,"children":35338},{"style":2327},[35339],{"type":26,"value":22832},{"type":21,"tag":2320,"props":35341,"children":35342},{"class":2322,"line":16},[35343,35348,35352],{"type":21,"tag":2320,"props":35344,"children":35345},{"style":3265},[35346],{"type":26,"value":35347},"    hamiltonian",{"type":21,"tag":2320,"props":35349,"children":35350},{"style":3200},[35351],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35353,"children":35354},{"style":2327},[35355],{"type":26,"value":35356},"H,\n",{"type":21,"tag":2320,"props":35358,"children":35359},{"class":2322,"line":1370},[35360,35365,35369,35374],{"type":21,"tag":2320,"props":35361,"children":35362},{"style":3265},[35363],{"type":26,"value":35364},"    ansatz",{"type":21,"tag":2320,"props":35366,"children":35367},{"style":3200},[35368],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35370,"children":35371},{"style":2356},[35372],{"type":26,"value":35373},"\"uccsd\"",{"type":21,"tag":2320,"props":35375,"children":35376},{"style":2327},[35377],{"type":26,"value":2424},{"type":21,"tag":2320,"props":35379,"children":35380},{"class":2322,"line":3446},[35381,35385,35389,35394],{"type":21,"tag":2320,"props":35382,"children":35383},{"style":3265},[35384],{"type":26,"value":22900},{"type":21,"tag":2320,"props":35386,"children":35387},{"style":3200},[35388],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35390,"children":35391},{"style":2356},[35392],{"type":26,"value":35393},"\"adam\"",{"type":21,"tag":2320,"props":35395,"children":35396},{"style":2327},[35397],{"type":26,"value":2424},{"type":21,"tag":2320,"props":35399,"children":35400},{"class":2322,"line":3456},[35401,35406,35410,35414],{"type":21,"tag":2320,"props":35402,"children":35403},{"style":3265},[35404],{"type":26,"value":35405},"    max_iterations",{"type":21,"tag":2320,"props":35407,"children":35408},{"style":3200},[35409],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35411,"children":35412},{"style":2345},[35413],{"type":26,"value":14630},{"type":21,"tag":2320,"props":35415,"children":35416},{"style":2327},[35417],{"type":26,"value":2424},{"type":21,"tag":2320,"props":35419,"children":35420},{"class":2322,"line":474},[35421,35425,35429,35433,35438],{"type":21,"tag":2320,"props":35422,"children":35423},{"style":3265},[35424],{"type":26,"value":22880},{"type":21,"tag":2320,"props":35426,"children":35427},{"style":3200},[35428],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35430,"children":35431},{"style":2356},[35432],{"type":26,"value":33485},{"type":21,"tag":2320,"props":35434,"children":35435},{"style":2327},[35436],{"type":26,"value":35437},",   ",{"type":21,"tag":2320,"props":35439,"children":35440},{"style":3450},[35441],{"type":26,"value":35442},"# or \"qiskit\", \"cudaq\"\n",{"type":21,"tag":2320,"props":35444,"children":35445},{"class":2322,"line":3516},[35446],{"type":21,"tag":2320,"props":35447,"children":35448},{"style":2327},[35449],{"type":26,"value":3300},{"type":21,"tag":2320,"props":35451,"children":35452},{"class":2322,"line":3564},[35453],{"type":21,"tag":2320,"props":35454,"children":35455},{"emptyLinePlaceholder":3224},[35456],{"type":26,"value":3227},{"type":21,"tag":2320,"props":35458,"children":35459},{"class":2322,"line":3606},[35460,35464,35468,35472,35476,35480,35484,35488,35492,35496],{"type":21,"tag":2320,"props":35461,"children":35462},{"style":2345},[35463],{"type":26,"value":3315},{"type":21,"tag":2320,"props":35465,"children":35466},{"style":2327},[35467],{"type":26,"value":3320},{"type":21,"tag":2320,"props":35469,"children":35470},{"style":3200},[35471],{"type":26,"value":3325},{"type":21,"tag":2320,"props":35473,"children":35474},{"style":2356},[35475],{"type":26,"value":26892},{"type":21,"tag":2320,"props":35477,"children":35478},{"style":2345},[35479],{"type":26,"value":3335},{"type":21,"tag":2320,"props":35481,"children":35482},{"style":2327},[35483],{"type":26,"value":19433},{"type":21,"tag":2320,"props":35485,"children":35486},{"style":3200},[35487],{"type":26,"value":34815},{"type":21,"tag":2320,"props":35489,"children":35490},{"style":2345},[35491],{"type":26,"value":3345},{"type":21,"tag":2320,"props":35493,"children":35494},{"style":2356},[35495],{"type":26,"value":19446},{"type":21,"tag":2320,"props":35497,"children":35498},{"style":2327},[35499],{"type":26,"value":3300},{"type":21,"tag":2320,"props":35501,"children":35502},{"class":2322,"line":4631},[35503,35507,35511,35515,35520,35524,35529,35533,35537],{"type":21,"tag":2320,"props":35504,"children":35505},{"style":2345},[35506],{"type":26,"value":3315},{"type":21,"tag":2320,"props":35508,"children":35509},{"style":2327},[35510],{"type":26,"value":3320},{"type":21,"tag":2320,"props":35512,"children":35513},{"style":3200},[35514],{"type":26,"value":3325},{"type":21,"tag":2320,"props":35516,"children":35517},{"style":2356},[35518],{"type":26,"value":35519},"\"Optimal parameters: ",{"type":21,"tag":2320,"props":35521,"children":35522},{"style":2345},[35523],{"type":26,"value":3335},{"type":21,"tag":2320,"props":35525,"children":35526},{"style":2327},[35527],{"type":26,"value":35528},"result.params",{"type":21,"tag":2320,"props":35530,"children":35531},{"style":2345},[35532],{"type":26,"value":3345},{"type":21,"tag":2320,"props":35534,"children":35535},{"style":2356},[35536],{"type":26,"value":3350},{"type":21,"tag":2320,"props":35538,"children":35539},{"style":2327},[35540],{"type":26,"value":3300},{"type":21,"tag":2320,"props":35542,"children":35543},{"class":2322,"line":4650},[35544,35548,35552,35556,35561,35565,35570,35574,35579],{"type":21,"tag":2320,"props":35545,"children":35546},{"style":2345},[35547],{"type":26,"value":3315},{"type":21,"tag":2320,"props":35549,"children":35550},{"style":2327},[35551],{"type":26,"value":3320},{"type":21,"tag":2320,"props":35553,"children":35554},{"style":3200},[35555],{"type":26,"value":3325},{"type":21,"tag":2320,"props":35557,"children":35558},{"style":2356},[35559],{"type":26,"value":35560},"\"Converged in ",{"type":21,"tag":2320,"props":35562,"children":35563},{"style":2345},[35564],{"type":26,"value":3335},{"type":21,"tag":2320,"props":35566,"children":35567},{"style":2327},[35568],{"type":26,"value":35569},"result.iterations",{"type":21,"tag":2320,"props":35571,"children":35572},{"style":2345},[35573],{"type":26,"value":3345},{"type":21,"tag":2320,"props":35575,"children":35576},{"style":2356},[35577],{"type":26,"value":35578}," iterations\"",{"type":21,"tag":2320,"props":35580,"children":35581},{"style":2327},[35582],{"type":26,"value":3300},{"type":21,"tag":49,"props":35584,"children":35586},{"id":35585},"consejos-para-hardware-real",[35587],{"type":26,"value":35588},"Consejos para hardware real",{"type":21,"tag":22,"props":35590,"children":35591},{},[35592],{"type":26,"value":35593},"Al ejecutar VQE en QPUs reales (IBM Quantum, IonQ), se aplican varias consideraciones adicionales:",{"type":21,"tag":22,"props":35595,"children":35596},{},[35597,35602],{"type":21,"tag":180,"props":35598,"children":35599},{},[35600],{"type":26,"value":35601},"Usa menos shots por paso.",{"type":26,"value":35603}," 1000 shots por paso de optimización suele ser suficiente para la estimación del gradiente. No uses 10.000 shots en cada paso — desperdicia tiempo de QPU.",{"type":21,"tag":22,"props":35605,"children":35606},{},[35607,35612],{"type":21,"tag":180,"props":35608,"children":35609},{},[35610],{"type":26,"value":35611},"Empieza con circuitos poco profundos.",{"type":26,"value":35613}," Menos puertas CNOT = menos ruido. Para hardware, considera circuitos de ansatz eficientes en hardware en lugar de UCCSD.",{"type":21,"tag":22,"props":35615,"children":35616},{},[35617,35622,35624,35630],{"type":21,"tag":180,"props":35618,"children":35619},{},[35620],{"type":26,"value":35621},"Habilita la mitigación de errores.",{"type":26,"value":35623}," El ",{"type":21,"tag":2080,"props":35625,"children":35627},{"className":35626},[],[35628],{"type":26,"value":35629},"error_mitigation=\"zne\"",{"type":26,"value":35631}," de HLQuantum aplica Zero Noise Extrapolation, que puede mejorar significativamente los resultados en hardware ruidoso:",{"type":21,"tag":2310,"props":35633,"children":35635},{"code":35634,"language":3190,"meta":7,"className":3188,"style":7},"result = hlq.run(vqe_circuit, backend=\"qiskit\", device=\"ibm_sherbrooke\",\n                 error_mitigation=\"zne\", shots=2048)\n",[35636],{"type":21,"tag":2080,"props":35637,"children":35638},{"__ignoreMap":7},[35639,35687],{"type":21,"tag":2320,"props":35640,"children":35641},{"class":2322,"line":2323},[35642,35646,35650,35655,35659,35663,35667,35671,35675,35679,35683],{"type":21,"tag":2320,"props":35643,"children":35644},{"style":2327},[35645],{"type":26,"value":19342},{"type":21,"tag":2320,"props":35647,"children":35648},{"style":3200},[35649],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35651,"children":35652},{"style":2327},[35653],{"type":26,"value":35654}," hlq.run(vqe_circuit, ",{"type":21,"tag":2320,"props":35656,"children":35657},{"style":3265},[35658],{"type":26,"value":18469},{"type":21,"tag":2320,"props":35660,"children":35661},{"style":3200},[35662],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35664,"children":35665},{"style":2356},[35666],{"type":26,"value":28792},{"type":21,"tag":2320,"props":35668,"children":35669},{"style":2327},[35670],{"type":26,"value":1315},{"type":21,"tag":2320,"props":35672,"children":35673},{"style":3265},[35674],{"type":26,"value":22303},{"type":21,"tag":2320,"props":35676,"children":35677},{"style":3200},[35678],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35680,"children":35681},{"style":2356},[35682],{"type":26,"value":28813},{"type":21,"tag":2320,"props":35684,"children":35685},{"style":2327},[35686],{"type":26,"value":2424},{"type":21,"tag":2320,"props":35688,"children":35689},{"class":2322,"line":150},[35690,35695,35699,35704,35708,35712,35716,35721],{"type":21,"tag":2320,"props":35691,"children":35692},{"style":3265},[35693],{"type":26,"value":35694},"                 error_mitigation",{"type":21,"tag":2320,"props":35696,"children":35697},{"style":3200},[35698],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35700,"children":35701},{"style":2356},[35702],{"type":26,"value":35703},"\"zne\"",{"type":21,"tag":2320,"props":35705,"children":35706},{"style":2327},[35707],{"type":26,"value":1315},{"type":21,"tag":2320,"props":35709,"children":35710},{"style":3265},[35711],{"type":26,"value":4123},{"type":21,"tag":2320,"props":35713,"children":35714},{"style":3200},[35715],{"type":26,"value":3240},{"type":21,"tag":2320,"props":35717,"children":35718},{"style":2345},[35719],{"type":26,"value":35720},"2048",{"type":21,"tag":2320,"props":35722,"children":35723},{"style":2327},[35724],{"type":26,"value":3300},{"type":21,"tag":22,"props":35726,"children":35727},{},[35728,35729,35734,35735,35740],{"type":26,"value":20980},{"type":21,"tag":29,"props":35730,"children":35731},{"href":14069},[35732],{"type":26,"value":35733},"guía completa de PennyLane",{"type":26,"value":3707},{"type":21,"tag":29,"props":35736,"children":35737},{"href":19017},[35738],{"type":26,"value":35739},"referencia de algoritmos de HLQuantum",{"type":26,"value":35741}," para más detalles sobre simulaciones de química cuántica.",{"type":21,"tag":2694,"props":35743,"children":35744},{},[35745],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":35747},[35748,35749,35750,35751,35752,35753,35754],{"id":33667,"depth":150,"text":33670},{"id":33706,"depth":150,"text":33709},{"id":34080,"depth":150,"text":34083},{"id":34427,"depth":150,"text":34430},{"id":34931,"depth":150,"text":34934},{"id":35226,"depth":150,"text":35229},{"id":35585,"depth":150,"text":35588},"content:es:blog:vqe-pennylane-practical-guide.md","es\u002Fblog\u002Fvqe-pennylane-practical-guide.md","es\u002Fblog\u002Fvqe-pennylane-practical-guide",{"_path":35759,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":35760,"description":35761,"date":35762,"author":11,"tags":35763,"readingTime":854,"body":35764,"_type":156,"_id":36222,"_source":158,"_file":36223,"_stem":36224,"_extension":161},"\u002Fes\u002Fblog\u002Funderstanding-quantum-error-correction","Entender la corrección de errores cuántica sin las matemáticas","Por qué los ordenadores cuánticos cometen errores, cómo funciona la corrección de errores y qué significa para el futuro de la computación cuántica tolerante a fallos.","2026-01-15",[14,2865,421],{"type":18,"children":35765,"toc":36213},[35766,35771,35777,35782,35801,35807,35812,35845,35850,35856,35875,35894,35902,35914,35920,35931,35939,35944,35949,35955,35960,35978,35983,35988,35994,35999,36032,36037,36151,36156,36162,36172,36182,36192,36209],{"type":21,"tag":22,"props":35767,"children":35768},{},[35769],{"type":26,"value":35770},"Los ordenadores cuánticos cometen errores, y muchos. Una puerta típica de un cúbit superconductor tiene una tasa de error del 0,1 al 1 %. Ejecuta un circuito de 1000 puertas y prácticamente tienes garantizado obtener una respuesta incorrecta. Esto no es un fallo del hardware actual; es un desafío fundamental. La corrección de errores cuántica (QEC) es la solución, y entenderla es clave para comprender hacia dónde se dirige la computación cuántica.",{"type":21,"tag":49,"props":35772,"children":35774},{"id":35773},"por-qué-los-errores-cuánticos-son-diferentes",[35775],{"type":26,"value":35776},"Por qué los errores cuánticos son diferentes",{"type":21,"tag":22,"props":35778,"children":35779},{},[35780],{"type":26,"value":35781},"Los ordenadores clásicos también tienen errores, pero son fáciles de manejar: copia el bit tres veces y toma una votación por mayoría. Si una copia se invierte, las otras dos la superan en votos.",{"type":21,"tag":22,"props":35783,"children":35784},{},[35785,35787,35792,35794,35799],{"type":26,"value":35786},"Los cúbits no se pueden copiar: el ",{"type":21,"tag":180,"props":35788,"children":35789},{},[35790],{"type":26,"value":35791},"no-cloning theorem",{"type":26,"value":35793}," lo prohíbe. No puedes medir un cúbit para comprobar si hay errores sin colapsar su superposición. Y los errores cuánticos no son solo inversiones de bit: también existen ",{"type":21,"tag":180,"props":35795,"children":35796},{},[35797],{"type":26,"value":35798},"errores de fase",{"type":26,"value":35800}," (donde la fase relativa entre |0⟩ y |1⟩ se desplaza) y combinaciones de ambos.",{"type":21,"tag":49,"props":35802,"children":35804},{"id":35803},"los-tres-tipos-de-errores-cuánticos",[35805],{"type":26,"value":35806},"Los tres tipos de errores cuánticos",{"type":21,"tag":22,"props":35808,"children":35809},{},[35810],{"type":26,"value":35811},"Todo error cuántico puede descomponerse en combinaciones de tres operadores de Pauli:",{"type":21,"tag":3118,"props":35813,"children":35814},{},[35815,35825,35835],{"type":21,"tag":3122,"props":35816,"children":35817},{},[35818,35823],{"type":21,"tag":180,"props":35819,"children":35820},{},[35821],{"type":26,"value":35822},"X error (bit flip):",{"type":26,"value":35824}," |0⟩ → |1⟩ y |1⟩ → |0⟩. Como una inversión de bit clásica.",{"type":21,"tag":3122,"props":35826,"children":35827},{},[35828,35833],{"type":21,"tag":180,"props":35829,"children":35830},{},[35831],{"type":26,"value":35832},"Z error (phase flip):",{"type":26,"value":35834}," |0⟩ → |0⟩, |1⟩ → −|1⟩. Sin análogo clásico: afecta a la fase.",{"type":21,"tag":3122,"props":35836,"children":35837},{},[35838,35843],{"type":21,"tag":180,"props":35839,"children":35840},{},[35841],{"type":26,"value":35842},"Y error:",{"type":26,"value":35844}," error X y Z combinados simultáneamente.",{"type":21,"tag":22,"props":35846,"children":35847},{},[35848],{"type":26,"value":35849},"Cualquier error en un cúbit puede expresarse como una combinación lineal de X, Y, Z (y la identidad). Esto significa que si podemos corregir errores X y Z de forma independiente, podemos corregir cualquier error, una idea clave para la QEC.",{"type":21,"tag":49,"props":35851,"children":35853},{"id":35852},"la-gran-idea-redundancia-sin-copiar",[35854],{"type":26,"value":35855},"La gran idea: redundancia sin copiar",{"type":21,"tag":22,"props":35857,"children":35858},{},[35859,35861,35866,35868,35873],{"type":26,"value":35860},"La QEC codifica un ",{"type":21,"tag":180,"props":35862,"children":35863},{},[35864],{"type":26,"value":35865},"cúbit lógico",{"type":26,"value":35867}," a través de muchos ",{"type":21,"tag":180,"props":35869,"children":35870},{},[35871],{"type":26,"value":35872},"cúbits físicos",{"type":26,"value":35874},". La idea es similar a los códigos de repetición clásicos, pero adaptada a la mecánica cuántica.",{"type":21,"tag":22,"props":35876,"children":35877},{},[35878,35880,35885,35887,35892],{"type":26,"value":35879},"El ejemplo más sencillo es el ",{"type":21,"tag":180,"props":35881,"children":35882},{},[35883],{"type":26,"value":35884},"código de inversión de bit de 3 cúbits",{"type":26,"value":35886},": codifica |0⟩ como |000⟩ y |1⟩ como |111⟩. Si un cúbit se invierte, lo detectas midiendo la ",{"type":21,"tag":2054,"props":35888,"children":35889},{},[35890],{"type":26,"value":35891},"paridad",{"type":26,"value":35893}," entre pares de cúbits (sin medir sus valores reales) y lo corriges:",{"type":21,"tag":2310,"props":35895,"children":35897},{"code":35896},"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",[35898],{"type":21,"tag":2080,"props":35899,"children":35900},{"__ignoreMap":7},[35901],{"type":26,"value":35896},{"type":21,"tag":22,"props":35903,"children":35904},{},[35905,35907,35912],{"type":26,"value":35906},"Las mediciones de paridad utilizan ",{"type":21,"tag":180,"props":35908,"children":35909},{},[35910],{"type":26,"value":35911},"cúbits auxiliares",{"type":26,"value":35913}," (ancilla qubits), cúbits de ayuda que absorben la información del error sin perturbar los cúbits de datos. Esta es la magia: puedes detectar errores sin colapsar el estado codificado.",{"type":21,"tag":49,"props":35915,"children":35917},{"id":35916},"el-código-de-superficie-el-enfoque-líder-actual",[35918],{"type":26,"value":35919},"El código de superficie: el enfoque líder actual",{"type":21,"tag":22,"props":35921,"children":35922},{},[35923,35924,35929],{"type":26,"value":18850},{"type":21,"tag":180,"props":35925,"children":35926},{},[35927],{"type":26,"value":35928},"código de superficie",{"type":26,"value":35930}," (surface code) es el código de QEC más prometedor para el hardware a corto plazo. Codifica un cúbit lógico en una cuadrícula 2D de cúbits físicos dispuestos así:",{"type":21,"tag":2310,"props":35932,"children":35934},{"code":35933},"● — ● — ● — ●\n|   |   |   |\n● — ● — ● — ●\n|   |   |   |\n● — ● — ● — ●\n|   |   |   |\n● — ● — ● — ●\n",[35935],{"type":21,"tag":2080,"props":35936,"children":35937},{"__ignoreMap":7},[35938],{"type":26,"value":35933},{"type":21,"tag":22,"props":35940,"children":35941},{},[35942],{"type":26,"value":35943},"Los cúbits de datos (●) contienen la información cuántica. Los cúbits auxiliares situados entre ellos miden continuamente la paridad. Una cuadrícula de 7×7 (49 cúbits físicos) codifica 1 cúbit lógico con una tasa de error de ~p²: si la tasa de error de la puerta física es del 1 %, la tasa de error lógica cae hasta ~0,01 %.",{"type":21,"tag":22,"props":35945,"children":35946},{},[35947],{"type":26,"value":35948},"El umbral del código de superficie es de ~1 %: si los errores de puerta del hardware están por debajo de este valor, añadir más cúbits físicos hace que la tasa de error lógica sea arbitrariamente pequeña. Los mejores sistemas de IBM se están acercando a este umbral.",{"type":21,"tag":49,"props":35950,"children":35952},{"id":35951},"cuántos-cúbits-físicos-necesitas",[35953],{"type":26,"value":35954},"¿Cuántos cúbits físicos necesitas?",{"type":21,"tag":22,"props":35956,"children":35957},{},[35958],{"type":26,"value":35959},"Para ejecutar el algoritmo de Shor y romper RSA-2048 sin errores, las estimaciones sugieren:",{"type":21,"tag":3118,"props":35961,"children":35962},{},[35963,35968,35973],{"type":21,"tag":3122,"props":35964,"children":35965},{},[35966],{"type":26,"value":35967},"~20 millones de cúbits físicos",{"type":21,"tag":3122,"props":35969,"children":35970},{},[35971],{"type":26,"value":35972},"Cada cúbit lógico necesita ~1000–10 000 cúbits físicos",{"type":21,"tag":3122,"props":35974,"children":35975},{},[35976],{"type":26,"value":35977},"Las tasas de error de puerta deben estar por debajo del 0,1 %",{"type":21,"tag":22,"props":35979,"children":35980},{},[35981],{"type":26,"value":35982},"Hardware actual: ~1000 cúbits, ~0,1–1 % de errores de puerta. La brecha es real: estamos aproximadamente a 10–15 años de ordenadores cuánticos tolerantes a fallos capaces de romper RSA.",{"type":21,"tag":22,"props":35984,"children":35985},{},[35986],{"type":26,"value":35987},"Para una ventaja cuántica a corto plazo en química u optimización, los requisitos son mucho menores: ~100 cúbits lógicos podrían ser suficientes para moléculas fuera del alcance clásico.",{"type":21,"tag":49,"props":35989,"children":35991},{"id":35990},"qué-significa-esto-para-los-dispositivos-nisq-hoy",[35992],{"type":26,"value":35993},"Qué significa esto para los dispositivos NISQ hoy",{"type":21,"tag":22,"props":35995,"children":35996},{},[35997],{"type":26,"value":35998},"Los dispositivos NISQ actuales no tienen QEC. Cada puerta añade ruido. El enfoque, en cambio, es:",{"type":21,"tag":7007,"props":36000,"children":36001},{},[36002,36012,36022],{"type":21,"tag":3122,"props":36003,"children":36004},{},[36005,36010],{"type":21,"tag":180,"props":36006,"children":36007},{},[36008],{"type":26,"value":36009},"Mantener los circuitos poco profundos",{"type":26,"value":36011},": menos puertas = menos ruido acumulado",{"type":21,"tag":3122,"props":36013,"children":36014},{},[36015,36020],{"type":21,"tag":180,"props":36016,"children":36017},{},[36018],{"type":26,"value":36019},"Usar mitigación de errores",{"type":26,"value":36021}," (no corrección): técnicas de posprocesamiento como Zero Noise Extrapolation (ZNE) que reducen estadísticamente el efecto de los errores sin cúbits adicionales",{"type":21,"tag":3122,"props":36023,"children":36024},{},[36025,36030],{"type":21,"tag":180,"props":36026,"children":36027},{},[36028],{"type":26,"value":36029},"Diseñar algoritmos tolerantes al ruido",{"type":26,"value":36031},": VQE, QAOA y otros métodos variacionales están diseñados para ser robustos frente a un ruido moderado",{"type":21,"tag":22,"props":36033,"children":36034},{},[36035],{"type":26,"value":36036},"HLQuantum incluye mitigación de errores integrada que puede aplicarse a cualquier circuito:",{"type":21,"tag":2310,"props":36038,"children":36040},{"code":36039,"language":3190,"meta":7,"className":3188,"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",[36041],{"type":21,"tag":2080,"props":36042,"children":36043},{"__ignoreMap":7},[36044,36059,36066,36085,36104,36128,36144],{"type":21,"tag":2320,"props":36045,"children":36046},{"class":2322,"line":2323},[36047,36051,36055],{"type":21,"tag":2320,"props":36048,"children":36049},{"style":2327},[36050],{"type":26,"value":19342},{"type":21,"tag":2320,"props":36052,"children":36053},{"style":3200},[36054],{"type":26,"value":3240},{"type":21,"tag":2320,"props":36056,"children":36057},{"style":2327},[36058],{"type":26,"value":28768},{"type":21,"tag":2320,"props":36060,"children":36061},{"class":2322,"line":150},[36062],{"type":21,"tag":2320,"props":36063,"children":36064},{"style":2327},[36065],{"type":26,"value":28776},{"type":21,"tag":2320,"props":36067,"children":36068},{"class":2322,"line":2341},[36069,36073,36077,36081],{"type":21,"tag":2320,"props":36070,"children":36071},{"style":3265},[36072],{"type":26,"value":22880},{"type":21,"tag":2320,"props":36074,"children":36075},{"style":3200},[36076],{"type":26,"value":3240},{"type":21,"tag":2320,"props":36078,"children":36079},{"style":2356},[36080],{"type":26,"value":28792},{"type":21,"tag":2320,"props":36082,"children":36083},{"style":2327},[36084],{"type":26,"value":2424},{"type":21,"tag":2320,"props":36086,"children":36087},{"class":2322,"line":2403},[36088,36092,36096,36100],{"type":21,"tag":2320,"props":36089,"children":36090},{"style":3265},[36091],{"type":26,"value":28804},{"type":21,"tag":2320,"props":36093,"children":36094},{"style":3200},[36095],{"type":26,"value":3240},{"type":21,"tag":2320,"props":36097,"children":36098},{"style":2356},[36099],{"type":26,"value":28813},{"type":21,"tag":2320,"props":36101,"children":36102},{"style":2327},[36103],{"type":26,"value":2424},{"type":21,"tag":2320,"props":36105,"children":36106},{"class":2322,"line":2427},[36107,36111,36115,36119,36123],{"type":21,"tag":2320,"props":36108,"children":36109},{"style":3265},[36110],{"type":26,"value":28851},{"type":21,"tag":2320,"props":36112,"children":36113},{"style":3200},[36114],{"type":26,"value":3240},{"type":21,"tag":2320,"props":36116,"children":36117},{"style":2356},[36118],{"type":26,"value":35703},{"type":21,"tag":2320,"props":36120,"children":36121},{"style":2327},[36122],{"type":26,"value":28818},{"type":21,"tag":2320,"props":36124,"children":36125},{"style":3450},[36126],{"type":26,"value":36127},"# Zero Noise Extrapolation\n",{"type":21,"tag":2320,"props":36129,"children":36130},{"class":2322,"line":854},[36131,36135,36139],{"type":21,"tag":2320,"props":36132,"children":36133},{"style":3265},[36134],{"type":26,"value":28831},{"type":21,"tag":2320,"props":36136,"children":36137},{"style":3200},[36138],{"type":26,"value":3240},{"type":21,"tag":2320,"props":36140,"children":36141},{"style":2345},[36142],{"type":26,"value":36143},"8192\n",{"type":21,"tag":2320,"props":36145,"children":36146},{"class":2322,"line":171},[36147],{"type":21,"tag":2320,"props":36148,"children":36149},{"style":2327},[36150],{"type":26,"value":3300},{"type":21,"tag":22,"props":36152,"children":36153},{},[36154],{"type":26,"value":36155},"ZNE amplifica el ruido intencionadamente en varios niveles y extrapola de vuelta al límite de ruido cero. No es QEC (es un truco estadístico), pero funciona notablemente bien para circuitos cortos.",{"type":21,"tag":49,"props":36157,"children":36159},{"id":36158},"los-hitos-a-corto-plazo-que-vigilar",[36160],{"type":26,"value":36161},"Los hitos a corto plazo que vigilar",{"type":21,"tag":22,"props":36163,"children":36164},{},[36165,36170],{"type":21,"tag":180,"props":36166,"children":36167},{},[36168],{"type":26,"value":36169},"Demostración de corrección de errores a escala",{"type":26,"value":36171},": IBM, Google y Microsoft compiten por demostrar que los cúbits lógicos del código de superficie superan a los cúbits físicos (tasa de error por debajo del umbral). Google afirmó una demostración por debajo del umbral a finales de 2024.",{"type":21,"tag":22,"props":36173,"children":36174},{},[36175,36180],{"type":21,"tag":180,"props":36176,"children":36177},{},[36178],{"type":26,"value":36179},"Destilación de estados mágicos (magic state distillation)",{"type":26,"value":36181},": las puertas no Clifford (como las T gates) requieren protocolos de destilación especiales en las arquitecturas tolerantes a fallos. Actualmente esto es extremadamente costoso en sobrecarga de cúbits.",{"type":21,"tag":22,"props":36183,"children":36184},{},[36185,36190],{"type":21,"tag":180,"props":36186,"children":36187},{},[36188],{"type":26,"value":36189},"Velocidad de las puertas lógicas",{"type":26,"value":36191},": las puertas lógicas en los códigos de superficie son mucho más lentas que las puertas físicas. Acelerarlas es un desafío clave del hardware para 2026–2030.",{"type":21,"tag":22,"props":36193,"children":36194},{},[36195,36197,36202,36203,36208],{"type":26,"value":36196},"Para profundizar en cómo interactúa la corrección de errores con SDKs específicos, consulta la ",{"type":21,"tag":29,"props":36198,"children":36199},{"href":65},[36200],{"type":26,"value":36201},"entrada del glosario sobre corrección de errores cuántica",{"type":26,"value":3707},{"type":21,"tag":29,"props":36204,"children":36205},{"href":418},[36206],{"type":26,"value":36207},"guía de la era NISQ",{"type":26,"value":802},{"type":21,"tag":2694,"props":36210,"children":36211},{},[36212],{"type":26,"value":2698},{"title":7,"searchDepth":150,"depth":150,"links":36214},[36215,36216,36217,36218,36219,36220,36221],{"id":35773,"depth":150,"text":35776},{"id":35803,"depth":150,"text":35806},{"id":35852,"depth":150,"text":35855},{"id":35916,"depth":150,"text":35919},{"id":35951,"depth":150,"text":35954},{"id":35990,"depth":150,"text":35993},{"id":36158,"depth":150,"text":36161},"content:es:blog:understanding-quantum-error-correction.md","es\u002Fblog\u002Funderstanding-quantum-error-correction.md","es\u002Fblog\u002Funderstanding-quantum-error-correction"]