Apparatus, computer-implemented method, and computer program product for qubit reuse in a quantum computing environment

Optimized quantum programs address the qubit limitation in quantum computing by reducing qubit requirements through causality cone analysis and heuristic optimization, enabling efficient execution of complex tasks.

JP7755747B2Active Publication Date: 2025-10-16QUANTINUUM LLC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2024533075
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2022-10-27
Filing Date
2022-11-30
Publication Date
2025-10-16
Estimated Expiration
2042-11-30

AI Technical Summary

Technical Problem

Physical limits on the number of available qubits in a quantum computing environment constrain the ability to execute certain quantum computing programs, as conventional implementations are unable to handle programs requiring more qubits than available.

Method used

Optimized quantum programs are generated by identifying causality cones and reducing the number of qubits required through heuristic methods and optimization formulations, allowing for qubit reuse and efficient execution.

Benefits of technology

The optimized quantum programs reduce the number of qubits needed, enabling quantum computers with fewer qubits to solve larger and more complex problems effectively.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007755747000001
    Figure 0007755747000001
  • Figure 0007755747000002
    Figure 0007755747000002
  • Figure 0007755747000003
    Figure 0007755747000003
Patent Text Reader

Abstract

Embodiments of the present disclosure provide for reuse of qubits within a quantum computing environment for a quantum program within the quantum computing environment. In this regard, embodiments generate an optimized quantum program based on an initial quantum program. In some embodiments, the optimized quantum program may utilize fewer computing resources, such as qubits, than the initial quantum program. In some embodiments, the optimized quantum program may be compiled and executed in the quantum computing environment.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] CROSS-REFERENCE TO RELATED APPLICATIONS This application claims the benefit of U.S. Patent Application No. 17 / 974,991, filed October 27, 2022, U.S. Provisional Patent Application No. 63 / 378,325, filed October 4, 2022, and U.S. Provisional Patent Application No. 63 / 284,722, filed December 1, 2021, the entire contents of each of which are incorporated by reference herein for all purposes.

[0002] Embodiments of the present disclosure generally relate to qubit reuse in optimizing quantum programs for execution in a quantum computing environment. [Background technology]

[0003] A quantum program is implemented by performing a series of gates on a set of qubits. A quantum computing environment has a limited number of available qubits. For example, in quantum charge coupled device (QCCD) architectures, qubits are physical ions and / or other extremely small objects, and the number of qubits available in a quantum computing environment is limited by the number of ions and / or other extremely small objects that can be confined in the quantum computing environment's extremely small object confinement device. Summary of the Invention [Problem to be solved by the invention]

[0004] Physical limits on the number of available qubits in a given quantum computing environment constrain the ability of the quantum computing environment to execute some quantum computing programs. For example, conventionally, quantum computing environments are unable to implement quantum programs that require more qubits than the quantum computing environment has available. As described herein, applicants have identified problems with current implementations of quantum programs and with compiling quantum programs for execution and / or implementation by quantum computing environments. Through diligence, ingenuity, and innovation, applicants have solved many of these identified problems in various implementations and approaches embodied in this disclosure, which are described in detail below. [Means for solving the problem]

[0005] Generally, embodiments of the present disclosure provided herein provide improved quantum programs in a quantum computing environment (e.g., a QCCD quantum computing environment). Such improved quantum programs include optimized quantum programs that improve overall execution of the quantum program by reducing the amount of quantum computing resources required to execute the quantum program, e.g., by reducing the overall number of qubits required to execute the quantum program. Other implementations will be, or will become, apparent to those skilled in the art upon review of the following drawings and detailed description. All such additional implementations are intended to be included within this description, be within the scope of this disclosure, and be protected by the following claims.

[0006] According to one aspect of the present disclosure, a computer-implemented method for improved global resource utilization in a quantum computing environment is provided. The computer-implemented method may be executed via any of a variety of computing devices, such as those illustrated and described herein, embodied in hardware, software, firmware, and / or any combination thereof. According to at least one exemplary implementation of the computer-implemented method, the exemplary computer-implemented method includes receiving an initial quantum program. The exemplary computer-implemented method further includes identifying an initial set of qubits from the initial quantum program. The exemplary computer-implemented method further includes determining one or more causality cones associated with the initial quantum program based on the initial quantum program and the initial set of qubits. The exemplary computer-implemented method further includes generating an optimized quantum program based on the initial quantum program, the initial set of input qubits, and the one or more causality cones.

[0007] Additionally or alternatively, in some embodiments of the exemplary computer-implemented method, the optimized quantum program is associated with an optimized set of input qubits.

[0008] Additionally or alternatively, in some embodiments of the exemplary computer-implemented method, the optimized set of input qubits includes one or more fewer qubits than the initial set of input qubits.

[0009] Additionally or alternatively, in some embodiments of the exemplary computer-implemented method, the optimized quantum program includes at least one of a measure operation or a reset operation.

[0010] Additionally or alternatively, in some embodiments of the exemplary computer-implemented method, the optimized quantum program includes the same gating operations as the initial quantum program.

[0011] Additionally or alternatively, in some embodiments of the exemplary computer-implemented method, the computer-implemented method further includes running the optimized quantum program on a quantum computer.

[0012] Additionally or alternatively, in some embodiments of the exemplary computer-implemented method, executing the optimized quantum program comprises performing a measurement operation to measure an output state of at least one qubit; performing at least one reset operation to reset the at least one qubit; and performing at least one gate operation on the at least one qubit after performing the reset operation.

[0013] Additionally or alternatively, in some embodiments of the exemplary computer-implemented method, the computer-implemented method further includes determining a dual of the initial quantum program; determining one or more causality cones associated with the dual of the initial quantum program based on the dual of the initial quantum program; and generating an optimized dual quantum program based on the dual of the initial quantum program and the one or more causality cones associated with the dual of the initial quantum program.

[0014] Additionally or alternatively, in some embodiments of the exemplary computer-implemented method, the computer-implemented method further includes determining a first reduced number of qubits corresponding to the optimized quantum program, and determining a second reduced number of qubits corresponding to the optimized dual quantum program.

[0015] Additionally or alternatively, in some embodiments of the exemplary computer-implemented method, the computer-implemented method further includes compiling and / or causing execution of the optimized quantum program when the first reduced number of qubits is less than or equal to the second reduced number of qubits, and compiling and / or causing execution of a dual of the optimized dual quantum program when the second reduced number of qubits is less than the first reduced number of qubits.

[0016] According to another aspect of the present disclosure, an apparatus is provided, and in one example of the apparatus, the exemplary apparatus comprises at least one processor and at least one non-transitory memory having computer-coded instructions stored thereon. The computer-coded instructions, when executed by the at least one processor, configure the apparatus to perform any one of the exemplary computer-implemented methods described herein. In another example of the apparatus, the exemplary apparatus comprises means for performing each step of any one of the computer-implemented methods described herein.

[0017] According to yet another aspect of the present disclosure, a computer program product is provided, in one example of the computer program product, the example computer program product including at least one non-transitory computer-readable storage medium having stored thereon computer program code that, when executed on at least one processor, constitutes a computer program product for performing any one of the example computer-implemented methods described herein.

[0018] Having thus described various embodiments of the present disclosure in general terms, reference is now made to the accompanying drawings, which are not necessarily drawn to scale. [Brief explanation of the drawings]

[0019] [Figure 1]FIG. 1 is a conceptual diagram illustrating an exemplary quantum computing system including a quantum system controller, according to an exemplary embodiment. [Figure 2] FIG. 1 is a schematic diagram of an exemplary quantum system controller for a quantum computer. [Figure 3] FIG. 1 is a schematic diagram of an example computing entity of a quantum computer system that may be used in accordance with certain example embodiments. [Figure 4] FIG. 1 illustrates a first exemplary quantum program representing an exemplary set of qubits that can be processed in accordance with at least some exemplary embodiments of the present disclosure. [Figure 5] FIG. 10 illustrates a second exemplary quantum program representing an exemplary set of qubits that can be processed in accordance with at least some exemplary embodiments of the present disclosure. [Figure 6] FIG. 10 illustrates a third exemplary quantum program representing an exemplary set of qubits that can be processed in accordance with at least some exemplary embodiments of the present disclosure. [Figure 7] FIG. 10 shows a fourth example quantum program representing an example set of qubits that can be processed in accordance with at least some example embodiments of the present disclosure. [Figure 8] 1 is an example flowchart of an example process operation for quantum program optimization, in accordance with at least some example embodiments of the present disclosure. [Figure 9] 1 is an example flowchart of an example process operation for quantum program optimization, in accordance with at least some example embodiments of the present disclosure. [Figure 10A] FIG. 1 illustrates a simple exemplary quantum circuit. [Figure 10B] FIG. 10B illustrates a dual of the exemplary quantum circuit shown in FIG. 10A, according to an exemplary embodiment. [Figure 11] 1 is an example flowchart of an example process operation for quantum program optimization, in accordance with at least some example embodiments of the present disclosure. DETAILED DESCRIPTION OF THE INVENTION

[0020] Embodiments of the present disclosure will now be described more fully with reference to the accompanying drawings, in which some, but not all, embodiments of the present disclosure are shown. Indeed, embodiments of the present disclosure may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. The term "or" (also written " / ") is used herein in both the alternative and conjunctive sense, unless otherwise indicated. The terms "exemplary" and "exemplary" are used as examples without denoting a level of quality. The terms "generally," "substantially," and "approximately" refer to being within processing and / or manufacturing tolerances and / or within the user's measurement capabilities, unless otherwise indicated. Like reference numbers in the drawings refer to like elements throughout.

[0021] Those skilled in the art to which this disclosure pertains, having the benefit of the teachings presented in the foregoing description and the associated drawings, will come up with many modifications and other embodiments of the disclosure described herein. Accordingly, it should be understood that embodiments are not to be limited to the particular embodiments disclosed, and that modifications and other embodiments are intended to be included within the scope of the appended claims. Moreover, while the foregoing description and the associated drawings describe exemplary embodiments in the context of certain illustrative combinations of elements and / or functions, it should be understood that different combinations of elements and / or functions may be provided in alternative embodiments without departing from the scope of the appended claims. In this regard, combinations of elements and / or functions other than those expressly described above are also contemplated, for example, as may be recited in some of the appended claims.

[0022] definition Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.

[0023] The term "QCCD" refers to a quantum charge-coupled device architecture that allows for the storage and placement of quantum bits via several operations. The quantum bits in a QCCD are moved (e.g., via gating) to specific locations on the chip to perform quantum operations. An exemplary QCCD architecture uses very small objects confined in a very small object confinement device as quantum bits, such as ions trapped in an ion trap.

[0024] The term "quantum computing environment" refers to one or more computing devices configured to enable the performance of quantum operations involving one or more qubits. Non-limiting examples of computing environments include various QCCD ion trap quantum computers.

[0025] The term "quantum group" refers to one or more qubits for a gating operation at a particular time.

[0026] The term "qubit set" refers to one or more data objects that represent any number of qubits within a quantum computing environment.

[0027] The terms "quantum program" and "quantum circuit" refer to any number of gate operations to be performed utilizing one or more qubits in a quantum computing environment. A quantum program may include any number of gating operations performed on one or more qubits in a quantum computing environment. Each "gate," "logic gate," "gate operation," "gating operation," or "operation" of a quantum program involves a single qubit or a qubit group of two or more qubits.

