[ieee 2010 11th international symposium on computational intelligence and informatics (cinti) -...

8
A new optimizing algorithm using reincarnation concept Anurag Sharma School of Computing, Information and Mathematical Sciences The University of the South Pacific, Fiji [email protected] Abstract—Several metaheuristic algorithms based on nature- inspired phenomena have been developed to optimize non linear functions. Evolutionary systems, swarming and human immune systems have helped in development of many optimizing algorithms like genetic algorithms, particle swarm optimization and CLONALG. A novel algorithm has been proposed based on the popular belief of reincarnation where human is considered to be reborn again and again in a new body but with the same soul. The rebirth cycle is broken only through attaining salvation or nirvana. The algorithm is tested on benchmark Travelling Salesman Problem and compared with the efficiency of genetic algorithms. It has been named Reincarnation Algorithm (RA) as it is inspired through the reincarnation concept. RA has shown some promising results from early investigations. The current version solves discrete optimization problems only. I. INTRODUCTION This paper first reviews the concept of reincarnation. As other nature-inspired optimization algorithms like genetic algorithms [5], particle swarm optimization [8] and CLONALG [7], RA is also based on analogy of nature – reincarnation belief. We are not intending to model exactly the reincarnation concept as the concept is not well defined scientifically, but attempting to demonstrate that some basic principles of reincarnation can help in the development of a computational technique that can solve many complex optimization problems. Reincarnation concept is similar to action-reaction law of physics [3] in that “whatever you do in this life will reflect in your next life”. RA utilizes the techniques of local and population based search to cover the wide search space in a limited time frame. The system basically works with two sets of human population. One is salient population (called gurus) with higher fitness values and another is common population (called commoners) with low fitness values. The entire population of humans is dispersed evenly into many small subsets of communities. Humans are bound to perform karma or deeds that can upgrade or degrade their souls depending on the types of karma (either good or bad). Population of commoners gets influenced by the population of their own community guru(s) and their closed ones to search locally for better fitness value. The best guru i.e. the guru with the best fitness value obtained so far for the entire population, influences other gurus as well as commoners of all the communities to search for global best solution. This algorithm also considers atheists in the same population who are not influenced by anyone but through their own self realization. The search for better fitness value is termed as karma. RA uses karma and soul to handle input and output/fitness values respectively. The cycle of rebirth continues for many generations where karma of previous generation is carried forward to future generations through souls. Karma as discrete search space is heuristically updated in every generation based on reincarnation analogy to search for optimum solution. RA has been applied to some benchmark Travelling Salesman Problem (TSP) problems and its efficiency is compared with Genetic Algorithms (GA) which is one of the most powerful and effective optimization techniques [2]. RA can also be used to solve many of the same kind of optimizing problems as GA does. Both use population based search technique but RA differs with GA in terms of keeping population intact. In GA, a fraction of population is replaced at each generation i.e. destruction of previous knowledge but RA retains previous knowledge and population is never replaced at any stage. RA uses reincarnation concept with its own set of operators to search for optimum solution. The paper is organized as follows: Section 2 reviews the concept of reincarnation. Section 3 discusses how reincarnation concept can lead to a novel heuristic optimizing algorithm. Section 4 describes major operators involved in RA. Section 5 evaluates the efficiency of RA algorithm with GA algorithms. Section 6 elaborates on process control techniques incorporated in RA. Section 7 concludes the paper. Pseudocode for RA is given in the appendix. II. REINCARNATION CONCEPT Reincarnation is a popular belief prevalent in some ancient cultures [4]. It is still widely accepted by some religions like Hinduism and Buddhism. The basic idea behind reincarnation concept is that every living being has a soul which never dies but the body in which it resides dies at a certain age. The ultimate goal of the soul is to reach nirvana/salvation which means it is now freed from the cycle of rebirth. This is done through performing good CINTI 2010 • 11th IEEE International Symposium on Computational Intelligence and Informatics • 18–20 November, 2010 • Budapest, Hungary 978-1-4244-9280-0/10/$26.00 ©2010 IEEE - 281 -

Upload: anurag

Post on 13-Mar-2017

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: [IEEE 2010 11th International Symposium on Computational Intelligence and Informatics (CINTI) - Budapest, Hungary (2010.11.18-2010.11.20)] 2010 11th International Symposium on Computational

A new optimizing algorithm using reincarnation concept

Anurag Sharma

School of Computing, Information and Mathematical Sciences The University of the South Pacific, Fiji

[email protected]

Abstract—Several metaheuristic algorithms based on nature-inspired phenomena have been developed to optimize non linear functions. Evolutionary systems, swarming and human immune systems have helped in development of many optimizing algorithms like genetic algorithms, particle swarm optimization and CLONALG. A novel algorithm has been proposed based on the popular belief of reincarnation where human is considered to be reborn again and again in a new body but with the same soul. The rebirth cycle is broken only through attaining salvation or nirvana. The algorithm is tested on benchmark Travelling Salesman Problem and compared with the efficiency of genetic algorithms. It has been named Reincarnation Algorithm (RA) as it is inspired through the reincarnation concept. RA has shown some promising results from early investigations. The current version solves discrete optimization problems only.

I. INTRODUCTION This paper first reviews the concept of reincarnation. As

other nature-inspired optimization algorithms like genetic algorithms [5], particle swarm optimization [8] and CLONALG [7], RA is also based on analogy of nature – reincarnation belief. We are not intending to model exactly the reincarnation concept as the concept is not well defined scientifically, but attempting to demonstrate that some basic principles of reincarnation can help in the development of a computational technique that can solve many complex optimization problems. Reincarnation concept is similar to action-reaction law of physics [3] in that “whatever you do in this life will reflect in your next life”.

RA utilizes the techniques of local and population based search to cover the wide search space in a limited time frame. The system basically works with two sets of human population. One is salient population (called gurus) with higher fitness values and another is common population (called commoners) with low fitness values. The entire population of humans is dispersed evenly into many small subsets of communities. Humans are bound to perform karma or deeds that can upgrade or degrade their souls depending on the types of karma (either good or bad). Population of commoners gets influenced by the population of their own community guru(s) and their closed ones to search locally for better fitness value. The best guru i.e. the guru with the best fitness value obtained so far for the entire population, influences other gurus as well as commoners of

all the communities to search for global best solution. This algorithm also considers atheists in the same population who are not influenced by anyone but through their own self realization. The search for better fitness value is termed as karma. RA uses karma and soul to handle input and output/fitness values respectively. The cycle of rebirth continues for many generations where karma of previous generation is carried forward to future generations through souls. Karma as discrete search space is heuristically updated in every generation based on reincarnation analogy to search for optimum solution.

RA has been applied to some benchmark Travelling Salesman Problem (TSP) problems and its efficiency is compared with Genetic Algorithms (GA) which is one of the most powerful and effective optimization techniques [2]. RA can also be used to solve many of the same kind of optimizing problems as GA does. Both use population based search technique but RA differs with GA in terms of keeping population intact. In GA, a fraction of population is replaced at each generation i.e. destruction of previous knowledge but RA retains previous knowledge and population is never replaced at any stage. RA uses reincarnation concept with its own set of operators to search for optimum solution.

The paper is organized as follows: Section 2 reviews the concept of reincarnation. Section 3 discusses how reincarnation concept can lead to a novel heuristic optimizing algorithm. Section 4 describes major operators involved in RA. Section 5 evaluates the efficiency of RA algorithm with GA algorithms. Section 6 elaborates on process control techniques incorporated in RA. Section 7 concludes the paper. Pseudocode for RA is given in the appendix.

II. REINCARNATION CONCEPT Reincarnation is a popular belief prevalent in some

ancient cultures [4]. It is still widely accepted by some religions like Hinduism and Buddhism. The basic idea behind reincarnation concept is that every living being has a soul which never dies but the body in which it resides dies at a certain age. The ultimate goal of the soul is to reach nirvana/salvation which means it is now freed from the cycle of rebirth. This is done through performing good

CINTI 2010 • 11th IEEE International Symposium on Computational Intelligence and Informatics • 18–20 November, 2010 • Budapest, Hungary

978-1-4244-9280-0/10/$26.00 ©2010 IEEE- 281 -

Page 2: [IEEE 2010 11th International Symposium on Computational Intelligence and Informatics (CINTI) - Budapest, Hungary (2010.11.18-2010.11.20)] 2010 11th International Symposium on Computational

karma. Only human beings are allowed to perform karma. If good karma is not up to par, the human will be born again. Soul accumulates all the good and bad karmas. Extremely evil doers get the body of non-human beings in the next generation and will not get human body until they finish their punishment by continually getting different bodies of non-human beings for certain generations. Soul gets body according to karmas in previous life. Fig. 1 shows the reincarnation process where the life of two souls S1 and S2 are shown for 6 generations. For the first 3 generations, S1 receives human body. S1 has done good enough karma for the first 2 generations to get human body but in generation 3 he has been an evil doer hence received non-human body for 2 generations (4 and 5). After completion of punishment for 2 generations he again receives human body. Soul S2 has been very consistent in his good karma and received human body for 4 generations. In fourth generation he has received nirvana because his soul has acquired enough good karmas.

Fig. 1 reincarnation concept of rebirth cycle

III. REINCARNATION ALGORITHM After discussing the reincarnation concept, the

implementation of the algorithm is also not very complex. There are a few major points to note – soul never dies but the body dies; humans perform karma and gain the fruit by strengthening/cleaning their soul; some souls attain nirvana, majority are born again in human form, and some are born into non-human species and return into human form after going through the lives of non-human species for a few generations.

The RA is a progress of souls to attain nirvana/salvation by going through many generations. It is similar to other population based heuristic algorithms where the system is initialized with a set of random population where every member looks for better solution. The program stops when any of the termination criteria [see Section 6.2] is met. The RA algorithm can be described as follows: 1. Randomly create set STxr of souls before the program

begins. r is the size of all possible attributes of karma and T is the total number of souls. (T x r) represents a matrix of T rows and r columns. Karma component is a

search space of r dimensions i.e. { }ri nnnnn ,,,,,, 321 …… where +Ζ∈in , Z+ is a set of positive integers ranging from [1, r]. Attributes of karma are described in Section 4.

2. Create human population set PT from the souls. One human body will hold only one soul while he/she is alive. Hence the size of population set is same as the size of soul set.

3. Divide human population set into 2 subsets: gurus and commoners. Size of guru is predefined as g where g < T. Gurus is the set of g highest fitness value population which can be denoted as Pg. The algorithm keeps track of the best guru which is the guru with the highest fitness value obtained so far. The rest of the population is of commoners of size c which can be expressed as Pc = PT - Pg. Some of the commoners are atheists who also have a predefined size a where a < c. Population of atheists can be represented as Pa. Atheists are selected randomly from the population of commoners.

4. Every human performs karma (either good or bad) as long as he/she is alive. Every human has predefined maximum lifetime (max_lifetime). However, death is unpredictable so a human can die at any random age from 0 to max_lifetime. The algorithm now searches for the optimum solution through continuous upgrade of karma component (candidate solutions). Firstly, the whole population is divided into k sets of communities, then the whole population is dispersed evenly so that each community has guru(s). Commoners are influenced by their respective community guru(s) and their very closed ones (closest two humans in a search space). This influence is the main operator of this algorithm that enables the population to update the fitness value of karma by learning something from their local neighborhood/community and the best guru so far. Gurus are only influenced by the best guru where the best guru may be alive or dead. The best guru also directly influences all other commoners. Fig. 2 shows that commoners C1, C2, C3, and guru G1 belong to one community and commoners C4, C5, and guru G2 belong to another community. All commoners are influenced by their respective community gurus and the best guru so far i.e. Gbest is influencing all the members of all communities. Commoners C1 and C2 of community 1 are influencing each other as they are closed ones to each other. Atheists only do self-study which is another operator to upgrade karma. Atheists do not follow religious directives but believe in their own set of ideas. The two operators mentioned above namely influence and self-study, are described in detail in Section 4.

5. Once the whole population for the current generation is dead, their next lives will be judged by their karmas of current life. Human population’s karma of current life will be carried forward to their human life of future

A. Sharma • A New Optimizing Algorithm Using Reincarnation Concept

- 282 -

Page 3: [IEEE 2010 11th International Symposium on Computational Intelligence and Informatics (CINTI) - Budapest, Hungary (2010.11.18-2010.11.20)] 2010 11th International Symposium on Computational

generations through souls. Good souls i.e. karma with good fitness value will be born as gurus, average souls will be born as commoners. Excellent souls will attain nirvana and be never reborn again. Some abysmal souls (karma with lowest fitness values) will be born as non-human species. The formulation of this concept is described below:

Firstly, some abysmal souls with d lowest fitness values (Sdxr ) where d < c will be born as non-human species which has been taken care of in this algorithm by using a suspension-queue of size q where q > d. The size of q is always multiple of d i.e. q = λd where λ > 1. λ shows the number of generations of suspension/punishment for the souls. After few generations of suspension i.e. living lives of non-human species, these souls will get human body again. These souls remain suspended for few generations until the suspension-queue is full. To accommodate new souls in this queue the d oldest souls are dequeued. These dequeued souls will be born as normal human beings in the next generation who will be free to perform karma again.

Secondly, some souls can qualify for nirvana. If these souls are ranked best for a number of generations greater than some threshold value, they are considered qualified for nirvana. Suppose m souls (Smxr) qualify for nirvana, they will never be reborn again. Finally, the remaining population will be born again as human beings whose set notation is S(T-d-m)xr. However, this population does not include those souls of non-human species who have completed their punishment and ready to come back into human body. Now as discussed above, the oldest d souls are dequeued in every generation from the suspension-queue of souls of non-humans to join the human population. Hence the souls for next generation of human population will be S(T-m)xr where m ≥ 0. Looking at the expression for next generation souls (S(T-m)xr ), it appears that the population is decreasing in every generation, but this rarely happens and most of the time if m is 0, the population will remain STxr. Only under certain circumstances do souls attain nirvana i.e. m is greater than 0. Refer to Section 6.2 (2) for more details on nirvana.

6. Iterate step 2 – 5 through number of generations specified by the user. The algorithm also stops if the entire population attains nirvana i.e. population size = 0. This happens when the algorithm is not able to find better solutions and it keeps getting the same best value for many generations. The best guru holds the best fitness value found so far.

Refer to the pseducode of this algorithm in appendix.

IV. REINCARNATION ALGORITHM OPERATORS There are two basic operators involved in RA algorithm.

We have described the analogy and algorithm above, now technically every human has 2 main components – karma and soul that have been used in this algorithm. Karma corresponds to a candidate solution of a given search space and soul corresponds to evaluation of karma, that is fitness value for an individual human. Souls also keep track of current status of karma and it is used as a medium to transfer karma from one life to another. More specifically, a candidate solution corresponds to the order of frequencies of attributes of karma performed by a person from highest frequency to the lowest frequency. That means the first element of the candidate solution represents the type/attribute of karma performed most frequently by the person which gradually decreases towards the last element.

>

>

>

>

>

A. Influence Operator This is the main operator that progresses the whole

population through one individual influencing the other. Influence operator is applicable in the following cases:

commonercommonercommonerso_farbest_guru_guruso_farbest_guru_

commonerguru

influence

influence

influence

influence

⎯⎯⎯ →⎯−

⎯⎯⎯ →⎯−

⎯⎯⎯ →⎯−

⎯⎯⎯ →⎯−

Commoners follow their respective community gurus through preaching etc. and gurus follow the best guru determined so far. Commoners do also get influenced by their closed ones and the best guru. To describe influence

CINTI 2010 • 11th IEEE International Symposium on Computational Intelligence and Informatics • 18–20 November, 2010 • Budapest, Hungary

- 283 -

Page 4: [IEEE 2010 11th International Symposium on Computational Intelligence and Informatics (CINTI) - Budapest, Hungary (2010.11.18-2010.11.20)] 2010 11th International Symposium on Computational

operator in detail, Guru influences commoner scenario is elaborated with an illustration below:

Suppose a 6 dimensional search space has been annotated with 6 attributes of karmas as shown below: Non-violence Truth Education Peace Untruth Violence 1 2 3 4 5 6

Using the above specifications, suppose a guru has the following candidate solution: Guru:

Non-violence Education Truth Peace Violence Untruth1 3 2 4 6 5

Note the order of attributes – Good attributes are followed by bad attributes of karma that means this particular guru has performed the non-violence karma most, followed by education and the least one is untruth. Hence his karma is {1, 3, 2, 4, 6, 5}.

Suppose a commoner belonging to the same community as of the above guru, has the following candidate solution i.e. order of attributes of karma: Commoner: Truth Peace Non-violence Education Violence Untruth 2 4 1 3 6 5

Since, younger generations are normally easily influenced than the older generations, we have used two types of influences – full-influence and partial-influence based on the age of individuals. Age greater than 0.75 x max_lifetime is considered as old age.

If this is a young commoner and getting fully influenced by guru on education (guru’s 2nd most frequent attribute) then the commoner will concentrate more on education and adjust his karma to give higher precedence to education (from 4th most frequent to 2nd most frequent). So the commoner is practicing his/her karma in the following order which will be its updated candidate solution: Commoner (full influence): Truth Education Peace Non-violence Violence Untruth2 3 4 1 6 5

The education is now in second place, similar to the guru and rest of the sequence is intact.

It is not necessary that commoners are always fully influenced by gurus. Aged commoners are usually just partially influenced by gurus. Suppose the above commoner is aged and he/she is partially influenced by the guru. In this case this commoner is influenced with education but using his/her own discretion enhancing some other “similar” attribute. The current version assumes the similar attribute is the previous attribute of karma. So in this case: Similar attribute = previous of Education => 3 – 1 = 2 => Truth.

This commoner will thus be influenced with truth instead of education. Commoner (partial influence): Peace Truth Non-violence Education Violence Untruth 4 2 1 3 6 5

B. Self- study Operator Another way to improve karma is through self-study or

self-realization. The current version of the algorithm uses this operator only with atheists. At one point in time an atheist presumes through self realization or self study that one attribute of karma is ahead of all other karmas. Hence the chosen attribute of karma will move to the first place and then the fitness value is evaluated. Suppose the order of karma of an atheist is:

Non-violence Truth Peace Education Violence Untruth 1 2 4 3 6 5

If after self study, the atheist presumes that truth is ahead of all other karmas, truth will be moved to first place as shown below:

Truth Non-violence Peace Education Violence Untruth 2 1 4 3 6 5

V. EXPERIMENT Some benchmark Travelling Salesman Problems (TSP)

[9] have been used to test the efficiency of RA algorithm. Average of 5 successive runs is taken into account for each problem to draw the graphs of processing time versus best fitness value attained so far to demonstrate their efficiencies. The same is done with Genetic Algorithms (GA) and efficiencies of both algorithms are compared by drawing both graphs together on a single cartesian-plane. The results are discussed below:

A. Parameter Settings We have used Genetic Algorithms toolbox Revision:

1.1.4.2, 2004 available in Matlab 7. Table 1 and 2 show the parameter settings for all the problems solved by GA and RA respectively in the experiments.

TABLE 1: PARAMETER SETTINGS FOR GA

Population Size 150 Crossover rate 0.8 Mutation rate 0.01

Maximum generation 10, 000

TABLE 2: PARAMETER SETTINGS FOR RA

Generations 250 Population size 25

Maximum lifetime Maximum of {half of problem size, 30}

A. Sharma • A New Optimizing Algorithm Using Reincarnation Concept

- 284 -

Page 5: [IEEE 2010 11th International Symposium on Computational Intelligence and Informatics (CINTI) - Budapest, Hungary (2010.11.18-2010.11.20)] 2010 11th International Symposium on Computational

(i) TSP problem ftv33.atsp (ii) TSP problem ft53.atsp

(iii) TSP problem ft70.atsp (iv) TSP problem kro124p.atsp

(v) TSP problem ftv170.atsp (vi) TSP problem rbg443.atsp

Fig. 3 Efficiency comparison graph for Genetic Algorithms versus Reincarnation Algorithm based on 6 benchmark travelling salesman problem set.

CINTI 2010 • 11th IEEE International Symposium on Computational Intelligence and Informatics • 18–20 November, 2010 • Budapest, Hungary

- 285 -

Page 6: [IEEE 2010 11th International Symposium on Computational Intelligence and Informatics (CINTI) - Budapest, Hungary (2010.11.18-2010.11.20)] 2010 11th International Symposium on Computational

As described in Table 2, all the test programs for RA run for 250 generations with a population size of 25. Maximum lifetime (max_lifetime) or the maximum age of individual human being is a variant which is 30 or half of the problem size, whichever is greater. Maximum lifetime has been kept as a variant because the bigger the problem size, the more the things to learn, so the greater the span of time (max_lifetime) is required.

The experiment was performed on a Windows XP machine with Pentium (R) M processor 1.86 GHz and 1022 MB of RAM. Matlab 7 programming language was used. Fig. 3 shows the efficiency comparison graph of genetic algorithms versus reincarnation algorithm tested on 6 benchmark TSP problems. The y-axis shows the total distance travelled which is the fitness value for TSP problem and x-axis shows the processing time (in seconds) to achieve the best fitness values so far.

The best values obtained by both algorithms according to Fig. 3 are shown in Table 3. Processing time is measured in seconds.

TABLE 3: COMPARISON OF BEST VALUES OBTAINED BY GA AND RA IN A LIMITED

TIME-FRAME.

ftv33 (best known: 1286) RA: 1370 at 30s GA: 1482 at 80s

ft53 (best known: 6905) RA: 7680 at 90s GA: 9092 at 90s

ft70 (best known: 38673) RA: 41220 at 110s GA: 44190 at 110s

kro124 (best known: 36230) RA: 42940 at 160s GA: 47740 at 160s

ftv170 (best known: 2755) RA: 3456 at 220s GA: 7114 at 220s

rbg443 (best known: 2720) RA: 3587 at 350s GA: 3891 at 350s

In all 6 benchmark problems, RA outperforms GA, however, GA normally converges very fast initially [6] as it can be seen in a few problems like kro124p and ftv33. These results show the effectiveness and competitiveness of RA.

VI. PROCESS CONTROL RA has inbuilt utilities to check for the flow of

algorithm. It checks if the system is not progressing i.e. it has become stagnant and not able to find any better solution then the following strategies are applied automatically.

A. Handling local optima and fitness improvement strategies It is a common problem with generic optimization

algorithms to get stuck into local optima but they have their strategies to move out of local optima and search for global optimal solution even though it cannot be guaranteed that a global optimal solution is obtained [1].

The RA algorithm uses the following strategies to escape from local optima or improve the fitness value of individual member of the population:

1) Compulsory change (population not progressing): it is a natural and evolutionary process for every society to change for the betterment. People are converted or attracted towards new ideas and practices, so some people move away from the old ideas and embrace the new emerging ideas - this also applies in spirituality. Similar concept is incorporated in RA. When the system becomes stagnant or stuck into local optima by producing the same best fitness value for a number of generations greater than some threshold value, certain percentage of the population (generally the lower fitness value humans are picked) is converted or attracted towards the opposite of best_guru i.e. ¬best_guru. The opposite operator (¬) for RA algorithm can be defined as:

