You are on page 1of 8

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

A new optimizing algorithm using reincarnation


concept
Anurag Sharma
School of Computing, Information and Mathematical Sciences
The University of the South Pacific, Fiji
sharma_au@usp.ac.fj

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

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


- 281 -
A. Sharma • A New Optimizing Algorithm Using Reincarnation Concept

karma. Only human beings are allowed to perform karma. search space of r dimensions i.e.
If good karma is not up to par, the human will be born
again. Soul accumulates all the good and bad karmas.
{n1 , n2 , n3 ,…, ni ,…, nr } where ni ∈Ζ + +
, Z is a set of
Extremely evil doers get the body of non-human beings in positive integers ranging from [1, r]. Attributes of
the next generation and will not get human body until they karma are described in Section 4.
finish their punishment by continually getting different 2. Create human population set PT from the souls. One
bodies of non-human beings for certain generations. Soul human body will hold only one soul while he/she is
gets body according to karmas in previous life. Fig. 1 alive. Hence the size of population set is same as the
shows the reincarnation process where the life of two souls size of soul set.
S1 and S2 are shown for 6 generations. For the first 3 3. Divide human population set into 2 subsets: gurus and
generations, S1 receives human body. S1 has done good commoners. Size of guru is predefined as g where g <
enough karma for the first 2 generations to get human body T. Gurus is the set of g highest fitness value population
but in generation 3 he has been an evil doer hence received which can be denoted as Pg. The algorithm keeps track
non-human body for 2 generations (4 and 5). After of the best guru which is the guru with the highest
completion of punishment for 2 generations he again fitness value obtained so far. The rest of the population
receives human body. Soul S2 has been very consistent in is of commoners of size c which can be expressed as Pc
his good karma and received human body for 4 generations. = PT - Pg. Some of the commoners are atheists who
In fourth generation he has received nirvana because his also have a predefined size a where a < c. Population
soul has acquired enough good karmas. 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
Fig. 1 reincarnation concept of rebirth cycle space). This influence is the main operator of this
algorithm that enables the population to update the
III. REINCARNATION ALGORITHM fitness value of karma by learning something from
After discussing the reincarnation concept, the their local neighborhood/community and the best guru
implementation of the algorithm is also not very complex. so far. Gurus are only influenced by the best guru
There are a few major points to note – soul never dies but where the best guru may be alive or dead. The best
the body dies; humans perform karma and gain the fruit by guru also directly influences all other commoners. Fig.
strengthening/cleaning their soul; some souls attain nirvana, 2 shows that commoners C1, C2, C3, and guru G1
majority are born again in human form, and some are born belong to one community and commoners C4, C5, and
into non-human species and return into human form after guru G2 belong to another community. All commoners
going through the lives of non-human species for a few are influenced by their respective community gurus
generations. and the best guru so far i.e. Gbest is influencing all the
members of all communities. Commoners C1 and C2
The RA is a progress of souls to attain nirvana/salvation
of community 1 are influencing each other as they are
by going through many generations. It is similar to other
closed ones to each other. Atheists only do self-study
population based heuristic algorithms where the system is
which is another operator to upgrade karma. Atheists
initialized with a set of random population where every
do not follow religious directives but believe in their
member looks for better solution. The program stops when
own set of ideas. The two operators mentioned above
any of the termination criteria [see Section 6.2] is met. The
namely influence and self-study, are described in detail
RA algorithm can be described as follows:
in Section 4.
1. Randomly create set STxr of souls before the program
5. Once the whole population for the current generation is
begins. r is the size of all possible attributes of karma
dead, their next lives will be judged by their karmas of
and T is the total number of souls. (T x r) represents a
current life. Human population’s karma of current life
matrix of T rows and r columns. Karma component is a
will be carried forward to their human life of future

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

generations through souls. Good souls i.e. karma with IV. REINCARNATION ALGORITHM OPERATORS
good fitness value will be born as gurus, average souls There are two basic operators involved in RA algorithm.
will be born as commoners. Excellent souls will attain We have described the analogy and algorithm above, now
nirvana and be never reborn again. Some abysmal technically every human has 2 main components – karma
souls (karma with lowest fitness values) will be born as and soul that have been used in this algorithm. Karma
non-human species. The formulation of this concept is corresponds to a candidate solution of a given search space
described below: and soul corresponds to evaluation of karma, that is fitness
Firstly, some abysmal souls with d lowest fitness value for an individual human. Souls also keep track of
values (Sdxr ) where d < c will be born as non-human current status of karma and it is used as a medium to
species which has been taken care of in this algorithm transfer karma from one life to another. More specifically, a
by using a suspension-queue of size q where q > d. The candidate solution corresponds to the order of frequencies
size of q is always multiple of d i.e. q = λd where λ > 1. of attributes of karma performed by a person from highest
λ shows the number of generations of frequency to the lowest frequency. That means the first
suspension/punishment for the souls. After few element of the candidate solution represents the
generations of suspension i.e. living lives of non- type/attribute of karma performed most frequently by the
human species, these souls will get human body again. person which gradually decreases towards the last element.
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 A. Influence Operator
circumstances do souls attain nirvana i.e. m is greater
than 0. Refer to Section 6.2 (2) for more details on This is the main operator that progresses the whole
nirvana. population through one individual influencing the other.
Influence operator is applicable in the following cases:
6. Iterate step 2 – 5 through number of generations
specified by the user. The algorithm also stops if the − guru ⎯influence
⎯⎯ ⎯→ commoner
entire population attains nirvana i.e. population size = − best_guru_so_far ⎯influence
⎯⎯ ⎯→ guru
0. This happens when the algorithm is not able to find
better solutions and it keeps getting the same best value − best_guru_so_far ⎯influence
⎯⎯ ⎯→ commoner
for many generations. The best guru holds the best
fitness value found so far. − commoner ⎯influence
⎯⎯ ⎯→ commoner
Refer to the pseducode of this algorithm in Commoners follow their respective community gurus
appendix. 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

- 283 -
A. Sharma • A New Optimizing Algorithm Using Reincarnation Concept

operator in detail, Guru influences commoner scenario is This commoner will thus be influenced with truth
elaborated with an illustration below: instead of education.
Suppose a 6 dimensional search space has been Commoner (partial influence):
annotated with 6 attributes of karmas as shown below: Peace Truth Non-violence Education Violence Untruth
Non-violence Truth Education Peace Untruth Violence 4 2 1 3 6 5
1 2 3 4 5 6
B. Self- study Operator
Using the above specifications, suppose a guru has the Another way to improve karma is through self-study or
following candidate solution: self-realization. The current version of the algorithm uses
Guru: this operator only with atheists. At one point in time an
Non-violence Education Truth Peace Violence Untruth atheist presumes through self realization or self study that
1 3 2 4 6 5 one attribute of karma is ahead of all other karmas. Hence
the chosen attribute of karma will move to the first place
Note the order of attributes – Good attributes are and then the fitness value is evaluated. Suppose the order of
followed by bad attributes of karma that means this karma of an atheist is:
particular guru has performed the non-violence karma most, Non-violence Truth Peace Education Violence Untruth
followed by education and the least one is untruth. Hence 1 2 4 3 6 5
his karma is {1, 3, 2, 4, 6, 5}.
If after self study, the atheist presumes that truth is
Suppose a commoner belonging to the same community
ahead of all other karmas, truth will be moved to first place
as of the above guru, has the following candidate solution
as shown below:
i.e. order of attributes of karma:
Commoner: Truth Non-violence Peace Education Violence Untruth
2 1 4 3 6 5
Truth Peace Non-violence Education Violence Untruth
2 4 1 3 6 5 V. EXPERIMENT
Since, younger generations are normally easily Some benchmark Travelling Salesman Problems (TSP)
influenced than the older generations, we have used two [9] have been used to test the efficiency of RA algorithm.
types of influences – full-influence and partial-influence Average of 5 successive runs is taken into account for each
based on the age of individuals. Age greater than 0.75 x problem to draw the graphs of processing time versus best
max_lifetime is considered as old age. fitness value attained so far to demonstrate their
If this is a young commoner and getting fully influenced efficiencies. The same is done with Genetic Algorithms
by guru on education (guru’s 2nd most frequent attribute) (GA) and efficiencies of both algorithms are compared by
then the commoner will concentrate more on education and drawing both graphs together on a single cartesian-plane.
adjust his karma to give higher precedence to education The results are discussed below:
(from 4th most frequent to 2nd most frequent). So the A. Parameter Settings
commoner is practicing his/her karma in the following We have used Genetic Algorithms toolbox Revision:
order which will be its updated candidate solution: 1.1.4.2, 2004 available in Matlab 7. Table 1 and 2 show the
Commoner (full influence): parameter settings for all the problems solved by GA and
Truth Education Peace Non-violence Violence Untruth RA respectively in the experiments.
2 3 4 1 6 5
TABLE 1:
The education is now in second place, similar to the PARAMETER SETTINGS FOR GA
guru and rest of the sequence is intact. Population Size 150
It is not necessary that commoners are always fully Crossover rate 0.8
influenced by gurus. Aged commoners are usually just Mutation rate 0.01
partially influenced by gurus. Suppose the above commoner Maximum generation 10, 000
is aged and he/she is partially influenced by the guru. In
this case this commoner is influenced with education but TABLE 2:
using his/her own discretion enhancing some other PARAMETER SETTINGS FOR RA
“similar” attribute. The current version assumes the similar
Generations 250
attribute is the previous attribute of karma. So in this case:
Population size 25
Similar attribute = previous of Education => 3 – 1 = 2 => Maximum lifetime Maximum of {half of
Truth. problem size, 30}

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