[0028] The term "input qubit" refers to a qubit provided as an input to a quantum circuit, and the term "output qubit" refers to a qubit produced as an output by a quantum circuit. The input qubit and output qubit of a quantum circuit may be the same tiny physical object, but may be separated in time and possibly in different states, for example, due to the activity of gate operations performed during a quantum program.

[0029] The terms "causality cone" or "causality cone of an output qubit" refer to the set of input qubits in a quantum program that are causally connected to a particular output qubit. An input qubit is causally connected to an output qubit if there is a set of operations in the quantum program that makes the state of the output qubit dependent on the state of the input qubit. In addition to the set of input qubits, the term "causality cone" can also refer to the set of operations that connect those input qubits to a particular output qubit.

[0030] The term "causality cone of a quantum program" or "causality cone of a quantum circuit" refers to the causality cone or cones of all output qubits in a quantum program.

[0031] The term "initial quantum program" refers to a quantum program that is to be optimized, such as for qubit reuse.

[0032] The term "optimized quantum program" refers to a quantum program that is optimized for qubit reuse, etc.

[0033] The term "initial input qubit set" refers to the set of input qubits associated with an initial quantum program. The initial input qubit set may specify a number of infinitesimal objects as available for use as qubits.

[0034] The term "optimized input qubit set" refers to an input qubit set associated with an optimized quantum program. An optimized input qubit set may specify a number of extremely small objects as available for use as qubits.

[0035] Overview Quantum computers, such as QCCD ion trap quantum computers, manipulate qubits for use in various computing activities. In one such context, quantum computers utilize qubits as inputs to one or more logic gates that are configured to perform logical operations based on the states of the input qubits. For example, the configurations of logic gates can be combined in countless ways in a quantum program, if the quantum program is specifically configured to reach a desired result.

[0036] Execution of a quantum program (e.g., a quantum program that embodies quantum circuits for various logical gate operations to be performed) involves a multi-step process. For example, this process includes a scheduling step that selects a set of gates, which may include a preference for maximized parallelism. This process includes a second routing step that may move qubits for the selected gate operations to gate zones. These steps may be repeated any number of times until all circuit operations are executed by the quantum computer.

[0037] A quantum computer may be limited by the number of qubits available to execute a quantum program. For example, in a QCCD ion trap quantum computer or other quantum computer that uses confined, extremely small objects as qubits, the number of extremely small objects (e.g., ions, atoms, charged or neutral molecules, etc.) may be limited by the size and / or number of control elements / electrodes of the confinement device used to confine the extremely small objects. Regardless of how long and / or complex a quantum program may be, it is desirable to have the quantum computer execute in as error-free and fast a manner as possible given the available quantum computer resources, including the available number of qubits. The inventors have identified an optimization that minimizes the number of qubits used in a quantum program running on a quantum computer that is capable of measuring the output states of the qubits and resetting the qubits during the quantum program, such as midway through a calculation. In various embodiments, the optimization may be a heuristic method as well as an optimization formulation.

[0038] In various embodiments, a measurement of the state of a qubit, sometimes referred to herein as a measurement operation, may be performed when there are no more operations to be performed on the physical qubit. For example, a measurement operation may be performed to read and / or determine the state of a given qubit when all of the operations of the causality cone for the given qubit have been performed.

[0039] In various embodiments, resetting a qubit may be performed by causing the physical qubit to assume a particular qubit state, thereby reinitializing the qubit as an input to a quantum program, which may be referred to herein as a reset operation. For example, after a measurement operation has been performed on a given qubit and / or after all of the operations in the causality cone for a given qubit have been performed, the given qubit may be reset and then reused in implementing a quantum program.

[0040] In various embodiments, such optimization may be described as rewriting the initial quantum program into an optimized quantum program in which the order in which qubits are used and / or reused is optimized. For example, the initial quantum program may be rewritten by determining the order in which gate operations are performed so that the causality cone of a given qubit may be implemented or executed, so that measurement operations may be performed on a given qubit if required by the quantum program, and so that reset operations may be performed on a given qubit, e.g., so that an infinitesimal object embodying a given qubit may be reintroduced into the quantum program as a new qubit.

[0041] Embodiments of the present disclosure provide practical implementations for reducing the number of qubits required to execute a quantum program, and therefore providing several improvements related to lowering the computational requirements for executing a quantum program.

[0042] Additionally or alternatively, embodiments of the present disclosure provide myriad technical advantages in the field of quantum computing. For example, some embodiments of the present disclosure reduce the number of qubits required to execute a quantum program, thus enabling an optimized quantum program to be executed by a quantum computer that may have fewer qubits available than those required by the initial quantum program. Additionally or alternatively, some embodiments of the present disclosure may also enable a quantum computer to solve larger and / or more complex problems due to the aforementioned ability to execute a quantum program using fewer qubits.

[0043] Exemplary Systems and Apparatus FIG. 1 provides a schematic diagram of an exemplary quantum computing environment comprising a quantum computing system 100, a quantum processor comprising a micro-object confinement device 120 (e.g., an ion trap, etc.) in which a plurality of micro-objects (e.g., atoms, ions, etc.) are confined, according to an exemplary embodiment.

[0044] In various embodiments, quantum computing system 100 comprises computing entity 10 and quantum computer 110. In various embodiments, quantum computer 110 comprises a quantum system controller 30, which may be referred to as controller 30, and quantum processor 115. In various embodiments, quantum system controller 30 is configured, programmed, etc. to control quantum processor 115. In an exemplary embodiment, quantum processor 115 comprises a plurality of qubits (e.g., data qubits, which may be organized into logical qubits, ancillary qubits, etc.). In various embodiments, quantum computer 110 includes or communicates with a database (not shown) as described herein. For example, the database may be stored by one or more computing entities 10 in communication with controller 30 via one or more wired and / or wireless networks 20 and / or by memory local to controller 30.

[0045] In various embodiments, quantum processor 115 comprises means for controlling the evolution of the quantum states of qubits. For example, in an exemplary embodiment, quantum processor 115 comprises a cryostat and / or vacuum chamber 40 enclosing confinement device 120 (e.g., an ion trap), one or more manipulation sources 60, one or more voltage sources 50, and / or one or more optical collection systems 70. For example, cryostat and / or vacuum chamber 40 may be a temperature- and / or pressure-controlled chamber. In an exemplary embodiment, manipulation signals generated by manipulation sources 60 are provided to the interior of cryostat and / or vacuum chamber 40 (where microscopic object confinement device 120 is located) via corresponding optical paths 66 (e.g., 66A, 66B, 66C). In an exemplary embodiment, one or more manipulation sources 60 may comprise one or more lasers (e.g., optical lasers, microwave sources, etc.). In various embodiments, one or more manipulation sources 60 are configured to manipulate and / or cause the evolution of a controlled quantum state of one or more microscopic objects within the confinement device. In various embodiments, the ultrasmall objects within the ultrasmall confinement device (e.g., ions trapped in an ion trap) act as data qubits and / or ancillary qubits for the quantum processor 115 of the quantum computer 110. For example, in an exemplary embodiment, the one or more manipulation sources 60 comprise one or more lasers, which may provide one or more laser beams to the ultrasmall objects trapped in the confinement device 120 within the cryostat and / or vacuum chamber 40. For example, the manipulation source 60 may generate and / or provide laser beams configured to ionize the ultrasmall objects, initialize the ultrasmall objects within a defined two-state qubit space of the quantum processor, gate one or more qubits of the quantum processor, read the quantum state of one or more qubits of the quantum processor, etc.

[0046] In various embodiments, quantum computer 110 comprises a light collection system 70 configured to collect and / or detect photons generated by the qubits (e.g., during a readout procedure such as a measurement operation). Light collection system 70 may comprise one or more optical elements (e.g., lenses, mirrors, waveguides, fiber optic cables, etc.) and one or more photodetectors. In various embodiments, the photodetectors may be photodiodes, photomultiplier tubes, charge-coupled device (CCD) sensors, complementary metal-oxide semiconductor (CMOS) sensors, microelectromechanical systems (MEMS) sensors, and / or other photodetectors sensitive to light at the expected fluorescence wavelengths of the qubits of quantum computer 110. In various embodiments, the detectors may be in electronic communication with quantum system controller 30, such as via one or more A / D converters 225 (see FIG. 2 ).

[0047] In various embodiments, quantum computer 110 includes one or more voltage sources 50. For example, voltage source 50 may include multiple voltage drivers and / or voltage sources and / or at least one RF driver and / or voltage source. In an exemplary embodiment, voltage source 50 may be electrically coupled to a corresponding potential-generating element (e.g., an electrode) of containment device 120. Varying the potential may cause ions to move between multiple positions or states. In various embodiments, how the potential is varied may be defined by a waveform that specifies one or more voltages to be applied over a period of time. In various embodiments, one or more voltage sources 50 may be coupled to the electrodes via a circuit. In various embodiments, the circuitry coupling voltage source 50 to the electrodes may be located outside cryostat and / or vacuum chamber 40, inside cryostat and / or vacuum chamber 40, or both inside and outside cryostat and / or vacuum chamber 40. In various embodiments, the circuitry coupling the voltage source 50 to the electrodes may be comprised of circuit components capable of and / or configured to operate at the temperatures of their location, such as the temperatures within a cryostat and / or vacuum chamber, where the temperatures may be below 4 Kelvin.

[0048] In some embodiments, computing entity 10 embodies one or more computing devices embodied in hardware, software, firmware, and / or any combination thereof. Computing entity 10 may be embodied by a user device configured to provide various functions. In this regard, computing entity 10 may embody a conventional computing environment that interacts with quantum computer 110. Non-limiting examples of computing entity 10 include specially configured mobile devices, tablets, smartphones, personal computers, laptops, enterprise terminals, etc. In some embodiments, computing entity 10 is configured entirely by specially configured software applications installed on and / or otherwise executable via computing entity 10 to provide various functions for accessing and / or otherwise controlling quantum computer 110 as described herein. In various embodiments, computing entity 10 is a conventional and / or classical computer.

[0049] In some embodiments, computing entity 10 includes specially configured hardware, software, firmware, and / or a combination thereof that enables access to and / or configuration of quantum computer 110. In some embodiments, computing entity 10 provides access to functionality for generating and / or retrieving quantum programs for execution via controller 30 of quantum computer 110. In this regard, computing entity 10 may receive one or more user inputs for constructing and / or otherwise embodying a quantum program to be executed. For example, a user of computing entity 10 may interact with computing entity 10 to construct a quantum circuit, store the quantum circuit, and submit the quantum circuit for execution via controller 30 of quantum computer 110. In some embodiments, computing entity 10 is embodied by a user-facing device of quantum computer 110, e.g., so that communication can occur without requiring network 20.

[0050] Additionally or alternatively, in some embodiments, computing entity 10 allows user input and / or output to access quantum computer 110 to execute a quantum program. In some embodiments, computing entity 10 communicates with one or more computing devices of quantum computer 110, such as controller 30, which may generate and / or compile instructions for execution via quantum computer 110.

[0051] Additionally or alternatively, computing entity 10 is configured to allow a user to provide input to quantum computer 110 (e.g., via a user interface of computing entity 10) and receive, view, etc. output from quantum computer 110.

[0052] In an example embodiment, computing entity 10 may convert, organize, format, etc., information / data, quantum computing algorithms, quantum programs, etc. into a computing language, executable instructions, command set, etc. that quantum system controller 30 can understand and / or implement. In various embodiments, one or more devices (e.g., controller 30) of quantum computer 110 receive data from computing device entity 10 that embodies a quantum program, instructions to be performed to operate the quantum computer, etc. In various embodiments, computing entity 10 may optimize the quantum program to generate an optimized quantum program, such as those described herein.

