You are on page 1of 7

GENETIC ALGORITHMS FOR MAINTENANCE SCHEDULING

IN POWER SYSTEMS
Michael Negnevitsky and Galina Kelareva
School of Engineering
University of Tasmania
GPO Box 252-65 Hobart, Tasmania 7001, Australia
E-mail: Michael.Negnevitsky@utas.edu.au
Abstract
Genetic algorithms become popular as a powerful optimisation tool suitable for a variety of
problems. This paper describes an application of genetic algorithms to maintenance
scheduling in power systems. A representation suitable for a variety of problems is designed
and appropriate chromosome evaluation is suggested. A case study is presented.
1. INTRODUCTION
Planning tasks play a key role in maintaining safe
and economical operation of modern power systems.
These tasks are divided into two categories: system
planning over a very long period of time and
operation planning for a shorter period ranging from
several minutes to a few years. While system
planning is concerned with long term investments in
the power system and related to the installation of
new generation units and building new power
transmission lines, operation planning deals with
maintenance scheduling of power units, unit
commitment and economic dispatch. Maintenance
scheduling, discussed in this paper, determines the
period of maintenance works on power units so that
the sum of operation and maintenance costs is
minimised while maintaining a certain level of
reserve margin [1]. Maintenance scheduling requires
to take into account several different factors such as
the availability of the maintenance crew, specific
requirements for the unit maintenance order, and the
past history of maintenance. The task of
maintenance scheduling can be mathematically
formulated as an integer or mixed integer
programming problem, and thus reduced to the
solution of the combinatorial optimisation problem.
It means that the complexity of the maintenance
scheduling problem increases dramatically with the
number of units.
The increasing importance of maintenance
scheduling in power systems is based on the high cost
of the equipment maintenance and the need to
increase system security. The large capacity of units
employed in modern power systems results in the
possible large loss of generation power with a single
outage. As a result, power systems have to carry a
higher reserve margin. Thus, the effective
deployment of existing units allows power systems to
achieve substantial savings. However, such a
deployment has to be carried out under a number of
uncertain and unpredictable circumstances. This has
stimulated a considerable interest in the development
of automated maintenance scheduling procedures.
The existing methods used for maintenance
scheduling include:
1. Dynamic programming. It attempts to utilise
different objectives such as maximising the
minimum net reserve and minimising the risk of
failing to meet the power demand [2, 3]. Dynamic
programming suffers the curse of dimensionality
for large scale problems such as maintenance
scheduling problems.
2. Integer programming and mixed integer
programming. These methods impose some
artificial constraints such as the requirement to
have each unit maintained only once during the
time period of interest [4, 5]. In addition, integer
programming makes it difficult to represent
complex constraints existing in real maintenance
scheduling problems.
3. Rule-based and frame-based expert systems. The
Branch-and Bound method [5] coupled with
heuristic knowledge has proved to be effective [6],
but expert systems still have difficulties to be
overcome. Major obstacles here are knowledge
acquisition, validation and consistency checking.
Besides, expert systems cannot guarantee an
optimal maintenance schedule.
4. Artificial neural networks. Despite the fact that
artificial neural networks at present is far from the
goal to mimic human brain's functions, they have
found many practical applications in power
systems including the task of maintenance
scheduling [7].
This paper presents an alternative approach to
maintenance scheduling in power systems. This
approach relies on genetic algorithms.
2. TUTORIAL ON GENETIC ALGORITHMS
In the early 1970s, John Holland, one of the founders
of evolutionary computation, introduced the concept
of a genetic algorithm (GA) [8]. The basic idea
behind GAs was to make computers do what nature
does. As a computer scientist, Holland was
concerned with algorithms that manipulate strings of
binary digits. He viewed these algorithms as an
abstract form of natural evolution. The Holland's GA
can be represented by a sequence of procedural steps
for moving from one population of artificial
"chromosomes" to a new population. It uses
"natural" selection and genetics-inspired techniques
known as crossover and mutation. Each chromosome
consists of a number of "genes", and each gene is
represented by 0 or 1, as shown in Fig.1.
1 1 0 1 0 1 0 0 0 0 0 1 0 1 1 0
Figure 1. A 16-bit binary string of an artificial
chromosome.
Nature has an ability to adapt and learn without
being told what to do. In other words, nature finds
good chromosomes blindly. GAs do the same. There
are two basic mechanisms that link a GA to the
problem it is solving: encoding and evaluation.
In Holland's work, encoding is carried out using
chromosomes represented by strings of ones and
zeros. Although many other types of encoding
techniques have been invented [9], no one works best
for all problems. We will use bit strings as the most
popular technique.
An evaluation function is used to measure the
chromosome's performance, or fitness, on the
problem to be solved. An evolution function in GAs
plays the same role that environment plays in natural
evolution. The GA uses a measure of fitness of
individual chromosomes to carry out reproduction.
As reproduction takes place, the crossover operator
exchanges parts of two single chromosomes, and the
mutation operator changes the gene value in some
randomly chosen location of the chromosome. As a
result, after a number of successive reproductions, the
less fit chromosomes become extinct, while those best
able to survive gradually come to dominate the
population. It is a simple approach, yet even crude
reproduction mechanisms display highly complex
behavior and are capable of solving some difficult
problems.
Given a clearly defined problem and a binary string
representation for candidate solutions, a basic GA
can be represented in the following steps [9, 10]:
Step 1: Represent the problem variable domain as a
chromosome of a fixed length, choose the size of a
chromosome population N, the crossover probability
p
c
and the mutation probability p
m
.
Step 2: Define a fitness function to measure the
performance, or fitness, of an individual chromosome
in the problem domain. The fitness function
establishes the basis for selection of chromosomes
that will be mated together during reproduction.
Step 3: Randomly generate an initial population of
chromosomes of size N:
x
1
, x
2
, . . . , x
N
Step 4: Calculate the fitness of each individual
chromosome:
f (x
1
), f (x
2
), . . . , f (x
N
)
Step 5: Select a pair of chromosomes for mating
from the current population. Parent chromosomes
are selected with a probability related to their fitness.
Highly fit chromosomes have a higher probability of
being selected for mating than less fit chromosomes.
Step 6: Create a pair of offspring chromosomes by
applying genetic operators crossover and mutation.
Step 7: Place the created offspring chromosomes in
the new population.
Step 8: Repeat Step 5 until the size of the new
chromosome population becomes equal to the size of
the initial population, N.
Step 9: Replace the initial (parent) chromosome
population with the new (offspring) population.
Step 10:Go to Step 4, and repeat the process until the
termination criterion is satisfied.
GAs represent an iterative process. Each iteration is
called a generation. A typical number of generations
for a simple GA can vary from 50 to over 500 [10].
The entire set of generations is called a run. At the
end of a run, we expect to find one or more highly fit
chromosomes.
Genetic algorithms apply three genetic operators:
selection, crossover and mutation.
100 0
75. 2
49. 5
43. 1
36. 7
16. 5
X1: 16. 5%
X2: 20. 2%
X3: 6. 4%
X4: 6. 4%
X5: 25. 3%
X6: 24. 8%
Figure 2. Roulette wheel selection.
The most popular technique for chromosome
selection is the roulette wheel selection [9, 11]. Fig. 2
illustrates the roulette wheel for the population of six
chromosomes. Each chromosome presented in Fig. 2
is given a slice of a circular roulette wheel. The area
of the slice within the wheel is equal to the
chromosome fitness ratio. To select a chromosome
for mating, a random number is generated in the
interval [0, 100], and the chromosome whose
segment spans the random number is selected. It is
like spinning a roulette wheel where each
chromosome has a segment on the wheel proportional
to its fitness. The roulette wheel is spun, and when
the arrow comes to rest on one of the segments, the
corresponding chromosome is selected.
Once a pair of parent chromosomes is selected, the
crossover operator is applied. First, the crossover
operator randomly chooses a crossover point where
two parent chromosomes "break", and then
exchanges the chromosome parts after that point. As
a result, two new offspring are created. For example,
the chromosomes X6 and X2 could be crossed over
after the second gene in each to produce the two
offspring, as shown in Fig. 3. A value of 0.7 for the
crossover probability generally produces good results.
Crossover
X6 1 0 0 0 0 1 0 X2
0 X1 0 1 1 1 X5 1 0 1 0
0 1
0 0
1 1 1
0 1 0
Figure 3. The crossover operation.
The final genetic operation is mutation. Mutation
which rarely occurs in nature represents a change in
the gene. Holland introduced mutation as a
background operator [8]. Its role is to provide a
guarantee that the search algorithm is not trapped on
a local optimum. The sequence of selection and
crossover operations may stagnate at any
homogeneous set of solutions. Under such
conditions, all chromosomes are identical, and thus
the average fitness of the population cannot be
improved. However, the solution might appear to
become optimal, or rather locally optimal, only
because the search algorithm is not able to proceed
any further. Mutation is equivalent to a random
search, and aids us in avoiding loss of genetic
diversity.
The mutation operator works by flipping a randomly
selected gene in a chromosome, as shown in Fig. 4.
Mutation can occur at any gene in a chromosome
with some probability. The mutation probability is
quite small in nature, and is kept quite low for GAs,
typically in the range between 0.001 and 0.01.
Genetic algorithms assure the continuous
improvement of the average fitness of the population,
and after a certain number of generations (typically
several hundred) the population evolves to an optimal
or near-optimal solution.
Mutation
"
1 1 1 1 1 01 1 1
Figure 4. The mutation operation.
3. DEVELOPMENT OF THE GA FOR
MAINTENANCE SCHEDULING
Maintenance scheduling discussed in this paper
determines maintenance periods of power units so
that a certain level of reserve margin is retained. The
process of the GA development includes the
following five steps.
Step 1: Specify the problem, define constraints and
optimum criteria. Power system components are
made to remain in operating conditions during the
entire period of their life by constant preventive
maintenance. The purpose of maintenance
scheduling is to find the sequence of outages of power
units over a given period of time (normally a year)
such that the level of security in a power system is
maximised.
Any outage in a power system is associated with
some loss in security. The security margin is
determined by the nett reserve of the system. The
nett reserve, in turn, is defined as the total installed
generating capacity of the system minus the
generation loss due to a pre-scheduled outage and
minus the maximum load forecast during the
maintenance period. For instance, if we assume that
the total installed capacity is 150 MW and a unit of
20 MW is scheduled for maintenance in the time
interval during which the maximum load is predicted
to be 100 MW, then the nett reserve will be equal to
30 MW. Maintenance scheduling must ensure that
sufficient nett reserve is provided for secure power
supply at any maintenance period.
Suppose, the maintenance requirements involve the
scheduling of four power units in six equal intervals.
The maximum loads expected during these intervals
are 70, 60, 85, 75, 60 and 80 MW, respectively. The
unit capacities and their maintenance requirements
are presented in Table 1.
Table 1.
Unit data and maintenance requirements.
Unit
number
Unit
capacity,
MW
Number of intervals
required for unit
maintenance
1 20 2
2 15 1
3 35 1
4 40 2
The constraints for this problem are specified as
follows:
Unit 1 is to be maintained at two consequent
intervals.
Unit 4 is to be maintained in two separate intervals
and not to be maintained at interval 6.
The nett reserve of the power system must be
greater or equal to zero at any interval.
The optimum criterion here is the maximum of the
nett reserve at any maintenance period.
Mathematically this problem can be described as
follows:
Maximise { } T i R
i
, , 1 , min (1)
where R S P C X
i i j ij
j
N

