UNPKG

@ai-on-browser/data-analysis-models

Version:

Data analysis model package without any dependencies

113 lines (112 loc) 2.97 kB
/** * Genetic algorithm generation */ export default class GeneticAlgorithmGeneration { /** * @param {RLEnvironmentBase} env Environment * @param {number} [size] Number of models per generation * @param {number} [resolution] Resolution */ constructor(env: RLEnvironmentBase, size?: number, resolution?: number); _env: RLEnvironmentBase; _resolution: number; _model: GeneticAlgorithm; /** * Reset all agents. */ reset(): void; /** * Returns a score. * @returns {Array<Array<Array<number>>>} Score values */ get_score(): Array<Array<Array<number>>>; /** * Returns the best score agent. * @returns {GeneticAlgorithmAgent} Best agent */ top_agent(): GeneticAlgorithmAgent; /** * Run for all agents. */ run(): void; /** * Update agent to new generation. * @param {number} mutation_rate Mutation rate */ next(mutation_rate?: number): void; } export type GeneticModel = { /** * Run model */ run: (...args: any[]) => void; /** * Returns mutated model */ mutation: () => GeneticModel; /** * Returns mixed model */ mix: (arg0: GeneticModel) => GeneticModel; /** * Returns a number how good the model is */ score: () => number; }; import { RLEnvironmentBase } from '../rl/base.js'; /** * @typedef {object} GeneticModel * @property {function(...*): void} run Run model * @property {function(): GeneticModel} mutation Returns mutated model * @property {function(GeneticModel): GeneticModel} mix Returns mixed model * @property {function(): number} score Returns a number how good the model is */ /** * Genetic algorithm */ declare class GeneticAlgorithm { /** * @param {number} size Number of models per generation * @param {new () => GeneticModel} model Function to generate the model */ constructor(size: number, model: new () => GeneticModel); _size: number; _models: GeneticModel[]; /** * Models * @type {GeneticModel[]} */ get models(): GeneticModel[]; /** * The best model. * @returns {GeneticModel} Best model */ get bestModel(): GeneticModel; /** * Run for all models. * @param {...*} args Arguments for run */ run(...args: any[]): void; /** * Update models to new generation. * @param {number} [mutation_rate] Mutation rate */ next(mutation_rate?: number): void; } declare class GeneticAlgorithmAgent { constructor(env: any, resolution?: number, table?: any); _env: any; _resolution: number; _table: any; _total_reward: number; _max_epoch: number; get total_reward(): number; reset(): void; get_score(): any; get_action(state: any): any; run(env: any): void; mutation(): GeneticAlgorithmAgent; mix(other: any): GeneticAlgorithmAgent; score(): number; } export {};