¬ X = (dim+1) e – X where X is any candidate solution in a search space represented in the form of a vector and dim is the dimension of the vector. e represents vector of all ones of size dim. If X is {2, 4, 3, 1, 5} then dim is 5 and ¬ X will be:

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

+=

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

¬

15324

51342

11111

)15(

51342

The converted population make their own communities and start to follow their own ¬best_guru and community guru(s). Rest of the functionalities are same for both sets of population.

2) Competition (guru not progressing): competition of certain degree ameliorates the community to be progressive. If a person is holding guru’s position in a community and he/she is not making progress by not getting any better fitness value for certain epoch/age greater than a predefined threshold value in the current generation then the best commoner in the same society will take the position of guru and this unprogressive guru will become a commoner.

3) Fate (commoner not progressing): Good karma of previous life entails good fate in current life. As described earlier that progress of karma is made mainly through influence by local community gurus, if a commoner is not making a progress in current generation for certain epoch/age greater than a predefined threshold value i.e. not able to get any better fitness value then his/her fate may help him to progress in current generation. If a person has good fate than it works as an additional support to make progress in karma by getting influenced by a learned guru of another community as shown in Fig 4 where commoner C3 is also influenced by the guru G1

A. Sharma • A New Optimizing Algorithm Using Reincarnation Concept

