edeap
Version:
Euler Diagrams Drawn with Ellipses Area-Proportionally (Edeap)
49 lines (48 loc) • 1.97 kB
TypeScript
import { EdeapAreas } from "./EdeapAreas.js";
import { OptimizerConfig, State } from "./types.js";
export declare const HILL_CLIMBING = 1;
export declare const SIMULATED_ANNEALING = 2;
export declare class Optimizer {
strategy: number;
state: State;
changeSearchSpace: boolean;
areas: EdeapAreas;
move: number[];
currentFitness: number | undefined;
temp: number;
currentAnnealingIteration: number;
currentTemperatureIteration: number;
selectedMove: number | undefined;
maxMeasures: Record<string, number[]>;
HCEvalSolutions: number;
SAEvalSolutions: number;
completionAnimationStepN: number;
scalingAnimationStep: number;
translateXAnimationStep: number;
translateYAnimationStep: number;
progressAnimationStep: number;
onStep?: (final: boolean) => void;
constructor({ strategy, state, onStep, areas, }: OptimizerConfig & {
state: State;
areas: EdeapAreas;
});
optimize(sync?: boolean): void | Promise<void>;
nextStep(sync: boolean): void | Promise<void>;
optimizeStep(sync: boolean): void | Promise<void>;
printEllipseInfo(elp: number): void;
selectBestCostMove(elp: number): number;
costMinMove(): number;
applyMove(elp: number, index: number): void;
selectRandomMove(elp: number): number;
computeFitness(): number;
centerX(elp: number, centerShift: number): number;
centerY(elp: number, centerShift: number): number;
radiusA(elp: number, radiusLength: number): number;
rotateEllipse(elp: number, r: number): number;
RadiusAndRotateA(elp: number, radiusLength: number, angle: number): number;
changeCenterX(elp: number, centerShift: number): void;
changeCenterY(elp: number, centerShift: number): void;
changeRadiusA(elp: number, radiusLength: number): void;
changeRotation(elp: number, angle: number): void;
changeRadiusAndRotationA(elp: number, radiusLength: number, angle: number): void;
}