56 lines
2.3 KiB
HTML
56 lines
2.3 KiB
HTML
<html>
|
|
<head>
|
|
<title>Generic Constraints</title>
|
|
</head>
|
|
<body>
|
|
<h1 align="center">Generic Constraints</h1>
|
|
<br>
|
|
|
|
<p>To represent generic constraints on real-valued functions, this class can parse
|
|
String expressions in prefix notation of the form:
|
|
<blockquote>
|
|
<expr> ::= <constant-operator> | <functional-operator> "(" <arguments> ")"<br>
|
|
<arguments> ::= <expr> | <expr> "," <arguments>
|
|
</blockquote>
|
|
</p>
|
|
|
|
Setting the <b>constraint string</b>:
|
|
Constant operators have an arity of zero. Examples are:<br>
|
|
(pi,0) (X,0) (1.0,0)<br>
|
|
|
|
Functional operators have an arity greater zero. Examples are:<br>
|
|
(sum,1) (prod,1) (abs,1) (sin,1) (pow2,1) (pow3,1) (sqrt,1) (neg,1) (cos,1) (exp,1)<br>
|
|
(+,2) (-,2) (/,2) (*,2)<br>
|
|
|
|
<p>
|
|
Additionally, any numerical strings can also be used; they are parsed to numeric constants. The literal <i>n</i>
|
|
is parsed to the current number of problem dimensions.<br>
|
|
Notice that only the <i>sum</i> and <i>prod</i> operators may receive the literal X as input, standing
|
|
for the full solution vector. Access to single solution components is possible by writing <i>x0...x9</i>
|
|
for a problem with 10 dimensions.
|
|
</p>
|
|
|
|
<p>
|
|
Thus you may write <font face="Courier">+(-(5,sum(X)),+sin(/(x0,pi)))</font>
|
|
and select 'lessEqZero' as relation to require valid solutions to fulfill 5-sum(X)+sin(x0/pi)<=0.<br>
|
|
</p>
|
|
|
|
<p>
|
|
Typical <b>relations</b> concerning constraints allow for g(x)<=0, g(x)==0, or g(x)>=0 for
|
|
constraint g. Notice that equal-to-zero constraints are converted to g(x)==0 <=> |g(x)-epsilon|<=0 for
|
|
customizable small values of epsilon.
|
|
</p>
|
|
|
|
<p>
|
|
The <b>handling method</b> defines how EvA 2 copes with the constraint. Simplest variant is an
|
|
additive penalty which is scaled by the penalty factor and then added directly to the fitness
|
|
of an individual. This will work for any optimization strategy, but results will depend on
|
|
the selection of penalty factors. Multiplicative penalty works analogously with the difference of
|
|
being multiplied with the raw fitness.<br>
|
|
In the variant called specific tag, the constraint violation is stored in an extra field of any
|
|
individual and may be regarded by the optimization strategy. However, not all strategies provide
|
|
simple mechanisms of incorporating this specific tag.
|
|
</p>
|
|
|
|
</body>
|
|
</html> |