- 286 -

Page 7: [IEEE 2010 11th International Symposium on Computational Intelligence and Informatics (CINTI) - Budapest, Hungary (2010.11.18-2010.11.20)] 2010 11th International Symposium on Computational

because of good fate. The better the fate (good fitness in previous generation) results the better the guru of another community to be found, which may enhance a person’s karma through additional influence. In this case, a human with good fate is not only restricted with the influence of his/her community guru but also meets a very learned guru of another community and gets influenced by him/her to improve his/her karma.

Fig. 4 Influence operator with fate support. Commoner C3 of community 2 is influenced by the guru G1 of community 1.

C1

G1

C2>

Gbest

>

C3

G2

C4

>

>

Community 1

Community 2

Fate Support

B. Termination criteria There are two ways in which the system can be terminated: 1) Manual: The system stops after iterating through a

number of generations specified by the user. 2) Automatic: This happens when the population

gradually depletes and there is no more population left to process. Population can be depleted only through nirvana because these people will not be born again. This situation arises when the algorithm is not able to find any better solutions and it keeps getting the same best fitness value for a number of generations greater than some threshold value, which results in nirvana for those souls who have maintained best fitness value found so far as their own fitness value. Nirvana is the ultimate goal of a soul; thereafter these souls will be free from the cycle of rebirth. If this takes place many times, eventually all the souls will attain nirvana and the algorithm will be stopped because population size has reached 0. This is an intelligent technique of the algorithm to self-terminate when it is unlikely to find any better solution. Implicitly, it also helps in avoiding the system to be stuck into local optima by removing local optimal solutions from the system through nirvana.

