SA, GA and GSA in Fuzzy Systems

62
SA, GA and GSA in Fuzzy Systems Supervisor: Supervisor: Prof. Ho Cheng-Seen Prof. Ho Cheng-Seen Presented by: Presented by: Irfan Subakti Irfan Subakti 司司司司 司司司司 ( ( M9215801) M9215801) EE601-2 NTUST, February 9 EE601-2 NTUST, February 9 th th 2004 2004

description

SA, GA and GSA in Fuzzy Systems. Supervisor: Prof. Ho Cheng-Seen Presented by: Irfan Subakti 司馬伊凡 ( M9215801) EE601-2 NTUST, February 9 th 2004. Fields of Artificial Intelligent (AI). Simulated Annealing (SA). - PowerPoint PPT Presentation

Transcript of SA, GA and GSA in Fuzzy Systems

Page 1: SA, GA and GSA in Fuzzy Systems

SA, GA and GSA in Fuzzy SystemsSA, GA and GSA in Fuzzy Systems

Supervisor:Supervisor:Prof. Ho Cheng-SeenProf. Ho Cheng-Seen

Presented by:Presented by:Irfan Subakti Irfan Subakti 司馬伊凡 司馬伊凡 ((M9215801)M9215801)

EE601-2 NTUST, February 9EE601-2 NTUST, February 9thth 2004 2004

Supervisor:Supervisor:Prof. Ho Cheng-SeenProf. Ho Cheng-Seen

Presented by:Presented by:Irfan Subakti Irfan Subakti 司馬伊凡 司馬伊凡 ((M9215801)M9215801)

EE601-2 NTUST, February 9EE601-2 NTUST, February 9thth 2004 2004

Page 2: SA, GA and GSA in Fuzzy Systems

Fields of Artificial Intelligent (AI)Fields of Artificial Intelligent (AI)

Linguistics

A B C

E F G H I J K M O

D L N P

Com puterScience

A Psycholingustics

B Sociolingustics

C Com putationalLingustics

D Adaptive System s

E Cognitive Psychology

F Philosophy

G Philosophy ofLanguage

H Logic

I Robotics

J Im age Processing

K Pattern Recognition

L Managem ent

Psychology Philosopy E lectricalEngineering

Managem ent andManagem ent Science

M Mathem atics/S tatistics

N Operations Research

O Managem entInform ation System s

P Biology

Com puterV ision

ExpertSystem s

SpeechUnderstanding

Robotics

IntelligentTutor

NaturalLanguage

Processing

Autom aticProgram -

m ing

MachineLearning

Gam ePlayingThe

AITREE

Page 3: SA, GA and GSA in Fuzzy Systems

Simulated Annealing (SA)Simulated Annealing (SA)• SA is stochastic iterative improvement methods for solving SA is stochastic iterative improvement methods for solving

combinatorial optimization problemscombinatorial optimization problems..

• SA generates SA generates a single sequence of solutionsa single sequence of solutions and searches for and searches for an an optimum solutionoptimum solution along this search path. along this search path.

• SA starts with a given initial solution xSA starts with a given initial solution x00..

• At each step, SA generates a At each step, SA generates a candidate solutioncandidate solution x’ x’ by changing a small by changing a small fraction of a current solution xfraction of a current solution x..

• SA accepts the candidate solution as a new solution with a probability SA accepts the candidate solution as a new solution with a probability min {1, emin {1, e--f/Tf/T}, where }, where f = f(x’) f = f(x’) –– f(x) is cost reduction from the current f(x) is cost reduction from the current solution x to the candidate solution x’, and solution x to the candidate solution x’, and T isT is a control parameter a control parameter called called temperaturetemperature..

• A key point of SA is that A key point of SA is that SA accepts up-hill movesSA accepts up-hill moves with the probability e with the probability e--

f/Tf/T..

• This allows SA to This allows SA to escape from local minimaescape from local minima..

• But SA But SA cannot cover a large region of the solution spacecannot cover a large region of the solution space within a limited within a limited computation time computation time because SA is based on small movesbecause SA is based on small moves..

• SA is stochastic iterative improvement methods for solving SA is stochastic iterative improvement methods for solving combinatorial optimization problemscombinatorial optimization problems..

• SA generates SA generates a single sequence of solutionsa single sequence of solutions and searches for and searches for an an optimum solutionoptimum solution along this search path. along this search path.

• SA starts with a given initial solution xSA starts with a given initial solution x00..

• At each step, SA generates a At each step, SA generates a candidate solutioncandidate solution x’ x’ by changing a small by changing a small fraction of a current solution xfraction of a current solution x..

• SA accepts the candidate solution as a new solution with a probability SA accepts the candidate solution as a new solution with a probability min {1, emin {1, e--f/Tf/T}, where }, where f = f(x’) f = f(x’) –– f(x) is cost reduction from the current f(x) is cost reduction from the current solution x to the candidate solution x’, and solution x to the candidate solution x’, and T isT is a control parameter a control parameter called called temperaturetemperature..

• A key point of SA is that A key point of SA is that SA accepts up-hill movesSA accepts up-hill moves with the probability e with the probability e--

f/Tf/T..

• This allows SA to This allows SA to escape from local minimaescape from local minima..

• But SA But SA cannot cover a large region of the solution spacecannot cover a large region of the solution space within a limited within a limited computation time computation time because SA is based on small movesbecause SA is based on small moves..

Page 4: SA, GA and GSA in Fuzzy Systems

Simulated Annealing (SA) (continue)Simulated Annealing (SA) (continue)•Pseudo-code of Simulated Annealing (SA) (Koakutsu et al. [20])Pseudo-code of Simulated Annealing (SA) (Koakutsu et al. [20])

SA_algorithm(NSA_algorithm(Naa, T, T00, , )){{

x x x x00; ; /* initial solution *//* initial solution */T T T T00; ; /* initial temperature *//* initial temperature */while (system is not frozen) {while (system is not frozen) {

for (loop = 1; loop for (loop = 1; loop N Naa; loop++) {; loop++) {x’ x’ Mutate(x); Mutate(x);f f f(x’) – f(x); f(x’) – f(x);r r random number between 0 and 1 random number between 0 and 1if (if (f < 0 or r < exp(-f < 0 or r < exp(-f/T))f/T))

x x x’; x’;}}T T T * T * /* lower temperature *//* lower temperature */

}}return xreturn x

}}

•Pseudo-code of Simulated Annealing (SA) (Koakutsu et al. [20])Pseudo-code of Simulated Annealing (SA) (Koakutsu et al. [20])

SA_algorithm(NSA_algorithm(Naa, T, T00, , )){{

x x x x00; ; /* initial solution *//* initial solution */T T T T00; ; /* initial temperature *//* initial temperature */while (system is not frozen) {while (system is not frozen) {

for (loop = 1; loop for (loop = 1; loop N Naa; loop++) {; loop++) {x’ x’ Mutate(x); Mutate(x);f f f(x’) – f(x); f(x’) – f(x);r r random number between 0 and 1 random number between 0 and 1if (if (f < 0 or r < exp(-f < 0 or r < exp(-f/T))f/T))

x x x’; x’;}}T T T * T * /* lower temperature *//* lower temperature */

}}return xreturn x

}}

Page 5: SA, GA and GSA in Fuzzy Systems

Genetic Algorithms (GA)Genetic Algorithms (GA)• GA is another approach for solving combinatorial optimization problems.GA is another approach for solving combinatorial optimization problems.• GA applies GA applies an evolutionary mechanisman evolutionary mechanism to optimization problems. to optimization problems.• It starts with a population of initial solutions.It starts with a population of initial solutions.• Each solution has Each solution has a fitness valuea fitness value which is a measure of the quality of which is a measure of the quality of

solutions.solutions.• At each step, called At each step, called a generationa generation, GA produces a set of candidate , GA produces a set of candidate

solutions, called child solutions (solutions, called child solutions (offspringoffspring), using two types of genetic ), using two types of genetic operators: operators: mutationmutation and and crossovercrossover..

• It selects It selects good solutions as survivorsgood solutions as survivors to the next generation according to to the next generation according to the fitness value.the fitness value.

• The The mutation operatormutation operator takes a single parent and modifies it randomly in takes a single parent and modifies it randomly in a localized manner, so that it makes a localized manner, so that it makes a small jump in the solution spacea small jump in the solution space..

• On the other hand, the On the other hand, the crossover operatorcrossover operator takes 2 solutions as parents takes 2 solutions as parents and creates their child solutions by and creates their child solutions by combining the partial solutions of combining the partial solutions of the parentsthe parents..

• Crossover tends to create child solutionsCrossover tends to create child solutions which which differsdiffers from both parent from both parent solutions.solutions.

• It results in It results in a large jump in the solution spacea large jump in the solution space..

• GA is another approach for solving combinatorial optimization problems.GA is another approach for solving combinatorial optimization problems.• GA applies GA applies an evolutionary mechanisman evolutionary mechanism to optimization problems. to optimization problems.• It starts with a population of initial solutions.It starts with a population of initial solutions.• Each solution has Each solution has a fitness valuea fitness value which is a measure of the quality of which is a measure of the quality of

solutions.solutions.• At each step, called At each step, called a generationa generation, GA produces a set of candidate , GA produces a set of candidate

solutions, called child solutions (solutions, called child solutions (offspringoffspring), using two types of genetic ), using two types of genetic operators: operators: mutationmutation and and crossovercrossover..

• It selects It selects good solutions as survivorsgood solutions as survivors to the next generation according to to the next generation according to the fitness value.the fitness value.

• The The mutation operatormutation operator takes a single parent and modifies it randomly in takes a single parent and modifies it randomly in a localized manner, so that it makes a localized manner, so that it makes a small jump in the solution spacea small jump in the solution space..

• On the other hand, the On the other hand, the crossover operatorcrossover operator takes 2 solutions as parents takes 2 solutions as parents and creates their child solutions by and creates their child solutions by combining the partial solutions of combining the partial solutions of the parentsthe parents..

• Crossover tends to create child solutionsCrossover tends to create child solutions which which differsdiffers from both parent from both parent solutions.solutions.

• It results in It results in a large jump in the solution spacea large jump in the solution space..

Page 6: SA, GA and GSA in Fuzzy Systems

Genetic Algorithms (GA) (continue)Genetic Algorithms (GA) (continue)• There are 2 key differences between GA and SA.There are 2 key differences between GA and SA.1.1. GA GA maintains a population of solutionsmaintains a population of solutions and uses them to search the and uses them to search the

solution space.solution space.2.2. GA uses the GA uses the crossover operatorcrossover operator which causes a which causes a large jump in the large jump in the

solution spacesolution space..

• Features 2 allows GA to Features 2 allows GA to globally search a large region of the solution globally search a large region of the solution spacespace. But GA has . But GA has no explicit waysno explicit ways to produce to produce a sequence of small a sequence of small moves in the solution spacemoves in the solution space..

• Mutation creates a single small move one at a timeMutation creates a single small move one at a time instead of a instead of a sequence of small moves.sequence of small moves.

• As the result GA cannot search local region on the solution space As the result GA cannot search local region on the solution space exhaustively.exhaustively.

• There are 2 key differences between GA and SA.There are 2 key differences between GA and SA.1.1. GA GA maintains a population of solutionsmaintains a population of solutions and uses them to search the and uses them to search the

solution space.solution space.2.2. GA uses the GA uses the crossover operatorcrossover operator which causes a which causes a large jump in the large jump in the

solution spacesolution space..

• Features 2 allows GA to Features 2 allows GA to globally search a large region of the solution globally search a large region of the solution spacespace. But GA has . But GA has no explicit waysno explicit ways to produce to produce a sequence of small a sequence of small moves in the solution spacemoves in the solution space..

• Mutation creates a single small move one at a timeMutation creates a single small move one at a time instead of a instead of a sequence of small moves.sequence of small moves.

• As the result GA cannot search local region on the solution space As the result GA cannot search local region on the solution space exhaustively.exhaustively.

Page 7: SA, GA and GSA in Fuzzy Systems

Genetic Algorithms (GA) (continue)Genetic Algorithms (GA) (continue)

Solution

1100101010101110111000110110011100110001

encoding

chromosomes

110010

1110

1010

101110

110010

101110

1110

1010

crossover

mutation

00110 10011

000110 1001

evaluation

110010

1010

1110

101110

offspring

1001001100

Solution

decoding

Fitnesscomputation

selection

roulette wheel

newpopulation

Page 8: SA, GA and GSA in Fuzzy Systems

Genetic Algorithms (GA) (continue)Genetic Algorithms (GA) (continue)•Pseudo-code of Genetic Algorithms (GA) (Koakutsu et al. [20]) Pseudo-code of Genetic Algorithms (GA) (Koakutsu et al. [20]) GA_algorithm(L, RGA_algorithm(L, Rcc, R, Rmm)){{

X X {x {x11, ..., x, ..., xLL}; }; /* initial population *//* initial population */while (stop criterion is not met) {while (stop criterion is not met) { X’ X’ ;; while (number of children created < L while (number of children created < L R Rcc) {) {

select two solution, xselect two solution, xii,x,xjj from X from Xx’ x’ Crossover(x Crossover(xii, x, xjj););X’ X’ X’ + {x’}; X’ + {x’};

}} select L solutions from X select L solutions from X X’ as a new population X’ as a new population

while (number of solutions mutated < L while (number of solutions mutated < L R Rmm) {) {select one solution xselect one solution xkk from X from Xxxkk Mutate(x Mutate(xkk););

}}}}return the best solution in Xreturn the best solution in X

}}

•Pseudo-code of Genetic Algorithms (GA) (Koakutsu et al. [20]) Pseudo-code of Genetic Algorithms (GA) (Koakutsu et al. [20]) GA_algorithm(L, RGA_algorithm(L, Rcc, R, Rmm)){{

X X {x {x11, ..., x, ..., xLL}; }; /* initial population *//* initial population */while (stop criterion is not met) {while (stop criterion is not met) { X’ X’ ;; while (number of children created < L while (number of children created < L R Rcc) {) {

select two solution, xselect two solution, xii,x,xjj from X from Xx’ x’ Crossover(x Crossover(xii, x, xjj););X’ X’ X’ + {x’}; X’ + {x’};

}} select L solutions from X select L solutions from X X’ as a new population X’ as a new population

while (number of solutions mutated < L while (number of solutions mutated < L R Rmm) {) {select one solution xselect one solution xkk from X from Xxxkk Mutate(x Mutate(xkk););

}}}}return the best solution in Xreturn the best solution in X

}}

Page 9: SA, GA and GSA in Fuzzy Systems

Genetic Simulated Annealing (GSA)Genetic Simulated Annealing (GSA)• In order In order to improve the performance of GA and SAto improve the performance of GA and SA, several hybrid , several hybrid

algorithms have been proposed.algorithms have been proposed.• Mutation used in GA tends to destroy some good featuresMutation used in GA tends to destroy some good features of solutions at of solutions at

the final stages of optimization process.the final stages of optimization process.

SA-basedSA-based• While Sigrag and Weisser [10] proposed a thermodynamic genetic While Sigrag and Weisser [10] proposed a thermodynamic genetic

operator, which incorporates an annealing schedule to control the operator, which incorporates an annealing schedule to control the probability of applying the mutation, Adler [11] used a SA-based probability of applying the mutation, Adler [11] used a SA-based acceptance function to control the probability of accepting a new acceptance function to control the probability of accepting a new solution produced by the mutation.solution produced by the mutation.

