Chapter 6: Hierarchical Co-ordination Algorithm
6.4 Hierarchical Optimization Algorithm
In this research in order to investigate the equilibrium point of a bilateral electricity market, a hierarchical optimization algorithm has been suggested. To perform this algorithm accurately further assumptions and modifications are required to obtain the equilibrium point of the whole market. The slopes and intercepts of initial
conditions for the inverse demand and generation functions,
, can be set to any values, which satisfy the four principles, covered in the last section. Since the intercept of the inverse demand function represents market power it should be set to a higher value, also the inverse
generation function is estimated to be a more moderate curve, thus the should
be lower than . These guesses would help to set the initial values within the scope of both oligopolistic and oligopsonistic markets and have a feasible starting point for iteration.
After the initial guess, the variables of inverse demand function and inverse
generation function, { }, can be varied to obtain new and .
Therefore, an iterative hierarchical optimization method can be proposed. This method is called hierarchical because it coordinates both the oligopolistic and oligopsonistic markets and operates in such a way to seek an overall match between the two CVE models in order to find the equilibrium of the market.
There are some assumptions for this hierarchical algorithm:
Bilateral electricity market can be modeled as a virtual Pool with a virtual broker, which tends to find the market equilibrium based on the conjectural variations of both GenCos and SupplyCos.
and for both GenCos and SupplyCos are constant. (The calculation
of s is outside of the scope of this research and will be discussed as a possibility for future work).
No holding is permitted for each supply company, to avoid practicing market
Consequently, the hierarchical optimization algorithm contains the following steps:
Figure 6.4: Hierarchical Optimization Algorithm
H ier ar chi cal O pt im iz at io n A lgor it h m
Step 1) Initialize inverse demand and generation functions:
Step 2) Define the generators’ cost function variables: for oligopolistic market and retail price, foroligopsonistic market.
Step 3) Define the and based on historical data and technical
characteristics of each GenCo andSupplyCo respectively.
Step 4) Computing the output of each GenCo, , and the purchased
amount of electricity by each SupplyCo, , using Equations 6.2 and 6.4
Step 5)Calculating the and .
Step 6) Computing the price values for oligopolistic and oligopsonistic markets, and respectively, using Equations 4.20, 5.4, and , based on inverse demand and inverse generation functions respectively.
Step 7)Using Hierarchical Optimization method, to obtain:
Step 8) If the objective function is minimized, the equilibrium point ( *, *) can be calculated, if not, the optimizer keeps increasing
the number of iterations, , and replaces the slopes and intercepts parameters with updated values, { , }, then goes to step (4).
Figure 6.5 illustrates the hierarchical optimization algorithm applied in this chapter.
Figure 6.5: Hierarchical Optimization Structure
It should be mentioned that, in step 7, all , , and are
functions of { } and is the number of iterations.
6.4.1 Hierarchical Algorithm Optimizer
Matlab has been selected in order to perform all the mentioned steps including the
least squares optimization problem, Equation 6.5, in Step 7 (Appendix F). In order to
boost the calculation’s processing time and reduce computational analysis, a derivative-free optimization method can be employed to optimize the objective function.
Two toolboxes for optimization have been provided in Matlab:
Optimization Toolbox
Global Optimization Toolbox.
Most of the functions in the first toolbox are gradient-based; however there are some
derivative-free solvers in the Global Optimization Toolbox such as Patternsearch.
Patternsearch, which is also known as Direct Search, has a proven convergence and also has a user-supplied start point approach unlike Genetic Algorithm (GA) [96]. Furthermore, this method has less function evaluations compare to other approaches such as Simulated Annealing and Genetic Algorithm (GA), which makes it faster compare to other methods [96]. While most of the traditional optimization methods have been founded on exact or approximate data about the gradient, Patternsearch is a kind of metaheuristic optimization method, which doesn’t use gradient or Hessian matrix and the objective function can be continuous and non-differentiable and be able to be computed by a black box simulation. Therefore, it can be applied to cases in which the analytic derivatives are unknown or difficult to calculate [97] such as Equation 6.5.
This approach starts at an initial guess in step 1 provided by the user with an initial
pattern matrix, , and a scalar parameter solution, . In order to define a natural
stopping criterion for the search, has been introduced. The Generalized
Patternsearch has been characterized by Exploratory Moves according to [97], and
the algorithm finds the next step by applying exploratory moves: .
Whenever, , then and the will be
updated, otherwise it will stick to the current point.
In Figure 6.5, firstly the Patternsearch algorithm tries the step . However,
; therefore this method tries the next step, and the objective function
can be evaluated at = + . Since < , the move can be
Figure 6.6: Patternsearch Exploratory Moves
Patternsearch tries to minimize the objective function using the feasible start points
from step (1) and comes up with new suggested values of { } to reduce
Equation 6.5.