VII. CONCLUSION This paper has presented a metaheuristic algorithm for

discrete optimization problems inspired by the reincarnation concept. This is the first version of RA algorithm which has delivered very promising results. It has proved to be a simple but effective algorithm. Currently, RA is tested on Travelling Salesman Problem only but it can be applied to other optimization problems as it has a clear distinction between input and output values. Karma component serves as input value i.e. search space for objective function and soul component serves as output or fitness value.

RA searches for optimum solution in a wide search space by contriving global and local search mechanism. Gurus look for global optimal solution only and commoners look for local optima in their own community/neighborhood which helps in quick convergence of the problem. Currently, RA works only for discrete optimization problems but in future it can be adapted to solve other engineering tasks like pattern recognition and clustering.

APPENDIX A) Pseudocode for Reincarnation Algorithm (RA)

S = random_souls(T, r); P = next_generation_population(S);

for g = 1 to Generation Pguru = best_n_population(P, n); Pcommoner = P - Pguru; Patheist = a_random_population(Pcommoner, a);

for t = 1 to max_time Pguru = perform_karma(Pguru, ‘guru’); Pcommoner = perform_karma(Pcommoner, ’commoner’); Patheist = perform_karma(Patheist, ’atheist’); [Pguru, Pcommoner, Patheist] = random_death(P); end;

