enome
Version:
A genome generation and evolution library.
51 lines • 3.46 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var index_1 = require("../../index");
var _ = require("lodash");
var SumOrganism = (function (_super) {
__extends(SumOrganism, _super);
function SumOrganism() {
return _super !== null && _super.apply(this, arguments) || this;
}
SumOrganism.prototype.createPhenotype = function (genome) {
return _.range(genome.options.length).map(function (i) {
return genome.g.int(genome.options.min, genome.options.max);
});
};
SumOrganism.prototype.interact = function (state) {
return {
agentID: this.id,
index: state.index + 1,
state: {
list: this.phenotype,
sum: _.sum(this.phenotype),
},
};
};
SumOrganism.prototype.observe = function (interaction) {
return interaction.newState.state;
};
SumOrganism.prototype.evaluate = function (data, genotype, phenotype) {
var difference = this.options.target - data[0].sum;
var fitness = Math.abs(difference);
return {
data: data,
fitness: fitness,
genotype: genotype,
phenotype: phenotype,
};
};
return SumOrganism;
}(index_1.Organism));
exports.SumOrganism = SumOrganism;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3VtLW9yZ2FuaXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2V4YW1wbGVzL3N1bS9zdW0tb3JnYW5pc20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEscUNBQTREO0FBUzVELDBCQUE0QjtBQUU1QjtJQUFpQywrQkFRaEM7SUFSRDs7SUFzREEsQ0FBQztJQTdDUSxxQ0FBZSxHQUF0QixVQUF1QixNQUFpQztRQUN0RCxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxVQUFBLENBQUM7WUFDekMsT0FBQSxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQztRQUFwRCxDQUFvRCxDQUNyRCxDQUFDO0lBQ0osQ0FBQztJQUVNLDhCQUFRLEdBQWYsVUFDRSxLQUFpQztRQUlqQyxNQUFNLENBQUM7WUFDTCxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUU7WUFDaEIsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQztZQUN0QixLQUFLLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLElBQUksQ0FBQyxTQUFTO2dCQUNwQixHQUFHLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQzNCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSw2QkFBTyxHQUFkLFVBQ0UsV0FBcUQ7UUFHckQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFTSw4QkFBUSxHQUFmLFVBQ0UsSUFBZ0IsRUFDaEIsUUFBbUMsRUFDbkMsU0FBbUI7UUFFbkIsSUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNyRCxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBSXJDLE1BQU0sQ0FBQztZQUNMLElBQUksTUFBQTtZQUNKLE9BQU8sU0FBQTtZQUNQLFFBQVEsVUFBQTtZQUNSLFNBQVMsV0FBQTtTQUNWLENBQUM7SUFDSixDQUFDO0lBQ0gsa0JBQUM7QUFBRCxDQUFDLEFBdERELENBQWlDLGdCQUFRLEdBc0R4QztBQXREWSxrQ0FBVyJ9