GA-basedGA-based• More recent works on GA-oriented hybrids are the Simulated Annealing More recent works on GA-oriented hybrids are the Simulated Annealing

Genetic Algorithm (SAGA) method proposed by Brown et al. [12] and Genetic Algorithm (SAGA) method proposed by Brown et al. [12] and Annealing Genetic (AG) method proposed by Lin et al. [13].Annealing Genetic (AG) method proposed by Lin et al. [13].

• Both methods divide each “generation” into 2 phases: GA phase and SA Both methods divide each “generation” into 2 phases: GA phase and SA phase.phase.

• GA generates a set of new solutions using the crossover operator and GA generates a set of new solutions using the crossover operator and then SA further refines each solution in the population.then SA further refines each solution in the population.

• While SAGA uses the same annealing schedule for each SA phase, AG While SAGA uses the same annealing schedule for each SA phase, AG tries to optimize different schedules for different SA phases.tries to optimize different schedules for different SA phases.

• In order In order to improve the performance of GA and SAto improve the performance of GA and SA, several hybrid , several hybrid algorithms have been proposed.algorithms have been proposed.

• Mutation used in GA tends to destroy some good featuresMutation used in GA tends to destroy some good features of solutions at of solutions at the final stages of optimization process.the final stages of optimization process.

SA-basedSA-based• While Sigrag and Weisser [10] proposed a thermodynamic genetic While Sigrag and Weisser [10] proposed a thermodynamic genetic

operator, which incorporates an annealing schedule to control the operator, which incorporates an annealing schedule to control the probability of applying the mutation, Adler [11] used a SA-based probability of applying the mutation, Adler [11] used a SA-based acceptance function to control the probability of accepting a new acceptance function to control the probability of accepting a new solution produced by the mutation.solution produced by the mutation.

GA-basedGA-based• More recent works on GA-oriented hybrids are the Simulated Annealing More recent works on GA-oriented hybrids are the Simulated Annealing

Genetic Algorithm (SAGA) method proposed by Brown et al. [12] and Genetic Algorithm (SAGA) method proposed by Brown et al. [12] and Annealing Genetic (AG) method proposed by Lin et al. [13].Annealing Genetic (AG) method proposed by Lin et al. [13].

• Both methods divide each “generation” into 2 phases: GA phase and SA Both methods divide each “generation” into 2 phases: GA phase and SA phase.phase.

• GA generates a set of new solutions using the crossover operator and GA generates a set of new solutions using the crossover operator and then SA further refines each solution in the population.then SA further refines each solution in the population.

• While SAGA uses the same annealing schedule for each SA phase, AG While SAGA uses the same annealing schedule for each SA phase, AG tries to optimize different schedules for different SA phases.tries to optimize different schedules for different SA phases.

Page 10: SA, GA and GSA in Fuzzy Systems

GSA (continue)GSA (continue)• The above GA-oriented hybrids methods try to incorporate the local The above GA-oriented hybrids methods try to incorporate the local

stochastic hill climbing features of SA into GA.stochastic hill climbing features of SA into GA.• Since they incorporate full SA into each generation and the number of Since they incorporate full SA into each generation and the number of

generations is usually very large, GA-oriented hybrid methods are very generations is usually very large, GA-oriented hybrid methods are very time-consuming.time-consuming.

• SA-oriented hybrid approaches, attempts to adopt the global crossover SA-oriented hybrid approaches, attempts to adopt the global crossover operations of GA into SA.operations of GA into SA.

• Parallel Genetic Simulated Annealing (PGSA) [14, 15], is a parallel Parallel Genetic Simulated Annealing (PGSA) [14, 15], is a parallel version of SA incorporating GA features.version of SA incorporating GA features.

• During parallel SA-based search, crossover is used to generate new During parallel SA-based search, crossover is used to generate new solutions in order to enlarge the search region of SA.solutions in order to enlarge the search region of SA.

• GSA proposed by Koakutsu et al. [20].GSA proposed by Koakutsu et al. [20].• While While PGSA generates the seeds of SA local search in parallelPGSA generates the seeds of SA local search in parallel, that is the , that is the

order of applying each order of applying each SA local search is independentSA local search is independent, , GSA generates GSA generates the seeds of SA sequentiallythe seeds of SA sequentially, that is the , that is the seeds of a SA local search seeds of a SA local search depends of the best-so-far solutionsdepends of the best-so-far solutions of all previous SA local searches. of all previous SA local searches.

• This This sequentially approachsequentially approach seems to seems to generate better child solutionsgenerate better child solutions..• In addition, compared to PGSA, In addition, compared to PGSA, GSA uses fewer crossover operationsGSA uses fewer crossover operations

since it only uses crossover operations since it only uses crossover operations when the SA local search when the SA local search reaches a flat surfacereaches a flat surface and it is time to jump in the solution space. and it is time to jump in the solution space.

• The above GA-oriented hybrids methods try to incorporate the local The above GA-oriented hybrids methods try to incorporate the local stochastic hill climbing features of SA into GA.stochastic hill climbing features of SA into GA.

• Since they incorporate full SA into each generation and the number of Since they incorporate full SA into each generation and the number of generations is usually very large, GA-oriented hybrid methods are very generations is usually very large, GA-oriented hybrid methods are very time-consuming.time-consuming.

• SA-oriented hybrid approaches, attempts to adopt the global crossover SA-oriented hybrid approaches, attempts to adopt the global crossover operations of GA into SA.operations of GA into SA.

• Parallel Genetic Simulated Annealing (PGSA) [14, 15], is a parallel Parallel Genetic Simulated Annealing (PGSA) [14, 15], is a parallel version of SA incorporating GA features.version of SA incorporating GA features.

• During parallel SA-based search, crossover is used to generate new During parallel SA-based search, crossover is used to generate new solutions in order to enlarge the search region of SA.solutions in order to enlarge the search region of SA.

• GSA proposed by Koakutsu et al. [20].GSA proposed by Koakutsu et al. [20].• While While PGSA generates the seeds of SA local search in parallelPGSA generates the seeds of SA local search in parallel, that is the , that is the

order of applying each order of applying each SA local search is independentSA local search is independent, , GSA generates GSA generates the seeds of SA sequentiallythe seeds of SA sequentially, that is the , that is the seeds of a SA local search seeds of a SA local search depends of the best-so-far solutionsdepends of the best-so-far solutions of all previous SA local searches. of all previous SA local searches.

• This This sequentially approachsequentially approach seems to seems to generate better child solutionsgenerate better child solutions..• In addition, compared to PGSA, In addition, compared to PGSA, GSA uses fewer crossover operationsGSA uses fewer crossover operations

since it only uses crossover operations since it only uses crossover operations when the SA local search when the SA local search reaches a flat surfacereaches a flat surface and it is time to jump in the solution space. and it is time to jump in the solution space.

Page 11: SA, GA and GSA in Fuzzy Systems

GSA (continue)GSA (continue)

• GSA starts with a population X = {xGSA starts with a population X = {x11, , …, X…, XNpNp} and repeatedly applies 3 } and repeatedly applies 3 operations: operations: SA-based local search, GA-based crossover operationSA-based local search, GA-based crossover operation, and , and population updatepopulation update..

• SA-based local searchSA-based local search produces a candidate solution x’ produces a candidate solution x’ by changing a by changing a small fraction of the state of xsmall fraction of the state of x..

• The candidate solution is accepted as the new solution with probability The candidate solution is accepted as the new solution with probability min{1, emin{1, e--f/Tf/T}.}.

• GSA GSA preserves the local best-so-far solutionpreserves the local best-so-far solution x* x*LL during the SA-based during the SA-based local search.local search.

• When the When the search reaches a flat surface or the system is frozensearch reaches a flat surface or the system is frozen, GSA , GSA produces produces a large jump in the solution spacea large jump in the solution space by using GA-based by using GA-based crossovercrossover..

• GSA picks up a pair of parent solutions xGSA picks up a pair of parent solutions x jj and x and xkk at random from the at random from the population X such that f(xpopulation X such that f(xjj) ) f(x f(xkk), applies crossover operator, and then ), applies crossover operator, and then replace the worst solution xreplace the worst solution xii by the new solution produced by the by the new solution produced by the crossover operatorcrossover operator..

• At At the end of each SA-based local searchthe end of each SA-based local search, GSA , GSA updates the populationupdates the population by replacing the current solution xby replacing the current solution xii by the local best-so-far solutionby the local best-so-far solution x* x*LL..

• GSA terminates when the CPU time reaches given limit, and GSA terminates when the CPU time reaches given limit, and reports the reports the global best-so-far solutionglobal best-so-far solution x* x*GG..

• GSA starts with a population X = {xGSA starts with a population X = {x11, , …, X…, XNpNp} and repeatedly applies 3 } and repeatedly applies 3 operations: operations: SA-based local search, GA-based crossover operationSA-based local search, GA-based crossover operation, and , and population updatepopulation update..

• SA-based local searchSA-based local search produces a candidate solution x’ produces a candidate solution x’ by changing a by changing a small fraction of the state of xsmall fraction of the state of x..

• The candidate solution is accepted as the new solution with probability The candidate solution is accepted as the new solution with probability min{1, emin{1, e--f/Tf/T}.}.

• GSA GSA preserves the local best-so-far solutionpreserves the local best-so-far solution x* x*LL during the SA-based during the SA-based local search.local search.

• When the When the search reaches a flat surface or the system is frozensearch reaches a flat surface or the system is frozen, GSA , GSA produces produces a large jump in the solution spacea large jump in the solution space by using GA-based by using GA-based crossovercrossover..

• GSA picks up a pair of parent solutions xGSA picks up a pair of parent solutions x jj and x and xkk at random from the at random from the population X such that f(xpopulation X such that f(xjj) ) f(x f(xkk), applies crossover operator, and then ), applies crossover operator, and then replace the worst solution xreplace the worst solution xii by the new solution produced by the by the new solution produced by the crossover operatorcrossover operator..

• At At the end of each SA-based local searchthe end of each SA-based local search, GSA , GSA updates the populationupdates the population by replacing the current solution xby replacing the current solution xii by the local best-so-far solutionby the local best-so-far solution x* x*LL..

• GSA terminates when the CPU time reaches given limit, and GSA terminates when the CPU time reaches given limit, and reports the reports the global best-so-far solutionglobal best-so-far solution x* x*GG..

Page 12: SA, GA and GSA in Fuzzy Systems

GSA (continue)GSA (continue)•Pseudo-code of GSA (Koakutsu et al. [20]) Pseudo-code of GSA (Koakutsu et al. [20]) GSA_algorithm(NGSA_algorithm(Npp, N, Naa, T, T00, , )){{ X X {x {x11, ..., X, ..., XNpNp}; }; /* initialize population *//* initialize population */ x*x*LL the best solution among X; the best solution among X; /* initialize local best-so-far *//* initialize local best-so-far */ x*x*GG x* x*LL /* initialize global best-so-far *//* initialize global best-so-far */ while (not reach CPU time limit) {while (not reach CPU time limit) { T T T T00; ; /* initialize temperature *//* initialize temperature */ /* jump *//* jump */ select the worst solution xselect the worst solution xii from X; from X; select two solutions xselect two solutions xjj, x, xkk from X such that f(x from X such that f(xjj) ) f(x f(xkk);); xxii Crossover(x Crossover(xjj, x, xkk);); /* SA-based local search *//* SA-based local search */ while (not frozen or not meet stopping criterion) {while (not frozen or not meet stopping criterion) { for (loop = 1; loop for (loop = 1; loop N Naa; loop++) {; loop++) { x’ x’ Mutate(x Mutate(xii););

f f f(x’) – f(x f(x’) – f(xii);); r r random number between 0 and 1 random number between 0 and 1 if (if (f < 0 or r < exp(-f < 0 or r < exp(-f/T))f/T)) xxii x’; x’; if (f(xif (f(xii) < f(x*) < f(x*LL)))) x*x*LL x xii; ; /* update local best-so-far *//* update local best-so-far */}}T T T * T * /* lower temperature *//* lower temperature */

}} if (f(x*if (f(x*LL) < f(x*) < f(x*GG)))) x*x*GG x* x*LL; ; /* update global best-so-far *//* update global best-so-far */ /* update population *//* update population */ xxii x* x*LL;; f(x*f(x*LL) ) + +; ; /* reset current local best-so-far *//* reset current local best-so-far */ }} return x*return x*GG;;}}

•Pseudo-code of GSA (Koakutsu et al. [20]) Pseudo-code of GSA (Koakutsu et al. [20]) GSA_algorithm(NGSA_algorithm(Npp, N, Naa, T, T00, , )){{ X X {x {x11, ..., X, ..., XNpNp}; }; /* initialize population *//* initialize population */ x*x*LL the best solution among X; the best solution among X; /* initialize local best-so-far *//* initialize local best-so-far */ x*x*GG x* x*LL /* initialize global best-so-far *//* initialize global best-so-far */ while (not reach CPU time limit) {while (not reach CPU time limit) { T T T T00; ; /* initialize temperature *//* initialize temperature */ /* jump *//* jump */ select the worst solution xselect the worst solution xii from X; from X; select two solutions xselect two solutions xjj, x, xkk from X such that f(x from X such that f(xjj) ) f(x f(xkk);); xxii Crossover(x Crossover(xjj, x, xkk);); /* SA-based local search *//* SA-based local search */ while (not frozen or not meet stopping criterion) {while (not frozen or not meet stopping criterion) { for (loop = 1; loop for (loop = 1; loop N Naa; loop++) {; loop++) { x’ x’ Mutate(x Mutate(xii););

f f f(x’) – f(x f(x’) – f(xii);); r r random number between 0 and 1 random number between 0 and 1 if (if (f < 0 or r < exp(-f < 0 or r < exp(-f/T))f/T)) xxii x’; x’; if (f(xif (f(xii) < f(x*) < f(x*LL)))) x*x*LL x xii; ; /* update local best-so-far *//* update local best-so-far */}}T T T * T * /* lower temperature *//* lower temperature */

}} if (f(x*if (f(x*LL) < f(x*) < f(x*GG)))) x*x*GG x* x*LL; ; /* update global best-so-far *//* update global best-so-far */ /* update population *//* update population */ xxii x* x*LL;; f(x*f(x*LL) ) + +; ; /* reset current local best-so-far *//* reset current local best-so-far */ }} return x*return x*GG;;}}

Page 13: SA, GA and GSA in Fuzzy Systems

GSA to Estimate Null Values in Generating Weighted Fuzzy Rules from Relational Database Systems and It’s Estimating on Multiple Null ValuesGSA to Estimate Null Values in Generating Weighted Fuzzy Rules from

Relational Database Systems and It’s Estimating on Multiple Null Values

Basic Concepts of Fuzzy SetsBasic Concepts of Fuzzy Sets• A fuzzy subset A of the universe of discourse U can be represented as A fuzzy subset A of the universe of discourse U can be represented as

follows:follows: A = A = AA (u (u11) / u) / u11 + + AA (u (u22) / u) / u22 + … + + … + AA (u (unn) / u) / unn (1)(1)• Where Where AA is the membership function of the fuzzy subset A, is the membership function of the fuzzy subset A, AA: U: U[0,1], [0,1],

