Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND APPARATUS FOR RELATIVE VALUE GENERATION OF RESOURCES BASED ON KNAPSACK ALGORITHMS
Document Type and Number:
WIPO Patent Application WO/2021/154924
Kind Code:
A1
Abstract:
Method and apparatus for determining relative value of loads. In one embodiment the method comprises determining, for a load in a plurality of loads where (i) each load in the plurality has a weight and a value associated with it and (ii) the plurality is operating according to a primary solution where a net weight of all loads with an activated state satisfies a primary threshold, a change in operating state; determining a secondary solution for a subset of loads not including the load having the change, such that a net weight of all loads in the subset with an activated state satisfies a secondary threshold based on the primary threshold; and determining, based on the values of loads in the subset that have operating states in the secondary solution different from their operating states in the primary solution, an updated value for the load having the change.

Inventors:
ZIMMANCK DONALD RICHARD (US)
Application Number:
PCT/US2021/015394
Publication Date:
August 05, 2021
Filing Date:
January 28, 2021
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ENPHASE ENERGY INC (US)
International Classes:
H02J3/14; G06Q50/06; H02J3/00
Foreign References:
US20140084682A12014-03-27
US20170346292A12017-11-30
US10243396B22019-03-26
Other References:
TRIGUEIRO DOS SANTOS LEONARDO, SECHILARIU MANUELA, LOCMENT FABRICE: "Optimized Load Shedding Approach for Grid-Connected DC Microgrid Systems under Realistic Constraints", BUILDINGS, vol. 6, no. 4, pages 50, XP055832557, DOI: 10.3390/buildings6040050
SIDDARTH SANKAR M.J., RAHUL SHARMA K.: "Modified 0-1 Knapsack Problem for Demand Side Management", INTERNATIONAL JOURNAL OF INNOVATIVE TECHNOLOGY AND EXPLORING ENGINEERING (IJITEE), vol. 8, no. 6S4, 1 April 2019 (2019-04-01), pages 1 - 4, XP055832561, DOI: 10.35940/ijitee.F1001.0486S419
See also references of EP 4097818A4
Attorney, Agent or Firm:
BERGMANN, Sherry A. et al. (US)
Download PDF:
Claims:
CLAIMS:

1. A method for determining relative value of loads, comprising: determining, for a load in a plurality of loads where (i) each load in the plurality has both a weight and a value associated with it and (ii) the plurality is operating according to a primary solution of operating states where a net weight of all loads in the plurality with an activated state satisfies a primary threshold, a change in operating state; determining a secondary solution of operating states for a subset of loads in the plurality, the subset not including the load having the change in operating state, such that a net weight of all loads in the subset with an activated state satisfies a secondary threshold, the secondary threshold based on the primary threshold; and determining, based on the values of loads in the subset that have operating states in the secondary solution different from their operating states in the primary solution, an updated value for the load having the change in operating state.

2. The method of claim 1 wherein, when the change in operating state is from deactivated to activated, the secondary threshold is equal to the primary threshold less the weight of the load having the change in operating state.

3. The method of claim 2, wherein the updated value is equal to X-Y+t, where X = the sum of the values of loads in the subset having activated states in the primary solution and deactivated states in the secondary solution; Y = the sum of the values of loads in the subset having deactivated states in the primary solution and activated states in the secondary solution; and t = a tiebreaker value.

4. The method of claim 1 wherein, when the change in operating state is from activated to deactivated, the secondary threshold is equal to the primary threshold.

5. The method of claim 4, wherein the updated value is equal to Y-X-t, where X = the sum of the values of loads in the subset having activated states in the primary solution and deactivated states in the secondary solution; Y = the sum of the values of loads in the subset having deactivated states in the primary solution and activated states in the secondary solution; and t = a tiebreaker value.

6. The method of claim 1 , wherein the change in operating state is user-initiated.

7. The method of claim 1 , further comprising re-normalizing the load values for the plurality of loads to a total fixed value.

8. A non-transitory computer readable medium having instructions stored thereon that, when executed, cause a method for determining relative value of loads, the method as described in any of the preceding claims.

