@ai-on-browser/data-analysis-models
Version:
Data analysis model package without any dependencies
113 lines (112 loc) • 2.97 kB
TypeScript
/**
* 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 {};