Professional Documents
Culture Documents
Jobshop Scheduling in A Shipyard (Paper)
Jobshop Scheduling in A Shipyard (Paper)
2
3
Department of Computer Science, University of Aarhus, E-mail: stidsen@daimi.aau.dk, WWW: http://www.daimi.aau.dk/ stidsen
Department of Computer Science, University of Aarhus, E-mail:
larsvk@daimi.aau.dk, WWW: http://www.daimi.aau.dk/ larsvk
Department of Computer Science, University of Aarhus, E-mail: savanna@daimi.aau.dk, WWW: http://www.daimi.aau.dk/ savanna
Problem definition
2.1
The workshop
The actual workshop produces large parts of the ship. These parts are
called blocks and they usually weigh more than 100 tons. The blocks
are all built of steel plates, which are welded together.
10
11 12
Initial stations
Injection gate Handwelder stations
Shipbuilder stations
Robot station
Introduction
2.2
In the following we present the different parts of the GA, which was
constructed to produce the needed scheduling plans.
3.1
Constraints
Because we are working with a real jobshop task, not all scheduling
plans are possible: There are two different kinds of constraints or
limitations in the solution-space:
Finally it should be noted that naturally all blocks should be produced. This may seem trivial, but some of our genetic operators
actually may violate this "constraint" and the resulting individuals
have to be repaired.
2.3
3.2
The macro scheduling plan defines the frame in which the scheduling
plan for the workshop should be designed. For each block and for
each type of work the number of working hours, which is to be
performed, is given. This measure is quite precise. Further, the macro
scheduling plan establishes the time constraint-dates i.e. defines when
the production of a block can be started and should be finished. The
scheduling plan for the workshop should be constructed within these
requirements. The scheduling plan can be viewed as consisting of a
number of parameters, which should be optimized. These parameters
are:
Constraints
The problem with the time-constraints cannot be easily solved using the forbidding approach, since it is very unclear how one should
change an individual, where one or more blocks break the timeconstraints. On the other hand, the geometrical constraints can be
checked rather simply and the removal of blocks from too big packages constitutes a simple way of repairing these packages. For these
reasons we choose to use the fitness approach on the time-constraints
and forbid packages breaking geometrical constraints.
Good in this perspective means locally good for the workshop, but maybe
bad from a wider perspective.
Section Title
The basic GA
The constraints are a very important part of the problem and the
strategy of how to solve the problem under the given constraints
affects the rest of the algorithm. In general there are two different
methods of using GA on constrained problems:
The last point is the means with which it is possible to change the
capacity of the workshop. The number of men assigned to a station has
4
Population P;
Initialize(P);
Evaluate(P);
while (not Finished()) do
if (SelectOperator() = mutation) then
parent := SelectForMutation(P);
child := ReplicateAndMutate(parent);
else
** SelectOperator() = crossover **
(father, mother) := SelectForCrossover(P);
child := Crossover(father, mother);
endif
P4
2
6
7
3
4
9
5
8
1
10
Shift 1: 8
Shift 2: 7
Shift 3: 4
Station 4
Station 5
Station 6
Station 8
Station 9
Station 10
Station 11
Station 12
Workers, week 2
Station 4
Station 5
Station 6
Station 8
Station 9
Station 10
Station 11
Station 12
Shift 1: 6
Shift 2: 4
Shift 3: 0
Representation
3.5
Mutations
The standard argument for mutations is, that they ensure the possibility that all parts of the search space may be visited. To accomplish
this, we have constructed several mutations.
To change the contents of the packages, we have designed the
following mutation types:
Initialization
P3
Workers, week 1
result := BestOf(P);
3.4
P2
An individual
Evaluate(child);
dead := SelectDead(P);
P[dead] := child;
endwhile
3.3
P1
Block-info, block 1
Block-info, block 2
Block-info, block 3
Block-info, block 4
Block-info, block 5
Block-info, block 6
Block-info, block 7
Block-info, block 8
Block-info, block 9
Block-info, block 10
3
Move men: Chooses two random weeks, two random stations and
two random shifts and moves a random number of men from the
one spot to the other, if possible.
Together, the previously mentioned mutations enable the possibility of reaching all parts of the search space. It might though be
argued, that none of these mutations, except Swap packages, are big
mutations. But several small mutations may accomplish the same effect, and this is possible even if each of the small mutations reduces
the fitness, because we only exert a rather weak selection pressure
on the population. Besides, it is rather easy to enlarge the mutations
and for instance, distribute the size of the mutation according to the
gaussian distribution.
All the previous mutations are so called blind mutations, which
alter the chromosomes with an equal probability on all parts. Because
the problem of fulfilling the time-constraints proved to be quite hard,
we added some special mutations, which increase the probability of
improving the worst parts of the chromosomes.
Crossover
F4
M1
M2
M3
M4
M5
2
6
7
3
4
9
5
8
1
10
6
7
2
3
9
4
5
8
10
F1
F2
F3
F4
M1
M2
M3
M4
M5
2
6
7
3
4
9
5
8
1
10
6
7
2
3
9
4
5
8
10
C1
C2
C3
C4
C5
2
6
7
3
4
9
8
10
1. Check the package just outside the workshop. For each block in
the package, check the starting constraint-dates and check the time
to see whether it is legal5 to start production of this package now.
If it is legal, roll the entire assemblyline and insert the new package
at station 4. If it is not legal, roll the entire assemblyline making
an empty station 4.
2. Given a number of packages in the workshop: For each of the
stations: Station 8, the last shipbuilder station, station 9, the robot
station, and station 12, the last handwelder station, calculate when
these stations with the given crew will have finished their jobs.
The latest of these dates is the next rolling time.
3. Return to 1.
A few things should be noted about this kind of simulation:
Fitness function
F3
3.7
F2
Figure 4. The one point crossover of the package part of the chromosome.
3.6
F1
Here legal means that all packages have a fulfilled starting constraint.
8blocks:tactual >tconstraint
k1
k tactual?tconstraint
e
2 (
(1)
8blocks:tactual tconstraint
( constraint ? actual )
t
(2)
Results
ACKNOWLEDGEMENTS
We would like to thank the entire project group at OSS: Helle Jensen
(MD) who initiated this project, Ole Haastrup (MD), Christian Voigt
(MD), Esben T. Horup (OSS) for letting us base a part of this project
on his masters thesis and Claus Risager (OSS) for guidance throughout the project. Finally we want to thank our supervisor Professor
Brian Mayoh for making this project possible.
REFERENCES
For these reasons, we will not attempt to compare the GA results with
the manual planning.
The aim of this project was not to automate the manual planning.
It was to investigate the possibility of creating a tool, which could act
6
GAs are flexible i.e. they are quite easy to adjust to new problems.
It is possible to implement domain knowledge through special
mutations, without requiring total knowledge about the problem.
It may be needed to create special initializations, in order to reduce
the number of conflicts from the given constraints.
Weak constraints, which cannot be solved by initialization methods
or repair methods, can be solved by the GA by using penalty-terms.
The running-in period refers to the time, when the robots were introduced
in the workshop. This introduction caused planning problems, thus making
the workshop inefficient.
Section Title