Switched from Ant to Maven. Usage: - Install Maven 3.x - Enter directory with pom.xml - Type mvn compile - Enjoy!
		
			
				
	
	
		
			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> |