• Main Page
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

Rosenbrock.cpp

Go to the documentation of this file.
00001 
00009 #include <Rosenbrock.h>
00010 
00014 Rosenbrock::Rosenbrock(VariableType variableType, int numberOfVariables) {
00015 
00016   problemName_ = "ROSENBROCK" ;
00017 
00018   numberOfVariables_   = numberOfVariables ;
00019   numberOfFunctions_   = 1 ;
00020   numberOfConstraints_ = 0 ;
00021 
00022   upperLimit_      = new double[numberOfVariables_] ;
00023   lowerLimit_      = new double[numberOfVariables_] ;
00024   precision_       = new int[numberOfVariables_]    ;
00025   bitsPerVariable_ = new int[numberOfVariables_]     ;
00026 
00027   for (int i = 0; i < numberOfVariables_; i++) {
00028     upperLimit_[i] = 5.12  ;
00029     lowerLimit_[i] = -5.12 ;
00030     precision_[i]  = 5  ;
00031   } // for
00032 
00033   variableType_ = new VariableType[numberOfVariables_] ;
00034 
00035   initializeVariableType(variableType) ;
00036   cout << "Created a " << problemName_ << " problem" << endl ;
00037 } // Constructor
00038 
00043 void Rosenbrock::evaluate(Individual *individual) {
00044   double sum  ;
00045   double *x = new double[numberOfVariables_] ;
00046 
00047   for (int i = 0; i < numberOfVariables_; i++) 
00048     x[i] = (individual->chromosome_->gene_[i])->getRealAllele() ;
00049   
00050   // First function
00051   sum = 0.0 ;
00052   for (int i = 0; i < (this->numberOfVariables_ - 1) ; i++) {
00053     sum += 100.0 * (x[i+1]-x[i]*x[i])*(x[i+1]-x[i]*x[i]) +(x[i]-1)*(x[i]-1) ;
00054   } //for
00055 
00056   individual->fitness_[0] = sum ;
00057   delete [] x ;
00058 } // Rosenbrock::evaluateIndividual
00059 
00060 

Our Software

orangebox Mallba

orangebox ssGA

orangebox JGDS

orangebox xxGA

orangebox JCell

orangebox MHTB

orangebox DEME

orangebox JMetal

orangebox More...

orangebox Go Back