[0053] Additionally or alternatively, in various embodiments, controller 30 may receive the quantum program from computing entity 10 and compile it to produce control system instructions embodying hardware operating instructions or machine code level commands configured, when executed, to cause execution of the quantum program on the quantum computer. In various embodiments, execution of the quantum program may include applying voltages to and / or controlling voltages to one or more electrodes. In various embodiments, controller 30 may optimize the quantum program to generate an optimized quantum program, such as those described herein.

[0054] In various embodiments, controller 30 is embodied by one or more computing devices external to, but capable of communicating with, quantum computer 110. For example, controller 30 may be embodied by a circuit compiler embodied in a dedicated computing system, embodied in hardware, software, firmware, and / or combinations thereof internal or external to quantum computer 110, dedicated hardware capable of communicating with quantum computer 110, software running on a computing system capable of communicating with quantum computer 110, etc.

[0055] In various embodiments, controller 30 may embody a conventional computing system that is specially configured, e.g., via one or more special software applications, to execute one or more processes that determine the positions of qubits at various time steps and / or instructions for repositioning qubits to such positions. For example, controller 30 may determine position assignments for each qubit at various time steps and / or instructions that embody gating and / or swap operations that cause the qubits to reach particular positions at each appropriate time step.

[0056] In various embodiments, quantum system controller 30 is configured to control voltage source 50, a cryostat system and / or vacuum system for controlling the temperature and pressure within cryostat and / or vacuum chamber 40, manipulation source 60, and / or other systems configured to control various environmental conditions (e.g., temperature, pressure, etc.) within cryostat and / or vacuum chamber 40 and / or manipulate and / or cause controlled evolution of the quantum states of one or more ultrasmall objects within the confinement device. For example, quantum system controller 30 may cause controlled evolution of the quantum states of one or more ultrasmall objects within the confinement device to execute a quantum program. For example, quantum system controller 30 may cause a readout procedure (e.g., a measurement operation) comprising coherent shelving to be performed, possibly as part of executing a quantum program. Additionally, quantum system controller 30 is configured to communicate and / or receive input data corresponding to readouts of the quantum states of qubits of quantum computer 110 from light collection system 70. In various embodiments, extremely small objects confined within a confinement device are used as qubits in quantum computer 110.

[0057] In various embodiments, quantum system controller 30 is further configured to control a cryostat system and / or vacuum system that controls the temperature and pressure within cryostat and / or vacuum chamber 40, a refrigeration system, and / or other systems that control environmental conditions (e.g., temperature, humidity, pressure, etc.) within cryostat and / or vacuum chamber 40.

[0058] 2 provides a schematic diagram of an exemplary quantum system controller 30, which may comprise various quantum system controller elements, including processing element 205, memory 210, driver controller element 215, communication interface 220, analog-to-digital (A / D) converter element 225, etc. In various embodiments, quantum system controller 30 is configured to receive input data, including input data generated by a light collection system via A / D converter 225. In various embodiments, processing element 205 is configured to operate as described herein.

[0059] In various embodiments, processing element 205 comprises a processing element, such as a programmable logic device (CPLD), a microprocessor, a co-processing entity, an application specific instruction set processor (ASIP), an integrated circuit, an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), a programmable logic array (PLA), a hardware accelerator, other processing element and / or circuit. The term circuit may refer to an entirely hardware embodiment or a combination of hardware and a computer program product. In one exemplary embodiment, processing element 205 of quantum system controller 30 comprises and / or is in communication with a clock.

[0060] In various embodiments, memory 210 comprises non-transitory memory, such as volatile and / or non-volatile memory storage, such as one or more of a hard disk, ROM, PROM, EPROM, EEPROM, flash memory, MMC, SD memory card, memory stick, CBRAM, PRAM, FeRAM, RRAM, SONOS, racetrack memory, RAM, DRAM, SRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, RDRAM, RIMM, DIMM, SIMM, VRAM, cache memory, registered memory, etc.

[0061] In various embodiments, memory 210 may store a queue of commands to be executed to cause a quantum program to be executed (e.g., an executable queue), qubit records corresponding to qubits of the quantum computer (e.g., in a qubit record data store, qubit record database, qubit record table, etc.), calibration tables, computer program code (e.g., one or more computer languages, a special quantum system controller language, etc.), etc. In an exemplary embodiment, execution (e.g., by processing element 205) of at least a portion of the computer program code stored in memory 210 causes quantum system controller 30 to perform one or more steps, operations, processes, procedures, etc. to generate one or more sets of commands configured to cause quantum processor 115 to implement at least a portion of a quantum circuit, update one or more qubit registers, etc. In an exemplary embodiment, execution of at least a portion of the computer program code stored in memory 210 causes quantum system controller 30 to cause one or more commands to be performed.

[0062] In various embodiments, driver quantum system controller element 215 includes one or more drivers and / or quantum system controller elements each configured to control one or more drivers. In various embodiments, driver quantum system controller element 215 may comprise a driver and / or a driver controller. For example, a driver controller may be configured to cause one or more corresponding drivers to operate according to executable instructions, commands, etc., generated, scheduled, and executed by quantum system controller 30. For example, processing element 205 may generate one or more commands to be performed by a first driver.

[0063] In various embodiments, driver controller element 215 enables quantum system controller 30 to operate voltage sources 50, manipulation sources 60, cooling systems, vacuum systems, etc. In various embodiments, a driver may be a driver (e.g., configured to operate and / or control one or more voltage sources 50) for controlling the current and / or voltage applied to electrodes used to maintain and / or control the trapping potential of confinement device 120 (and / or other driver for providing driver activity sequences to potential-generating elements of the confinement device), a laser driver (e.g., configured to operate and / or control one or more manipulation sources 60), a vacuum component driver, a cryostat and / or vacuum system component driver, a cooling system driver, etc.

[0064] In various embodiments, each of the driver controller elements 215 corresponds to an endpoint in the system (e.g., a component of the operation source 60, a component of the voltage source 50 (such as a high-frequency voltage source, an arbitrary waveform generator (AWG), a direct digital synthesizer (DDS), and / or other waveform generators), a component of the cooling and / or vacuum system, a component of the light collection system 70, etc.). Each endpoint in the quantum computer 110 represents an individual hardware control means. In various embodiments, each endpoint may have a unique set of accepted microcommands. Examples include, but are not limited to, the voltage source 50, such as a direct digital synthesizer (DDS), a component of the light collection system 70, such as a photomultiplier tube (PMT), a component of the operation source 60, such as a laser driver and / or optical modulator switch, and / or a general-purpose output (GPO). Individual commands for the DDS effect the setting of the power level, frequency, and phase of the control signal generated thereby. In various embodiments, commands for the PMT interface include start / stop photon counting and reset counting. Commands for a GPO endpoint include setting and / or clearing one or more output lines, which can be used to control external hardware in synchronization with the execution of the quantum circuit.

[0065] In various embodiments, quantum system controller 30 comprises means for communicating and / or receiving signals from one or more receiver components (e.g., of light collection system 70). For example, quantum system controller 30 may comprise one or more analog-to-digital (A / D) converter elements 225 configured to receive signals from one or more receiver components (e.g., photodetectors of light collection system 70), calibration sensors, etc. In various embodiments, A / D converter elements 225 are configured to write input data to memory 210 generated by converting received signals generated by one or more receiver components of light collection system 70.

[0066] In various embodiments, quantum system controller 30 may comprise a communications interface 220, for example, for interfacing and / or communicating with computing entity 10. For example, quantum system controller 30 may comprise a communications interface 220 for receiving executable instructions, command sets, etc. from computing entity 10, and for providing to computing entity 10 outputs received from quantum computer 110 (e.g., from light collection system 70) and / or results of processing the outputs. In various embodiments, computing entity 10 and quantum system controller 30 may communicate via a direct wired and / or wireless connection, and / or via one or more wired and / or wireless networks 20.

[0067] In various embodiments, quantum system controller 30 may be configured to optimize a quantum program by determining the order in which one or more qubits can be used or reused. For example, as described herein, controller 30 may receive or identify an initial quantum program. In various embodiments, the quantum program may be associated with or represented by an initial qubit set, which may be associated with one or more ultra-small objects. In various embodiments, the total number of qubits in the initial qubit set may equal the number of ultra-small objects that the quantum program may use as qubits. Additionally or alternatively, in some embodiments, controller 30 generates an optimized quantum program associated with the initial quantum program, and the optimized quantum program may be associated with the same initial qubit set or optimized qubit set, which may include fewer qubits than the initial qubit set or may have the optimized qubit set associated with fewer ultra-small objects than those to which the initial qubit set is associated.

[0068] 3 provides an exemplary schematic diagram depicting an exemplary computing entity 10 that may be used with embodiments of the present disclosure. In various embodiments, computing entity 10 is a classical (e.g., semiconductor-based) computer configured to enable a user to provide input to quantum computer 110 (e.g., via a user interface of computing entity 10) and receive, display, analyze, etc., output from quantum computer 110. In various embodiments, a user may use computing entity 10 to provide input to quantum computer 110, such as when a user may provide input that results in the creation and / or execution of a quantum program.

[0069] 3, computing entity 10 may include an antenna 312, a transmitter 304 (e.g., wireless), a receiver 306 (e.g., radio), and a processing element 308 that provides signals to transmitter 304 and receives signals from receiver 306. The signals provided to transmitter 304 and received from receiver 306 may include signaling information / data in accordance with an applicable wireless system air interface standard for communicating with various entities, such as quantum system controller 30, other computing entities 10, etc. Computing entity 10 may include a network interface 320, which may provide signals and receive signals in accordance with an applicable network system interface standard for communicating with various entities, such as quantum system controller 30, other computing entities 10, etc.

[0070] In this regard, computing entity 10 may be capable of operating with one or more air interface standards, communication protocols, modulation types, and access types. For example, computing entity 10 may be configured to receive and / or provide communications using a wired data transmission protocol, such as Fiber Distributed Data Interface (FDDI), Digital Subscriber Line (DSL), Ethernet, Asynchronous Transfer Mode (ATM), Frame Relay, Data over Cable Service Interface Specification (DOCSIS), or any other wired transmission protocol.Similarly, the computing entity 10 may be configured to support a variety of standards, including general packet radio service (GPRS), Universal Mobile Telecommunications System (UMTS), Code Division Multiple Access 2000 (CDMA2000), CDMA2000 1X (1xRTT), Wideband Code Division Multiple Access (WCDMA), Global System for Mobile Communications (GSM), Enhanced Data rates for GSM Evolution (EDGE), Time Division-Synchronous Code Division Multiple Access (TDSCDMA), Long Term Evolution (LTE), Evolved Universal Terrestrial Radio Access Network (E-UTRAN), Evolution-Data Optimized (EVDO), High Speed ​​Packet Access (HSPA), High Speed ​​Downlink Packet Access (HSDPA), IEEE 802.11 (Wi-Fi), Wi-Fi Direct, 802.16 (WiMAX), ultra wideband It may be configured to communicate over a wireless external communications network using any of a variety of protocols, such as Ultra Wideband (UWB), infrared (IR) protocol, near field communication (NFC) protocol, Wibree, Bluetooth protocol, wireless universal serial bus (USB) protocol, and / or any other wireless protocol.Computing entity 10 may use such protocols and standards to communicate using Border Gateway Protocol (BGP), Dynamic Host Configuration Protocol (DHCP), Domain Name System (DNS), File Transfer Protocol (FTP), Hypertext Transfer Protocol (HTTP), HTTP over TLS / SSL / Secure, Internet Message Access Protocol (IMAP), Network Time Protocol (NTP), Simple Mail Transfer Protocol (SMTP), Telnet, Transport Layer Security (TLS), Secure Sockets Layer (SSL), Internet Protocol (IP), Transmission Control Protocol (TCP), User Datagram Protocol (UDP), Data Congestion Control Protocol (DCCP), Stream Control Transmission Protocol (SCTP), Hypertext Markup Language (HTML), and the like.

