ADIABATIC ANNEALING SCHEME AND SYSTEM FOR EDGE COMPUTING

DE102019134370B4Active Publication Date: 2025-03-27HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
DE102019134370
Authority / Receiving Office
DE · DE
Patent Type
Patents
Current Assignee / Owner
Priority Date
2019-03-29
Filing Date
2019-12-13
Publication Date
2025-03-27
Estimated Expiration
2039-12-13

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

An acceleration device comprising: a first memristor crossbar array with a plurality of non-volatile memory elements, wherein each non-volatile memory element comprises a two-terminal memory element to generate a solution for an encoded matrix representation of a constrained optimization problem; a filter unit (204, 603) for receiving and filtering solutions generated from the majority of the non-volatile storage elements; and a programming unit (201) comprising dedicated hardware to iteratively write to the plurality of non-volatile memory elements an encoded matrix representation of a plurality of encoded matrix representations associated with the constrained optimization problem at each reprogramming of the first memristor crossbar array, wherein the plurality of encoded matrix representations are arranged such that the convergence to the encoded matrix representation of the constrained optimization problem increases, where the majority of coded matrix representations are each unique Hamiltonian functions of a Hopfield network associated with the constrained optimization problem, and where, during the use of a Hopfield net connected to the Hamiltonian functions of the Hopfield net, stochastic noise is injected, comprising a current pulse between 50 and 150 µA, which is induced for about 5 µs to about 50 µs.
Need to check novelty before this filing date? Find Prior Art

Description

BACKGROUND

[0001] Quantum computation has been explored as a means of solving complex problems. In particular, adiabatic quantum annealing has been implemented in dot-product engine accelerators fabricated with nanoscale memristor crossbar arrays to solve vector-matrix multiplication, generally considered a computationally demanding task. By applying a vector of voltage signals to the rows of a memristor crossbar array, vector multiplication can be easily performed. The application of memristor crossbar arrays for quantum computation therefore has great potential for next-generation memory and switching devices.

[0002] LIU, Chenchen; et al.: A memristor crossbar based computing engine optimized for high speed and accuracy. In: Proceedings / IEEE computer society annual symposium on VLSI, 11-13 July 2016, pp. 110-115. - ISBN 978-1-4673-9040-8 shows a high similarity between a mathematical matrix and a memristor crossbar array.

[0003] HU, Miao; et al.: Memristor crossbar-based neuromorphic computing system: a case study. In: IEEE transactions on neural networks and learning systems, Vol. 25, 2014, No. 10, pp. 1864-1878. - ISSN 2162-237X demonstrates the possibility of converting a software-generated interconnect matrix into hardware memristor crossbars.

[0004] MANDZIUK, Jacek: Optimization with the Hopfield network based on correlated noises: experimental approach. In: Neurocomputing, Vol. 30, 2000, No. 1-4, pp. 301-321. - ISSN 0925-2312 presents optimization techniques based on the combination of the Langevin equation with the Hopfield model. BRIEF DESCRIPTION OF THE DRAWINGS

[0005] This disclosure is best understood from the following detailed description when read in conjunction with the accompanying figures. It is emphasized that, consistent with industry practice, various features are not drawn to scale. Indeed, the dimensions of the various features may be exaggerated or reduced as desired for clarity of discussion. Fig. 1 is an illustration of techniques that may be used to solve a constrained optimization problem with a dot product engine architecture implementing a Hopfield network, according to one or more implementations of the present disclosure. Fig. 2 is an illustration of a Hopfield network system implementing a weight programming unit according to one or more implementations of the present disclosure. Fig. 3 is an illustration of various energy functions associated with a constrained optimization problem according to one or more implementations of the present disclosure. Fig. 4 illustrates how simulated annealing is performed according to one or more implementations of the present disclosure. Fig. 5 is an illustration of a computer system according to one or more examples of the present disclosure. Fig. 6 is an illustration of a Hopfield network system implementing a weighted hybrid matrix representation, according to one or more implementations of the present disclosure. Fig. 7 is an illustration of a computer system according to one or more examples of the present disclosure, according to one or more implementations of the present disclosure. Fig. 8 is an illustration of another Hopfield network system implementing a weighted hybrid matrix representation, according to one or more implementations of the present disclosure. Fig. 9 is an illustration of a system using a dot product engine architecture to implement bit slicing during a Hopfield net process, according to one or more implementations of the present disclosure. Fig. 10 is an illustration of an instance of a bit slicing unit deployed within a dot product engine architecture, according to one or more implementations of the present disclosure. Fig. Figure 11A is an illustration of a bit matrix of a Hopfield net Hamiltonian associated with a simple problem. Fig. Figure 11B is an illustration of a bit matrix of a most significant bit calculated using the Hamiltonian in conjunction with the simple problem of Fig. 11A is connected. Fig. Figure 11C is an illustration of a bit matrix of low-order bits calculated using the Hamiltonian in conjunction with the simple problem of Fig. 11A is connected. Fig. Figure 12 illustrates one way of applying adiabatic annealing and bit slicing to the simple problem. Fig. Figure 13A is an illustration of a bit matrix of a Hamiltonian associated with an objective-constrained optimization problem. Fig. Figure 13B is an illustration of a bit matrix of a most significant bit associated with the Hamiltonian bit associated with the objective-constrained optimization problem. Fig. Figure 13C is an illustration of a bit matrix of low-order bits associated with the Hamiltonian in the objective-constrained optimization problem. Fig. Figure 14 illustrates how adiabatic annealing and bit slicing are used for the objective-constrained optimization problem. Fig. Figure 15 is an illustration of a set of energy functions associated with the most significant bit associated with the Hamiltonian of the simple problem and the objective-constrained optimization problem. Fig. Figure 16 is an illustration of a set of energy functions associated with a set of Hamiltonians obtained by bit slicing and adiabatic annealing. Fig. 17 is an illustration of one manner of implementing chaotic-assisted annealing, according to an implementation of the present disclosure. Fig. 18 is a flowchart for a method for determining a solution to a constrained optimization process by implementing bit slicing and adiabatic annealing, according to one or more implementations of the present disclosure. Fig. 19 is an illustration of a Hopfield network system using a dot product engine architecture to generate solutions to objective-constrained optimization problems with dynamic objectives, according to one or more implementations of the present disclosure. Fig. 20 is an illustration of a Hopfield network system using a DPE architecture to generate solutions to objective-constrained optimization problems with dynamic objectives and constraints, according to one or more implementations of the present disclosure. Fig. 21 is an illustration of a Hopfield network system using multiple DPE architectures to obtain solutions for an objective-constrained optimization with dynamic constraints, according to one or more implementations of the present disclosure. Fig. 22 is an illustration of a Hopfield network system using multiple dot product engine architectures to obtain solutions for an objective-constrained optimization with dynamic objectives and constraints, according to one or more implementations of the present disclosure. Fig. Figure 23 is a flowchart of another method for determining a solution to a constrained optimization process. DETAILED DESCRIPTION

[0006] Illustrative examples of the subject matter claimed below are now disclosed. In the interest of clarity, this specification does not describe all features of an actual implementation. It is understood that in developing such an actual implementation, numerous implementation-specific decisions may be made to achieve the developers' specific goals, such as adhering to system and business constraints that will vary from one implementation to another. Furthermore, it is understood that such development work, while complex and time-consuming, would be routine for one of ordinary skill in the art having the benefit of this disclosure.

[0007] Further, the article "a," as used herein, is intended to have its usual meaning in patent law, namely, "one or more." The term "about," when applied to a value, herein generally means within the tolerance range of the equipment used to produce the value, or in some examples, plus or minus 10%, or plus or minus 5%, or plus or minus 1%, unless expressly stated otherwise. Further, the term "substantially," as used herein, means a majority or almost all or all of, or an amount within a range of, for example, about 51% to about 100%. Furthermore, the examples included herein are illustrative and presented for discussion purposes only and not by way of limitation.

[0008] If a range of values ​​is specified, it is understood that every intermediate value, up to one-tenth of a unit of the lower limit, between the upper and lower limits of that range and any other specified or intermediate value within that specified range is included in the disclosure, unless the context clearly dictates otherwise. The upper and lower limits of these smaller ranges may independently be included within the smaller ranges and are also included in the disclosure, subject to a specifically excluded limit in the specified range. If the specified range includes one or both limits, ranges excluding one or both of those included limits are also included in the disclosure.

[0009] Adiabatic quantum annealing is a form of quantum computation implemented to solve constrained optimization problems. In some implementations, adiabatic annealing applies the adiabatic theorem, which states that if a system is modulated slowly enough, starting in the ground state (e.g., optimal lowest-energy mode), it will remain in the ground state for the final Hamiltonian function (e.g., Hamiltonian).

[0010] Here, constrained optimization problems are defined as a class of problems arising from applications where there are explicit variable constraints. Constrained optimization problems can be classified according to the nature of the constraints (e.g., linear, nonlinear, convex) and the smoothness of their functions (e.g., differentiable or nondifferentiable).

