• No results found

As described in§4, the GMS problem may be formulated as a mathematical program in binary form. This poses the possibility of finding optimal solutions to problem instances of the GMS problem by means of mathematical programming solution techniques, as described in§2.3.1. Because of the novelty of objective functions in the models of §4.3 within the GMS domain, approximate solutions obtained by solving even the linear model of§4.3 by means of fast heuristic or metaheuristic cannot be compared to results previously obtained in the literature. Hence mathematical programming solution techniques are employed in an attempt to obtain optimal solutions to instances of the linear model in§4.3. The same approach is followed for a linearised version of the nonlinear model of§4.3 (although an exact solution to the linearised model is, of course, not necessarily an optimal solution to the full nonlinear model). Even if an exact solution technique fails to uncover optimal solutions to these mathematical programming problems, it is usually possible to provide a guarantee on how far from optimal the best solutions uncovered are.

5.2.1 Motivation for the choice of optimisation platform

A number of off-the-shelf integer and MIP solvers exist for solving a wide range of mathematical programming models. Lingo is a modelling language that employs the Lindo [145] solver to solve mathematical programming problems and has been applied successfully in many practical problem instances [25, 58, 201].

Another modelling language, called the open programming language (OPL), often used to solve mathematical programming problems, is an off-the-shelf optimisation package called CPLEX [112, 115]. CPLEX is a powerful solver capable of solving a wide range of problems (such as integer programming problems, large linear programming problems, convex and non-convex quadratic programming problems and convex quadratically constrained problems). Modelling can also be carried out in other programming languages and be linked to CPLEX by means of certain add-ons. Due to the wide use of CPLEX in academia and industry, it is easy to find support for the implementation of mathematical programming models in CPLEX.

Another popular optimisation engine is the Gurobi optimisation package [101]. Gurobi can also be employed to solve a variety of mathematical programs, including linear programs, MIPs, mixed integer quadratic programs, etc. Like CPLEX, Gurobi is also considered one of the leading public benchmark solvers in terms of computation time [100].

Excel Solver is yet another high-level optimisation package available as an add-on to Microsoft Excel [158]. This package employs the simplex method to solve linear programming programs and the generalised reduced gradient algorithm to solve nonlinear smooth problems. The standard version of Excel Solver has a limit on the number of variables (200) and constraints (depending on whether a linear or nonlinear model is considered) [92]. An add-on to Microsoft Excel, developed by Frontline Solvers [91], is capable of handling between 2 000 and 8 000 decision variables, depending on the type of problem under consideration.

The Matlab Optimization Toolbox [154] also has mathematical programming capabilities. This toolbox is capable of solving a variety of optimisation problems such as linear programming problems, MIPs, quadratic programming problems, nonlinear optimisation problems, and non- linear least squares problems. The toolbox may be used to find solutions to either discrete or continuous optimisation problems and can even solve multi-objective optimisation problems [154].

A number of other optimisation packages also exist, such as Fico Xpress [84], AIMMS [6] and various functions available in Python [174] among others.

After considering the advantages and disadvantages of the various optimisation packages avail- able, CPLEX and Gurobi were found to be the two optimisation software suites best suited to GMS models in this dissertation. Both of these packages contain a number of useful features and the performance of the two packages are similar in terms of computation time and model implementation ease. CPLEX was, however, chosen as the optimisation package employed for solving instances of the GMS models of §4.3.

5.2.2 CPLEX implementation

The linear GMS model derived in §4.3 is solved in this dissertation by means of the celebrated off-the-shelf software suite IBM ILOG CPLEX Optimization Studio [112, 115], also referred to colloquially as CPLEX. The name is derived from the simplex method which was initially imple- mented in the programming language C within this software suite. Recently, however, the suite has been updated to support other types of mathematical programming solution techniques and constructs, such as quadratic programming techniques, quadratically constrained programming algorithms, network flow algorithms, other MIP techniques and various heuristics [114].

In order to solve MIP models, CPLEX employs an algorithm that is based on the celebrated branch-and-cut method [138]. This algorithm may be customised as per the user’s preference [113] which may result in the algorithm executing more effectively within the context of a particular problem instance. Emphasis may be placed on either proving optimality or achieving feasibility during the optimisation process without compromising the accuracy of the process. A useful functionality that CPLEX provides, is the possibility of specifying different methods of terminating the search process. These different termination criteria include limiting the processing time, limiting the size of the branching tree or specifying an acceptable tolerance associated with optimality [113]. The algorithms employed by CPLEX can generate thirteen different types of cutting planes, which depend on the nature of the model being solved [113]. Another useful aspect of the robust algorithms employed within the CPLEX optimiser, is that a lower bound on a minimisation objective function is calculated and presented. This lower bound may be interpreted as the best possible objective function value for which an integer feasible solution may potentially exist [113]. As the search for an optimal solution progresses, this value is constantly updated (increased). As the algorithm executes, a relative gap is calculated for each feasible solution obtained. This gap is the difference between the best lower bound thus

found and the upper bound on the minimum objective function value represented by the current solution, which is normalised and presented as a percentage [113]. One can interpret the relative gap as a guarantee on the difference between the objective function values of an optimal solution and the current best solution [114].

The implementation of the linear GMS model proposed in §4.3 is partitioned into three main parts of CPLEX code. The first is the initialisation of the model parameters and variables. The actual CPLEX implementation of parameters and variables coded for the purposes of this study is shown in Figure 5.2. The second part involves specifying the input data pertaining to the parameter values included in the model. This is achieved through data importation from an Excel spreadsheet which contains fields of data pertinent to the various parameters in the

model. The code for achieving this in CPLEX is shown in Figure 5.3. The Excel spreadsheet should contain the required data (e.g. PGU capacities, required maintenance duration, earliest and latest starting dates, etc.) for the problem instance in columns. These columns should be named as shown in Figure 5.3 (e.g. Capacity, Duration, Earliest, Latest, etc.).

The final part of the model implementation in CPLEX involves the specification of the objective function and the accompanying constraints as described in §4.3.3. The actual CPLEX imple- mentations of the linear objective function and model constraints are shown in Figure 5.4.

Figure 5.3: Parameter input specifications through Excel spreadsheets for implementation of the linear GMS model of§4.3 in CPLEX.

Upon linearisation of the objective function in the nonlinear GMS model of §4.3, as described in §5.1, CPLEX may again be used to solve the model by means of its linear solver. Whereas the model constraints are in this case implemented exactly as elucidated in Figure 5.4, the alternative objective function implementation shown in Figure 5.5 is used instead. In this figure, the piecewise linear approximation for the 21-unit test system is presented as example. The optimal breakpoints shown in the figure are calculated in the following chapter.