9. An apparatus for determining relative value of loads, comprising: a controller, comprising at least one processor, for: determining, for a load in a plurality of loads where (i) each load in the plurality has both a weight and a value associated with it and (ii) the plurality is operating according to a primary solution of operating states where a net weight of all loads in the plurality with an activated state satisfies a primary threshold, a change in operating state; determining a secondary solution of operating states for a subset of loads in the plurality, the subset not including the load having the change in operating state, such that a net weight of all loads in the subset with an activated state satisfies a secondary threshold, the secondary threshold based on the primary threshold; and determining, based on the values of loads in the subset that have operating states in the secondary solution different from their operating states in the primary solution, an updated value for the load having the change in operating state.

10. The apparatus of claim 9 wherein, when the change in operating state is from deactivated to activated, the secondary threshold is equal to the primary threshold less the weight of the load having the change in operating state.

11. The apparatus of claim 10, wherein the updated value is equal to X-Y+t, where X = the sum of the values of loads in the subset having activated states in the primary solution and deactivated states in the secondary solution; Y = the sum of the values of loads in the subset having deactivated states in the primary solution and activated states in the secondary solution; and t = a tiebreaker value.

12. The apparatus of claim 9 wherein, when the change in operating state is from activated to deactivated, the secondary threshold is equal to the primary threshold.

13. The apparatus of claim 12, wherein the updated value is equal to Y-X-t, where X = the sum of the values of loads in the subset having activated states in the primary solution and deactivated states in the secondary solution; Y = the sum of the values of loads in the subset having deactivated states in the primary solution and activated states in the secondary solution; and t = a tiebreaker value.

14. The apparatus of claim 9, wherein the change in operating state is user- initiated.

15. The apparatus of claim 9, wherein the controller further re-normalizes the load values for the plurality of loads to a total fixed value.

Description:
METHOD AND APPARATUS FOR RELATIVE VALUE GENERATION OF RESOURCES BASED ON KNAPSACK ALGORITHMS

BACKGROUND OF THE INVENTION Field of the Invention

[0001] Embodiments of the present disclosure relate generally to load control and, more particularly, to a value-based load control technique.

Description of the Related Art

[0002] A typical approach to implementing load control is called a priority system, where electric loads (or resources) are ranked as a list from highest priority to lowest priority. If energy use must be reduced, loads are incrementally shed starting with the lowest priority and moving up the list. One problem with this approach is that it does not consider the relative value of each load to each other and the fact that loads consume different amounts of energy. For example, if the highest priority load consumes more energy than the remaining loads combined, then counterintuitively it may make sense to turn that load off first if the sum of the values of all the other loads is higher than the highest priority load.

[0003] Another approach for load control is to give each load a relative value and to use a “knapsack” solver to calculate what loads should be ON to maximize the total value given a certain energy budget - i.e., the problem is to choose a subset of the items, each having a weight and a value, to arrive at a maximum total value that will fit into a limited-sized container in the case of load control, the weight of each load may be the energy it uses (for example, averaged over a specific time period), the value is the relative value of the load, and the limit is the amount of energy available (for example, forecasted over a time period), which may be based on power system conditions and a forecast of future load use. One problem with the knapsack approach is that generally system users (e.g., homeowners, office managers) are not able to effectively quantify relative values of the loads. [0004] Therefore, there is a need in the art for efficiently determining relative values of loads.

SUMMARY OF THE INVENTION

[0005] Embodiments of the present invention generally relate to determining relative value of loads as shown in and/or described in connection with at least one of the figures.

[0006] These and other features and advantages of the present disclosure may be appreciated from a review of the following detailed description of the present disclosure, along with the accompanying figures in which like reference numerals refer to like parts throughout.

BRIEF DESCRIPTION OF THE DRAWINGS

[0007] So that the manner in which the above recited features of the present invention can be understood in detail, a more particular description of the invention, briefly summarized above, may be had by reference to embodiments, some of which are illustrated in the appended drawings. It is to be noted, however, that the appended drawings illustrate only typical embodiments of this invention and are therefore not to be considered limiting of its scope, for the invention may admit to other equally effective embodiments.

[0008] Figure 1 is a flow diagram of a load control technique in accordance with one or more embodiments of the present invention;

[0009] Figure 2 is a block diagram of a controller in accordance with one or more embodiments of the present invention; and

[0010] Figure 3 is a flow diagram of a method for iteratively determining relative load values in accordance with one or more embodiments of the present invention.

DETAILED DESCRIPTION

[0011] Embodiments of the present invention generally relate to a method and apparatus for determining relative load values, employed in value-based load control, using an iterative algorithm (e.g., a secondary knapsack solver) for determining the relative value of a load. The technique described herein enables a load control system to learn, in an intuitive manner, relative load values based on simple ON/OFF user interactions, and provides a simple method for configuring load values without complicating the system’s user interface.

[0012] In various embodiments, load values are inferred from use of the loads; every time the state of a load is changed by a user, for example when the user turns a load from ON to OFF, that information is used to update load values iteratively so that over time they converge to what the true value of the load is. By overriding the decision made by an automatic ioad controller, the user indicates to the system that the relative value of the load at that moment In time is incorrect. For example, when the user turns a ioad from OFF to ON, it indicates to the system that the load value at that time is too low. Similarly, when the user turns a ioad from ON to OFF, it indicates to the system that the load value at that time is too high. This user- provided feedback is utilized to dynamically update the relative values of the loads such that the knapsack solver would have derived the correct ON/OFF state of the load that the user just changed.

[0013] These new values (which may also be referred to as “scores”) can be determined by creating a secondary knapsack with the item (i.e., load) changed by the user removed from the controllable items. After this secondary knapsack is solved, the updated value of the user-changed load can be derived by summing the net value change In the solution and adding or subtracting a small number (e.g., 1) to make the solution unique

[0014] Figure 1 is a block diagram of a system 100 for power generation and distribution in accordance with one or more embodiments of the present invention. This diagram only portrays one variation of the myriad of possible system configurations. The present invention can function in a variety of environments and systems.

[0015] The system 100 comprises a building 102, such as a residential or commercial building, housing a plurality of loads 114-1 , 114-2, ...., 114-N (collectively referred to as loads 114) and a controller 116. Each of the loads 114 and the controller 116 are coupled to a distributed generator (DG) 118 and a power grid 124 (e.g., a commercial grid, a microgrid, a local distribution grid, and the like) via a load center 112. Although the loads 114 and the load center 112 are depicted in Figure 1 as within the building 102, one or more of these may be located outside of the building 102.

[0016] The controller 116 is communicatively coupled to a communications network 126 (e.g., the Internet) and may be communicatively coupled, via the communications network 126, to one or more devices, such as a master controller 128 (which may be cloud-based). The controller 116 may communicate information to and/or receive information from the master control 128 (such as performance data, control instructions, and the like). The controller 116 may be coupled to the communications network 126 by any suitable wired and/or wireless technique; in some embodiments, the controller 116 may be wirelessly coupled to the communications network 126 via a commercially available router.

[0017] The DG 118 comprises a plurality of power conditioners 122, a plurality of renewable resources (RESs) 120, and a plurality of energy storage/delivery devices 140. A first set of the power conditioners 122 are coupled to the RESs 120 (e.g., one RES 120 to one power conditioner 122) while the remaining power conditioners 122 are coupled to the storage/delivery devices 140 (e.g., one storage/delivery device 140 to one power conditioner 122). The RESs 120 may be any suitable renewable energy source that generates DC from a renewable form of energy, such as wind, solar, hydro, and the like; in one or more embodiments, the RESs 120 are photovoltaic (PV) modules. The energy storage/delivery devices 140 may be any suitable device capable of receiving DC for storage and delivering the stored energy as DC to the corresponding power conditioners 122. The power conditioners 122 are DC-AC inverters that convert the DC from the RESs 120 and/or the storage/delivery devices 140 to commercial-grid compliant AC which is coupled to the load center 112, where it may then be coupled to one or more appliances 114 and/or to the grid 124. Additionally, those power conditioners 122 coupled to the energy storage/delivery devices 140 converter AC from the load center 112 and/or one or more power conditioners couples to RESs 120, to DC for storage in the corresponding energy storage/delivery devices 140. In some alternative embodiments, the power conditioners 122 are DC-DC converters or AC-AC converters.

[0018] In one or more embodiments the DG 118 may operate as a microgrid when the load center 112 is not coupled to the grid 124 (e.g., when the grid 124 experiences an outage, or if the grid 124 is never coupled to the load center 112).

