UNPKG

agentjs-core

Version:

A comprehensive agent-based modeling framework with built-in p5.js visualization

94 lines 3.04 kB
import { EventEmitter } from 'eventemitter3'; import type { ConfigurationManager } from './ConfigurationManager'; import type { DataCollector } from '../analysis/DataCollector'; import type { StatisticsEngine } from '../analysis/StatisticsEngine'; export interface TuningTarget { metric: string; target: 'maximize' | 'minimize' | 'target'; targetValue?: number; weight: number; } export interface TuningParameter { key: string; min: number; max: number; step: number; current: number; } export interface TuningExperiment { id: string; parameters: Record<string, number>; results: Record<string, number>; score: number; timestamp: number; } export interface TuningConfig { algorithm: 'grid' | 'random' | 'genetic' | 'bayesian'; maxIterations: number; maxRuntime: number; convergenceThreshold: number; parallelRuns: number; stepsPerExperiment: number; } export declare class ParameterTuner extends EventEmitter { private configManager; private dataCollector; private statisticsEngine; private config; private tuningParameters; private tuningTargets; private experiments; private bestExperiment; private isRunning; private currentIteration; private startTime; constructor(configManager: ConfigurationManager, dataCollector: DataCollector, statisticsEngine: StatisticsEngine, config?: Partial<TuningConfig>); addTuningParameter(key: string, min: number, max: number, step?: number): void; removeTuningParameter(key: string): void; addTuningTarget(target: TuningTarget): void; removeTuningTarget(metric: string): void; startTuning(): Promise<TuningExperiment | null>; stopTuning(): void; private runGridSearch; private runRandomSearch; private runGeneticAlgorithm; private runBayesianOptimization; private runExperiment; private simulateSteps; private collectExperimentResults; private calculateScore; private generateRandomParameters; private generateGridCombinations; private generateAcquisitionParameters; private tournamentSelection; private crossover; private mutate; private shouldStop; private hasConverged; getTuningStatus(): { isRunning: boolean; currentIteration: number; maxIterations: number; runtime: number; bestScore: number | undefined; experimentsCount: number; }; getExperiments(): TuningExperiment[]; getBestExperiment(): TuningExperiment | null; applyBestParameters(): boolean; exportResults(): { config: TuningConfig; parameters: Array<{ key: string; } & TuningParameter>; targets: TuningTarget[]; experiments: TuningExperiment[]; bestExperiment: TuningExperiment | null; summary: { totalExperiments: number; bestScore: number | null; convergenceReached: boolean; }; }; } //# sourceMappingURL=ParameterTuner.d.ts.map