(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.

- 285 -
A. Sharma • A New Optimizing Algorithm Using Reincarnation Concept

As described in Table 2, all the test programs for RA 1) Compulsory change (population not progressing): it
run for 250 generations with a population size of 25. is a natural and evolutionary process for every society
Maximum lifetime (max_lifetime) or the maximum age of to change for the betterment. People are converted or
individual human being is a variant which is 30 or half of attracted towards new ideas and practices, so some
the problem size, whichever is greater. Maximum lifetime people move away from the old ideas and embrace the
has been kept as a variant because the bigger the problem new emerging ideas - this also applies in spirituality.
size, the more the things to learn, so the greater the span of Similar concept is incorporated in RA. When the
time (max_lifetime) is required. system becomes stagnant or stuck into local optima by
The experiment was performed on a Windows XP producing the same best fitness value for a number of
machine with Pentium (R) M processor 1.86 GHz and 1022 generations greater than some threshold value, certain
MB of RAM. Matlab 7 programming language was used. percentage of the population (generally the lower
Fig. 3 shows the efficiency comparison graph of genetic fitness value humans are picked) is converted or
algorithms versus reincarnation algorithm tested on 6 attracted towards the opposite of best_guru i.e.
benchmark TSP problems. The y-axis shows the total ¬best_guru. The opposite operator (¬) for RA
distance travelled which is the fitness value for TSP algorithm can be defined as:
problem and x-axis shows the processing time (in seconds) ¬ X = (dim+1) e – X
to achieve the best fitness values so far.
where X is any candidate solution in a search space
The best values obtained by both algorithms according represented in the form of a vector and dim is the
to Fig. 3 are shown in Table 3. Processing time is measured dimension of the vector. e represents vector of all ones
in seconds. of size dim. If X is {2, 4, 3, 1, 5} then dim is 5 and ¬ X
TABLE 3: will be:
COMPARISON OF BEST VALUES OBTAINED BY GA AND RA IN A LIMITED
TIME-FRAME. ⎡ 2⎤ ⎡1⎤ ⎡2⎤ ⎡4⎤
⎢ ⎥ ⎢⎥ ⎢ ⎥ ⎢ ⎥
ftv33 (best ft53 (best known: ft70 (best known: ⎢ 4⎥ ⎢1⎥ ⎢4⎥ ⎢2⎥
known: 1286) 6905) 38673) ¬ ⎢3 ⎥ = (5 + 1) ⎢1⎥ − ⎢3 ⎥ = ⎢3 ⎥
RA: 1370 at 30s RA: 7680 at 90s RA: 41220 at 110s ⎢ ⎥ ⎢⎥ ⎢ ⎥ ⎢ ⎥
GA: 1482 at 80s GA: 9092 at 90s GA: 44190 at 110s ⎢1 ⎥ ⎢1⎥ ⎢1 ⎥ ⎢5 ⎥
⎢ ⎥ ⎢⎥ ⎢ ⎥ ⎢ ⎥
kro124 (best ftv170 (best rbg443 (best ⎣5 ⎦ ⎣1⎦ ⎣5 ⎦ ⎣1 ⎦
known: 36230) known: 2755) known: 2720)
RA: 42940 at 160s RA: 3456 at 220s RA: 3587 at 350s The converted population make their own communities
GA: 47740 at 160s GA: 7114 at 220s GA: 3891 at 350s and start to follow their own ¬best_guru and
community guru(s). Rest of the functionalities are same
In all 6 benchmark problems, RA outperforms GA, for both sets of population.
however, GA normally converges very fast initially [6] as it 2) Competition (guru not progressing): competition of
can be seen in a few problems like kro124p and ftv33. certain degree ameliorates the community to be
These results show the effectiveness and competitiveness of progressive. If a person is holding guru’s position in a
RA. community and he/she is not making progress by not
VI. PROCESS CONTROL getting any better fitness value for certain epoch/age
greater than a predefined threshold value in the current
RA has inbuilt utilities to check for the flow of generation then the best commoner in the same society
algorithm. It checks if the system is not progressing i.e. it will take the position of guru and this unprogressive
has become stagnant and not able to find any better solution guru will become a commoner.
then the following strategies are applied automatically.
3) Fate (commoner not progressing): Good karma of
A. Handling local optima and fitness improvement previous life entails good fate in current life. As
strategies described earlier that progress of karma is made mainly
It is a common problem with generic optimization through influence by local community gurus, if a
algorithms to get stuck into local optima but they have their commoner is not making a progress in current
strategies to move out of local optima and search for global generation for certain epoch/age greater than a
optimal solution even though it cannot be guaranteed that a predefined threshold value i.e. not able to get any
global optimal solution is obtained [1]. better fitness value then his/her fate may help him to
progress in current generation. If a person has good
The RA algorithm uses the following strategies to
fate than it works as an additional support to make
escape from local optima or improve the fitness value of
progress in karma by getting influenced by a learned
individual member of the population:
guru of another community as shown in Fig 4 where
commoner C3 is also influenced by the guru G1

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

