Data update
This commit is contained in:
parent
5150844a7d
commit
4bb20c9b71
7735 changed files with 38060 additions and 199180 deletions
|
|
@ -5,19 +5,19 @@ AllowedChars := " ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
|||
initializeParent(randChars(1)) := AllowedChars[randChars];
|
||||
|
||||
Fitness(target(1), current(1)) :=
|
||||
let
|
||||
fit[i] := true when target[i] = current[i];
|
||||
in
|
||||
size(fit);
|
||||
|
||||
let
|
||||
fit[i] := true when target[i] = current[i];
|
||||
in
|
||||
size(fit);
|
||||
|
||||
Mutate(letter(0), rate(0), randRate(0), randChar(0)) :=
|
||||
letter when randRate > rate
|
||||
else
|
||||
AllowedChars[randChar];
|
||||
letter when randRate > rate
|
||||
else
|
||||
AllowedChars[randChar];
|
||||
|
||||
evolve(target(1), parent(1), C(0), P(0), rateRands(2), charRands(2)) :=
|
||||
let
|
||||
mutations[i] := Mutate(parent, P, rateRands[i], charRands[i]) foreach i within 1 ... C;
|
||||
fitnesses := Fitness(target, mutations);
|
||||
in
|
||||
mutations[firstIndexOf(fitnesses, vectorMax(fitnesses))];
|
||||
let
|
||||
mutations[i] := Mutate(parent, P, rateRands[i], charRands[i]) foreach i within 1 ... C;
|
||||
fitnesses := Fitness(target, mutations);
|
||||
in
|
||||
mutations[firstIndexOf(fitnesses, vectorMax(fitnesses))];
|
||||
|
|
|
|||
|
|
@ -6,45 +6,45 @@ using namespace std;
|
|||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
int threads = 0;
|
||||
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]);
|
||||
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);
|
||||
int targetDims[] = {strlen(targetString), 0};
|
||||
Sequence<char> target((void*)targetString, targetDims);
|
||||
|
||||
sl_init(threads);
|
||||
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<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;
|
||||
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);
|
||||
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;
|
||||
sl_evolve(target, parent, C, P, rateRands, charRands, threads, newParent);
|
||||
parent = newParent;
|
||||
|
||||
cout << "#" << i << ":\t" << parent << endl;
|
||||
}
|
||||
cout << "End:\t" << parent << endl;
|
||||
cout << "#" << i << ":\t" << parent << endl;
|
||||
}
|
||||
cout << "End:\t" << parent << endl;
|
||||
|
||||
sl_done();
|
||||
sl_done();
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue