Share Brilliantly
genetic algorithms
let data = [
[0,5],[1,6],[2,9],[3,14]
];
let function1 = {
function:function(x,y){
return x+y;
},
name:'add',
arguments:[1,2]
}
let function1 = {
function:function(x,y){
return x+y;
},
arguments:[
1,
{
function:function(x){
return Math.exp(x)
},
arguments:[2]
}
]
}
let gn = await import('/lib/ast/v1.0.0/genetic.mjs');
let st = await import('/lib/sort/v1.0.0/sort.mjs');
let ast = await import('/lib/ast/v1.0.0/ast.mjs');
let data = [
[0,5],[1,6],[2,9],[3,14]
];
let list = gn.newIndividuals(12);
let top;
for(let i=0;i<10;i++){
top = gn.top(data, list, 12, gn.error.abs);
let results = gn.reproduce(top);
results = results.map(p=>gn.mutate(p));
list = [...top,...results];
list = [...list, ...gn.newIndividuals(6,list)];
}
let error = function(item){
let sum = 0;
for(let point of data){
let result = [point[1], ast.evaluate(item, point[0])];
let error = Math.abs(result[1]- result[0]);
sum += error;
}
return sum;
}
let minerror;
top = st.sort(top, item=>{
return error(item);
});
Try it