[0019] The controller 116 is coupled to the load center 112 for communicating with the power conditioners 122 using power line communications (PLC), although additional or alternative types of wired and/or wireless communication techniques may be used. The controller 116 may provide operative control of the DG 118 and/or receive data or information from the DG 118. For example, the controller 116 may be a gateway that receives data (e.g., alarms, messages, operating data and the like) from the power conditioners 122 and communicates the data and/or other information to a remote device or system, such as the master controller 128. The controller 116 may also send control signals to the power conditioners 122, such as control signals determined by the controller 116 or sent to the controller 116 from the master controller 128.

[0020] The controller 116 is further communicatively coupled to the loads 114 for controlling the loads 114 as described herein. The controller 116 may use any suitable wired and/or wireless communications technique for communicating with/controlling the loads 114 (e.g., PLC).

[0021] The loads 114 operate in discrete states (e.g., ON or OFF) and consume energy received via the load center 112 (e.g., hot water heaters, refrigerators, HVAC equipment, pumps, room lighting, and the like). Although the loads 114 are depicted in Figure 1 as within the building 102, one or more of the loads 114 may be located outside of the building 102. The loads 114 may be static loads, dynamic loads, or some combination thereof.

[001] Some of the loads 114 may be intelligent loads (also referred to as “smart loads”) that each have a corresponding controller for controlling their operation (e.g., for implementing preset control instructions and/or control instructions received, for example from the controller 116, from a user interface, or another device), obtaining data pertaining to the corresponding load 114 (e.g., performance data, operational data, and the like), communicating data to another device (e.g., the controller 116) or system, and the like. In various embodiments, a user may control the operating states of the loads 114 via a user interface.

[0022] In accordance with one or more embodiments of the present invention, the controller 116 (which may be referred to as a resource controller) uses an iterative algorithm to determine updated relative load values for value-based load control as described herein; additionally, the controller 116 may control the operating states of the loads 114 based on the determined relative values. The relative load value deter ination/value-based load control described herein may be utilized in a hierarchical control framework, such as a three-tier framework of primary, secondary, and tertiary control. In some alternative embodiments, a resource controller other than the controller 116, for example the master controller 128, or another resource controller not pictured, may perform the relative load value determination/value-based load control described herein.

[0023] Figure 2 is a block diagram of a controller 116 in accordance with one or more embodiments of the present invention. The controller 116 comprises support circuits 204 and a memory (or non-transitory computer readable storage medium) 206, each coupled to a central processing unit (CPU) 202. The CPU 202 may comprise one or more conventionally available microprocessors or microcontrollers; alternatively, the CPU 202 may include one or more application specific integrated circuits (ASICs). The support circuits 204 are well known circuits used to promote functionality of the CPU 202. Such circuits include, but are not limited to, a cache, power supplies, clock circuits, buses, input/output (I/O) circuits, transceivers, and the like. The controller 116 may be implemented using a general-purpose computer that, when executing particular software and/or firmware, becomes a specific- purpose computer for performing various embodiments of the present invention. In other embodiments, the CPU 202 may be a microcontroller comprising internal memory for storing controller firmware that, when executed, provides the controller functionality described herein.

[0024] The memory 206 may comprise random access memory, read only memory, removable disk memory, flash memory, and various combinations of these and/or other types of memory. The memory 206 is sometimes referred to as main memory and may, in part, be used as cache memory or buffer memory. The memory 206 generally stores the operating system (OS) 208, if necessary, of the controller 116 that can be supported by the CPU capabilities. In some embodiments, the OS 208 may be one of a number of commercially available operating systems such as, but not limited to, LINUX, Real-Time Operating System (RTOS), and the like.

[0025] The memory 206 stores various forms of application software and/or firmware, including a relative load value module 210 for determining relative loads values and, in some embodiments, performing value-based load control as described herein. Further detail on the functionality provided by the relative load value module 210 is described below with respect to Figure 3.

[0026] The memory 206 may store additional modules, such as a primary knapsack module for determining primary knapsack solutions described herein for the loads 114. Further, the memory 206 may additionally store a database 212 for storing data, such as data related to the present invention.

[0027] The controller 116 may additionally comprise a user interface for a user to change operating states of the loads 114.

[0028] In some alternative embodiments, a resource controller other than the controller 116 may comprise the relative load value module 210. For example, the master controller 128, having a CPU, support circuits, and memory analogous to those of controller 116, may store the relative load value module 210 for determining the relative load values as described herein, and the master controller 128 may communicate instructions to the controller 116 or other device for controlling the load operating states based on the determined load values. [0029] Figure 3 is a flow diagram of a method 300 for iteratively determining relative load values in accordance with one or more embodiments of the present invention. The method 300 iteratively determines updated values for one or more loads when a change to a load’s operating state occurs (e.g., as initiated by a user).

