genetic-algorithm
Version:
Gentic Algorithm TypeScript implementation, customisable
101 lines (90 loc) • 2.92 kB
JavaScript
/// <reference path="typings/genetic-algorithm/interfaces.d.ts" />
var Settings = (function () {
function Settings(options) {
if (options) {
this.mutationOperator = options.mutationOperator;
this.crossoverOperator = options.crossoverOperator;
this.creatureBuilder = options.creatureBuilder;
this.fitnessFunction = options.fitnessFunction;
this.iterations = options.iterations;
this.mutationProbability = options.mutationProbability;
this.crossoverProbability = options.crossoverProbability;
this.populationSize = options.populationSize;
var noop = function () {
};
this.onIteration = options.onIteration || noop;
}
}
Object.defineProperty(Settings.prototype, "ntour", {
get: function () {
return this._ntour;
},
set: function (val) {
if (val < 2) {
val = 2;
}
this._ntour = val;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Settings.prototype, "iterations", {
get: function () {
return this._iterations;
},
set: function (iterations) {
if (iterations < 1) {
iterations = 1;
}
this._iterations = iterations;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Settings.prototype, "mutationProbability", {
get: function () {
return this._mutationProbability;
},
set: function (probability) {
if (probability > 1) {
probability = 1;
} else if (probability < 0) {
probability = 0;
}
this._mutationProbability = probability;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Settings.prototype, "crossoverProbability", {
get: function () {
return this._crossoverProbability;
},
set: function (probability) {
if (probability > 1) {
probability = 1;
} else if (probability < 0) {
probability = 0;
}
this._crossoverProbability = probability;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Settings.prototype, "populationSize", {
get: function () {
return this._populationSize;
},
set: function (populationSize) {
if (populationSize < 1) {
populationSize = 1;
}
this._populationSize = populationSize;
},
enumerable: true,
configurable: true
});
return Settings;
})();
module.exports = Settings;
//# sourceMappingURL=Settings.js.map