You are on page 1of 5

Methodology/Algorithm

We begin the solution procedure with the construction of a random permutation. The
random permutation is then stored in a list called the tabu list as a reference for the best
initial solution and its fitness value was calculated. In optimization problems the fitness
of an individual is usually measured in terms of the objective function value of the
solution it represents. Thus for the SRFLP, an individual corresponding to a solution with
a low cost is said to be of high fitness. The number of iterations was initialized before
performing the tabu search. The datasets used determine the optimum number of
iterations that should be performed respective to each dataset. The reason behind this is to
reduce the time and program memory wastage. For small size datasets, the solution with
the highest fitness value can be obtained within a few iterations. In this project, the
procedures of the code were separated into two levels.

In Level One, random permutations with values representing an individual facility


were generated as candidates. The candidates were then checked to ensure that there is no
clash with the permutations contained in the tabu list to avoid repetition. If it is, a random
permutation would be generated again until there is no clash occurring with the tabu list.
If there isnt, the tabu list is updated with the addition of the generated permutation. Next,
the fitness values for the candidates were calculated. The candidate with the best fitness
value would replace the one contained in the array for the best solution found.

In Level Two, the number of iterations was initialized again to obtain an optimum
number of iterations. However, the number of iterations in this level would be much
lesser than that in Level One. Next, the best solution was extracted from the candidates in
Level One. A second tabu list was initiated. The modifications were done in this level
where two points were selected randomly. The position of the facilities from the extracted
solution indicated by the points were swapped with each other. Then, the new
arrangement was checked again to ensure there was no repetition. The fitness value for
the modified candidates were subsequently calculated. The second tabu list was then
updated when there is no clash occurring. The best solution from each iteration is placed
into a matrix until all iterations are complete. Then, the best solution from this matrix is
compared to the best solution from Level One. Hence, the best solution was obtained.

Code
Input: A SRFLP instance of size n
Outpur: A modified arrangement which has the minimum cost among all permutation

1.

Obtain initial facility arrangement and corresponding fitness value

2.

Initiate first tabu list

Level 1
3.

Generate first tabu list

4.

while (<maximum iterations) begin

5.

Generate new facilities arrangement as candidate

6.

Check if any candidate clashes with the first tabu list

7.

Calculate fitness value for candidates arrangement

8.

The best solution for Level 1 is obtained

9.

end;

10. Identify optimum number of iterations


11. Initiate second tabu list
Level 2
12. While (<maximum optimal iterations) begin
13.

Extract the best solution from Level 1

14.

Select two points

15.

Swap the facilities indicated by the two points

16.

Check if any modified candidate clashes with second tabu list

17.

Calculate fitness value for modified candidates arrangement

18.

Select best solution from Level 2

19.

Compare best solution from Level 2 with best solution from Level 1

20. end;

This project is about the single row facility layout problem whereby it is a problem that
requires finding the best or optimum arrangement for implementing the facilities in a
manufacturing industry. The meta-heuristic approach that we have chosen for this project
is the Function Improved Tabu Search method.
In order to improve the heuristics, permutation of facilities is initially started with one
permutation and thus the algorithm will further develop the solutions until the solution
cannot be improved further. Improving the heuristics for this project is implemented by
using only single based heuristics rather than using different types of heuristics and
combining it.
Improvements to the tabu search are applied by classifying it into 2 levels which are
intensification and reconstruction. This is a modification to the 3-level tabu search
improvement done by Surya Prakash Singh [2]. A current solution was generated through
random permutation. Level One is the intensification level where it improves the current
solution by random permutation and applies the solution to the one just constructed.
Intensification does not apply during first iteration. It is intensified when more candidates
were generated throughout the iterations. Level Two is the reconstruction part where it is
the reconstruction of the solutions where these solutions are responsible for escaping
from the current local optimum and producing new regions in the solution space. Lastly
the final step is to accept the solution whereby it goes through a process of selecting
candidate solutions for the best one.
There are 3 datasets used in this project to test the program. Solimanpur_F5 is a small
dataset. From the results above, the total fitness or greatest fitness of the permutation was
1.1 and the average time for the program to run was 0.2s. It was showed that the
permutations of the 5 facilities were repeated with the greatest fitness. It was also found
that there were only two best permutation generated from this dataset as the program was
ran more. The program generated these two best arrangements with the greatest fitness
indicated that there are possible to have several permutations with the same best fitness
value. In this case, there were only two best solutions could be found in this dataset.
Moreover, the dataset Anjos60_01 showed that the program had ran around three minutes
to get the best fitness from it. The total fitness of these dataset had an average of 2000000
fitness value. However, the permutations generated were different. On the other hand,
dataset Anjos80_03 showed that the program took more time to get the best fitness value.
It merely exceeds three minutes. The average fitness value was 4770000. From these 11
two large dataset, it was showed that as the size of dataset increased, the more time it
took for the program to search for best solutions and the larger the fitness value.
In this project, only 3 results are taken from each dataset. In order to improve on the
results obtained, one can try to increase the number of iterations. As the program goes

through more iterations, better or consistent solutions could be produced. However, the
time taken for the program to search for the solution would need to be prolonged. If the
number of iterations is too large, the computer might not have the capable system
requirements to be able to complete them. Hence, more solutions could be obtained with
a number of iterations below a certain limit or the program could also stop when the
stopping criterion such as a certain time limit is reached. Then, the solutions obtained
were used to compare. As long as the solutions are consistent, the solutions or
permutations can be accepted.
A difficulty that was encountered while developing the code for the program is that a
facility may appear more than twice in an arrangement after reconstruction. This defeats
the purpose of obtaining an optimum solution whereby each facility only appears once
and hence, this is a problem of repetition. In order to overcome this setback, a defense
mechanism, technically speaking, was built in the reconstruction phase of the program
whereby it checks if any one facility appears twice in a permutation. If a repetition is
detected, the program would default back to reconstructing the solution from Level One
until no repetition is detected.
Besides that, another difficulty that appears is the problem whereby when a constant
number of iterations are applied to a variety of datasets, a variety of results are produced.
For example, for a dataset with more than 50 facilities, an optimum result is produced but
for a smaller dataset, the program gets stuck and does not respond. This is due to the
limited number of permutations that different datasets can produce and thus, by iterating
more than the number of possible permutations, the program has no choice but to try to
find a different permutation that has not been into the tabu list and this can prove futile.
Thus, to overcome this, the program is tested with different numbers of iterations for
different datasets to find a satisfactory number for datasets having a number of facilities
that fall within a range. Although this approach may not prove to be the most efficient
approach, it is nevertheless, a satisfactory one and there are many opportunities to explore
different approaches that are more effective than the one mentioned.

You might also like