Noise regulated stochastic SNN to solve quadratic unconstrained binary optimization problems
Patent Information
- Application Number
- PCT/IB2025/053169
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2025-03-26
- Publication Date
- 2026-10-01
Smart Images

Figure IB2025053169_01102026_PF_FP_ABST
Abstract
Description
Atly. Docket No.: P111894WO01NOISE REGULATED STOCHASTIC SNN TO SOLVE QUADRATIC UNCONSTRAINED BINARY OPTIMIZATION PROBLEMSTECHNICAL FIELD
[0001] Embodiments of the invention relate to the field of stochastic spiking neural networks (SSNNs); and more specifically, to using SSNNs to solve quadratic unconstrained binary optimization (QUBO) problems.BACKGROUND
[0002] With valid parameters an SSNN will, due to the continuous sampling of the energy function, find a solution given enough time. It is therefore desirable to find a parameter tuner that can optimize an SSNN by finding parameters that yield valid and relatively good solutions within an allotted time. Successful tuning of SSNNs typically requires: 1) robustness to the results’ inherent stochasticity; 2) resourcefulness with evaluated results; and 3) improved local exploitation.
[0003] Spiking neuromorphic hardware features parallelism, co-location of processing and memory at the neurons and synapses, scalability, temporally sparse event-driven computation, and stochasticity. Spiking neuromorphic hardware typically implements: 1) a fixed-function leaky integrate and fire neuron model; or 2) a more complex and configurable neuron model with on-chip learning. The neurons are often implemented on in-order cores or with special processing units that are attached to SRAM in a distributed manner to store synapses. These neuromorphic cores are typically connected using a network-on-chip (NoC) to efficiently exchange spike messages.
[0004] One approach is to hand-construct a stochastic spiking neural network (SSNN) for a specific optimization problem. Unfortunately, a manually tuned SSNN is prone to get stuck in the local minima.
[0005] Another approach is to transform the underlying integer linear problem to a QUBO formalism and mapping the resulting QUBO to a stochastic spiking neural network. A QUBO model can be written as:In this case Xi are binary decision variablesis a symmetric matrix of coefficients (also known as a QUBO matrix).Atty. Docket No.: P111894WO01
[0006] One way to use the QUBO approach and avoid the local minima is to use QUBO mappings with different leak values for the same QUBO matrix and run simulated annealing classically. Other techniques involve modifying the genetic algorithm and integrating tree-structured parzen estimation (TPE) into the bee colony algorithm. For instance, one technique is to use swarm intelligence on multiple coupled SNNs with a LIF spiking neuron model to solve the QUBO problem collaboratively. The multiple SNNs are operated in parallel with the same dynamics but different initial statuses that are determined by the decaying noise term. The current best solution is kept in memory and compared to every batch of solutions at each step. When a new best solution is found, all presynaptic inputs of SNNs in the next time step are overwritten by this new best solution and the decay of noise term will be reset.SUMMARY
[0007] Techniques described herein relate to running a parameter search for a stochastic spiking neural network (SSNN) based quadratic unconstrained binary optimization (QUBO) solver. In some embodiments, during each cycle of a series of cycles, some operations are performed. One such operation is running the SSNN until each of a number of decision neurons in the SSNN settle on a respective current state for the cycle. Each of the respective current states is based at least on a respective random noise value and a respective noise excitation value for the cycle. A current SSNN state for the cycle is based on the respective current states.Another such operation is adjusting an annealing temperature and / or the respective noise excitation value of a set of the number of decision neurons based on one or more of: 1) whether there is an improvement in energy of the current SSNN state relative to a currently selected SSNN state; 2) a decision to accept the current SSNN state anyway based on the annealing temperature; and 3) a threshold number of consecutive cycles without a condition being met. The set of the number of decision neurons respectively determine how to adjust their respective noise excitation values responsive to receipt of respective noise excitation spikes. Also, when there is not the improvement, the annealing temperature is lowered or reset based on the decision to accept and the threshold number. When a set of one or more criteria is met that indicates an end to the parameter search, the current SSNN state is stored.BRIEF DESCRIPTION OF THE DRAWINGS
[0008] The invention may best be understood by referring to the following description and accompanying drawings that are used to illustrate embodiments of the invention. In the drawings:Atty. Docket No.: P111894WO01
[0009] Figure 1 A is a flowchart of a method for configuring and running a parameter search for a noise regulated-stochastic spiking neural network (NR-SSNN) based quadratic unconstrained binary optimization (QUBO) solver according to some embodiments.
[0010] Figure IB is a flow diagram for a block in figure 1 A according to some embodiments.
[0011] Figure 2A is a block diagram illustrating a system according to some embodiments.
[0012] Figure 2B is a block diagram illustrating a neuromorphic core according to some embodiments.
[0013] Figure 2C is a block diagram illustrating an energy computation unit according to some embodiments.
[0014] Figure 2D is a logical block diagram illustrating an NR-SSNN according to some embodiments.
[0015] Figure 3 illustrates a flow diagram for some alternative embodiments.
[0016] Figure 4A illustrates a first part of pseudo code for the monitor according to some embodiments.
[0017] Figure 4B illustrates a second part of pseudo code for the monitor according to some embodiments.
[0018] Figure 4C illustrates a first part of pseudo code for the decision neurons according to some embodiments.
[0019] Figure 4D illustrates a second part of pseudo code for the decision neurons according to some embodiments.
[0020] Figure 5 shows an example of a communication system in accordance with some embodiments.
[0021] Figure 6 is another example of a communication system according to some embodiments.
[0022] Figure 7 shows a wireless device, which may be configured to operate in communication system of Figure 5 or in communication system of Figure 6.
[0023] Figure 8 shows a network node in accordance with some embodiments.
[0024] Figure 9 is a block diagram illustrating a virtualization environment in which functions implemented by some embodiments may be virtualized.
[0025] Figure 10 is a convergence plot for the tuning of a first problem instance.
[0026] Figure 11 is a convergence plot for the tuning of a second problem instance.
[0027] Figure 12 is a convergence plot for the tuning of a third problem instance.DETAILED DESCRIPTIONOverviewAtty. Docket No.: P111894WO01
[0028] The following description describes the use of a noise regulated-SSNN (NR-SSNN) to solve QUBO problems. Noise regulation in SSNNs allows for a relatively optimal exploration of the space of configurations, looking for the satisfiability of all the constraints; if applied discontinuously, it can also force the system to leap to a new random configuration effectively causing a restart. Embodiments use of noise regulation with an SSNN representing a QUBO problem to perform a parameter search to solve that QUBO problem.
[0029] In some embodiments, a “run” of the SSNN will involve a number of “cycles,” where during each cycle the decision neurons will settle on a current state, and the collection of these states comprise a current SSNN state (sometime referred to as a current solution) for which an energy will be calculated based on a QUBO matrix. A monitor maintains a currently selected SSNN state and an energy computed for that currently selected SSNN state (which will be initialized for a run of the SSNN; will be a previous SSNN state (that is, an SSNN state for a previous cycle) based on a previous state of the decision neurons and the QUBO matrix; and sometimes referred to as a previous best solution). The monitor computes the energy of a current SSNN state (an SSNN state for a current cycle) based on the current state of decision neurons and the QUBO matrix, and then determines whether the current SSNN state is an improvement over the currently selected SSNN state (e.g., the energy is lower; whether the current solution is better than the previous best solution). If the energy of the current SSNN state is an improvement, the monitor identifies the decision neurons whose states differ between the current SSNN state and the currently selected SSNN state, sends those decision neurons a noise indicator spike indicating the noise is to be adjusted, and stores the current SSNN state and its energy as the currently selected SSNN state and its energy (put another way, the current solution replaces the previous best solution). Otherwise, based on an acceptance probability, the monitor will sometimes accept the current solution (sometimes referred as to a worse solution) anyway (stores the current SSNN state and its energy as the currently selected SSNN state and its energy). Otherwise, the monitor will: 1) send the noise indicator spike to all the decision neurons indicating noise is to be adjusted; and 2) reset an annealing temperature if there have been a threshold number of consecutive SSNN states (consecutive cycles) without finding a better SSNN state. While in some embodiments the annealing temperature is lowered each cycle the current SSNN state is not an improvement, in others it is lowered each cycle there is not an improvement and the annealing temperature is not reset. When the annealing temperature is lowered, in some embodiments it is lowered using exponential decay. When the anneal temperature is lowered the probability of accepting the worse current solution decreases, and when reset the probability increases.Atty. Docket No.: P111894WO01
[0030] In some embodiments, even though the decision neurons operate asynchronously, the following terminology is used: 1) during each cycle (sometimes referred to as a “cycle time”), the decision neurons are allowed to settle for a “settling time,” and then compute their state based on the majority of spikes obtained during a “sampling time” (sometimes referred to as a sampling window); and 2) a “run” of the SSNN ends at the end of a “simulation time” which is based at least in part on a predetermined number of “cycles.” In such embodiments, each of the decision neurons separately tracks it “ticks” of time and reports its current state at the end of each of its “cycle time,” while the monitor determines the end of a cycle as being when all of the decision neurons have reported their current state for that cycle.
[0031] Each decision neuron maintains a previous state. Each decision neuron, upon receipt of a noise indicator spike, will decrease the noise into that decision neuron stochastically if its state has flipped from 0 to 1, and vice versa. In some embodiments, the adjustment value of the noise is drawn from a normal distribution with the current adjustment value as the mean and the given variance. Each decision neuron that flips its state updates the previous state as the current state and sends its current state to the monitor.
[0032] This approach is beneficial when the decision neurons for the SSNN are implemented using spiking neuromorphic hardware because it improves the operation of a system as compared to systems that rely more on non-neuromorphic hardware (e.g., using the von Neumann architecture, such as a central processing unit (CPU) and external memory). For instance, embodiments using spikes (sometimes referred to as noise excitation spikes) to signal decision neurons to themselves determine how to update their noise excitation values is less expensive than having von Neumann architecture hardware writing new parameter configurations (e.g., new noise excitation values or noise values) to the spiking neuromorphic hardware (that is, writing new noise excitation or noise values from von Neumann architecture hardware to the spiking neuromorphic hardware is relatively expensive).
[0033] Further, the previously described approach of using swarm intelligence based on multiple SSNNs requires: 1) Matrix multiplication per SSNN, which is relatively computing cycle and power consumption intensive; and 2) the use of spiking neuromorphic compute for the multiple SSNNs. In contrast, embodiments described herein may use a single SSNN, and thus avoid or reduce the amount of required vector and matrix multiplication and use less spiking neuromorphic compute.
[0034] Often, when spiking neuromorphic hardware is used, it must have an external host implemented using von Neumann architecture. As described in more detail later herein, the monitor is implemented in such an external host while the decision neurons are implemented in the spiking neuromorphic hardware. However, other embodiments implement the monitor andAtty. Docket No.: P111894WO01the decision neurons on the spiking neuromorphic hardware. For example, some spiking neuromorphic hardware includes a spiking neuromorphic architecture part and an von Neumann architecture part, and the monitor is implemented “onboard” the spiking neuromorphic hardware in the von Neumann architecture part. Such embodiments improve the operation of the system because they require less or no communication between an external host and the spiking neuromorphic hardware. As another example, some embodiments as described below (those with hardware added to the spiking neuromorphic hardware to facilitate implementing more or all the monitor in the spiking neuromorphic architecture part) may use less or none of the von Neumann Architecture part to implement the monitor. Such embodiments improve the operation of the system because they require less or no communication between the spiking neuromorphic architecture part and any von Neumann Architecture part.
[0035] In some embodiments, the monitor also determines when and how to adjust the voltage threshold of the decision neurons. In some such embodiments: 1) the when is at the end of each “time window” (sometime referred to as a “round”), where each “time window” is a predetermined number of “cycles;” and 2) the how is to increase their voltage threshold by a given percentage when most of the decision neurons are spiking at the end of the time window, and decrease their voltage threshold by the given percentage when most of the decision neurons are not spiking at the end of the time window. In some such embodiments, the monitor sends voltage threshold spikes to the decision neurons to signal when and how to adjust their voltage threshold. Embodiments that use spikes (sometimes referred to as voltage threshold adjustment spikes) to signal decision neurons instructing them whether and how to adjust their voltage thresholds is less expensive than having von Neumann architecture hardware write new parameter configurations (e.g., new voltage threshold values) to the spiking neuromorphic hardware (that is, writing new noise excitation or noise values from von Neumann architecture hardware to the spiking neuromorphic hardware is relatively expensive).Exemplary Flow Diagrams
[0036] Figure 1 A is a flowchart of a method for configuring and running a parameter search for a noise regulated-stochastic spiking neural network (NR-SSNN) based quadratic unconstrained binary optimization (QUBO) solver according to some embodiments. As shown in block 102, the noise-regulated SSNN (NR-SSNN) is constructed for a QUBO matrix. In some embodiments, this includes determining a set of initial values and a set of hyperparameters. In some embodiments, the set of initial values include the QUBO matrix, a noise excitation valueWf’i , a leakage value, and a voltage threshold value, while the set of hyperparameters: include: 1) spiking probability for noise P"-i (also referred to as spike_prob); 2) variance of normal distribution for adjustment of the noise excitation values; 3) percentage increase / decrease ofAtty. Docket No.: P111894WO01voltage threshold; 4) settling time allowing the dynamics of NR-SSNN to settle after the noise adjustment; 5) sampling window (also referred to as the sampling time) to compute the state of decision neurons; 6) time window (also known as a round) for adjusting the voltage thresholds of the decision neurons; 7) simulation time for solving the QUBO using the NR-SSNN; 8) percentage decrease in annealing temperature; 9) reset annealing temperature threshold; and 10) initial annealing temperature. Of the set of hyperparameters, 1-5 are for the decision neurons and 6-10 are for the monitor. At the conclusion of block 102, the NR-SSNN is started and will run until a set of one or more criteria is met (e.g., reaching the simulation time). From block 102, control passes to block 104. While some embodiments use the above hyperparameters, other embodiments treat one or more as parameters (e.g., while the initial annealing temperature may be a hyperparameter previously determined to find good solutions, alternative embodiments may treat the initial annealing temperature as a parameter of the problem and iterating over different initial temperatures as part of the overall optimization).
[0037] Block 104 represents operations that are performed each cycle of a series of cycles. Block 104 includes blocks 106 and 108; control passes from block 104 to optional block 110.
[0038] Block 106 shows running the SSNN until each of a plurality of decision neurons in the SSNN settle on a respective current state (x =[xi- — >XN ]T) for the cycle. Each of the respective current states is based at least on a respective random noise value and a respective noise excitation value for the cycle. In some embodiments, noise is calculated according toni ~random noise (sometimes referred to as random noise). The current SSNN state for the cycle is based on the respective current states of the decision neurons. From block 106, control passes to block 108.
[0039] Decision neurons are coupled with each other with connections dictated by the QUBO matrix. In some embodiments, the current state of a decision neuron at the end of a cycle is an indication of its spiking pattern, and a decision neuron generates a spike each time the accumulation of injected noise and input from other decision neurons crosses the voltage threshold. For example, if there are 3 spikes within a sampling window of 10 time-ticks, the current state of the decision neuron would be set to 0; however, the state would be set to 1 if there were 6 spikes.
[0040] Block 108 shows adjusting an annealing temperature and / or the respective noise excitation value of a set of the plurality of decision neurons based on one or more of: 1) whether there is an improvement in energy of the current SSNN state (e.g., calculated asEcrelative to the energy (e.g.,Et) of a currently selected SSNN state; 2) a decision to accept the current SSNN state anyway based on the annealing temperature; and 3) a threshold number of consecutive cycles without a condition being met. Each of the set of the plurality of decisionAtty. Docket No.: P111894WO01neurons respectively determines how to adjust its respective noise excitation values responsive to receipt of respective noise excitation spikes. Also, when there is not the improvement, the annealing temperature is lowered or reset based on the decision to accept and the threshold number.
[0041] In some embodiments, the adjusting the respective noise excitation values include increasing or decreasing stochastically, by each of the set responsive to receipt of the respective noise excitation spike, the respective noise excitation value based on how the respective current state changed since an immediately preceding one of the series of cycles. Thus, this comparison of states is used to determine how to make (the direction of) the adjustment. For example, each decision neuron receiving a noise indicator spike decreases the noise stochastically if its state has flipped from 0 to 1 and vice versa. The adjustment value (the amount of adjustment) of the noise excitation value is drawn from a normal distribution with the current adjustment value as ., , .,zw,. / = N(it,cr), where u = w„the mean and the given variance (e.g.,Hi).
[0042] In some embodiments, the decision to accept the current SSNN state anyway means the algorithm will search for a good solution near the bad ones. However, with lowering the annealing temperature, the probability of jumping from one bad solution to another bad solution is lowered.
[0043] Optional block 110 shows adjusting respective voltage thresholds of the plurality of decision neurons when a last cycle of the series of cycles is reached. The respective current states of the plurality of decision neurons are also based on the respective voltage thresholds. Block 110 includes blocks 112, 114, and 116. From block 110, control passes to block 118.
[0044] In block 112, a respective set of one or more voltage threshold spikes is provided to each of the plurality of decision neurons. Control passes from block 110 to block 114.
[0045] Block 114 shows increasing or decreasing, by each of the plurality of decision neurons responsive to receipt of the respective set of voltage threshold adjustment spikes, the respective voltage threshold based on the respective set of one or more voltage threshold spikes. From block 114, control passes to block 116. While some embodiments use a set of two spikes to represent 3 possible states, other embodiments use a different encoding (e.g., sending a spike on two separate synapses; sending two spikes after a fixed time internal). Thus, another way to phrase this is that the decision neurons receive a voltage threshold adjustment indication.
[0046] In block 116, another of a series of rounds of the series of cycles is caused to be performed. Thus, if the last round of a series of rounds has not been reached, control passes back to block 104; otherwise to block 118.Atty. Docket No.: P111894WO01
[0047] Block 118 shows storing the current SSNN state when a set of one or more criteria is met that indicates an end to the parameter search. The stored SSNN state represents the solution to QUBO problem.
[0048] Figure IB is a flow diagram for block 108 according to some embodiments. Block 120 shows adjusting the respective noise excitation value of the set of the plurality of decision neurons when the cycle is of a first or second types. The cycle is of the first type when there is the improvement in energy, while the cycle is of the second type when the decision is made to accept the current SSNN state anyway. Block 120 includes blocks 122 and 124; control passes from block 120 to block 126.
[0049] Block 122 shows providing the respective noise excitation spike to each of the set of the plurality of decision neurons. If the cycle is of the first type, the set includes only those of the plurality of decision neurons that change states between the current SSNN state and the currently selected SSNN state. If the cycle is of the second type, the set includes all the plurality decision neurons. Control passes from block 122 to block 124.
[0050] Block 124 shows increasing or decreasing stochastically, by each of the set responsive to receipt of the respective noise excitation spike, the respective noise excitation value based on how the respective current neuron state changed since an immediately preceding one of the series of cycles. Control passes to block 126.
[0051] Block 126 shows adjusting the annealing temperature and / or the respective noise excitation value. Block 126 includes blocks 128 and 130.
[0052] Block 128 shows lowering the annealing temperature when the cycle is of the second type or a third type. The cycle of is the third type when the cycle is not of the first or second types and there has not been more than the threshold number of consecutive cycles without one in which the condition was met. The condition being that none of the consecutive cycles were of the first type.
[0053] Block 130 shows resetting the annealing temperature when the cycle is of a fourth type.
[0054] In an NR-SSNN, parameters include noise excitation values (and, in some embodiments, voltage thresholds) for the decision neurons. A parameter search is a search to identify parameters for the decision neurons. A parameter tuner performs a parameter search by adjusting the noise (including via the noise excitation values) (and, in some embodiments, the voltage thresholds) to steer the NR-SSNN to settle on a low energy state which corresponds to a solution for the QUBO optimization problem being solved. The current SSNN state (sometimes referend to as the configuration) comprises the current state of each decision neuron. As such, an SSNN with “n” decision neurons can have 2n possible configurations which are called the “space of configurations.” The stochastic dynamics of a spiking neural network with noise canAtty. Docket No.: P111894WO01be interpreted as search for network states with low energy. The spiking probability for noise determines the frequency of applying the noise adjustment (e.g., if spike_prob is 1, at each time tick; if random noise = 1, then spike excite is added to the membrane potential each time tick; if random noise is 0.1, then, spike excite is applied only 10% of the time ticks).Exemplary Block Diagrams
[0055] Figure 2A is a block diagram illustrating a system according to some embodiments. The system 200 includes: 1) spiking neuromorphic hardware 202 that includes a spiking neurom orphic architecture part 204 and optionally a von Neumann architecture part 210; and 2) optionally external von Neumann hardware 220 coupled with spiking neuromorphic hardware 202. Spiking neuromorphic architecture part 204 includes neuromorphic cores 206 coupled with a network on a chip 208, while the von Neumann architecture part 210 (when present) includes general purpose cores 212 coupled with a memory 214. The von Neumann architecture part 210 (when present) is coupled (e.g., through interconnects like PCIe, Ethernet, etc.) with spiking neuromorphic architecture part 204. The external von Neumann hardware 220 (when present) operates as a host 222, and in this role it: 1) runs a framework providing APIs and compilers for programming an SSNN on the spiking neuromorphic hardware 202; and / or 2) provides a runtime for low-level and system management. The external von Neumann hardware 220 includes processing circuity 224 coupled with a memory 226.
[0056] In some embodiments, general purpose cores 212 are optimized for spike-based communication and execute conventional C or Python code to assist with data I / O, network configuration, management, and monitoring. Also, in some embodiments spiking neuromorphic hardware 202 may support interfaces (e.g., one or more of 1000BASE-KX, 2500BASE-KX and lOGBase-KR Ethernet, GPIO, and both synchronous (SPI) and asynchronous (AER) handshaking protocols, etc.) for coupling with external von Neumann hardware 220. Also, in some embodiments spiking neuromorphic hardware 202 may include software and / or hardware to support encoding of input data from external von Neumann hardware 220 into spike messages, reducing the bandwidth required from the external interface and improving performance while reducing load on the von Neumann architecture part 210. Thus, text herein that refers to the monitor “sending” spikes to the decision neurons may refer to a monitor implemented on von Neumann architecture part 210 providing input data to an interface(s) of spiking neuromorphic hardware 202, where that input data is converted into spikes by hardware and / or software in the spiking neuromorphic hardware 202.
[0057] Figure 2B is a block diagram illustrating a neuromorphic core according to some embodiments. Figure 2B shows neuromorphic core 230 as an example of how some or all neuromorphic cores 206 may be implemented. Neuromorphic core 230 includes a synapse 231,Atty. Docket No.: P111894WO01a neuron 232, a memory 234, and communication interfaces 236 coupled with the network on a chip 208. Neuron 232 may be implemented to execute software (e.g., a program) written in an instruction set supported by that neuron, which instruction set may include instructions for bitwise operations, math operations, conditional branching, memory access, spike generation and probing. Thus, spiking neuromorphic architecture part 204 includes the following features; i) relatively massive parallelism; ii) co-location of processing and memory at the neurons and synapses; iii) inherent scalability; iv) temporally sparse event-driven computation; and v) stochasticity.
[0058] Figure 2C is a block diagram illustrating an energy computation unit according to some embodiments. Energy computation unit 238 illustrates hardware that may optionally be implemented in spiking neuromorphic architecture part 204. Energy computation unit 238 represents a computation-in-memory based matrix vector multiplication unit.
[0059] Figures 2A-C illustrate a variety of possible hardware configurations for implementing an NR-SSNN according to some embodiments. For example, some of all the monitor may be implemented on external von Neumann hardware 220, von Neumann architecture part 210, and / or energy computation unit 238 (e.g., the energy computation). Each of the decision neurons may be implemented on one of neuromorphic cores 206. While figures 2A-C illustrate a variety of possible hardware configurations for implementing an NR-SSNN, these are by way of example and not limitation.
[0060] Figure 2D is a logical block diagram illustrating an NR-SSNN according to some embodiments. Figure 2D shows monitor 240 coupled with decision neurons (decision neuron 270A through decision neuron 270N, which are collectively referred to as decision neurons 270).
[0061] Current states 258 of the decision neurons 270 are provided to monitor 240, and monitor 240 provides noise excitation adjustment spikes 296 and optionally voltage threshold adjustment spikes 298 to decision neurons 270.
[0062] Monitor 240 includes an energy improvement determiner 260, probability based accept anyway determiner 262, annealing temperature adjuster 264, and voltage threshold adjustment determiner 266. While in some embodiments each of these is implemented in software stored in a memory (e.g., memory 214, memory 226, etc.) and executed by hardware (e.g., general purpose cores 212, processing circuity 224, etc.), in others some or all of each of these may be implemented in hardware (e.g., energy computation unit 238) or a combination of hardware and software. Monitor 240 also includes data 241 which is also stored in a memory and may include a current SSNN state 242, current energy 244, QUBO matrix 245, currently selected SSNN state 246, currently selected energy 248, annealing temperature 250, cycle count since improvement 252, threshold 254, and hyperparameters 256.Atty. Docket No.: P111894WO01
[0063] Energy improvement determiner 260 operates on current SSNN state 242 and QUBO matrix 245 to compute current energy 244; and then compares that with currently selected energy 248 to determine if current energy 244 is an improvement (e.g., is lower); and if so, replaces currently selected SSNN state 246 and currently selected energy 248 with current SSNN state 242 and current energy 244.
[0064] Probability based accept anyway determiner 262 operates on annealing temperature 250 to determine whether to accept current SSNN state 242 even though it is a worse solution; and if so, replaces currently selected SSNN state 246 and currently selected energy 248 with current SSNN state 242 and current energy 244.
[0065] Annealing temperature adjuster 264 operates on cycle count since improvement 252 and one of hyperparameters 256 (the reset annealing temperature threshold) to determine whether to lower or reset if there was no improvement. Lowering is based on one of hyperparameters 256 (the percentage decrease in annealing), while reset is based on one of hyperparameters 256 (the initial annealing temperature).
[0066] Voltage threshold adjustment determiner 266 (when present) operates on current cycle count, one of hyperparameters 256 (the time window for adjusting the voltage threshold of decision neurons), and current SSNN state 242 to determine when and how to adjust the voltage thresholds of the decision neurons 270.
[0067] Decision neuron 270A (which is representative of the other decision neurons 270) includes a current state determiner 290, noise excitation adjuster 292, and voltage threshold adjuster 295. While in some embodiments each of these is implemented in software stored in a memory (e.g., memory 234, etc.) and executed by hardware (e.g., synapse 231, neuron 232, and communication interfaces 236, etc.), in others some or all of each of these may be implemented in hardware or a combination of hardware and software. Decision neuron 270A also includes data 271 which is also stored in a memory and may include previous state 272, random noise value 274 (which is computed at each time tick for each decision neuron and used to excite or inhibit the decision neuron), noise excitation value 276, current state 278, voltage threshold 280, and hyperparameters 282.
[0068] Current state determiner 290 operates on random noise value 274, noise excitation value 276, and voltage threshold 280 to determine current state 278 based on one or more of hyperparameters 282 (namely, “cycle time” which is based on: 1) “settling time” to allow the dynamics of NR-SSNN to settle after the noise adjustment; and 2) “sampling window” (also referred to as “sampling time”) to compute the state of decision neurons); and then reports it to monitor 240 as part of current states 258.Atty. Docket No.: P111894WO01
[0069] Noise excitation adjuster 292 operates on previous state 272, current state 278, noise excitation value 276, and one of hyperparameters 256 (namely, variance of normal distribution for adjustment of the noise excitation values). Noise excitation adjuster 292 includes direction of stochastic adjustment determiner 294. Responsive to each of noise excitation adjustment spikes 296 received by noise excitation adjuster 292, direction of stochastic adjustment determiner 294 operates on previous state 272 and current state 278 to determine whether to increase or decrease the noise excitation value 276. Noise excitation adjuster 292 determines the amount of adjustment based on one of hyperparameters 256 (namely, variance of normal distribution for adjustment of the noise excitation values).
[0070] Responsive to each set of voltage threshold adjustment spikes 298 received by noise excitation adjustment spikes 296, noise excitation adjustment spikes 296 operates to adjust voltage threshold 280. The direction to adjust is based on the set of voltage threshold adjustment spikes received, while the amount is based on one of hyperparameters 256 (namely, percentage increase / decrease of voltage threshold).
[0071] Hyperparameters 282 includes 1) variance of normal distribution for adjustment of the noise excitation values; 2) percentage increase / decrease of voltage threshold; 3) settling time allowing the dynamics of NR-SSNN to settle after the noise adjustment; 4) sampling window (also referred to as the sampling time) to compute the state of decision neurons.
[0072] While figure 2D illustrates a logical representation of an NR-SSNN, alternative embodiments may use a different arrangement, number, or distribution of components.Flow Diagram for some Alternative Embodiments
[0073] Figure 3 illustrates a flow diagram for some alternative embodiments. In block 302, the stochastic spiking neural network (SSNN), which includes LIF-neurons injected with adjustable noise, is run. This marks the start of the simulation time. Control passes from block 300 to block 302.
[0074] As shown in block 302, multiple times during the simulation time the decision neurons are allowed to settle for the settling time and sampled in the sampling window. For each of the decision neurons, block 302 represents the start of a cycle. Control passes from block 302 to block 304.
[0075] Block 304 shows computing the state of the decision neurons based on the majority of spikes obtained in the sampling window and updating the reference time. Control passes from block 304 to block 306.
[0076] As shown in block 306, for each decision neuron that flips its state, update the previous state as the current state and each sends its current “decision” state to the monitor. Control passes from block 306 to block 308.Atty. Docket No.: P111894WO01
[0077] Block 308 shows that each decision neurons, upon receipt of a noise indicator spike, decreases the noise into the decision neuron stochastically if its state has flipped from 0 to 1 and vice versa. Each decision neuron stores a copy of its state computed for the immediately preceding the sampling window, and the “flipping” of state refers a change between the current state (the one computed for the current sampling window as compared to the one computer for the immediately preceding the sampling window). In some embodiments, the adjustment value of the noise is drawn from a normal distribution with the current adjustment value as the mean and the given variance. Control passes from block 308 to block 310.
[0078] Block 310 shows that each decision neuron, upon receive of a voltage threshold adjustment indication, increases the voltage threshold by the given increase and vice versa. For each of the decision neurons, block 310 represents the end of a cycle. Control passes from block 310 to block 320.
[0079] Block 320 represents the start of activities of the monitor for the current cycle. Block 320 shows computing the energy based on current state of the decision neurons and the QUBO matrix. For example, the monitor may store the current states of the decision neurons as decision variables that reflect the current SSNN state, and then compute the energy (sometimes referred to as the current energy) based on the current SSNN state using those decision variables. Control passes from block 320 to block 322
[0080] At block 322, it is determined if the current energy is lower than the best energy. If so, control passes to block 324; otherwise to block 326. The “best energy” is the energy that was computed for the most recent one of the previous SSNN states that was accepted.
[0081] Block 324 shows identifying the decision neurons whose current states differ (relative to the state from the most recent one of the previous SSNN states that was accepted) and send them a noise indicator spike (also referred to as a noise excitation adjustment spike) indicating the noise is to be adjusted. Control passes from block 324 to block 328.
[0082] In block 326, an acceptance probability for the worse state is calculated and the annealing temperature is lowered. Control passes from block 326 to block 330.
[0083] As shown by block 330, a decision is made whether to accept the worse solution (that is, to accept the current SSNN state as the new “best” SSNN state even though it is not better). If so, control passes to block 328; otherwise, to block 332. When control passes from block 330 to block 328, decision neurons will use their previous noise excitation value and rely on the random noise to allow for the SSNN to settle on a different state.
[0084] Block 328 shows maintaining the new best energy and the new best SSNN state (e.g., replaces a previously stored “best” SSNN state with the current SSNN state). Control passes from block 328 to block 340.Atty. Docket No.: P111894WO01
[0085] Block 332 shows sending the noise indicator spike to all the decision neurons indicating noise is to be adjusted. Control passes to block 334.
[0086] In block 334, a decision is made as to whether the number of worse solutions in a row exceeds a threshold. If so, control passes to block 336; otherwise, to block 340.
[0087] Block 336 shows resetting the annealing temperature. Control passes to block 340.
[0088] Block 340 shows that if a voltage threshold time out has been reached. If so, control passes to block 342; otherwise, to block 344.
[0089] In block 342, voltage threshold adjustment spikes are sent to all the decision neurons and control passes to block 344.
[0090] At block 344, it is determined if the total simulation timeout has been reached. If not, control passes back to block 302 (if the voltage threshold timeout was reached, then a new round and new cycle is started; otherwise, a new cycle is started); otherwise, control passes to block 346. When control passes to block 346, the goal is for the currently selected SSNN state and the current SSNN state to be the same.
[0091] In block 346, the current SSNN state, which represents the final configuration of decision variables, is stored and the flow ends. This represents the solution to the QUBO problem.Pseudo Code
[0092] Figure 4A illustrates a first part of pseudo code for the monitor according to some embodiments. Figure 4B illustrates a second part of pseudo code for the monitor according to some embodiments. Figure 4C illustrates a first part of pseudo code for the decision neurons according to some embodiments. Figure 4D illustrates a second part of pseudo code for the decision neurons according to some embodiments. Note that the pseudo code in figure 4C-4D is written as representing all the decision neurons. However, in embodiments in which the decision neurons are implemented in a spiking neuromorphic architecture part of spiking neuromorphic hardware, each decision neuron would have code to cause that decision neuron to operate according to the logic shown in figure 4C-D (that is, code for operating a single decision neuron).
[0093] In addition to the pseudo code, Figure 4A-D include some comments added with reference numerals that: 1) explain the purpose of one or more of the pseudo code statements; and 2) identify sections of the code that reflect the operations of certain of the blocks in figure 2D. Also, note that in the pseudo code, for spike_rate_high / low AND score indicator out (aka valid indication spike), true and false respectively mean sending spikes and not sending spikes. However, this is reversed for noise indicator spikes (i.e., true means not sending spikes and false means sending spikes). Further, each decision neuron sends its current state via s out to otherAtty. Docket No.: P111894WO01decision neurons and to the monitor. Also, as previously described, decision neurons in some embodiments execute asynchronously, so additional signaling is used to inform the monitor when the current state sent by the decisions neurons is valid.” While the monitor may be implemented to wait until all score indicator out values are true to capture all of the current states of the decision neurons, other embodiments may be implemented such that the monitor captures the current state of each decision neuron when the score indicator out value for that decision neuron is true. Spike excite stores the current excitation for the decision neurons.
[0094] Also, the pseudo code does not include a condition that determines when the end of the simulation time is reached because some frameworks have the simulation time entered as a runtime configuration parameter. However, such a condition could be added where this is not provided by the framework.Telecommunications Networks
[0095] Figure 5 shows an example of a communication system 500 in accordance with some embodiments.
[0096] In the example, the communication system 500 includes a telecommunications network 502 that includes an access network 504, such as a radio access network (RAN), and a core network 506, which includes one or more core network nodes (depicted as core network node(s) 508). The access network 504 includes one or more access network nodes or base stations of various types; access network nodes 510Aand 510B are depicted (which may be collectively referred to as network nodes 510), or any other similar 3rd Generation Partnership Project (3GPP) access nodes or non-3GPP access points (APs). Some embodiments of the access network 504 may include more than one access network technology. The network nodes 510 of access network 504 facilitate direct or indirect connection of wireless devices, also referred to as user equipments (UEs), such as by connecting UEs 512A, 512B, 512C, and 512D (one or more of which may be generally referred to as UEs 512) to the core network 506 over one or more wireless connections.
[0097] Moreover, a network node is not necessarily limited to an implementation in which a radio portion and a baseband portion are supplied and integrated by a single vendor. Thus, it will be understood that network nodes include disaggregated implementations or portions thereof. For example, in some embodiments, the telecommunications network 502 includes one or more Open-RAN (ORAN) network nodes. An ORAN network node is a network node in the telecommunications network 502 that supports an ORAN specification (e.g., a specification published by the O-RAN Alliance, or any similar organization) and may operate alone or together with other network nodes to implement one or more functionalities of any networkAtty. Docket No.: P111894WO01node in the telecommunications network 502, including one or more access network nodes 510 and / or one or more of core network node(s) 508.
[0098] Examples of an ORAN network node include an open radio unit (O-RU), an open distributed unit (O-DU), an open central unit (O-CU), including an O-CU control plane (O-CU-CP) or an O-CU user plane (O-CU-UP), a RAN intelligent controller (near-real time or non-real time) hosting software or software plug-ins, such as a near-real time control application (e.g., xApp) or a non-real time control application (e.g., rApp), or any combination thereof (the adjective “open” designating support of an ORAN specification). An ORAN network node may support a specification by, for example, supporting an interface defined by the ORAN specification, such as an Al, Fl, Wl, El, E2, X2, Xn interface, an open fronthaul user plane interface, or an open fronthaul management plane interface. Moreover, an ORAN network node may be a logical node in a physical node. Furthermore, an ORAN network node may be implemented in a virtualization environment (described further below) in which one or more network functions are virtualized. For example, the virtualization environment may include an O-Cloud computing platform orchestrated by a Service Management and Orchestration Framework via an O-2 interface defined by the 0-RAN Alliance or comparable technologies.
[0099] The network nodes 510 facilitate direct or indirect connection of one or more UEs 512 to the core network 506 over one or more wireless connections. Example wireless communications over a wireless connection include transmitting and / or receiving wireless signals using electromagnetic waves, radio waves, infrared waves, and / or other types of signals suitable for conveying information without the use of wires, cables, or other material conductors. Moreover, in different embodiments, the communication system 500 may include any number of wired or wireless networks, network nodes, UEs, and / or any other components or systems that may facilitate or participate in the communication of data and / or signals whether via wired or wireless connections. The communication system 500 may include and / or interface with any type of communication, telecommunication, data, cellular, radio network, and / or other similar type of system.
[0100] The UEs 512 may be any of a wide variety of communication devices, including wireless devices arranged, configured, and / or operable to communicate wirelessly with the network nodes 510 and other communication devices. Similarly, the network nodes 508, 510 are arranged, capable, configured, and / or operable to communicate directly or indirectly (e.g., via other devices of telecommunications network 502) with the UEs 512 and / or with other network nodes or equipment in the telecommunications network 502 to enable and / or provide network access, such as wireless network access, and / or to perform other functions, such as administration in the telecommunications network 502. More specifically, UEs 512 may sendAtty. Docket No.: P111894WO01messages, data, and / or other signals to network nodes 508, 510 or other elements of the telecommunications network 502 by transmitting such signals to the relevant device directly without the signals passing through any intervening devices or by transmitting such signals to the relevant device indirectly through an intervening device (or multiple intervening devices) that then transmit the signal to the relevant device. Similarly, network nodes 508, 510 may send messages, data, and other signals to UEs 5122, other network nodes 508, 510, and other devices in telecommunications network 502 directly or indirectly. As one specific example, one of the core network node(s) 508 may transmit a particular message to one of the UEs 512 by transmitting the message to one of the access network nodes 510 that will then transmit the message to the intended one of the UEs 512. Similarly, one of the core network node(s) 508 may receive a particular message from one of the UEs 512 by receiving the message from one of the access network nodes 510 that itself received the message from the one of the UEs 512.
[0101] In the depicted example, the core network 506 connects elements of the access network 504 (e.g., one or more of the network nodes 510) to one or more host computing systems, such as the host(s) 516. These connections may be direct or indirect via one or more intermediary networks or devices. In other examples, network nodes may be directly coupled to hosts. Network node(s) 508 are structured with hardware and software components. Features of these components may be substantially similar to those described with respect to the UEs, access network nodes, and / or hosts, such that the descriptions thereof are generally applicable to the corresponding components of the core network node(s) 508. Example core network nodes provide functions of one or more of a Mobile Switching Center (MSC), Mobility Management Entity (MME), Home Subscriber Server (HSS), Access and Mobility Management Function (AMF), Session Management Function (SMF), Authentication Server Function (AUSF), Subscription Identifier De-concealing function (SIDF), Unified Data Management (UDM), Security Edge Protection Proxy (SEPP), Network Exposure Function (NEF), and / or a User Plane Function (UPF).
[0102] The host(s) 516 may be under the ownership or control of a service provider other than an operator or provider of the access network 504 and / or the telecommunications network 502. The host(s) 516 may be operated by the service provider or on behalf of the service provider. The host(s) 516 may host a variety of applications to provide one or more service. Examples of such applications include live and pre-recorded audio / video content, data collection services such as retrieving and compiling data on various ambient conditions detected by a plurality of UEs, analytics functionality, social media, functions for controlling or otherwise interacting with remote devices, functions for an alarm and surveillance center, or any other such function performed by a server.Atty. Docket No.: P111894WO01
[0103] As a whole, the communication system 500 of Figure 5 enables connectivity between the UEs, network nodes, and hosts. In that sense, the communication system 500 may be configured to operate according to predefined rules or procedures, such as specific standards that include, but are not limited to: Global System for Mobile Communications (GSM); Universal Mobile Telecommunications System (UMTS); Long Term Evolution (LTE), and / or other suitable 2G, 3G, 4G, 5G standards, or any applicable future generation standard (e.g., 6G); wireless local area network (WLAN) standards, such as the Institute of Electrical and Electronics Engineers (IEEE) 802.11 standards (Wi-Fi); and / or any other appropriate wireless communication standard, such as the Worldwide Interoperability for Microwave Access (Wi-Max), Bluetooth, Z-Wave, Near Field Communication (NFC) ZigBee, Li-Fi, and / or any low-power wide-area network (LPWAN) standards such as LoRa and Sigfox. Moreover, the communication system 500 may be configured to support multiple different standards, protocols, or other rule sets, with individual components supporting all of the relevant rule sets or with different components or sub-systems within the communication system 500 supporting different standards, protocols, or rule sets.
[0104] As one example, in certain embodiments, some of the access network nodes 510 support 3GPP radio access technologies (RAT), such as LTE or NR, while others additionally or alternatively support non-3GPP RATs, such as Wi-Fi or a proprietary RAT. As another example, telecommunications network 502 may support multiple generations of related communication standards (e.g., 4G and 5G 3GPP communication standards) and, as a result: l)the access network 504 and / or the core network 506 may support multiple different standard generations; and / or 2) there may be multiple access networks and / or core networks supporting different subsets of one or more standard generations.
[0105] Telecommunications network 502 may support network slicing to provide different logical networks to different devices that are connected to the telecommunications network 502. For example, the telecommunications network 502 may provide Ultra Reliable Low Latency Communication (URLLC) services to some UEs, while providing Enhanced Mobile Broadband (eMBB) services to other UEs, and / or Massive Machine Type Communication (mMTC) / Massive loT services to yet further UEs.
[0106] In some examples, one or more of the UEs 512 are configured to transmit and / or receive information without direct human interaction. For instance, a UE may be designed to transmit information to the access network 504 on a predetermined schedule, when triggered by an internal or external event, or in response to requests from the access network 504.Additionally, a UE may be configured for operating in single- or multi-RAT or multi -standard mode. For example, a UE may operate with any one or combination of Wi-Fi, NR (New Radio)Atty. Docket No.: P111894WO01and LTE, i.e. being configured for multi -radio dual connectivity (MR-DC), such as E-UTRAN (Evolved-UMTS Terrestrial Radio Access Network) New Radio - Dual Connectivity (EN-DC).
[0107] In the example, the hub 514 communicates with the access network 504 to facilitate indirect communication between one or more UEs (e.g., UE 512C and / or 512D) and network nodes (e.g., network node 510B). In some examples, the hub 514 may be a controller, router, content source and analytics, or any of the other communication devices described herein regarding UEs. For example, the hub 514 may be a broadband router enabling access to the core network 506 for the UEs. As another example, the hub 514 may be a controller that sends commands or instructions to one or more actuators in the UEs. Commands or instructions may be received from the UEs, network nodes 510, or by executable code, script, process, or other instructions in the hub 514.
[0108] As another example, the hub 514 may be a data collector that acts as temporary storage for UE data and, in some embodiments, may perform analysis or other processing of the data. As another example, the hub 514 may be a content source. For example, for a UE that is a VR headset, display, loudspeaker, or other media delivery device, the hub 514 may retrieve VR assets, video, audio, or other media or data related to sensory information via a network node, which the hub 514 then provides to the UE either directly, after performing local processing, and / or after adding additional local content. In still another example, the hub 514 acts as a proxy server or orchestrator for the UEs, in particular if one or more of the UEs are low energy loT devices.
[0109] The hub 514 may have a constant / persistent or intermittent connection to the network node 510B. The hub 514 may also allow for a different communication scheme and / or schedule between the hub 514 and UEs (e.g., UE 512C and / or 512D), and between the hub 514 and the core network 506. In other examples, the hub 514 is connected to the core network 506 and / or one or more UEs via a wired connection. Moreover, the hub 514 may be configured to connect to an M2M service provider over the access network 504 and / or to another UE over a direct connection. In some scenarios, UEs may establish a wireless connection with the network nodes 510 while still connected via the hub 514 via a wired or wireless connection. In some embodiments, the hub 514 may be a dedicated hub - that is, a hub whose primary function is to route communications to / from the UEs from / to the network node 510B. In other embodiments, the hub 514 may be a non-dedicated hub - that is, a device which is capable of operating to route communications between the UEs and network node 510B, but which is additionally capable of operating as a communication start and / or end point for certain data channels.
[0110] Figure 6 is another example of a communication system 600 according to some embodiments. As used herein, the communication system 600 includes multiple access pointsAtty. Docket No.: P111894WO01(APs) 610 (with four exemplary being depicted as AP 610A, 61 OB, 610C, and 610D) and multiple wireless devices, referred to in the context of communication system 600 as stations (STAs) 612 (referred to individually as STA612A, STA612B, STA612C, STA612D, and STA 612E). STA612Ais served by AP 610Ain a first basic service set (BSS) 620A. STA612B and STA 610C are served by AP 610B in a second BSS, BSS 620B. STA 612D is served by AP 610C in a third BSS, BSS 620C. STA 612E is served by AP 610D in a fourth BSS, BSS 620D. Stations 612 may be non-AP STAs and correspond to various kinds of wireless devices, for example, user terminals, such as mobile or stationary computing devices like smartphones, laptop computers, desktop computers, tablet computers, gaming devices, head-mounted displays (HMDs) for Augmented Reality (AR) or Virtual Reality (VR), or the like. Further, STAs 612 could, for example, correspond to other kinds of equipment like smart home devices, printers, multimedia devices, data storage devices, or the like.
[0111] Each of STAs 612 may connect through a radio link to one of APs 610. For example, depending on location or channel conditions experienced by a given STA 612, the STA may select an appropriate AP and BSS for establishing the radio link. The radio link may be based on one or more orthogonal frequency-division multiplexing (OFDM) carriers from a frequency spectrum that is shared on the basis of a contention-based mechanism, e.g., an unlicensed or license exempt band like 2.4 GHz Industrial, Scientific, and Medical (ISM) band, the 5 GHz band, the 6 GHz band, or the 60 GHz band.
[0112] Each AP 610 may provide data connectivity to STAs 612 connected to a particular AP 610. As illustrated, APs 610 may be connected to a data network 630. In this way, APs 610 may also provide data connectivity between STAs 612 and other entities, e.g., to one or more servers, service providers, data sources, data sinks, user terminals, or the like. Accordingly, the radio link established between a given one of STAs 612 and its serving AP of APs 610 may be used for providing various kinds of services to that STA, e.g., a voice service, a multimedia service, and / or other data service. Such services may be based on applications that are executed on that STA and / or on a device linked to that STA. By way of example, Figure 6 illustrates an application service platform 632 provided in data network 630. The application(s) executed on one of STAs 612 and / or on one or more other devices linked to that STA may use the radio link for data communication with one or more other of STAs 612 and / or the application service platform 632, thereby enabling utilization of the corresponding service(s) at STA 612.
[0113] Figure 7 shows a wireless device 700, which may be configured to operate in communication system 500 of Figure 5 or in communication system 600 of Figure 6. The wireless device 700 may be alternatively referred to as a UE 700, like one of UEs 512 within the context of communication system 500, or as a station (STA) 700 or as a non-access-point stationAtty. Docket No.: P111894WO01(non-AP STA) 700, like one of STAs 612 within the context of the communication system 600, in accordance with respective embodiments. As used herein, a wireless device refers to a device capable, configured, arranged and / or operable to communicate wirelessly with network nodes and / or other wireless devices. Examples of a wireless device include, but are not limited to, a smart phone, mobile phone, cell phone, voice over IP (VoIP) phone, wireless local loop phone, desktop computer, personal digital assistant (PDA), wireless cameras, gaming console or device, music storage device, playback appliance, wearable terminal device, wireless endpoint, mobile station, tablet, laptop, laptop-embedded equipment (LEE), laptop-mounted equipment (LME), smart device, wireless customer-premise equipment (CPE), vehicle, vehicle-mounted or vehicle embedded / integrated wireless device, and wireless terminal. Other examples include any type of UE identified by the 3rd Generation Partnership Project (3GPP), including a narrow band internet of things (NB-IoT) UE, a machine type communication (MTC) UE, and / or an enhanced MTC (eMTC) UE.
[0114] A wireless device 700 may support device-to-device (D2D) communication, for example by implementing a 3 GPP standard for sidelink communication, Dedicated Short-Range Communication (DSRC), vehicle-to-vehicle (V2V), vehicle-to-infrastructure (V2I), or vehicle-to-everything (V2X). In other examples, wireless device 700 may not necessarily have a user in the sense of a human user who owns and / or operates the relevant device. Instead, wireless device 700 may represent a device that is intended for sale to, or operation by, a human user but which may not, or which may not initially, be associated with a specific human user (e.g., a smart sprinkler controller). Alternatively, wireless device 700 may represent a device that is not intended for sale to, or operation by, an end user but which may be associated with or operated for the benefit of a user (e.g., a smart power meter).
[0115] In particular embodiments, wireless device 700 includes processing circuitry 702 that is operatively coupled via a bus 704 to an input / output interface 706, a power source 708, a memory 710, a communication interface 712, and / or any other component, or any combination thereof. Certain embodiments of wireless device 700 may include all or a subset of the components shown in Figure 7. The level of integration between the components may vary from one embodiment of wireless device 700 to another. In general, in a particular embodiment of wireless device 700, processing circuitry 702, input / output interface 706, power source 708, memory 710, and communication interface 712 may, in whole or in part, represent or include physical components common to or shared by one or more of the other elements of wireless device 700. Further, certain embodiments of wireless devices 700 may contain multiple instances of a component, such as multiple processors, memories, transceivers, transmitters, receivers, etc.Atty. Docket No.: P111894WO01
[0116] The processing circuitry 702 is configured to process instructions and data and may be configured to implement any sequential state machine operative to execute instructions stored as machine-readable computer programs in the memory 710. The processing circuitry 702 may be implemented as one or more hardware-implemented state machines (e.g., in discrete logic, field-programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), etc.); programmable logic together with appropriate firmware; one or more stored computer programs, general-purpose processors, such as a microprocessor or digital signal processor (DSP), together with appropriate software; or any combination of the above. For example, the processing circuitry 702 may include multiple central processing units (CPUs).
[0117] In the example, the input / output interface 706 may be configured to provide an interface or interfaces to an input device, output device, or one or more input and / or output devices. Examples of an output device include a speaker, a sound card, a video card, a display, a monitor, a printer, an actuator, an emitter, a smartcard, another output device, or any combination thereof. An input device may allow a user to capture information into wireless device 700. Examples of an input device include a touch-sensitive or presence-sensitive display, a camera (e.g., a digital camera, a digital video camera, a web camera, etc.), a microphone, a sensor, a mouse, a trackball, a directional pad, a trackpad, a scroll wheel, a smartcard, and the like. The presence-sensitive display may include a capacitive or resistive touch sensor to sense input from a user. A sensor may be, for instance, an accelerometer, a gyroscope, a tilt sensor, a force sensor, a magnetometer, an optical sensor, a proximity sensor, a biometric sensor, etc., or any combination thereof. An output device may use the same type of interface port as an input device. For example, a Universal Serial Bus (USB) port may be used to provide an input device and an output device.
[0118] In some embodiments, the power source 708 is structured as a battery or battery pack. Other types of power sources, such as an external power source (e.g., an electricity outlet), photovoltaic device, or power cell, may be used to supply power to circuitry or to charge an associated battery. The power source 708 may further include power circuitry for delivering power from the power source 708 itself, and / or an external power source, to the various parts of wireless device 700 via input circuitry or an interface such as an electrical power cable. Power source 708 may perform any formatting, converting, or other modification to make accessible power suitable for the respective components of the wireless device 700 to which power is supplied.
[0119] The memory 710 may be or be configured to include memory such as random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-Atty. Docket No.: P111894WO01only memory (EEPROM), magnetic disks, optical disks, hard disks, removable cartridges, flash drives, and so forth. In one example, the memory 710 includes one or more programs 714, such as an operating system, web browser application, a widget, gadget engine, or other application, and corresponding data 716. The memory 710 may store, for use by wireless device 700, any of a variety of various operating systems or combinations of operating systems.
[0120] The memory 710 may be configured to include a number of physical drive units, such as redundant array of independent disks (RAID), flash memory, USB flash drive, external hard disk drive, thumb drive, pen drive, key drive, high-density digital versatile disc (HD-DVD) optical disc drive, internal hard disk drive, Blu-Ray optical disc drive, holographic digital data storage (HDDS) optical disc drive, external mini-dual in-line memory module (DIMM), synchronous dynamic random access memory (SDRAM), external micro-DIMM SDRAM, smartcard memory such as tamper resistant module in the form of a universal integrated circuit card (UICC) including one or more subscriber identity modules (SIMs), such as a USIM and / or ISIM, other memory, or any combination thereof. The UICC may for example be an embedded UICC (eUICC), integrated UICC (iUICC) or a removable UICC commonly known as ‘ SIM card.’ The memory 710 may allow wireless device 700 to access instructions, programs and the like, stored on transitory or non-transitory memory media, to off-load data, or to upload data. An article of manufacture, such as one utilizing a communication system may be tangibly embodied as or in the memory 710, which may be or comprise a device-readable storage medium.
[0121] The processing circuitry 702 may be configured to communicate with an access network or other network via or using the communication interface 712. The communication interface 712 may comprise one or more communication subsystems and may include or be communicatively coupled to an antenna 722. The communication interface 712 may include one or more transceivers used to communicate, such as by communicating with one or more remote transceivers of another device capable of wireless communication (e.g., another wireless device or a network node in an access network). Each transceiver may include a transmitter 718 and / or a receiver 720 appropriate to provide network communications (e.g., optical, electrical, frequency allocations, and so forth). Moreover, the transmitter 718 and receiver 720 may be coupled to one or more antennas (e.g., antenna 722) and may share circuit components, software or firmware, or alternatively be implemented separately.
[0122] In the illustrated embodiment, communication functions of the communication interface 712 may include cellular communication, Wi-Fi communication (e.g., according to an IEEE 802.11 family standard), LPWAN communication, data communication, voice communication, multimedia communication, short-range communications such as Bluetooth, near-field communication, location-based communication such as the use of the globalAtty. Docket No.: P111894WO01positioning system (GPS) to determine a location, another like communication function, or any combination thereof. Communications may be implemented according to one or more communication protocols and / or standards, such as IEEE 802.11, Code Division Multiplexing Access (CDMA), Wideband Code Division Multiple Access (WCDMA), GSM, LTE, New Radio (NR), UMTS, WiMax, Ethernet, transmission control protocol / intemet protocol (TCP / IP), synchronous optical networking (SONET), Asynchronous Transfer Mode (ATM), QUIC, Hypertext Transfer Protocol (HTTP), and so forth.
[0123] In particular embodiments, wireless device 700 may provide an output of data captured via a sensor, through its communication interface 712, via a wireless connection to a network node, and / or in any appropriate manner. Data captured by sensors of a wireless device 700 can be communicated through a wireless connection to a network node via another wireless device 700. In particular embodiments, such output may be periodic (e.g., once every 15 minutes if it reports the sensed temperature), random (e.g., to even out the load from reporting from several sensors), in response to a triggering event (e.g., when moisture is detected an alert is sent), in response to a request (e.g., a user initiated request), or a continuous stream (e.g., a live video feed of a patient).
[0124] As another example, wireless device 700 comprises an actuator, a motor, or a switch, related to a communication interface configured to receive wireless input from a network node via a wireless connection. In response to the received wireless input the states of the actuator, the motor, or the switch may change. For example, wireless device 700 may comprise a motor that adjusts the control surfaces or rotors of a drone in flight according to the received input or to a robotic arm performing a medical procedure according to the received input.
[0125] Wireless device 700, when in the form of an Internet of Things (loT) device, may be a device for use in one or more application domains, these domains comprising, but not limited to, wearable technology, extended industrial application and healthcare. Non-limiting examples of such an loT device are a device which is or which is embedded in: a connected refrigerator or freezer, a TV, a connected lighting device, an electricity meter, a robot vacuum cleaner, a voice controlled smart speaker, a home security camera, a motion detector, a thermostat, a smoke detector, a door / window sensor, a flood / moisture sensor, an electrical door lock, a connected doorbell, an air conditioning system like a heat pump, an autonomous vehicle, a surveillance system, a weather monitoring device, a vehicle parking monitoring device, an electric vehicle charging station, a smart watch, a fitness tracker, a wearable for tactile augmentation or sensory enhancement, a water sprinkler, an animal- or item-tracking device, a sensor for monitoring a plant or animal, an industrial robot, an Unmanned Aerial Vehicle (UAV), and any kind of medical device, like a heart rate monitor or a remote controlled surgical robot. In particularAtty. Docket No.: P111894WO01embodiments, wireless device 700 represents an loT device that comprises circuitry and / or software in dependence of the intended application of the loT device in addition to other components as described in relation to the example embodiment of wireless device 700 shown in Figure 7.
[0126] As yet another specific example, in an loT scenario, wireless device 700 may represent a machine or other device that performs monitoring and / or measurements, and transmits the results of such monitoring and / or measurements to another wireless device and / or a network node. Wireless device 700 may in this case be an M2M device, which may in a 3GPP context be referred to as an MTC device. As one particular example, wireless device 700 may implement the 3GPP NB-IoT standard. In other scenarios, wireless device 700 may represent a vehicle, such as a car, a bus, a truck, a ship and an airplane, or other equipment that is capable of monitoring and / or reporting on its operational status or other functions associated with its operation.
[0127] In practice, any number of wireless devices 700 may be used together with respect to a single use case. For example, a first wireless device 700 might be or be integrated in a drone and provide the drone’s speed information (obtained through a speed sensor) to a second wireless device 700 that is a remote controller operating the drone. When a user makes changes from the remote controller, the first wireless device 700 may adjust the throttle on the drone (e.g. by controlling an actuator) to increase or decrease the drone’s speed. The first and / or the second wireless device 700 can also include more than one of the functionalities described above. For example, wireless device 700 might comprise the sensor and the actuator, and handle communication of data for both the speed sensor and the actuators.
[0128] Figure 8 shows a network node 800 in accordance with some embodiments. As used herein, network node refers to equipment capable, configured, arranged and / or operable to communicate directly or indirectly with a UE and / or with other network nodes or equipment, in a telecommunications network. In accordance with respective embodiments, network node 800 may be configured to operate in communication system 500 of Figure 5, like network nodes 508 or 510, or in communication system 600 of Figure 6, like an AP 610 or a station 612. Examples of network nodes include, but are not limited to, access points (APs) (e.g., radio access points), base stations (BSs) (e.g., radio base stations, Node Bs, evolved Node Bs (eNBs) and NR NodeBs (gNBs)), 0-RAN nodes or components of an 0-RAN node (e.g., 0-RU, 0-DU, O-CU).
[0129] Network nodes 800 may be categorized based on the amount of coverage they provide (or, stated differently, their transmit power level) and so, depending on the provided amount of coverage, may be referred to as femto base stations, pico base stations, micro base stations, or macro base stations. Network node 800 may be a relay node or a relay donor node controlling aAtty. Docket No.: P111894WO01relay. Network nodes 800 may also include one or more (or all) parts of a distributed radio base station such as centralized digital units, distributed units (e.g., in an O-RAN access node) and / or remote radio units (RRUs), sometimes referred to as Remote Radio Heads (RRHs). Such remote radio units may or may not be integrated with an antenna as an antenna integrated radio. Parts of a distributed radio base station may also be referred to as nodes in a distributed antenna system (DAS).
[0130] Other examples of network nodes 800 include multiple transmission point (multi-TRP) 5G access nodes, multi -standard radio (MSR) equipment such as MSR BSs, network controllers such as radio network controllers (RNCs) or base station controllers (BSCs), base transceiver stations (BTSs), transmission points, transmission nodes, multi-cell / multicast coordination entities (MCEs), Operation and Maintenance (O&M) nodes, Operations Support System (OSS) nodes, Self-Organizing Network (SON) nodes, positioning nodes (e.g., Evolved Serving Mobile Location Centers (E-SMLCs)), and / or Minimization of Drive Tests (MDTs).
[0131] In particular embodiments, network node 800 includes a processing circuitry 802, a memory 804, a communication interface 806, and a power source 808. In general, in a particular embodiment of network node 800, processing circuitry 802, memory 804, communication interface 806, and power source 808 may, in whole or in part, represent or include physical components common to or shared by one or more of the other elements of network node 800.
[0132] The network node 800 may be composed of multiple distinct network entities (e.g., a NodeB entity and a RNC entity, or a BTS entity and a BSC entity, etc.), which may each have or utilize their own respective physical components. In certain scenarios in which the network node 800 comprises multiple such entities (e.g., BTS and BSC), one or more of the separate entities may be shared among several network nodes. For example, a single RNC may control multiple NodeBs. In such a scenario, each unique NodeB and RNC pair, may in some instances be considered a single separate network node. In some embodiments, the network node 800 may be configured to support multiple radio access technologies (RATs). In such embodiments, some components may be duplicated (e.g., separate memories 804 or portions of memory 804 for different RATs) and some components may be reused (e.g., a same antenna 810 may be shared by different RATs). The network node 800 may also include multiple sets of the various illustrated components for different wireless technologies integrated into network node 800, for example GSM, WCDMA, LTE, NR, Wi-Fi (e.g., according to an IEEE 802.11 family standard), Zigbee, Z-wave, LoRaWAN, Radio Frequency Identification (RFID) or Bluetooth wireless technologies. These wireless technologies may be integrated into the same or different chip or set of chips and other components within network node 800.Atty. Docket No.: P111894WO01
[0133] The processing circuitry 802 may comprise a combination of one or more of a microprocessor, controller, microcontroller, central processing unit, digital signal processor, application-specific integrated circuit, field programmable gate array, or any other suitable computing device, resource, or combination of hardware, software and / or encoded logic operable to provide, either alone or in conjunction with other components, such as the memory 804, to provide network node 800 functionality.
[0134] In some embodiments, the processing circuitry 802 includes a system on a chip (SOC). In some embodiments, the processing circuitry 802 includes one or more of radio frequency (RF) transceiver circuitry 812 and baseband processing circuitry 814. In some embodiments, the RF transceiver circuitry 812 and the baseband processing circuitry 814 may be on separate chips (or sets of chips), boards, or units, such as radio units and digital units. In alternative embodiments, part or all of RF transceiver circuitry 812 and baseband processing circuitry 814 may be on the same chip or set of chips, boards, or units.
[0135] The memory 804 may comprise any form of volatile or non-volatile computer-readable memory including, without limitation, persistent storage, solid-state memory, remotely mounted memory, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), mass storage media (for example, a hard disk), removable storage media (for example, a flash drive, a Compact Disk (CD) or a Digital Video Disk (DVD)), and / or any other volatile or non-volatile, non-transitory device-readable and / or computer-executable memory devices that store information, data, and / or instructions that may be used by the processing circuitry 802. The memory 804 may store any suitable instructions, data, or information, including a computer program, software, an application including one or more of logic, rules, code, tables, and / or other instructions capable of being executed by the processing circuitry 802 and utilized by the network node 800. The memory 804 may be used to store any calculations made by the processing circuitry 802 and / or any data received via the communication interface 806. In some embodiments, the processing circuitry 802 and memory 804 is integrated.
[0136] The communication interface 806 is used in wired or wireless communication of signaling and / or data with UEs, other network nodes, and / or any other network equipment. In the illustrated embodiment, communication interface 806 comprises port(s) / terminal(s) 816 to send and receive data, for example to and from a network over a wired connection. In particular embodiments, network node 800 may be capable of wireless communication and communication interface 806 may also include radio front-end circuitry 818 that may be coupled to, or in certain embodiments a part of, an antenna 810. Particular embodiments of radio frontend circuitry 818 include filter(s) 820 and amplifier(s) 822. The radio front-end circuitry 818 may be connected to an antenna 810 and processing circuitry 802. The radio front-end circuitryAtty. Docket No.: P111894WO01may be configured to condition signals communicated between antenna 810 and processing circuitry 802. The radio front-end circuitry 818 may receive digital data that is to be sent out to other network nodes or UEs via a wireless connection. The radio front-end circuitry 818 may convert the digital data into a radio signal(s) having the appropriate channel and bandwidth parameters using a combination of filters 820 and / or amplifiers 822. The radio signal(s) may then be transmitted via the antenna 810. Similarly, when receiving data, the antenna 810 may collect radio signals which are then converted into digital data by the radio front-end circuitry 818. The digital data may be passed to the processing circuitry 802. In other embodiments, the communication interface may comprise different components and / or different combinations of components.
[0137] In certain alternative embodiments, network node 800 may be capable of wireless communication but does not include separate radio front-end circuitry 818, instead, the processing circuitry 802 includes radio front-end circuitry and is connected to the antenna 810. Similarly, in some embodiments, all or some of the RF transceiver circuitry 812 is part of the communication interface 806. In still other embodiments, the communication interface 806 includes one or more ports or terminals 816, the radio front-end circuitry 818, and the RF transceiver circuitry 812, as part of a radio unit (not shown), and the communication interface 806 communicates with the baseband processing circuitry 814, which is part of a digital unit (not shown).
[0138] The antenna 810 may include one or more antennas, or antenna arrays, configured to send and / or receive wireless signals. The antenna 810 may be coupled to the radio front-end circuitry 818 and may be any type of antenna capable of transmitting and receiving data and / or signals wirelessly. In certain embodiments, the antenna 810 is separate from the network node 800 and connectable to the network node 800 through one or more interfaces or ports.
[0139] The antenna 810, communication interface 806, and / or the processing circuitry 802 may be configured to perform some or all of the receiving operations and / or obtaining operations described herein as being performed by the network node 800. Any information, data and / or signals may be received from a UE, another network node and / or any other network equipment. Similarly, the antenna 810, the communication interface 806, and / or the processing circuitry 802 may be configured to perform some or all of the transmitting or sending operations described herein as being performed by the network node 800. Any information, data and / or signals may be transmitted to a UE, another network node and / or any other network equipment.
[0140] The power source 808 provides power to the various components of network node 800 in a form suitable for the respective components (e.g., at a voltage and current level needed for each respective component). The power source 808 may further comprise, or be coupled to,Atty. Docket No.: P111894WO01power management circuitry to supply the components of the network node 800 with power for performing the functionality described herein. For example, the network node 800 may be connectable to an external power source (e.g., the power grid, an electricity outlet) via an input circuitry or interface such as an electrical cable, whereby the external power source supplies power to power circuitry of the power source 808. As a further example, the power source 808 may comprise a source of power in the form of a battery or battery pack which is connected to, or integrated in, power circuitry. The battery may provide backup power should the external power source fail.
[0141] Embodiments of the network node 800 may include additional components beyond those shown in Figure 8 for providing certain aspects of the network node’s functionality, including any of the functionality described herein and / or any functionality necessary to support the subject matter described herein. For example, the network node 800 may include user interface equipment to allow input of information into the network node 800 and to allow output of information from the network node 800. This may allow a user to perform diagnostic, maintenance, repair, and other administrative functions for the network node 800.
[0142] Figure 9 is a block diagram illustrating a virtualization environment 900 in which functions implemented by some embodiments may be virtualized. In the present context, virtualizing means creating virtual versions of apparatuses or devices which may include virtualizing hardware platforms, storage devices and networking resources. As used herein, virtualization can be applied to any device described herein, or components thereof, and relates to an implementation in which at least a portion of the functionality is implemented as one or more virtual components. Some or all of the functions described herein may be implemented as virtual components executed by one or more virtual machines (VMs) implemented in one or more virtual environments 900 hosted by one or more of hardware nodes, such as a hardware computing device that operates as an access network node, UE, core network node, or host. Further, in embodiments in which a virtual node does not require radio connectivity (e.g., a core network node or host), then the node may be entirely virtualized. In some embodiments, the virtualization environment 900 includes components defined by the O-RAN Alliance, such as an O-Cloud environment orchestrated by a Service Management and Orchestration Framework via an O-2 interface.
[0143] Applications 902 (which may alternatively be called software instances, virtual appliances, network functions, virtual nodes, virtual network functions, etc.) are run in the virtualization environment Q400 to implement some of the features, functions, and / or benefits of some of the embodiments disclosed herein.Atty. Docket No.: P111894WO01
[0144] Hardware 904 includes processing circuitry, memory that stores software and / or instructions executable by hardware processing circuitry, and / or other hardware devices as described herein, such as a network interface, input / output interface, and so forth. Software may be executed by the processing circuitry to instantiate one or more virtualization layers 906 (also referred to as hypervisors or virtual machine monitors (VMMs)), provide VM 908A and VM 908B (which may be collectively referred to as VMs 908), and / or perform any of the functions, features and / or benefits described in relation with some embodiments described herein. The virtualization layer 906 may present a virtual operating platform that appears like networking hardware to one or more of the VMs 908.
[0145] The VMs 908 comprise virtual processing, virtual memory, virtual networking or interface and virtual storage, and may be run by virtualization layer 906. Different embodiments of the instance of a virtual appliance 902 may be implemented on one or more of VMs 908, and the implementations may be made in different ways. Virtualization of the hardware is in some contexts referred to as network function virtualization (NFV). NFV may be used to consolidate many network equipment types onto industry standard high volume server hardware, physical switches, and physical storage, which can be located in data centers, and customer premise equipment.
[0146] In the context of NFV, each of the VMs 908 may be a software implementation of a physical machine that runs programs as if they were executing on a physical, non-virtualized machine. Each of the VMs 908, and that part of hardware 904 that executes that VM, be it hardware dedicated to that VM and / or hardware shared by that VM with others of the VMs, forms separate virtual network elements. Still in the context of NFV, a virtual network function is responsible for handling specific network functions that run in one or more of the VMs 908 on top of the hardware 904 and corresponds to an application 902.
[0147] Hardware 904 may be implemented in a standalone network node with generic or specific components. Hardware 904 may implement some functions via virtualization.Alternatively, hardware 904 may be part of a larger cluster of hardware (e.g. such as in a data center or CPE) where many hardware nodes work together and are managed via management and orchestration 910, which, among others, oversees lifecycle management of applications 902. In some embodiments, hardware 904 is coupled to one or more radio units that each include one or more transmitters and one or more receivers that may be coupled to one or more antennas. Radio units may communicate directly with other hardware nodes via one or more appropriate network interfaces and may be used in combination with the virtual components to provide a virtual node with radio capabilities, such as a radio access node or a base station. In someAtty. Docket No.: P111894WO01embodiments, some signaling can be provided with the use of a control system 912 which may alternatively be used for communication between hardware nodes and radio units.
[0148] Although the computing devices described herein (e.g., UEs, network nodes, hosts) may include the illustrated combination of hardware components, other embodiments may comprise computing devices with different combinations of components. It is to be understood that these computing devices may comprise any suitable combination of hardware and / or software needed to perform the tasks, features, functions and methods disclosed herein.Determining, calculating, obtaining or similar operations described herein may be performed by processing circuitry, which may process information by, for example, converting the obtained information into other information, comparing the obtained information or converted information to information stored in the network node, and / or performing one or more operations based on the obtained information or converted information, and as a result of said processing making a determination. Moreover, while components are depicted as single boxes located within a larger box, or nested within multiple boxes, in practice, computing devices may comprise multiple different physical components that make up a single illustrated component, and functionality may be partitioned between separate components. For example, a communication interface may be configured to include any of the components described herein, and / or the functionality of the components may be partitioned between the processing circuitry and the communication interface. In another example, non-computationally intensive functions of any of such components may be implemented in software or firmware and computationally intensive functions may be implemented in hardware.
[0149] In certain embodiments, some or all of the functionality described herein may be provided by processing circuitry executing instructions stored on in memory, which in certain embodiments may be a computer program product in the form of a non-transitory computer-readable storage medium. In alternative embodiments, some or all of the functionality may be provided by the processing circuitry without executing instructions stored on a separate or discrete device-readable storage medium, such as in a hard-wired manner. In any of those particular embodiments, whether executing instructions stored on a non-transitory computer-readable storage medium or not, the processing circuitry can be configured to perform the described functionality. The benefits provided by such functionality are not limited to the processing circuitry alone or to other components of the computing device, but are enjoyed by the computing device as a whole, and / or by end users and a wireless network generally.Exemplary Applications in Telecommunication Networks
[0150] Telecommunication networks are evolving to provide greater connectivity and enable latency sensitive applications (augmented reality, cloud gaming, etc.) through an intelligentAtty. Docket No.: P111894WO01network platform. Such a network platform will likely use heterogenous compute accelerators in the edge to cloud continuum to meet the diverse requirements of future applications. Metrics, such as energy efficiency, for problems underpinning future applications might benefit from using spiking neuromorphic hardware, which has as relatively large number of transistors, but consumes less than 30W.
[0151] There exists many combinatorial optimization problems in telecommunications networks such as: 1) offloading user tasks to the edge servers in an efficient manner (referred to as the “Edge User Allocation Use-Case,” “Edge User Allocation Problem,” or “EUA problem”); 2) allocating the physical cell identifier (PCI); 3) allocating a baseband resource pool over the cloud and VMs from a set and minimizing the number of VMs while satisfying all instances of the virtual network functions; 4) offloading UEs to micro base stations within the coverage area of a macro cell to improve the quality of service; 5) the channel allocation problem and its variants; and 6) maximum likelihood SOFT MIMO detection.
[0152] By way of example, below is described the tunning of the parameters of an NR-SSNN based QUBO solver modeling EUA problem. This approach may be used in the context of figures 5 or 6, but will be described using the terms base station (BS), edge server (ES), and UE for simplicity.
[0153] The objective is to handle as many UEs as possible while minimizing the number of utilized edge servers. At the same time, the following constraints are used:• Capacity Constraint: Each edge server can only serve the UEs when the total resource requirements of the computational tasks requested by the assigned UEs do not exceed the edge server’s maximum capacity for any resource type.• Single Association Constraint: Each UE can be served by only one edge server.• Proximity Constraint: Only UEs in the coverage range of the edge server (which is the coverage area of the BS to which that ES is coupled) can be assigned to that edge server.
[0154] Two objectives of the EUA problem are allocating users and deallocating servers. As these objectives align, they can be combined into one. Also, since this example will consider only the CPU and memory resources and pre-processing the coverage constraint, the ILP formulation of EUA problem can be transformed into the QUBO formalism which is given in equation below.Atty. Docket No.: P111894WO01E = xTQx
[0155] The slack variable It is already in binary form. The discrete slack variables arebinarized as
[0156] Here M and N are the number of users and the servers, w is the resource requirement of user z,is the capacity of resource type k on server j.
[0157] Xij andyy are the binary decision variables indicating respectively whether user z is allocated to server j and whether server j is active or not. YA and YB are the weights assigned to each sub objective function and t are the penalty coefficients. The QuadExp function is used to encode the coefficients of the QUBO matrix. MIP solver is also used. The same penalty A is used for all the penalty coefficients. Table 1 shows the exemplary values for the hyper-parameters.Aty. Docket No.: P111894WO01Table 1: Hyper Parameters of Noise Regulation Scheme
[0158] Table 2 below shows three EUAtest instances using A. Tarasova, “Synthetic Data Generation for the Edge User Allocation Problem,” Dissertation, 2024 (Linkbping University, Department of Mathematics, Applied Mathematics. Linkbping University, Faculty of Science & Engineering).. The problem sizes of the three instances are: a) 7 UEs 7 ESs, b) 100 UEs and 20 ESs and c) 602 UEs and 100 ESs. The noise excitation value is initialized to 10, 1, and 0.6 respectively for the three problem instances in Table 2. Each problem instance was solved 10 times and found the performance variation across the runs was negligible. As such, only one for each is included here. Figure 10 is a convergence plot for the tuning of the first problem instance. Figure 11 is a convergence plot for the tuning of the second problem instance. Figure 12 is a convergence plot for the tuning of the third o problem instance. These show that the NR-SSNN converges exponentially on an acceptable solution over time. Table 2 compares the solution quality of the Gurobi vl2 Optimizer (from Gurobi Optimization, LLC. of Beaverton, Oregon) (see “Ref’ column below) to that of a NR-SSNN. An NR-SNN is relatively close inAtty. Docket No.: P111894WO01terms of finding the optimal energy solution as compared to the Ref (see below), and it does so is less time (see below) and less power (see above discussion of using spiking neuromorphic hardware as compare to using von Neuman architecture hardware).Table 2: EAU Test InstancesConclusion
[0159] Numerous specific details such as logic implementations, opcodes, means to specify operands, resource partitioning / sharing / duplication implementations, types and interrelationships of system components, and logic partitioning / integration choices are set forth in order to provide a more thorough understanding of the present invention. It will be appreciated, however, by one skilled in the art that the invention may be practiced without such specific details. In other instances, control structures, gate level circuits and full software instruction sequences have not been shown in detail in order not to obscure the invention. Those of ordinary skill in the art, with the included descriptions, will be able to implement appropriate functionality without undue experimentation.
[0160] Embodiments are provided by way of example to convey the scope of the subject matter to those skilled in the art. Thus, references to “one embodiment,” “an embodiment,” “an example embodiment,” etc., indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it is submitted that it is within the knowledge ofAtty. Docket No.: P111894WO01one skilled in the art to affect such feature, structure, or characteristic in connection with other embodiments whether or not explicitly described.
[0161] Bracketed text and blocks with dashed borders (e.g., large dashes, small dashes, dotdash, and dots) may be used herein to illustrate optional operations that add additional features to embodiments of the invention. However, such notation should not be taken to mean that these are the only options or optional operations, and / or that blocks with solid borders are not optional in certain embodiments of the invention.
[0162] In the following description and claims, the terms “coupled” and “connected,” along with their derivatives, may be used. It should be understood that these terms are not intended as synonyms for each other. “Coupled” is used to indicate that two or more elements, which may or may not be in direct physical or electrical contact with each other, co-operate or interact with each other. “Connected” is often used to indicate the establishment of communication between two or more elements that are coupled with each other.
[0163] While the invention has been described in terms of several embodiments, those skilled in the art will recognize that the invention is not limited to the embodiments described, can be practiced with modification and alteration within the spirit and scope of the appended claims. The description is thus to be regarded as illustrative instead of limiting.
[0164] For example, while the flow diagrams in the figures show a particular order of operations performed by certain embodiments of the invention, it should be understood that such order is exemplary (e.g., alternative embodiments may perform the operations in a different order, combine certain operations, overlap certain operations, etc.).
Claims
Atty. Docket No.: P111894WO01CLAIMSWhat is claimed is:
1. A method, performed by a machine, to run a parameter search for a stochastic spiking neural network (SSNN) based quadratic unconstrained binary optimization (QUBO) solver, the method comprising:during each cycle of a series of cycles (104), performing the following:running the SSNN until each of a plurality of decision neurons in the SSNN settle on a respective current state for the cycle (106), wherein each of the respective current states is based at least on a respective random noise value and a respective noise excitation value for the cycle, wherein a current SSNN state for the cycle is based on the respective current states; andadjusting (108) an annealing temperature and / or the respective noise excitation value of a set of the plurality of decision neurons based on one or more of whether there is an improvement in energy of the current SSNN state relative to a currently selected SSNN state, a decision to accept the current SSNN state anyway based on the annealing temperature, and a threshold number of consecutive cycles without a condition being met, wherein the set of the plurality of decision neurons respectively determine how to adjust their respective noise excitation values responsive to receipt of respective noise excitation spikes, and wherein when there is not the improvement the annealing temperature is lowered or reset based on the decision to accept and the threshold number; andstoring (118) the current SSNN state when a set of one or more criteria is met that indicates an end to the parameter search.
2. The method of claim 1, wherein the adjusting the respective noise excitation values include increasing or decreasing stochastically, by each of the set responsive to receipt of the respective noise excitation spike, the respective noise excitation value based on how the respective current state changed since an immediately preceding one of the series of cycles.
3. The method of claim 1, wherein when there is the improvement the set includes only those of the plurality of decision neurons that changed states between the current SSNN state and the currently selected SSNN state, and when there is not the improvement but the decision is made to accept the set includes all the plurality decision neurons.Atty. Docket No.: P111894WO014. The method of claim 1, wherein the annealing temperature is lowered when the decision is made to accept.
5. The method of claim 1, wherein the annealing temperature is reset when the threshold number of consecutive cycles has occurred without a condition being met, wherein the condition is none of the consecutive cycles being the improvement.
6. The method of claim 1, wherein the energy of each of the current SSNN state and the currently selected SSNN state are computed based on a QUBO matrix.
7. The method of claim 1 further comprising:adjusting (110) respective voltage thresholds of the plurality of decision neurons when a last cycle of the series of cycles is reached, wherein the respective current states of the plurality of decision neurons are also based on the respective voltage thresholds, wherein the adjusting the respective voltage thresholds comprises: providing (112) a respective set of one or more voltage threshold spikes to each of the plurality of decision neurons;increasing or decreasing (114), by each of the plurality of decision neurons responsive to receipt of the respective set of voltage neuron spikes, the respective voltage threshold based on the respective set of one or more voltage threshold spikes; andperforming (116) another of a series of rounds of the series of cycles.
8. The method of claim 7, wherein the set of one or more criteria is completing a last round of the series of rounds.
9. The method of claim 1, wherein the adjusting the annealing temperature and / or the respective noise excitation value comprises:adjusting (120) the respective noise excitation value of the set of the plurality of decision neurons when cycle is of a first or second types, wherein the cycle is of the first type when there is the improvement in energy, where the cycle is of the second type when the decision is made to accept the current SSNN state anyway, the adjusting including:providing (122) the respective noise excitation spike to each of the set of the plurality of decision neurons, wherein for the first type the set includes only those of the plurality of decision neurons that changed states between the current SSNN state and the currentlyAtty. Docket No.: P111894WO01selected SSNN state, and wherein for the second type the set includes all the plurality decision neurons; andincreasing or decreasing stochastically (124), by each of the set responsive to receipt of the respective noise excitation spike, the respective noise excitation value based on how the respective current neuron state changed since an immediately preceding one of the series of cycles.
10. The method of claim 9, wherein the adjusting the annealing temperature and / or the respective noise excitation value comprises:lowering (128) the annealing temperature when the cycle is of the second type or a third type, where the third type is when the cycle is not of the first or second types and there has not been more than the threshold number of consecutive cycles without one in which the condition was met, wherein the condition is none of the consecutive cycles being of the first type; andresetting (130) the annealing temperature when the cycle is of a fourth type.
11. The method of claim 1, wherein neurom orphic cores (206) on spiking neurom orphic hardware (202) are used to implement the plurality of decision neurons, and wherein general-purpose cores on the spiking neuromorphic hardware or other hardware (224) are used to cause the of the respective noise excitation adjustment spikes, maintain the annealing temperature, and store the current SSNN state when the set of one or more criteria is met.
12. The method of claim 1, wherein the SSNN based QUBO solver is used to solve for an edge user allocation problem in a telecommunications network.
13. An apparatus to run a parameter search for a stochastic spiking neural network (SSNN) based quadratic unconstrained binary optimization (QUBO) solver, the apparatus adapted to: during each cycle of a series of cycles, performing the following:running the SSNN until each of a plurality of decision neurons in the SSNN settle on a respective current state for the cycle, wherein each of the respective current states is based at least on a respective random noise value and a respective noise excitation value for the cycle, wherein a current SSNN state for the cycle is based on the respective current states; and adjusting an annealing temperature and / or the respective noise excitation value of a set of the plurality of decision neurons based on one or more of whether there is an improvement in energy of the current SSNN state relative to aAtty. Docket No.: P111894WO01currently selected SSNN state, a decision to accept the current SSNN state anyway based on the annealing temperature, and a threshold number of consecutive cycles without a condition being met, wherein the set of the plurality of decision neurons respectively determine how to adjust their respective noise excitation values responsive to receipt of respective noise excitation spikes, and wherein when there is not the improvement the annealing temperature is lowered or reset based on the decision to accept and the threshold number; andstoring the current SSNN state when a set of one or more criteria is met that indicates an end to the parameter search.
14. The apparatus of claim 13, adapted to perform the method of any of claims 2-12.
15. A machine-readable medium comprising instructions that, when executed by processing circuitry, cause the processing circuitry to carry out the method according to any one of claims 1-12.