The accompanying figures, in which like reference numerals refer to identical or functionally-similar elements throughout the separate views and which are incorporated in and form a part of the specification, further illustrate the embodiments and, together with the detailed description, serve to explain the principles of the disclosed embodiments.
The particular values and configurations discussed in these non-limiting examples can be varied and are cited merely to illustrate at least one embodiment and are not intended to limit the scope of the invention.
The data-processing apparatus 100 further includes one or more data storage devices for storing and reading program and other data. Examples of such data storage devices include a hard disk drive 110 for reading from and writing to a hard disk (not shown), a magnetic disk drive 112 for reading from or writing to a removable magnetic disk (not shown), and an optical disc drive 114 for reading from or writing to a removable optical disc (not shown), such as a CD-ROM or other optical medium. A monitor 122 is connected to the system bus 108 through an adapter 124 or other interface. Additionally, the data-processing apparatus 100 can include other peripheral output devices (not shown), such as speakers and printers.
The hard disk drive 110, magnetic disk drive 112, and optical disc drive 114 are connected to the system bus 108 by a hard disk drive interface 116, a magnetic disk drive interface 118, and an optical disc drive interface 120, respectively. These drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules, and other data for use by the data-processing apparatus 100. Note that such computer-readable instructions, data structures, program modules, and other data can be implemented as a module 107.
Note that the embodiments disclosed herein can be implemented in the context of a host operating system and one or more module(s) 107. In the computer programming arts, a software module can be typically implemented as a collection of routines and/or data structures that perform particular tasks or implement a particular abstract data type.
Software modules generally comprise instruction media storable within a memory location of a data-processing apparatus and are typically composed of two parts. First, a software module may list the constants, data types, variable, routines and the like that can be accessed by other modules or routines. Second, a software module can be configured as an implementation, which can be private (i.e., accessible perhaps only to the module), and that contains the source code that actually implements the routines or subroutines upon which the module is based. The term module, as utilized herein can therefore refer to software modules or implementations thereof. Such modules can be utilized separately or together to form a program product that can be implemented through signal-bearing media, including transmission media and recordable media.
It is important to note that, although the embodiments are described in the context of a fully functional data-processing apparatus such as data-processing apparatus 100, those skilled in the art will appreciate that the mechanisms of the present invention are capable of being distributed as a program product in a variety of forms, and that the present invention applies equally regardless of the particular type of signal-bearing media utilized to actually carry out the distribution. Examples of signal bearing media include, but are not limited to, recordable-type media such as floppy disks or CD ROMs and transmission-type media such as analogue or digital communications links.
Any type of computer-readable media that can store data that is accessible by a computer, such as magnetic cassettes, flash memory cards, digital versatile discs (DVDs), Bernoulli cartridges, random access memories (RAMs), and read only memories (ROMs) can be used in connection with the embodiments.
A number of program modules can be stored or encoded in a machine readable medium such as the hard disk drive 110, the, magnetic disk drive 114, the optical disc drive 114, ROM, RAM, etc or an electrical signal such as an electronic data stream received through a communications channel. These program modules can include an operating system, one or more application programs, other program modules, and program data.
The data-processing apparatus 100 can operate in a networked environment using logical connections to one or more remote computers (not shown). These logical connections are implemented using a communication device coupled to or integral with the data-processing apparatus 100. The data sequence to be analyzed can reside on a remote computer in the networked environment. The remote computer can be another computer, a server, a router, a network PC, a client, or a peer device or other common network node.
With respect to the heuristic search procedure module 230, the calculation of the stochastic objective for a given iteration is like a black-box calculation. The space of possible values that the input stochastic parameters can take is assumed to be bounded by the intervals over which their respective probability distributions are defined in the input. In other words, the heuristic search procedure module 230 searches for the “right” point inside a bounded hyper-rectangle (whose dimensions are equal to the number of uncertain inputs). The heuristic search procedure module 230 can also be made to search over a space having fewer dimensions, by grouping together uncertainties according to the same resolution at which the Contract Base Load solution to the objective function is being sought. In other words, in the search over the smaller space, all the uncertain parameters in a given group will have their k-th percentile value (say) as the deterministic value in any given iteration.
Such a procedure combines the relative merits of the mathematical programming and heuristic search algorithms. A neural network can also be used in the heuristic search procedure module 230 to build the stochastic objective landscape over the space of possible values that the input stochastic parameters can assume. Such a landscape can assist the heuristic search procedure in determining its next iteration. Such a framework could reveal that it may be better to use worst case values in summer peak periods and most likely values in, say, other periods, because variations in hot summer periods may be the biggest contributor to variance.
The embodiments can be implemented in the context of a practical framework for stochastic optimization that leverages the state-of-the-art expertise that has been achieved over the years in deterministic optimization technology. The uncertainty in SSP arises in the problem-input data, when viewed in the context of deterministic mathematical programming formulations. Different combinations of the individual realizations of the various stochastic input parameters can lead to different instances of the deterministic mathematical programming formulation. In turn, these different instances can lead to different deterministic optimal solutions, which in turn, when simulated in the face of uncertainties, can lead to different annual cost distributions, or in other words, different values for the stochastic objective of interest.
One way to retain the merits of the deterministic optimization formulation would be to search for the “right” set of input values to use as deterministic input for the deterministic math program. This is so that the resulting deterministic formulation instance yields an optimal solution, which leads to a desirable stochastic objective, when simulated in the face of uncertainty.
A deterministic optimizer, such as for example, the deterministic module 232 can be utilized to solve for the optimal solution, which can be then fed into the Monte Carlo simulation module 234 for numerically calculating the value of the stochastic objective corresponding to the above deterministic optimal solution. The Monte Carlo simulation module 234 can be utilized to characterize the total cost as a distribution, and this distribution captures the variability of the cost faced by the customer.
One way to retain the merits of the deterministic optimization formulation can be to search for the “right” set of input values to use as the deterministic input for the deterministic math program. The resulting deterministic formulation instance yields an optimal solution, which leads to a desirable stochastic objective when simulated in the face of uncertainty.
Thereafter, as indicated at block 308, the large scale linear module can process the cost components and inter-relationships in order to generate data indicative of one or more optimal decisions as depicted at block 310 for establishing a baseline as indicated at block 312 for contracting dialogues between a consumer and a utility company in the favor of the consumer. An optional Monte Carlo risk simulation module such as module 234 depicted in
The embodiments generally possess two key aspects. First, the embodiments can cast the above commercial decision-making problem into a creative mathematical programming framework as evidence by the method depicted in
Note additionally that an additional feature of the embodiments can be implemented based on an objection function and or a constraint as indicated generally as follows:
a) For a user-input level of risk (input by the user as, the probability, p(M), such that the total annual cost of the user is less than or equal to a user-defined constant, say, M), the method will give the least-cost (optimal) rate structure and the associated CBL, along with on-site generation utilization (if applicable).
b) Conversely, if the user desires to minimize the risk measure, that minimize the probability, p(M), which is the probability that the annual cost is greater than or equal to a user-defined constant, M, then the method will minimize this measure.
In other words, the method can accept the risk-measure both as a constraint (case (a)) and as an objective function (case (b)).
The process and system described herein can be used by utility consumers, energy managers, and energy aggregators for establishing a baseline for their contracting dialogue with the utility companies. Consumers have access to historical data of energy utilization patterns and real time price of electric energy that can be used in forecasting techniques. They also have the set of rate structures that their utility company offers them. They can use all this data with the mathematical formulation contained in the invention to create a corresponding instance of a large scale linear program, to answer their decision-making questions. These answers can be used to start the contracting dialogue with the utility firms to the consumer's advantage.
It will be appreciated that variations of the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Also that various presently unforeseen or unanticipated alternatives, modifications, variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.