//after death Snon_human(g) = non_human_species(S); Snirvana = attain_nirvana(S - Snon_human(g)); Sreborn = reborn(S - Snon_human(g) - Snirvana);

P = next_generation_population(Sreborn + Snon_human(1 to g));

end;

B) Pseudocode for subroutines

The algorithm keeps track of the best guru (best_guru) i.e. guru with the best fitness value. Commoners get influenced by local community gurus and these gurus are influenced by the best guru. Atheists do not get influenced but they do self-study.

1) perform_karma

Different statuses of humans perform different karma. Karma performed by gurus, commoners and atheists are described in the following subroutines:

i. Pguru = perform_karma(Pguru, ‘guru’); for i = 1 to size(Pguru)

// Step 1: Pguru(i) = influence(Pguru(i), best_guru);

// Step 2 (Optional) Pguru(i) = self_study(Pguru(i));

CINTI 2010 • 11th IEEE International Symposium on Computational Intelligence and Informatics • 18–20 November, 2010 • Budapest, Hungary

- 287 -

Page 8: [IEEE 2010 11th International Symposium on Computational Intelligence and Informatics (CINTI) - Budapest, Hungary (2010.11.18-2010.11.20)] 2010 11th International Symposium on Computational

end

ii. Pcommoner = perform_karma(Pcommoner, ‘commoner’);

for i = 1 to size(Pcommoner) // Step 1: Pgurus-i = get_community_gurus(Pcommoner(i)); Pcommoner(i) = influence(Pcommoner(i), Pgurus-i); /*Here commoners are influenced by community gurus and then unprogressive gurus become commoners and best commoner from the community becomes gurus*/

// Step 2: Pcommoner(i) = influence(Pcommoner(i), best_guru);

// Step 3 /*Previous life determines the fate for current life. The better the karma in the previous life, the better the fate. Good fate will help in getting influence from progressive guru of other community.*/

fate_level = fate(Pcommoner(i)); Pcommoner(i) = influence(Pcommoner(i), Pguru(fate_level));

// Step 4 (Optional) Pcommoner (i) = self_study(Pcommoner(i));

// Step 5 /*Commoners are also influenced by their close ones. */ Pcommoners-i = get_closed_ones(Pcommoner(i)); Pcommoner(i) = influence(Pcommoner(i),Pcommoners-i);

end iii. Patheist = perform_karma(Patheist, ‘atheist’);

for i = 1 to size(Patheist) Patheist = self-study(Patheist);

End

2) P = next_generation_population(Sreborn + Snon-human(1 to g));

Soul never dies but the body dies and gets a new body in the next life [9]. The predefined portion of the top order of human population in terms of karma i.e fitness value in previous life will become gurus and rest will become commoners.

