Quantum enhanced optimization
A hybrid classical-quantum optimization approach, which converts optimization problems into quantum-readable models and integrates quantum and classical solutions, addresses the inefficiencies of single-paradigm methods, achieving faster and more accurate results.
Patent Information
- Application Number
- JP2024211523
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-05
- Filing Date
- 2024-12-04
- Publication Date
- 2025-06-17
AI Technical Summary
Existing optimization techniques, both classical and quantum, face challenges in efficiently solving complex optimization problems, particularly in converting traditional optimization problems into formats usable by quantum computing, and in determining the most effective approach between traditional and quantum methods.
A hybrid approach is introduced that combines classical and quantum optimization techniques. This involves converting optimization problems into quantum-readable models, performing quantum optimization procedures, and then passing the quantum solutions to classical optimization procedures to enhance solution accuracy and speed.
The hybrid approach enables faster and more accurate solution of optimization problems compared to using either classical or quantum methods alone, by leveraging the strengths of both paradigms.
Smart Images

Figure 2025090550000001_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to quantum-enhanced optimization.
Background Art
[0002] Quantum computing is a type of computing that uses the principles of quantum mechanics to perform certain types of calculations far more efficiently than classical computers. Quantum mechanics is a branch of physics that deals with the behavior of extremely small particles at the quantum level, such as electrons and photons. Unlike classical computers that use bits (0 or 1) as the basic unit of information, quantum computers use quantum bits or qubits.
Summary of the Invention
Means for Solving the Problems
[0003] Embodiments of this disclosure are comprised of at least one hardware processor and a computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to access an optimization problem, convert the optimization problem into a quantum-readable optimization model that takes one or more qubits as input, perform a quantum optimization procedure on the quantum-readable optimization model to generate a quantum solution to the optimization problem, and pass the quantum solution and the optimization problem to a classical optimization procedure that finds a classical solution to the optimization problem based at least in part on the quantum solution, by providing a system that performs operations including.
Brief Description of the Drawings
[0004] The present disclosure is shown by way of example and not limitation in the figures of the accompanying drawings in which like reference numerals indicate similar elements.
[0005]
Figure 1
Figure 2
Figure 3
Figure 4
[0006] In the following description, exemplary systems, methods, techniques, instruction sequences, and computing machine program products will be discussed. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide an understanding of various exemplary embodiments of the subject matter. It will be apparent to one skilled in the art, however, that the various exemplary embodiments of the subject matter may be practiced without these specific details.
[0007] Using quantum computing techniques, various problems can be optimized. One example of such a problem could be that an organization may attempt to minimize the number of trucks required to deliver packages, and thus the optimization problem is to find a feasible allocation of packages or goods to trucks on the premise that the packages or goods must be delivered on time.
[0008] Some of these optimizations are very difficult to solve and thus can take an extremely long time even for fast classical computers. Quantum computing can provide a mechanism to accelerate the solution process.
[0009] However, technical challenges are encountered when converting traditional optimization problems into a format that can be used by quantum computing. This aspect, along with the fact that certain problems continue to be solved faster (or certain problems are simply solved more accurately) using traditional computing methods, often leaves the developer or administrator with the responsibility of choosing whether to utilize traditional computing optimization techniques or quantum computing optimization techniques to solve a particular problem.
[0010] In an exemplary embodiment, rather than using traditional computing optimization techniques or quantum computing optimization techniques alone, both types of techniques are used together to solve the same problem. As a result, the problem can be solved more quickly and accurately than using either technique alone.
[0011] More specifically, a method is introduced for including quantum computing within a classical solution process without adversely affecting the classical solution process.
[0012] Optimization problem for solving a given business problem: Optimize{f(x):x∈X} It is to be assumed that there is. In this notation, f is the objective function that needs to be optimized, i.e., minimized or maximized. The feasible set is X, and x ∈ X is a feasible action, such as the allocation of a pilot to an airplane. This optimization problem can be automatically generated in some exemplary embodiments by converting relevant data from an enterprise resource planning (ERP) system and supplying such data and other sources to a model.
[0013] To simplify the discussion, the optimization problem discussed in this specification is a minimization problem. Therefore, in this disclosure, without loss of generality, the minimization will be described. However, this is not limiting, and the techniques described here can also be applied to optimization problems other than minimization.
[0014] A very general optimization problem is a mixed-integer linear program, which is defined as follows.
[0015]
Number
[0016]
Number
[0017] Optimization problem: minimize{f(x):x∈X} Given, first a preprocessing step is performed on it to minimize{g(x):x∈X *} such as a more simplified problem and x * ∈argmin{g(x):x∈X *}⇒τ(x * )∈argmin{f(x):x∈X} such that a mapping τ:X * →X is obtained.
[0018] The preprocessing step simplifies the problem, and from the result of the preprocessed problem, the original solution can be (efficiently) constructed.
[0019] Generally speaking, preprocessing of an optimization problem involves some kind of simplification of the optimization problem. This can include, for example, removing variables that are not relevant to a given problem or not used in the optimization problem, adding constraints that reduce the level of complexity of the optimization problem, and so on.
[0020] Next, the optimization procedure is applied to the preprocessed problem. At this point, it may not be possible to find a solution to the problem to be solved, that is, x ∈ X * it may not be possible to find.
[0021] Even if x ∈ X * is found during the preprocessing step, it is not necessarily good with respect to the objective function g.
[0022] At this point, the optimization procedure is parallelized for both classical and quantum optimization procedures. Furthermore, the output of the classical optimization procedure can be fed into the quantum optimization procedure and vice versa.
[0023] To apply the quantum optimization procedure to the problem, the model is converted into the required format. Similar to the case of preprocessing, the new model Minimize{h(x): x ∈ X q} and x q ∈ argmin{h(x): x ∈ X q} ⇒ τ q (x q ) ∈ argmin{g(x): x ∈ X *} such that the mapping τ q : X q → X *exists.
[0024] The most prominent example of a format that can be used by a quantum optimization procedure is called binary optimization without quadratic constraints (QUBO). In a QUBO problem, there is a set of binary variables that can take on values of 0 or 1. The goal is to find an assignment of these binary variables that minimizes (or maximizes) a quadratic objective function. The objective function is quadratic because it is composed of terms involving pairs of variables, and these terms can represent the cost or energy associated with the state of the variables.
[0025] Mathematically, the QUBO problem can be represented as minimize (or maximize) F(x) = Σ(i = 1 to N)Σ(j = i + 1 to N)Q_ij * x_i * x_j where x_i and x_j are binary variables and Q_ij represents the coefficients that define the problem. These coefficients can be positive or negative and can represent the interaction between variables i and j. The goal is to find an assignment of the binary variables that minimizes (or maximizes) this quadratic objective function.
[0026] Returning to the quantum optimization procedure, this procedure can function using one or more quantum optimization techniques. In quantum computing, information is processed using quantum bits or qubits. These qubits can exist in a state that is a superposition of 0, 1, or both. The number of qubits required is determined by the complexity of the problem.
[0027] The quantum optimization process starts from an initial state, and often, due to the superposition of potential solutions, the quantum computer can explore multiple options simultaneously. The quantum state evolves over time according to a Hamiltonian operator that encodes the objective function.
[0028] The quantum optimization process starts from an initial state, and often, due to the superposition of potential solutions, the quantum computer can explore multiple options simultaneously. The quantum state evolves over time according to a Hamiltonian operator that encodes the objective function.
[0029] Measurements are made at specific intervals, and for each qubit, the quantum state collapses to a classical result (0 or 1). These results guide the algorithm in making decisions about how to proceed. Based on the measurement results, the quantum state and the Hamiltonian operator are adjusted over multiple iterations and gradually converge towards an optimal or near-optimal solution. In some exemplary embodiments, a single iteration can be used.
[0030] The final measurement result yields a solution to the optimization problem.
[0031] For the found solution x of the quantum optimization procedure q the system checks whether q x * ∈ X
[0032] x q ∈ X * If x
[0033]
Number
[0034] is set, which is the set of all quantum solutions found so far (in this regard, at this point
[0035]
Number
[0036] since the quantum optimization has only been run once).
[0037] When the quantum optimization procedure is executed, the classical optimization procedure is also executed. The purpose is to include the solution from the quantum optimization procedure within the solution process (i.e., to enhance the classical optimization procedure using the quantum optimization procedure).
[0038] The classical optimization procedure
[0039]
Number
[0040] It is necessary to check whether has changed. If it has changed, a new solution is added to the optimization process. This can be regarded as a heuristic. A heuristic is an algorithm that is good at finding solutions to your problem without guaranteeing the quality of the solutions.
[0041] One assumption made here is that the classical optimization procedure supports callbacks. Such callbacks can be used to include heuristics within the solution process. In the current case, the heuristic
[0042]
Number
[0043] checks whether has changed, and if it has changed, the heuristic extracts those changes and reports them as newly found solutions.
[0044] During the solution process of the classical optimization procedure, the classical optimization procedure may find a feasible solution x ∈ X * . Whenever such an x is found, the set
[0045]
Number
[0046] is
[0047]
Number
[0048] updated by
[0049]
Number
[0050] is
[0051]
Number
[0052] (initialized with). Again, this can be done with the help of a callback.
[0053]
Number
[0054] The solutions within can be improved by a quantum optimization procedure. Appropriate
[0055]
Number
[0056] For, the optimization model Minimize{h z (x):x∈X 2} and the mapping τ z :X z →X * are constructed such that x Z ∈argmin{h(x):x∈X}⇒τ Z (x Z )∈argmin{g(x):x∈X *}.
[0057] For the found solution x of the quantum optimization procedure Z for x Z ∈X * it is checked whether. x Z ∈X * If so,
[0058]
Number
[0059] is
[0060]
Number
[0061] is updated by.
[0062] In an exemplary embodiment, the classical optimization procedure determines the execution time. When the execution time ends, the entire procedure ends.
[0063] FIG. 1 is a block diagram showing a system 100 according to an exemplary embodiment. The ERP system 102 includes data such as data related to the organization. This data may be transferred to the cloud service 104. The cloud service 104 can include a modeling component 106 that formulates a problem as a model using this data. Next, this model can be preprocessed by the preprocessing unit 108 to create a preprocessed model that is a simplified version of the model created by the modeling component. Next, the model quantum optimization format converter 110 converts the preprocessed model into a quantum optimizer-readable model. Next, the quantum optimizer-readable model is sent to another quantum service 112.
[0064] In parallel with the formation of a quantum optimizer-readable model and its delivery to the quantum service 112, the model classical optimization format converter 114 converts the preprocessed model into a classical optimizer-readable model. Then, the classical optimizer 116 can find a solution to the problem by acting on the classical optimizer-readable model, and in parallel, the quantum service 112 can find a solution to the problem by acting on the quantum optimizer-readable model. Then, the quantum service 112 sends the solution it found to the post-processing unit 118 on the cloud service 104. The post-processing unit 118 combines the quantum optimizer-readable model with the solution from the quantum service to create a post-processed solution. Then, this post-processed solution is supplied as input to the classical optimizer 116, and the classical optimizer 116 uses it (either prior to first finding a solution of the classical optimizer 116 or in subsequent iterations) to help find a solution using classical optimization techniques. The optimal solution determiner 120 determines whether the solution from the classical optimizer 116 is "optimal". If not, a loop is created where the output of the classical optimizer 116 is sent to the quantum service 112 and the output of the quantum service 112 is sent to the classical optimizer. The solution from the classical optimizer 116 can be converted by the re-optimization modeler 122 into a re-optimization model readable by the quantum service 112. In each iteration of this loop, the optimal solution determiner 120 determines whether an "optimal" solution to the problem has been found by this combination of the classical optimizer 116 and the quantum service 112.
[0065] The meaning of "optimal" may vary based on the requirements of the designer or administrator, and thus it should be noted that the term "optimal" in this context is not to be construed as being limited to the absolute "best" solution. For example, while one administrator may actually be seeking the absolute "best" solution, another administrator may simply be seeking the best solution within 5% of some desired endpoint that can be found, or the best solution that can be found after a fixed number of iterations. In other words, "optimal" does not necessarily mean "best", but rather "good enough based on some criteria set up by the person in charge of the system".
[0066] Example 2 is a flowchart showing method 200 according to an exemplary embodiment. In operation 202, the original optimization problem is accessed. This optimization problem may be related to data within, for example, an ERP system. In operation 204, the original optimization problem is preprocessed to create a preprocessed optimization problem.
[0067] Two separate branches from operation 204 represent two separate paths that are both traversed. In some exemplary embodiments, these two separate paths are traversed in parallel. In the first path, a quantum optimization procedure is traversed. Thus, in operation 206, the preprocessed optimization problem is converted into a format readable by a quantum optimizer. In operation 208, the quantum optimizer performs a quantum optimization procedure on the converted preprocessed optimization problem to generate a quantum solution. In operation 210, this quantum solution is added to a set of quantum solutions for the original optimization problem. This set represents the quantum solutions found in each iteration of the quantum optimization procedure. Thus, the set is empty at the first execution of operations 208 and 210, then after the first execution of operations 208 and 210, there is one solution in the set, and with each subsequent execution of operations 208 and 210, another solution is added to the set.
[0068] In parallel, in a second path, in operation 212, a classical optimization procedure is performed to generate a classical solution. This may include using the set of quantum solutions generated by the first pass if available. In operation 214, this classical solution is added to the set of classical solutions for the original optimization problem. This set represents the classical solutions found in each iteration of the classical optimization procedure. Thus, the set is empty at the first execution of operations 212 and 214, then has one solution after the first execution of operations 212 and 214, and another solution is added to the set with each subsequent execution of operations 212 and 214. The output of the classical optimization procedure in each iteration is used to determine whether additional iterations of both the classical and quantum optimization procedures are required. Thus, in operation 216, it is determined whether the set of classical solutions is "optimal". As described above, whether it is "optimal" is determined based on one or more preset criteria. If it is optimal, method 200 ends. If it is not optimal, in operation 218, the set of classical solutions and the preprocessed optimization problem are converted into a re-optimization model readable by the quantum optimizer. This re-optimization model is then used for another execution of operations 208 and 210. Thus, method 200 continues to loop until it is determined in operation 216 that the set of classical solutions is "optimal".
[0069] In view of the above-described implementations of the subject matter, the present application discloses the following list of examples. One single feature of an example, or two or more features of the examples selected in combination, and optionally, two or more features of the examples selected in combination with one or more features of one or more additional examples are further examples that are also included in the present disclosure of the present application.
[0070] Example 1 is a system comprising at least one hardware processor and a computer-readable medium storing instructions, the instructions causing the at least one hardware processor, when executed by the at least one hardware processor, to access an optimization problem, convert the optimization problem into a quantum-readable optimization model, cause a quantum optimization procedure to be performed on the quantum-readable optimization model to generate a quantum solution to the optimization problem, and pass the quantum solution and the optimization problem to a classical optimization procedure, the classical optimization procedure performing an operation including finding a classical solution to the optimization problem, at least in part based on the quantum solution.
[0071] In Example 2, the subject matter of Example 1 is further included, where the operation further includes determining whether the classical solution is considered an optimal solution based on a set of criteria, and in response to a determination that the classical solution is not considered an optimal solution, converting the classical solution and the optimization problem into a quantum-readable re-optimization model, causing a quantum optimization procedure to be performed on the quantum-readable re-optimization model, and passing the quantum solution and the optimization problem to a classical optimization procedure, the classical optimization procedure performing an operation including finding a classical solution to the optimization problem, at least in part based on the quantum solution.
[0072] In Example 3, the subject matter of Example 2 is further included, where the operation further includes repeating the determination and the operations performed in response to a determination that the classical solution is not considered an optimal solution until it is determined that the classical solution is considered an optimal solution.
[0073] In Example 4, the subject matter of Examples 1-3 is further included, where the quantum optimization procedure is performed by a different quantum service than the service performing the above operations.
[0074] In Example 5, the subject matter of Examples 1-4 is further included, where the optimization problem is created using data extracted from an enterprise resource planning (ERP) system.
[0075] In Example 6, the subject matter of Examples 1-5 is further included, where the optimization problem is a minimization problem.
[0076] In Example 7, the subject matter of Examples 1 - 6 includes that the quantum-readable optimization model is in QUBO format.
[0077] Example 8 includes accessing an optimization problem, converting the optimization problem into a quantum-readable optimization model, performing a quantum optimization procedure on the quantum-readable optimization model to generate a quantum solution for the optimization problem, and passing the quantum solution and the optimization problem to a classical optimization procedure, where the classical optimization procedure finds and passes a classical solution for the optimization problem, at least in part based on the quantum solution.
[0078] In Example 9, the subject matter of Example 8 includes determining whether the classical solution is considered an optimal solution based on a set of criteria, converting the classical solution and the optimization problem into a quantum-readable re-optimization model in response to a determination that the classical solution is not considered an optimal solution, performing a quantum optimization procedure on the quantum-readable re-optimization model, and passing the quantum solution and the optimization problem to a classical optimization procedure, where the classical optimization procedure finds and passes a classical solution for the optimization problem, at least in part based on the quantum solution.
[0079] In Example 10, the subject matter of Example 9 includes that the method further includes repeating the determination and the operations performed in response to a determination that the classical solution is not considered an optimal solution until it is determined that the classical solution is considered an optimal solution.
[0080] In Example 11, the subject matter of Examples 8 - 10 includes that the quantum optimization procedure is performed by a different quantum service than the service that performs the above operations.
[0081] In Example 12, the subject matter of Examples 8 - 11 includes that the optimization problem is created using data extracted from an ERP system.
[0082] In Example 13, the subject matter of Examples 8 - 12 includes that the optimization problem is a minimization problem.
[0083] In Example 14, the subject matter of Examples 8-13 includes that the quantum-readable optimization model is in QUBO format.
[0084] Example 15 is a non-transitory machine-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to access an optimization problem, convert the optimization problem into a quantum-readable optimization model, perform a quantum optimization procedure on the quantum-readable optimization model to generate a quantum solution to the optimization problem, and pass the quantum solution and the optimization problem to a classical optimization procedure that finds a classical solution to the optimization problem, at least in part based on the quantum solution.
[0085] In Example 16, the subject matter of Example 15 further includes that the method determines whether a classical solution is considered an optimal solution based on a set of criteria, and in response to a determination that the classical solution is not considered an optimal solution, converts the classical solution and the optimization problem into a quantum-readable re-optimization model, performs a quantum optimization procedure on the quantum-readable re-optimization model, and passes the quantum solution and the optimization problem to a classical optimization procedure that finds a classical solution to the optimization problem, at least in part based on the quantum solution.
[0086] In Example 17, the subject matter of Example 16 further includes that the operations repeat the determination and the operations performed in response to a determination that the classical solution is not considered an optimal solution until it is determined that the classical solution is considered an optimal solution.
[0087] In Example 18, the subject matter of Examples 15-17 includes that the quantum optimization procedure is performed by a different quantum service than the service performing the above operations.
[0088] In Example 19, the subject matter of Examples 15-18 includes that the optimization problem is created using data extracted from an ERP system.
[0089] In Example 20, the subject matter of Examples 15 - 19 includes that the optimization problem is a minimization problem.
[0090] FIG. 3 is a block diagram 300 showing a software architecture 302 that can be installed on any one or more of the devices described above. FIG. 3 is only a non - limiting example of a software architecture, and it will be understood that many other architectures can be implemented to enable the functions described herein. In various embodiments, the software architecture 302 is implemented by hardware such as the machine 400 of FIG. 4 that includes a processor 410, a memory 430, and an input / output (I / O) component 450. In this exemplary architecture, the software architecture 302 can be conceptualized as a stack of layers where each layer can provide a specific function. For example, the software architecture 302 includes layers such as an operating system 304, a library 306, a framework 308, and an application 310. In operation, the application 310, without conflicting with some embodiments, makes API calls 312 through this software stack and receives messages 314 in response to the API calls 312.
[0091] In various implementations, the operating system 304 manages hardware resources and provides common services. The operating system 304 includes, for example, a kernel 320, services 322, and drivers 324. The kernel 320 acts as an abstraction layer between the hardware and other software layers without conflicting with some embodiments. For example, the kernel 320 performs, among other various functions, memory management, processor management (e.g., scheduling), component management, networking, and security configuration. The services 322 can provide other common services for other software layers. The drivers 324 are responsible for controlling the underlying hardware or interfacing with that hardware. By way of example, the drivers 324 can include a display driver, a camera driver, a BLUETOOTH or BLUETOOTH Low-Energy driver, a flash memory driver, a serial communication driver (e.g., a Universal Serial Bus (USB) driver), a Wi-Fi driver, an audio driver, a power management driver, and the like.
[0092] In some embodiments, library 306 provides a low-level common infrastructure utilized by application 310. Library 306 can include a system library 330 (e.g., a C standard library) that can provide functions such as memory allocation functions, string manipulation functions, and mathematical functions. In addition, library 306 can include an API library 332 such as a media library (e.g., a library for presenting and manipulating various media formats such as Moving Picture Experts Group-4 (MPEG4), Advanced Video Coding (H.264 or AVC), Moving Picture Experts Group Layer-3 (MP3), Advanced Audio Coding (AAC), Adaptive Multi-Rate (AMR) audio codec, Joint Photographic Experts Group (PEG or JPG), or Portable Network Graphics (PNG)), a graphics library (e.g., the OpenGL framework used to render in 2D and 3D in a certain graphics context on a display), a database library (e.g., SQLite for providing various relational database functions), a web library (e.g., WebKit for providing web browsing capabilities), etc. Library 306 can also include a variety of other libraries 334 for providing many other APIs to application 310.
[0093] The framework 308 provides a high-level common infrastructure that can be utilized by the application 310. For example, the framework 308 provides various graphical user interface functions, high-level resource management, high-level location services, etc. The framework 308 can provide a wide range of other APIs that can be utilized by the application 310, some of which can be specific to a particular operating system 304 or platform.
[0094] In an exemplary embodiment, the application 310 includes a wide variety of other applications such as a home application 350, a contact application 352, a browser application 354, an e-book reader application 356, a location application 358, a media application 360, a messaging application 362, a game application 364, and a third-party application 366. The application 310 is a program that executes functions defined within the program. One or more of the applications 310 structured in various ways can be created using various programming languages such as object-oriented programming languages (e.g., Objective-C, Java, or C++) or procedural programming languages (e.g., C or assembly language). In one specific example, the third-party application 366 (e.g., an application developed using an ANDROID (registered trademark) or IOS (trademark) software development kit [SDK] by an entity other than the vendor of a particular platform) can be mobile software that runs on a mobile operating system such as IOS (trademark), ANDROID (registered trademark), WINDOWS (registered trademark) Phone, or another mobile operating system. In this example, the third-party application 366 can call the API calls 312 provided by the operating system 304 to enable the functions described herein.
[0095] FIG. 4 shows a machine 400 in the form of a computer system, in which a set of instructions for causing the machine 400 to perform any one or more of the methods discussed herein can be executed. Specifically, FIG. 4 shows a machine 400 in an exemplary form of a computer system, in which instructions 416 (e.g., software, program, application, applet, app, or other executable code) for causing the machine 400 to perform any one or more of the methods discussed herein can be executed. For example, the instructions 416 can cause the machine 400 to perform the method of FIG. 2. In addition or alternatively, the instructions 416 can also implement FIGS. 1-4, etc. The instructions 416 transform a general unprogrammed machine 400 into a particular machine 400 programmed to operate in the manner described to perform the described functions. In an alternative embodiment, the machine 400 can operate as a stand-alone device, or the machine 400 can be coupled (e.g., network-connected) to other machines. In a network-connected deployment, the machine 400 can operate as a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer [or distributed] network environment. The machine 400 can be, but is not limited to, a server computer, a client computer, a personal computer (PC), a tablet computer, a laptop computer, a netbook, a set-top box (STB), a personal digital assistant (PDA), an entertainment media system, a cellular phone, a smartphone, a mobile device, a wearable device [e.g., a smartwatch], a smart home device [e.g., a smart appliance], other smart devices, a web appliance, a network router, a network switch, a network bridge, or any machine capable of sequentially or otherwise executing the instructions 416 that specify the actions to be taken by the machine 400.Furthermore, although only a single machine 400 is illustrated, the term "machine" shall be construed to include a collection of machines 400 that individually or jointly execute instructions 416 for implementing any one or more of the methods discussed herein.
[0096] Machine 400 can include a processor 410, a memory 430, and I / O components 450, which can be configured to communicate with each other, such as via bus 402. In an exemplary embodiment, processor 410 (e.g., a central processing unit (CPU), a reduced instruction set computing (RISC) processor, a complex instruction set computing (CISC) processor, a graphics processing unit (GPU), a digital signal processor (DSP), an application specific integrated circuit (ASIC), a radio frequency integrated circuit (RFIC), another processor, or any suitable combination thereof) can include, for example, processors 412 and 414 capable of executing instructions 416. The term "processor" is intended to include a multi-core processor that can include two or more independent processors (sometimes referred to as "cores") capable of executing instructions 416 simultaneously. FIG. 4 shows multiple processors 410, but machine 400 can include a single processor 412 with a single core, a single processor 412 with multiple cores (e.g., multi-core processor 412), multiple processors 412, 414 with a single core, multiple processors 412, 414 with multiple cores, or any combination thereof.
[0097] Memory 430 can include main memory 432, static memory 434, and storage unit 436, each accessible to processor 410 via bus 402 or the like. Main memory 432, static memory 434, and storage unit 436 store instructions 416 embodying any one or more of the methods or functions described herein. During execution thereof by machine 400, instructions 416 may reside, in whole or in part, within main memory 432, within static memory 434, within storage unit 436, within at least one of the processors of processor 410 (e.g., within a cache memory of the processor), or within any appropriate combination thereof.
[0098] The I / O component 450 can include a wide variety of components for receiving inputs, providing outputs, generating outputs, transmitting information, exchanging information, capturing measurement values, and so on. The specific I / O component 450 included within a particular machine can vary depending on the type of the machine. For example, a portable machine such as a mobile phone may include a touch input device or other such input mechanism, while a headless server machine may not include such a touch input device. It will be understood that the I / O component 450 may include many other components not shown in FIG. 4. The I / O component 450 is grouped according to function simply to simplify the following discussion, and such grouping is in no way limiting. In various exemplary embodiments, the I / O component 450 can include an output component 452 and an input component 454. The output component 452 can include visual components (such as displays like plasma display panels [PDPs], light-emitting diode (LED) displays, liquid crystal displays (LCDs), projectors, or cathode ray tubes (CRTs)), acoustic components (such as speakers), haptic components (such as vibration motors, resistive mechanisms), other signal generators, and so on. The input component 454 can include alphanumeric input components (such as keyboards, touchscreens configured to receive alphanumeric inputs, photo-optical keyboards, or other alphanumeric input components), point-based input components (such as mice, touch pads, trackballs, joysticks, motion sensors, or other pointing devices), tactile input components (such as physical buttons, touchscreens indicating the location and / or force of a touch or touch gesture, or other tactile input components), audio input components (such as microphones), and so on.
[0099] In further exemplary embodiments, the I / O component 450 can include, among a number of different components, a biometric component 456, a motion component 458, an environmental component 460, or a location component 462. For example, the biometric component 456 can include components for detecting an expression (e.g., a hand expression, a face expression, a voice expression, a body gesture, or eye tracking), measuring a biometric signal (e.g., blood pressure, heart rate, body temperature, sweating, or brain waves), identifying a person (e.g., voice identification, retinal identification, face identification, fingerprint identification, or electroencephalogram-based identification), and the like. The motion component 458 can include an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), and the like. The environmental component 460 can include, for example, an illuminance sensor component (e.g., a light meter), a temperature sensor component (e.g., one or more thermometers for detecting ambient temperature), a humidity sensor component, a pressure sensor component (e.g., a barometer), an acoustic sensor component (e.g., one or more microphones for detecting background noise), a proximity sensor component (e.g., an infrared sensor for detecting nearby objects), a gas sensor (e.g., a gas detection sensor for detecting the concentration of harmful gases for safety or measuring pollutants in the atmosphere), or other components that can provide a label, measurement, or signal corresponding to the surrounding physical environment. The location component 462 can include a location sensor component (e.g., a global positioning system (GPS) receiver component), an altitude sensor component (e.g., an altimeter or a barometer for detecting air pressure that can be a source for deriving altitude), an azimuth sensor component (e.g., a magnetometer), and the like.
[0100] Communication can be implemented using a wide variety of technologies. The I / O component 450 can include a communication component 464 operable to couple the machine 400 to the network 480 or the device 470 via couplings 482 and 472, respectively. For example, the communication component 464 can include a network interface component, or another device suitable for interfacing with the network 480. In further examples, the communication component 464 can include a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, a Bluetooth® component (e.g., Bluetooth® Low Energy), a Wi-Fi® component, and other communication components for communicating via other modalities. The device 470 can be another machine or any of a variety of peripheral devices (e.g., coupled via USB).
[0101] Furthermore, communication component 464 can also detect an identifier or can include a component operable to detect an identifier. For example, communication component 464 can include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., a one-dimensional barcode such as a Universal Product Code [UPC] barcode, a QR Code (registered trademark), an Aztec code, a Data Matrix, a Dataglyph, a MaxiCode, a PDF417, an Ultra Code, a UCC RSS-2D barcode, and other multi-dimensional barcodes, and an optical sensor for detecting other optical codes), or an acoustic detection component (e.g., a microphone for identifying a tagged audio signal). In addition, various information such as location via Internet Protocol (IP) geolocation, location via triangulation using Wi-Fi (registered trademark) signals, and location via detection of an NFC beacon signal that can indicate a specific location can be obtained via communication component 464.
[0102] Various memories (i.e., 430, 432, 434, and / or the memory of processor 410) and / or storage unit 436 can store one or more sets of instructions 416 and data structures (e.g., software) that embody or are utilized by any one or more of the methods or functions described herein. These instructions (e.g., instructions 416), when executed by processor 410, cause various operations for implementing the disclosed embodiments to occur.
[0103] In this specification, the terms "machine storage medium", "device storage medium", and "computer storage medium" mean the same thing and may be used interchangeably. These terms refer to single or multiple storage devices and / or storage media (e.g., centralized databases or distributed databases, and / or associated caches and servers) that store executable instructions and / or data. Thus, these terms are to be construed to include, without limitation, solid-state memory, as well as optical and magnetic media, including memory internal or external to the processor. Specific examples of machine storage medium, computer storage medium, and / or device storage medium include, by way of example, non-volatile memory such as semiconductor memory devices, e.g., erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), field programmable gate array (FPGA), and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks and DVD-ROM disks. The terms "machine storage medium", "computer storage medium", and "device storage medium" expressly exclude carrier waves, modulated data signals, and other such media, at least some of which are covered by the term "signal medium" discussed below.
[0104] In various exemplary embodiments, one or more portions of network 480 may be an ad hoc network, an intranet, an extranet, a virtual private network (VPN), a local area network (LAN), a wireless LAN (WLAN), a wide area network (WAN), a wireless WAN (WWAN), a metropolitan area network (MAN), the Internet, a portion of the Internet, a portion of the public switched telephone network (PSTN), a plain old telephone service (POTS) network, a cellular telephone network, a wireless network, a Wi-Fi® network, another type of network, or a combination of two or more such networks. For example, network 480 or a portion of network 480 may include a wireless network or a cellular network, and link 482 may be a code division multiple access (CDMA) connection, a global system for mobile communications (GSM) connection, or another type of cellular or wireless link. In this example, link 482 may implement any of a variety of types of data transfer technologies such as single carrier radio transmission technology (1xRTT), Evolution-Data Optimized (EVDO) technology, general packet radio service (GPRS) technology, GSM enhanced data rates for GSM evolution (EDGE) technology, 3G networks, 3rd Generation Partnership Project (3GPP®) including 4th generation wireless (4G) networks, universal mobile telecommunications system (UMTS), high speed packet access (HSPA), Worldwide Interoperability for Microwave Access (WiMAX), long term evolution (LTE) standards, others defined by various standards bodies, other long distance protocols, or other data transfer technologies.
[0105] Command 416 can be transmitted or received via network 480 using a transmission medium via a network interface device (e.g., a network interface component included within communication component 464) and using any one of several well-known transfer protocols (e.g., Hypertext Transfer Protocol (HTTP)). Similarly, command 416 can also be transmitted or received using a transmission medium that reaches device 470 via a coupling 472 (e.g., a peer-to-peer coupling). The terms "transmission medium" and "signal medium" mean the same thing and may be used interchangeably in this disclosure. The terms "transmission medium" and "signal medium" are interpreted to include any non-transitory medium capable of storing, encoding, or carrying command 416 so that it can be executed by machine 400, as well as digital communication signals or analog communication signals, or other non-transitory media for facilitating such software communication. Accordingly, the terms "transmission medium" and "signal medium" are interpreted to include any form of modulated data signal, carrier wave, etc. The term "modulated data signal" means a signal in which one or more of its characteristics are set or changed to encode information in the signal.
[0106] The terms "machine-readable medium", "computer-readable medium", and "device-readable medium" mean the same thing and may be used interchangeably in this disclosure. These terms are defined to include both machine storage media and transmission media. Accordingly, these terms include both storage devices / media and carrier waves / modulated data signals.
Description of the Reference Numerals
[0107] 100 System 102 ERP System 104 Cloud Service 106 Modeling Component 108 Preprocessing Unit 110 Model Quantum Optimization Format Converter 112 Quantum Service 114 Model Classical Optimization Format Converter 116 Classical Optimizer 118 Post-Processing Unit 120 Optimal Solution Judger 122 Re-optimization Modeler 200 Method 300 Block Diagram 302 Software Architecture 304 Operating System 306 Library 308 Framework 310 Application 312 API Call 314 Message 320 Kernel 322 Service 324 Driver 330 System Library 332 API Library 334 Other Libraries 350 Home Application 352 Contact Application 354 Browser Application 356 E-book Reader Application 358 Location Application 360 Media Application 362 Messaging Application 364 Game Application 366 Third-Party Application 400 Machine 402 Bus 410 Processor 412 Processor, Multi-Core Processor 414 Processor 416 Instruction 430 Memory 432 Main Memory 434 Static Memory 436 Memory Unit 450 Input / Output (I / O) Component 452 Output Component 454 Input Component 456 Biometric Component 458 Motion Component 460 Environment Component 462 Position Component 464 Communication Component 470 Device 472 Coupling 480 Network 482 Coupling
Claims
1. at least one hardware processor; and a computer-readable medium storing instructions that, when executed by the at least one hardware processor, cause the at least one hardware processor to: Accessing the optimization problem, Transforming the optimization problem into a quantum readable optimization model, the quantum readable optimization model taking one or more qubits as input; subjecting the quantum readable optimization model to a quantum optimization procedure to generate a quantum solution to the optimization problem; and passing the quantum solution and the optimization problem to a classical optimization procedure, the classical optimization procedure finding a classical solution to the optimization problem based at least in part on the quantum solution. A system that performs an operation including:
2. The operation, determining whether the classical solution is considered an optimal solution based on a set of criteria; and in response to determining that the classical solution is not considered an optimal solution, converting the classical solution and the optimization problem into a quantum readable re-optimization model; and subjecting said quantum readable re-optimized model to said quantum optimization procedure; and passing the quantum solution and the optimization problem to a classical optimization procedure, the classical optimization procedure finding a classical solution to the optimization problem based at least in part on the quantum solution. The system of claim 1 further comprising:
3. The operation, repeating said determining and said actions performed in response to determining that said classical solution is not considered to be an optimal solution until said classical solution is determined to be considered to be an optimal solution. The system of claim 2 , further comprising:
4. The system of claim 1 , wherein the quantum optimization procedure is performed by a quantum service separate and distinct from a service that performs the operation.
5. The system of claim 1 , wherein the optimization problem is formulated using data extracted from an enterprise resource planning (ERP) system.
6. The system of claim 1 , wherein the optimization problem is a minimization problem.
7. 2. The system of claim 1, wherein the quantum-readable optimization model is in a quadratic unconstrained binary optimization (QUBO) format.
8. accessing an optimization problem; converting the optimization problem into a quantum-readable optimization model, the quantum-readable optimization model taking one or more qubits as input; subjecting the quantum readable optimization model to a quantum optimization procedure to generate a quantum solution to the optimization problem; passing the quantum solution and the optimization problem to a classical optimization procedure, the classical optimization procedure finding a classical solution to the optimization problem based at least in part on the quantum solution; A method comprising:
9. determining whether the classical solution is considered an optimal solution based on a set of criteria; in response to determining that the classical solution is not considered an optimal solution; Transforming the classical solution and the optimization problem into a quantum readable re-optimization model; subjecting the quantum readable re-optimized model to the quantum optimization procedure; passing the quantum solution and the optimization problem to a classical optimization procedure, the classical optimization procedure finding a classical solution to the optimization problem based at least in part on the quantum solution; 9. The method of claim 8, further comprising:
10. repeating the determining step and actions performed in response to determining that the classical solution is not considered to be an optimal solution until it is determined that the classical solution is considered to be an optimal solution.
10. The method of claim 9, further comprising:
11. 10. The method of claim 8, wherein the quantum optimization procedure is performed by a quantum service separate and distinct from a service performing the method.
12. The method of claim 8 , wherein the optimization problem is formulated using data extracted from an enterprise resource planning (ERP) system.
13. The method of claim 8 , wherein the optimization problem is a minimization problem.
14. 9. The method of claim 8, wherein the quantum-readable optimization model is in a quadratic unconstrained binary optimization (QUBO) format.
15. A non-transitory machine-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to: Accessing the optimization problem; and Transforming the optimization problem into a quantum readable optimization model, the quantum readable optimization model taking one or more qubits as input; subjecting the quantum readable optimization model to a quantum optimization procedure to generate a quantum solution to the optimization problem; passing the quantum solution and the optimization problem to a classical optimization procedure, the classical optimization procedure finding a classical solution to the optimization problem based at least in part on the quantum solution; A non-transitory machine-readable medium for causing operations to be performed, including:
16. The operation, determining whether the classical solution is considered an optimal solution based on a set of criteria; in response to determining that the classical solution is not considered an optimal solution; Transforming the classical solution and the optimization problem into a quantum readable re-optimization model; subjecting the quantum readable re-optimized model to the quantum optimization procedure; passing the quantum solution and the optimization problem to a classical optimization procedure, the classical optimization procedure finding a classical solution to the optimization problem based at least in part on the quantum solution; 20. The non-transitory machine-readable medium of claim 15, further comprising:
17. The operation, repeating said determining and said actions performed in response to determining that said classical solution is not considered to be an optimal solution until said classical solution is determined to be considered to be an optimal solution.
20. The non-transitory machine-readable medium of claim 16, further comprising:
18. 16. The non-transitory machine-readable medium of claim 15, wherein the quantum optimization procedure is performed by a quantum service separate and distinct from a service that performs the operation.
19. 16. The non-transitory machine-readable medium of claim 15, wherein the optimization problem is formulated using data extracted from an enterprise resource planning (ERP) system.
20. 16. The non-transitory machine-readable medium of claim 15, wherein the optimization problem is a minimization problem.