[0011] Previous implementations for solving constrained optimization problems were attempted using traditional electrical networks and GPU-based matrix multiplication systems. Although progress has been made in implementing adiabatic annealing in commercial contexts, it was prohibitively expensive to achieve low temperatures for generating solutions to constrained optimization problems. For example, when adiabatic quantum annealing is implemented in a physical device, temperature and other noise effects play an important role, so thermal excitation and energy relaxation cannot be neglected, as they can degrade performance.

[0012] A dot product engine (DPE) is a high-density, high-performance accelerator capable of performing matrix-vector multiplication tasks associated with neural network applications. In some implementations, a DPE offloads certain multiplication elements common to neural network interfaces. Examples of the present disclosure use a Hopfield net system to determine a solution to a simple constrained optimization problem and then perform adiabatic annealing to determine a solution to a more complex problem. Examples of the present disclosure use a DPE implemented as a weight matrix, which can be iteratively reprogrammed during a convergence process to achieve solutions to a constrained optimization problem at lowest-energy optimal states.Examples of the present disclosure include simulated annealing to add chaos to a system during an adiabatic annealing process to further enhance performance.

[0013] In some examples, the energy landscape of a known simple problem may contain only a single global minimum and be represented by a Hamiltonian encoded onto the conductances of a memristor DPE crossbar network using a weighted programming unit, as described in more detail below. The Hopfield system can use gradient descent to converge to a minimum of an energy landscape, which can lead to a solution to a known simple problem.

[0014] A Hopfield network can be used as a dynamic system that can be expressed by a Lyapunov function E (i.e., a Hopfield energy function): E=−(0.5)∑i∑j≠iSiSjWij−∑iSiIi

[0015] In some implementations, the weight matrices of the Hopfield network systems disclosed here are symmetric (i.e., w ij = w ji ) and are updated asynchronously so that the Lyapunov function converges to a local minimum. In one implementation, a Hopfield network system converges to a local minimum when it converges to a set of states that represent a local minimum of an energy function.

[0016] A Hopfield network system can be advantageously used to identify and compare stored information or to solve constrained optimization problems. In some implementations, a Hopfield network system can effectively transform a constrained optimization problem into an unconstrained one by aggregating objectives and constraints into a single energy function that takes the form of an objective to be minimized.

[0017] A goal associated with a goal-constrained problem can be defined as a specific result that a system seeks to achieve within a certain timeframe. Constraints associated with a goal-constrained optimization problem can be defined as the resources available to achieve the specified goal. In one implementation of the present disclosure, the solutions determined by the Hopfield network system can satisfy some, but not all, of the goals or constraints.

[0018] The present disclosure can be applied to a non-deterministic class of polynomial-time (NP-hard) decision problems, which generally consume exponentially increasing computation time when the solutions to these problems are generated, for example, by digital computers. NP-hard problems may include, among others, vehicle route planning, traveling salesman problems, satellite resource sharing, bandwidth allocation, etc.

[0019] In Fig. 1 illustrates techniques for solving a constrained optimization problem with a DPE architecture implementing a Hopfield network, according to one or more implementations of the present disclosure. The energy function 101 may be associated with a simple problem with a known solution, as represented by the relatively smooth function curve with a single global minimum. The present disclosure may use adiabatic annealing through the implementation of a Hopfield network to determine a solution to an objective-constrained optimization problem by introducing Hamiltonian matrices associated with a simple problem and an objective-constrained optimization problem in a weighted, gradual manner. For example, the transition from the energy function 101 to the energy function 102 may be accomplished by implementing adiabatic annealing during a Hopfield network process.

[0020] Furthermore, the present disclosure may employ bit slicing to improve the ability of a Hopfield network to converge to optimal solutions for an objective-constrained optimization problem. In this context, bit slicing may refer to a technique that divides an encoded Hamiltonian matrix associated with an objective-constrained optimization problem into a set of matrices with least significant bits, low-order bits, and most significant bits. For example, the transition from energy function 102 to energy function 103 may result from the implementation of bit slicing.

[0021] Simulated annealing can also be used to improve the ability of a Hopfield network to converge to optimal solutions for objective-constrained optimization problems. Simulated annealing may involve injecting stochastic noise or chaos into the Hopfield network to shift the energy of the network state from a local minimum to a global minimum, allowing more accurate solutions to objective-constrained optimization problems to be achieved. For example, energy function 104 may represent the injection of stochastic noise to "dial in" the solution to the one associated with a lowest energy minimum.

[0022] Fig. Figure 2 is an illustration of a Hopfield network system 200 implementing a weight programming unit 201, according to one or more implementations of the present disclosure. The Hopfield network system 200 can be incorporated into various types of hardware accelerators, such as, but not limited to, an application-specific integrated circuit (ASIC).

[0023] As described in more detail below, the weight programming unit 201 may iteratively program a plurality of encoded matrix representations 208 of constrained optimization problems into a weight matrix 202 of the Hopfield network system 200. In some implementations, the Hopfield network system 200 converts all constraints into objectives during encoding of an objective-constrained optimization problem.

[0024] As in Fig. 2, the Hopfield network system 200 includes the weight matrix 202, a filter unit 204, and a solution memory 205. The Hopfield network system 200 can be used to find the ground state corresponding to the best solution of an objective-constrained optimization problem.

[0025] In some implementations, the weight programming unit 201 may be a digital computer. However, the present disclosure is not limited thereto. The weight programming unit 201 may iteratively program and reprogram Hamiltonians into the weight matrix 202. A Hamiltonian here is a mathematical function that expresses the time rate of change of the state of a dynamic physical system—a function viewed as a set of moving particles. The Hamiltonian of a system specifies its total energy, specifically the sum of a system's kinetic energy with respect to its motion and its potential energy.

[0026] In some implementations, the weight programming unit 201 also generates the Hamiltonians or any coded matrix representations to be programmed into the weight matrix 202. However, in other implementations, the Hamiltonians are generated by a system external to the Hopfield network system 200. For example, the majority of the coded matrix representations 208 may increase sequentially in convergence to the coded matrix representation of the objective-constrained optimization problem.

[0027] For example, the set of Hamiltonians may increase in convergence sequentially to the Hamiltonian associated with the objective-constrained optimization problem. Additionally, the Hamiltonian associated with a simple problem with a known solution may be programmed onto the Hopfield network first, and subsequently, each Hamiltonian of the set of Hamiltonians associated with the objective-constrained optimization problem may be programmed onto the Hopfield network, such that solutions are obtained for each problem represented by the coded Hamiltonians programmed onto the Hopfield network. In some implementations, the Hopfield network system 200 may be analog in nature, although the weight programming unit 201 may include digital components.

[0028] In some implementations, the weight programming unit 201 includes a digital-to-analog converter (DAC) (not shown). The DAC can convert the digital Hamiltonians or other matrix representations into analog signals that can be programmed into the weight matrix 202 by the weight programming unit 201.

[0029] The weighting matrix 202 can generate a solution to the stored coded matrix representations of constrained optimization problems programmed therein by the weighting programming unit 201. In one implementation, the weighting matrix 202 comprises a memristor crossbar array. A memristor crossbar array can comprise a plurality of non-volatile memory elements, each of which comprises a two-port memory element storing a coded matrix representation of a constrained optimization problem.

[0030] Here, a memristor is defined as a non-volatile electrical component that limits or regulates the flow of electrical current in a circuit and retains a memory of the amount of charge that has previously flowed through it. Memristors can comprise passive circuit elements that maintain a relationship between the time integrals of current and voltage across a two-terminal device.

[0031] Furthermore, a memristor crossbar array can be defined as a crossbar array structure containing a grid of two sets of parallel nanowires, with a memristor switch at each intersection point between the horizontal and vertical wires. Memristor crossbar arrays can offer process compatibility with complementary metal-oxide-semiconductor (CMOS) devices, high density, and the ability to perform many calculations in a relatively short time.

[0032] In some implementations, weighted feedback performed by matrix multiplication can be implemented in a DPE containing a network of non-volatile two-terminal memristor elements of the weighting matrix. The resistances of the memristor elements can be tuned to multiple values ​​representing the weights that scale the input current / voltage. The DPE advantageously uses a set of non-volatile analog memristors to perform vector multiplications and additions with minimal latency and power overhead (e.g., less than 10 13 operations / W). The threshold function of the filter unit 204 may consume less than 100 fJ / operation, and the storage of binary states in the solution memory 205 may consume less than 200 fJ / bit / µm in some implementations of the present disclosure. 2 consume.

[0033] The memristor crossbar array of the weighting matrix 202 can be made of a tantalum oxide (TaO) material. The memristor crossbar array of the filter unit 204 can also be used as a nanoscale Mott memristor.