1
,
S is the system capacity, P
i
is a predicted load for
interval i, C
j
is the capacity of unit j,

,
_

N
j
j
S C
1
,

'

otherwise , 0
interval in unit on done is e maintenanc the if , 1 i j
X
ij
N is the number of units, and T is the number of
maintenance intervals.
Apparently, the total capacity of the units running at
any interval should be no less than the load predicted
at this interval, that is,
C X P i T
j ij i
j
N

,
, . . . , for any 1
1
. (2)
Step 2: Represent the problem domain as a
chromosome. Our scheduling problem represents an
ordering problem which requires placing a list of
tasks in a particular order. A complete schedule may
consist of a number of overlapping tasks, but not all
orderings are legal, since they may lead to constraint
violations. Our job is to represent a complete
schedule as a chromosome of a fixed length.
An immediate coding scheme that comes to mind is
to assign each unit a binary number and to let the
chromosome be a sequence of these binary numbers.
However, an ordering of the units in a sequence does
not directly represent a schedule. Some units can be
maintained simultaneously, and we must also
incorporate the time required for unit maintenance
into the schedule. Thus, rather than ordering units in
a sequence, we might build a sequence of
maintenance schedules of individual units. The unit
schedule can be easily represented as a 6-bit string,
where each bit is a maintenance interval. If a unit is
to be maintained in a particular interval, the
corresponding bit assumes value 1, otherwise it is 0.
Thus, a complete maintenance schedule for our
problem can be represented as a 24-bit chromosome.
However, crossover and mutation operators can easily
create binary strings that call for maintaining some
units more than once and others not at all. In
addition, we could call for maintenance periods that
would exceed the number of intervals really required
for unit maintenance.
A better approach is to change the chromosome
syntax. As already discussed, a chromosome is a
collection of elementary parts called genes.
Traditionally, each gene is represented by only one
bit and cannot be broken into smaller elements. For
our problem, we can adopt the same concept, but
represent a gene by four bits. In other words, the
smallest indivisible part of our chromosome is a 4-bit
string. This representation allows crossover and
mutation operators to act according to the theoretical
foundation of genetic algorithms. What remains to
be done is to produce a pool of genes for each unit, as
shown in Table 2.
Table 2. Unit gene pools.
Unit Gene pool Unit Gene pool
1 1 1 0 0 0 0
0 1 1 0 0 0
0 0 1 1 0 0
0 0 0 1 1 0
0 0 0 0 1 1
2 1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
3 1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
4 1 0 1 0 0 0
1 0 0 1 0 0
1 0 0 0 1 0
0 1 0 1 0 0
0 1 0 0 1 0
0 0 1 0 1 0
The GA can now create an initial population of
chromosomes by filling 6-gene chromosomes with
genes randomly selected from the corresponding
pools.
Step 3: Define a fitness function to evaluate the
chromosome performance. The chromosome
evaluation is a crucial part of the GA, because
chromosomes are selected for mating based on their
fitness. The fitness function must capture what
makes a maintenance schedule either good or bad for
the user. For our problem we apply a simple function
concerned with constraint violations and the nett
reserve at each interval.
The fitness function of a chromosome k can be
defined as
{ } T i R F
i k
, , 1 , min (3)
If the nett reserve is positive at any interval, the
chromosome does not violate constraints (2) and
function F
k
represents the chromosome fitness. If,
however, the nett reserve at any interval is negative,
the schedule is illegal, and the fitness function
returns zero. However, at the beginning of a run, a
randomly built initial population might consist of all
illegal schedules. In this case, chromosome fitness
values remain unchanged, and selection takes place
in accordance with the actual fitness values.
Thus, the fitness function of a chromosome k can be
redefined as
( )

