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

Method optcost

constr2.cpp:56–89  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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] );
68 pn[ 3 ] = penalty0( 1000*(sin(p[2]-0.25)+sin(p[2]-p[3]-0.25))+894.8-p[1] );
69 pn[ 4 ] = penalty0( 1000*(sin(p[3]-0.25)+sin(p[3]-p[2]-0.25))+1294.8 );
70
71 real_value = cost;
72
73 if( con_notmet > 0 )
74 {
75 const double ps = 1.0 + 1.0 / n_con;
76 double pns = 0.0;
77 int i;
78
79 for( i = 0; i < n_con; i++ )
80 {
81 const double v = pn[ i ];
82 pns = ( 1.0 + pns ) * ps + ( v + v * v + v * v * v ) * 0.33333;
83 }
84
85 cost += 1e10 * pns;
86 }
87
88 return( cost );
89 }
90};
91
92int main()

Callers 1

mainFunction · 0.45

Calls

no outgoing calls

Tested by

no test coverage detected