because of good fate. The better the fate (good fitness VII. CONCLUSION
in previous generation) results the better the guru of This paper has presented a metaheuristic algorithm for
another community to be found, which may enhance a discrete optimization problems inspired by the
person’s karma through additional influence. In this reincarnation concept. This is the first version of RA
case, a human with good fate is not only restricted with algorithm which has delivered very promising results. It has
the influence of his/her community guru but also meets proved to be a simple but effective algorithm. Currently,
a very learned guru of another community and gets RA is tested on Travelling Salesman Problem only but it
influenced by him/her to improve his/her karma. can be applied to other optimization problems as it has a
C1 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
Community 1
G1
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
C2
for local optima in their own community/neighborhood
>
Fate Support which helps in quick convergence of the problem.
Gbest 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.
C3 >
APPENDIX
A) Pseudocode for Reincarnation Algorithm (RA)
Community 2
G2 S = random_souls(T, r);
P = next_generation_population(S);
for g = 1 to Generation
C4 Pguru = best_n_population(P, n);
Pcommoner = P - Pguru;
Patheist = a_random_population(Pcommoner, a);
Fig. 4 Influence operator with fate support. Commoner C3 of for t = 1 to max_time
community 2 is influenced by the guru G1 of community 1. Pguru = perform_karma(Pguru, ‘guru’);
Pcommoner = perform_karma(Pcommoner, ’commoner’);
B. Termination criteria Patheist = perform_karma(Patheist, ’atheist’);
There are two ways in which the system can be terminated: [Pguru, Pcommoner, Patheist] = random_death(P);
end;
1) Manual: The system stops after iterating through a //after death
number of generations specified by the user. Snon_human(g) = non_human_species(S);
2) Automatic: This happens when the population Snirvana = attain_nirvana(S - Snon_human(g));
Sreborn = reborn(S - Snon_human(g) - Snirvana);
gradually depletes and there is no more population left
P = next_generation_population(Sreborn +
to process. Population can be depleted only through Snon_human(1 to g));
nirvana because these people will not be born again. end;
This situation arises when the algorithm is not able to B) Pseudocode for subroutines
find any better solutions and it keeps getting the same
The algorithm keeps track of the best guru
best fitness value for a number of generations greater (best_guru) i.e. guru with the best fitness value.
than some threshold value, which results in nirvana for Commoners get influenced by local community gurus
those souls who have maintained best fitness value and these gurus are influenced by the best guru.
found so far as their own fitness value. Nirvana is the Atheists do not get influenced but they do self-
study.
ultimate goal of a soul; thereafter these souls will be
1) perform_karma
free from the cycle of rebirth. If this takes place many
Different statuses of humans perform different
times, eventually all the souls will attain nirvana and
karma. Karma performed by gurus, commoners and
the algorithm will be stopped because population size atheists are described in the following
has reached 0. This is an intelligent technique of the subroutines:
algorithm to self-terminate when it is unlikely to find i. Pguru = perform_karma(Pguru, ‘guru’);
any better solution. Implicitly, it also helps in avoiding for i = 1 to size(Pguru)
// Step 1:
the system to be stuck into local optima by removing Pguru(i) = influence(Pguru(i), best_guru);
local optimal solutions from the system through
// Step 2 (Optional)
nirvana. Pguru(i) = self_study(Pguru(i));