[0030] In various embodiments, each load in a plurality of loads (such as the loads 114) has an associated weight and value, and the loads are operating (i.e. , ON or OFF) based on an optimum solution that maximizes a net value of operating loads while satisfying a weight threshold (e.g., maintaining the net weight of operating loads at or below a weight threshold). This solution, which may be referred to as a primary solution, may be obtained by solving a knapsack problem for the plurality of loads where the knapsack limit is equal to the weight threshold. This knapsack problem, which may be referred to herein as a primary knapsack or primary knapsack problem, may be periodically re-solved for the plurality of loads (for example, when the weight limit ascribed to the primary knapsack changes). In other embodiments, techniques other than knapsack problems may be used in determining which operating states for the loads to satisfy a weight limit.

[0031] Although the loads are described herein as having binary operating states (either ON, also referred to as activated, or OFF, also referred to as deactivated), in alternative embodiments one or more of the loads may have more possible operating states.

[0032] In various embodiments, a load’s weight represents a consumption, such as power or average power consumed by the load over a time period (e.g., determined from historical data), estimated power or estimated average power that the load would consume over a time period, and the like. In certain embodiments, a load’s weight may represent a cost associated with the load, such as financial amount for operating the load over a time period. In some embodiments, the weight may be determined based on additional factors, such as actual and/or predicted external conditions associated with the load (e.g., temperature and humidity for air conditioning and heating loads), actual and/or predicted cost for operating the load, and the like. Additionally, in some embodiments the weight may be dynamically determined and updated, for example as weather predictions change, as amount of available power changes, as operating costs change, and the like.

[0033] A load’s value represents the relative importance or criticality of a load; for example, a refrigerator may have a higher value than a bedroom light. In one or more embodiments, the loads values may be initially assigned equal values, which will tend to prefer lower-energy users as they will have a higher marginal value (value/weight) and thus maximize the number of loads that are ON. In other embodiments, the load values may be initialized to the correspond load’s weight, where the weight of each load may be equal to its estimated energy consumption. Initializing the load values to their corresponding weights will have all loads with the same initial marginal value and thus maximize the energy consumed. However, regardless of the initial load values the system will converge to their true values over time.

[0034] In some embodiments, the total net load value may be normalized to a particular value, such as 100. In other embodiments, the normalization may be based on the smallest common denominator, so that all load values are the smallest possible integers.

[0035] The techniques described herein may be utilized for load control in a variety of systems, such as load control in a microgrid, smart grid, residential home, business office, and the like in one or more embodiments, the techniques described herein are utilized for load control in a microgrid comprising a distributed generator (DG) having a plurality of microinverters coupled to a plurality of photovoltaic (PV) modules.

[0036] In various embodiments, the method 300 is an implementation of the relative load value module 210 described above. In some embodiments, a computer readable medium comprises a program that, when executed by a processor (such as the processor of controller 116 described above), performs the method 300.

[0037] The method 300 starts at step 302 and proceeds to step 304. At step 304 a determination is made whether an operating state change has occurred for any of the loads in the plurality of loads. If the result of the determination is no, i.e., there were no load state changes, the method 300 returns to step 304.

[0038] If the result of the determination at step 304 is yes, that a change to the operating state of a load has occurred, the method 300 proceeds to step 306. At step 306, a secondary knapsack is created where the weight limit of the secondary knapsack (which may be referred to as a secondary threshold) is based on the weight limit of the primary knapsack (which may be referred to as a primary threshold).

[0039] In those embodiments where the load state changed from OFF to ON, the weight limit for the secondary knapsack (i.e., the secondary threshold) is set equal to the weight limit of the primary knapsack (i.e., the primary threshold) less the weight of the load having changed state. For example, a particular load A may be OFF because, in the primary knapsack solution, that there was another load or combination of loads having a net value greater than or equal to load A, and a net weight less than or equal to load A. If the user overrides the system and turns the load A back ON (e.g., via a user interface), a secondary knapsack problem is created with the secondary knapsack weight limit being the primary knapsack weight limit less the weight of load A, since load A must now be ON in the solution. Given that the load A must be ON, the size of the secondary knapsack in now smaller than the primary knapsack, and that smaller secondary knapsack is to be resolved using the remaining loads (i.e., all loads in the plurality of loads other than load A).

[0040] In those embodiments where the load state changed from ON to OFF, the weight limit for the secondary knapsack is set equal to the weight limit of the primary knapsack. For example, a particular load B may be ON as a result of the primary solution, and the user overrides the system and turns the load B OFF (e.g., via a user interface). Since the load B must be OFF in the secondary solution, it takes up no space in the secondary knapsack and the secondary knapsack weight remains the same as the primary knapsack weight limit. The secondary knapsack problem is to be resolved using the remaining loads (i.e., all loads in the plurality of loads other than load B). [0041] The method 300 proceeds to step 308 where the secondary knapsack is resolved to obtain the secondary solution, and the method 300 then proceeds to step 310.

[0042] At step 310, those loads changing operating state change in resolving the secondary knapsack are determined, and the values of those loads having state changes from ON to OFF and those loads having state changes from OFF to ON are separately summed. For example, in those embodiments where a user changed the operating state of a load from OFF to ON, in the resolution of the secondary knapsack one or more loads must turn OFF, and some loads may turn ON; if a relatively large load must turn OFF in the secondary solution, some smaller loads that were not ON in the primary solution may be able to be included.

[0043] For those loads having operating state changes from ON to OFF in the secondary knapsack resolution, their values are summed and may be represented by “X”; for those loads having operating state changes from OFF to ON in the secondary knapsack resolution, their values are summed and may be represented by Ύ”. The method 300 proceeds to step 312.

[0044] At step 312, a determination is made whether the change in load operating state determined in step 304 was from ON to OFF. If the result of the determination is yes that the load operating state changed from ON to OFF, the method 300 proceeds to step 314.

[0045] At step 314, the new value (i.e. , the updated value) for the load having the operating state change determined at step 304 (load B in the example above) is calculated as Y-X-t, where t is a tiebreaker value which, in some embodiments, may be set to 1. The calculation performed determines a decreased value for the load (load B in the example above) low enough that it would have been OFF in the primary knapsack solution. By turning the load OFF and thereby overriding the state of the load determined by the primary knapsack, the user indicates to the system that the value for load at that time was too high and should be redetermined such that the load would have been OFF. The load is assigned the updated value, and the method 300 proceeds from step 314 to optional step 318. [0046] If, at step 312, the result of the determination is no, that the load operating state did not change from ON to OFF, and thus changed from OFF to ON, the method 300 proceeds to step 316.

[0047] At step 316, the new value (i.e. , the updated value) for the load having the operating state change determined at step 304 (load A in the example above) is calculated as X-Y+t, where t is a tiebreaker value added as a tiebreaker to prevent multiple knapsack solutions having equal value. In some embodiments, t may be set to 1 although other values may be used. The calculation performed determines the minimum value for the load (load A in the example above) such that it would have been ON in the primary knapsack solution; by turning the load ON and thereby overriding the state of the load determined by the primary knapsack, the user indicates to the system that the value for load at that time was too low and should be redetermined such that the load would have been ON. The load is assigned the updated value, and the method 300 proceeds to optional step 318.

[0048] At optional step 318, the load values are re-normalized to total a fixed value, for example a value of 100, to address the change in the net value that results from the updated load value. In other embodiments, a different normalization may be used, such as normalization based on the smallest common denominator. In still other embodiments, there may be no normalization at all and the method proceeds from both steps 314 and 316 directly to step 320.

[0049] At step 320, a determination is made whether to continue. If the result of the determination is yes, the method 300 returns to step 304, and each time a load operating state is changed (e.g., by a user), the secondary knapsack technique is iteratively repeated to adaptively calculate new scores for the loads.

[0050] If, at step 320, the result of the determination is no, the method 300 proceeds to step 322 where it ends.

[0051] Although the techniques described above relate to a 0/1 knapsack problem for loads that are either ON or OFF, in other embodiments the described techniques may be utilized for other types of knapsack problems or other types of combinatory optimization problems. In some alternative embodiments, the system may perform time-series learning of load value schedules by tracking how the load values change and, over time, derive a value schedule for the loads.

[0052] While the foregoing is directed to embodiments of the present invention, other and further embodiments of the invention may be devised without departing from the basic scope thereof, and the scope thereof is determined by the claims that follow.