[0034] The weight matrix 202 has a plurality of cells 203 (one of which is indicated) that can retain the vector values ​​associated with the coded matrix representations of the constrained optimization problems, according to the implementation shown. The weight matrix 202 can include rows 202a and columns 202b to identify each cell 203 of the weight matrix 202. In one implementation, the cells retain values ​​associated with a Hamiltonian function.

[0035] The filter unit 204 may filter the solutions generated by the weighting matrix 202. In some implementations, the filter unit 204 includes an array of filter devices. The filter unit 204 may execute an algorithm known in the art to filter the generated solutions. The filter unit 204 may include threshold switching devices, nonlinear resistors, or other electronic components having a nonlinear transfer function. In some implementations, the filter unit includes a set of threshold switching components made of an NbO (or NbO2) material.

[0036] The solution memory 205 can store convergence solutions (e.g. S n,n) for a constrained optimization problem filtered by filter unit 204. In one or more implementations, solution memory 205 includes an array of non-volatile memory elements that receives (e.g., via transmission lines 206) the convergence solutions from filter unit 204. The non-volatile memory elements of solution memory 205 may include non-linear resistors, memristors, phase-change memories, or spin-torque transfer random access memory (RAM). In some implementations, the non-volatile memory elements of solution memory 205 are fabricated from a tantalum oxide (TaO) material.

[0037] Before the convergence solutions are stored in the solution memory 205, the solutions are compared with the convergence solutions currently stored in the solution memory 205. If the convergence solution previously filtered by the filter unit 204 differs from the convergence solution currently stored in the solution memory 205, the solution memory 205 is overwritten with the new intermediate convergence solution. Additionally, the new convergence solution is sent to the weighting matrix 202 via the transmission lines 207.

[0038] In some implementations, the weighting programming unit 201 also includes an analog-to-digital converter (ADC) (not shown). Once a convergence solution has been determined by the Hopfield network system 200 according to a method described herein, the weighting programming unit 201 may receive analog signals corresponding to the generated solution to a constrained optimization problem, convert the analog signals to digital signals, and output the digital signals to a graphical user interface (GUI) (not shown).

[0039] The weight programming unit 201 can program or reprogram the weighting matrix 202 in various ways. In one implementation, the weighting matrix 202 is programmed / reprogrammed by the weight programming unit 201 by applying electrical signals. For example, the weighting matrix 202 can be programmed or reprogrammed with a single set of voltage pulses according to one or more implementations of the present disclosure.

[0040] Fig. Figure 3 is an illustration of several Hopfield energy functions associated with an objective-constrained optimization problem according to one or more implementations of the present disclosure. As described in more detail below, the Hamiltonians associated with an objective-constrained optimization problem, in addition to a Hamiltonian associated with a simple known problem, can be used to obtain convergent solutions to the objective-constrained optimization problem.

[0041] In some implementations, the energy function 301 may be associated with a single constrained optimization problem with a widely known or easily achievable solution associated with an optimal lowest energy level. The energy function 301 may also be associated with an initial Hamiltonian (H0). The energy function 301 represents a simple parabolic curve with a global minimum 327, as demonstrated by the presence of the energy particle 334 in the optimal lowest energy state. In some implementations, the initial constrained optimization problem associated with the energy function 301 may not be associated with the objective-constrained optimization problem, unlike the constrained optimization problems associated with the energy functions 302-305, as described below.

[0042] In some implementations, the initial constrained optimization problem associated with the energy function 301 may be encoded as a plurality of matrix representations and then mapped via the weight programming unit 201 into the weight matrix (e.g., the weight matrix 202 of Fig. 2) the Hopfield network system (e.g. the Hopfield network system 200 from Fig. 2) can be programmed. With the Hopfield network system 200, an optimal solution for the constrained optimization problem associated with the energy function 301 can be determined ( Fig. 3).

[0043] Fig. Figure 3 shows several energy functions 302-305 associated with the energy function 306 associated with the constrained objective optimization problem to be solved with the Hopfield network system described here. In some implementations, the Hamiltonians associated with the energy functions 302-305 are fractions of the Hamiltonians associated with the energy function 306.

[0044] In some implementations, the energy function 301 is associated with a Hamiltonian (H0) that may not be identical to the Hamiltonian (H T ) associated with an objective-constrained optimization problem. However, in other implementations, the energy function 301 associated with a Hamiltonian is associated with the Hamiltonian (H T ), which is associated with the objective-constrained optimization problem, or is a simplified version of it.

[0045] The energy function 306 is associated with an objective-constrained optimization problem. Specifically, the energy function 306 has five local minima 320, 321, 323-325, and one global minimum 322. It will be apparent to one of ordinary skill in the art that complex constrained optimization problems typically involve energy functions that exhibit multiple local minima.

