Xudong Zhang
1. Int roduct ion of simulat ed annealing (S A) algorit hm 2. S equent ial S A algorit hm 3. Parallel S A algorit hm 4. Experimental setup 5. Theoretical analysis on time consumption
Multiple temperature decreasing process Material annealing process The cooling process is controlled with cooling schedule to allow the material to form specific crystal tissue and reduce the defects in the materials. The inner free energy of material can be reach to equilibrium in each temperature level.
The S A algorithm simulates the material annealing process. The algorithm allows the system to reach optimum at each temperature state. "The algorithm is able to accept the non-optimal results with larger possibility initially (Because of the high initial temperature), which allows it to get rid of the local optimal according to Metropolis criterion" (Metropolis et al. 1953) Metropolis, N.; Rosenbluth, A. W.; Rosenbluth, M.; Teller, A. H.; and Teller, E. "Equation of S tate Calculations by Fast Computing Machines." J. Chem. Phys. 21 , 1087-1092, 1953.
The probability of accepting a worse result (lower value) is lower when the temperature is lower. S eldom j umping out of this area when temperature is lower. Finding the maximum with the simulated annealing algorithm.
Ti is the denominator of exponent of e. step Finding the maximum with the 1->2 Accept simulated annealing algorithm at 2->3 0.7 0.3 a temperature state. 3->4 Accept 4->5 0.6 0.5 5->6 Accept 6->7 Accept 7->8 Accept 8->9 Accept
S equential S imulated Annealing Algorithm for seeking the minimum. Initialize T 0 , T final / / T 0 is the initial temperature, and T final is the final temperature. Initialize X 0 / / X 0 can be a vector or scalar. / / X 0 is randomly selected in the searching domain. Initialize the step size S Initialize obj ective function f(X) Initialize the number of sub loop N while T i > T final do while n< N do X n = X n-1 +(2random(0,1)-1)S ; If (f(X n-1 )> f(X n )) X opt imal = X n ; else if (exp((f(X n-1 )-f(X n ))/ T i )>random(0,1)) X n-1 = X n ; / / accept X with a probability. n = n +1; T i+1 =KT i / / 0<K<1, K was predefined to be a function or constant.
At temperature T 0 : X 1, X 2 ,…. X p were randomly generated in the searching domain. S earching to S earching to find the find the maximum when maximum when x=50 x =80 find the maximum when x=30 X 1 X p X 2 Finding the maximum with P processors by using parallel simulated annealing algorithm 1. Comparing the optimal found by each processor (#1, #2~#P), and set the maximum of optimal as the starting point (optimal on processor #1) for the temperature T 1 ~Tfinal.
At temperature T 1 ~T final X 1 , X 2 , ~ X p were randomly generated on P processors from the optimal (x=30) in last temperature state. x=30 X 2 X 1 X p Finding the maximum with P processors by using parallel simulated annealing algorithm 1. The total iteration step on each processor is N/ P in one temperature state.
Initialize T 0 , T final / / T 0 is the initial temperature, and T final is the final temperature. Initialize X 0 / / X 0 can be a vector or scalar. / / X 0 is randomly selected in the domain. Initialize the step size S Initialize obj ective function f(X) Initialize the number of sub loop N The following code was executed in parallel: while T i > T final do while n< N/ P do / / P is the number of processor. X n = X n-1 +(2random(0,1)-1)S ; If (f(X n-1 )> f(X n )) X opt imal = X n ; else if (exp((f(X n-1 )-f(X n ))/ T i )>random(0,1)) X n-1 = X n ; / / accept X with a probability. n = n +1; Calculate the X opt imal among all processing units. Distribute the X opt imal to all processing units as the start point in next tempearate status. T i+1 =KT i / / 0<K<1, K was predefined to be a function or constant.
X 1 X P X 2 X 3 Finding the maximum with P processors by using parallel simulated annealing algorithm 2. Dividing the searching domain to P portions, and each processor searches the optimal in its own space with N/ P iterations in one temperature state.
Initialize T 0 , T final / / T 0 is the initial temperature, and T final is the final temperature. Initialize X 1 , X 2 ~ X p / / searching domain was divided to P portions, and / / randomly generate X 1 , X 2 ~ X p on each sub-domain. end X 1 , X 2 ~ X p to corresponding processors. S Initialize the step size S Initialize obj ective function f(X) Initialize the number of sub loop N The following code was executed in parallel: while T i > T final do while n< N/ P do / / P is the number of processor. X n = X n-1 +(2random(0,1)-1)S ; If (f(X n-1 )> f(X n )) X opt imal = X n ; else if (exp((f(X n-1 )-f(X n ))/ T i )>random(0,1)) X n-1 = X n ; / / accept X with a probability. n = n +1; T i+1 =KT i / / 0<K<1, K was predefined to be a function or constant. Comparing and obtaining the X opt imal among all processing units.
*
*
time consumption for initializing the parameters. Number of temperature decreasing Number of sub loop in each temperature status. Number of processors. The parameters used in theoretically analyzing the performance of parallel S A algorithm.
S equential S imulated Annealing Algorithm for seeking the minimum. Initialize T 0 , T final / / T 0 is the initial temperature, and T final is the final temperature. Initialize X 0 / / X 0 can be a vector or scalar. / / X 0 is randomly selected in the searching domain. Initialize the step size S Initialize obj ective function f(X) Initialize the number of sub loop N while T i > T final do while n< N do X n = X n-1 +(2random(0,1)-1)S ; If (f(X n-1 )> f(X n )) X opt imal = X n ; else if (exp((f(X n-1 )-f(X n ))/ T i )>random(0,1)) X n-1 = X n ; / / accept X with a probability. n = n +1; T i+1 =KT i / / 0<K<1, K was predefined to be a function or constant.
S equential S A algorithm:
Initialize T 0 , T final / / T 0 is the initial temperature, and T final is the final temperature. Initialize X 0 / / X 0 can be a vector or scalar. / / X 0 is randomly selected in the domain. Initialize the step size S Initialize obj ective function f(X) Initialize the number of sub loop N The following code was executed in parallel: while T i > T final do while n< N/ P do / / P is the number of processor. X n = X n-1 +(2random(0,1)-1)S ; If (f(X n-1 )> f(X n )) X opt imal = X n ; else if (exp((f(X n-1 )-f(X n ))/ T i )>random(0,1)) X n-1 = X n ; / / accept X with a probability. n = n +1; Calculate the X opt imal among all processing units. Distribute the X opt imal to all processing units as the start point in next tempearate status. T i+1 =KT i / / 0<K<1, K was predefined to be a function or constant.
Parallel S A algorithm 1:
Initialize T 0 , T final / / T 0 is the initial temperature, and T final is the final temperature. Initialize X 1 , X 2 ~ X p / / searching domain was divided to P portions, and / / randomly generate X 1 , X 2 ~ X p on each sub-domain. Initialize the step size S Initialize obj ective function f(X) Initialize the number of sub loop N end X 1 , X 2 ~ X p to corresponding processors. / / MPI_S S catter. The following code was executed in parallel: while T i > T final do while n< N/ P do / / P is the number of processor. X n = X n-1 +(2random(0,1)-1)S ; If (f(X n-1 )> f(X n )) X opt imal = X n ; else if (exp((f(X n-1 )-f(X n ))/ T i )>random(0,1)) X n-1 = X n ; / / accept X with a probability. n = n +1; T i+1 =KT i / / 0<K<1, K was predefined to be a function or constant. Receiving all the optimal on each processor. / / MPI_Gather Comparing and obtaining the X opt imal among all processing units.
Parallel S A algorithm 2:
Recommend
More recommend