MCPcopy Create free account
hub / github.com/avaneev/biteopt / CTestOpt

Class CTestOpt

constr2.cpp:10–90  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8const int N = 4;
9
10class CTestOpt : public CBiteOptDeep
11{
12public:
13 int con_notmet;
14 double real_value;
15
16 virtual void getMinValues( double* const p ) const
17 {
18 p[ 0 ] = 0.0;
19 p[ 1 ] = 0.0;
20 p[ 2 ] = -0.55;
21 p[ 3 ] = -0.55;
22 }
23
24 virtual void getMaxValues( double* const p ) const
25 {
26 p[ 0 ] = 1200.0;
27 p[ 1 ] = 1200.0;
28 p[ 2 ] = 0.55;
29 p[ 3 ] = 0.55;
30 }
31
32 double penalty( const double v )
33 {
34 if( v > tol )
35 {
36 con_notmet++;
37 return( v - tol );
38 }
39
40 return( 0.0 );
41 }
42
43 double penalty0( double v )
44 {
45 v = fabs( v );
46
47 if( v > tol )
48 {
49 con_notmet++;
50 return( v - tol );
51 }
52
53 return( 0.0 );
54 }
55
56 virtual double optcost( const double* const p )
57 {
58 double cost = 3.0*p[1]+1e-6*pow(p[0],3.0)+2.0*p[1]+
59 2e-6/3.0*pow(p[1],3.0);
60
61 const int n_con = 5;
62 double pn[ n_con ];
63 con_notmet = 0;
64
65 pn[ 0 ] = penalty( p[2]-p[3]-0.55 );
66 pn[ 1 ] = penalty( p[3]-p[2]-0.55 );
67 pn[ 2 ] = penalty0( 1000*(sin(-p[2]-0.25)+sin(-p[3]-0.25))+894.8-p[0] );

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected