![]() |
|
|||
![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
|
![]() |
[an error occurred while processing this directive]
8.6. The Satisfiability ProblemThe satisfiability problem (SAT, in brief) comes from a domain of two-valued logic and Boolean functions (combinational systems) and concerns a question of whether a given Boolean expression (function) assumes one (becomes satisfied) for a certain combination of its arguments. A sort of a brute force solution comes through a direct enumeration: starting from all arguments equal to 0 (false) we proceed through possible combinations up to the last one in which all the variables are set to 1(true). For small values of the arguments (n), this enumeration does not form a problem yet the search space grows rapidly once n increases. The growth is exponential and the number of possible variations of the variables is equal to 2n. Thus for n = 10 we get 210 = 1024 elements. However, for n = 100 we get 2100 ≈ 1030 and this makes the search space enormously large and eliminates any eventual direct enumeration as a feasible search method. The SAT problem can be then revisited in the realm of GAs. As the problem itself is binary, the fitness function specified as the Boolean function itself is of no help where xi is in {0, 1}. Such a fitness function is not continuous, meaning that all strings that do not satisfy the Boolean expression (even to different degrees) are treated in the same way and return zero. One possible repair would be to reformulate the fitness function itself to furnish it with a badly needed continuity. The other option would be to reformulate the problem itself and make it continuous. Here is the point where fuzzy sets get involved. The idea is to replace the original two-valued function by its multivalued version. Denote it by F. The multivalued extension is carried out in two steps:
As the induced function is multivalued, so is the fitness function This allows us to evaluate the fitness of each of the strings and make a clear discrimination between individual elements of the population. Once the best string has been identified, one produces its Boolean equivalent via a straightforward thresholding:
Finally, one has to check if the binarized (thresholded) version of the best individual satisfies the original Boolean function. The underlying concept of the induced fuzzy (multivalued) SAT problems is highlighted in Fig. 8.11.
We discuss two illustrative examples. They exploit a continuous (real number coded) version of the GA. The crossover rate is set to 0.5 and α = 0.3. The mutation rate is equal to 0.05. The population size equals 8 in the first experiment and 40 in the second one. Example 1. The Boolean function takes on the form (here the plus symbol stands for the OR operation). The multivalued version of the function is realized with the use of the maximum and product operations. The performance of the GA is quantified both in terms of the best string and the average fitness of the entire population, Fig. 8.12. The best string is equal to [0.74 0.93 0.25 0.60]. After thresholding it converts into the expression [ 1 1 0 1 ] that is essentially the second product of the Boolean function. Example 2. Here the Boolean expression is a sum of two products of six variables The results of evolution are summarized in the form of the fitness function assumed for the best individuals as well as an average fitness across the population, Fig. 8.13. Then the best individual is [0.366725 0.625493 0.322614 0.630793 0.217059 0.625782] which after thresholds (at the level of 0.5) yields [0 1 0 1 0 1].
8.7. Evolutionary rule-based modeling of analytical relationshipsThe rule-based model can be found useful in an approximation of continuous functions. In comparison to rule-based approximation of experimental (discrete) data, this type of approximation problem has not attracted too much attention so far even though there is a genuine need for modeling continuous relationships. Let f be a continuous function defined in a subset of R We also assume its differentiability at x0. A straightforward linear approximation of the function realized around x0 is expressed as The right-hand side of the above formula reads in an explicit form as where obviously and The performance of such linear approximation depends on how far a current argument (x) is from the approximation knot (x0). Then the resulting local approximation error can be quantified as In general, not confining ourselves to a specific value of the current argument (x), we define a global approximation error as the following integral More importantly, this global error depends upon a selection of the approximation knot. By changing a position of x0 we can affect the performance index and eventually minimize its value Instead of a single approximation knot we assume a number of them, say m. Denote this collection by The rule-based system approximating the original function comes in the form
Copyright © CRC Press LLC
![]() |
![]() |
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |