• No results found

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.