- 287 -
A. Sharma • A New Optimizing Algorithm Using Reincarnation Concept

end random_death function at any age. Again the same


ii. Pcommoner = perform_karma(Pcommoner, soul is used in the next generation.
‘commoner’);
for i = 1 to size(Pcommoner)
ACKNOWLEDGMENT
// Step 1: I am very thankful to Prof. Dharmendra Sharma of
Pgurus-i = get_community_gurus(Pcommoner(i));
Pcommoner(i) = influence(Pcommoner(i), Pgurus-i);
University of Canberra, Australia, Prof. Ajit Narayanan of
/*Here commoners are influenced by community the Auckland University of Technology, New Zealand and
gurus and then unprogressive gurus become Mr. Ronal Singh and Mr. Shymal Chandra of the
commoners and best commoner from the University of the South Pacific, Fiji for their useful
community becomes gurus*/
comments and suggestions for this work.
// Step 2:
Pcommoner(i) = influence(Pcommoner(i), REFERENCES
best_guru);
[1] G. C. Onwubolu and A. Sharma, Particle Swarm Optimization for the
// Step 3
assignment of facilities to locations. New Optimization Techniques in
/*Previous life determines the fate for
Engineering, Springer-Verlag, 2004.
current life. The better the karma in the
previous life, the better the fate. Good [2] G. C. Onwubolu, Genetic Algorithms, Emerging optimization
fate will help in getting influence from techniques in production planning and control, Imperial College Press,
progressive guru of other community.*/ 2002.
fate_level = fate(Pcommoner(i)); [3] H. D. Young and R. A. Freedman, University Physics, 9th Ed.,
Pcommoner(i) = influence(Pcommoner(i), Addison-Wesley, 1996, pp107-110
Pguru(fate_level)); [4] J. B. Tucker, Life Before Life - A Scientific Investigation of Children's
// Step 4 (Optional) Memories of Previous Lives, St Martin’s Press, 2005.
Pcommoner (i) = self_study(Pcommoner(i)); [5] J. H. Holland, Adaptation in natural and artificial systems. Ann Arbor:
university of Michigan Pres, 1975.
// Step 5
/*Commoners are also influenced by their [6] L. Li and Y. Zhang, An improved genetic algorithm for the travelling
close ones. */ salesman problem, ICIC 2007, CCIS 2, Springer Verlag (Berlin
Pcommoners-i = get_closed_ones(Pcommoner(i)); Heidelberg), pp. 208-216, 2007.
Pcommoner(i) = influence(Pcommoner(i),Pcommoners-i); [7] L. N. De Castro and F. J. Von Zuben, Learning and Optimization using
end the clonal selection principle, IEEE transactions on evolutionary
iii. Patheist = perform_karma(Patheist, ‘atheist’); computation, vol. 6, No. 3, June 2002
for i = 1 to size(Patheist) [8] R. Eberhart and J. Kennedy, A New Optimizer using Particle Swarm
Patheist = self-study(Patheist); Theory, 6th International Symposium on Micro Machine and Human
End Sciences, pp. 39-43, 1995
[9] TSPLIB: http://www.iwr.uni-
2) P = next_generation_population(Sreborn + Snon-
heidelberg.de/groups/comopt/software/TSPLIB95/atsp/
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

- 288 -

You might also like