@reicek/neataptic-ts 0.1.21 → 0.1.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/agents/boundary-mapper.agent.md +31 -0
- package/.github/agents/docs-scout.agent.md +29 -0
- package/.github/agents/plan-scout.agent.md +31 -0
- package/.github/agents/solid-split.agent.md +143 -0
- package/.github/copilot-instructions.md +119 -0
- package/.github/skills/solid-split-playbook/SKILL.md +220 -0
- package/.github/skills/solid-split-playbook/assets/docs-checklist.md +34 -0
- package/.github/skills/solid-split-playbook/assets/split-plan-template.md +48 -0
- package/.github/skills/solid-split-playbook/assets/split-workflow-checklist.md +51 -0
- package/.github/skills/trace-analyzer-extension/SKILL.md +63 -0
- package/.github/skills/trace-analyzer-extension/assets/extension-checklist.md +24 -0
- package/.github/skills/trace-analyzer-extension/references/analyzer-extension-workflow.md +101 -0
- package/.github/skills/trace-audit-reporting/SKILL.md +96 -0
- package/.github/skills/trace-audit-reporting/assets/performance-report-template.md +123 -0
- package/.github/skills/trace-audit-reporting/references/trace-analysis-workflow.md +132 -0
- package/package.json +7 -3
- package/plans/ES2023 migration +13 -8
- package/plans/Evolution_Training_Interoperability_Contracts.md +1 -1
- package/plans/Flappy_Bird_Folder_Documentation_Pass.md +53 -0
- package/plans/Flappy_Evolution_Worker_Documentation_Pass.md +58 -0
- package/plans/Interactive_Examples_and_Learning_Path.md +10 -2
- package/plans/Memory_Optimization.md +3 -3
- package/plans/README.md +63 -0
- package/plans/Roadmap.md +15 -3
- package/plans/asciiMaze_SOLID_split.done.md +130 -0
- package/plans/flappy_bird_SOLID_split.done.md +67 -0
- package/scripts/analyze-trace.ts +590 -0
- package/scripts/assets/theme.css +221 -34
- package/scripts/copy-examples.mjs +9 -5
- package/scripts/export-onnx.mjs +3 -3
- package/scripts/generate-bench-tables.mjs +10 -10
- package/scripts/generate-bench-tables.ts +10 -10
- package/scripts/generate-docs.ts +1415 -449
- package/scripts/render-docs-html.ts +15 -8
- package/src/README.md +127 -222
- package/src/architecture/README.md +117 -184
- package/src/architecture/architect.ts +6 -0
- package/src/architecture/layer/README.md +38 -38
- package/src/architecture/network/README.md +49 -31
- package/src/architecture/network/activate/README.md +77 -77
- package/src/architecture/network/connect/README.md +15 -13
- package/src/architecture/network/deterministic/README.md +7 -7
- package/src/architecture/network/evolve/README.md +44 -44
- package/src/architecture/network/gating/README.md +20 -20
- package/src/architecture/network/genetic/README.md +51 -51
- package/src/architecture/network/mutate/README.md +97 -97
- package/src/architecture/network/network.types.ts +39 -0
- package/src/architecture/network/onnx/README.md +264 -264
- package/src/architecture/network/prune/README.md +39 -39
- package/src/architecture/network/remove/README.md +26 -26
- package/src/architecture/network/serialize/README.md +56 -56
- package/src/architecture/network/serialize/network.serialize.json.utils.ts +1 -0
- package/src/architecture/network/serialize/network.serialize.utils.ts +6 -1
- package/src/architecture/network/serialize/network.serialize.utils.types.ts +1 -1
- package/src/architecture/network/slab/README.md +61 -61
- package/src/architecture/network/standalone/README.md +24 -24
- package/src/architecture/network/stats/README.md +9 -9
- package/src/architecture/network/topology/README.md +46 -46
- package/src/architecture/network/training/README.md +21 -21
- package/src/architecture/network.ts +114 -10
- package/src/methods/README.md +9 -87
- package/src/multithreading/README.md +8 -77
- package/src/multithreading/workers/README.md +2 -2
- package/src/multithreading/workers/browser/README.md +0 -6
- package/src/multithreading/workers/node/README.md +0 -3
- package/src/neat/README.md +623 -568
- package/src/neat/neat.evolve.population.utils.ts +29 -5
- package/src/neat/neat.helpers.ts +16 -0
- package/src/neat/neat.topology-intent.utils.ts +160 -0
- package/src/utils/README.md +18 -18
- package/test/examples/asciiMaze/README.md +59 -59
- package/test/examples/asciiMaze/asciiMaze.e2e.test.ts +14 -9
- package/test/examples/asciiMaze/browser-entry/README.md +196 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.abort.services.ts +95 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.constants.ts +23 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.curriculum.services.ts +115 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.globals.services.ts +106 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.host.services.ts +157 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.services.ts +14 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.ts +129 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.types.ts +120 -0
- package/test/examples/asciiMaze/browser-entry/browser-entry.utils.ts +98 -0
- package/test/examples/asciiMaze/browser-entry.ts +10 -576
- package/test/examples/asciiMaze/dashboardManager/README.md +276 -0
- package/test/examples/asciiMaze/dashboardManager/archive/README.md +16 -0
- package/test/examples/asciiMaze/dashboardManager/archive/dashboardManager.archive.services.ts +267 -0
- package/test/examples/asciiMaze/dashboardManager/dashboardManager.constants.ts +35 -0
- package/test/examples/asciiMaze/dashboardManager/dashboardManager.services.ts +103 -0
- package/test/examples/asciiMaze/dashboardManager/dashboardManager.ts +181 -0
- package/test/examples/asciiMaze/dashboardManager/dashboardManager.types.ts +267 -0
- package/test/examples/asciiMaze/dashboardManager/dashboardManager.utils.ts +254 -0
- package/test/examples/asciiMaze/dashboardManager/live/README.md +14 -0
- package/test/examples/asciiMaze/dashboardManager/live/dashboardManager.live.services.ts +264 -0
- package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +47 -0
- package/test/examples/asciiMaze/dashboardManager/telemetry/dashboardManager.telemetry.services.ts +513 -0
- package/test/examples/asciiMaze/dashboardManager.ts +13 -2335
- package/test/examples/asciiMaze/evolutionEngine/README.md +1058 -0
- package/test/examples/asciiMaze/evolutionEngine/curriculumPhase.ts +90 -0
- package/test/examples/asciiMaze/evolutionEngine/engineState.constants.ts +36 -0
- package/test/examples/asciiMaze/evolutionEngine/engineState.ts +58 -513
- package/test/examples/asciiMaze/evolutionEngine/engineState.types.ts +212 -0
- package/test/examples/asciiMaze/evolutionEngine/engineState.utils.ts +301 -0
- package/test/examples/asciiMaze/evolutionEngine/evolutionEngine.types.ts +445 -0
- package/test/examples/asciiMaze/evolutionEngine/evolutionLoop.ts +81 -50
- package/test/examples/asciiMaze/evolutionEngine/optionsAndSetup.ts +2 -4
- package/test/examples/asciiMaze/evolutionEngine/populationDynamics.ts +17 -33
- package/test/examples/asciiMaze/evolutionEngine/populationPruning.ts +1 -1
- package/test/examples/asciiMaze/evolutionEngine/rngAndTiming.ts +1 -2
- package/test/examples/asciiMaze/evolutionEngine/sampling.ts +1 -1
- package/test/examples/asciiMaze/evolutionEngine/scratchPools.ts +2 -5
- package/test/examples/asciiMaze/evolutionEngine/setupHelpers.ts +30 -37
- package/test/examples/asciiMaze/evolutionEngine/telemetryMetrics.ts +16 -58
- package/test/examples/asciiMaze/evolutionEngine/trainingWarmStart.ts +2 -2
- package/test/examples/asciiMaze/evolutionEngine.ts +55 -55
- package/test/examples/asciiMaze/fitness.ts +2 -2
- package/test/examples/asciiMaze/fitness.types.ts +65 -0
- package/test/examples/asciiMaze/interfaces.ts +64 -1352
- package/test/examples/asciiMaze/mazeMovement/README.md +356 -0
- package/test/examples/asciiMaze/mazeMovement/finalization/README.md +49 -0
- package/test/examples/asciiMaze/mazeMovement/finalization/mazeMovement.finalization.ts +138 -0
- package/test/examples/asciiMaze/mazeMovement/mazeMovement.constants.ts +101 -0
- package/test/examples/asciiMaze/mazeMovement/mazeMovement.services.ts +230 -0
- package/test/examples/asciiMaze/mazeMovement/mazeMovement.ts +299 -0
- package/test/examples/asciiMaze/mazeMovement/mazeMovement.types.ts +185 -0
- package/test/examples/asciiMaze/mazeMovement/mazeMovement.utils.ts +153 -0
- package/test/examples/asciiMaze/mazeMovement/policy/README.md +91 -0
- package/test/examples/asciiMaze/mazeMovement/policy/mazeMovement.policy.ts +467 -0
- package/test/examples/asciiMaze/mazeMovement/runtime/README.md +95 -0
- package/test/examples/asciiMaze/mazeMovement/runtime/mazeMovement.runtime.ts +354 -0
- package/test/examples/asciiMaze/mazeMovement/shaping/README.md +124 -0
- package/test/examples/asciiMaze/mazeMovement/shaping/mazeMovement.shaping.ts +459 -0
- package/test/examples/asciiMaze/mazeMovement.ts +12 -2978
- package/test/examples/flappy_bird/README.md +193 -88
- package/test/examples/flappy_bird/browser-entry/README.md +1441 -0
- package/test/examples/flappy_bird/browser-entry/browser-entry.host.utils.ts +4 -324
- package/test/examples/flappy_bird/browser-entry/browser-entry.network-view.utils.ts +9 -396
- package/test/examples/flappy_bird/browser-entry/browser-entry.playback.utils.ts +6 -714
- package/test/examples/flappy_bird/browser-entry/browser-entry.render.types.ts +26 -3
- package/test/examples/flappy_bird/browser-entry/browser-entry.runtime.types.ts +16 -1
- package/test/examples/flappy_bird/browser-entry/browser-entry.simulation.types.ts +39 -5
- package/test/examples/flappy_bird/browser-entry/browser-entry.spawn.utils.ts +11 -31
- package/test/examples/flappy_bird/browser-entry/browser-entry.stats.types.ts +32 -4
- package/test/examples/flappy_bird/browser-entry/browser-entry.ts +11 -0
- package/test/examples/flappy_bird/browser-entry/browser-entry.types.ts +8 -0
- package/test/examples/flappy_bird/browser-entry/browser-entry.visualization.types.ts +50 -7
- package/test/examples/flappy_bird/browser-entry/browser-entry.visualization.utils.ts +21 -893
- package/test/examples/flappy_bird/browser-entry/browser-entry.worker.types.ts +91 -10
- package/test/examples/flappy_bird/browser-entry/host/README.md +318 -0
- package/test/examples/flappy_bird/browser-entry/host/host.canvas.service.ts +16 -0
- package/test/examples/flappy_bird/browser-entry/host/host.constants.ts +20 -0
- package/test/examples/flappy_bird/browser-entry/host/host.dom.service.ts +10 -0
- package/test/examples/flappy_bird/browser-entry/host/host.resize.service.ts +1 -295
- package/test/examples/flappy_bird/browser-entry/host/host.stats.service.ts +14 -0
- package/test/examples/flappy_bird/browser-entry/host/host.ts +592 -6
- package/test/examples/flappy_bird/browser-entry/host/host.types.ts +13 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/README.md +309 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.constants.ts +47 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.services.ts +392 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.ts +132 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.types.ts +92 -0
- package/test/examples/flappy_bird/browser-entry/host/resize/host.resize.service.utils.ts +272 -0
- package/test/examples/flappy_bird/browser-entry/network-view/README.md +389 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.draw.service.ts +13 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.labels.utils.ts +12 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.layout.utils.ts +14 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.topology.utils.ts +267 -0
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.ts +823 -7
- package/test/examples/flappy_bird/browser-entry/network-view/network-view.types.ts +11 -0
- package/test/examples/flappy_bird/browser-entry/playback/README.md +845 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/README.md +355 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +1068 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.batch.services.ts +64 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.cache.services.ts +207 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.constants.ts +197 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.batch.utils.ts +114 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.layout.utils.test.ts +96 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.layout.utils.ts +204 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.services.ts +49 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.geometry.utils.ts +313 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.layer.services.ts +81 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.math.utils.test.ts +33 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.math.utils.ts +201 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.selection.utils.ts +171 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.timing.utils.ts +124 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.utils.test.ts +279 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.pulse.utils.ts +132 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.scene.services.ts +26 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.services.ts +65 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.ts +48 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.types.ts +342 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/playback.background.ground-grid.utils.ts +10 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.cache.services.ts +96 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.constants.ts +127 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.draw.services.ts +184 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.scene.services.ts +64 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.services.ts +6 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.ts +53 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.types.ts +105 -0
- package/test/examples/flappy_bird/browser-entry/playback/background/playback.background.utils.ts +100 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +541 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.bird.utils.ts +180 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.canvas.services.ts +77 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.entity.services.ts +167 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.scene.services.ts +57 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.service.test.ts +176 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.service.ts +113 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.services.ts +35 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.trail.utils.ts +248 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.types.ts +103 -0
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/playback.frame-render.utils.ts +11 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.constants.ts +1 -1
- package/test/examples/flappy_bird/browser-entry/playback/playback.frame-render.service.ts +10 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.iteration.services.ts +192 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.loop.service.ts +12 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.orchestration.types.ts +78 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.render.pipe-outline.service.ts +128 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.render.service.ts +1 -116
- package/test/examples/flappy_bird/browser-entry/playback/playback.session.services.ts +184 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.snapshot.utils.test.ts +121 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.snapshot.utils.ts +8 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.layer.services.ts +36 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.service.ts +11 -128
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.services.ts +268 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.types.ts +91 -0
- package/test/examples/flappy_bird/browser-entry/playback/playback.starfield.utils.ts +11 -4
- package/test/examples/flappy_bird/browser-entry/playback/playback.trail.utils.ts +9 -86
- package/test/examples/flappy_bird/browser-entry/playback/playback.ts +75 -7
- package/test/examples/flappy_bird/browser-entry/playback/playback.types.ts +12 -9
- package/test/examples/flappy_bird/browser-entry/playback/playback.worker-channel.utils.ts +11 -123
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/README.md +55 -0
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/playback.snapshot.services.ts +103 -0
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/playback.snapshot.summary.utils.test.ts +45 -0
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/playback.snapshot.summary.utils.ts +28 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/README.md +95 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.history.services.test.ts +35 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.history.services.ts +64 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.opacity.utils.test.ts +37 -0
- package/test/examples/flappy_bird/browser-entry/playback/trail/playback.trail.opacity.utils.ts +74 -0
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/README.md +71 -0
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/playback.worker-channel.request.services.ts +45 -0
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/playback.worker-channel.summary.services.ts +74 -0
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/playback.worker-channel.types.ts +53 -0
- package/test/examples/flappy_bird/browser-entry/runtime/README.md +304 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.browser-globals.service.ts +15 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.errors.ts +17 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.evolution-launch.service.ts +56 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.evolution-loop.service.ts +19 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.lifecycle.service.ts +96 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.startup.service.ts +92 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.telemetry.service.ts +24 -0
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.ts +31 -121
- package/test/examples/flappy_bird/browser-entry/runtime/runtime.types.ts +65 -0
- package/test/examples/flappy_bird/browser-entry/visualization/README.md +568 -0
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.colors.utils.ts +26 -0
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.constants.ts +110 -0
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.draw.service.ts +979 -19
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.legend.utils.ts +157 -3
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.topology.utils.ts +13 -27
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.ts +7 -20
- package/test/examples/flappy_bird/browser-entry/visualization/visualization.types.ts +14 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +238 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.errors.ts +11 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.generation.service.ts +12 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.playback.service.test.ts +143 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.playback.service.ts +140 -14
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.request.service.ts +27 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.ts +8 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.types.ts +23 -0
- package/test/examples/flappy_bird/browser-entry/worker-channel/worker-channel.url.service.ts +5 -0
- package/test/examples/flappy_bird/constants/README.md +1163 -0
- package/test/examples/flappy_bird/constants/constants.birds.ts +16 -38
- package/test/examples/flappy_bird/constants/constants.difficulty.ts +21 -0
- package/test/examples/flappy_bird/constants/constants.network-view.ts +24 -0
- package/test/examples/flappy_bird/constants/constants.network.ts +1 -1
- package/test/examples/flappy_bird/constants/constants.observation.ts +7 -0
- package/test/examples/flappy_bird/constants/constants.palette.ts +9 -2
- package/test/examples/flappy_bird/constants/constants.physics.ts +9 -0
- package/test/examples/flappy_bird/constants/constants.pipe-render.ts +3 -0
- package/test/examples/flappy_bird/constants/constants.pipes.ts +22 -3
- package/test/examples/flappy_bird/constants/constants.runtime.ts +28 -4
- package/test/examples/flappy_bird/constants/constants.starfield.ts +78 -3
- package/test/examples/flappy_bird/constants/constants.ts +6 -0
- package/test/examples/flappy_bird/environment/README.md +182 -0
- package/test/examples/flappy_bird/environment/environment.collision.utils.ts +7 -0
- package/test/examples/flappy_bird/environment/environment.constants.ts +16 -3
- package/test/examples/flappy_bird/environment/environment.observation.utils.ts +12 -19
- package/test/examples/flappy_bird/environment/environment.state.service.ts +10 -0
- package/test/examples/flappy_bird/environment/environment.step.service.ts +15 -66
- package/test/examples/flappy_bird/environment/environment.types.ts +14 -0
- package/test/examples/flappy_bird/evaluation/README.md +155 -0
- package/test/examples/flappy_bird/evaluation/evaluation.constants.ts +23 -4
- package/test/examples/flappy_bird/evaluation/evaluation.fitness.utils.ts +16 -1
- package/test/examples/flappy_bird/evaluation/evaluation.rollout.service.ts +7 -374
- package/test/examples/flappy_bird/evaluation/evaluation.seed.utils.ts +4 -0
- package/test/examples/flappy_bird/evaluation/evaluation.types.ts +18 -2
- package/test/examples/flappy_bird/evaluation/rollout/README.md +355 -0
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.constants.ts +38 -0
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.service.ts +71 -0
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.services.ts +338 -0
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.types.ts +69 -0
- package/test/examples/flappy_bird/evaluation/rollout/evaluation.rollout.utils.ts +399 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/README.md +845 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.constants.ts +49 -7
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.errors.ts +34 -3
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.evolution.service.ts +22 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.playback.service.ts +62 -26
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.protocol.service.ts +27 -1
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.runtime.service.ts +23 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.frame.service.ts +378 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.types.ts +22 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.simulation.utils.ts +20 -203
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.snapshot.utils.test.ts +94 -0
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.snapshot.utils.ts +78 -13
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.ts +235 -344
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.types.ts +170 -22
- package/test/examples/flappy_bird/flappy-evolution-worker/flappy-evolution-worker.warm-start.service.ts +314 -0
- package/test/examples/flappy_bird/flappy.simulation.shared.utils.ts +17 -0
- package/test/examples/flappy_bird/flappyEnvironment.ts +21 -0
- package/test/examples/flappy_bird/flappyEvaluation.ts +12 -0
- package/test/examples/flappy_bird/flappyEvolution.worker.ts +7 -0
- package/test/examples/flappy_bird/index.ts +8 -2
- package/test/examples/flappy_bird/rng.ts +10 -0
- package/test/examples/flappy_bird/simulation-shared/README.md +518 -0
- package/test/examples/flappy_bird/simulation-shared/observation/README.md +255 -0
- package/test/examples/flappy_bird/simulation-shared/observation/observation.features.utils.ts +339 -0
- package/test/examples/flappy_bird/simulation-shared/observation/observation.ts +19 -0
- package/test/examples/flappy_bird/simulation-shared/observation/observation.vector.utils.ts +81 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.constants.ts +3 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.control.utils.ts +6 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.difficulty.utils.ts +9 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.errors.ts +10 -1
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.memory.utils.ts +18 -0
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.observation.utils.ts +7 -402
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.spawn.utils.ts +36 -6
- package/test/examples/flappy_bird/{evaluation/evaluation.statistics.utils.ts → simulation-shared/simulation-shared.statistics.utils.ts} +30 -9
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.types.ts +38 -5
- package/test/examples/flappy_bird/trainFlappyBird.ts +13 -0
- package/test/examples/flappy_bird/trainer/README.md +676 -0
- package/test/examples/flappy_bird/trainer/evaluation/README.md +253 -0
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.constants.ts +15 -0
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.services.ts +86 -0
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.ts +187 -0
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.types.ts +32 -0
- package/test/examples/flappy_bird/trainer/evaluation/trainer.evaluation.service.utils.ts +182 -0
- package/test/examples/flappy_bird/trainer/trainer.evaluation.service.ts +13 -0
- package/test/examples/flappy_bird/trainer/trainer.fitness.service.ts +23 -1
- package/test/examples/flappy_bird/trainer/trainer.loop.service.ts +17 -1
- package/test/examples/flappy_bird/trainer/trainer.report.service.services.ts +181 -0
- package/test/examples/flappy_bird/trainer/trainer.report.service.ts +136 -0
- package/test/examples/flappy_bird/trainer/trainer.selection.utils.ts +89 -0
- package/test/examples/flappy_bird/trainer/trainer.setup.service.ts +22 -0
- package/test/examples/flappy_bird/trainer/trainer.signals.service.ts +8 -0
- package/test/examples/flappy_bird/trainer/trainer.ts +38 -553
- package/test/examples/flappy_bird/trainer/trainer.types.ts +44 -7
- package/test/neat/neat.topology-intent.test.ts +129 -0
- package/test/network/network.topology-intent.test.ts +44 -0
- package/test/examples/flappy_bird/browser-entry/browser-entry.utils.ts +0 -12
- package/test/examples/flappy_bird/environment/environment.ts +0 -7
- package/test/examples/flappy_bird/evaluation/evaluation.ts +0 -7
- package/test/examples/flappy_bird/simulation-shared/simulation-shared.ts +0 -15
- package/test/examples/flappy_bird/trainer/trainer.statistics.utils.ts +0 -78
|
@@ -0,0 +1,676 @@
|
|
|
1
|
+
# trainer
|
|
2
|
+
|
|
3
|
+
## trainer/trainer.types.ts
|
|
4
|
+
|
|
5
|
+
### FlappyGenerationEvaluationPlan
|
|
6
|
+
|
|
7
|
+
Generation-level rollout plans for staged evaluation.
|
|
8
|
+
|
|
9
|
+
Each generation resolves one plan that answers three questions: how strong is
|
|
10
|
+
the current mutation schedule, which shared seeds belong to each stage, and
|
|
11
|
+
what rollout budget each stage is allowed to spend.
|
|
12
|
+
|
|
13
|
+
### FlappyGenerationReport
|
|
14
|
+
|
|
15
|
+
Compact generation report used for training logs.
|
|
16
|
+
|
|
17
|
+
The report is shaped for longitudinal monitoring rather than raw storage. It
|
|
18
|
+
collects the distribution and best-run details needed to judge whether a
|
|
19
|
+
generation improved robustly.
|
|
20
|
+
|
|
21
|
+
### FlappyTrainerNeatController
|
|
22
|
+
|
|
23
|
+
Local typed view for population-level fitness mode used by this trainer.
|
|
24
|
+
|
|
25
|
+
This is intentionally narrower than the full `Neat` runtime API. The trainer
|
|
26
|
+
documents only the methods and mutable options it actually depends on.
|
|
27
|
+
|
|
28
|
+
### FlappyTrainerNetwork
|
|
29
|
+
|
|
30
|
+
Network shape expected by the Flappy trainer.
|
|
31
|
+
|
|
32
|
+
The trainer only needs the evaluation-facing subset of a full network plus an
|
|
33
|
+
optional score field used by staged ranking helpers.
|
|
34
|
+
|
|
35
|
+
### FlappyTrainerRuntimeState
|
|
36
|
+
|
|
37
|
+
Trainer runtime state shared by orchestration helpers.
|
|
38
|
+
|
|
39
|
+
Only mutable cross-step values live here: stop intent and the most recent
|
|
40
|
+
generation report.
|
|
41
|
+
|
|
42
|
+
### FlappyTrainerSetup
|
|
43
|
+
|
|
44
|
+
Immutable trainer setup values.
|
|
45
|
+
|
|
46
|
+
These values define the static training shape before runtime state and staged
|
|
47
|
+
evaluation are attached.
|
|
48
|
+
|
|
49
|
+
### ScoredGenomeEntry
|
|
50
|
+
|
|
51
|
+
Score carrier used for deterministic ordering helpers.
|
|
52
|
+
|
|
53
|
+
Wrapping a genome together with its score makes ranking utilities easier to
|
|
54
|
+
write and keeps tie-breaking logic explicit.
|
|
55
|
+
|
|
56
|
+
## trainer/trainer.ts
|
|
57
|
+
|
|
58
|
+
### handleTrainerMainError
|
|
59
|
+
|
|
60
|
+
`(error: unknown) => void`
|
|
61
|
+
|
|
62
|
+
Handles fatal `main` rejection path.
|
|
63
|
+
|
|
64
|
+
The trainer keeps this boundary small so unexpected failures are formatted in
|
|
65
|
+
one consistent place before reaching the CLI.
|
|
66
|
+
|
|
67
|
+
Parameters:
|
|
68
|
+
- `error` - - Unknown rejection reason from trainer execution.
|
|
69
|
+
|
|
70
|
+
Returns: Nothing.
|
|
71
|
+
|
|
72
|
+
### isDirectTrainerExecution
|
|
73
|
+
|
|
74
|
+
`() => boolean`
|
|
75
|
+
|
|
76
|
+
Resolves whether this module is the direct Node entrypoint.
|
|
77
|
+
|
|
78
|
+
Returns: `true` when Node launched this file directly.
|
|
79
|
+
|
|
80
|
+
### runTrainer
|
|
81
|
+
|
|
82
|
+
`() => Promise<void>`
|
|
83
|
+
|
|
84
|
+
Flappy Bird neuroevolution demo.
|
|
85
|
+
|
|
86
|
+
This script runs a small NEAT population where each genome controls a bird.
|
|
87
|
+
The network sees a temporal observation (38 floats) and outputs two competing
|
|
88
|
+
action scores (`no flap` vs `flap`).
|
|
89
|
+
|
|
90
|
+
Educational note:
|
|
91
|
+
The trainer is intentionally orchestration-first. It wires together setup,
|
|
92
|
+
staged population evaluation, the outer evolution loop, graceful shutdown,
|
|
93
|
+
and compact generation logging without burying those responsibilities inside a
|
|
94
|
+
single monolithic file.
|
|
95
|
+
|
|
96
|
+
The mutation schedule gradually cools over early generations. If you want a
|
|
97
|
+
conceptual parallel, the Wikipedia article on "simulated annealing" is a
|
|
98
|
+
useful mental model for why early exploration is broader and later updates are
|
|
99
|
+
more conservative.
|
|
100
|
+
|
|
101
|
+
Run (from repo root):
|
|
102
|
+
`npx ts-node test/examples/flappy_bird/trainFlappyBird.ts`
|
|
103
|
+
|
|
104
|
+
## trainer/trainer.errors.ts
|
|
105
|
+
|
|
106
|
+
### trainer.errors
|
|
107
|
+
|
|
108
|
+
Prefix used when rendering unexpected trainer failures to stderr.
|
|
109
|
+
|
|
110
|
+
### FLAPPY_TRAINER_UNEXPECTED_ERROR_PREFIX
|
|
111
|
+
|
|
112
|
+
### formatTrainerErrorMessage
|
|
113
|
+
|
|
114
|
+
`(error: unknown) => string`
|
|
115
|
+
|
|
116
|
+
Formats unknown trainer failures into a stable human-readable message.
|
|
117
|
+
|
|
118
|
+
Parameters:
|
|
119
|
+
- `error` - - Unknown rejection reason from trainer execution.
|
|
120
|
+
|
|
121
|
+
Returns: Formatted error string for CLI logging.
|
|
122
|
+
|
|
123
|
+
## trainer/trainer.constants.ts
|
|
124
|
+
|
|
125
|
+
### FLAPPY_TRAINER_DEFAULT_ELITISM_COUNT
|
|
126
|
+
|
|
127
|
+
### FLAPPY_TRAINER_DEFAULT_POPULATION_SIZE
|
|
128
|
+
|
|
129
|
+
### FLAPPY_TRAINER_DEFAULT_RNG_SEED
|
|
130
|
+
|
|
131
|
+
### FLAPPY_TRAINER_DUMMY_FLAP_OUTPUT
|
|
132
|
+
|
|
133
|
+
### FLAPPY_TRAINER_DUMMY_NETWORK_ID
|
|
134
|
+
|
|
135
|
+
### FLAPPY_TRAINER_DUMMY_NO_FLAP_OUTPUT
|
|
136
|
+
|
|
137
|
+
### FLAPPY_TRAINER_FRAME_PRIMARY_BASE_SCORE
|
|
138
|
+
|
|
139
|
+
### FLAPPY_TRAINER_FRAME_PRIMARY_PIPE_WEIGHT
|
|
140
|
+
|
|
141
|
+
### FLAPPY_TRAINER_FRAME_PRIMARY_SURVIVAL_WEIGHT
|
|
142
|
+
|
|
143
|
+
### FLAPPY_TRAINER_FRAME_STABILITY_STDDEV_WEIGHT
|
|
144
|
+
|
|
145
|
+
### FLAPPY_TRAINER_FULL_PASS_ELITISM_MULTIPLIER
|
|
146
|
+
|
|
147
|
+
### FLAPPY_TRAINER_FULL_PASS_POPULATION_FRACTION
|
|
148
|
+
|
|
149
|
+
### FLAPPY_TRAINER_FULL_ROLLOUT_EARLY_TERMINATION_CONSECUTIVE_FRAMES
|
|
150
|
+
|
|
151
|
+
### FLAPPY_TRAINER_FULL_ROLLOUT_EARLY_TERMINATION_GRACE_FRAMES
|
|
152
|
+
|
|
153
|
+
### FLAPPY_TRAINER_FULL_ROLLOUT_PIPE_PROGRESS_TARGET
|
|
154
|
+
|
|
155
|
+
### FLAPPY_TRAINER_LOG_PARTS_DELIMITER
|
|
156
|
+
|
|
157
|
+
### FLAPPY_TRAINER_MUTATION_AMOUNT_END
|
|
158
|
+
|
|
159
|
+
### FLAPPY_TRAINER_MUTATION_AMOUNT_START
|
|
160
|
+
|
|
161
|
+
### FLAPPY_TRAINER_MUTATION_ANNEAL_GENERATIONS
|
|
162
|
+
|
|
163
|
+
### FLAPPY_TRAINER_MUTATION_RATE_END
|
|
164
|
+
|
|
165
|
+
### FLAPPY_TRAINER_MUTATION_RATE_START
|
|
166
|
+
|
|
167
|
+
### FLAPPY_TRAINER_NEAT_INITIAL_MUTATION_AMOUNT
|
|
168
|
+
|
|
169
|
+
### FLAPPY_TRAINER_NEAT_INITIAL_MUTATION_RATE
|
|
170
|
+
|
|
171
|
+
### FLAPPY_TRAINER_PIPE_FALLBACK_PIPE_WEIGHT
|
|
172
|
+
|
|
173
|
+
### FLAPPY_TRAINER_PIPE_FILTER_TOLERANCE
|
|
174
|
+
|
|
175
|
+
### FLAPPY_TRAINER_QUICK_ROLLOUT_EARLY_TERMINATION_CONSECUTIVE_FRAMES
|
|
176
|
+
|
|
177
|
+
### FLAPPY_TRAINER_QUICK_ROLLOUT_EARLY_TERMINATION_GRACE_FRAMES
|
|
178
|
+
|
|
179
|
+
### FLAPPY_TRAINER_QUICK_ROLLOUT_MAX_FRAMES
|
|
180
|
+
|
|
181
|
+
### FLAPPY_TRAINER_QUICK_ROLLOUT_PIPE_PROGRESS_TARGET
|
|
182
|
+
|
|
183
|
+
### FLAPPY_TRAINER_REEVALUATION_MIN_CANDIDATE_COUNT
|
|
184
|
+
|
|
185
|
+
### FLAPPY_TRAINER_SCORE_MEDIAN_PERCENTILE
|
|
186
|
+
|
|
187
|
+
### FLAPPY_TRAINER_SCORE_P90_PERCENTILE
|
|
188
|
+
|
|
189
|
+
### FLAPPY_TRAINER_STOPPED_MESSAGE
|
|
190
|
+
|
|
191
|
+
## trainer/trainer.loop.service.ts
|
|
192
|
+
|
|
193
|
+
### applyMutationSchedule
|
|
194
|
+
|
|
195
|
+
`(neatController: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNeatController, mutationSchedule: import("test/examples/flappy_bird/trainer/trainer.evaluation-plan.utils").FlappyMutationSchedule) => void`
|
|
196
|
+
|
|
197
|
+
Applies mutation schedule values to the NEAT controller options.
|
|
198
|
+
|
|
199
|
+
The schedule is resolved outside this helper so the loop can read as a clean
|
|
200
|
+
"resolve -> apply -> evolve -> report" flow.
|
|
201
|
+
|
|
202
|
+
Parameters:
|
|
203
|
+
- `neatController` - - Trainer NEAT controller.
|
|
204
|
+
- `mutationSchedule` - - Mutation schedule for current generation.
|
|
205
|
+
|
|
206
|
+
Returns: Nothing.
|
|
207
|
+
|
|
208
|
+
### LogGenerationSummaryCallback
|
|
209
|
+
|
|
210
|
+
`(generationLabel: number, mutationSchedule: import("test/examples/flappy_bird/trainer/trainer.evaluation-plan.utils").FlappyMutationSchedule, report: import("test/examples/flappy_bird/trainer/trainer.types").FlappyGenerationReport | undefined, fittestGenome: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork, fallbackEpisode: import("test/examples/flappy_bird/evaluation/evaluation.types").FlappyEpisodeResult) => void`
|
|
211
|
+
|
|
212
|
+
Callback signature for one-line generation logging.
|
|
213
|
+
|
|
214
|
+
The loop owns evolution cadence, while the callback owns presentation.
|
|
215
|
+
Keeping those concerns separate makes it easy to reuse the loop with richer
|
|
216
|
+
reporting later.
|
|
217
|
+
|
|
218
|
+
### runTrainerEvolutionLoop
|
|
219
|
+
|
|
220
|
+
`(neatController: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNeatController, trainerRuntimeState: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerRuntimeState, logGenerationSummary: import("test/examples/flappy_bird/trainer/trainer.loop.service").LogGenerationSummaryCallback) => Promise<void>`
|
|
221
|
+
|
|
222
|
+
Runs the outer evolution loop until runtime stop is requested.
|
|
223
|
+
|
|
224
|
+
Educational note:
|
|
225
|
+
This is the trainer's main heartbeat: resolve the current mutation schedule,
|
|
226
|
+
evolve one generation, run a representative fallback rollout for logging, and
|
|
227
|
+
emit a compact summary.
|
|
228
|
+
|
|
229
|
+
Parameters:
|
|
230
|
+
- `neatController` - - Trainer NEAT controller.
|
|
231
|
+
- `trainerRuntimeState` - - Mutable trainer runtime state.
|
|
232
|
+
- `logGenerationSummary` - - Callback that emits compact generation logs.
|
|
233
|
+
|
|
234
|
+
Returns: Promise resolved when the trainer has been stopped.
|
|
235
|
+
|
|
236
|
+
## trainer/trainer.setup.service.ts
|
|
237
|
+
|
|
238
|
+
### createNeatController
|
|
239
|
+
|
|
240
|
+
`(trainerSetup: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerSetup) => import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNeatController`
|
|
241
|
+
|
|
242
|
+
Builds the NEAT controller with baseline options.
|
|
243
|
+
|
|
244
|
+
Educational note:
|
|
245
|
+
The trainer enables population-level fitness mode because the quality of a
|
|
246
|
+
Flappy policy depends on fair comparison across shared seed batches, not on a
|
|
247
|
+
one-network-at-a-time scoring callback.
|
|
248
|
+
|
|
249
|
+
Parameters:
|
|
250
|
+
- `trainerSetup` - - Immutable trainer setup values.
|
|
251
|
+
|
|
252
|
+
Returns: Typed NEAT controller used by the trainer loop.
|
|
253
|
+
|
|
254
|
+
### createTrainerRuntimeState
|
|
255
|
+
|
|
256
|
+
`() => import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerRuntimeState`
|
|
257
|
+
|
|
258
|
+
Creates mutable runtime state container.
|
|
259
|
+
|
|
260
|
+
The runtime state is intentionally tiny. It only tracks stop intent and the
|
|
261
|
+
latest report so the outer loop can remain easy to reason about.
|
|
262
|
+
|
|
263
|
+
Returns: Fresh runtime state used by loop orchestration.
|
|
264
|
+
|
|
265
|
+
### createTrainerSetup
|
|
266
|
+
|
|
267
|
+
`() => import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerSetup`
|
|
268
|
+
|
|
269
|
+
Creates immutable setup values for the trainer.
|
|
270
|
+
|
|
271
|
+
Educational note:
|
|
272
|
+
The setup object freezes the core training shape up front: input width,
|
|
273
|
+
output width, population size, and elitism count. Centralizing those values
|
|
274
|
+
makes the rest of the trainer read as policy rather than configuration noise.
|
|
275
|
+
|
|
276
|
+
Returns: Default trainer setup values used for NEAT configuration.
|
|
277
|
+
|
|
278
|
+
### resolveNoopFitness
|
|
279
|
+
|
|
280
|
+
`() => number`
|
|
281
|
+
|
|
282
|
+
Trivial baseline fitness used before attaching population evaluator.
|
|
283
|
+
|
|
284
|
+
This placeholder keeps controller construction simple. The real staged
|
|
285
|
+
evaluator is attached immediately afterward by the fitness service.
|
|
286
|
+
|
|
287
|
+
Returns: Constant zero fitness.
|
|
288
|
+
|
|
289
|
+
## trainer/trainer.report.service.ts
|
|
290
|
+
|
|
291
|
+
### buildGenerationReport
|
|
292
|
+
|
|
293
|
+
`(population: readonly import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork[], aggregateByGenome: ReadonlyMap<import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork, import("test/examples/flappy_bird/evaluation/evaluation.types").FlappySeedBatchEvaluation>, generationEvaluationPlan: import("test/examples/flappy_bird/trainer/trainer.types").FlappyGenerationEvaluationPlan) => import("test/examples/flappy_bird/trainer/trainer.types").FlappyGenerationReport`
|
|
294
|
+
|
|
295
|
+
Builds a compact report for the current generation.
|
|
296
|
+
|
|
297
|
+
Educational note:
|
|
298
|
+
The trainer logs more than a single best score because single-number progress
|
|
299
|
+
can hide instability. Mean, median, $p90$, and standard deviation reveal
|
|
300
|
+
whether a generation is broadly improving or whether one lucky genome is
|
|
301
|
+
masking a weak population.
|
|
302
|
+
|
|
303
|
+
Parameters:
|
|
304
|
+
- `population` - - Current population.
|
|
305
|
+
- `aggregateByGenome` - - Aggregate evaluation results keyed by genome.
|
|
306
|
+
- `generationEvaluationPlan` - - Per-generation staged evaluation plan.
|
|
307
|
+
|
|
308
|
+
Returns: Aggregated generation report.
|
|
309
|
+
|
|
310
|
+
### logGenerationSummary
|
|
311
|
+
|
|
312
|
+
`(generationLabel: number, mutationSchedule: import("test/examples/flappy_bird/trainer/trainer.evaluation-plan.utils").FlappyMutationSchedule, report: import("test/examples/flappy_bird/trainer/trainer.types").FlappyGenerationReport | undefined, fittestGenome: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork, fallbackEpisode: import("test/examples/flappy_bird/evaluation/evaluation.types").FlappyEpisodeResult) => void`
|
|
313
|
+
|
|
314
|
+
Emits one compact generation log line.
|
|
315
|
+
|
|
316
|
+
The emitted line is designed for long-running terminal sessions: dense enough
|
|
317
|
+
to be useful, but stable enough that humans can visually scan progress over
|
|
318
|
+
hundreds of generations.
|
|
319
|
+
|
|
320
|
+
Parameters:
|
|
321
|
+
- `generationLabel` - - Current generation label.
|
|
322
|
+
- `mutationSchedule` - - Active mutation schedule.
|
|
323
|
+
- `report` - - Optional aggregated generation report.
|
|
324
|
+
- `fittestGenome` - - Fittest genome returned by the NEAT controller.
|
|
325
|
+
- `fallbackEpisode` - - Fallback representative rollout episode.
|
|
326
|
+
|
|
327
|
+
Returns: Nothing.
|
|
328
|
+
|
|
329
|
+
## trainer/trainer.fitness.service.ts
|
|
330
|
+
|
|
331
|
+
### attachPopulationFitnessEvaluator
|
|
332
|
+
|
|
333
|
+
`(neatController: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNeatController, trainerRuntimeState: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerRuntimeState, elitismCount: number, dependencies: import("test/examples/flappy_bird/trainer/trainer.fitness.service").TrainerFitnessServiceDependencies) => void`
|
|
334
|
+
|
|
335
|
+
Attaches population-level staged evaluator to the NEAT controller.
|
|
336
|
+
|
|
337
|
+
This is the moment where the generic NEAT controller becomes a
|
|
338
|
+
Flappy-specific trainer: a plain controller receives the staged population
|
|
339
|
+
evaluator that understands shared-seed screening, full-pass scoring, and
|
|
340
|
+
reevaluation.
|
|
341
|
+
|
|
342
|
+
Parameters:
|
|
343
|
+
- `neatController` - - Trainer NEAT controller.
|
|
344
|
+
- `trainerRuntimeState` - - Mutable trainer runtime state.
|
|
345
|
+
- `elitismCount` - - Number of elite genomes preserved each generation.
|
|
346
|
+
- `dependencies` - - Pure/impure helper callbacks used by the evaluator.
|
|
347
|
+
|
|
348
|
+
Returns: Nothing.
|
|
349
|
+
|
|
350
|
+
### createPopulationFitnessEvaluator
|
|
351
|
+
|
|
352
|
+
`(neatController: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNeatController, trainerRuntimeState: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerRuntimeState, elitismCount: number, dependencies: import("test/examples/flappy_bird/trainer/trainer.fitness.service").TrainerFitnessServiceDependencies) => (population: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork[]) => Promise<void>`
|
|
353
|
+
|
|
354
|
+
Creates the asynchronous population fitness evaluator.
|
|
355
|
+
|
|
356
|
+
Educational note:
|
|
357
|
+
The trainer uses staged evaluation to reduce luck. Genomes are first screened
|
|
358
|
+
quickly, then the most promising ones receive more expensive evaluation, and
|
|
359
|
+
the best candidates are reevaluated again for robustness.
|
|
360
|
+
|
|
361
|
+
That strategy is closer to tournament design than to naive one-shot scoring:
|
|
362
|
+
the same generation budget is spent unevenly so weak genomes are filtered out
|
|
363
|
+
early and strong genomes are compared more carefully.
|
|
364
|
+
|
|
365
|
+
Parameters:
|
|
366
|
+
- `neatController` - - Trainer NEAT controller.
|
|
367
|
+
- `trainerRuntimeState` - - Mutable trainer runtime state.
|
|
368
|
+
- `elitismCount` - - Number of elite genomes preserved each generation.
|
|
369
|
+
- `dependencies` - - Pure/impure helper callbacks used by the evaluator.
|
|
370
|
+
|
|
371
|
+
Returns: Evaluator callback assigned to `neatController.fitness`.
|
|
372
|
+
|
|
373
|
+
### TrainerFitnessServiceDependencies
|
|
374
|
+
|
|
375
|
+
Callback dependencies required by the trainer fitness orchestration service.
|
|
376
|
+
|
|
377
|
+
Educational note:
|
|
378
|
+
The trainer evaluates whole populations in staged passes. This dependency bag
|
|
379
|
+
keeps the top-level service declarative and makes each stage independently
|
|
380
|
+
replaceable without rewriting the orchestration logic.
|
|
381
|
+
|
|
382
|
+
## trainer/trainer.signals.service.ts
|
|
383
|
+
|
|
384
|
+
### handleTrainerStopSignal
|
|
385
|
+
|
|
386
|
+
`(trainerRuntimeState: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerRuntimeState) => void`
|
|
387
|
+
|
|
388
|
+
Handles one stop signal update.
|
|
389
|
+
|
|
390
|
+
Parameters:
|
|
391
|
+
- `trainerRuntimeState` - - Mutable trainer runtime state.
|
|
392
|
+
|
|
393
|
+
Returns: Nothing.
|
|
394
|
+
|
|
395
|
+
### registerTrainerStopSignals
|
|
396
|
+
|
|
397
|
+
`(trainerRuntimeState: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerRuntimeState) => void`
|
|
398
|
+
|
|
399
|
+
Registers graceful stop signal handlers.
|
|
400
|
+
|
|
401
|
+
Educational note:
|
|
402
|
+
Long-running evolutionary runs should stop cleanly when the user presses
|
|
403
|
+
`Ctrl+C`. This service flips runtime intent instead of abruptly tearing down
|
|
404
|
+
the process mid-generation.
|
|
405
|
+
|
|
406
|
+
Parameters:
|
|
407
|
+
- `trainerRuntimeState` - - Mutable trainer runtime state.
|
|
408
|
+
|
|
409
|
+
Returns: Nothing.
|
|
410
|
+
|
|
411
|
+
## trainer/trainer.evaluation.service.ts
|
|
412
|
+
|
|
413
|
+
### trainer.evaluation.service
|
|
414
|
+
|
|
415
|
+
Trainer evaluation compatibility facade.
|
|
416
|
+
|
|
417
|
+
The staged population-evaluation implementation now lives in the dedicated
|
|
418
|
+
`trainer/evaluation/` submodule so orchestration, scoring helpers, internal
|
|
419
|
+
contracts, and sub-services can evolve behind a focused boundary.
|
|
420
|
+
|
|
421
|
+
### commitPopulationScores
|
|
422
|
+
|
|
423
|
+
`(population: readonly import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork[], provisionalScoresByGenome: ReadonlyMap<import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork, number>) => void`
|
|
424
|
+
|
|
425
|
+
Commits provisional scores to genome score fields.
|
|
426
|
+
|
|
427
|
+
Provisional scores are kept in a map during staging so each phase can refresh
|
|
428
|
+
them without mutating the genomes too early. This helper performs the final
|
|
429
|
+
write-back once staged evaluation is complete.
|
|
430
|
+
|
|
431
|
+
Parameters:
|
|
432
|
+
- `population` - - Current population.
|
|
433
|
+
- `provisionalScoresByGenome` - - Final provisional score map.
|
|
434
|
+
|
|
435
|
+
Returns: Nothing.
|
|
436
|
+
|
|
437
|
+
### evaluatePopulationFullStage
|
|
438
|
+
|
|
439
|
+
`(population: readonly import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork[], generationEvaluationPlan: import("test/examples/flappy_bird/trainer/trainer.types").FlappyGenerationEvaluationPlan, aggregateByGenome: Map<import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork, import("test/examples/flappy_bird/evaluation/evaluation.types").FlappySeedBatchEvaluation>, provisionalScoresByGenome: Map<import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork, number>, elitismCount: number) => void`
|
|
440
|
+
|
|
441
|
+
Executes the full evaluation stage over the top provisional candidates.
|
|
442
|
+
|
|
443
|
+
This is the middle-cost stage in the ranking ladder: not every genome
|
|
444
|
+
survives into it, but the survivors receive a more trustworthy estimate than
|
|
445
|
+
the quick screen alone can provide.
|
|
446
|
+
|
|
447
|
+
Parameters:
|
|
448
|
+
- `population` - - Current population.
|
|
449
|
+
- `generationEvaluationPlan` - - Per-generation staged evaluation plan.
|
|
450
|
+
- `aggregateByGenome` - - Mutable aggregate cache keyed by genome.
|
|
451
|
+
- `provisionalScoresByGenome` - - Mutable provisional score map.
|
|
452
|
+
- `elitismCount` - - Configured elitism count.
|
|
453
|
+
|
|
454
|
+
Returns: Nothing.
|
|
455
|
+
|
|
456
|
+
### evaluatePopulationQuickStage
|
|
457
|
+
|
|
458
|
+
`(population: readonly import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork[], generationEvaluationPlan: import("test/examples/flappy_bird/trainer/trainer.types").FlappyGenerationEvaluationPlan, aggregateByGenome: Map<import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork, import("test/examples/flappy_bird/evaluation/evaluation.types").FlappySeedBatchEvaluation>, provisionalScoresByGenome: Map<import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork, number>) => void`
|
|
459
|
+
|
|
460
|
+
Executes the quick evaluation stage over the full population.
|
|
461
|
+
|
|
462
|
+
Educational note:
|
|
463
|
+
The quick stage is a cheap screening pass. Every genome is tested on the same
|
|
464
|
+
small shared seed batch so the trainer can discard obviously weak candidates
|
|
465
|
+
before spending more rollout budget on them.
|
|
466
|
+
|
|
467
|
+
Parameters:
|
|
468
|
+
- `population` - - Current population.
|
|
469
|
+
- `generationEvaluationPlan` - - Per-generation staged evaluation plan.
|
|
470
|
+
- `aggregateByGenome` - - Mutable aggregate cache keyed by genome.
|
|
471
|
+
- `provisionalScoresByGenome` - - Mutable provisional score map.
|
|
472
|
+
|
|
473
|
+
Returns: Nothing.
|
|
474
|
+
|
|
475
|
+
### evaluatePopulationReevaluationStage
|
|
476
|
+
|
|
477
|
+
`(population: readonly import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork[], generationEvaluationPlan: import("test/examples/flappy_bird/trainer/trainer.types").FlappyGenerationEvaluationPlan, aggregateByGenome: Map<import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork, import("test/examples/flappy_bird/evaluation/evaluation.types").FlappySeedBatchEvaluation>, provisionalScoresByGenome: Map<import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork, number>, elitismCount: number) => void`
|
|
478
|
+
|
|
479
|
+
Executes the large-seed reevaluation stage over top candidates.
|
|
480
|
+
|
|
481
|
+
Educational note:
|
|
482
|
+
Reevaluation is the trainer's anti-luck pass. The best provisional genomes
|
|
483
|
+
are tested again on a larger shared seed batch so leaderboard positions are
|
|
484
|
+
less sensitive to a fortunate early sample.
|
|
485
|
+
|
|
486
|
+
Parameters:
|
|
487
|
+
- `population` - - Current population.
|
|
488
|
+
- `generationEvaluationPlan` - - Per-generation staged evaluation plan.
|
|
489
|
+
- `aggregateByGenome` - - Mutable aggregate cache keyed by genome.
|
|
490
|
+
- `provisionalScoresByGenome` - - Mutable provisional score map.
|
|
491
|
+
- `elitismCount` - - Configured elitism count.
|
|
492
|
+
|
|
493
|
+
Returns: Nothing.
|
|
494
|
+
|
|
495
|
+
## trainer/trainer.report.service.services.ts
|
|
496
|
+
|
|
497
|
+
### collectFiniteGenomeScores
|
|
498
|
+
|
|
499
|
+
`(population: readonly import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork[]) => number[]`
|
|
500
|
+
|
|
501
|
+
Collects only finite scores from the current population.
|
|
502
|
+
|
|
503
|
+
Unevaluated or invalid scores are intentionally skipped so percentile and
|
|
504
|
+
standard deviation calculations operate on stable numeric inputs only.
|
|
505
|
+
|
|
506
|
+
Parameters:
|
|
507
|
+
- `population` - - Current population.
|
|
508
|
+
|
|
509
|
+
Returns: Finite scores in population order.
|
|
510
|
+
|
|
511
|
+
### resolveBestGenerationDetails
|
|
512
|
+
|
|
513
|
+
`(population: readonly import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork[], bestGenome: import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork | undefined, aggregateByGenome: ReadonlyMap<import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork, import("test/examples/flappy_bird/evaluation/evaluation.types").FlappySeedBatchEvaluation>, fallbackSeeds: readonly number[], fallbackRolloutOptions: import("test/examples/flappy_bird/evaluation/evaluation.types").FlappyRolloutOptions) => import("test/examples/flappy_bird/trainer/trainer.report.service.services").ResolvedBestGenerationDetails`
|
|
514
|
+
|
|
515
|
+
Resolves cached or fallback best-of-generation details for reporting.
|
|
516
|
+
|
|
517
|
+
The report layer needs both aggregate seed statistics and one representative
|
|
518
|
+
episode. This helper centralizes the fallback rules so the service facade can
|
|
519
|
+
remain a thin orchestration layer.
|
|
520
|
+
|
|
521
|
+
Parameters:
|
|
522
|
+
- `population` - - Current population.
|
|
523
|
+
- `bestGenome` - - Genome selected as generation best.
|
|
524
|
+
- `aggregateByGenome` - - Cached aggregate evaluations keyed by genome.
|
|
525
|
+
- `fallbackSeeds` - - Seeds used when the aggregate must be recomputed.
|
|
526
|
+
- `fallbackRolloutOptions` - - Rollout options for fallback evaluation.
|
|
527
|
+
|
|
528
|
+
Returns: Aggregate metrics and a representative best-genome episode.
|
|
529
|
+
|
|
530
|
+
### ResolvedBestGenerationDetails
|
|
531
|
+
|
|
532
|
+
Aggregate and representative rollout resolved for the best genome.
|
|
533
|
+
|
|
534
|
+
Keeping these values together lets the report facade stay focused on
|
|
535
|
+
orchestration while this helper module owns cache fallback behavior.
|
|
536
|
+
|
|
537
|
+
## trainer/trainer.reporting.utils.ts
|
|
538
|
+
|
|
539
|
+
### buildGenerationLogParts
|
|
540
|
+
|
|
541
|
+
`(generationLabel: number, bestFitness: number, bestPipesPassed: number, bestFramesSurvived: number, report: import("test/examples/flappy_bird/trainer/trainer.types").FlappyGenerationReport | undefined, mutationSchedule: import("test/examples/flappy_bird/trainer/trainer.evaluation-plan.utils").FlappyMutationSchedule) => string[]`
|
|
542
|
+
|
|
543
|
+
Builds one-line generation log tokens.
|
|
544
|
+
|
|
545
|
+
Parameters:
|
|
546
|
+
- `generationLabel` - - Generation label shown in logs.
|
|
547
|
+
- `bestFitness` - - Best resolved fitness value for this generation.
|
|
548
|
+
- `bestPipesPassed` - - Best resolved pipes passed value.
|
|
549
|
+
- `bestFramesSurvived` - - Best resolved frames survived value.
|
|
550
|
+
- `report` - - Optional aggregated generation report.
|
|
551
|
+
- `mutationSchedule` - - Active mutation schedule for this generation.
|
|
552
|
+
|
|
553
|
+
Returns: Ordered log tokens for compact console output.
|
|
554
|
+
|
|
555
|
+
## trainer/trainer.selection.utils.ts
|
|
556
|
+
|
|
557
|
+
### resolveBestGenomeByScore
|
|
558
|
+
|
|
559
|
+
`(population: readonly import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork[]) => import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork | undefined`
|
|
560
|
+
|
|
561
|
+
Resolves the best genome by current score.
|
|
562
|
+
|
|
563
|
+
Parameters:
|
|
564
|
+
- `population` - - Current trainer population.
|
|
565
|
+
|
|
566
|
+
Returns: Highest-scoring genome or `undefined` when population is empty.
|
|
567
|
+
|
|
568
|
+
### selectTopGenomesByScore
|
|
569
|
+
|
|
570
|
+
`(population: readonly import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork[], provisionalScoresByGenome: ReadonlyMap<import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork, number>, targetCount: number) => import("test/examples/flappy_bird/trainer/trainer.types").FlappyTrainerNetwork[]`
|
|
571
|
+
|
|
572
|
+
Returns top genomes ordered by current provisional score.
|
|
573
|
+
|
|
574
|
+
Parameters:
|
|
575
|
+
- `population` - - Current trainer population.
|
|
576
|
+
- `provisionalScoresByGenome` - - Optional map of staged provisional scores.
|
|
577
|
+
- `targetCount` - - Maximum number of genomes to return.
|
|
578
|
+
|
|
579
|
+
Returns: Highest-scoring genomes in descending score order.
|
|
580
|
+
|
|
581
|
+
## trainer/trainer.evaluation-plan.utils.ts
|
|
582
|
+
|
|
583
|
+
### buildSharedSeedBatch
|
|
584
|
+
|
|
585
|
+
`(generationIndex: number, stageSalt: number, seedCount: number) => number[]`
|
|
586
|
+
|
|
587
|
+
Build deterministic shared seeds for one generation stage.
|
|
588
|
+
|
|
589
|
+
Parameters:
|
|
590
|
+
- `generationIndex` - - Zero-based generation index.
|
|
591
|
+
- `stageSalt` - - Constant stage-specific salt.
|
|
592
|
+
- `seedCount` - - Number of seeds to produce.
|
|
593
|
+
|
|
594
|
+
Returns: Deterministic shared seed list.
|
|
595
|
+
|
|
596
|
+
### createFullRolloutOptions
|
|
597
|
+
|
|
598
|
+
`(difficultyScale: number) => import("test/examples/flappy_bird/evaluation/evaluation.types").FlappyRolloutOptions`
|
|
599
|
+
|
|
600
|
+
Builds full-stage rollout options.
|
|
601
|
+
|
|
602
|
+
Parameters:
|
|
603
|
+
- `difficultyScale` - - Difficulty scale for this generation.
|
|
604
|
+
|
|
605
|
+
Returns: Full stage rollout options.
|
|
606
|
+
|
|
607
|
+
### createQuickRolloutOptions
|
|
608
|
+
|
|
609
|
+
`(difficultyScale: number) => import("test/examples/flappy_bird/evaluation/evaluation.types").FlappyRolloutOptions`
|
|
610
|
+
|
|
611
|
+
Builds quick-screen rollout options.
|
|
612
|
+
|
|
613
|
+
Parameters:
|
|
614
|
+
- `difficultyScale` - - Difficulty scale for this generation.
|
|
615
|
+
|
|
616
|
+
Returns: Quick stage rollout options.
|
|
617
|
+
|
|
618
|
+
### createReevaluationRolloutOptions
|
|
619
|
+
|
|
620
|
+
`(difficultyScale: number) => import("test/examples/flappy_bird/evaluation/evaluation.types").FlappyRolloutOptions`
|
|
621
|
+
|
|
622
|
+
Builds high-confidence reevaluation rollout options.
|
|
623
|
+
|
|
624
|
+
Parameters:
|
|
625
|
+
- `difficultyScale` - - Difficulty scale for this generation.
|
|
626
|
+
|
|
627
|
+
Returns: Reevaluation stage rollout options.
|
|
628
|
+
|
|
629
|
+
### FlappyMutationSchedule
|
|
630
|
+
|
|
631
|
+
Mutation schedule used by generation planning and outer loop logging.
|
|
632
|
+
|
|
633
|
+
### mixSeed
|
|
634
|
+
|
|
635
|
+
`(generationIndex: number, stageSalt: number) => number`
|
|
636
|
+
|
|
637
|
+
Mixes generation and stage salts into a deterministic uint32 RNG seed.
|
|
638
|
+
|
|
639
|
+
Parameters:
|
|
640
|
+
- `generationIndex` - - Current generation index.
|
|
641
|
+
- `stageSalt` - - Stage-specific salt.
|
|
642
|
+
|
|
643
|
+
Returns: Mixed uint32 seed.
|
|
644
|
+
|
|
645
|
+
### resolveCurriculumDifficultyScale
|
|
646
|
+
|
|
647
|
+
`(generationIndex: number) => number`
|
|
648
|
+
|
|
649
|
+
Resolve curriculum difficulty scale for the current generation.
|
|
650
|
+
|
|
651
|
+
Parameters:
|
|
652
|
+
- `generationIndex` - - Zero-based generation index.
|
|
653
|
+
|
|
654
|
+
Returns: Difficulty scale in [0, 1].
|
|
655
|
+
|
|
656
|
+
### resolveGenerationEvaluationPlan
|
|
657
|
+
|
|
658
|
+
`(generationIndex: number) => import("test/examples/flappy_bird/trainer/trainer.types").FlappyGenerationEvaluationPlan`
|
|
659
|
+
|
|
660
|
+
Resolves all per-generation evaluation controls.
|
|
661
|
+
|
|
662
|
+
Parameters:
|
|
663
|
+
- `generationIndex` - - Zero-based generation index.
|
|
664
|
+
|
|
665
|
+
Returns: Full staged evaluation plan for the generation.
|
|
666
|
+
|
|
667
|
+
### resolveMutationSchedule
|
|
668
|
+
|
|
669
|
+
`(generationIndex: number) => import("test/examples/flappy_bird/trainer/trainer.evaluation-plan.utils").FlappyMutationSchedule`
|
|
670
|
+
|
|
671
|
+
Resolve a smooth mutation annealing schedule.
|
|
672
|
+
|
|
673
|
+
Parameters:
|
|
674
|
+
- `generationIndex` - - Zero-based generation index.
|
|
675
|
+
|
|
676
|
+
Returns: Mutation rate and mutation amount for this generation.
|