[0071] Through such communication standards and protocols, computing entity 10 may communicate with various other entities using concepts such as Unstructured Supplementary Service Information / Data (USSD), Short Message Service (SMS), Multimedia Messaging Service (MMS), Dual-Tone Multi-Frequency Signaling (DTMF), and / or Subscriber Identity Module Dialer (SIM Dialer), etc. Computing entity 10 may also download modifications, add-ons, and updates to its firmware, software (including, e.g., executable instructions, applications, program modules), and operating system, for example.

[0072] Computing entity 10 may also include user interface devices comprising one or more user input / output interfaces (e.g., a display 316 and / or speakers / speaker drivers coupled to processing element 308, as well as a touchscreen, keyboard, mouse, and / or microphone coupled to processing element 308). For example, the user output interface may be configured to provide an application, browser, user interface, interface, dashboard, screen, webpage, page, and / or similar terms used interchangeably herein running on and / or accessible through computing entity 10 for causing a display or audible presentation of information / data and for interacting with the information / data via one or more user input interfaces. The user input interface may comprise any of a number of devices that enable computing entity 10 to receive data, such as a keypad 318 (hard or soft), a touch display, a voice / speech or motion interface, a scanner, reader, or other input device. In embodiments including a keypad 318, the keypad 318 may include (or cause the display of) conventional numeric (0-9) and related keys (#, *), and other keys used to operate computing entity 10, or may include a full set of alphanumeric keys or a set of keys that can be enabled to provide a full set of alphanumeric keys. In addition to providing input, the user input interface may be used to enable or disable certain features, such as, for example, a screen saver and / or sleep mode. Through such input, computing entity 10 may collect information / data, user interaction / input, etc.

[0073] Computing entity 10 may also include volatile storage or memory 322 and / or non-volatile storage or memory 324, which may be embedded and / or removable. For example, non-volatile memory may be ROM, PROM, EPROM, EEPROM, flash memory, MMC, SD memory card, memory stick, CBRAM, PRAM, FeRAM, RRAM, SONOS, racetrack memory, etc. Volatile memory may be RAM, DRAM, SRAM, FPM DRAM, EDO DRAM, SDRAM, DDR SDRAM, DDR2 SDRAM, DDR3 SDRAM, RDRAM, RIMM, DIMM, SIMM, VRAM, cache memory, registered memory, etc. Volatile and non-volatile storage or memory may store databases, database instances, database management system entities, data, applications, programs, program modules, scripts, source code, object code, byte code, compiled code, interpreted code, machine code, executable instructions, etc., to implement the functionality of computing entity 10.

[0074] Exemplary Data Visualization Having described exemplary system and device architectures according to the present disclosure, exemplary visualizations of data maintained and / or processed in accordance with the present disclosure are described below. It should be understood that the visualizations of data illustrated in each of the following figures may be embodied in any number of ways. For example, various embodiments may maintain the illustrated data as any number of data objects configured to enable storage and / or manipulation of such data objects to perform the various functions described herein.

[0075] In the following illustrations of quantum program visualizations (e.g., quantum circuit diagrams), each infinitesimal object to be used as a quantum bit is shown with its lifetime indicated vertically. In the illustrated embodiment of FIGS. 4 and 5, the illustrated quantum computing environment includes five infinitesimal objects to be used as quantum bits. In the illustrated embodiment of FIG. 6, the illustrated quantum computing environment includes four infinitesimal objects to be used as quantum bits. In the illustrated embodiment of FIG. 7, the illustrated quantum computing environment includes three infinitesimal objects to be used as quantum bits. In various embodiments, a single infinitesimal object (e.g., an ion) can be used as one or more quantum bits.

[0076] In the visualization shown, a situation where a first qubit is to be gated together with another second qubit of a qubit set, with the first qubit and second qubit connected by a horizontal line and a box or connector attached to a vertical line for each of the two qubits representing the gate to be performed.

[0077] It should be understood that in some embodiments, the qubit groups may need to be gated in the order shown (e.g., bottom to top) from their initial state to their output, which may correspond to an initial state at the bottom and an output state at the top. In other embodiments, the qubit groups may be gated in any order, so long as qubit groups that share at least one qubit are implemented in a manner that satisfies the order of execution defined in the quantum program (e.g., bottom to top as shown).

[0078] 4 shows an example visualization of a quantum program representing an example set of qubits that can be processed in accordance with at least some example embodiments of the present disclosure. As shown in FIG. 4, the visualization of quantum program 400 illustrates groups of qubits that are to be gated to perform logical operations. The visualization shows how qubits are provided as inputs to the quantum program (at the bottom of the visualization), how operations are performed on the qubits, and how the qubits are returned as outputs of the quantum program (at the top of the visualization).

[0079] In the illustrated visualization of quantum program 400, there are five extremely small objects to be used as qubits, illustrated with reference numbers 402, 404, 406, 408, and 410. For example, a first extremely small object tracked by a first qubit register is designated q0 (e.g., 402), a second extremely small object tracked by a second qubit register is designated q1 (e.g., 404), a third extremely small object tracked by a third qubit register is designated q2 (e.g., 406), a fourth extremely small object tracked by a fourth qubit register is designated q3 (e.g., 408), and a fifth extremely small object tracked by a fifth qubit register is designated q4 (e.g., 410). In Figure 4, the operations performed on the qubits are represented as occurring in order from the bottom of the illustration to the top. The qubits at the bottom of the diagram represent the qubits in their input states (e.g., as inputs for a quantum program), and the qubits at the top of the diagram represent the qubits in their output states (e.g., as outputs of a quantum program). For example, qubit q1 has two operations performed on it before it reaches its output state: a first operation 412 and a second operation 416.

[0080] 4, five qubits q0, q1, q2, q3, and q4 are an initial qubit set for executing quantum program 400. Quantum program 400 consists of four operations, indicated at reference numerals 412, 414, 416, and 418, which may be, for example, gate operations. Reference numeral 412 indicates an operation performed on qubit q0 (e.g., 402) and qubit q1 (e.g., 404). Similarly, reference numeral 414 indicates an operation performed on qubit q2 (e.g., 406) and qubit q3 (e.g., 408), reference numeral 416 indicates an operation performed on qubit q1 (e.g., 404) and qubit q2 (e.g., 406), and reference numeral 418 indicates an operation performed on qubit q3 (e.g., 408) and qubit q4 (e.g., 410). After all of the operations have been performed, quantum program 400 is complete and the five qubits q0, q1, q2, q3, and q4 are in their respective output states, which in various embodiments may be referred to as output qubits.

[0081] As shown, quantum operations are performed, for example, in quantum program 400, such that each output qubit is causally dependent on a set of input qubits to quantum program 400. In various embodiments in which quantum program 400 may be an initial quantum program, each output qubit may be an initial output qubit, and each initial output qubit may be associated with an initial input qubit set, such as by a causal dependency. In various embodiments, more than one of the initial output qubits may collectively be an initial output qubit set, and each initial output qubit in an initial output qubit set is each associated with a unique initial input qubit set.

[0082] 5 shows an exemplary visualization of quantum program 500, which, in various embodiments, may be a modification of quantum program 400 to illustrate an example of causal dependency between output qubit q1 (e.g., 404) and a subset of input qubits to quantum program 400 with an associated initial qubit set to output qubit q1. Quantum program 500 is the portion of quantum program 400 that results in qubit q1 obtaining an output state. For example, quantum program 500 shows the causality cone of qubit q1 for quantum program 400.

[0083] 5 of quantum program 500, there are five infinitesimal objects (e.g., 402, 404, 406, 408, and 410) to be used as qubits, and the initial qubit set consists of five qubits: qubit q (e.g., 402), qubit q (e.g., 404), qubit q (e.g., 406), qubit q (e.g., 408), and qubit q (e.g., 410). As shown in Figure 5, only four qubits are associated with operations 412, 414, and 416. For example, the causality cone of qubit q does not include any interactions with qubit q. In various embodiments, at a first time, operation 412 is performed on qubit q0 (e.g., 402) and qubit q1 (e.g., 404), and operation 414 is performed on qubit q2 (e.g., 406) and qubit q3 (e.g., 408).

[0084] In various embodiments, operation 412 can occur before or after operation 414. Following operations 412 and 414, operation 416 is performed on qubit q1 (e.g., 404) and qubit q2 (e.g., 406). After operations 412, 414, and 416 are performed, qubit q1 (e.g., 404) is in its output state. Thus, the output state of qubit q1 (e.g., 404) is causally dependent on operations 412, 414, and 416 performed on qubits q0, q1, q2, and q3. Because output qubit q1 causally depends only on input qubits q0, q1, q2, and q3, this means that only four qubits (i.e., q0, q1, q2, and q3) are required to produce the output state of qubit q1. Such dependencies, along with the associated operations, may be referred to as a causal cone.

[0085] 4, the causality cone of qubit q4 (e.g., 410) may be determined from the output state of qubit q4, given the initial qubit set and the operations of quantum program 400. For qubit q4 of quantum program 400, the causality cone includes qubit q2 (e.g., 406), qubit q3 (e.g., 408), and qubit q4 (e.g., 410), along with operations 414 and 418.

[0086] In various embodiments with five or more qubits, quantum program 400 and quantum program 500 may be executed on the available qubits. However, other embodiments may not have five or more qubits, or alternatively may not have five qubits available to execute quantum program 400 or quantum program 500. Thus, quantum program 400 or quantum program 500 may be optimized to utilize, among other things, fewer qubits. Utilization of fewer qubits may be possible when qubits of quantum computer 110 can be measured, reset, and / or reused, such as with measurement and reset operations. In various embodiments, this may occur by performing measurement, reset, and reuse of qubits within a quantum program.

[0087] 6 shows an exemplary visualization of quantum program 600, which may be an optimization of quantum program 400, illustrating one embodiment of the optimization. Quantum program 600 is an optimization of quantum program 400 that allows quantum program 400 to be executed on quantum computer 110 where four qubits are available to execute the quantum program.

[0088] 6 of quantum program 600, there are four extremely small objects (e.g., 602, 604, 606, and 608) to be used as qubits, and the initial qubit set consists of four qubits. For example, a first extremely small object tracked by a first qubit register is designated q0 (e.g., 602), a second extremely small object tracked by a second qubit register is designated q1 (e.g., 604) and is reinitialized and / or reset to q4 (e.g., 610), a third extremely small object tracked by a third qubit register is designated q2 (e.g., 606), and a fourth extremely small object tracked by a fourth qubit register is designated q3 (e.g., 608). Quantum program 600 includes the same four operations as quantum program 400 (i.e., operations 412, 414, 416, and 418). However, in quantum program 600, there is an operation 620 that measures the output state of qubit q1 and resets qubit q1 (e.g., 604) to qubit q4 (e.g., 610). Figure 6 uses vertical lines relating to the infinitesimal object to indicate that this is the same infinitesimal object.

[0089] 6, at a first time, operation 412 is performed for qubit q (e.g., 602) and qubit q (e.g., 604), and operation 414 is performed for qubit q (e.g., 606) and qubit q (e.g., 608). In other embodiments, operation 412 may occur before or after operation 414. Following operations 412 and 414, operation 416 is performed for qubits q (e.g., 604) and q (e.g., 606). After operations 412, 414, and 416 are performed, qubit q (e.g., 602), qubit q (e.g., 604), and qubit q (e.g., 606) are in their respective output states. However, quantum program 600 is not complete because operation 418 will be performed for qubit q (e.g., 608) and qubit q (not available before operation 620). To perform operation 418, qubit q1 (e.g., 604) is measured for its output state before being reset and reused as qubit q4 (e.g., 610) in operation 620. After operation 620, quantum program 600 proceeds to operation 418, which causes qubit q3 (e.g., 608) and qubit q4 (e.g., 610) to assume their respective output states, which may be measured. Thus, in this example, the output states of qubits q0, q1, q2, q3, and q4 may be measured, thus resulting in the same output states for each qubit measurement as quantum program 400.

[0090] It will be understood that the example quantum program 600 is one example of optimizing quantum program 400, and that in other embodiments, measuring, resetting, and reusing one or more qubits may occur at other points in quantum program 400. It will be further understood that the optimization may be of the entire quantum program or portions of the quantum program. For example, the entire quantum program may be decomposed into subroutines, program portions, etc., where measurements such as qubit output states may be made, and the quantum program may be optimized for each subroutine. Such optimization may be advantageous in cases where the quantum program may require qubit measurement results as input to another portion of the quantum program. Such input may include, but is not limited to, verifying that the program is running correctly, determining accumulated qubit phases, etc.

[0091] 7 shows an exemplary visualization of quantum program 700, which may be an optimization of quantum program 400 or an optimization of quantum program 600. Quantum program 700 illustrates one embodiment of an optimization of each of these quantum programs. Quantum program 700 is an optimization that allows quantum program 400 or quantum program 600 to be executed on quantum computer 110 having three extremely small objects for use as qubits to execute the quantum program.

[0092] As shown in FIG. 7 of quantum program 700, there are three extremely small objects (e.g., 702, 704, and 708) to be used as qubits, and the initial qubit set consists of three qubits. For example, a first extremely small object tracked by a first qubit register is designated q (e.g., 702) and is reinitialized and / or reset to q (e.g., 706), a second extremely small object tracked by a second qubit register is designated q (e.g., 704) and is reinitialized and / or reset to q (e.g., 710), and a third extremely small object tracked by a third qubit register is designated q (e.g., 608). Quantum program 700 includes the same four operations as quantum program 400 (i.e., operations 412, 414, 416, and 418). The same output states for each qubit measurement as quantum program 400 also result. However, in quantum program 700, there are two operations (e.g., operation 720 and operation 722) that reset qubits (e.g., qubit q (e.g., 702) to qubit q (e.g., 706), and qubit q (e.g., 704) to qubit q (e.g., 710)). Figure 7 uses vertical lines associated with each of the miniature objects to indicate that these are the same miniature object.

[0093] In various embodiments, as shown in FIG. 7, at a first time, operation 412 is performed on qubit q (e.g., 702) and qubit q (e.g., 704). After operation 412 is performed, qubit q (e.g., 702) is in its output state. In operation 722, qubit q (e.g., 702) is measured for its output state before being reset and reused as qubit q (e.g., 706). After operation 722, operation 414 is performed on qubit q (e.g., 706) and qubit q (e.g., 708). After operation 414, operation 416 is performed on qubit q (e.g., 706) and qubit q (e.g., 704). After operation 416 is performed, qubit q (e.g., 704) and qubit q (e.g., 706) are in their output states. 7, in operation 720, qubit q1 (e.g., 704) is measured for its output state before being reset and reused as qubit q4 (e.g., 710). After operation 720, operation 418 is performed on qubit q4 (e.g., 710) and qubit q3 (e.g., 708). After operation 418 is performed, qubit q4 (e.g., 710) and qubit q3 (e.g., 708) are in output states that can be measured.

[0094] Thus, in this example, the output states of qubits q0, q1, q2, q3, and q4 may be measured, thus resulting in the same output states for each qubit measurement as quantum program 400 and quantum program 600.

[0095] Exemplary Optimization Process Having described exemplary systems, apparatus, computing environments, and data visualizations of the present disclosure, an exemplary process according to the present disclosure will now be described. It will be understood that each of the flowcharts illustrates an exemplary computer-implemented process that may be executed by one or more of the apparatuses, systems, devices, and / or computer program products described herein, e.g., such a process utilizing one or more of their specially configured components.

[0096] The blocks illustrated in the flowcharts represent operations. Such operations may be performed in any of numerous ways, including, but not limited to, in the order and manner illustrated and described herein. In some embodiments, one or more blocks of any of the processes described herein may occur between one or more blocks of another process, before one or more blocks of another process, in parallel with one or more blocks of another process, and / or as a subprocess of a second process, such as being repeated to perform a block in one or more iterations. Additionally or alternatively, any of the processes may include some or all of the operational steps described and / or illustrated, including one or more optional blocks in some embodiments. With respect to the flowcharts shown herein, one or more of the illustrated blocks may be optional in some or all embodiments of the present disclosure. Similarly, it should be understood that one or more of the operations of each flowchart may be combined, substituted, and / or otherwise modified as described herein.

[0097] In various embodiments, a process for optimizing a quantum program includes receiving an initial quantum program, identifying an initial input qubit set and / or an initial output qubit set (e.g., by parsing and / or analyzing the initial quantum program), determining one or more causality cones associated with one or more output qubits of the initial output qubit set based on the associated initial input qubits of the initial input qubit set, optimizing the initial quantum program, generating an optimized quantum program based on the optimization of the initial quantum program, compiling the optimized quantum program, and / or executing the compiled, optimized quantum program. In various embodiments, as described herein, optimizing may use exact and / or heuristic methods to optimize the initial quantum program, which may be generated.

[0098] FIG. 8 shows operations of an exemplary process for optimizing a quantum program in accordance with at least some exemplary embodiments of the present disclosure. Specifically, FIG. 8 illustrates operations of exemplary process 800. In some embodiments, process 800 is embodied by computer program code stored on a non-transitory computer-readable storage medium of a computer program product configured for execution, such as on a non-transitory computer-readable storage medium of computing entity 10 or controller 30, to perform the process as shown and described. Alternatively or additionally, in some embodiments, process 800 is performed by one or more specially configured computing devices, such as computing entity 10, controller 30, or a computing entity of quantum computer 110 (not shown in FIG. 1), which may be alone or in communication with one or more other components, devices, systems, etc. In this regard, in some such embodiments, computing entity 10, controller 30, or computing entity of quantum computer 110 may be specially configured with computer-coded instructions (e.g., computer program instructions), for example, stored in associated memory and / or another component illustrated and / or described herein, and / or otherwise accessible to perform the operations illustrated and described. For ease of explanation, process 800 is described as being performed by and from the perspective of controller 30. For example, computing entity 10 may perform at least some of the steps and / or operations of process 800 and then provide the results to controller 30. For example, processing element 308 may execute computer program code and / or executable instructions (e.g., stored in memory 322, 324) to perform one or more steps and / or operations of process 800.

[0099] Process 800 begins at operation 802. In operation 802, an initial quantum program is received. In various embodiments, an initial quantum program may be received by controller 30 from computing entity 10, such as a quantum program provided by a user of computing entity 10, which may have been entered by the user on computing entity 10 or specified by the user of computing entity 10. In various embodiments, the user of computing entity 10 may specify a quantum program (not shown in FIG. 1 ) stored in one or more databases, which will be provided to and received by controller 30. Such databases may include a quantum program database, which may store multiple quantum programs. The initial quantum program may represent various gate operations, measurement operations, and reset operations to be performed on one or more of the qubits. It should be understood that the initial quantum program may be ordered such that certain gate operations are performed according to a particular desired order.

[0100] In operation 804, one or more causality cones of the initial quantum program are determined. In various embodiments, a determination of how each input qubit and gate operation can result in each initial output qubit that can be measured is based on the initial input qubit, the gate operation, and the measurement operation. For example, a respective causality cone for each initial output qubit is determined. In various embodiments, to determine the causality cones, the quantum circuit may be converted into a directed acyclic graph (DAG), where each node in the graph is an input qubit, an output qubit, or a quantum operation (e.g., a gate, a measurement, or a reset). Using the DAG, the gates and input qubits in the causality cone of an output qubit may be determined by finding the ancestor node of the output qubit node in the DAG. In various embodiments, this determination is based on the order in which the operations are applied to the qubits. For example, for each output qubit, the operations may be ordered from the last operation (e.g., measurement) sequentially backward through the quantum program until the beginning of the program is reached. In various embodiments, converting the quantum circuit into a DAG may be performed by a quantum circuit compiler. In various embodiments, the computation of ancestor nodes may be performed using algorithmic operations, such as using techniques from graph theory.

[0101] In various embodiments, a qubit may be measured but later reused, and the measured qubit may be referred to as a measurement qubit. In various embodiments, the measurement qubit may be the output of some, but not all, of the quantum program. Based on the structure of the causality cone, a causality cone determination may be mapped to each measurement qubit of the quantum program. In various embodiments, the causality cone structure (e.g., multiple causality cones each corresponding to a respective initial output qubit) is determined by analyzing and / or processing the quantum program by processing elements 205 and / or 308.

[0102] In operation 806, the initial quantum program is optimized for measurement ordering to promote maximum qubit reuse. In various embodiments, the measurement qubit may be determined to be available for reuse based on the causality cone structure determined for the causality cone associated with the measurement qubit. In various embodiments, qubit reuse may be performed by reinitializing an infinitesimal object to a qubit in a known basis state, which may represent another qubit in the initial input qubit set. The optimized quantum program may include one or more commands corresponding to instructions for performing a measurement operation on the measurement qubit, reinitializing the measurement qubit to a basis state of a qubit in the initial input qubit set, and reordering gating operations (or other operations) to reduce the number of qubits in the initial input qubit set. In various examples, the optimization may be performed using exact and / or heuristic methods.

[0103] The initial quantum program may be optimized at least in part by what is referred to herein as an exact method, in which a causality cone or more than one causality cone is used in optimizing some or all of the quantum program. In various embodiments, the exact method may be implemented based on optimizing the quantum program by minimizing the total number of qubits used and / or required in the optimized quantum program (e.g., by appropriately reusing infinitesimal objects embodying qubits). In one exemplary embodiment, the exact method may be implemented based on optimizing the quantum program by minimizing the number of qubits used and / or required at any point in the optimized quantum program. In various embodiments, the exact method may include the execution of one or more models, such as a constraint programming model and / or a binary linear integer programming model. In various embodiments, these models may be used with one or more solvers that implement a combination of techniques for solving the models, including, but not limited to, domain simplification, constraint decomposition, lazy clause generation, large neighborhood search, backtracking, branching, and / or cutting planes.

[0104] In various embodiments, the exact method may include a binary integer programming model, where the model inputs to be optimized take on values ​​of 0 or 1 (i.e., binary integers). In some examples, the binary integer programming model may be a constraint programming model, where the optimization may be via constraints on binary variables. The amount of model input as well as the constraints on the model inputs may be varied so that the solution found optimizes an objective (e.g., qubit reuse). In various embodiments, the optimization may determine the order in which qubits should be measured in a manner that minimizes qubits used while adhering to specified constraints, such as that each qubit in the initial input qubit set is only measured a certain number of times (e.g., once), keeping track of qubits required for the execution of the quantum program, etc. In various embodiments, the constraints may include Boolean and / or inequality constraints.

[0105] The initial quantum program may be optimized based at least in part on what is referred to herein as a heuristic method. In various embodiments, the heuristic method includes a greedy method or a modified greedy method, where one or more causality cones are used to determine where output states can be measured and qubits can be reset, and the measurement or reset can be performed based on a rule set. In some embodiments, the rule set may include rules for optimizing using one or more algorithms, such as optimizing over a first qubit chosen using a greedy method. In various embodiments, the greedy method may be an algorithmic strategy that makes optimal choices in a few steps regardless of the overall outcome. Additionally or alternatively, the rule set may include rules for selecting the order in which qubits are added to the qubit reset queue based at least in part on the respective causality cones. For example, the heuristic method may choose a reset order based on one or more rules that implicitly minimize the total number of qubits in the optimized quantum program.

[0106] In various embodiments, a greedy method may optimize a quantum program by measuring the first output qubit whose causality cone is smallest. The order in which subsequent measurements and resets of other output qubits are applied may then be determined by selecting, at each step, the output qubit to be measured and reset that adds the fewest new qubits not present in the causality cone of the previously reset output qubit.

[0107] In various embodiments, the heuristic model may include a modified greedy method, where the first output qubit is not necessarily the one with the smallest causality cone, but rather, if there are N qubits, N different orders of output qubits are determined, in each of which a different output qubit is chosen to be the first to be measured and reset, and the order of the N different orders that requires the fewest qubits to execute on a quantum computer is determined.

[0108] Both exact and heuristic methods may optimize a quantum program or a portion of a quantum program, which may include determining the order and / or timing in which one or more qubits are measured, reset, and reused. In various embodiments, exact methods may produce optimal answers but may require a potentially large computational overhead, which may require a prohibitive amount of resources and / or time in various embodiments. In various embodiments, heuristic methods may produce potentially suboptimal answers with a much smaller computational overhead. In various embodiments, all or a portion of a quantum program may be optimized using one or both of exact and heuristic methods.

[0109] Optimization using exact and / or heuristic methods may optimize either the entire quantum program or portions of the quantum program. In various embodiments, only exact or heuristic methods may be used. In various embodiments, both exact and heuristic methods may be used, and the methods may be performed in parallel, sequentially, or iteratively, which may depend on whether the entire initial quantum program is optimized with a particular method, or whether multiple portions of the initial quantum program are optimized with a particular method.

[0110] In operation 806, the optimization is to promote maximum qubit reuse, although in various embodiments, the optimization may be for less than maximum qubit reuse. Execution of a quantum program should consider many factors, including, but not limited to, memory usage, noise generation, and heating. The optimization may be for less than maximum qubit reuse, such that the optimization meets requirements or goals related to factors other than qubit reuse.

[0111] In operation 808, an optimized quantum program is generated. In various embodiments, the initial quantum program may be rewritten as an optimized quantum program, such as by rewriting the quantum program using measurements and resets during the program to reduce the extremely small objects required for the optimized set of input qubits. In other embodiments, an optimized quantum program may be generated based on the initial quantum program without rewriting the initial quantum program, such as by writing a new quantum program comprising the optimized quantum program. The optimized quantum program may be stored in a database, such as a quantum program database.

[0112] In operation 810, the optimized quantum program is compiled. In various embodiments, controller 30 may compile the optimized quantum program into a set of qubit manipulation instructions to be executed by quantum computer 110. For example, such commands may cause qubits to be physically relocated within the quantum computing environment, gate operations to be invoked based on qubits, measurements of qubits to occur, and / or reinitialization of qubits to known basis states.

[0113] At operation 812, the optimized quantum program is executed. In various embodiments, execution of the set of qubit manipulation instructions of the compiled, optimized quantum program results in execution of the optimized quantum program with a reduced number of input qubits, which may be fewer than the initial input qubit set. Various embodiments may include execution by controller 30 using quantum computer 110, including performing gate operations, qubit measurements, and qubit resets, which may later be reused in executing the optimized quantum program.

[0114] In an exemplary embodiment, such that the initial quantum program 400 associated with FIG. 4 can be optimized into the optimized quantum program 600 of FIG. 6, the operation of quantum program 400 is modified to include additional operations shown in the visualization of FIG. 6. In this example, the optimization includes instructions to measure the output state of qubit q1 and reset qubit q1 to become qubit q4. A user of computing entity 10 may input the initial quantum program into computing entity 10 and send it to quantum computer 110. Controller 30 of quantum computer 10 receives the initial quantum program. Controller 30 identifies an initial set of qubits, q0, q1, q2, q3, and q4, associated with the initial quantum program, such as quantum program 400 of FIG. 4. The decision may be for one or more causality cones, such as an initial output qubit (e.g., q1) associated with an initial set of input qubits (e.g., q0, q1, q2, and q3). Based on the associated initial input qubit set for each qubit in the initial quantum program and the initial output qubit set, a causality cone for each output qubit is determined. In an exemplary embodiment, based on the causality cone, the initial quantum program 400 may be optimized to yield an optimized quantum program 600, which may be based, among other things, on the available number of infinitesimal objects that can serve as qubits to execute the initial quantum program. As described above, this optimized quantum program 600 may include measuring and resetting qubits. The optimized quantum program 600 may then be compiled into executable instructions that can be executed on the quantum computer 110.

[0115] In the previous examples, the optimized input qubit set of the optimized quantum program included a subset of the initial input qubit set (e.g., the optimized input qubit set of quantum program 600 does not include qubit q4 as an input qubit in the optimized input qubit set because qubit q1 is reset as qubit q4 in operation 620).

[0116] In various embodiments, the initial quantum program may not be capable of being expressed as an optimized quantum program with fewer qubits. In such embodiments, optimization using exact and / or heuristic methods, etc., may determine an optimized quantum program with the same number of initial input qubits as the initial quantum program. In various embodiments, the optimized quantum program may not include any reset operations.

[0117] Figure 9 shows operations of an example process for optimizing an initial quantum program in accordance with at least some example embodiments of the present disclosure using a greedy method, such as that shown in step 806 of Figure 8. While Figure 9 illustrates specific operations of one embodiment of a greedy method that may be performed during process 800, it is understood that additional operations or iterations of the operations shown in Figure 9 may be performed.

[0118] 9, the computing entity 10 and / or the controller 30 initialize a reset order list. In various embodiments, the reset order list may store a measurement order, which may be an order of measurement operations and reset operations.

[0119] In operation 904, the computing entity 10 and / or the controller 30 determines an output qubit (e.g., an initial output qubit) that is not in the reset order list, and the output qubit is associated with a causality cone that contains the fewest new input qubits (e.g., the input qubit is not in the causality cone of any other output qubit already in the reset order list).

[0120] At operation 906, computing entity 10 and / or controller 30 adds the determined output qubit to the reset order list. In various embodiments, after the output qubit is added to the reset order list, operation 904 may be performed again to determine another output qubit that is not in the reset order list. Such iterations may continue until all of the output qubits (e.g., all of the output qubits in the initial output qubit set) have been added to the reset order list.

[0121] In operation 908, a reset order list is returned. In various embodiments, the reset order list includes an optimized order of operations to promote maximum qubit reuse. In various embodiments, the reset order list may be used to generate an optimized quantum program.

[0122] In an exemplary embodiment, computing entity 10 and / or controller 30 use an exact or heuristic method to determine one or more qubits to reset, and then use another method (e.g., a heuristic or exact method) to determine the order in which the remaining qubits should be reset. For example, in an exemplary embodiment, a heuristic method may be used to reduce the solution space to be explored by an exact method to complete the optimization of the quantum program.

[0123] The determined reset order list is returned, and an optimized quantum program is generated based on the determined reset order list, at operation 908. The determined reset order list and / or the optimized quantum program may then be passed to a compiler to compile the optimized quantum program for execution by quantum computer 110.

[0124] In various embodiments, the optimized quantum program is determined based on the dual of the quantum circuit. For example, FIG. 10A shows an exemplary quantum circuit 1020 comprising three state preparation operations 1002 (e.g., 1002A, 1002B, 1002C), three measurement operations 1006 (e.g., 1006A, 1006B, 1006C), and three two-qubit gates 1004 (e.g., 1004A, 1004B, 1004C). FIG. 10B shows the dual 1022 of the quantum circuit 1020. In general, the dual of a quantum circuit is generated by replacing the measurement operations of the quantum circuit with state preparation operations, replacing the state preparation operations of the quantum circuit with measurement operations, and reversing the flow of time for the quantum circuit. For example, the dual 1022 of the quantum circuit 1020 comprises the three state preparation operations 1002, three measurement operations 1006, and three two-qubit gates 1004. However, the three two-qubit gates 1004 of the dual 1022 of quantum circuit 1020 are in the opposite order compared to quantum circuit 1020. In particular, the dual 1022 of quantum circuit 1020 requires the same number of qubits as quantum circuit 1020.

[0125] Thus, for a quantum circuit C, a quantum circuit dual C* may be determined. The quantum circuit dual C* may be optimized to reduce the number of qubits required and / or used by the quantum circuit dual C* using the same process (e.g., as shown in FIG. 8 and / or FIG. 9) described above to determine and / or generate an optimized quantum circuit dual R(C*). In general, the dual R(C*)* of the optimized quantum circuit is functionally equivalent to the optimized quantum circuit R(C), which is generated and / or determined to be functionally equivalent to the quantum circuit C.

[0126] For the quantum circuit C, the dual C* of the quantum circuit uses the same number of qubits. For example, for a quantum circuit C using an initial number of qubits N, the dual C* of the quantum circuit also uses the initial number of qubits N. The optimized and / or qubit-reduced version R(C) of the quantum circuit requires and / or uses a first reduced number M1 < N of qubits. The dual C* of the quantum circuit can also be optimized to use a reduced number of qubits using the same process as described above (e.g., as shown in FIGS. 8 and / or 9). The optimized and / or qubit-reduced version R(C*) of the dual of the quantum circuit requires and / or uses a second reduced number M2 < N of qubits. In various scenarios, M1 < M2, M1 = M2, or M1 > M2. Thus, in some scenarios, it is advantageous to implement the quantum circuit by implementing the dual of the optimized dual of the quantum circuit, R(C*)*.

[0127] FIG. 11 provides a flowchart illustrating various processes, procedures, operations, etc., for determining and implementing an optimized quantum program. Specifically, FIG. 11 illustrates operations of an exemplary process 1100. In some embodiments, process 1100 is embodied by computer program code stored on a non-transitory computer-readable storage medium of a computer program product configured for execution to perform the process as shown and described, e.g., a non-transitory computer-readable storage medium of computing entity 10 or controller 30. Alternatively or additionally, in some embodiments, process 1100 is performed by one or more specially configured computing devices, such as computing entity 10, controller 30, or a computing entity of quantum computer 110 (not shown in FIG. 1), which may be alone or in communication with one or more other components, devices, systems, etc. In this regard, in some such embodiments, computing entity 10, controller 30, or computing entity of quantum computer 110 may be specially configured with stored computer-coded instructions (e.g., computer program instructions), for example, in associated memory and / or in another component illustrated and / or described herein, and / or otherwise accessible to perform operations as illustrated and described. For ease of explanation, process 1100 is described in terms of controller 30 as being performed by controller 30. For example, computing entity 10 may perform at least some of the steps and / or operations of process 1100 and then provide the results to controller 30. For example, processing element 308 may execute computer program code and / or executable instructions (e.g., stored in memory 322, 324) to perform one or more steps and / or operations of process 1100.

[0128] Process 1100 begins at operation 1102. At operation 1102, an initial quantum program is received. In various embodiments, an initial quantum program may be received by controller 30 from computing entity 10, such as a quantum program provided by a user of computing entity 10, which may be entered by the user on computing entity 10 or specified by the user of computing entity 10. In various embodiments, the user of computing entity 10 may specify a quantum program stored in one or more databases (not shown in FIG. 1 ) to be provided to and received by controller 30. Such a database may include a quantum program database, which may store multiple quantum programs. The initial quantum program may represent various gate operations, measurement operations, and reset operations to be performed on one or more of the qubits. It should be understood that the initial quantum program may be ordered such that certain gate operations occur according to a particular desired order.

[0129] In operation 1104, a dual of the initial quantum program is determined and / or generated. For example, the dual of the initial quantum program may be determined and / or generated by replacing measurement operations of the initial quantum program with state preparation operations, replacing state preparation operations of the initial quantum program with measurement operations, and reversing the time order of the initial quantum program.

[0130] In operation 1106A, one or more causality cones of the initial quantum program are determined. In various embodiments, the determination of how each input qubit and gate operation can result in each of the initial output qubits that can be measured is based on the initial input qubits, the gate operations, and the measurement operations. For example, a respective causality cone for each of the initial output qubits is determined based on the initial quantum program. In various embodiments, to determine the causality cones, the quantum circuit may be converted into a directed acyclic graph (DAG), where each node in the graph is an input qubit, an output qubit, or a quantum operation (e.g., a gate, a measurement, or a reset). Using the DAG, the gates and input qubits in the causality cone of an output qubit may be determined by finding the ancestor node of the output qubit node in the DAG. In various embodiments, this determination is based on the order in which the operations are applied to the qubits based on the initial quantum circuit. For example, for each output qubit, the operations may be ordered sequentially backward through the quantum program, starting with the last operation (e.g., measurement), until the beginning of the program is reached. In various embodiments, converting the quantum circuit into a DAG may be performed by a quantum circuit compiler. In various embodiments, the computation of ancestor nodes may be performed using algorithmic operations, such as using techniques from graph theory.

[0131] In various embodiments, a qubit may be measured but later reused, and the measured qubit may be referred to as a measurement qubit. In various embodiments, the measurement qubit may be the output of some, but not all, of the quantum program. Based on the structure of the causality cone, a causality cone determination may be mapped to each measurement qubit of the quantum program. In various embodiments, the causality cone structure (e.g., multiple causality cones each corresponding to a respective initial output qubit) is determined by analyzing and / or processing the quantum program by processing elements 205 and / or 308.

[0132] In operation 1106B, one or more causality cones of the dual of the initial quantum program are determined. In various embodiments, the determination of how each input qubit and gate operation can result in each of the initial output qubits that can be measured is based on the dual representation of the initial input qubits, gate operations, and measurement operations. For example, a respective causality cone for each of the initial output qubits is determined based on the dual of the initial quantum program. In various embodiments, to determine the causality cones, the quantum circuit may be converted into a directed cyclic graph (DAG), where each node in the graph is an input qubit, an output qubit, or a quantum operation (e.g., a gate, measurement, or reset). Using the DAG, the gates and input qubits in the causality cone of an output qubit may be determined by finding the ancestor nodes of the output qubit node in the DAG. In various embodiments, this determination is based on the order in which the operations are applied to the qubits in the dual of the initial quantum program. For example, for each output qubit, operations may be ordered from the last operation (e.g., measurement) sequentially backward through the dual of the initial quantum program until the beginning of the quantum program's dual is reached. In various embodiments, converting the dual of the initial quantum circuit into a DAG may be performed by a quantum circuit compiler. In various embodiments, the computation of ancestor nodes may be performed using algorithmic operations, such as using techniques from graph theory.

[0133] In various embodiments, a qubit may be measured but later reused, and the measured qubit may be referred to as a measurement qubit. In various embodiments, the measurement qubit may be the output of some, but not all, of the quantum program. Based on the structure of the causality cone, a causality cone determination may be mapped for each measurement qubit of the quantum program's dual. In various embodiments, the causality cone structure (e.g., multiple causality cones each corresponding to a respective initial output qubit) is determined by analyzing and / or processing the quantum program's dual by processing elements 205 and / or 308.

[0134] In operation 1108A, the initial quantum program is optimized for measurement ordering to promote maximum qubit reuse. In various embodiments, measurement qubits may be determined as available for reuse based on a causality cone structure determined for the causality cone associated with the measurement qubit of the initial quantum program. In various embodiments, qubit reuse may be performed by reinitializing an infinitesimal object to a qubit in a known basis state, which may represent another qubit in the initial input qubit set. The optimized quantum program may include one or more commands corresponding to instructions for performing a measurement operation on the measurement qubit, reinitializing the measurement qubit to a basis state of a qubit in the initial input qubit set (e.g., performing a state preparation operation on the measurement qubit after the measurement is performed), and reordering gating operations (or other operations) to reduce the number of qubits in the initial input qubit set. In various examples, the optimization may be performed using exact and / or heuristic methods.

[0135] The initial quantum program may be optimized at least in part by what is referred to herein as an exact method, in which a causality cone or more than one causality cone is used in optimizing some or all of the quantum program. In various embodiments, the exact method may be implemented based on optimizing the quantum program by minimizing the total number of qubits used and / or required in the optimized quantum program (e.g., by appropriately reusing infinitesimal objects embodying qubits). In one exemplary embodiment, the exact method may be implemented based on optimizing the quantum program by minimizing the number of qubits used and / or required at any point in the optimized quantum program. In various embodiments, the exact method may include the execution of one or more models, such as a constraint programming model and / or a binary linear integer programming model. In various embodiments, these models may be used with one or more solvers that implement a combination of techniques for solving the models, including, but not limited to, domain simplification, constraint decomposition, lazy clause generation, large neighborhood search, backtracking, branching, and / or cutting planes.

[0136] In various embodiments, the exact method may include a binary integer programming model, where the model inputs to be optimized take on values ​​of 0 or 1 (i.e., binary integers). In some examples, the binary integer programming model may be a constraint programming model, where the optimization may be via constraints on binary variables. The amount of model input as well as the constraints on the model inputs may be varied so that the solution found optimizes an objective (e.g., qubit reuse). In various embodiments, the optimization may determine the order in which qubits should be measured in a manner that minimizes qubits used while adhering to specified constraints, such as that each qubit in the initial input qubit set is measured only a certain number of times (e.g., once), keeping track of qubits required for the execution of the quantum program, etc. In various embodiments, the constraints may include Boolean and / or inequality constraints.

[0137] The initial quantum program may be optimized based at least in part on what is referred to herein as a heuristic method. In various embodiments, the heuristic method includes a greedy method or a modified greedy method, where one or more causality cones are used to determine where output states can be measured and qubits can be reset, and the measurement or reset can be performed based on a rule set. In some embodiments, the rule set may include rules for optimizing using one or more algorithms, such as optimizing over a first qubit chosen using a greedy method. In various embodiments, the greedy method may be an algorithmic strategy that makes optimal choices in a few steps regardless of the overall outcome. Additionally or alternatively, the rule set may include rules for selecting the order in which qubits are added to the qubit reset queue based at least in part on the respective causality cones. For example, the heuristic method may choose a reset order based on one or more rules that implicitly minimize the total number of qubits in the optimized quantum program.

[0138] In various embodiments, a greedy method may optimize a quantum program by measuring the first output qubit whose causality cone is smallest. The order in which subsequent measurements and resets of other output qubits are applied may then be determined by selecting, at each step, the output qubit to be measured and reset that adds the fewest new qubits not present in the causality cone of the previously reset output qubit.

[0139] In various embodiments, the heuristic model may include a modified greedy method, where the first output qubit is not necessarily the one with the smallest causality cone, but rather, if there are N qubits, N different orders of output qubits are determined, in each of which a different output qubit is chosen to be the first to be measured and reset, and the order of the N different orders that requires the fewest qubits to execute on a quantum computer is determined.

[0140] Both exact and heuristic methods may optimize a quantum program or a portion of a quantum program, which may include determining the order and / or timing in which one or more qubits are measured, reset, and reused. In various embodiments, exact methods may produce optimal answers but may require a potentially large computational overhead, which may require a prohibitive amount of resources and / or time in various embodiments. In various embodiments, heuristic methods may produce potentially suboptimal answers with a much smaller computational overhead. In various embodiments, all or a portion of a quantum program may be optimized using one or both of exact and heuristic methods.

[0141] Optimization using exact and / or heuristic methods may optimize either the entire quantum program or portions of the quantum program. In various embodiments, only exact or heuristic methods may be used. In various embodiments, both exact and heuristic methods may be used, and the methods may be performed in parallel, sequentially, or iteratively, which may depend on whether the entire initial quantum program is optimized with a particular method, or whether multiple portions of the initial quantum program are optimized with a particular method.

[0142] In operation 1108A, the optimization is to promote maximum qubit reuse, although in various embodiments, the optimization may be for less than maximum qubit reuse. The execution of a quantum program should consider many factors, including, but not limited to, memory usage, noise generation, and heating. The optimization may be for less than maximum qubit reuse, such that the optimization meets requirements or goals related to factors other than qubit reuse.

[0143] In operation 1108B, the dual of the initial quantum program is optimized for measurement ordering to promote maximum qubit reuse. In various embodiments, the measurement qubit may be determined to be available for reuse based on a causality cone structure determined for the causality cone associated with the measurement qubit of the dual of the initial quantum program. The optimized dual quantum program may include one or more commands corresponding to instructions for performing a measurement operation on the measurement qubit, reinitializing the measurement qubit to the basis state of a qubit in the initial input qubit set (e.g., performing a state preparation operation on the measurement qubit after the measurement is performed), and reordering gating operations (or other operations) to reduce the number of qubits in the initial input qubit set. In various examples, the optimization may be performed using exact and / or heuristic methods. For example, an optimized dual quantum program may be generated from the dual of the quantum program using the same or similar techniques used to generate the optimized quantum program from the initial quantum program.

[0144] In operation 1108B, the optimization is to promote maximum qubit reuse, although in various embodiments, the optimization may be for less than maximum qubit reuse. Execution of a quantum program should consider many factors, including, but not limited to, memory usage, noise generation, and heating. The optimization may be for less than maximum qubit reuse, such that the optimization meets requirements or goals related to factors other than qubit reuse.

[0145] In operation 1110A, an optimized quantum program is generated. In various embodiments, an initial quantum program can be rewritten as an optimized quantum program, such as by using measurements and resets in the program to rewrite the quantum program and reduce the minimal objects required for the optimized input qubit set. In other embodiments, the optimized quantum program can be generated based on the initial quantum program without rewriting the initial quantum program, such as by writing a new quantum program that includes the optimized quantum program. The optimized quantum program can be stored in a database such as a quantum program database. In various embodiments, the optimized quantum program requires and / or uses a first reduced number M1 < N of qubits, where N is the number of qubits required and / or used by the initial quantum program and the dual of the initial quantum program.

[0146] In operation 1110B, the dual of an optimized dual quantum program is generated. In various embodiments, an initial quantum program can be rewritten as the dual of an optimized dual quantum program, such as by using measurements and resets in the program to rewrite the quantum program and reduce the minimal objects required for the optimized input qubit set. In other embodiments, the dual of the optimized dual quantum program can be generated based on the initial quantum program without rewriting the initial quantum program, such as by writing a new quantum program that includes the dual of the optimized dual quantum program. The dual of the optimized dual quantum program can be stored in a database such as a quantum program database. In various embodiments, the dual of the optimized dual quantum program requires and / or uses a second reduced number M2 < N of qubits, where N is the number of qubits required and / or used by the initial quantum program and the dual of the initial quantum program.

[0147] In various embodiments, operations 1106A, 1108A, and 1110A are performed in parallel or in series with operations 1106B, 1108B, and 1110B.

[0148] In operation 1112, the optimized quantum program or one of the duals of the optimized dual quantum program is selected. For example, a first reduced number of qubits M1 and a second reduced number of qubits M2 are compared to determine which is smaller. In an exemplary embodiment, the optimized quantum program is selected when the first reduced number of qubits M1 is smaller than the second reduced number of qubits M2. In an exemplary embodiment, the dual of the optimized dual quantum program is selected when the second reduced number of qubits M2 is smaller than the first reduced number of qubits M1.

[0149] In an exemplary embodiment, only a selected one of the optimized quantum program or the dual of the optimized dual quantum program is stored in the quantum program database. In an exemplary embodiment, only one set of operations 1106A, 1108A, and 1110A or operations 1106B, 1108B, and 1110B is performed, and operation 1112 is skipped.

[0150] At operation 1114, the selected quantum program is compiled. In various embodiments, controller 30 may compile the selected quantum program into a set of qubit manipulation instructions to be executed by quantum computer 110. For example, such commands may cause qubits to be physically relocated within the quantum computing environment, gate operations to be invoked based on the qubits, measurements of the qubits to occur, and / or reinitialization of the qubits to a known basis state. For example, a selected one of the optimized quantum program or the dual of the optimized dual quantum program is compiled to generate and / or provide a compiled quantum program.

[0151] At operation 1116, the compiled quantum program is executed. In various embodiments, execution of the set of qubit manipulation instructions of the compiled quantum program results in execution of a selected one of an optimized quantum program or the dual of an optimized dual quantum program with a reduced number of input qubits, which may be fewer than the initial input qubit set (e.g., a first reduced number M of qubits when the compiled quantum program is a compiled optimized quantum program, or a second reduced number M of qubits when the compiled program is a compiled dual of an optimized dual quantum program). Various embodiments may include execution by controller 30 using quantum computer 110, including performing gate operations, qubit measurements, and qubit resets, which may later be reused in the execution of the compiled quantum program.

[0152] conclusion Although exemplary systems are described above, implementations or embodiments of the subject matter and operations described herein may be implemented in other types of digital electronic circuitry, computer software or programs, firmware, or hardware, or in combinations of one or more of them, including the structures disclosed herein and their structural equivalents.

[0153] Embodiments of the subject matter described herein may be implemented as one or more computer programs, i.e., one or more modules of computer program instructions, encoded on a computer storage medium for execution by or to control the operation of an information / data processing apparatus. Alternatively or additionally, the program instructions may be encoded on an artificially generated propagated signal, e.g., a machine-generated electrical, optical, or electromagnetic signal, which is generated to encode information / data for transmission to an appropriate receiver for execution by the information / data processing apparatus. The computer storage medium may be or be included in a computer-readable storage device, a computer-readable storage substrate, a random or serial access memory array or device, or one or more combinations thereof. Moreover, while the computer storage medium is not a propagated signal, the computer storage medium may be a source or destination for computer program instructions encoded on an artificially generated propagated signal. The computer storage medium may also be or be included in one or more separate physical components or media (e.g., multiple CDs, disks, or other storage devices).

[0154] The operations described herein may be implemented as operations performed by an information / data processing apparatus on information / data stored in one or more computer-readable storage devices or received from other sources.

[0155] The term "data processing apparatus" as used above encompasses all kinds of apparatuses, devices, and machines for processing data, including, by way of example, a programmable processor, a computer, a system on a chip, or a plurality or combination thereof. An apparatus may include special-purpose logic circuitry, such as an FPGA (field-programmable gate array) or an ASIC (application-specific integrated circuit). In addition to hardware, an apparatus may also include code that creates an execution environment for a subject computer program, such as code that creates processor firmware, a protocol stack, a repository management system, an operating system, a cross-platform runtime environment, a virtual machine, or one or more combinations thereof. The apparatus and execution environment may implement a variety of different computing model infrastructures, such as web services, distributed computing, and grid computing infrastructures.

[0156] Computer software or computer programs (also known as programs, software, software applications, scripts, or code) may be written in any form of programming language, including compiled or interpreted, declarative or procedural, and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment. A computer program may, but need not, correspond to a file in a file system. A computer program may be stored in a portion of a file that holds other programs or information / data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files storing one or more modules, subprograms, or portions of code). A computer program may be deployed to run on one computer or on multiple computers located at one site or distributed across multiple sites and interconnected by a communications network.