and and AA (u (uii) indicate the grade of membership of u) indicate the grade of membership of u ii in the fuzzy set A. If U in the fuzzy set A. If U is continuous set, then the fuzzy subset A can be represented as follows:is continuous set, then the fuzzy subset A can be represented as follows:

A = A = (2)(2)

Part 1: Estimating Null Values in Relational Database SystemsPart 1: Estimating Null Values in Relational Database Systems With GSAWith GSA• In [1], Chen et al. described how to estimate null values in relational In [1], Chen et al. described how to estimate null values in relational

database systems with Genetic Algorithms.database systems with Genetic Algorithms.• A linguistic term can be represented by a fuzzy set represented by a A linguistic term can be represented by a fuzzy set represented by a

membership function. In that paper, the membership functions of the membership function. In that paper, the membership functions of the linguistic terms “L”, “SL”, “M”, “SH”, and “H” of the attributes “Salary” linguistic terms “L”, “SL”, “M”, “SH”, and “H” of the attributes “Salary” and “Experience” in relational database system are adopted from [6].and “Experience” in relational database system are adopted from [6].

Basic Concepts of Fuzzy SetsBasic Concepts of Fuzzy Sets• A fuzzy subset A of the universe of discourse U can be represented as A fuzzy subset A of the universe of discourse U can be represented as

follows:follows: A = A = AA (u (u11) / u) / u11 + + AA (u (u22) / u) / u22 + … + + … + AA (u (unn) / u) / unn (1)(1)• Where Where AA is the membership function of the fuzzy subset A, is the membership function of the fuzzy subset A, AA: U: U[0,1], [0,1],

and and AA (u (uii) indicate the grade of membership of u) indicate the grade of membership of u ii in the fuzzy set A. If U in the fuzzy set A. If U is continuous set, then the fuzzy subset A can be represented as follows:is continuous set, then the fuzzy subset A can be represented as follows:

A = A = (2)(2)

Part 1: Estimating Null Values in Relational Database SystemsPart 1: Estimating Null Values in Relational Database Systems With GSAWith GSA• In [1], Chen et al. described how to estimate null values in relational In [1], Chen et al. described how to estimate null values in relational

database systems with Genetic Algorithms.database systems with Genetic Algorithms.• A linguistic term can be represented by a fuzzy set represented by a A linguistic term can be represented by a fuzzy set represented by a

membership function. In that paper, the membership functions of the membership function. In that paper, the membership functions of the linguistic terms “L”, “SL”, “M”, “SH”, and “H” of the attributes “Salary” linguistic terms “L”, “SL”, “M”, “SH”, and “H” of the attributes “Salary” and “Experience” in relational database system are adopted from [6].and “Experience” in relational database system are adopted from [6].

U