'


<

otherwise ,
; 0 and 0 that and
such exist there and 0 if , 0
k
n m
k
k k
F
F F n m
F
F
(4)
where { } T i R F
i k
, , 1 , min
Step 4: Construct the genetic operators.
Constructing genetic operators is a challenging
process, where experimentation is necessary to make
crossover and mutation work correctly. The
chromosome has to be broken up in a way that is
legal for the problem at hand. Since we have already
changed the chromosome syntax for our problem, we
can use the GA operators in their classical forms.
Each gene in a chromosome is represented by a 6-bit
indivisible string which consists of a possible
maintenance schedule for a particular unit. Thus,
any random mutation of a gene or recombination of
several genes from two parent chromosomes may
result only in changes of the maintenance schedules
for individual units, but cannot create "unnatural"
chromosomes.
Step 5: Run the GA and tune its parameters. It is
time to run the GA. First, we must choose the
population size and the number of generations to be
run. Common sense suggests to us that a larger
population can achieve better solutions than a smaller
one, but will work more slowly. In fact, however, the
most effective population size depends on the
problem being solved, particularly, on the problem
coding scheme [11]. The GA can run only a finite
number of generations to obtain a solution.
Apparently, we could choose a very large population
and run it only once. Or, we could choose a smaller
population and run it several times. In any case, only
experimentation can give us the answer.
4. CASE STUDY
Let us now consider a case study. This case study is
concerned with maintenance scheduling in the SEC
system of Victoria [12]. The system consists of 62
units which are to be maintained in 26 intervals
during a year. Unit data and maintenance
requirements are shown in Table 3.
Table 3. Unit data and maintenance
requirements
for the case study.
Unit
number
Unit
capacity,
MW
Number of intervals
required for unit
maintenance
1,,10 10 1
11,,20 20 1
21,,30 30 1
31,,35 40 2
36,,40 40 2
41,,45 50 2
46,,50 55 3
51,,55 60 4
56,,60 70 3
61 85 4
62 90 4
The constraints for the case study are specified as
follows:
Maintenance of any unit starts at the beginning of
an interval and finishes at the end of the same or
adjacent interval. The only exception is the
maintenance of unit 62.
Unit 62 is to be maintained in four intervals
divided in two equal periods. The minimum
operating period is 8 intervals.
Units 61 and 62 are to be available for the winter
period (intervals 21-26), units 56-60 are to be
available in intervals 23-26.
Units 1-5, 15-20 and 25 are to be available in the
summer period (intervals 7-13).
The maximum loads expected during 26 intervals are
given in Table 4.
Table 4. The expected maximum loads for the
case study.
Interval number Predicted load, MW
1,2 2100
3-4 1900
5-7 1750
8,9 1650
10-12 1600
13-15 1700
16-18 1900
19-21 2000
23,24 2200
25,26 2100
Obtained results are given in Table 5, and the
performance graph is shown in Fig. 5.
Table 5. Maintenance scheduling for the case study.
Interval Units scheduled for maintenance Nett reserve
1 10,22 210
2 15,19 210
3 2,6,45,62 290
4 1,3,31,45,62 250
5 31,58 340
6 13,18,38,58,61 365
7 7,38,56,58,61 325
8 41,46,49,56,61 285
9 14,28,41,46,49,54,56,61 275
10 32,37,46,49,54 450
11 26,32,36,37,51,52,54 420
12 24,36,51,52,53,54,60 370
13 39,42,51,52,53,60 410
14 35,39,42,51,52,53,55,60 210
15 8,9,17,25,34,35,47,53,55,62 235
16 29,30,34,47,55,59,62 275
17 4,42,47,50,55,59 150
18 22,40,43,48,50,59 150
19 21,40,48,50,57 200
20 16,44,48,57 155
21 11,27,44,57 180
22 12,20 310
23 150
24 150
25 33 210
26 5,33 200
Figure 5. Performance graph for the case study.
Note that there is no interval with nett reserve less
than 150 MW (on the intervals 23 and 24 the
predicted load is 2200 MW while the total unit
capacity is 2350 MW).
5. CONCLUSIONS
Solving a problem using genetic algorithms involves
defining constraints and optimum criteria, encoding
the problem solutions as chromosomes, defining a
fitness function to evaluate the chromosome
performance, and creating appropriate crossover and
mutation operators.
Genetic algorithms represent a very powerful tool.
However, coding the problem as a bit string may
change the nature of the problem being investigated.
There is always a danger that the coded representation
represents a problem which is different from that
desired to be solved.
There are many potentially areas for applications of
genetic algorithms in power systems. The application
described in this paper demonstrates that one of the
most successful areas may include problems
concerned with scheduling resources.
6. REFERENCES
[1] Weedy, B.M. Electric Power Systems, John Wiley &
Sons, Chichester, 1992.
[2] Christianse, W.R. and Palmer, A.H., "A Technique for
the Automated Scheduling of the Maintenance of
Generating Facilities", Proceedings of the
International Conference on Power Industry
Computer Applications (PICA), U.S.A., 1971, pp.
319-327.
[3] Christiaanse, W.R., "A Program for Calculating
Optimal Maintenance Schedules Recognising
Constraints", Proceedings of the International
Conference on Power Industry Computer Applications
(PICA), U.S.A., 1973, pp. 230-239.
[4] Dopazo, A. and Merrill, H.M., "Optimal Generator
Maintenance Scheduling Using Integer Programming"
IEEE/PES Winter Meeting, New York, January 1974,
100 chromosomes, 200 generations, p
c
= 0.7, p
m
= 0.001
Paper C74 162-4.
[5] Dillon, T.S., Egan, G.T. and Morsztyn, K., "An
Experimental Method of Determination of Optimal
Maintenance Schedules in Power Systems Using the
Branch-and-Bound Technique", IEEE Transactions on
Systems, Man and Cybernetics, Vol. SMC6, No. 8,
August 1976, pp. 538-547.
[6] Dillon, T.S. and Podbury, C., "A Dynamic Frame
Based Maintenance Scheduler", Expert System
Applications in Power Systems, T. S. Dillon and M.
A. Laughton, eds., Prentice Hall, N.Y., 1990, pp. 153-
179.
[7] Niebur, D. and Dillon, T.S., "Artificial Neural
Networks for Power Systems: State of the Art", Neural
Networks Applications in Power Systems, T. S. Dillon
and D. Niebur, eds., CRL Publishing Ltd., London,
1996, pp. 37-110.
[8] Holland, J.H. Adaptation in Natural and Artificial
Systems, University of Michigan Press, Ann Arbor,
1975.
[9] Davis, L. Handbook on Genetic Algorithms, Van
Nostrand Reinhold, New York, 1991.
[10] Mitchell, M. An Introduction to Genetic Algorithms,
MIT Press, Cambridge, Massachusetts, 1996.
[11] Goldberg, D.E. Genetic Algorithms in Search,
Optimisation and Machine Learning. Addison-Wesley
Publishing Company, Reading, Massachusetts, 1989.
[12] Dillon, T.S. and Podbury, C., "A Dynamic Frame
Based Maintenance Scheduler", Expert System
Applications in Power Systems, T. S. Dillon and M.
A. Laughton, eds., Prentice Hall, N.Y., 1990, pp.153-
179.

You might also like