51 lines
1.2 KiB
Plaintext
51 lines
1.2 KiB
Plaintext
#include <iostream>
|
|
#include <time.h>
|
|
#include "SL_Generated.h"
|
|
|
|
using namespace std;
|
|
|
|
int main(int argc, char** argv)
|
|
{
|
|
int threads = 0;
|
|
|
|
char* targetString = "METHINKS IT IS LIKE A WEASEL";
|
|
if(argc > 1) targetString = argv[1];
|
|
int C = 100;
|
|
if(argc > 2) C = atoi(argv[2]);
|
|
SL_FLOAT P = 0.05;
|
|
if(argc > 3) P = atof(argv[3]);
|
|
int seed = time(NULL);
|
|
if(argc > 4) seed = atoi(argv[4]);
|
|
|
|
int targetDims[] = {strlen(targetString), 0};
|
|
Sequence<char> target((void*)targetString, targetDims);
|
|
|
|
sl_init(threads);
|
|
|
|
Sequence<char> parent;
|
|
Sequence<char> newParent;
|
|
Sequence<int> parentRands;
|
|
sl_create(seed++, 1, 27, target.size(), threads, parentRands);
|
|
sl_initializeParent(parentRands, threads, parent);
|
|
|
|
Sequence< Sequence<int> > charRands;
|
|
Sequence< Sequence<SL_FLOAT> > rateRands;
|
|
|
|
cout << "Start:\t" << parent << endl;
|
|
for(int i = 1; !(parent == target); i++)
|
|
{
|
|
sl_create(seed++, 1, 27, C, target.size(), threads, charRands);
|
|
sl_create(seed++, 0.0, 1.0, C, target.size(), threads, rateRands);
|
|
|
|
sl_evolve(target, parent, C, P, rateRands, charRands, threads, newParent);
|
|
parent = newParent;
|
|
|
|
cout << "#" << i << ":\t" << parent << endl;
|
|
}
|
|
cout << "End:\t" << parent << endl;
|
|
|
|
sl_done();
|
|
|
|
return 0;
|
|
}
|