[0157] The processes and logic flows described herein may be implemented by one or more programmable processors executing one or more computer programs to perform activities by operating on input information / data and generating output. Processors suitable for executing computer programs include, by way of example, both general-purpose and special-purpose microprocessors, and any one or more processors of any type of digital computer. Generally, a processor receives instructions and information / data from a read-only memory or a random-access memory, or both. The essential elements of a computer are a processor for performing activities in accordance with the instructions and one or more memory devices for storing instructions and data. Generally, a computer also includes one or more mass storage devices, e.g., magnetic disks, magneto-optical disks, or optical disks, for storing data, or is operably coupled to receive information / data from or transfer information / data to them, or both. However, a computer need not have such devices. Suitable devices for storing computer program instructions and information / data include all forms of non-volatile memory, media, and memory devices, including, by way of example, semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices, magnetic disks, such as internal hard disks or removable disks, magneto-optical disks, and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0158] To achieve interaction with a user, embodiments of the subject matter described herein may be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information / data to the user, as well as a keyboard and pointing device, e.g., a mouse or trackball, by which the user can provide input to the computer. Other types of devices may also be used to achieve interaction with a user. For example, feedback provided to the user may be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback, and input from the user may be received in any form, including acoustic input, speech input, or tactile input. Additionally, a computer may interact with a user by sending documents to and receiving documents from a device used by the user, e.g., by sending a web page to a web browser on the user's client device in response to a request received from the web browser.