[0046] As a constrained optimization problem increases in complexity, the associated energy functions can generally exhibit more local minima. For example, the larger the Hamiltonian number (H x ), the more local minima can occur in the corresponding energy function. For example, an energy function that is filled with the 500th Hamiltonian (H 500 ) have more local minima than an energy function associated with the 100th Hamiltonian (H 100The less complex the constrained optimization problem, the fewer local minima can occur in the corresponding energy function.

[0047] Furthermore, simulated annealing can be implemented by adding chaos (or, for example, stochastic noise) to a Hopfield network system. Here, simulated annealing is defined as a probabilistic technique that helps in finding the global optimum of a given function. Furthermore, simulated annealing can also be a metaheuristic to approximate global optimization in a large search space for an objective-constrained optimization problem. In some implementations, devices with NbO2 filter units can effectively enable simulated annealing through highly sensitive, voltage-tunable, chaotic behavior.

[0048] Here, chaos is defined as any noise or disturbance, which can be defined as unwanted electrical signals that distort or interfere with an original signal. In some implementations, the injection of noise into a Hopfield network system may include the injection of fluctuations, disturbances, stochasticity, or any such electrical signal used for gradient descent to assist the convergence of the Hopfield network system and reach a global minimum. Furthermore, in some implementations, the injection of a relatively high degree of stochastic noise or chaos into a Hopfield network system during a convergence process may achieve solutions at a faster rate than the injection of a relatively low degree of stochastic noise or chaos during the convergence process.

[0049] The induction of stochastic noise or chaos can be used to drive an energy particle to a global minimum. For example, the injection of stochastic noise or chaos can be achieved by implementing a voltage-tunable stochastic noise or chaos process. Simply put, stochastic noise or chaos can be injected into a filter unit of the Hopfield network system to shift the system from a local minimum to a global minimum. The level of stochastic noise or chaos introduced into a Hopfield network system, such as the Hopfield network system 200 (in Fig. 2) can range from about 50 µA to about 150 µA and last from about 5 µs to about 50 µs.

[0050] In some implementations, energy functions 302-305 represent constrained optimization problems that are related to, but simplified variants of, an objective-constrained optimization problem. In some implementations, a Hamiltonian associated with an objective-constrained optimization problem is "simplified" into a series of related Hamiltonians. For example, an objective-constrained optimization problem may be associated with 100, 500, 1,000, 10,000, etc. Hamiltonians. In some implementations, the Hopfield network system can determine a solution to any programmed Hamiltonian within a few microseconds.

[0051] In the Fig. In the example shown in Figure 3, 1,000 Hamiltonians are generated and iteratively inserted into a weighting matrix 202 of a Hopfield network system 200 ( Fig. 2) programmed so that adiabatic annealing can be implemented to find a solution to a constrained optimization problem. With the present disclosure, adiabatic annealing can be advantageously implemented to systematically determine the best solution to an objective-constrained optimization problem.

[0052] In the implementation shown, the energy function 302 is the fiftieth Hamiltonian (H 50) generated to determine a solution to the objective-constrained optimization problem. The energy function 302 has a single minimum of 328, as shown by the presence of the energy particle 308 therein. In particular, the energy functions 302-306 are successively complex because they are representations of their associated Hamiltonian functions. In particular, the energy function 302 is parabolic in nature, while the energy function 306 is parabolic to a lesser extent. Likewise, the energy function associated with the first Hamiltonian (i.e., H1) may be significantly more parabolic than the 100th Hamiltonian (i.e., H 100 ).

[0053] Next, energy function 303 is associated with the 250th Hamiltonian generated to determine a solution to the objective-constrained optimization problem. As shown, energy function 303 is less parabolic than energy function 302 and, in particular, has a local minimum 311 and a global minimum 329. Energy function 303 illustrates that energy particle 309 is located at the global minimum 329.

[0054] In addition, the energy function 304 is the 600th Hamiltonian (H 600) generated to determine a solution to the constrained optimization problem. As shown, the energy function 304 has three local minima 313, 326, 333 and a global minimum 315. Various techniques disclosed herein may be employed to move the energy particle 309 from the local minimum 326 to the global minimum 315. In the implementation shown, an energy particle 314 is located at the local minimum 326. The present disclosure may also implement simulated annealing to reach the optimal lowest energy state (e.g., global minimum 312) so that the best solution to the constrained optimization problem can be determined.

[0055] Fig. 3 illustrates an energy function 305. The energy function 305 is the 800th Hamiltonian (H 800) generated to determine a solution to the objective-constrained optimization problem. The energy function 305 is more similar to the energy function 306 than to the energy functions 302-304. The energy function 305 has two local minima 318, 335, and a single global minimum 317. In the implementation shown, the energy particle 316 is located at the global minimum 317.

[0056] The energy function 306 shows that an energy particle 319 is currently at the local minimum 323. Notably, a solution associated with a lowest optimal energy state for this Hamiltonian is associated with the global minimum 322. However, since the local minimum 323 is not the global minimum 322 for the energy function 306, the solution(s) corresponding to the local minimum 320 would not be the best solution to the objective-constrained optimization problem. Similarly, if the energy particle 319 moves to the local minima 320, 321, 324, or 325, the corresponding solutions would not be the best solutions because they are not the optimal lowest energy states of the energy function 306. In some implementations, simulated annealing with adiabatic annealing can be used to help a Hopfield network system maintain the lowest energy state (e.g., per Hamiltonian).For example, simulated annealing can be used to move the energy particle 319 from the local minimum 323 to the global minimum 322 in the direction 331.

[0057] The coded matrix representations of the constrained optimization problems can be generated by the weighting programming unit 201 (see Fig. 2) be iteratively programmed into the weight matrix 202. In some implementations, the energy matrix representations are Hamiltonians that converge sequentially toward the Hamiltonian associated with the objective of the objective-constrained optimization problem. For example, the order of programming the weight matrix by the weight programming unit can be represented as follows: H0=H0; H1=(1−1 / x)*H0+(1 / x)*HT; H2=(1−2 / x)*H0+(2 / x)*HT;……… HX=HT

[0058] In this implementation, X = total number of steps executed. H0 is the Hamiltonian of a simple problem, H T is the Hamiltonian of an objective-constrained optimization problem, and H 1... H X are the additional Hamiltonian functions used to program the weight matrix for each subsequent iteration.

[0059] At the end of all iterations, the solution represented by the states can be the optimal solution for an objective-constrained optimization problem that satisfies all constraints and objectives.

[0060] Fig. Figure 4 is an illustration of one way of implementing simulated annealing according to an implementation of the present disclosure. In particular, Fig. 4 the energy functions 306, 307 in connection with a final Hamiltonian H 1000Since adiabatic annealing is used in the present disclosure to gradually bring the system to an optimal lowest energy state, simulated annealing can be further used to bring the system to the optimal lowest energy state. As shown, energy function 306 represents an energy particle located at a local minimum 323.

[0061] Simulated annealing may be used to shift the state of the network energy particle 319 from a local minimum 323 to a global minimum 322, as indicated by the direction 330 in the energy function 307. The simulated annealing may include injecting stochastic noise 332, as shown in the figure. It will be understood by one of ordinary skill in the art that a Hopfield network system described herein (e.g., the Hopfield network system 200 of Fig. 2) by sequentially programming each generated Hamiltonian into the weight matrix 201 and also iterating to determine a solution with an optimal lowest energy state. Likewise, it is understood that the Hopfield network system (e.g., the Hopfield network system 200 of Fig. 2) converges to a solution for each Hamiltonian and also to a global solution for the Hamiltonian associated with the objective-constrained optimization problem.

[0062] Fig. 5 is an illustration of a computer system 500, according to one or more examples of the present disclosure. The computer system 500 may include a non-transitory computer-readable medium 502 having computer-executable instructions 203-208 stored thereon that, when executed by one or more processing units 501 (only one is shown), cause the one or more processing units 501 to determine a solution to an objective-constrained optimization problem, according to an implementation of the present disclosure.

[0063] The computer system 500 may use a Hopfield network system (e.g., the Hopfield network system 200 as shown in Fig. 2). The computer-executable instructions 203 include the programming of a weighting matrix (e.g., the weighting matrix 202 of a Hopfield network system 200 of Fig. 2) with a first coded matrix representation of an initial constrained optimization problem. Next, computer-executable instruction 504 includes using the Hopfield network system to determine a solution to the initial constrained optimization problem. In some implementations, the initial constrained optimization problem is a simple problem with well-defined solutions and may be unrelated to the objective-constrained optimization problem.

[0064] Computer-executable instructions 505 include encoding an objective-constrained optimization problem into a second coded matrix representation. In some implementations, the objective-constrained optimization problem is not associated with the initial constrained optimization problem. Next, computer-executable instructions 506 include encoding a plurality of constrained optimization problems associated with an objective-constrained optimization problem into a plurality of coded matrix representations, each of which is a combination of the first coded matrix representation and the second coded matrix representation associated with the objective-constrained optimization problem. In some implementations, the plurality of coded matrix representations may increase sequentially in convergence to the second coded matrix representation.In addition, the majority of energy functions associated with the majority of constrained optimization problems may, in some implementations, successively decrease in convexity.

[0065] Additionally, computer-executable instructions 507 include iteratively reprogramming the weight matrix with the plurality of coded matrix representations (e.g., Hamiltonians). For each programmed Hamiltonian, the Hopfield network system may iterate until it converges to a solution. Reprogramming the weight matrix of the Hopfield network system may include reprogramming the weight matrix with one of the plurality of coded matrix representations in a sequential manner. Furthermore, reprogramming the weight matrix may include using the Hopfield network system to determine a solution for the coded matrix representation currently programmed into the weight matrix.

[0066] Finally, the computer-executable instructions 508 include injecting stochastic noise or chaos during deployment of the Hopfield network system for each of the plurality of encoded matrix representations. In some implementations, injecting stochastic noise or chaos during deployment of the Hopfield network system includes introducing a large degree of stochastic noise or chaos followed by injecting a smaller degree of stochastic noise or chaos into the system.

[0067] Fig. 6 is an illustration of a Hopfield network system 600 implementing a weighted hybrid matrix representation according to one or more implementations of the present disclosure. The Hopfield network system 600 includes weight matrices 601, 602. In one implementation, the weight matrix 601 is programmed with a Hamiltonian 603 associated with a simple constrained optimization problem. However, the present disclosure should not be limited to this implementation. For example, the weight matrix 601 may be programmed with a Hamiltonian associated with the objective-constrained optimization problem.

[0068] In the implementation shown, the solutions generated for the Hamiltonian functions in conjunction with the weighting matrices 601, 602 are transferred to the weighting component 609. The weighting component 609 generates a weight sum of the solutions generated by the weighting matrices 601, 602. In some implementations, the weighting component 609 includes an operational amplifier 610.

[0069] After the weighting component 609 has generated a weighted sum of the solutions associated with the weighting matrices 601, 602, the weighting component 609 transmits (e.g., via the transmission lines 605) the weighted solution to the filter unit 603.

[0070] The filter unit 603 receives the weighted solution and filters the solution. The filtered solution may be stored in the solution memory 604 after the filtered solutions have been compared with the solution currently stored in the solution memory 604. If the new solution(s) filtered by the filter unit 603 are determined to differ from the solutions stored in the solution memory 604, the new solution(s) are stored in the solution memory 604 and then transferred (e.g., via transfer lines 608) to the weighting matrix 602, where the process continues to iterate until the Hopfield network system 600 converges to a solution for the programmed Hamiltonian. In some implementations, a copy of the new solutions is transferred to the weighting matrix 602.

[0071] Although the Fig. While the implementation illustrated in Figure 6 includes two weighting matrices 601, 602, the present disclosure is not limited thereto. The present disclosure is also suitable for the Hopfield network system 600 to include more than two weighting matrices 601, 602, each of which can be programmed with a different Hamiltonian. The solutions generated by each weighting matrix 601, 602 can be weighted by the weighting amplifier 609 and then transferred to the filter unit 603 for further processing (e.g., filtering). The filtered solution can be used with a solution currently stored in the solution memory 604.If the comparison results in a difference, a copy of the filtered solution is stored in the solution memory 604 and then transferred for further processing to the weighting matrix 601, 602 programmed with the Hamiltonian associated with the objective-constrained optimization problem to converge to the most optimal solution.

[0072] Fig. 7 is an illustration of a computer system 700, according to one or more examples of the present disclosure. The computer system 700 may include a non-transitory computer-readable medium 702 having computer-executable instructions 703-712 stored thereon that, when executed by one or more processing units 701 (only one is shown), cause the one or more processing units 701 (e.g., a digital processor) to determine a solution to an objective-constrained optimization problem, according to an implementation of the present disclosure. The computer system 700 may, for example, be implemented by the Fig. 6 can be implemented.

[0073] The computer system 700 may use a Hopfield network system (e.g., the Hopfield network system 200 as shown in Fig. 2). Computer-executable instructions 703 include encoding an initial constrained optimization problem into a first coded matrix representation (e.g., Hamiltonian matrix). Computer-executable instructions 704 include encoding an objective-constrained optimization problem into a second coded matrix representation. Computer-executable instructions 705 include programming the first weight matrix 601 with the first coded matrix representation.

[0074] Next, computer-executable instructions 706 include programming a second weighting matrix 602 of a Hopfield network with the weighted coded matrix representations. After the weighting matrices 601, 602 are programmed with the weighted coded matrix representations, the computer system 700 can execute computer-executable instructions 707 to determine solutions to the initial constrained optimization problem. Furthermore, the computer system 700 includes computer-executable instructions 708 to weight the solutions generated by the weighting matrices 601, 602 and 605 to send the weighted solutions to the filter unit 603. The computer system 700 also includes computer-executable instructions 709, which include comparing the filtered solutions with the solutions stored in the solution memory.

[0075] Furthermore, computer system 700 includes computer-executable instructions 710 for filtering the weighted solutions stored in solution memory 604. Furthermore, computer system 700 includes computer-executable instructions 711 for transmitting the solutions of the weighting matrices if the comparison results in a difference. Furthermore, computer system 700 includes executable instructions 712 that iterate the process until the Hopfield network converges to a solution.

[0076] Fig. 8 is an illustration of a Hopfield network system 800 implementing a weighted hybrid matrix representation according to one or more implementations of the present disclosure. As in Fig. As shown in Figure 8, a weighting matrix 801 is programmed with a hybrid matrix representation of an initial simple constrained optimization problem and an objective-constrained optimization problem. The hybrid matrix representation may include a mixture of a Hamiltonian associated with a simple objective-constrained optimization problem and a Hamiltonian associated with an objective-constrained optimization problem. The Hopfield network system 800 may be programmed with the hybrid Hopfield network Hamiltonian to determine a solution to the objective-constrained optimization problem. The Hopfield network system iterates until it converges to a solution.

[0077] Fig. 9 is an illustration of a Hopfield network system 900 that uses a DPE architecture to implement bit slicing during a Hopfield network process according to one or more implementations of the present disclosure. In particular, the system shown in Fig. 9 illustrated implementation a digital processor 901 (e.g. a weighting programming unit which is in Fig. 2 and Fig. 6 is shown separately) and a DPE. In one implementation, the illustrated Hopfield network system 900 may be used to "coarse-tune" a solution for a desired constrained optimization, and in other implementations, "fine-tune" may be used to further optimize solutions obtained by a Hopfield network on a DPE architecture.

[0078] In some implementations, using bit slicing involves "splitting the bits" of the simple problem's Hamiltonian matrix into X matrices associated with a least-significant bit and a most-significant bit. In some implementations, the Hamiltonian matrices for the most-significant bit and the low-significant bits are created for both simple and objective-constrained optimization problems.

[0079] Furthermore, bit slicing is used by "splitting the bits" of the Hamiltonian matrix of the objective-constrained optimization problem into Y matrices from a least significant bit to a most significant bit. In some implementations, the Hamiltonian matrices for the most significant bit and the low-significant bits are created for both simple and objective-constrained optimization problems.

[0080] For example, to determine a solution to an objective-constrained optimization problem, the objective problem can be encoded into a Hamiltonian matrix of the Hopfield network. Furthermore, a simple problem with a known solution can also be encoded into a Hamiltonian matrix. Bit slicing can be introduced to divide the respective Hamiltonian matrices into two or more matrices.

[0081] In some implementations, a solution is determined for the most significant bit (MSB) of an initial simple problem. A weight matrix of a DPE can be reprogrammed via a weight programming unit by adding a fraction of the bits of a constrained optimization problem. The Hopfield network system can then be used for energy minimization, after which the weight matrix is ​​reprogrammed with a larger fraction of the objective-constrained optimization problem with greater bit precision. Accordingly, a weight matrix programming sequence in one case could be represented as follows: HO=HO H1=2H0MSB H2=(1−1 / x)*(2nH0MSB+2N−1H0MSB−1)+(1 / x)*(2nHPMSB) H3=(1−2 / x)*(2nH0MSB+2N−1H0MSB−1+2N−1H0MSB−2)+(2 / x)*(2nHPMSB+2N−1H0MSB−1)… ………HX=HP

[0082] Where x = total number of steps performed; H0 is the Hamiltonian of a simple problem; Hp is the Hamiltonian of an objective-constrained optimization problem, H1...H X are the Hamiltonians used to program a weight matrix in each subsequent iteration.

[0083] Adiabatic annealing allows the Hopfield network system to neglect some of the low-order bits, since the probability of convergence to a solution may be higher even before the introduction of the full-precision matrices.

[0084] In one implementation, a Hamiltonian matrix is ​​created for a most significant bit associated with the simple problem, and another Hamiltonian matrix is ​​created for the least significant bits of an objective-constrained optimization problem. For example, if "1.2" represents a Hamiltonian associated with a simple problem, a Hamiltonian matrix can be created for the most significant bit (i.e., "1") and also for the least significant bits (i.e., "2"). In this example, the least significant bit is also the same as the least significant bit (i.e., "2").

[0085] It will be apparent to one of ordinary skill in the art that Hamiltonian matrices for the most significant bit, the least significant bits, and the least significant bit can be created for both the simple problem and an objective-constrained optimization problem. In one implementation, Hamiltonian matrices for the most significant bit and the least significant bit are created for both simple and objective-constrained optimization problems. In another implementation, the objective-constrained optimization problem encoded as a Hamiltonian matrix may include a first matrix containing a first half of the bits associated with the objective-constrained optimization problem and a second matrix containing a second half of the bits associated with the objective-constrained optimization problem.

[0086] In one implementation, a digital processor 901 may generate a weighting matrix (e.g., weighting matrix 202 in a Hopfield network 200 Fig. 2) program, with inputs from both the simple and objective-constrained optimization according to one or more Hamiltonian matrices associated with selected bits. For example, the digital processor 901 may receive as input the Hamiltonian matrices associated with the most significant bits of the simple problem and the objective-constrained optimization problem, as illustrated by the Hamiltonian matrix blocks 903, 904 of the Hopfield network system 902.

[0087] In some implementations, the filter unit 905 of the system 900 may filter the solutions filtered by the weighting matrix 202 ( Fig. 2) and the solution memory 906 can store convergence solutions (e.g. S n,n) to a constrained optimization problem filtered by the filter unit 905. Each iterative solution can be fed back (e.g., path 907) to the Hopfield network system 902 until the Hopfield network system 902 converges to a solution for each corresponding significant bit (e.g., MSB) and for all bits encoded as Hamiltonian matrices.

[0088] The Hopfield network system 900 may determine that it has converged to a solution by comparing a currently obtained solution with a previously obtained solution. In some implementations, the Hopfield network system 900 may not process every bit encoded as a Hamiltonian matrix if it determines that it has converged to a solution and further processing leads to diminishing results.

[0089] Fig. 10 is an illustration of an instance of a bit slicing unit used within a DPE architecture according to one or more implementations of the present disclosure. The instance of the bit slicing method used within a DPE architecture may be implemented by a unit 1011 within a Hopfield network 1000.

[0090] In some implementations, both a simple problem and an objective-constrained optimization problem can be encoded as Hamiltonian matrices. In one implementation, a set 1001 of Hamiltonian matrices associated with the simple problem is Hamiltonian matrices for a least-significant bit 1004 and for consecutive bits (e.g., least-significant bits 1002) up to the most-significant bit (Hamiltonian matrix 1003).

[0091] Likewise, a set 1005 of Hamiltonian matrices of the Hopfield network associated with the objective-constrained optimization problem contains Hamiltonian matrices for a least-significant bit 1008 and for consecutive bits (e.g., least-significant bits 1006) up to the most-significant bit (Hamiltonian matrix 1007). A digital processor 1010 can be used to program the Hamiltonian matrix of the Hopfield network to a weighting matrix 202 (e.g., Fig. 2).

[0092] In some implementations, the Hopfield network system 1000 may use a sequence clock 1009 to calculate the weights obtained from the weight matrix 202 (e.g. Fig. 2) or the weighting matrices 601, 602 (e.g. Fig. 6) are fed successively into the filter units 604. For example, the Hopfield network system 1000 can feed a weighted sum (α) into the filter units.

[0093] Fig. Figure 11A is an illustration of a Hopfield net Hamiltonian bit matrix 1100 associated with a simple problem. For example, a Hamiltonian associated with a simple problem might be '1.5.' A simple problem that can be represented with "1.5" could, for example, be a "next move" in a board game. In the implementation shown, the bit matrix 1100 stores an IEEE 754-bit format for 1.5 in one implementation. The bit matrix 1100 includes a sign bit 1103 (e.g., one bit), exponent bits 1104 (e.g., 8 bits), and significant bits 1105 (e.g., 23 bits).

[0094] Fig. Figure 11B is an illustration of a bit matrix 1101 of a most significant bit calculated using the Hamiltonian in conjunction with the simple problem of Fig. 11A. For example, the most significant bit associated with the simple problem is '1'. Bit matrix 1101 stores the IEEE 754-bit format for '1.0'. Bit matrix 1101 contains sign bit 1106 ('0'), exponent bits 1107, and significant bits (e.g., mantissa) 1109.

[0095] Fig. Figure 11C is an illustration of a bit matrix 1102 of low-order bits calculated using the Hamiltonian in conjunction with the simple problem of Fig. 11A. For example, the low-order bits associated with the simple problem are "0.5." Bit matrix 1102 stores the IEEE 754-bit format for '0.5'. Bit matrix 1102 contains sign bit 1110, exponent bits 1111, and significant bits 1112.

[0096] Fig. Figure 12 illustrates one way of applying adiabatic annealing and bit slicing to the simple problem. Fig. In particular, Figure 12 shows a model 1200 that demonstrates how adiabatic annealing can be applied. Model 1200 includes banks 1203 and 1204, which demonstrate that a solution to a simple problem (e.g., path 1201) can be determined, and then a solution to a more advanced problem (e.g., path 1202) can be more easily determined.

[0097] Fig. 13A is an illustration of a bit matrix 1300 of a Hamiltonian associated with an objective-constrained optimization problem. For example, a Hamiltonian associated with a complex objective-constrained optimization problem can be represented as '101.796875'. For example, an objective-constrained optimization problem that can be represented by '101.796875' could be a timetable for a train system in a large city. The bit matrix 1300 stores the IEEE 754-bit format for '1.5'. The bit matrix 1300 includes a sign bit 1303 (e.g., one bit), exponent bits 1304 (e.g., 8 bits), and significant bits 1305 (e.g., 23 bits).

[0098] Fig. Figure 13B is an illustration of a bit matrix 1301 of a most significant bit associated with the Hamiltonian associated with the objective-constrained optimization problem. The most significant bit associated with the complex problem is '101'. Bit matrix 1301 stores the IEEE 754-bit format for '101'. Bit matrix 1301 contains sign bit 1306, exponent bits 1307, and significant bits 1308.

[0099] Fig. Figure 13C is an illustration of a bit matrix 1302 of low-order bits associated with the Hamiltonian in the objective-constrained optimization problem. The low-order bits associated with the complex problem are, for example, '0.796875'. Bit matrix 1302 stores the IEEE 754-bit format for '0.796875'. Bit matrix 1302 contains sign bit 1308, exponent bit 1309, and significant bit 1310.

[0100] Fig. Figure 14 illustrates the application of adiabatic annealing and bit slicing for an objective-constrained optimization problem. In particular, Fig. 14 shows a model 1400 that demonstrates how adiabatic annealing can be used. Model 1400 includes 1401, 1402, which illustrates that solutions can be obtained for a number of complex problems (e.g., paths 1403-1409), so that a solution to the objective-constrained optimization problem can be more easily achieved.

[0101] Fig. Figure 15 is an illustration of a set 1500 of energy functions associated with the most significant bit associated with the Hamiltonian of the simple problem and the objective-constrained optimization problem. The energy function 1501 can be associated with a constrained optimization problem with a widely known or easily achievable solution associated with an optimal lowest energy level. The energy function 1501 can also be associated with an initial Hamiltonian (H0). The energy function 1501 represents a simple parabolic curve with a global minimum 1507, as shown by the presence of the energy particle 1513 in the optimal lowest energy state.In some implementations, the initial constrained optimization problem associated with energy function 1501 may not be associated with the objective constrained optimization problem, unlike the constrained optimization problems associated with energy functions 1502-1506, as described below.

[0102] In some implementations, the initial constrained optimization problem associated with the energy function 1501 may be encoded as a plurality of matrix representations and then mapped via the weight programming unit 201 into the weight matrix (e.g., the weight matrix 202 of Fig. 2) the Hopfield network system (e.g. the Hopfield network system 200 of Fig. 2) can be programmed. The Hopfield network system 200 can be used to determine an optimal solution to the constrained optimization problem associated with the energy function 1501 ( Fig. 15).

[0103] The energy function 1502 represents a parabolic curve 1508 associated with the most significant bit associated with an initial Hamiltonian (H0). Similarly, the energy function 1503 represents a parabolic curve 1509 associated with the third most significant bit (MSB-3) associated with an initial Hamiltonian.

[0104] The energy function 1504 represents a curve 1510 associated with an objective-constrained optimization problem (H P ). The curve 1510 has several local minima 1514-1516, 1518 and 1519. In addition, the curve 1510 has a global minimum 1517. To find a solution to the constrained optimization problem (H P ), we can first determine the most significant bits, which can be solved with the Hamiltonians of the objective-constrained optimization problem (H P ) are generated, and then the solutions for them are determined.

[0105] In the example shown, energy functions 1505, 1506 are the result of bit slicing, and adiabatic annealing can be used to determine a solution to the objective-constrained optimization problem. Energy function 1505 illustrates that an energy particle is located at a point 1520 along curve 1511. A Hopfield network system (e.g., Hopfield network system 200), as described herein, can be used to find the ground state (e.g., point 1521) corresponding to a best solution to a constrained optimization problem.

[0106] The energy function 1506 may be associated with a third factor of a most significant bit associated with the objective-constrained optimization problem (H P). As shown, the energy function 1506 has two local minima 1522, 1523 and a single global minimum 1524. It is shown that the energy function currently lies in the local minima 1522 along the curve 1512. A Hopfield network system (e.g., Hopfield network system 200), as described herein, can be used to find the global minimum 1524 of the energy function 1506.

[0107] Fig. Figure 16 is an illustration of a series of energy functions associated with a series of Hamiltonians obtained by bit slicing and adiabatic annealing. Fig. The set of energy functions shown in Figure 16 includes energy functions 1502, 1525, 1526, 1527, 1528, 1529, 1530, and 1504. In particular, energy function 1502 contains parabolic curve 1508, which is associated with the most important part of a simple problem. Next, energy function 1525 contains parabolic curve 1533, which represents the 100th Hamiltonian. Likewise, energy functions 1526-1530 contain curves 1534, 1535, 1536, 1508, and 1515, which represent the 200th, 300th, 400th, 500th, and 800th Hamiltonians, respectively.

[0108] In particular, the 800th Hamiltonian includes several local minima and a single global minimum 1532. It is noteworthy that an energy particle in the global minimum 1532 in Fig. 16. As described previously, adiabatic annealing allows the Hopfield network system to neglect some of the low-order bits, as there is a higher probability of leading to a solution of an objective-constrained optimization problem (H P ) to converge even before the matrices are introduced with full precision.

[0109] Fig. Figure 17 is an illustration of one way of implementing chaotic-assisted annealing according to an implementation of the present disclosure. In particular, energy function 1538 includes curve 1515, which has multiple local minima. Note that an energy function is present in local minima 1542, as shown in energy function 1538. As previously described, the usefulness of sequentially or slowly introducing a complex constrained optimization problem has been shown to significantly improve the probability of determining the global minimum corresponding to the best solution to the objective problem.

[0110] In addition to adiabatic annealing, as described here, stochastic noise or chaos can also be introduced into a Hopfield network system. In one implementation, stochastic noise or chaos (e.g., chaos-assisted annealing) is introduced into the Hopfield network system via intrinsic stochastic noise or chaos present in NbO2 memristors. In some implementations, rapid convergence may require a greater degree of chaos / stochasticity to facilitate navigation in the rapidly changing energy landscape. Alternatively, slower convergence may require a lesser degree of chaos / stochasticity.

[0111] Fig. 18 is a flowchart for a method 1800 for determining a solution to a constrained optimization process by implementing bit slicing and adiabatic annealing, according to one or more implementations of the present disclosure. The method 1800 may be implemented with the Fig. 10 and the system shown in Fig. 2 shown and described Hopfield network system can be implemented.

[0112] The method 1800 begins by encoding a problem of the objective-constrained optimization problem into a binary representation (block 1801). In some implementations, the binary representation includes a Hamiltonian representation of the objective-constrained optimization problem. Next, the method 1800 includes encoding a simple problem into a binary representation (block 1802). The method 1800 also includes partitioning the binary representation associated with the objective-constrained optimization into two or more bit matrices (block 1803). Furthermore, the method 1800 includes partitioning the binary representation associated with the simple problem into two or more bit matrices (block 1804).

[0113] Furthermore, the method 1800 includes introducing Hamiltonian matrices into a Hopfield network, each of which is a combination of the two or more bit matrices associated with the objective-constrained optimization problem and the simple problem starting with the most significant bit of each of the two or more matrices, such that each successive Hamiltonian matrix increases in convergence to the Hamiltonian matrix associated with the objective-constrained optimization problem (block 1805). In some implementations, the Hamiltonian matrices are introduced into the Hopfield network in successive steps with appropriate weighting.

[0114] Furthermore, method 1800 includes using a sequence clock to regulate the manner in which each of the Hamiltonian matrices is combined with the two or more bit matrices associated with the objective-constrained optimization problem and the simple problem before the Hamiltonian matrices are introduced into the Hopfield network (block 1806). Method 1800 also includes applying adiabatic annealing when generating the Hamiltonian matrices and introducing them into the Hopfield network (block 1807). Method 1800 further includes injecting stochastic noise or chaos into the Hopfield network (block 1808).

[0115] Fig. 19 is an illustration of a Hopfield network system 1900 that uses a DPE architecture to generate solutions to constrained optimization problems with dynamic (e.g., modified) objectives, according to one or more implementations of the present disclosure. In particular, the Fig. The implementation shown in Figure 19 uses a digital processor 1901 (e.g., a weighting programming unit included in Fig. 2 and Fig. 6 is shown separately).

[0116] In one implementation, an objective-constrained optimization problem is extracted from its objective and constraints. For example, in media broadcasting (e.g., television programming), an objective might be to deliver media with a quality within a certain range. A Hopfield network Hamiltonian matrix can be constructed for the objective of the objective-constrained optimization problem and the constraints of that problem. Furthermore, a Hopfield network Hamiltonian matrix can be constructed for a simple problem with a known solution.

[0117] In one implementation, a digital processor 1901 may program a weighting unit with the encoded Hopfield network Hamiltonian 1905 of the simple problem and then program the encoded Hopfield network Hamiltonian with the initial objective 1906 and constraints 1908. The digital processor 1901 may be provided with a data stream indicating that the constraints 1908 of the objective-constrained optimization problem have changed (e.g., a decrease in available bandwidth). In one implementation, the starting point for the Hopfield network process is the encoded Hopfield network Hamiltonian of the simple problem.

[0118] In some implementations, the filter unit 1902 of the Hopfield network system 1900 may filter the solutions filtered by the weight matrix 202 ( Fig. 2) and the solution memory 1903 can store convergence solutions (e.g. S n,n) to a constrained optimization problem filtered by the filter unit 1902.

[0119] In the event that the constraints 1907 have changed, the new constraints 1907 are encoded as a Hamiltonian matrix of the Hopfield network and fed into the Hopfield network system 1900 by the digital processor 1901. In one implementation, the starting point for the Hopfield network process is the encoded Hopfield network Hamiltonian matrix for the optimal solution generated for the previous objective-constrained optimization problem with the original objectives and constraints. Accordingly, the Hopfield network system 1900 can continue to update the "starting point" for any subsequent constraint change. Furthermore, the Fig. 19 may use adiabatic annealing, bit slicing, or simulated annealing to improve the ability of the Hopfield network system 1904 to effectively and / or efficiently converge to optimal solutions for objective-constrained optimization problems.

[0120] Fig. 20 is an illustration of a Hopfield network system 2000 that uses a DPE architecture to generate solutions to constrained optimization problems with dynamic objectives 2007 (e.g., Hp(O')) and constraints 2008 (e.g., Hp(C')) according to one or more implementations of the present disclosure. The Fig. The Hopfield network system 2000 shown in Figure 20 can be used with the Fig. 19. A digital processor 2001 may receive as input a data stream 2003, possibly associated with an objective-constrained optimization problem. In some implementations, the objective-constrained optimization problem may have dynamic objectives 2007 and one or more dynamic constraints 2008, each expressed as a Hamiltonian matrix of the Hopfield network. In particular, the dynamic objectives 2007 and the dynamic constraints 2008 may change dynamically depending on the requirements associated with the objective-constrained optimization problem.

[0121] In the implementation shown, a Hopfield network Hamiltonian matrix associated with a simple problem 2006 can be mapped to a weight matrix (e.g., weight matrix 202 - Fig. 2) of the Hopfield network system 2000. Each of the Hopfield network's encoded Hamiltonian matrices, programmed to a weight matrix, can be used to determine a solution for the objective-constrained optimization process according to a method described herein. The Hopfield network system can be executed sequentially by applying Kirchhoff's current law to sum the solutions determined for the simple problem and an objective (expressed as a Hopfield network Hamiltonian matrix). The sum can be sent to filters, as discussed with respect to other implementations of the Hopfield network system.

[0122] In one implementation, a digital processor 2001 may program a weighting unit with the encoded Hopfield network Hamiltonian matrix 2006 of the simple problem and then program the encoded Hopfield network Hamiltonian matrix with the dynamic objectives 2007 and constraints 2008. The digital processor 2001 may be supplied with a data stream that may indicate that the dynamic constraints 2008 of the objective-constrained optimization problem have changed (e.g., a decrease in available bandwidth). In one implementation, the starting point for the Hopfield network process is the encoded Hopfield network Hamiltonian matrix of the simple problem.

[0123] In some implementations, the filter unit 2009 of the Hopfield network system 2000 may filter the solutions filtered by the weighting matrix 202 ( Fig. 2) and the solution memory 2010 can store convergence solutions (e.g. S n,n) to a constrained optimization problem filtered by the filter unit 2009.

[0124] In the event that the dynamic constraints 2008 change, the new constraints are encoded as a Hopfield network Hamiltonian matrix and fed by the digital processor 2001 into the Hopfield network system 2000. In one implementation, the starting point for the Hopfield network process is the encoded Hopfield network Hamiltonian matrix for the optimal solution generated for the previous objective-constrained optimization problem with the original objectives and constraints. Accordingly, the Hopfield network system 2000 can continue to update the "starting point" for any subsequent constraint change. Furthermore, the Fig. 20 may use adiabatic annealing, bit slicing, or simulated annealing to improve the ability of the Hopfield network system 2000 to effectively and / or efficiently converge to optimal solutions to objective-constrained optimization problems.

[0125] Fig. 21 is an illustration of a Hopfield network system 2100 that uses multiple DPE architectures 2106-2108 to obtain solutions to an objective-constrained optimization problem with dynamic constraints, according to one or more implementations of the present disclosure. In one implementation, the DPE architectures 2106-2108 receive Hamiltonian functions as input 2101, 2104, 2105 associated with a simple problem, with objectives for an objective-constrained optimization problem, and with constraints for an objective-constrained optimization problem, respectively. As shown in Fig. 21, the digital processor 2102 provides the Hamiltonian functions as input 2104, 2105 for the objectives and constraints of an objective-constrained optimization problem.

[0126] A first summing unit 2103 may accept as input the solution determined for a simple problem and the solution to the objectives associated with an objective-constrained optimization problem obtained by DPE 2106 and DPE 2107. In particular, DPE 2106 and DPE 2107 may use adiabatic annealing. In one implementation, the first summing unit 2103 may use Kirchhoff's current law to generate the sum of the received inputs. The calculated sum may be sent to the second summing unit 2112 after being passed through a time-triggered gate 2110.

[0127] Likewise, the solution determined for the constraints associated with the objective-constrained optimization problem may be sent to the second summing unit 2112 after passing through a time-triggered gate 2111. The second summing unit 2112 may also use Kirchhoff's current law to generate the sum of the received input. The sum may be sent to filters, as discussed with respect to other implementations of the Hopfield network system.

[0128] Fig. 22 is an illustration of a Hopfield network system 2200 that uses multiple DPE architectures 2206-2208 to obtain solutions for objective-constrained optimization with dynamic objectives and constraints, according to one or more implementations of the present disclosure. In one implementation, DPEs 2206 receive Hamiltonians 2201 associated with a simple problem, objectives to an objective-constrained optimization problem, and constraints to an objective-constrained optimization problem. In one implementation, DPEs 2206 may consist of one or more (e.g., three) dot product engines. DPE 2207 may receive Hamiltonians associated with dynamic objectives 2204 to an objective-constrained optimization problem, and DPE 2208 may receive Hamiltonians associated with dynamic constraints 2205 to an objective-constrained optimization problem.

[0129] For example, in television broadcasts, objectives can change in the sense that advertising can be introduced either exclusively or alongside content, which may require a change in objectives to accommodate larger revenues within a given bandwidth. Likewise, constraints can change. For example, the size of each channel changes dynamically. For example, a video feed of a newscast may consume minimal bandwidth, while a sports feed consumes more.

[0130] Furthermore, the digital processor 2202 provides the Hamiltonian functions associated with the dynamic objectives and constraints 2204, 2205 associated with the objective-constrained optimization problem. The digital processor 2202 can be reprogrammed according to the new objectives and constraints associated with the objective-constrained optimization problem. For example, the Hopfield network system 2200 can monitor changes and updates to the objectives and constraints 2204, 2205 in real time via an incoming data stream. In particular, the Hopfield network system 2200 feeds the newly computed problem instance (e.g., Hp(O') + Hp(C')) as a starting point for the incoming changes to the objective-constrained optimization problem. Accordingly, this implementation of the present disclosure can use adiabatic annealing to generate solutions for the modified instances (e.g.,based on dynamic objectives and constraints) by starting from a previously determined solution.

[0131] A summing unit 2203 may accept as input the solution for a simple problem obtained from DPEs 2206, the objectives for an objective-constrained optimization problem, and the constraints for an objective-constrained optimization problem, after passing through a timed gate 2210. The summing unit 2203 may also accept as input the solution to the dynamic objectives associated with the objective-constrained optimization problem, after passing through a timed gate 2209. Finally, the summing unit 2203 may also accept as input the solution to the dynamic constraints associated with the objective-constrained optimization problem, which it receives from the DPE 2208, after passing through a timed gate 2211.

[0132] Fig. 23 is a flowchart of another method 2300 for determining a solution for a constrained optimization process. The method 2300 may be implemented with the Fig. 22 shown Hopfield network system 2200 and the one in Fig. 2. The method 2300 begins by encoding a simple known problem into a Hopfield network Hamiltonian matrix (block 2301) and encoding an objective-constrained optimization problem into a Hopfield network Hamiltonian matrix (block 2302). Furthermore, the method includes extracting objectives (Hp(O)) and constraints (Hp(C)) of the objective-constrained optimization problem and encoding the objective and constraints into Hopfield network Hamiltonian matrices (block 2303).

[0133] Additionally, method 2300 includes introducing Hamiltonian matrices associated with the simple problem, the objectives (Hp(O)), and the constraints (Hp(C)) into a Hopfield network (block 2304). Next, method 2300 proceeds by extracting modified constraints (Hp(C')) and modified objectives (Hp(O')) from an input data stream (block 2305) and reprogramming the memristor DPE system with the modified constraint (Hp(C')) and modified objectives (Hp(O')) Hopfield network Hamiltonian matrix (block 2306).

[0134] The method 2300 also includes informing the filters within the Hopfield network about the modified constraint (Hp(C')) and the modified targets (Hp(O')) so that the filters can perform simulated annealing and / or adiabatic annealing. Therefore, the method illustrated in method 2300 can use adiabatic annealing, bit slicing, or simulated annealing to improve the capability of the Hopfield network system 2200 ( Fig. 22) to improve the ability to effectively and / or efficiently converge to optimal solutions for objective-constrained optimization problems.

[0135] In the foregoing description, specific nomenclature has been used for purposes of explanation in order to provide a thorough understanding of the disclosure. However, it will be apparent to one skilled in the art that the specific details are not required to practice the systems and methods described herein. The foregoing descriptions of specific examples are provided for purposes of illustration and description; they are not intended to be exhaustive or to limit this disclosure to the precise forms described. Of course, many modifications and variations are possible in light of the above teachings. The examples are shown and described to best explain the principles of this disclosure and practical applications so that others skilled in the art may best utilize this disclosure and various examples with various modifications as suited to the particular use contemplated.It is intended that the scope of this disclosure be defined by the claims listed below and their equivalents.

Claims

[1] An accelerator device comprising: a first memristor crossbar array having a plurality of non-volatile memory elements, each non-volatile memory element comprising a two-terminal memory element for generating a solution to a coded matrix representation of a constrained optimization problem; a filter unit (204, 603) for receiving and filtering solutions generated from the plurality of non-volatile memory elements; and a programming unit (201) comprising dedicated hardware for iteratively writing into the plurality of non-volatile memory elements a coded matrix representation of a plurality of coded matrix representations associated with the constrained optimization problem upon each reprogramming of the first memristor crossbar array, wherein the plurality of coded matrix representations are arranged such that the convergence to the coded matrix representation of the constrained optimization problem increases, where the plurality of coded matrix representations are each unique Hamiltonian functions of a Hopfield network associated with the constrained optimization problem, and wherein, during the use of a Hopfield network associated with the Hamiltonian functions of the Hopfield network, stochastic noise is injected comprising a current pulse between 50 and 150 µA induced for about 5 µs to about 50 µs. [2] The accelerator of claim 1, wherein the plurality of coded matrix representations comprise a Hamiltonian of the Hopfield network associated with the constrained optimization problem and the plurality of Hamiltonians of the Hopfield network each being fractions of the Hamiltonian of the Hopfield network associated with the constrained optimization problem. [3] The accelerator of claim 1, wherein the plurality of non-volatile memory elements comprise non-linear resistors, phase change memories, and / or spin torque transfer random access memories. [4] The accelerator of claim 1, wherein an initially coded matrix representation of the plurality of coded matrix representations associated with the constrained optimization problem is associated with an energy function having a single local minimum. [5] The accelerator according to claim 1, further comprising a solution storage (205, 604) for storing the filtered solutions produced by the filter unit. [6] The accelerator according to claim 5, further comprising a comparator for comparing the filtered solutions stored in the solution memory with a solution previously filtered from the filter unit. [7] The accelerator of claim 1, further comprising: a solution storage (604) and a second memristor crossbar array coupled to the filter unit and the solution memory. [8] The acceleration device of claim 7, further comprising a weighting amplifier (609) coupled to the first memristor crossbar array and the second memristor crossbar array, the weighting amplifier generating a weighted sum of the solution received from the first memristor crossbar array and the second memristor crossbar array. [9] The accelerator of claim 8, wherein the solution memory is for storing solutions generated by the filter unit, and transmission lines (608) coupled to the second memristor crossbar array, the transmission lines being for sending the solutions generated by the filter unit to the second memristor crossbar array. [10] The accelerator of claim 1, wherein the programming unit comprises a digital-to-analog converter (DAC) for converting a digital representation of the plurality of coded matrix representations into analog signals and an analog-to-digital converter (ADC) for converting an analog representation of the solution of the constrained optimization problem into digital signals. [11] The accelerator of claim 1, wherein the programming unit further comprises dedicated hardware for writing a goal-constrained optimization problem to the plurality of non-volatile memory elements, wherein the goal-constrained optimization problem is not related to the constrained optimization problem. [12] A non-transitory computer-readable medium (502) having stored thereon computer-executable instructions that, when executed by one or more processing units (501), cause the one or more processing units to: Programming a weight matrix of a Hopfield network with a first coded matrix representation of an initial constrained optimization problem; Using the Hopfield network to determine a solution to the initial constrained optimization problem; Encoding an objective-constrained optimization problem into a second coded matrix representation, wherein the objective-constrained optimization problem is unrelated to the initial constrained optimization problem; Encoding a plurality of constrained optimization problems into a plurality of coded matrix representations, each coded matrix representation being a combination of the first coded matrix representation and the second coded matrix representation, the plurality of coded matrix representations sequentially increasing in convergence to the second coded matrix representation of the objective-constrained optimization problem; and iteratively reprogramming the weight matrix of the Hopfield network with the plurality of coded matrix representations, comprising: sequentially reprogramming the weight matrix of the Hopfield network with one of the plurality of coded matrix representations; Injecting stochastic noise comprising a current pulse between 50 and 150 µA induced for about 5 µs to about 50 µs; and Using the Hopfield network with the help of stochastic noise to determine a solution for the coded matrix representation currently programmed in the Hopfield network. [13] The non-transitory computer-readable medium of claim 12, wherein the computer-executable instructions, when executed by one or more processing units, further cause the one or more processing units to: Bit slicing of the majority of encoded matrix representations. [14] The non-transitory computer-readable medium of claim 12, wherein the stochastic noise is injected during the deployment of the Hopfield network to determine the solution for the coded matrix representation currently programmed in the Hopfield network. [15] The non-transitory computer-readable medium of claim 14, wherein injecting stochastic noise during deployment of the Hopfield network comprises injecting a first level of stochastic noise followed by injecting a second level of stochastic noise of a lesser degree than the first level of stochastic noise. [16] The non-transitory computer-readable medium of claim 12, wherein the objective-constrained optimization problem is a non-deterministic polynomial-time hardness class of decision problems. [17] A method comprising: Encoding an initial constrained optimization problem into a first coded matrix representation by an accelerator; Encoding an objective-constrained optimization problem into a second coded matrix representation; generating a weighted sum of the first coded matrix representation and the second coded matrix representation; Programming a weighting matrix (202, 601, 602) of a Hopfield network with the weighted sum of the first coded matrix representation and the second coded matrix representation; and Use of the Hopfield network to determine a solution to the target constrained optimization problem by the accelerator, wherein during the use of the Hopfield network, stochastic noise is injected comprising a current pulse between 50 and 150 µA induced for about 5 µs to about 50 µs. [18] The method of claim 17, wherein generating the first coded matrix representation of the initial constrained optimization problem comprises generating digital signals and converting the digital signals to analog signals. [19] The method of claim 17, wherein the weighted sum of the first coded matrix representation and the second coded matrix representation is generated by a weighting amplifier (609). [20] The method of claim 17, wherein the objective-constrained optimization problem is unrelated to the initial constrained optimization problem.