A Uuuu ,)(

Notation Denotes

L Low

SL Somewhat Low

M Medium

SH Somewhat High

H High

Page 14: SA, GA and GSA in Fuzzy Systems

… continue… continue

• Here is relation in relational Here is relation in relational database [4], [6]database [4], [6]

• Degree of similarity between the Degree of similarity between the values of the attribute “Degree” values of the attribute “Degree” listed below:listed below:

• Here is relation in relational Here is relation in relational database [4], [6]database [4], [6]

• Degree of similarity between the Degree of similarity between the values of the attribute “Degree” values of the attribute “Degree” listed below:listed below:

EMP-ID Degree Experience Salary

S1 Ph.D. 7.2 63,000

S2 Master 2.0 37,000

S3 Bachelor 7.0 40,000

S4 Ph.D. 1.2 47,000

S5 Master 7.5 53,000

S6 Bachelor 1.5 26,000

S7 Bachelor 2.3 29,000

S8 Ph.D. 2.0 50,000

S9 Ph.D. 3.8 54,000

S10 Bachelor 3.5 35,000

S11 Master 3.5 40,000

S12 Master 3.6 41,000

S13 Master 10.0 68,000

S14 Ph.D. 5.0 57,000

S15 Bachelor 5.0 36,000

S16 Master 6.2 50,000

S17 Bachelor 0.5 23,000

S18 Master 7.2 55,000

S19 Master 6.5 51,000

S20 Ph.D. 7.8 65,000

S21 Master 8.1 64,000

S22 Ph.D. 8.5 70,000

Bachelor Master Ph.D.

Bachelor 1 0.6 0.4

Master 0.6 1 0.6

Ph.D. 0.4 0.6 1

Page 15: SA, GA and GSA in Fuzzy Systems

… continue… continue

Page 16: SA, GA and GSA in Fuzzy Systems

… continue… continue

• After fuzzification:After fuzzification:• After fuzzification:After fuzzification:

EMP-ID Degree Experience Salary

S1 Ph.D./1.0 SH/0.9 63,000

S2 Master/1.0 L/0.5 37,000

S3 Bachelor/1.0 SH/1.0 40,000

S4 Ph.D./1.0 L/0.9 47,000

S5 Master/1.0 SH/0.75 53,000

S6 Bachelor/1.0 L/0.75 26,000

S7 Bachelor/1.0 SL/0.65 29,000

S8 Ph.D./1.0 L/0.5 50,000

S9 Ph.D./1.0 SL/0.6 54,000

S10 Bachelor/1.0 SL/0.75 35,000

S11 Master/1.0 SL/0.75 40,000

S12 Master/1.0 SL/0.7 41,000

S13 Master/1.0 H/1.0 68,000

S14 Ph.D./1.0 M/1.0 57,000

S15 Bachelor/1.0 M/1.0 36,000

S16 Master/1.0 SH/0.6 50,000

S17 Bachelor/1.0 L/1.0 23,000

S18 Master/1.0 SH/0.9 55,000

S19 Master/1.0 SH/0.75 51,000

S20 Ph.D./1.0 SH/0.6 65,000

S21 Master/1.0 H/0.55 64,000

S22 Ph.D./1.0 H/0.75 70,000

Page 17: SA, GA and GSA in Fuzzy Systems

… continue… continue

• Degree of similarity between two nonnumeric values listed below:Degree of similarity between two nonnumeric values listed below: Rank(Bachelor) = 1Rank(Bachelor) = 1Rank(Master) = 2Rank(Master) = 2Rank(Ph.D.) = 3Rank(Ph.D.) = 3

• Let X is a nonnumeric attribute. Based on the value TLet X is a nonnumeric attribute. Based on the value T ii.X of the attribute .X of the attribute X of tuple TX of tuple Tii and the value T and the value Tjj.X of the attribute X of tuple T.X of the attribute X of tuple Tjj, where i , where i j, j, the degree of closeness Closeness(Tthe degree of closeness Closeness(Tii, T, Tjj) between tuples T) between tuples Tii and T and Tjj can be can be calculated by (8) or (9), where Weight(Tcalculated by (8) or (9), where Weight(T jj.Degree) and .Degree) and Weight(TWeight(Tjj.Experience) denote the weights of the attributes “Degree” .Experience) denote the weights of the attributes “Degree” and “Experience”, respectively, obtained from the fuzzified values of the and “Experience”, respectively, obtained from the fuzzified values of the attributes “Degree” and “Experience” of tuple Tattributes “Degree” and “Experience” of tuple T jj, derived from a , derived from a chromosomechromosome

If Rank(TIf Rank(Tii.X) .X) Rank(T Rank(Tjj.X) then.X) then Closeness(TCloseness(Tii, T, Tjj) = Similarity(T) = Similarity(Tii.X, T.X, Tjj.X) .X) Weight(T Weight(Tjj.Degree) + .Degree) +

Weight(T Weight(Tjj.Experience).Experience) (8)(8)

If Rank(Ti.X) < Rank(Tj.X) thenIf Rank(Ti.X) < Rank(Tj.X) then Closeness(TCloseness(Tii, T, Tjj) = 1/Similarity(T) = 1/Similarity(Tii.X, T.X, Tjj.X) .X) Weight(T Weight(Tjj.Degree) + .Degree) +

Weight(T Weight(Tjj.Experience).Experience) (9)(9)

• where Similarity(Twhere Similarity(Tii.X, T.X, Tjj.X) denotes the degree of similarity between T.X) denotes the degree of similarity between T ii.X .X and Tand Tjj.X, and its value is obtained from a fuzzy similarity matrix of the .X, and its value is obtained from a fuzzy similarity matrix of the linguistic terms of the attribute X defined by a domain expert.linguistic terms of the attribute X defined by a domain expert.

• Degree of similarity between two nonnumeric values listed below:Degree of similarity between two nonnumeric values listed below: Rank(Bachelor) = 1Rank(Bachelor) = 1Rank(Master) = 2Rank(Master) = 2Rank(Ph.D.) = 3Rank(Ph.D.) = 3

• Let X is a nonnumeric attribute. Based on the value TLet X is a nonnumeric attribute. Based on the value T ii.X of the attribute .X of the attribute X of tuple TX of tuple Tii and the value T and the value Tjj.X of the attribute X of tuple T.X of the attribute X of tuple Tjj, where i , where i j, j, the degree of closeness Closeness(Tthe degree of closeness Closeness(Tii, T, Tjj) between tuples T) between tuples Tii and T and Tjj can be can be calculated by (8) or (9), where Weight(Tcalculated by (8) or (9), where Weight(T jj.Degree) and .Degree) and Weight(TWeight(Tjj.Experience) denote the weights of the attributes “Degree” .Experience) denote the weights of the attributes “Degree” and “Experience”, respectively, obtained from the fuzzified values of the and “Experience”, respectively, obtained from the fuzzified values of the attributes “Degree” and “Experience” of tuple Tattributes “Degree” and “Experience” of tuple T jj, derived from a , derived from a chromosomechromosome

If Rank(TIf Rank(Tii.X) .X) Rank(T Rank(Tjj.X) then.X) then Closeness(TCloseness(Tii, T, Tjj) = Similarity(T) = Similarity(Tii.X, T.X, Tjj.X) .X) Weight(T Weight(Tjj.Degree) + .Degree) +

Weight(T Weight(Tjj.Experience).Experience) (8)(8)

If Rank(Ti.X) < Rank(Tj.X) thenIf Rank(Ti.X) < Rank(Tj.X) then Closeness(TCloseness(Tii, T, Tjj) = 1/Similarity(T) = 1/Similarity(Tii.X, T.X, Tjj.X) .X) Weight(T Weight(Tjj.Degree) + .Degree) +

Weight(T Weight(Tjj.Experience).Experience) (9)(9)

• where Similarity(Twhere Similarity(Tii.X, T.X, Tjj.X) denotes the degree of similarity between T.X) denotes the degree of similarity between T ii.X .X and Tand Tjj.X, and its value is obtained from a fuzzy similarity matrix of the .X, and its value is obtained from a fuzzy similarity matrix of the linguistic terms of the attribute X defined by a domain expert.linguistic terms of the attribute X defined by a domain expert.

ExperienceT

ExperienceT

j

i

.

.

ExperienceT

ExperienceT

j

i

.

.

Page 18: SA, GA and GSA in Fuzzy Systems

… continue… continue

• Estimated value “ETEstimated value “ETii.Salary” of the attribute “Salary” of tuple T.Salary” of the attribute “Salary” of tuple T ii as as follows:follows:

ETETii.Salary = T.Salary = Tii.Salary .Salary Closeness (T Closeness (Tii, T, Tjj)) (10)(10)• Estimated error of each tuple by (11), where ErrorEstimated error of each tuple by (11), where Error ii denotes the denotes the

estimated error between the estimated value ETestimated error between the estimated value ET ii.Salary of the attribute .Salary of the attribute “Salary” of tuple T“Salary” of tuple Tii and the actual value T and the actual value Tii.Salary of the attribute .Salary of the attribute “Salary” of tuple T“Salary” of tuple Tii

Errori =Errori = (11)(11)

• Let Avg_Error denote the average estimated error of the tuples based Let Avg_Error denote the average estimated error of the tuples based on the combination of weights of the attributes derived from the on the combination of weights of the attributes derived from the chromosome, wherechromosome, where

Avg_Error =Avg_Error = (12)(12)

• Then, we can obtain the fitness degree of this chromosome as follows:Then, we can obtain the fitness degree of this chromosome as follows:Fitness Degree = 1 – Avg_ErrorFitness Degree = 1 – Avg_Error (13)(13)

• Estimated value “ETEstimated value “ETii.Salary” of the attribute “Salary” of tuple T.Salary” of the attribute “Salary” of tuple T ii as as follows:follows:

ETETii.Salary = T.Salary = Tii.Salary .Salary Closeness (T Closeness (Tii, T, Tjj)) (10)(10)• Estimated error of each tuple by (11), where ErrorEstimated error of each tuple by (11), where Error ii denotes the denotes the

estimated error between the estimated value ETestimated error between the estimated value ET ii.Salary of the attribute .Salary of the attribute “Salary” of tuple T“Salary” of tuple Tii and the actual value T and the actual value Tii.Salary of the attribute .Salary of the attribute “Salary” of tuple T“Salary” of tuple Tii

Errori =Errori = (11)(11)

• Let Avg_Error denote the average estimated error of the tuples based Let Avg_Error denote the average estimated error of the tuples based on the combination of weights of the attributes derived from the on the combination of weights of the attributes derived from the chromosome, wherechromosome, where

Avg_Error =Avg_Error = (12)(12)

• Then, we can obtain the fitness degree of this chromosome as follows:Then, we can obtain the fitness degree of this chromosome as follows:Fitness Degree = 1 – Avg_ErrorFitness Degree = 1 – Avg_Error (13)(13)

SalaryT

SalaryTSalaryET

i

ii

.

..

n

Errorn

ii

1

Page 19: SA, GA and GSA in Fuzzy Systems

… continue… continue

• Here is a table where 1 value is null Here is a table where 1 value is null value, and value, and with GSA we try to with GSA we try to obtained this value from other valueobtained this value from other value together with formulas described together with formulas described above.above.

• Here is a table where 1 value is null Here is a table where 1 value is null value, and value, and with GSA we try to with GSA we try to obtained this value from other valueobtained this value from other value together with formulas described together with formulas described above.above.

EMP-ID Degree Experience Salary

S1 Ph.D. 7.2 63,000

S2 Master 2.0 37,000

S3 Bachelor 7.0 40,000

S4 Ph.D. 1.2 47,000

S5 Master 7.5 53,000

S6 Bachelor 1.5 26,000

S7 Bachelor 2.3 29,000

S8 Ph.D. 2.0 50,000

S9 Ph.D. 3.8 54,000

S10 Bachelor 3.5 35,000

S11 Master 3.5 40,000

S12 Master 3.6 41,000

S13 Master 10.0 68,000

S14 Ph.D. 5.0 57,000

S15 Bachelor 5.0 36,000

S16 Master 6.2 50,000

S17 Bachelor 0.5 23,000

S18 Master 7.2 55,000

S19 Master 6.5 51,000

S20 Ph.D. 7.8 65,000

S21 Master 8.1 64,000

S22 Ph.D. 8.5 NULL

Page 20: SA, GA and GSA in Fuzzy Systems

EvaluationAndBestSelection EvaluationAndBestSelection {find the best solution among population. Also it initializes LocalBestChromosomeSoFar and GlobalBestChromosomeSoFar:{find the best solution among population. Also it initializes LocalBestChromosomeSoFar and GlobalBestChromosomeSoFar:X X {x {x11, ..., X, ..., XNpNp}; {initialize population}}; {initialize population}x*x*LL the best solution among X; {initialize local best-so-far} the best solution among X; {initialize local best-so-far}x*x*GG x*L {initialize global best-so-far} x*L {initialize global best-so-far}FitnessDegreeEval FitnessDegreeEval FitnessDegree from global best-so-far FitnessDegree from global best-so-far}}for i:= 1 to number-of-generations do beginfor i:= 1 to number-of-generations do begin T T T T00;; EvaluationAndWorstSelection; EvaluationAndWorstSelection; {select the worst solution x{select the worst solution xii from X} from X} CrossOver; CrossOver; {select two solutions x{select two solutions xjj, x, xkk from X such that f(x from X such that f(xjj) ) f(x f(xkk):): xxii Crossover(x Crossover(xjj, x, xkk);); }} Mutation; Mutation; {update local best-so-far if value is better{update local best-so-far if value is better repeatrepeat for i:= 0 to number-of-mutation do beginfor i:= 0 to number-of-mutation do begin f(xf(xii) ) Get Fitness Degree from chromosome before mutation Get Fitness Degree from chromosome before mutation x’ x’ Mutate(x Mutate(xii) ) f(x’) f(x’) Get Fitness Degree from chromosome after mutation Get Fitness Degree from chromosome after mutation f f f(x f(xii) - f(x’)) - f(x’) r r random number between 0 and 1 random number between 0 and 1 fftt f(x’) f(x’) if (if (f >= 0) or (r >= exp(-f >= 0) or (r >= exp(-f/T)) then begin f/T)) then begin xxii x’; x’; fftt f(xi); f(xi); end;end; if (fif (ftt >= FitnessDegreeEval) then begin >= FitnessDegreeEval) then begin x*x*LL x xii; {update local best-so-far} ; {update local best-so-far} FitnessDegreeEval FitnessDegreeEval f ftt FDLocalBestSoFar FDLocalBestSoFar f ftt {Get local best Fitness Degree} {Get local best Fitness Degree} end end endend T T T * T * ; {lower temperature}; {lower temperature} until T <= FrozenValue;until T <= FrozenValue; }} CountCloseness(CountCloseness(x*x*LL);); {get FD from LocalBestChromosomeSoFar} {get FD from LocalBestChromosomeSoFar} AvgError:= AvgError / NumData;AvgError:= AvgError / NumData; FDLocalBestSoFar:= 1 - AvgError;FDLocalBestSoFar:= 1 - AvgError; CountCloseness(CountCloseness(x*x*GG);); {get FD from GlobalBestChromosomeSoFar} {get FD from GlobalBestChromosomeSoFar} AvgError:= AvgError / NumData;AvgError:= AvgError / NumData; FDGlobalBestSoFar:= 1 - AvgError;FDGlobalBestSoFar:= 1 - AvgError; if FDLocalBestSoFar >= FDGlobalBestSoFar then beginif FDLocalBestSoFar >= FDGlobalBestSoFar then begin x*x*GG x* x*LL; {update global best-so-far}; {update global best-so-far} FitnessDegreeEval:= FDGlobalBestSoFar;FitnessDegreeEval:= FDGlobalBestSoFar; end;end; xxii x* x*LL; ; {update population}{update population}end;end;

EvaluationAndBestSelection EvaluationAndBestSelection {find the best solution among population. Also it initializes LocalBestChromosomeSoFar and GlobalBestChromosomeSoFar:{find the best solution among population. Also it initializes LocalBestChromosomeSoFar and GlobalBestChromosomeSoFar:X X {x {x11, ..., X, ..., XNpNp}; {initialize population}}; {initialize population}x*x*LL the best solution among X; {initialize local best-so-far} the best solution among X; {initialize local best-so-far}x*x*GG x*L {initialize global best-so-far} x*L {initialize global best-so-far}FitnessDegreeEval FitnessDegreeEval FitnessDegree from global best-so-far FitnessDegree from global best-so-far}}for i:= 1 to number-of-generations do beginfor i:= 1 to number-of-generations do begin T T T T00;; EvaluationAndWorstSelection; EvaluationAndWorstSelection; {select the worst solution x{select the worst solution xii from X} from X} CrossOver; CrossOver; {select two solutions x{select two solutions xjj, x, xkk from X such that f(x from X such that f(xjj) ) f(x f(xkk):): xxii Crossover(x Crossover(xjj, x, xkk);); }} Mutation; Mutation; {update local best-so-far if value is better{update local best-so-far if value is better repeatrepeat for i:= 0 to number-of-mutation do beginfor i:= 0 to number-of-mutation do begin f(xf(xii) ) Get Fitness Degree from chromosome before mutation Get Fitness Degree from chromosome before mutation x’ x’ Mutate(x Mutate(xii) ) f(x’) f(x’) Get Fitness Degree from chromosome after mutation Get Fitness Degree from chromosome after mutation f f f(x f(xii) - f(x’)) - f(x’) r r random number between 0 and 1 random number between 0 and 1 fftt f(x’) f(x’) if (if (f >= 0) or (r >= exp(-f >= 0) or (r >= exp(-f/T)) then begin f/T)) then begin xxii x’; x’; fftt f(xi); f(xi); end;end; if (fif (ftt >= FitnessDegreeEval) then begin >= FitnessDegreeEval) then begin x*x*LL x xii; {update local best-so-far} ; {update local best-so-far} FitnessDegreeEval FitnessDegreeEval f ftt FDLocalBestSoFar FDLocalBestSoFar f ftt {Get local best Fitness Degree} {Get local best Fitness Degree} end end endend T T T * T * ; {lower temperature}; {lower temperature} until T <= FrozenValue;until T <= FrozenValue; }} CountCloseness(CountCloseness(x*x*LL);); {get FD from LocalBestChromosomeSoFar} {get FD from LocalBestChromosomeSoFar} AvgError:= AvgError / NumData;AvgError:= AvgError / NumData; FDLocalBestSoFar:= 1 - AvgError;FDLocalBestSoFar:= 1 - AvgError; CountCloseness(CountCloseness(x*x*GG);); {get FD from GlobalBestChromosomeSoFar} {get FD from GlobalBestChromosomeSoFar} AvgError:= AvgError / NumData;AvgError:= AvgError / NumData; FDGlobalBestSoFar:= 1 - AvgError;FDGlobalBestSoFar:= 1 - AvgError; if FDLocalBestSoFar >= FDGlobalBestSoFar then beginif FDLocalBestSoFar >= FDGlobalBestSoFar then begin x*x*GG x* x*LL; {update global best-so-far}; {update global best-so-far} FitnessDegreeEval:= FDGlobalBestSoFar;FitnessDegreeEval:= FDGlobalBestSoFar; end;end; xxii x* x*LL; ; {update population}{update population}end;end;

Page 21: SA, GA and GSA in Fuzzy Systems

•Procedure Procedure CountClosenessCountCloseness describe below: describe below:AvgError:= 0.0;AvgError:= 0.0;for i:= 0 to NumData - 1 do begin for i:= 0 to NumData - 1 do begin {base on all data available}{base on all data available} BestClosenessEval:= MaxInt;BestClosenessEval:= MaxInt; IdxClosestCloseness:= i;IdxClosestCloseness:= i; for j:= 0 to NumData - 1 dofor j:= 0 to NumData - 1 do if i <> j then beginif i <> j then begin if Rank(Ti.X) if Rank(Ti.X) Rank(Tj.X) then begin Rank(Tj.X) then begin ClosenessE(Ti,Tj)= Similarity(Ti.X,Tj.X) ClosenessE(Ti,Tj)= Similarity(Ti.X,Tj.X) Weight(Tj.Degree) + Weight(Tj.Degree) + Weight(Tj.Experience);Weight(Tj.Experience); endend else begin {If Rank(Ti.X) < Rank(Tj.X)}else begin {If Rank(Ti.X) < Rank(Tj.X)} ClosenessE:= 1/Similarity(Ti.X,Tj.X) ClosenessE:= 1/Similarity(Ti.X,Tj.X) Weight(Tj.Degree) + Weight(Tj.Degree) + Weight(Tj.Experience);Weight(Tj.Experience); end;end; {find a tuples which is closest to 1.0 as a}{find a tuples which is closest to 1.0 as a} {closest tuple to tuple Ti}{closest tuple to tuple Ti} ClosestCloseness:= Abs(1 - ClosenessE);ClosestCloseness:= Abs(1 - ClosenessE); if ClosestCloseness <= BestClosenessEval then beginif ClosestCloseness <= BestClosenessEval then begin BestClosenessEval:= ClosestCloseness;BestClosenessEval:= ClosestCloseness; IdxClosestCloseness:= j;IdxClosestCloseness:= j; end;end; end;end; {Then we find Estimated Salary and Error for every record}{Then we find Estimated Salary and Error for every record} {if this record was null value, so we must find}{if this record was null value, so we must find} {another record that closest to 1}{another record that closest to 1} if IsNullValue(i) and IsNullValue(IdxClosestCloseness) then beginif IsNullValue(i) and IsNullValue(IdxClosestCloseness) then begin PreferIdx:= GetPreferIdx;PreferIdx:= GetPreferIdx; ETETii.Salary:= T.Salary:= Tii. Salary . Salary GetClosenessValue(PreferIdx); GetClosenessValue(PreferIdx); if Tif Tprefer-indexprefer-index.Salary <> 0 then.Salary <> 0 then ErrorErrorii:= :=

endend else beginelse begin ETETii.Salary:= T.Salary:= Tii. Salary . Salary GetClosenessValue(IdxClosestCloseness); GetClosenessValue(IdxClosestCloseness); if Tif Tii.Salary <> 0 then.Salary <> 0 then ErrorErrorii:=:=

end;end; AvgError:= AvgError + Abs(ErrorAvgError:= AvgError + Abs(Errorii););end;end;

•Procedure Procedure CountClosenessCountCloseness describe below: describe below:AvgError:= 0.0;AvgError:= 0.0;for i:= 0 to NumData - 1 do begin for i:= 0 to NumData - 1 do begin {base on all data available}{base on all data available} BestClosenessEval:= MaxInt;BestClosenessEval:= MaxInt; IdxClosestCloseness:= i;IdxClosestCloseness:= i; for j:= 0 to NumData - 1 dofor j:= 0 to NumData - 1 do if i <> j then beginif i <> j then begin if Rank(Ti.X) if Rank(Ti.X) Rank(Tj.X) then begin Rank(Tj.X) then begin ClosenessE(Ti,Tj)= Similarity(Ti.X,Tj.X) ClosenessE(Ti,Tj)= Similarity(Ti.X,Tj.X) Weight(Tj.Degree) + Weight(Tj.Degree) + Weight(Tj.Experience);Weight(Tj.Experience); endend else begin {If Rank(Ti.X) < Rank(Tj.X)}else begin {If Rank(Ti.X) < Rank(Tj.X)} ClosenessE:= 1/Similarity(Ti.X,Tj.X) ClosenessE:= 1/Similarity(Ti.X,Tj.X) Weight(Tj.Degree) + Weight(Tj.Degree) + Weight(Tj.Experience);Weight(Tj.Experience); end;end; {find a tuples which is closest to 1.0 as a}{find a tuples which is closest to 1.0 as a} {closest tuple to tuple Ti}{closest tuple to tuple Ti} ClosestCloseness:= Abs(1 - ClosenessE);ClosestCloseness:= Abs(1 - ClosenessE); if ClosestCloseness <= BestClosenessEval then beginif ClosestCloseness <= BestClosenessEval then begin BestClosenessEval:= ClosestCloseness;BestClosenessEval:= ClosestCloseness; IdxClosestCloseness:= j;IdxClosestCloseness:= j; end;end; end;end; {Then we find Estimated Salary and Error for every record}{Then we find Estimated Salary and Error for every record} {if this record was null value, so we must find}{if this record was null value, so we must find} {another record that closest to 1}{another record that closest to 1} if IsNullValue(i) and IsNullValue(IdxClosestCloseness) then beginif IsNullValue(i) and IsNullValue(IdxClosestCloseness) then begin PreferIdx:= GetPreferIdx;PreferIdx:= GetPreferIdx; ETETii.Salary:= T.Salary:= Tii. Salary . Salary GetClosenessValue(PreferIdx); GetClosenessValue(PreferIdx); if Tif Tprefer-indexprefer-index.Salary <> 0 then.Salary <> 0 then ErrorErrorii:= :=

endend else beginelse begin ETETii.Salary:= T.Salary:= Tii. Salary . Salary GetClosenessValue(IdxClosestCloseness); GetClosenessValue(IdxClosestCloseness); if Tif Tii.Salary <> 0 then.Salary <> 0 then ErrorErrorii:=:=

end;end; AvgError:= AvgError + Abs(ErrorAvgError:= AvgError + Abs(Errorii););end;end;

ExperienceT

ExperienceT

j

i

.

.

ExperienceT

ExperienceT

j

i

.

.

SalaryT

SalaryTSalaryET

indexprefer

indexpreferi

.

..

SalaryT

SalaryTSalaryET

i

ii

.

..

Page 22: SA, GA and GSA in Fuzzy Systems

… continue… continue

• Function Function GetClosenessValueGetClosenessValue describe below: describe below:function GetClosenessValue(Idx)function GetClosenessValue(Idx) Result Result find value in ClosenessE which have the same index find value in ClosenessE which have the same index with Idxwith Idx

• Function Function GetPreferIdxGetPreferIdx describe below: describe below:function GetPreferIdxfunction GetPreferIdx Result Result find value in ClosenessE that closest to 1, and find value in ClosenessE that closest to 1, and it's not null valueit's not null value

• Function Function GetClosenessValueGetClosenessValue describe below: describe below:function GetClosenessValue(Idx)function GetClosenessValue(Idx) Result Result find value in ClosenessE which have the same index find value in ClosenessE which have the same index with Idxwith Idx

• Function Function GetPreferIdxGetPreferIdx describe below: describe below:function GetPreferIdxfunction GetPreferIdx Result Result find value in ClosenessE that closest to 1, and find value in ClosenessE that closest to 1, and it's not null valueit's not null value

Page 23: SA, GA and GSA in Fuzzy Systems

… continue… continue

ExperimentsExperiments• We run this program for different parameters, each for 10 times.We run this program for different parameters, each for 10 times.• We get the results as below:We get the results as below:

Experiments type 1:Experiments type 1:• Mutation Rate = 0.01 = 1%Mutation Rate = 0.01 = 1%• Initial Temperature = 100Initial Temperature = 100• Alpha = 0.7Alpha = 0.7• Frozen Value = 0.00001Frozen Value = 0.00001• Index of Null Values = 21 (It means row/tuple 22th in relational Index of Null Values = 21 (It means row/tuple 22th in relational

database)database)

ExperimentsExperiments• We run this program for different parameters, each for 10 times.We run this program for different parameters, each for 10 times.• We get the results as below:We get the results as below:

Experiments type 1:Experiments type 1:• Mutation Rate = 0.01 = 1%Mutation Rate = 0.01 = 1%• Initial Temperature = 100Initial Temperature = 100• Alpha = 0.7Alpha = 0.7• Frozen Value = 0.00001Frozen Value = 0.00001• Index of Null Values = 21 (It means row/tuple 22th in relational Index of Null Values = 21 (It means row/tuple 22th in relational

database)database)

Page 24: SA, GA and GSA in Fuzzy Systems

… continue… continue

Page 25: SA, GA and GSA in Fuzzy Systems

… continue… continueSize Of Population 30

Number of Generations 100

Running #Avg.

Estimated Error

Hour

Minute

Second

Milisecond

Total Time

1 0.011162399 0 2 16 781 0h:2m:16s:781ms

2 0.009827038 0 2 10 844 0h:2m:10s:844ms

3 0.00885265 0 2 36 797 0h:2m:36s:797ms

4 0.00885265 0 3 12 250 0h:3m:12s:250ms

5 0.00885265 0 3 5 406 0h:3m:5s:406ms

6 0.00885265 0 2 45 766 0h:2m:45s:766ms

7 0.007028583 0 2 34 469 0h:2m:34s:469ms

8 0.006138154 0 2 44 46 0h:2m:44s:46ms

9 0.006138154 0 2 41 235 0h:2m:41s:235ms

10 0.006138154 0 2 32 515 0h:2m:32s:515ms

Min 0.006138154 0 2 5 46

Average 0.008184308 0 2.2 27.5 510.9

Max 0.011162399 0 3 45 844

Page 26: SA, GA and GSA in Fuzzy Systems

… continue… continueSize Of Population 40

Number of Generations 150

Running #Avg.

Estimated Error

Hour

Minute

Second

Milisecond

Total Time

1 0.018120004 0 6 9 578 0h:6m:9s:578ms

2 0.014019037 0 8 23 937 0h:8m:23s:937ms

3 0.008319306 0 6 56 344 0h:6m:56s:344ms

4 0.004907964 0 7 13 969 0h:7m:13s:969ms

5 0.004907964 0 9 16 703 0h:9m:16s:703ms

6 0.003288305 0 7 40 547 0h:7m:40s:547ms

7 0.003172975 0 6 53 187 0h:6m:53s:187ms

8 0.003172975 0 7 9 438 0h:7m:9s:438ms

9 0.003153504 0 7 34 594 0h:7m:34s:594ms

10 0.003153504 0 7 39 406 0h:7m:39s:406ms

Min 0.003153504 0 6 9 187

Average 0.006621554 0 7 29.2 570.3

Max 0.018120004 0 9 56 969

Page 27: SA, GA and GSA in Fuzzy Systems

… continue… continueSize Of Population 50

Number of Generations 200

Running #Avg.

Estimated Error

Hour

Minute

Second

Milisecond

Total Time

1 0.009636727 0 10 36 531 0h:10m:36s:531ms

2 0.007631349 0 10 31 250 0h:10m:31s:250ms

3 0.007631349 0 9 54 484 0h:9m:54s:484ms

4 0.007631349 0 9 47 719 0h:9m:47s:719ms

5 0.007631349 0 9 47 735 0h:9m:47s:735ms

6 0.007631349 0 9 54 62 0h:9m:54s:62ms

7 0.007631349 0 9 50 469 0h:9m:50s:469ms

8 0.007631349 0 9 48 531 0h:9m:48s:531ms

9 0.006410408 0 9 53 828 0h:9m:53s:828ms

10 0.006334942 0 9 45 610 0h:9m:45s:610ms

Min 0.006334942 0 9 31 62

Average 0.007580152 0 9.2 46.5 521.9

Max 0.009636727 0 10 54 828

Page 28: SA, GA and GSA in Fuzzy Systems

… continue… continueSize Of Population 60

Number of Generations 300

Running #Avg.

Estimated Error

Hour

Minute

Second

Milisecond

Total Time

1 0.01365808 0 20 28 453 0h:20m:28s:453ms

2 0.01365808 0 20 32 328 0h:20m:32s:328ms

3 0.004348226 0 20 29 500 0h:20m:29s:500ms

4 0.004348226 0 20 30 125 0h:20m:30s:125ms

5 0.004348226 0 20 27 78 0h:20m:27s:78ms

6 0.004348226 0 20 23 282 0h:20m:23s:282ms

7 0.004348226 0 20 27 984 0h:20m:27s:984ms

8 0.004348226 0 20 30 328 0h:20m:30s:328ms

9 0.004348226 0 20 31 578 0h:20m:31s:578ms

10 0.004348226 0 20 30 16 0h:20m:30s:16ms

Min 0.004348226 0 20 23 16

Average 0.006210197 0 20 28.7 367.2

Max 0.01365808 0 20 32 984

Page 29: SA, GA and GSA in Fuzzy Systems

… continue… continue

Experiments type 2:Experiments type 2:• Mutation Rate = 0.1 = Mutation Rate = 0.1 = 10%10%• Initial Temperature = 100Initial Temperature = 100• Alpha = 0.7Alpha = 0.7• Frozen Value = 0.00001Frozen Value = 0.00001• Index of Null Values = 21 (It means row/tuple 22th in relational Index of Null Values = 21 (It means row/tuple 22th in relational

database)database)

Experiments type 2:Experiments type 2:• Mutation Rate = 0.1 = Mutation Rate = 0.1 = 10%10%• Initial Temperature = 100Initial Temperature = 100• Alpha = 0.7Alpha = 0.7• Frozen Value = 0.00001Frozen Value = 0.00001• Index of Null Values = 21 (It means row/tuple 22th in relational Index of Null Values = 21 (It means row/tuple 22th in relational

database)database)

Page 30: SA, GA and GSA in Fuzzy Systems

… continue… continueSize Of Population 30

Number of Generations 100

Running #Avg.

Estimated Error

Hour

Minute

Second

Milisecond

Total Time

1 0.00905076 0 21 56 125 0h:21m:56s:125ms

2 0.00905076 0 21 35 563 0h:21m:35s:563ms

3 0.007650809 0 20 59 672 0h:20m:59s:672ms

4 0.007650809 0 20 53 484 0h:20m:53s:484ms

5 0.004252343 0 20 58 453 0h:20m:58s:453ms

6 0.003712235 0 20 57 891 0h:20m:57s:891ms

7 0.003712235 0 21 1 203 0h:21m:1s:203ms

8 0.003194167 0 20 57 734 0h:20m:57s:734ms

9 0.003194167 0 21 2 641 0h:21m:2s:641ms

10 0.003194167 0 21 10 687 0h:21m:10s:687ms

Min 0.003194167 0 20 1 125

Average 0.005466245 0 20.5 38.8 545.3

Max 0.00905076 0 21 59 891

Page 31: SA, GA and GSA in Fuzzy Systems

… continue… continueSize Of Population 40

Number of Generations 100

Running #Avg.

Estimated Error

Hour

Minute

Second

Milisecond

Total Time

1 0.007768472 0 46 50 906 0h:46m:50s:906ms

2 0.007720671 0 47 0 282 0h:47m:0s:282ms

3 0.007720671 0 46 55 15 0h:46m:55s:15ms

4 0.005481832 0 47 2 891 0h:47m:2s:891ms

5 0.005177396 0 47 8 125 0h:47m:8s:125ms

6 0.005177396 0 47 1 890 0h:47m:1s:890ms

7 0.004702165 0 47 57 907 0h:47m:57s:907ms

8 0.003876522 0 50 1 31 0h:50m:1s:31ms

9 0.003410507 0 50 9 594 0h:50m:9s:594ms

10 0.003410507 0 50 36 234 0h:50m:36s:234ms

Min 0.003410507 0 46 0 15

Average 0.005444614 0 47.7 21.9 487.5

Max 0.007768472 0 50 57 907

Page 32: SA, GA and GSA in Fuzzy Systems

… continue… continueSize Of Population 50

Number of Generations 100

Running #Avg.

Estimated Error

Hour

Minute

Second

Milisecond

Total Time

1 0.009740355 1 23 28 125 1h:23m:28s:125ms

2 0.009450571 1 23 14 938 1h:23m:14s:938ms

3 0.009450571 1 23 25 219 1h:23m:25s:219ms

4 0.008133827 1 23 18 734 1h:23m:18s:734ms

5 0.008133827 1 23 21 969 1h:23m:21s:969ms

6 0.005986674 1 23 24 234 1h:23m:24s:234ms

7 0.003821698 1 23 24 188 1h:23m:24s:188ms

8 0.003821698 1 23 30 375 1h:23m:30s:375ms

9 0.003821698 1 23 27 437 1h:23m:27s:437ms

10 0.003821698 1 23 30 938 1h:23m:30s:938ms

Min 0.003821698 1 23 14 125

Average 0.006618262 1 23 24.1 515.7

Max 0.009740355 1 23 30 969

Page 33: SA, GA and GSA in Fuzzy Systems

… continue… continueSize Of Population 60

Number of Generations 100

Running #Avg.

Estimated Error

Hour

Minute

Second

Milisecond

Total Time

1 0.003090779 3 17 21 94 3h:17m:21s:94ms

2 0.00300359 3 14 42 203 3h:14m:42s:203ms

3 0.00300359 3 14 42 250 3h:14m:42s:250ms

4 0.00300359 3 16 31 188 3h:16m:31s:188ms

5 0.00300359 3 18 55 156 3h:18m:55s:156ms

6 0.00300359 3 10 8 625 3h:10m:8s:625ms

7 0.002890637 3 8 29 797 3h:8m:29s:797ms

8 0.002890637 3 21 7 125 3h:21m:7s:125ms

9 0.002890637 3 18 13 125 3h:18m:13s:125ms

10 0.002890637 3 15 50 968 3h:15m:50s:968ms

Min 0.002890637 3 8 7 94

Average 0.002967128 3 15.1 29.8 353.1

Max 0.003090779 3 21 55 968

Page 34: SA, GA and GSA in Fuzzy Systems

… continue… continue• Summaries from experimentsSummaries from experiments• Summaries from experimentsSummaries from experiments

Avg. Estimation Error

Size Of Population

Number of Generations

Mutation Rate (%)

Initial Temperature Alpha Frozen Value

0.002967128 60 300 10 100 0.7 0.00001

0.005444614 40 150 10 100 0.7 0.00001

0.005466245 30 100 10 100 0.7 0.00001

0.006210197 60 300 1 100 0.7 0.00001

0.006618262 50 200 10 100 0.7 0.00001

0.006621554 40 150 1 100 0.7 0.00001

0.007580152 50 200 1 100 0.7 0.00001

0.008184308 30 100 1 100 0.7 0.00001

Min. Estimation Error

Size Of Population

Number of Generations

Mutation Rate (%)

Initial Temperature Alpha Frozen Value

0.002967128 60 300 10 100 0.7 0.00001

0.005444614 40 150 10 100 0.7 0.00001

0.005466245 30 100 10 100 0.7 0.00001

0.006210197 60 300 1 100 0.7 0.00001

0.006618262 50 200 10 100 0.7 0.00001

0.006621554 40 150 1 100 0.7 0.00001

0.007580152 50 200 1 100 0.7 0.00001

0.008184308 30 100 1 100 0.7 0.00001

Page 35: SA, GA and GSA in Fuzzy Systems

… continue… continue• Summaries from experiments (continue)Summaries from experiments (continue)• Summaries from experiments (continue)Summaries from experiments (continue)

Max. Estimation Error

Size Of Population

Number of Generations

Mutation Rate (%)

Initial Temperature Alpha Frozen Value

0.003090779 60 300 10 100 0.7 0.00001

0.007768472 40 150 10 100 0.7 0.00001

0.00905076 30 100 10 100 0.7 0.00001

0.009636727 50 200 1 100 0.7 0.00001

0.009740355 50 200 10 100 0.7 0.00001

0.011162399 30 100 1 100 0.7 0.00001

0.01365808 60 300 1 100 0.7 0.00001

0.018120004 40 150 1 100 0.7 0.00001

Page 36: SA, GA and GSA in Fuzzy Systems

… continue… continue• For comparing, we toke result from Chen et al. [1]For comparing, we toke result from Chen et al. [1]

• Best chromosome:Best chromosome:0.0100.010 0.0710.071 0.3430.343 0.4650.465 0.5050.505 0.3030.303 0.4950.495 0.0810.081 0.7780.7780.7170.717 0.3030.303 0.8690.869 0.8690.869 0.8280.828 0.4340.434

• Below is the result from with size of population: 60; number of generations: Below is the result from with size of population: 60; number of generations: 300; Cross Over rate: 1.0; and Mutation rate: 0.2300; Cross Over rate: 1.0; and Mutation rate: 0.2

• For comparing, we toke result from Chen et al. [1]For comparing, we toke result from Chen et al. [1]

• Best chromosome:Best chromosome:0.0100.010 0.0710.071 0.3430.343 0.4650.465 0.5050.505 0.3030.303 0.4950.495 0.0810.081 0.7780.7780.7170.717 0.3030.303 0.8690.869 0.8690.869 0.8280.828 0.4340.434

• Below is the result from with size of population: 60; number of generations: Below is the result from with size of population: 60; number of generations: 300; Cross Over rate: 1.0; and Mutation rate: 0.2300; Cross Over rate: 1.0; and Mutation rate: 0.2

Page 37: SA, GA and GSA in Fuzzy Systems

EMP-ID Degree Experience Salary Salary (Estimated) Estimated Error

S1 Ph.D. 7.2 63,000 61,515.00 -0.024

S2 Master 2.0 37,000 36,967.44 -0.001

S3 Bachelor 7.0 40,000 40,634.14 0.016

S4 Ph.D. 1.2 47,000 46,873.66 -0.003

S5 Master 7.5 53,000 56,134.37 0.059

S6 Bachelor 1.5 26,000 26,146.40 0.006

S7 Bachelor 2.3 29,000 27,822.08 -0.041

S8 Ph.D. 2.0 50,000 50,067.20 0.001

S9 Ph.D. 3.8 54,000 53,958.94 -0.001

S10 Bachelor 3.5 35,000 35,152.00 0.004

S11 Master 3.5 40,000 40,206.19 0.005

S12 Master 3.6 41,000 40,796.57 -0.005

S13 Master 10.0 68,000 68,495.74 0.007

S14 Ph.D. 5.0 57,000 56,240.72 -0.013

S15 Bachelor 5.0 36,000 34,277.54 -0.048

S16 Master 6.2 50,000 49,834.85 -0.003

S17 Bachelor 0.5 23,000 23,722.40 0.031

S18 Master 7.2 55,000 51,950.6 -0.055

S19 Master 6.5 51,000 51,197.58 0.004

S20 Ph.D. 7.8 65,000 64,813.75 -0.003

S21 Master 8.1 64,000 60,853.28 -0.049

S22 Ph.D. 8.5 70,000 69,065.83 -0.013

Average Estimated Error 0.018

Page 38: SA, GA and GSA in Fuzzy Systems

… continue… continue

• For another running we get average estimated errors for different For another running we get average estimated errors for different parameters of the GAparameters of the GA (Chen et al. [1]) (Chen et al. [1])

• For another running we get average estimated errors for different For another running we get average estimated errors for different parameters of the GAparameters of the GA (Chen et al. [1]) (Chen et al. [1])

Size of Population

Number of Generations

Crossover Rate

Mutation Rate

Average Estimated

Error

30 100 1.0 0.1 0.036

40 150 1.0 0.1 0.032

50 200 1.0 0.2 0.027

60 300 1.0 0.2 0.018

Page 39: SA, GA and GSA in Fuzzy Systems

… continue… continue• Example a result from one of above (from this research, using GSA)Example a result from one of above (from this research, using GSA)

Size of Population:Size of Population: 6060Number of Generations:Number of Generations: 300300Mutation Rate (%):Mutation Rate (%): 1010Initial Temperature:Initial Temperature: 100100Alpha:Alpha: 0.70.7Frozen Value:Frozen Value: 1E-51E-5Index of Null Values: Index of Null Values: 2121Best ChromosomeBest ChromosomeGene-1Gene-1 Gene-2Gene-2 Gene-3Gene-3 Gene-4Gene-4 Gene-5Gene-5 Gene-6Gene-6 Gene-7Gene-7 Gene-8Gene-80.7190.719 0.9950.995 0.9890.989 0.4850.485 0.0950.095 0.8960.896 0.2770.277 0.4160.416Gene-9Gene-9 Gene-10Gene-10 Gene-11 Gene-11 Gene-12Gene-12 Gene-13Gene-13 Gene-14Gene-14 Gene-15Gene-150.0850.085 0.9970.997 0.1830.183 0.5830.583 0.3500.350 0.6520.652 0.2410.241

• Example a result from one of above (from this research, using GSA)Example a result from one of above (from this research, using GSA)

Size of Population:Size of Population: 6060Number of Generations:Number of Generations: 300300Mutation Rate (%):Mutation Rate (%): 1010Initial Temperature:Initial Temperature: 100100Alpha:Alpha: 0.70.7Frozen Value:Frozen Value: 1E-51E-5Index of Null Values: Index of Null Values: 2121Best ChromosomeBest ChromosomeGene-1Gene-1 Gene-2Gene-2 Gene-3Gene-3 Gene-4Gene-4 Gene-5Gene-5 Gene-6Gene-6 Gene-7Gene-7 Gene-8Gene-80.7190.719 0.9950.995 0.9890.989 0.4850.485 0.0950.095 0.8960.896 0.2770.277 0.4160.416Gene-9Gene-9 Gene-10Gene-10 Gene-11 Gene-11 Gene-12Gene-12 Gene-13Gene-13 Gene-14Gene-14 Gene-15Gene-150.0850.085 0.9970.997 0.1830.183 0.5830.583 0.3500.350 0.6520.652 0.2410.241

Page 40: SA, GA and GSA in Fuzzy Systems

… continue… continue• Example a result from one of above (continue)Example a result from one of above (continue)Emp. IDEmp. ID DegreeDegree Experience SalaryExperience Salary Salary (Estimated)Salary (Estimated) Estimated ErrorEstimated Error11 Ph.D.Ph.D. 7.27.2 63,00063,000 62,889.8662,889.86 -0.0017482-0.001748222 MasterMaster 2.02.0 37,00037,000 36,847.9736,847.97 -0.0041090-0.004109033 Bachelor 7.0Bachelor 7.0 40,00040,000 40,128.3340,128.33 0.00320820.003208244 Ph.D.Ph.D. 1.21.2 47,00047,000 46,538.6046,538.60 -0.0098170-0.009817055 MasterMaster 7.57.5 53,00053,000 52,978.5852,978.58 -0.0004042-0.000404266 Bachelor 1.5Bachelor 1.5 26,00026,000 25,970.0025,970.00 -0.0011540-0.001154077 Bachelor 2.3Bachelor 2.3 29,00029,000 28,967.0128,967.01 -0.0011375-0.001137588 Ph.D.Ph.D. 2.02.0 50,00050,000 50,341.1550,341.15 0.00682300.006823099 Ph.D.Ph.D. 3.83.8 54,00054,000 53,836.2853,836.28 -0.0030319-0.003031910 10 Bachelor 3.5Bachelor 3.5 35,00035,000 35,060.5935,060.59 0.00173100.00173101111 MasterMaster 3.53.5 40,00040,000 39,876.0639,876.06 -0.0030986-0.00309861212 MasterMaster 3.63.6 41,00041,000 40,875.7240,875.72 -0.0030312-0.00303121313 MasterMaster 10.010.0 68,00068,000 68,087.0368,087.03 0.00127980.00127981414 Ph.D.Ph.D. 5.05.0 57,00057,000 56,731.7156,731.71 -0.0047068-0.00470681515 Bachelor 5.0Bachelor 5.0 36,00036,000 36,051.1936,051.19 0.00142190.00142191616 MasterMaster 6.26.2 50,00050,000 49,936.0149,936.01 -0.0012798-0.00127981717 Bachelor 0.5Bachelor 0.5 23,00023,000 22,940.2822,940.28 -0.0025966-0.00259661818 MasterMaster 7.27.2 55,00055,000 54,966.6654,966.66 -0.0006062-0.00060621919 MasterMaster 6.56.5 51,00051,000 50,945.0350,945.03 -0.0010778-0.00107782020 Ph.D.Ph.D. 7.87.8 65,00065,000 64,938.8164,938.81 -0.0009414-0.00094142121 MasterMaster 8.18.1 64,00064,000 63,933.6563,933.65 -0.0010367-0.00103672222 Ph.D.Ph.D. 8.58.5 70,00070,000 70,654.7270,654.72 0.00935310.0093531

Avg Estimated Error: 0.002890636946022Avg Estimated Error: 0.002890636946022Time Elapsed: Time Elapsed: 3h:15m:50s:968ms 3h:15m:50s:968ms

• Here, Here, we can prove that this proposes method better than method proposed by we can prove that this proposes method better than method proposed by C.M. Huang [1]. C.M. Huang [1].

• Example a result from one of above (continue)Example a result from one of above (continue)Emp. IDEmp. ID DegreeDegree Experience SalaryExperience Salary Salary (Estimated)Salary (Estimated) Estimated ErrorEstimated Error11 Ph.D.Ph.D. 7.27.2 63,00063,000 62,889.8662,889.86 -0.0017482-0.001748222 MasterMaster 2.02.0 37,00037,000 36,847.9736,847.97 -0.0041090-0.004109033 Bachelor 7.0Bachelor 7.0 40,00040,000 40,128.3340,128.33 0.00320820.003208244 Ph.D.Ph.D. 1.21.2 47,00047,000 46,538.6046,538.60 -0.0098170-0.009817055 MasterMaster 7.57.5 53,00053,000 52,978.5852,978.58 -0.0004042-0.000404266 Bachelor 1.5Bachelor 1.5 26,00026,000 25,970.0025,970.00 -0.0011540-0.001154077 Bachelor 2.3Bachelor 2.3 29,00029,000 28,967.0128,967.01 -0.0011375-0.001137588 Ph.D.Ph.D. 2.02.0 50,00050,000 50,341.1550,341.15 0.00682300.006823099 Ph.D.Ph.D. 3.83.8 54,00054,000 53,836.2853,836.28 -0.0030319-0.003031910 10 Bachelor 3.5Bachelor 3.5 35,00035,000 35,060.5935,060.59 0.00173100.00173101111 MasterMaster 3.53.5 40,00040,000 39,876.0639,876.06 -0.0030986-0.00309861212 MasterMaster 3.63.6 41,00041,000 40,875.7240,875.72 -0.0030312-0.00303121313 MasterMaster 10.010.0 68,00068,000 68,087.0368,087.03 0.00127980.00127981414 Ph.D.Ph.D. 5.05.0 57,00057,000 56,731.7156,731.71 -0.0047068-0.00470681515 Bachelor 5.0Bachelor 5.0 36,00036,000 36,051.1936,051.19 0.00142190.00142191616 MasterMaster 6.26.2 50,00050,000 49,936.0149,936.01 -0.0012798-0.00127981717 Bachelor 0.5Bachelor 0.5 23,00023,000 22,940.2822,940.28 -0.0025966-0.00259661818 MasterMaster 7.27.2 55,00055,000 54,966.6654,966.66 -0.0006062-0.00060621919 MasterMaster 6.56.5 51,00051,000 50,945.0350,945.03 -0.0010778-0.00107782020 Ph.D.Ph.D. 7.87.8 65,00065,000 64,938.8164,938.81 -0.0009414-0.00094142121 MasterMaster 8.18.1 64,00064,000 63,933.6563,933.65 -0.0010367-0.00103672222 Ph.D.Ph.D. 8.58.5 70,00070,000 70,654.7270,654.72 0.00935310.0093531

Avg Estimated Error: 0.002890636946022Avg Estimated Error: 0.002890636946022Time Elapsed: Time Elapsed: 3h:15m:50s:968ms 3h:15m:50s:968ms

• Here, Here, we can prove that this proposes method better than method proposed by we can prove that this proposes method better than method proposed by C.M. Huang [1]. C.M. Huang [1].

Page 41: SA, GA and GSA in Fuzzy Systems

GSA to Estimate Null Values in Generating Weighted Fuzzy Rules from Relational Database Systems and It’s Estimating on Multiple Null ValuesGSA to Estimate Null Values in Generating Weighted Fuzzy Rules from

Relational Database Systems and It’s Estimating on Multiple Null Values

Part 2: Part 2: Estimating Problems on Multiple Null ValuesEstimating Problems on Multiple Null Values• In part 1, we concerning just about how to performIn part 1, we concerning just about how to perform• At this part, we try to estimate many values, which are null values.At this part, we try to estimate many values, which are null values.• Recalling procedure Recalling procedure CountClosenessCountCloseness described previously in part 1, we described previously in part 1, we

consider part below:consider part below:………… {Then we find Estimated Salary and Error for every record}{Then we find Estimated Salary and Error for every record} {if this record was null value, so we must find}{if this record was null value, so we must find} {another record that closest to 1}{another record that closest to 1} if IsNullValue(i) and IsNullValue(IdxClosestCloseness) then beginif IsNullValue(i) and IsNullValue(IdxClosestCloseness) then begin PreferIdx:= GetPreferIdx;PreferIdx:= GetPreferIdx; ETETii.Salary:= T.Salary:= Tii. Salary . Salary GetClosenessValue(PreferIdx); GetClosenessValue(PreferIdx); if Tif Tprefer-indexprefer-index.Salary <> 0 then.Salary <> 0 then ErrorErrorii:=:=

endend else beginelse begin ETETii.Salary:= T.Salary:= Tii. Salary . Salary GetClosenessValue(IdxClosestCloseness); GetClosenessValue(IdxClosestCloseness); if Tif Tii.Salary <> 0 then.Salary <> 0 then ErrorErrorii:=:=

end;end;

Part 2: Part 2: Estimating Problems on Multiple Null ValuesEstimating Problems on Multiple Null Values• In part 1, we concerning just about how to performIn part 1, we concerning just about how to perform• At this part, we try to estimate many values, which are null values.At this part, we try to estimate many values, which are null values.• Recalling procedure Recalling procedure CountClosenessCountCloseness described previously in part 1, we described previously in part 1, we

consider part below:consider part below:………… {Then we find Estimated Salary and Error for every record}{Then we find Estimated Salary and Error for every record} {if this record was null value, so we must find}{if this record was null value, so we must find} {another record that closest to 1}{another record that closest to 1} if IsNullValue(i) and IsNullValue(IdxClosestCloseness) then beginif IsNullValue(i) and IsNullValue(IdxClosestCloseness) then begin PreferIdx:= GetPreferIdx;PreferIdx:= GetPreferIdx; ETETii.Salary:= T.Salary:= Tii. Salary . Salary GetClosenessValue(PreferIdx); GetClosenessValue(PreferIdx); if Tif Tprefer-indexprefer-index.Salary <> 0 then.Salary <> 0 then ErrorErrorii:=:=

endend else beginelse begin ETETii.Salary:= T.Salary:= Tii. Salary . Salary GetClosenessValue(IdxClosestCloseness); GetClosenessValue(IdxClosestCloseness); if Tif Tii.Salary <> 0 then.Salary <> 0 then ErrorErrorii:=:=

end;end;

SalaryT

SalaryTSalaryET

indexprefer

indexpreferi

.

..

SalaryT

SalaryTSalaryET

i

ii

.

..

Page 42: SA, GA and GSA in Fuzzy Systems

… continue… continue

• Here is a table where many values Here is a table where many values are null value, and are null value, and with GSA we try with GSA we try to obtained this value from other to obtained this value from other valuevalue together with formulas together with formulas described above.described above.

• Here is a table where many values Here is a table where many values are null value, and are null value, and with GSA we try with GSA we try to obtained this value from other to obtained this value from other valuevalue together with formulas together with formulas described above.described above.

EMP-ID Degree Experience Salary

S1 Ph.D. 7.2 63,000

S2 Master 2.0 NULL

S3 Bachelor 7.0 40,000

S4 Ph.D. 1.2 47,000

S5 Master 7.5 NULL

S6 Bachelor 1.5 26,000

S7 Bachelor 2.3 29,000

S8 Ph.D. 2.0 50,000

S9 Ph.D. 3.8 54,000

S10 Bachelor 3.5 35,000

S11 Master 3.5 NULL

S12 Master 3.6 41,000

S13 Master 10.0 NULL

S14 Ph.D. 5.0 57,000

S15 Bachelor 5.0 36,000

S16 Master 6.2 50,000

S17 Bachelor 0.5 23,000

S18 Master 7.2 55,000

S19 Master 6.5 51,000

S20 Ph.D. 7.8 65,000

S21 Master 8.1 64,000

S22 Ph.D. 8.5 NULL

Page 43: SA, GA and GSA in Fuzzy Systems

• Because there is a checking process with regarding to null values, so we Because there is a checking process with regarding to null values, so we can set one or many null values that we want to estimate. This process can set one or many null values that we want to estimate. This process performs in function performs in function GetPreferIdxGetPreferIdx as described previous. as described previous.

• Of course as a boundary/quota, there is at least one value in Of course as a boundary/quota, there is at least one value in column/field SALARY to estimate another (if it is a null value).column/field SALARY to estimate another (if it is a null value).

ExperimentsExperiments• We run this program for different parameters, each for 10 times.We run this program for different parameters, each for 10 times.• We get the results as below:We get the results as below:

Experiments type 1Experiments type 1• Size Of Population = 60Size Of Population = 60• Number of Generations = 300Number of Generations = 300• Mutation Rate = 0.01 = 1%Mutation Rate = 0.01 = 1%• Initial Temperature = 100Initial Temperature = 100• Alpha = 0.7Alpha = 0.7• Frozen Value = 0.00001Frozen Value = 0.00001• Index of Null Values = 0 (It means row/tuple 1st in relational database)Index of Null Values = 0 (It means row/tuple 1st in relational database)

• Because there is a checking process with regarding to null values, so we Because there is a checking process with regarding to null values, so we can set one or many null values that we want to estimate. This process can set one or many null values that we want to estimate. This process performs in function performs in function GetPreferIdxGetPreferIdx as described previous. as described previous.

• Of course as a boundary/quota, there is at least one value in Of course as a boundary/quota, there is at least one value in column/field SALARY to estimate another (if it is a null value).column/field SALARY to estimate another (if it is a null value).

ExperimentsExperiments• We run this program for different parameters, each for 10 times.We run this program for different parameters, each for 10 times.• We get the results as below:We get the results as below:

Experiments type 1Experiments type 1• Size Of Population = 60Size Of Population = 60• Number of Generations = 300Number of Generations = 300• Mutation Rate = 0.01 = 1%Mutation Rate = 0.01 = 1%• Initial Temperature = 100Initial Temperature = 100• Alpha = 0.7Alpha = 0.7• Frozen Value = 0.00001Frozen Value = 0.00001• Index of Null Values = 0 (It means row/tuple 1st in relational database)Index of Null Values = 0 (It means row/tuple 1st in relational database)

… continue… continue

Page 44: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0 (It means row/tuple 1Index of Null Values = 0 (It means row/tuple 1stst in relational database) in relational database)• Index of Null Values = 0 (It means row/tuple 1Index of Null Values = 0 (It means row/tuple 1stst in relational database) in relational database)

… continue… continue

Running #Avg. Estimated

Error Total Time

1 0.009122101 0h:22m:56s:46ms

2 0.009122101 0h:22m:47s:188ms

3 0.005950415 0h:22m:43s:484ms

4 0.005950415 0h:22m:45s:500ms

5 0.005608084 0h:22m:40s:922ms

6 0.005297164 0h:22m:39s:219ms

7 0.005297164 0h:22m:42s:437ms

8 0.0035237 0h:23m:13s:922ms

9 0.0035237 0h:22m:47s:47ms

10 0.0035237 0h:22m:46s:281ms

Min 0.0035237 0h:22m:39s:219ms

Average 0.005691855 0h:22m:48s:205ms

Max 0.009122101 0h:23m:13s:922ms

Page 45: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1 (It means row/tuple 1Index of Null Values = 0,1 (It means row/tuple 1stst and 2 and 2ndnd in relational in relational database)database)

• Index of Null Values = 0,1 (It means row/tuple 1Index of Null Values = 0,1 (It means row/tuple 1stst and 2 and 2ndnd in relational in relational database)database)

… continue… continue

Running #Avg. Estimated

Error Total Time

1 0.005932516 0h:23m:0s:906ms

2 0.004748638 0h:23m:1s:281ms

3 0.004748638 0h:22m:59s:954ms

4 0.004376414 0h:22m:56s:937ms

5 0.004307416 0h:22m:53s:797ms

6 0.004307416 0h:22m:46s:844ms

7 0.002597917 0h:22m:52s:484ms

8 0.002543098 0h:22m:53s:688ms

9 0.002543098 0h:22m:53s:406ms

10 0.002036744 0h:22m:56s:109ms

Min 0.002036744 0h:22m:46s:844ms

Average 0.003814189 0h:22m:55s:541ms

Max 0.005932516 0h:23m:1s:281ms

Page 46: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2Index of Null Values = 0,1,2• Index of Null Values = 0,1,2Index of Null Values = 0,1,2

… continue… continue

Running #Avg. Estimated

Error Total Time

1 0.009309616 0h:23m:17s:62ms

2 0.009309616 0h:23m:10s:281ms

3 0.003133243 0h:23m:4s:672ms

4 0.003133243 0h:23m:9s:141ms

5 0.003133243 0h:23m:5s:422ms

6 0.003053508 0h:23m:2s:937ms

7 0.003053508 0h:23m:7s:172ms

8 0.002865291 0h:23m:11s:47ms

9 0.002865291 0h:23m:11s:422ms

10 0.002645873 0h:23m:12s:468ms

Min 0.002645873 0h:23m:2s:937ms

Average 0.004250243 0h:23m:9s:162ms

Max 0.009309616 0h:23m:17s:62ms

Page 47: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2,3Index of Null Values = 0,1,2,3• Index of Null Values = 0,1,2,3Index of Null Values = 0,1,2,3

… continue… continue

Running #Avg. Estimated

Error Total Time

1 0.002757452 0h:23m:27s:406ms

2 0.002034423 0h:23m:22s:313ms

3 0.001884244 0h:23m:20s:453ms

4 0.001884244 0h:23m:20s:469ms

5 0.001884244 0h:23m:19s:687ms

6 0.001884244 0h:23m:18s:360ms

7 0.001884244 0h:23m:20s:62ms

8 0.001884244 0h:23m:22s:875ms

9 0.001884244 0h:23m:22s:563ms

10 0.001884244 0h:23m:24s:218ms

Min 0.001884244 0h:23m:18s:360ms

Average 0.001986583 0h:23m:21s:841ms

Max 0.002757452 0h:23m:27s:406ms

Page 48: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2,3,4Index of Null Values = 0,1,2,3,4• Index of Null Values = 0,1,2,3,4Index of Null Values = 0,1,2,3,4

… continue… continue

Running #Avg. Estimated

Error Total Time

1 0.004815809 0h:23m:45s:500ms

2 0.003993718 0h:23m:46s:922ms

3 0.002474414 0h:23m:36s:156ms

4 0.002474414 0h:23m:39s:219ms

5 0.002474414 0h:23m:35s:843ms

6 0.002474414 0h:23m:33s:891ms

7 0.002474414 0h:23m:40s:875ms

8 0.002474414 0h:23m:40s:656ms

9 0.002436838 0h:24m:9s:657ms

10 0.002436838 0h:24m:42s:156ms

Min 0.002436838 0h:23m:33s:891ms

Average 0.002852969 0h:23m:49s:88ms

Max 0.004815809 0h:24m:42s:156ms

Page 49: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2,3,4,5Index of Null Values = 0,1,2,3,4,5• Index of Null Values = 0,1,2,3,4,5Index of Null Values = 0,1,2,3,4,5

… continue… continue

Running #Avg. Estimated

Error Total Time

1 0.00963128 0h:25m:0s:578ms

2 0.008187739 0h:24m:55s:828ms

3 0.008187739 0h:24m:52s:125ms

4 0.008187739 0h:24m:46s:94ms

5 0.008187739 0h:24m:48s:766ms

6 0.007679531 0h:24m:48s:109ms

7 0.007307143 0h:24m:47s:531ms

8 0.007294954 0h:24m:52s:610ms

9 0.005584063 0h:24m:57s:78ms

10 0.005584063 0h:24m:52s:703ms

Min 0.005584063 0h:24m:46s:94ms

Average 0.007583199 0h:24m:52s:142ms

Max 0.00963128 0h:25m:0s:578ms

Page 50: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2,3,4,5,6Index of Null Values = 0,1,2,3,4,5,6• Index of Null Values = 0,1,2,3,4,5,6Index of Null Values = 0,1,2,3,4,5,6

… continue… continue

Running #Avg. Estimated

Error Total Time

1 0.012435219 0h:26m:0s:546ms

2 0.012435219 0h:25m:45s:125ms

3 0.012435219 0h:25m:49s:547ms

4 0.012435219 0h:25m:54s:32ms

5 0.007584039 0h:25m:53s:890ms

6 0.007584039 0h:25m:54s:391ms

7 0.007584039 0h:25m:50s:312ms

8 0.007584039 0h:25m:46s:860ms

9 0.006789061 0h:25m:50s:218ms

10 0.006789061 0h:25m:56s:891ms

Min 0.006789061 0h:25m:45s:125ms

Average 0.009365515 0h:25m:52s:181ms

Max 0.012435219 0h:26m:0s:546ms

Page 51: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2,3,4,5,6,7Index of Null Values = 0,1,2,3,4,5,6,7• Index of Null Values = 0,1,2,3,4,5,6,7Index of Null Values = 0,1,2,3,4,5,6,7

… continue… continue

Running # Avg. Estimated Error Total Time

1 0.010822578 0h:27m:12s:218ms

2 0.009297596 0h:27m:18s:485ms

3 0.009297596 0h:27m:1s:312ms

4 0.009297596 0h:27m:2s:63ms

5 0.009297596 0h:27m:44s:31ms

6 0.009297596 0h:28m:26s:109ms

7 0.009297596 0h:29m:48s:407ms

8 0.009297596 0h:28m:58s:812ms

9 0.008205089 0h:27m:18s:797ms

10 0.008205089 0h:38m:45s:266ms

Min 0.008205089 0h:27m:1s:312ms

Average 0.009231593 0h:28m:57s:550ms

Max 0.010822578 0h:38m:45s:266ms

Page 52: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2,3,4,5,6,7,8Index of Null Values = 0,1,2,3,4,5,6,7,8• Index of Null Values = 0,1,2,3,4,5,6,7,8Index of Null Values = 0,1,2,3,4,5,6,7,8

… continue… continue

Running #Avg. Estimated

Error Total Time

1 0.00732093 0h:49m:53s:547ms

2 0.00732093 0h:37m:49s:813ms

3 0.006890407 0h:30m:46s:46ms

4 0.0061114 0h:30m:18s:938ms

5 0.0061114 0h:30m:1s:0ms

6 0.0061114 0h:27m:1s:203ms

7 0.005756958 0h:27m:3s:625ms

8 0.005756958 0h:27m:6s:109ms

9 0.005267458 0h:27m:0s:422ms

10 0.005267458 0h:27m:8s:94ms

Min 0.005267458 0h:27m:0s:422ms

Average 0.00619153 0h:31m:24s:880ms

Max 0.00732093 0h:49m:53s:547ms

Page 53: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2,3,4,5,6,7,8,9Index of Null Values = 0,1,2,3,4,5,6,7,8,9• Index of Null Values = 0,1,2,3,4,5,6,7,8,9Index of Null Values = 0,1,2,3,4,5,6,7,8,9

… continue… continue

Running #Avg. Estimated

Error Total Time

1 0.019225473 0h:28m:36s:500ms

2 0.012163566 0h:28m:31s:531ms

3 0.012163566 0h:28m:38s:235ms

4 0.011188971 0h:28m:29s:390ms

5 0.010730344 0h:28m:23s:313ms

6 0.010730344 0h:28m:41s:312ms

7 0.010730344 0h:28m:34s:188ms

8 0.010730344 0h:28m:39s:15ms

9 0.010730344 0h:28m:26s:672ms

10 0.00988304 0h:28m:34s:860ms

Min 0.00988304 0h:28m:23s:313ms

Average 0.011827634 0h:28m:33s:502ms

Max 0.019225473 0h:28m:41s:312ms

Page 54: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10• Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10

… continue… continue

Running #Avg. Estimated

Error Total Time

1 0.014521021 0h:29m:28s:156ms

2 0.014521021 0h:29m:21s:922ms

3 0.014521021 0h:32m:17s:750ms

4 0.014521021 0h:33m:6s:860ms

5 0.006890925 0h:31m:44s:203ms

6 0.006890925 0h:32m:17s:797ms

7 0.006793239 0h:32m:21s:360ms

8 0.006793239 0h:30m:7s:343ms

9 0.00676117 0h:30m:17s:438ms

10 0.006020978 0h:30m:0s:844ms

Min 0.006020978 0h:29m:21s:922ms

Average 0.009823456 0h:31m:6s:367ms

Max 0.014521021 0h:33m:6s:860ms

Page 55: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11• Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11

… continue… continue

Running #Avg. Estimated

Error Total Time

1 0.021770419 0h:34m:5s:765ms

2 0.019711743 0h:33m:33s:797ms

3 0.015642323 0h:33m:43s:875ms

4 0.015642323 0h:33m:41s:16ms

5 0.015249024 0h:33m:27s:250ms

6 0.014037324 0h:33m:30s:531ms

7 0.012811843 0h:33m:47s:187ms

8 0.012811843 0h:33m:31s:641ms

9 0.012811843 0h:33m:35s:844ms

10 0.012811843 0h:33m:34s:437ms

Min 0.012811843 0h:33m:27s:250ms

Average 0.015330053 0h:33m:39s:134ms

Max 0.021770419 0h:34m:5s:765ms

Page 56: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12• Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12

… continue… continue

Running # Avg. Estimated Error Total Time

1 0.015772303 0h:36m:9s:94ms

2 0.015772303 0h:35m:53s:781ms

3 0.011702639 0h:36m:5s:407ms

4 0.011702639 0h:38m:38s:171ms

5 0.011702639 0h:41m:51s:375ms

6 0.011702639 0h:40m:25s:672ms

7 0.005224971 0h:36m:7s:860ms

8 0.005224971 0h:41m:35s:828ms

9 0.004756509 0h:42m:24s:359ms

10 0.004345932 0h:43m:48s:906ms

Min 0.004345932 0h:35m:53s:781ms

Average 0.009790754 0h:39m:18s:45ms

Max 0.015772303 0h:43m:48s:906ms

Page 57: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12,13Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12,13• Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12,13Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12,13

… continue… continue

Running #Avg. Estimated

Error Total Time

1 0.019457373 0h:42m:1s:281ms

2 0.019457373 0h:37m:38s:547ms

3 0.01705593 0h:37m:34s:860ms

4 0.012688683 0h:37m:40s:718ms

5 0.012458219 0h:37m:28s:47ms

6 0.012458219 0h:37m:14s:188ms

7 0.012458219 0h:37m:41s:156ms

8 0.010389006 0h:37m:32s:953ms

9 0.009943857 0h:37m:36s:641ms

10 0.009713394 0h:37m:25s:422ms

Min 0.009713394 0h:37m:14s:188ms

Average 0.013608027 0h:37m:59s:381ms

Max 0.019457373 0h:42m:1s:281ms

Page 58: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14• Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14

… continue… continue

Running # Avg. Estimated Error Total Time

1 0.042230748 0h:40m:39s:125ms

2 0.026024609 0h:40m:49s:750ms

3 0.026024609 0h:40m:46s:688ms

4 0.026024609 0h:43m:11s:781ms

5 0.022683928 0h:42m:56s:94ms

6 0.022683928 0h:42m:14s:922ms

7 0.022683928 0h:40m:8s:671ms

8 0.022683928 0h:41m:11s:329ms

9 0.022683928 0h:48m:1s:203ms

10 0.022683928 0h:48m:29s:15ms

Min 0.022683928 0h:40m:8s:671ms

Average 0.025640814 0h:42m:50s:858ms

Max 0.042230748 0h:48m:29s:15ms

Page 59: SA, GA and GSA in Fuzzy Systems

• Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15• Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15Index of Null Values = 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15

… continue… continue

Running #Avg. Estimated

Error Total Time

1 0.02546262 0h:55m:2s:62ms

2 0.010683394 0h:52m:13s:797ms

3 0.010683394 0h:42m:11s:531ms

4 0.009199557 0h:42m:28s:141ms

5 0.009199557 0h:42m:32s:344ms

6 0.009199557 0h:43m:50s:797ms

7 0.009199557 0h:45m:44s:468ms

8 0.009199557 0h:48m:57s:360ms

9 0.009199557 0h:54m:33s:250ms

10 0.009199557 0h:50m:24s:422ms

Min 0.009199557 0h:42m:11s:531ms

Average 0.011122631 0h:47m:47s:817ms

Max 0.02546262 0h:55m:2s:62ms

Page 60: SA, GA and GSA in Fuzzy Systems

• Summaries from experimentsSummaries from experiments• Summaries from experimentsSummaries from experiments

… continue… continue

# Null Values Avg. Estimated Error Total Time

1 0.005691855 0h:22m:48s:205ms

2 0.003814189 0h:22m:55s:541ms

3 0.004250243 0h:23m:9s:162ms

4 0.001986583 0h:23m:21s:841ms

5 0.002852969 0h:23m:49s:88ms

6 0.007583199 0h:24m:52s:142ms

7 0.009365515 0h:25m:52s:181ms

8 0.009231593 0h:28m:57s:550ms

9 0.00619153 0h:31m:24s:880ms

10 0.011827634 0h:28m:33s:502ms

11 0.009823456 0h:31m:6s:367ms

12 0.015330053 0h:33m:39s:134ms

13 0.009790754 0h:39m:18s:45ms

14 0.013608027 0h:37m:59s:381ms

15 0.025640814 0h:42m:50s:858ms

16 0.011122631 0h:47m:47s:817ms

Page 61: SA, GA and GSA in Fuzzy Systems

ConclusionConclusion• SA generates SA generates a single sequence of solutionsa single sequence of solutions and searches for and searches for an optimum solutionan optimum solution

along this search path.along this search path.• At each step, SA generates a At each step, SA generates a candidate solutioncandidate solution x’ x’ by changing a small fraction of by changing a small fraction of

a current solution xa current solution x..• A key point of SA is that A key point of SA is that SA accepts up-hill movesSA accepts up-hill moves with the probability e with the probability e--f/Tf/T..• This allows SA to This allows SA to escape from local minimaescape from local minima..• But SA But SA cannot cover a large region of the solution spacecannot cover a large region of the solution space within a limited within a limited

computation time computation time because SA is based on small movesbecause SA is based on small moves..

• GA GA maintains a population of solutionsmaintains a population of solutions and uses them to search the solution and uses them to search the solution space.space.

• GA uses the GA uses the crossover operatorcrossover operator which causes a which causes a large jump in the solution spacelarge jump in the solution space..• GA can do GA can do globally search a large region of the solution spaceglobally search a large region of the solution space..• But GA has But GA has no explicit waysno explicit ways to produce to produce a sequence of small moves in the solution a sequence of small moves in the solution

spacespace..• Mutation Mutation on GAon GA creates a single small move one at a time creates a single small move one at a time instead of a sequence instead of a sequence

of small moves.of small moves.• As the result GA cannot search local region on the solution space exhaustively.As the result GA cannot search local region on the solution space exhaustively.

• GSA GSA generates the seeds of SA sequentiallygenerates the seeds of SA sequentially, that is the , that is the seeds of a SA local search seeds of a SA local search depends of the best-so-far solutionsdepends of the best-so-far solutions of all previous SA local searches. of all previous SA local searches.

• This This sequentially approachsequentially approach seems to seems to generate better child solutionsgenerate better child solutions..• GSA GSA uses fewer crossover operationsuses fewer crossover operations since it only uses crossover operations since it only uses crossover operations when when

the SA local search reaches a flat surfacethe SA local search reaches a flat surface and it is time to jump in the solution and it is time to jump in the solution space.space.

• GSA proposed to overcome: disability of cover a GSA proposed to overcome: disability of cover a large regionlarge region of the solution space of the solution space of of SA SA and disability of searching and disability of searching local regionlocal region of the solution space of of the solution space of GAGA..

• SA generates SA generates a single sequence of solutionsa single sequence of solutions and searches for and searches for an optimum solutionan optimum solution along this search path.along this search path.

• At each step, SA generates a At each step, SA generates a candidate solutioncandidate solution x’ x’ by changing a small fraction of by changing a small fraction of a current solution xa current solution x..

• A key point of SA is that A key point of SA is that SA accepts up-hill movesSA accepts up-hill moves with the probability e with the probability e--f/Tf/T..• This allows SA to This allows SA to escape from local minimaescape from local minima..• But SA But SA cannot cover a large region of the solution spacecannot cover a large region of the solution space within a limited within a limited

computation time computation time because SA is based on small movesbecause SA is based on small moves..

• GA GA maintains a population of solutionsmaintains a population of solutions and uses them to search the solution and uses them to search the solution space.space.

• GA uses the GA uses the crossover operatorcrossover operator which causes a which causes a large jump in the solution spacelarge jump in the solution space..• GA can do GA can do globally search a large region of the solution spaceglobally search a large region of the solution space..• But GA has But GA has no explicit waysno explicit ways to produce to produce a sequence of small moves in the solution a sequence of small moves in the solution

spacespace..• Mutation Mutation on GAon GA creates a single small move one at a time creates a single small move one at a time instead of a sequence instead of a sequence

of small moves.of small moves.• As the result GA cannot search local region on the solution space exhaustively.As the result GA cannot search local region on the solution space exhaustively.

• GSA GSA generates the seeds of SA sequentiallygenerates the seeds of SA sequentially, that is the , that is the seeds of a SA local search seeds of a SA local search depends of the best-so-far solutionsdepends of the best-so-far solutions of all previous SA local searches. of all previous SA local searches.

• This This sequentially approachsequentially approach seems to seems to generate better child solutionsgenerate better child solutions..• GSA GSA uses fewer crossover operationsuses fewer crossover operations since it only uses crossover operations since it only uses crossover operations when when

the SA local search reaches a flat surfacethe SA local search reaches a flat surface and it is time to jump in the solution and it is time to jump in the solution space.space.

• GSA proposed to overcome: disability of cover a GSA proposed to overcome: disability of cover a large regionlarge region of the solution space of the solution space of of SA SA and disability of searching and disability of searching local regionlocal region of the solution space of of the solution space of GAGA..

Page 62: SA, GA and GSA in Fuzzy Systems

ReferencesReferences• [1] S.M. Chen and C.M. Huang, “Generating weighted fuzzy rules from relational database [1] S.M. Chen and C.M. Huang, “Generating weighted fuzzy rules from relational database

systems for estimating null values using genetic algorithms,” systems for estimating null values using genetic algorithms,” IEEE Transactions On Fuzzy IEEE Transactions On Fuzzy SystemsSystems, Vol. 11, No. 4, pp. 495-506, August 2003., Vol. 11, No. 4, pp. 495-506, August 2003.

• [3] D.G. Burkhardt and P.P. Bonissone, “Automated fuzzy knowledge base Generation and [3] D.G. Burkhardt and P.P. Bonissone, “Automated fuzzy knowledge base Generation and tuning,” tuning,” in Proc. 1992 IEEE Int. Conf. Fuzzy Systemsin Proc. 1992 IEEE Int. Conf. Fuzzy Systems, San Diego, CA, 1992, pp. 179-188., San Diego, CA, 1992, pp. 179-188.

• [4] S.M. Chen and H.H. Chen, “Estimating null values in the distributed relational databases [4] S.M. Chen and H.H. Chen, “Estimating null values in the distributed relational databases environment,” environment,” Cybern. Syst.Cybern. Syst., Vol. 31, No. 8, pp. 851-871, 2000., Vol. 31, No. 8, pp. 851-871, 2000.

• [5] S.M. Chen, S.H. Lee, and C.H. Lee, “A new method for generating fuzzy rules from [5] S.M. Chen, S.H. Lee, and C.H. Lee, “A new method for generating fuzzy rules from numerical data for handling classification problems,” numerical data for handling classification problems,” Appl. Art. Intell.Appl. Art. Intell., Vol. 15, No. 7, pp. , Vol. 15, No. 7, pp. 645-664, 2001.645-664, 2001.

• [6] S.M. Chen and M.S. Yeh, “Generating fuzzy rules from relational database systems for [6] S.M. Chen and M.S. Yeh, “Generating fuzzy rules from relational database systems for estimating null values,” estimating null values,” Cybern. Syst.Cybern. Syst., Vol. 28, No. 8, pp. 695-723, 1997. , Vol. 28, No. 8, pp. 695-723, 1997.

• [10] D. Sirag and P. Weisser, “Toward a unified thermodynamic genetic operator,” [10] D. Sirag and P. Weisser, “Toward a unified thermodynamic genetic operator,” in Proc. in Proc. 2nd Int. Conf. Genetic Algorithms2nd Int. Conf. Genetic Algorithms, pp.116-122, 1987., pp.116-122, 1987.

• [11] D. Adler, “Genetic algorithms and simulated annealing: a marriage proposal,” [11] D. Adler, “Genetic algorithms and simulated annealing: a marriage proposal,” in Proc. in Proc. IInt. Conf. Neural Networknt. Conf. Neural Network, pp.1104-1109, 1993., pp.1104-1109, 1993.

• [12] D. Brown, C. Huntley, and A. Spillane, “A parallel genetic heuristic for the quadratic [12] D. Brown, C. Huntley, and A. Spillane, “A parallel genetic heuristic for the quadratic assignment problem,” assignment problem,” in Proc. 3rd Int. Conf. Genetic Algorithmsin Proc. 3rd Int. Conf. Genetic Algorithms, pp.406-415, 1989., pp.406-415, 1989.

• [13] T.-T. Lin, C.-Y. Kao, and C.-C. Hsu, “Applying the genetic approach to simulated [13] T.-T. Lin, C.-Y. Kao, and C.-C. Hsu, “Applying the genetic approach to simulated annealing in solving some NP-Hard problems,” annealing in solving some NP-Hard problems,” IEEE Trans. System, Man, and Cybernetics.IEEE Trans. System, Man, and Cybernetics., , vol.23, no.6, pp.1752-1767, 1993.vol.23, no.6, pp.1752-1767, 1993.

• [14] S. Koakutsu, Y. Sugai, H. Hirata, “Block placement by improved simulated annealing [14] S. Koakutsu, Y. Sugai, H. Hirata, “Block placement by improved simulated annealing based on genetic algorithm,” based on genetic algorithm,” Trans. of the institute of Electronics, Information and Trans. of the institute of Electronics, Information and Communication Engineers of JapanCommunication Engineers of Japan, vol.J73-A, No.1, pp.87-94, 1990., vol.J73-A, No.1, pp.87-94, 1990.

• [15] S. Koakutsu, Y. Sugai, H. Hirata, “Floorplanning by improved simulated annealing [15] S. Koakutsu, Y. Sugai, H. Hirata, “Floorplanning by improved simulated annealing based on genetic algorithm,” based on genetic algorithm,” Trans. of the institute of Electrical Engineers of JapanTrans. of the institute of Electrical Engineers of Japan, vol.112-, vol.112-C, No.7, pp.411-416, 1992.C, No.7, pp.411-416, 1992.

• [20] S. Koakutsu, M. Kang, and W. W.-M. Dai, “Genetic simulated annealing and application [20] S. Koakutsu, M. Kang, and W. W.-M. Dai, “Genetic simulated annealing and application to non-slicing floorplan design,” to non-slicing floorplan design,” in Proc. 5th ACM/SIGDA Physical Design Workshopin Proc. 5th ACM/SIGDA Physical Design Workshop, , (Virginia, USA), pp. 134--141, April 1996. (Virginia, USA), pp. 134--141, April 1996.

• [1] S.M. Chen and C.M. Huang, “Generating weighted fuzzy rules from relational database [1] S.M. Chen and C.M. Huang, “Generating weighted fuzzy rules from relational database systems for estimating null values using genetic algorithms,” systems for estimating null values using genetic algorithms,” IEEE Transactions On Fuzzy IEEE Transactions On Fuzzy SystemsSystems, Vol. 11, No. 4, pp. 495-506, August 2003., Vol. 11, No. 4, pp. 495-506, August 2003.

• [3] D.G. Burkhardt and P.P. Bonissone, “Automated fuzzy knowledge base Generation and [3] D.G. Burkhardt and P.P. Bonissone, “Automated fuzzy knowledge base Generation and tuning,” tuning,” in Proc. 1992 IEEE Int. Conf. Fuzzy Systemsin Proc. 1992 IEEE Int. Conf. Fuzzy Systems, San Diego, CA, 1992, pp. 179-188., San Diego, CA, 1992, pp. 179-188.

• [4] S.M. Chen and H.H. Chen, “Estimating null values in the distributed relational databases [4] S.M. Chen and H.H. Chen, “Estimating null values in the distributed relational databases environment,” environment,” Cybern. Syst.Cybern. Syst., Vol. 31, No. 8, pp. 851-871, 2000., Vol. 31, No. 8, pp. 851-871, 2000.

• [5] S.M. Chen, S.H. Lee, and C.H. Lee, “A new method for generating fuzzy rules from [5] S.M. Chen, S.H. Lee, and C.H. Lee, “A new method for generating fuzzy rules from numerical data for handling classification problems,” numerical data for handling classification problems,” Appl. Art. Intell.Appl. Art. Intell., Vol. 15, No. 7, pp. , Vol. 15, No. 7, pp. 645-664, 2001.645-664, 2001.

• [6] S.M. Chen and M.S. Yeh, “Generating fuzzy rules from relational database systems for [6] S.M. Chen and M.S. Yeh, “Generating fuzzy rules from relational database systems for estimating null values,” estimating null values,” Cybern. Syst.Cybern. Syst., Vol. 28, No. 8, pp. 695-723, 1997. , Vol. 28, No. 8, pp. 695-723, 1997.

• [10] D. Sirag and P. Weisser, “Toward a unified thermodynamic genetic operator,” [10] D. Sirag and P. Weisser, “Toward a unified thermodynamic genetic operator,” in Proc. in Proc. 2nd Int. Conf. Genetic Algorithms2nd Int. Conf. Genetic Algorithms, pp.116-122, 1987., pp.116-122, 1987.

• [11] D. Adler, “Genetic algorithms and simulated annealing: a marriage proposal,” [11] D. Adler, “Genetic algorithms and simulated annealing: a marriage proposal,” in Proc. in Proc. IInt. Conf. Neural Networknt. Conf. Neural Network, pp.1104-1109, 1993., pp.1104-1109, 1993.

• [12] D. Brown, C. Huntley, and A. Spillane, “A parallel genetic heuristic for the quadratic [12] D. Brown, C. Huntley, and A. Spillane, “A parallel genetic heuristic for the quadratic assignment problem,” assignment problem,” in Proc. 3rd Int. Conf. Genetic Algorithmsin Proc. 3rd Int. Conf. Genetic Algorithms, pp.406-415, 1989., pp.406-415, 1989.

• [13] T.-T. Lin, C.-Y. Kao, and C.-C. Hsu, “Applying the genetic approach to simulated [13] T.-T. Lin, C.-Y. Kao, and C.-C. Hsu, “Applying the genetic approach to simulated annealing in solving some NP-Hard problems,” annealing in solving some NP-Hard problems,” IEEE Trans. System, Man, and Cybernetics.IEEE Trans. System, Man, and Cybernetics., , vol.23, no.6, pp.1752-1767, 1993.vol.23, no.6, pp.1752-1767, 1993.

• [14] S. Koakutsu, Y. Sugai, H. Hirata, “Block placement by improved simulated annealing [14] S. Koakutsu, Y. Sugai, H. Hirata, “Block placement by improved simulated annealing based on genetic algorithm,” based on genetic algorithm,” Trans. of the institute of Electronics, Information and Trans. of the institute of Electronics, Information and Communication Engineers of JapanCommunication Engineers of Japan, vol.J73-A, No.1, pp.87-94, 1990., vol.J73-A, No.1, pp.87-94, 1990.

• [15] S. Koakutsu, Y. Sugai, H. Hirata, “Floorplanning by improved simulated annealing [15] S. Koakutsu, Y. Sugai, H. Hirata, “Floorplanning by improved simulated annealing based on genetic algorithm,” based on genetic algorithm,” Trans. of the institute of Electrical Engineers of JapanTrans. of the institute of Electrical Engineers of Japan, vol.112-, vol.112-C, No.7, pp.411-416, 1992.C, No.7, pp.411-416, 1992.

• [20] S. Koakutsu, M. Kang, and W. W.-M. Dai, “Genetic simulated annealing and application [20] S. Koakutsu, M. Kang, and W. W.-M. Dai, “Genetic simulated annealing and application to non-slicing floorplan design,” to non-slicing floorplan design,” in Proc. 5th ACM/SIGDA Physical Design Workshopin Proc. 5th ACM/SIGDA Physical Design Workshop, , (Virginia, USA), pp. 134--141, April 1996. (Virginia, USA), pp. 134--141, April 1996.