[0159] Embodiments of the subject matter described herein may be implemented in a computing system that includes back-end components, e.g., as information / data servers, or includes middleware components, e.g., application servers, or includes front-end components, e.g., client computers having graphical user interfaces or web browsers through which users can interact with implementations of the subject matter described herein, or includes any combination of one or more such back-end, middleware, or front-end components. The components of the system may be interconnected by any form or medium of digital information / data communication, e.g., a communications network. Examples of communications networks include local area networks (“LANs”) and wide area networks (“WANs”), internetworks (e.g., the Internet), and peer-to-peer networks (e.g., ad hoc peer-to-peer networks).

[0160] A computing system may include clients and servers. Clients and servers are generally remote from each other and typically interact through a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. In some embodiments, a server sends information / data (e.g., HTML pages) to client devices (e.g., for the purpose of displaying the information / data and receiving user input from a user interacting with the client device). Information / data generated at the client device (e.g., results of user interaction) may be received at the server from the client device.

[0161] While this specification contains details of many specific implementations, these should not be considered limitations on the scope of the disclosure or what may be claimed, but rather as descriptions of features unique to particular embodiments of a particular disclosure. Some features described herein in the context of separate embodiments may also be implemented in combination in a single embodiment. Conversely, various features described in the context of a single embodiment may also be implemented in multiple embodiments separately or in any suitable subcombination. Moreover, while multiple features may be described above as functioning in a certain combination, and may even be initially claimed as such, one or more features from a claimed combination may in some cases be deleted from the combination, and the claimed combination may be directed to a subcombination or variations of the subcombination.

