agentjs-core
Version:
A comprehensive agent-based modeling framework with built-in p5.js visualization
94 lines • 3.04 kB
TypeScript
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