Wednesday, September 11, 2019

Black box optimization part 1

#include <iostream>
#include<cstdlib>

using namespace std;

double eval(int *pj);

void display(int *x){
cout<<"\n["<<*x;
for (int i=1;i<100;i++){
x++;
cout<<","<<*x;
}
cout<<"]";
}
int* modify(int *x){
int y=rand() % 100; //generates random number z in the range of 0 to 99
cout<<"\ny="<<y;
if (*(x+y)==0)
*(x+y)=1;
else
*(x+y)=0;
return x;
}
int main()
{
int vec[100];
  int i;
  for(i = 0; i < 100; i++)
{
    vec[i] = 1;
  }
  double fBest,fNew;
int *sBest=vec;
int *sNew;
//display(sBest);
fBest=eval(sBest);
for (i = 0;i < 100000; i++)
{
sNew=modify(sBest);
display(sNew);
fNew=eval(sNew);
if(fNew >= fBest)
{
sBest=sNew;
fBest=fNew;
}
cout<<"\nfitness after iteration "<<i+1<<" is "<<fBest;
}
  cout << "\nfitness = " << fBest << endl;
}


Read more!