[0162] Similarly, although operations are illustrated in the figures in a particular order, this should not be understood as requiring such operations to be performed in the particular order or sequential order shown, or that all of the shown operations be performed, to achieve desirable results. In some situations, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that the described program components and systems may generally be integrated together into a single software product or packaged into multiple software products.

[0163] Thus, specific embodiments of the subject matter have been described. Other embodiments are within the scope of the following claims. In some cases, the activities recited in the claims may be performed in a different order and still achieve desirable results. In addition, the processes depicted in the accompanying figures do not necessarily require the particular order shown or sequential order to achieve desirable results. In some implementations, multitasking and parallel processing may be advantageous. [Explanation of symbols]

[0164] 10 Computing Entities 20 Wireless Network 30 Controllers 40 Cryostat and / or vacuum chamber 50 Voltage Source 60 Operation source 66 Light Path 70 Optical Collection System 100 Quantum Computing Systems 110 Quantum Computer 115 Quantum Processor 120 Extremely Small Object Confinement Device 205 Processing Elements 210 memory 215 Driver Controller Elements 220 Communication Interface 225 A / D converter 304 Transmitter 306 Receiver 308 Processing Elements 312 Antenna 316 Display 318 keypad 320 network interface 322 Volatile Memory 324 Non-volatile memory 400 Quantum Program 600 Quantum Program 602 Minimal object 604 Minimal object 606 Minimal object 608 Minimal object 610 qubits 700 Quantum Program 702 Minimal object 704 Minimal object 706 qubits 708 Minimal object 710 qubits 1002 State preparation operation 1004 2-qubit gate 1006 Measurement operation 1020 Quantum circuit

Claims

1. 1. An apparatus comprising at least one processor and at least one memory having computer-coded instructions stored thereon, the instructions, when executed by the at least one processor, causing the apparatus to: receiving an initial quantum program; identifying an initial set of output qubits from the initial quantum program; determining, for each initial output qubit included in the initial output qubit set, one or more causality cones associated with the initial quantum program based on the initial quantum program and the initial output qubit set; generating an optimized quantum program based on the initial quantum program, the initial output qubit set, and the one or more causality cones, wherein the order in which qubits are measured or the order in which qubits are added to a reset queue is optimized to minimize a total number of qubits used or required; A device that performs the following.

2. An apparatus comprising at least one processor and at least one memory having stored thereon computer-coded instructions, the instructions, when executed by the at least one processor, causing the apparatus to: receiving an initial quantum program; identifying an initial set of output qubits from the initial quantum program; determining one or more causality cones associated with the initial quantum program based on the initial quantum program and the initial set of output qubits; generating an optimized quantum program based on the initial quantum program, the initial set of output qubits, and the one or more causality cones; determining a dual of the initial quantum program; determining, based on the dual of the initial quantum program, one or more causality cones associated with the dual of the initial quantum program; generating an optimized dual quantum program based on the dual of the initial quantum program and the one or more causality cones associated with the dual of the initial quantum program; A device that performs the following.

3. The device, determining a first reduced number of qubits corresponding to the optimized quantum program; and determining a second, reduced number of qubits corresponding to the optimized dual quantum program; and compiling and executing the optimized quantum program when the first reduced number of qubits is less than or equal to the second reduced number of qubits; compiling and executing the dual of the optimized dual quantum program when the second reduced number of qubits is less than the first reduced number of qubits; The apparatus of claim 2 , further configured to:

Citation Information

Patent Citations

  • Holographic quantum dynamics simulation

    JP2021093154A

  • Systems and methods for enhanced eigenvalue inversion using quantum conditional logic

    US20220382827A1