3) Snirvana = attain_nirvana(S); //salvation

Since, the system has no knowledge of the optimum solution during the execution of the program hence nirvana is achieved through relative comparison of good karma among humans. When the system is stagnant for predefined number of generations then the best guru(s) are given nirvana.

4) Snon_human(g) = non_human_species(S);

The predefined percentage of human species gets the body of non-human species in each generation. These are the humans with abysmal karma in the previous life. They will not get the human body for predefined number of generations but after that they will again get the human body and come back into the system. In all this process the same souls are used. Non-humans do not perform karma.

5) Sreborn = reborn(S); Sreborn = S - Snirvana - Snon_human;

6) [Pguru, Pcommoner, Patheist] = random_death(P);

It is not known when a person will die. Hence, a person is randomly selected for death by the

random_death function at any age. Again the same soul is used in the next generation.

ACKNOWLEDGMENT I am very thankful to Prof. Dharmendra Sharma of

University of Canberra, Australia, Prof. Ajit Narayanan of the Auckland University of Technology, New Zealand and Mr. Ronal Singh and Mr. Shymal Chandra of the University of the South Pacific, Fiji for their useful comments and suggestions for this work.

REFERENCES [1] G. C. Onwubolu and A. Sharma, Particle Swarm Optimization for the assignment of facilities to locations. New Optimization Techniques in Engineering, Springer-Verlag, 2004. [2] G. C. Onwubolu, Genetic Algorithms, Emerging optimization techniques in production planning and control, Imperial College Press, 2002. [3] H. D. Young and R. A. Freedman, University Physics, 9th Ed., Addison-Wesley, 1996, pp107-110 [4] J. B. Tucker, Life Before Life - A Scientific Investigation of Children's Memories of Previous Lives, St Martin’s Press, 2005. [5] J. H. Holland, Adaptation in natural and artificial systems. Ann Arbor: university of Michigan Pres, 1975. [6] L. Li and Y. Zhang, An improved genetic algorithm for the travelling salesman problem, ICIC 2007, CCIS 2, Springer Verlag (Berlin Heidelberg), pp. 208-216, 2007. [7] L. N. De Castro and F. J. Von Zuben, Learning and Optimization using the clonal selection principle, IEEE transactions on evolutionary computation, vol. 6, No. 3, June 2002 [8] R. Eberhart and J. Kennedy, A New Optimizer using Particle Swarm Theory, 6th International Symposium on Micro Machine and Human Sciences, pp. 39-43, 1995 [9] TSPLIB: http://www.iwr.uni-heidelberg.de/groups/comopt/software/TSPLIB95/atsp/

A. Sharma • A New Optimizing Algorithm Using Reincarnation Concept

- 288 -