1. Field of the Invention
The present invention relates to fitness evaluation for a genetic algorithm machine. For example, the present invention relates to an optimization technique including a method of comparing the areas of two functions as an evaluation method of fitness. More particularly, the present invention relates to parameter extracting equipment for a semiconductor circuit, which is used for a model parameter optimization in a circuit simulator that is designed mainly for circuit design.
2. Description of the Related Art
In the design phase of a large-scale integrated circuit, a circuit simulation is performed using a circuit simulator. A circuit simulator, in general, includes a semiconductor device model f(P) for simulating the actual electrical characteristics. For a highly accurate circuit simulation, it is required for the semiconductor device model f(P) to simulate the electrical characteristics of an observed device highly accurately. Now, since the device model f(P) has a constituent factor of a model parameter P={p1, p2, . . . , pn} that includes n components, it is required that f(P) determine a model parameter {p1, p2, . . . , pn} that can simulate measured electrical characteristics of a device highly accurately.
Techniques of extracting the model parameter (p1, p2, . . . , pn) highly accurately from observed data include a genetic algorithm based method as described in references in Nonpatent Literature 1 and Nonpatent Literatures 2.
The following shows a conventional method of fitness evaluation.
[Equation 1]
Method 1.
Model of Nonpatent Literature 1:
Method 2.
Model of Nonpatent Literature 2:
In the equations, x denotes an applied voltage to a device, f(P,x) denotes a model evaluated value that is obtained by calculating the model parameter P=(p1, p2, . . . , pn) and x, and Id denotes the value of electrical characteristics of an observed device. Now, the equations are calculated at every evaluation point, thereby obtaining fitness g.
[Nonpatent Literature 1] V. Melikian, V. Mnatsakanian, and N. Uzunoglou, “Optimization of SPICE System LEVEL 3 MOSFET Transistor Models Based on DC Measurements,” Microelectronics Journal 29 (1998), pp. 151-156.
[Nonpatent Literature 2] Josef Watts, Calvin Bittner, Douglas Heaberlin, and James Hoffmann, “Extraction of Compact Model Parameters for ULSI MOSFETs Using a Genetic Algorithm”, Technical Proceedings of the 1999 International Conference on Modeling and Simulation of Microsystems, pp. 697.
The conventional genetic algorithm based method may lead to incorrect selection of parameters of highest fitness to be selected.
The present invention is directed to improving fitness evaluation method involving a genetic algorithm based calculation. For instance, it is to propose a method that allows extracting a model parameter that matches an observed value with high accuracy in the optimization of a model function parameter representing observed data.
These and other objects of the embodiments of the present invention are accomplished by the present invention as hereinafter described in further detail.
According to one aspect of the present invention, a fitness function circuit used for genetic algorithms receives a model parameter, obtains a model evaluated value, and outputs fitness for a specific problem. The fitness function circuit may include,
The area calculation section may calculate an area based on a true value and an area based on the model evaluated value, and store the areas in the storage section. Then, the fitness evaluation section may evaluate the fitness according to a difference between the area based on the true value and the area based on the model evaluated value.
The evaluated value calculation section may calculate a model evaluated value f(P, xi) based on a model parameter P and a variable value xi where P denotes a model parameter that has n components {p1, p2, . . . , pn}, x denotes a variable, xi denotes a variable value, f denotes a function with variables of the model parameter P and the variable value xi, and f (P, xi) denotes the model evaluated value. Then, the area calculation section may calculate, for every i, a first area that is based on the variable value xi, a variable value xi+1, a true value Id (xi) and a true value Id(xi+1) and a second area that is based on the variable value xi, the variable value xi+1, the model evaluated value f(P, xi) and a model evaluated value f(P, xi+1) where Id(xi) denotes the true value of the variable value xi, g denotes the fitness, and i=1, 2, . . . , k. Then, the fitness evaluation section may calculate a difference between the first area and the second area and calculate a sum of differences between the areas calculated for the every i as the fitness.
The area calculation section may calculate an area enclosed with a true value and the model evaluated value, and store the area enclosed with the true value and the model evaluated value in the storage section. Then, the fitness evaluation section may evaluate the fitness based on the area enclosed with the true value and the model evaluated value.
The evaluated value calculation section may calculate a model evaluated value f(P, xi) based on a model parameter P and a variable value xi where P denotes a model parameter that has n components {p1, p2, . . . , pn}, x denotes a variable, xi denotes a variable value, f denotes a function with variables of the model parameter P and the variable value xi, and f(P, xi) denotes the model evaluated value. Then, the area calculation section may calculate, for every i, a first area that is based on the variable value xi, a variable value xi+1, a true value Id (xi) and a true value Id(xi+1) and a second area that is based on the variable value xi, the variable value xi+1, the model evaluated value f(P,xi) and a model evaluated value f(P,xi+1) where Id(xi) denotes the true value of the variable value xi, g denotes the fitness, and i=1, 2, . . . , k. Then, the fitness evaluation section may calculate a difference between the first area and the second area and calculates a sum of absolute values of differences between the areas calculated for the every i as the fitness.
According to another aspect of the present invention, a genetic algorithm machine executes a genetic algorithm using a model parameter. Then, the genetic algorithm machine includes,
Then, the fitness function circuit may include,
According to still another aspect of the present invention, a fitness evaluation method is used by a fitness function circuit that is installed in a genetic algorithm machine. The fitness evaluation method may include,
The fitness evaluation method may include,
According to still another aspect of the present invention, a fitness evaluation method is used by a fitness function circuit that is installed in a genetic algorithm machine. The genetic algorithm machine may include,
The fitness evaluation method may include evaluating the fitness by obtaining a value by integrating the absolute value of the difference between the observed data string and the model evaluated value string.
According to this invention, fitness is evaluated based on size of area. For instance, in the extraction of a model parameter from observed data, the value of a model calculated based on an extracted parameter and the observed data (a true value) almost match like a visual match. This may eliminate incorrect selection of parameters.
Further scope of applicability of the present invention will become apparent from the detailed description given hereinafter. However, it should be understood that the detailed description and specific examples, while indicating preferred embodiments of the invention, are given by way of illustration only, since various changes and modifications within the spirit and scope of the invention will become apparent to those skilled in the art from this detailed description.
The present invention will become more fully understood from the detailed description given hereinafter and the accompanying drawings which are given by way of illustration only, and thus are not limitative of the present invention, and wherein:
Reference will now be made in detail to the present preferred embodiments of the invention, examples of which are illustrated in the accompanying drawings, wherein like reference numerals indicate like devices through out the several views.
With referring to
Also, the genetic algorithm machine 900 is connected to a FAX machine 932 and a telephone machine 931 by cables, and connected also to the Internet 940 via a local area network (LAN) 942 and a gateway 941.
With referring to
The RAM 914 is an example of volatile memory. The ROM 913, the FDD 904, the CDD 905, and the magnetic disk drive 920 are examples of nonvolatile memory. Those are examples of storage devices or storage sections.
The communication board 915 is connected to the FAX machine 932, the telephone machine 931, the LAN 942, etc.
For instance, the communication board 915, the K/B 902, the FDD 904, and the scanner 907 are examples of input sections.
For instance, the communication board 915 and the CRT display 901 are examples of output sections.
Now, the communication board 915 may alternatively be connected directly to the Internet 940 or a WAN (Wide Area Network) such as ISDN, instead of being connected to the LAN 942. If the communication board 915 has a direct connection to the Internet 940 or a WAN such as ISDN, then the genetic algorithm machine 900 is connected to the Internet 940 or a WAN such as ISDN. This eliminates the use of the gateway 941.
The magnetic disk drive 920 stores an operating system (OS) 921, a window system 922, a program group 923, and a file group 924. The program group 923 is executed by the CPU 911, the OS 921, and the window system 922.
The program group 923 stores programs that execute the functions that will be described as a “section”, a “device”, a “module”, an “operator”, and a “circuit” in later descriptions of the embodiment. The programs are retrieved by the CPU 911 to be executed.
The file group 924 stores a “judgement result”, a calculation results, and a “process result” that will be illustrated in later descriptions of the embodiment each as a “file”.
Then, arrows in a flow chart that will be described in later descriptions of the embodiment mainly indicate data inputs/outputs. For the data input/output, data is stored in FD (Flexible Disk), Optical Disk, CD (Compact Disk), MD (Mini Disk), DVD (Digital Versatile Disk), or other types of storage media. Alternatively, data may be transmitted over a signal line or other types of transmission media.
Then, equipment that will be explained as a “section”, a “device”, a “module”, an “operator”, or a “circuit” in later descriptions of the embodiment may be implemented in firmware that is stored in the ROM 913. Alternatively, they may be implemented in software only, hardware only, a combination of software and hardware, or a combination of software, hardware and firmware.
Then, programs to implement the embodiment discussed hereinafter may be stored using a storage device such as the magnetic disk drive 920, FD (Flexible Disk), Optical Disk, CD (Compact Disk), MD (Mini Disk), DVD (Digital Versatile Disk) or other types of storage media.
The genetic algorithm machine 900 executes a genetic algorithm using the model parameter P. It is assumed here that one model parameter P has n component parameters {p1, p2, . . . , pn}.
The genetic algorithm machine 900 is provided with a control section 10, which controls respective sections that will be discussed hereinafter and executes operations that will be discussed hereinafter. This control may be implemented by the CPU 911, firmware, and the program group 923.
The genetic algorithm machine 900 is also provided with a population memory 11, which stores a population of model parameters 42, p1, p2, . . . , pm, each provided with fitness 41.
The genetic algorithm machine 900 is also provided with a storage section 17, which stores various types of files. The storage section 17 stores a variable value string (x1, x2, . . . , xk) in a variable value string file 45. The storage section 17 also stores an observed data string, which is corresponding to the variable value string, in a true value file 31 as a true value string (Id(x1), . . . , Id(xk)).
The population memory 11 and the storage section 17 may be implemented by a storage device such as the magnetic disk drive 920.
The genetic algorithm machine 900 is provided with a select section 12, which selects a parent model parameter from among the population of model parameters 42 stored in the population memory 11, and stores the parent model parameter in a parent model parameter file 43 in the storage section 17.
The genetic algorithm machine 900 is also provided with a crossover module 13, which crosses parent model parameters selected by the select section 12, thereby producing an offspring model parameter, and stores the offspring model parameter in an offspring model parameter file 44 in the storage section 17.
The genetic algorithm machine 900 is also provided with a mutation operator 14, which mutates the offspring model parameter stored in the offspring model parameter file 44. The mutation operator 14 is optional.
The genetic algorithm machine 900 is also provided with a fitness function circuit 15, which retrieves from the offspring model parameter file 44 the offspring model parameter mutated by the mutation operator 14 or the offspring model parameter crossed by the crossover module 13, evaluates the fitness of the offspring model parameter for a specific problem, and stores the fitness in a fitness file 34 in the storage section 17.
The genetic algorithm machine 900 is also provided with a population update section 16, which retrieves the fitness evaluated by the fitness function circuit 15 and stored in the fitness file 34, selects an offspring model parameter with a high level of fitness based on the fitness, and updates the population memory 11.
A configuration of the fitness function circuit 15 will now be described.
The fitness function circuit 15 is provided with an evaluated value calculation section 21, which receives an offspring model parameter from the offspring model parameter file 44, obtains k model evaluated values based on the offspring model parameter received, and stores the k model evaluated values in an evaluated value file 32 in the storage section 17.
The fitness function circuit 15 is also provided with an area calculation section 22, which reads the k model evaluated values stored in the evaluated value file 32 by the evaluated value calculation section 21, calculates the size of an area formed by the k model evaluated values read, and stores the size of the area in an area value file 33 in the storage section 17.
The fitness function circuit 15 is also provided with a fitness evaluation section 23, which reads the size of the area stored in the area value file 33 by the area calculation section 22, evaluates the fitness of the offspring model parameter based on the size of the area read, and stores the fitness in the fitness file 34 in the storage section 17.
In the extraction of a model parameter using a genetic algorithm, the optimization of the combination of parameter devices is performed, assuming that a device of the model parameter P is a gene.
The following is the procedure for this case.
S9: The control section 10 forms at random parent populations {p1, p2, . . . , pn}m including 1000 sets (m=1000), for example, of a model parameter P in the population memory 11. The control section 10 also sets an operating time of the genetic algorithm. Time may be replaced by the number of times to be set.
S10: The control section 10 repeats the following operations from S11 to S18 until the operating time or number of times of the genetic algorithm is reached.
S11: The select section 12 selects two parent model parameters, for example, from among the parent populations including the m sets of model parameters P in the population memory 11 as parent individuals, and stores the two parent model parameters in the parent model parameter file 43.
S12: The crossover module 13 crosses the two parent individuals selected, produces ten (j=1, 2, . . . , 10) offspring model parameters, for example, as a new population of parameters {p1, p2, . . . , pn}j, and stores the new population of parameters in the offspring model parameter file 44.
S13: The mutation operator 14 changes a parameter value or inverts a bit value at a random position of the offspring model parameter stored in the offspring model parameter file 44, if necessary, for mutation.
S14-S16: The fitness function circuit 15 evaluates fitness for desired electrical characteristics based on the newly produced population of ten parameters {p1, p2, . . . , pn}j, and stores the fitness in the fitness file 34.
In S14, the evaluated value calculation section 21 calculates the model evaluated value f (P, xi) for each offspring model parameter P of the new population of ten parameters. The evaluated value calculation section 21 receives an offspring model parameter, and obtains k model evaluated values f(P, xi) (i=1, 2, . . . , k) based on the offspring model parameter received using a predetermined function f, and stores the k model evaluated values in the evaluated value file 32 as a model evaluated value string.
In S15, the area calculation section 22 calculates an area based on true value and an area based on model evaluated value.
First, the area calculation section 22 retrieves the variable value string, x1, x2, . . . , xk, from the variable value string file 45, retrieves the observed data string, Id(x1), . . . , Id(xk), corresponding to the variable value string from the true value file 31, calculates the size of an area based on observed data using the variable value string and the observed data string, and stores in the area value file 33 the size of the area based on observed data calculated.
The area calculation section 22 also retrieves the k model evaluated values f(P, xi) (i=1, 2, . . . , k) from the evaluated value file 32, calculates the size of the area based on model parameter using the variable value string and the model evaluated value string, and stores in the area value file 33 the size of the area based on model parameter calculated.
In S16, the fitness evaluation section 23 evaluates the fitness based on a difference between the area based on true value and the area based on model parameter.
The fitness evaluation section 23 reads the area based on observed data and the area based on model parameter stored in the area value file 33, calculates the difference between the areas read as the fitness of the offspring model parameter, and stores the fitness in the fitness file 34.
S17: The population update section 16 selects a parameter set having the highest fitness from among the new population of ten parameters {p1, p2, . . . , pn}j and a parameter set selected by a random number. Note that there are a variety of possible conditions for updating this population memory 11. For example, if the highest fitness among the new population of parameters is still lower than the lowest fitness among the model parameters of the population memory 11, then no selection is required and the process goes back to S10.
S18: The population update section 16 returns the parameter set selected in S17 to the parent populations of parameters {p1, p2, . . . , pn}m, and the process goes back to S10.
S99: When the predetermined time or number of times for calculation is reached, the control section 10 stops and outputs the best parameter. The control section 10 outputs a model parameter P with a combination of component parameters that shows the highest fitness among the parent population of parameters {p1, p2, . . . , pn}m calculated as a final solution.
The method of this embodiment will be referred to as Method 3. Method 3 is used for fitness evaluation for extracting an optimized model parameter P corresponding to the observed data Id.
The observed data Id is assumed to be the function of the variable x, and have a value Id={Id(x1), . . . , Id(xk)}, which corresponds to a set of variables x, x={x1, . . . , xk}, which are sampled at regular or irregular intervals.
Then, the optimized model parameter P is defined as P=(p1, p2, . . . , pn), and assumed to consist of n component parameters (p1, p2, . . . , pn).
Now, it should be noted that the fitness evaluation here evaluates the level of matching between the observed data Id and a model evaluated value f(P, x) calculated based on the parameter P and the variable x, thereby evaluating the level of matching between a value Id={Id(x1), . . . , Id(xk)} and a value {f(P, x1), . . . , f(P, xk)}.
Now, the fitness evaluation of this embodiment is performed by the following method.
At an arbitrary evaluation point xi and an adjacent evaluation point xi+1 (i=1˜k−1), observed data Id(xi) and Id(xi+1) corresponding to the respective points are selected. Then, the model evaluated values f(P, xi) and f(P, xi+1) are calculated.
Then, according to the trapezoid formula, areas Sd that is enclosed by the function Id showing observed data and Sf that is enclosed by a model function are calculated as shown in FIG. 5. In
Specifically, the calculations are as follows.
Sdi=(Id(xi+1)+Id(xi))*(xi+1−xi)/2
Sfi=(f(P,xi+1)+f(P,xi))*(xi+1−xi)/2
More specifically, the area calculation section 22 calculates the size of an area that is formed by a lower value of the variable value string, a higher value of the variable value string, the observed data string, and the X-axis, as an area size Sdi based on observed data, in a two dimensional coordinate graph where the X-axis indicates the variable value string, and the Y-axis indicates the observed data string. The area calculation section 22 also calculates the size of an area that is formed by a lower value of the variable value string, a higher value of the variable value string, the model evaluated value string, and the X-axis, as an area size Sfi based on model parameter, in a two dimensional coordinate graph where the X-axis indicates the variable value string, and the Y-axis indicates the model evaluation value string. Then, the area calculation section 22 stores the area size Sdi based on observed data and the area size Sfi based on model parameter in the storage section.
Now, a difference between Sdi and Sfi for each every i (i=1˜k−1) is obtained as an evaluated value of fitness. Then, all the differences obtained are added to find the fitness g of the parameter P. The following is the formula.
Specifically, the fitness evaluation section 23 retrieves the area size Sd1 based on observed data and the area size Sf1 based on model parameter from the storage section, and stores a difference between Sdi and Sfi in the storage section as the fitness. This is equivalent to the following process. In the two-dimensional coordinate graph where the X-axis indicates the variable value string and the Y-axis indicates the observed data string, the size of an area formed by a maximum value in the variable value string, a minimum value in the variable value string, the observed data string, and the X-axis, is calculated as the size of the area based on observed data. Then, in the two-dimensional coordinate graph where the X-axis indicates the variable value string and the Y-axis indicates the model evaluation value string, the size of an area formed by a maximum value in the variable value string, a minimum value in the variable value string, the model evaluation value string, and the X-axis, is calculated as the size of the area based on model parameter. Then, the size of the area based on observed data and the size of the area based on model parameter are calculated and a difference between the sizes of the areas is stored in the storage section as the fitness of the model parameter.
As mentioned above. Method 3 is an optimization method used for fitness evaluation based on a model evaluated value string, which corresponds to the observed data string that has values corresponding to the variable value string sampled at regular or irregular intervals. The model evaluated value string is calculated based on a model parameter and the variable value string. Then, the optimization method uses the difference, as the fitness of a parameter, between the area that is calculated based on the variable value string and the corresponding observed data string and the area that is calculated based on the variable value string and the model evaluated value string that is obtained based on parameters.
A description will now be given of Method 3 of this embodiment in comparison with Methods 1 and 2 of the conventional art.
Values in each line of
[Equation 3]
With Method 1, the value is obtained by
With Method 2, the value is obtained by
With Method 3, the value is obtained by Sdi-Sfi.
Values in each line of
[Equation 4]
With Method 1, the value is obtained by
With Method 2, the value is obtained by
With Method 3, the value is obtained by Sdi-Sfi.
The following are conditions assumed for purposes of illustration.
It is assumed that the electrical characteristics to be optimized is the function of voltage x, and the electrical characteristics of an observed device is a value shown as the true value of
Now, if the interval x is changed, it is also assumed that f(P, x) is calculated as the evaluated value-1 of
The following are results of comparisons of fitness evaluated. With the case of the regular interval x of
With Method 1: a value obtained by the evaluated value-1 assigned<a value obtained by the evaluated value-2 assigned
With Method 2: a value obtained by the evaluated value-1 assigned>a value obtained by the evaluated value-2 assigned
It is to be noted here that the evaluated value-1 is a calculated value based on a parameter with high fitness. Therefore, fitness g may be obtained with accuracy in the case where a value obtained with the evaluated value-1 assigned is smaller than a value obtained with the evaluated value-2 assigned.
This indicates that Method 1 gives an accurate result, and Method 2 gives an inaccurate one.
On the other hand, with the case of irregular interval x of
With Method 1: a value obtained by the evaluated value-1 assigned>a value obtained by the evaluated value-2 assigned
With Method 2: a value obtained by the evaluated value-1 assigned>a value obtained by the evaluated value-2 assigned
This shows that both Method 1 and Method 2 give inaccurate results. This proves that dependency on the interval x causes a change in the result of evaluation.
It is an object to solve the x dependency problem of the result of fitness evaluation. Fitness may be determined by visual judgement under a graph in human sense. From this point of view, fitness is evaluated with Method 3 performing a difference evaluation between areas f(P,x) and Id. The following are results of comparisons of fitness evaluated accordingly.
With the case of regular interval x of
With Method 3: a value obtained by the evaluated value-1 assigned<a value obtained by the evaluated value-2 assigned
With the case of irregular interval x of
With Method 3: a value obtained by the evaluated value-1 assigned<a value obtained by the evaluated value-2 assigned
Thus, the proposed method (Method 3) allows selecting accurate fitness in every case.
According to a second embodiment, the configuration is the same as that according to the first embodiment. A description will now be given mainly of differences between the embodiments.
With Method 3 of the first embodiment as well as Method 1 and Method 2 of the conventional art, the x dependency of the true values and the estimated values may cause incorrect estimation of fitness g in case of the relationship of the true value and the evaluated value-B crossing along the line in
In other words, the fitness evaluation section 23 evaluates fitness by obtaining a value by integrating the absolute value of a difference between the observed data string and the model evaluated value string. This method according to this embodiment will be referred to hereinafter as Method 4.
As shown in
The following shows the values of fitness g that are obtained through Methods 1, 3 and 4, respectively.
With Method 1 or Method 3: a value obtained by assigning the evaluated value-A>a value obtained by assigning the evaluated value-B
With Method 4: a value obtained by assigning the evaluated value-A<a value obtained by assigning the evaluated value-B It is to be noted here that the evaluated value-A is a calculated value based on a parameter with high fitness. Therefore, fitness g may be obtained with accuracy in the case where a value obtained with the evaluated value-A assigned is smaller than a value obtained with the evaluated value-B assigned.
This indicates that the proposed method of this embodiment (Method 4) allows selecting an accurate fitness even in the case that the relationship between the true value and the evaluated value changes in mid-course.
With the calculation formula of Method 3 of the first embodiment and that of Method 4 of the second embodiment, the area of a trapezoid is calculated and approximated by the area of function. With the following integral formula, however, the area can be obtained accurately as shown in
The invention being thus described, it will be obvious that the same may be varied in many ways. Such variations are not to be regarded as a departure from the spirit and scope of the invention, and all such modifications as would be obvious to one skilled in the art are intended to be included within the scope of the following claims.
Number | Date | Country | Kind |
---|---|---|---|
2004-155115 | May 2004 | JP | national |
2004-365228 | Dec 2004 | JP | national |