@reicek/neataptic-ts 0.1.25 → 0.1.26
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/copilot-instructions.md +11 -0
- package/.github/skills/trace-analyzer-extension/SKILL.md +3 -3
- package/.github/skills/trace-analyzer-extension/assets/extension-checklist.md +1 -1
- package/.github/skills/trace-analyzer-extension/references/analyzer-extension-workflow.md +1 -1
- package/.github/skills/trace-audit-reporting/SKILL.md +3 -3
- package/.github/skills/trace-audit-reporting/references/trace-analysis-workflow.md +1 -1
- package/package.json +19 -13
- package/plans/Flappy_Bird_Folder_Documentation_Pass.md +4 -4
- package/plans/README.md +24 -0
- package/plans/Roadmap.md +62 -40
- package/plans/analyze-trace-solid-split.plans.md +66 -0
- package/plans/architecture-solid-split.plans.md +9 -15
- package/plans/asciiMaze-typescript-repair.plans.md +1 -1
- package/plans/generate-docs-solid-split.plans.md +87 -0
- package/plans/methods-docs.plans.md +25 -1
- package/plans/methods-solid-split.plans.md +14 -14
- package/plans/neat-docs.plans.md +9 -1
- package/plans/neat-test-surface-repair.plans.md +1 -1
- package/plans/render-docs-html-solid-split.plans.md +68 -0
- package/plans/src-no-explicit-any-cleanup.plans.md +1 -1
- package/plans/utils-docs.plans.md +6 -1
- package/scripts/analyze-trace/analyze-trace.analysis.ts +479 -0
- package/scripts/analyze-trace/analyze-trace.constants.ts +35 -0
- package/scripts/analyze-trace/analyze-trace.io.ts +69 -0
- package/scripts/analyze-trace/analyze-trace.report.ts +100 -0
- package/scripts/analyze-trace/analyze-trace.shared.ts +116 -0
- package/scripts/analyze-trace/analyze-trace.ts +45 -0
- package/scripts/analyze-trace/analyze-trace.types.ts +72 -0
- package/scripts/assets/theme.css +80 -23
- package/scripts/copy-examples.ts +239 -0
- package/scripts/export-onnx.ts +223 -0
- package/scripts/generate-bench-tables.ts +378 -37
- package/scripts/generate-docs/generate-docs.constants.ts +107 -0
- package/scripts/generate-docs/generate-docs.order.ts +355 -0
- package/scripts/generate-docs/generate-docs.state.ts +31 -0
- package/scripts/generate-docs/generate-docs.targets.ts +165 -0
- package/scripts/generate-docs/generate-docs.ts +63 -0
- package/scripts/generate-docs/generate-docs.types.ts +112 -0
- package/scripts/generate-docs/output/generate-docs.output.folder-index.utils.ts +167 -0
- package/scripts/generate-docs/output/generate-docs.output.ordering.utils.ts +353 -0
- package/scripts/generate-docs/output/generate-docs.output.readme.utils.ts +420 -0
- package/scripts/generate-docs/output/generate-docs.output.ts +123 -0
- package/scripts/generate-docs/output/generate-docs.output.warnings.utils.ts +219 -0
- package/scripts/generate-docs/symbols/generate-docs.symbols.collection.utils.ts +365 -0
- package/scripts/generate-docs/symbols/generate-docs.symbols.jsdoc.utils.ts +373 -0
- package/scripts/generate-docs/symbols/generate-docs.symbols.normalize.utils.ts +155 -0
- package/scripts/generate-docs/symbols/generate-docs.symbols.render.utils.ts +149 -0
- package/scripts/generate-docs/symbols/generate-docs.symbols.signature.utils.ts +289 -0
- package/scripts/generate-docs/symbols/generate-docs.symbols.ts +11 -0
- package/scripts/mermaid-cli.mjs +102 -22
- package/scripts/mermaid-cli.ts +736 -0
- package/scripts/render-docs-html/render-docs-html.assets.ts +54 -0
- package/scripts/render-docs-html/render-docs-html.mermaid.ts +245 -0
- package/scripts/{render-docs-html.sidebar.ts → render-docs-html/render-docs-html.navigation.ts} +141 -144
- package/scripts/render-docs-html/render-docs-html.pages.ts +333 -0
- package/scripts/render-docs-html/render-docs-html.shared.ts +333 -0
- package/scripts/render-docs-html/render-docs-html.types.ts +42 -0
- package/scripts/render-docs-html.ts +23 -587
- package/scripts/run-docs.ts +238 -0
- package/scripts/write-dist-docs-pkg.ts +40 -0
- package/src/README.md +75 -75
- package/src/architecture/connection/README.md +5 -5
- package/src/architecture/layer/README.md +508 -508
- package/src/architecture/network/README.md +1458 -1458
- package/src/architecture/network/activate/README.md +694 -694
- package/src/architecture/network/bootstrap/README.md +77 -77
- package/src/architecture/network/connect/README.md +74 -74
- package/src/architecture/network/deterministic/README.md +135 -135
- package/src/architecture/network/evolve/README.md +364 -364
- package/src/architecture/network/gating/README.md +130 -130
- package/src/architecture/network/genetic/README.md +399 -399
- package/src/architecture/network/mutate/README.md +897 -897
- package/src/architecture/network/onnx/README.md +720 -720
- package/src/architecture/network/onnx/export/README.md +728 -728
- package/src/architecture/network/onnx/export/layers/README.md +450 -450
- package/src/architecture/network/onnx/import/README.md +618 -618
- package/src/architecture/network/onnx/schema/README.md +32 -32
- package/src/architecture/network/prune/README.md +245 -245
- package/src/architecture/network/remove/README.md +135 -135
- package/src/architecture/network/runtime/README.md +106 -106
- package/src/architecture/network/serialize/README.md +542 -542
- package/src/architecture/network/slab/README.md +608 -608
- package/src/architecture/network/standalone/README.md +212 -212
- package/src/architecture/network/stats/README.md +84 -84
- package/src/architecture/network/topology/README.md +465 -465
- package/src/architecture/network/training/README.md +200 -200
- package/src/architecture/node/README.md +5 -5
- package/src/architecture/nodePool/README.md +14 -14
- package/src/methods/README.md +99 -99
- package/src/methods/activation/README.md +189 -189
- package/src/methods/cost/README.md +131 -131
- package/src/methods/rate/README.md +86 -86
- package/src/multithreading/README.md +77 -77
- package/src/multithreading/workers/browser/README.md +8 -8
- package/src/multithreading/workers/node/README.md +8 -8
- package/src/neat/README.md +148 -148
- package/src/neat/adaptive/README.md +120 -120
- package/src/neat/adaptive/acceptance/README.md +40 -40
- package/src/neat/adaptive/complexity/README.md +137 -137
- package/src/neat/adaptive/core/README.md +197 -197
- package/src/neat/adaptive/lineage/README.md +90 -90
- package/src/neat/adaptive/mutation/README.md +284 -284
- package/src/neat/compat/README.md +43 -43
- package/src/neat/compat/core/README.md +90 -90
- package/src/neat/diversity/README.md +35 -35
- package/src/neat/diversity/core/README.md +88 -88
- package/src/neat/evaluate/README.md +85 -85
- package/src/neat/evaluate/auto-distance/README.md +75 -75
- package/src/neat/evaluate/entropy-compat/README.md +37 -37
- package/src/neat/evaluate/entropy-sharing/README.md +43 -43
- package/src/neat/evaluate/fitness/README.md +23 -23
- package/src/neat/evaluate/novelty/README.md +120 -120
- package/src/neat/evaluate/objectives/README.md +17 -17
- package/src/neat/evaluate/shared/README.md +94 -94
- package/src/neat/evolve/README.md +96 -96
- package/src/neat/evolve/adaptive/README.md +60 -60
- package/src/neat/evolve/objectives/README.md +63 -63
- package/src/neat/evolve/offspring/README.md +56 -56
- package/src/neat/evolve/population/README.md +171 -171
- package/src/neat/evolve/runtime/README.md +79 -79
- package/src/neat/evolve/speciation/README.md +74 -74
- package/src/neat/evolve/warnings/README.md +10 -10
- package/src/neat/export/README.md +114 -114
- package/src/neat/helpers/README.md +50 -50
- package/src/neat/init/README.md +9 -9
- package/src/neat/lineage/core/README.md +101 -101
- package/src/neat/multiobjective/category/README.md +74 -74
- package/src/neat/multiobjective/crowding/README.md +272 -272
- package/src/neat/multiobjective/dominance/README.md +171 -171
- package/src/neat/multiobjective/fronts/README.md +68 -68
- package/src/neat/multiobjective/metrics/README.md +43 -43
- package/src/neat/multiobjective/objectives/README.md +31 -31
- package/src/neat/multiobjective/shared/README.md +27 -27
- package/src/neat/mutation/README.md +97 -97
- package/src/neat/mutation/add-conn/README.md +115 -115
- package/src/neat/mutation/add-node/README.md +126 -126
- package/src/neat/mutation/flow/README.md +149 -149
- package/src/neat/mutation/repair/README.md +185 -185
- package/src/neat/mutation/select/README.md +117 -117
- package/src/neat/mutation/shared/README.md +32 -32
- package/src/neat/objectives/README.md +25 -25
- package/src/neat/objectives/core/README.md +67 -67
- package/src/neat/pruning/README.md +40 -40
- package/src/neat/pruning/core/README.md +171 -171
- package/src/neat/pruning/facade/README.md +32 -32
- package/src/neat/rng/README.md +104 -104
- package/src/neat/rng/core/README.md +137 -137
- package/src/neat/rng/facade/README.md +50 -50
- package/src/neat/selection/README.md +111 -111
- package/src/neat/selection/core/README.md +227 -227
- package/src/neat/selection/facade/README.md +61 -61
- package/src/neat/shared/README.md +163 -163
- package/src/neat/speciation/README.md +31 -31
- package/src/neat/speciation/threshold/README.md +35 -35
- package/src/neat/species/README.md +25 -25
- package/src/neat/species/core/README.md +20 -20
- package/src/neat/species/core/shared/README.md +18 -18
- package/src/neat/species/history/context/README.md +22 -22
- package/src/neat/telemetry/accessors/README.md +58 -58
- package/src/neat/telemetry/exports/README.md +233 -233
- package/src/neat/telemetry/facade/README.md +252 -252
- package/src/neat/telemetry/facade/archive/README.md +57 -57
- package/src/neat/telemetry/facade/buffer/README.md +43 -43
- package/src/neat/telemetry/facade/lineage/README.md +12 -12
- package/src/neat/telemetry/facade/objectives/README.md +44 -44
- package/src/neat/telemetry/facade/runtime/README.md +26 -26
- package/src/neat/telemetry/facade/species/README.md +27 -27
- package/src/neat/telemetry/metrics/README.md +696 -696
- package/src/neat/telemetry/recorder/README.md +57 -57
- package/src/neat/telemetry/types/README.md +32 -32
- package/src/neat/topology-intent/README.md +75 -75
- package/src/utils/README.md +193 -193
- package/test/examples/asciiMaze/browser-entry/README.md +92 -92
- package/test/examples/asciiMaze/dashboardManager/README.md +109 -109
- package/test/examples/asciiMaze/dashboardManager/telemetry/README.md +28 -28
- package/test/examples/asciiMaze/evolutionEngine/README.md +1527 -1527
- package/test/examples/asciiMaze/mazeMovement/README.md +105 -105
- package/test/examples/asciiMaze/mazeMovement/finalization/README.md +16 -16
- package/test/examples/asciiMaze/mazeMovement/policy/README.md +57 -57
- package/test/examples/asciiMaze/mazeMovement/runtime/README.md +52 -52
- package/test/examples/asciiMaze/mazeMovement/shaping/README.md +46 -46
- package/test/examples/flappy_bird/browser-entry/README.md +508 -508
- package/test/examples/flappy_bird/browser-entry/host/README.md +101 -101
- package/test/examples/flappy_bird/browser-entry/host/resize/README.md +144 -144
- package/test/examples/flappy_bird/browser-entry/network-view/README.md +194 -194
- package/test/examples/flappy_bird/browser-entry/playback/README.md +278 -278
- package/test/examples/flappy_bird/browser-entry/playback/background/README.md +129 -129
- package/test/examples/flappy_bird/browser-entry/playback/background/ground-grid/README.md +502 -502
- package/test/examples/flappy_bird/browser-entry/playback/frame-render/README.md +139 -139
- package/test/examples/flappy_bird/browser-entry/playback/snapshot/README.md +10 -10
- package/test/examples/flappy_bird/browser-entry/playback/trail/README.md +43 -43
- package/test/examples/flappy_bird/browser-entry/playback/worker-channel/README.md +30 -30
- package/test/examples/flappy_bird/browser-entry/runtime/README.md +59 -59
- package/test/examples/flappy_bird/browser-entry/visualization/README.md +276 -276
- package/test/examples/flappy_bird/browser-entry/worker-channel/README.md +16 -16
- package/test/examples/flappy_bird/constants/README.md +1070 -1070
- package/test/examples/flappy_bird/environment/README.md +22 -22
- package/test/examples/flappy_bird/evaluation/README.md +32 -32
- package/test/examples/flappy_bird/evaluation/rollout/README.md +141 -141
- package/test/examples/flappy_bird/flappy-evolution-worker/README.md +425 -425
- package/test/examples/flappy_bird/simulation-shared/README.md +170 -170
- package/test/examples/flappy_bird/simulation-shared/observation/README.md +109 -109
- package/test/examples/flappy_bird/trainer/README.md +325 -325
- package/test/examples/flappy_bird/trainer/evaluation/README.md +74 -74
- package/scripts/analyze-trace.ts +0 -590
- package/scripts/copy-examples.mjs +0 -114
- package/scripts/export-onnx.mjs +0 -86
- package/scripts/generate-bench-tables.mjs +0 -182
- package/scripts/generate-docs.ts +0 -2900
- package/scripts/write-dist-docs-pkg.mjs +0 -16
|
@@ -170,6 +170,25 @@ Parameters:
|
|
|
170
170
|
|
|
171
171
|
Returns: Nothing.
|
|
172
172
|
|
|
173
|
+
### resolveNextPhase
|
|
174
|
+
|
|
175
|
+
```ts
|
|
176
|
+
resolveNextPhase(
|
|
177
|
+
currentPhase: string,
|
|
178
|
+
): string
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
Resolve next phase name.
|
|
182
|
+
|
|
183
|
+
The phase cycle is intentionally binary so the controller can alternate
|
|
184
|
+
between growth and simplification without inventing additional intermediate
|
|
185
|
+
moods here.
|
|
186
|
+
|
|
187
|
+
Parameters:
|
|
188
|
+
- `currentPhase` - - Current phase label.
|
|
189
|
+
|
|
190
|
+
Returns: Next phase label.
|
|
191
|
+
|
|
173
192
|
### togglePhaseIfNeeded
|
|
174
193
|
|
|
175
194
|
```ts
|
|
@@ -192,25 +211,6 @@ Parameters:
|
|
|
192
211
|
|
|
193
212
|
Returns: Nothing.
|
|
194
213
|
|
|
195
|
-
### resolveNextPhase
|
|
196
|
-
|
|
197
|
-
```ts
|
|
198
|
-
resolveNextPhase(
|
|
199
|
-
currentPhase: string,
|
|
200
|
-
): string
|
|
201
|
-
```
|
|
202
|
-
|
|
203
|
-
Resolve next phase name.
|
|
204
|
-
|
|
205
|
-
The phase cycle is intentionally binary so the controller can alternate
|
|
206
|
-
between growth and simplification without inventing additional intermediate
|
|
207
|
-
moods here.
|
|
208
|
-
|
|
209
|
-
Parameters:
|
|
210
|
-
- `currentPhase` - - Current phase label.
|
|
211
|
-
|
|
212
|
-
Returns: Next phase label.
|
|
213
|
-
|
|
214
214
|
## neat/adaptive/complexity/adaptive.complexity.utils.ts
|
|
215
215
|
|
|
216
216
|
Schedule helpers for adaptive complexity budgets.
|
|
@@ -227,27 +227,62 @@ The schedule pipeline is intentionally compact:
|
|
|
227
227
|
3. resolve adaptive or linear budget updates,
|
|
228
228
|
4. clamp the result back onto controller state.
|
|
229
229
|
|
|
230
|
-
###
|
|
230
|
+
### adjustConnectionBudget
|
|
231
231
|
|
|
232
232
|
```ts
|
|
233
|
-
|
|
233
|
+
adjustConnectionBudget(
|
|
234
234
|
engine: NeatLikeWithAdaptive,
|
|
235
235
|
config: { enabled?: boolean | undefined; mode?: string | undefined; improvementWindow?: number | undefined; increaseFactor?: number | undefined; stagnationFactor?: number | undefined; maxNodesStart?: number | undefined; maxNodesEnd?: number | undefined; minNodes?: number | undefined; maxConnsStart?: number | undefined; maxConnsEnd?: number | undefined; horizon?: number | undefined; },
|
|
236
|
+
trends: { improvement: number; slope: number; },
|
|
237
|
+
factors: { increaseFactor: number; stagnationFactor: number; },
|
|
238
|
+
noveltyFactor: number,
|
|
239
|
+
history: number[],
|
|
236
240
|
): void
|
|
237
241
|
```
|
|
238
242
|
|
|
239
|
-
|
|
243
|
+
Adjust connection budget based on trends and factors.
|
|
240
244
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
schedule or the linear schedule, depending on the configured policy.
|
|
245
|
+
Connection-budget adjustment mirrors the node-budget path so both structural
|
|
246
|
+
ceilings respond coherently to the same improvement and stagnation signals.
|
|
244
247
|
|
|
245
248
|
Parameters:
|
|
246
249
|
- `engine` - - NEAT engine instance.
|
|
247
250
|
- `config` - - Complexity budget configuration.
|
|
251
|
+
- `trends` - - Improvement and slope metrics.
|
|
252
|
+
- `factors` - - Adjustment factors.
|
|
253
|
+
- `noveltyFactor` - - Novelty multiplier.
|
|
254
|
+
- `history` - - Rolling history for window checks.
|
|
248
255
|
|
|
249
256
|
Returns: Nothing.
|
|
250
257
|
|
|
258
|
+
### adjustNodeBudget
|
|
259
|
+
|
|
260
|
+
```ts
|
|
261
|
+
adjustNodeBudget(
|
|
262
|
+
engine: NeatLikeWithAdaptive,
|
|
263
|
+
config: { enabled?: boolean | undefined; mode?: string | undefined; improvementWindow?: number | undefined; increaseFactor?: number | undefined; stagnationFactor?: number | undefined; maxNodesStart?: number | undefined; maxNodesEnd?: number | undefined; minNodes?: number | undefined; maxConnsStart?: number | undefined; maxConnsEnd?: number | undefined; horizon?: number | undefined; },
|
|
264
|
+
trends: { improvement: number; slope: number; },
|
|
265
|
+
factors: { increaseFactor: number; stagnationFactor: number; },
|
|
266
|
+
noveltyFactor: number,
|
|
267
|
+
history: number[],
|
|
268
|
+
): void
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Adjust node budget based on trends and factors.
|
|
272
|
+
|
|
273
|
+
Node-budget adjustment is where the adaptive policy becomes concrete. When
|
|
274
|
+
improvement or positive slope is present, the helper expands the budget up to
|
|
275
|
+
the configured ceiling; when the observation window is full and the search is
|
|
276
|
+
flat, it contracts back toward the configured minimum.
|
|
277
|
+
|
|
278
|
+
Parameters:
|
|
279
|
+
- `engine` - - NEAT engine instance.
|
|
280
|
+
- `config` - - Complexity budget configuration.
|
|
281
|
+
- `trends` - - Improvement and slope metrics.
|
|
282
|
+
- `factors` - - Adjustment factors.
|
|
283
|
+
- `noveltyFactor` - - Novelty multiplier.
|
|
284
|
+
- `history` - - Rolling history for window checks.
|
|
285
|
+
|
|
251
286
|
### applyAdaptiveSchedule
|
|
252
287
|
|
|
253
288
|
```ts
|
|
@@ -270,20 +305,20 @@ Parameters:
|
|
|
270
305
|
|
|
271
306
|
Returns: Nothing.
|
|
272
307
|
|
|
273
|
-
###
|
|
308
|
+
### applyComplexityBudgetSchedule
|
|
274
309
|
|
|
275
310
|
```ts
|
|
276
|
-
|
|
311
|
+
applyComplexityBudgetSchedule(
|
|
277
312
|
engine: NeatLikeWithAdaptive,
|
|
278
313
|
config: { enabled?: boolean | undefined; mode?: string | undefined; improvementWindow?: number | undefined; increaseFactor?: number | undefined; stagnationFactor?: number | undefined; maxNodesStart?: number | undefined; maxNodesEnd?: number | undefined; minNodes?: number | undefined; maxConnsStart?: number | undefined; maxConnsEnd?: number | undefined; horizon?: number | undefined; },
|
|
279
314
|
): void
|
|
280
315
|
```
|
|
281
316
|
|
|
282
|
-
Apply
|
|
317
|
+
Apply the complexity budget schedule for the configured mode.
|
|
283
318
|
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
319
|
+
This is the main dispatcher for the complexity subtree. It keeps the public
|
|
320
|
+
entrypoint easy to scan by delegating immediately into either the adaptive
|
|
321
|
+
schedule or the linear schedule, depending on the configured policy.
|
|
287
322
|
|
|
288
323
|
Parameters:
|
|
289
324
|
- `engine` - - NEAT engine instance.
|
|
@@ -291,62 +326,46 @@ Parameters:
|
|
|
291
326
|
|
|
292
327
|
Returns: Nothing.
|
|
293
328
|
|
|
294
|
-
###
|
|
329
|
+
### applyLinearSchedule
|
|
295
330
|
|
|
296
331
|
```ts
|
|
297
|
-
|
|
332
|
+
applyLinearSchedule(
|
|
298
333
|
engine: NeatLikeWithAdaptive,
|
|
299
334
|
config: { enabled?: boolean | undefined; mode?: string | undefined; improvementWindow?: number | undefined; increaseFactor?: number | undefined; stagnationFactor?: number | undefined; maxNodesStart?: number | undefined; maxNodesEnd?: number | undefined; minNodes?: number | undefined; maxConnsStart?: number | undefined; maxConnsEnd?: number | undefined; horizon?: number | undefined; },
|
|
300
|
-
):
|
|
335
|
+
): void
|
|
301
336
|
```
|
|
302
337
|
|
|
303
|
-
|
|
338
|
+
Apply linear complexity budget scheduling.
|
|
304
339
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
recent generations.
|
|
340
|
+
The linear schedule is the deterministic counterpart to the adaptive mode.
|
|
341
|
+
It ignores run-time improvement signals and simply interpolates between a
|
|
342
|
+
start and end budget across a configured horizon.
|
|
309
343
|
|
|
310
344
|
Parameters:
|
|
311
345
|
- `engine` - - NEAT engine instance.
|
|
312
346
|
- `config` - - Complexity budget configuration.
|
|
313
347
|
|
|
314
|
-
Returns:
|
|
348
|
+
Returns: Nothing.
|
|
315
349
|
|
|
316
|
-
###
|
|
350
|
+
### clampNodeBudget
|
|
317
351
|
|
|
318
352
|
```ts
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
353
|
+
clampNodeBudget(
|
|
354
|
+
engine: NeatLikeWithAdaptive,
|
|
355
|
+
config: { enabled?: boolean | undefined; mode?: string | undefined; improvementWindow?: number | undefined; increaseFactor?: number | undefined; stagnationFactor?: number | undefined; maxNodesStart?: number | undefined; maxNodesEnd?: number | undefined; minNodes?: number | undefined; maxConnsStart?: number | undefined; maxConnsEnd?: number | undefined; horizon?: number | undefined; },
|
|
356
|
+
): void
|
|
322
357
|
```
|
|
323
358
|
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
Improvement answers whether the window ended above where it started; slope
|
|
327
|
-
answers how strongly the trajectory points upward or downward across the
|
|
328
|
-
window as a whole. The adaptive scheduler uses both so it can distinguish a
|
|
329
|
-
noisy plateau from sustained progress.
|
|
330
|
-
|
|
331
|
-
Parameters:
|
|
332
|
-
- `history` - - Rolling history of best scores.
|
|
333
|
-
|
|
334
|
-
Returns: Trend metrics (improvement and slope).
|
|
335
|
-
|
|
336
|
-
### computeSlope
|
|
337
|
-
|
|
338
|
-
```ts
|
|
339
|
-
computeSlope(
|
|
340
|
-
history: number[],
|
|
341
|
-
): number
|
|
342
|
-
```
|
|
359
|
+
Clamp node budget to configured minimum.
|
|
343
360
|
|
|
344
|
-
|
|
361
|
+
This final guard keeps the adaptive loop from shrinking below the smallest
|
|
362
|
+
topology the controller can reasonably support.
|
|
345
363
|
|
|
346
364
|
Parameters:
|
|
347
|
-
- `
|
|
365
|
+
- `engine` - - NEAT engine instance.
|
|
366
|
+
- `config` - - Complexity budget configuration.
|
|
348
367
|
|
|
349
|
-
Returns:
|
|
368
|
+
Returns: Nothing.
|
|
350
369
|
|
|
351
370
|
### computeAdjustmentFactors
|
|
352
371
|
|
|
@@ -371,23 +390,6 @@ Parameters:
|
|
|
371
390
|
|
|
372
391
|
Returns: Adjustment factors (increase and stagnation multipliers).
|
|
373
392
|
|
|
374
|
-
### normalizeSlope
|
|
375
|
-
|
|
376
|
-
```ts
|
|
377
|
-
normalizeSlope(
|
|
378
|
-
slope: number,
|
|
379
|
-
initialScore: number,
|
|
380
|
-
): number
|
|
381
|
-
```
|
|
382
|
-
|
|
383
|
-
Normalize slope magnitude relative to initial score.
|
|
384
|
-
|
|
385
|
-
Parameters:
|
|
386
|
-
- `slope` - - Raw OLS slope.
|
|
387
|
-
- `initialScore` - - First score in history window.
|
|
388
|
-
|
|
389
|
-
Returns: Normalized slope clamped to [-2, 2].
|
|
390
|
-
|
|
391
393
|
### computeNoveltyFactor
|
|
392
394
|
|
|
393
395
|
```ts
|
|
@@ -407,62 +409,54 @@ Parameters:
|
|
|
407
409
|
|
|
408
410
|
Returns: Novelty multiplier (0.9 if archive small, 1.0 otherwise).
|
|
409
411
|
|
|
410
|
-
###
|
|
412
|
+
### computeSlope
|
|
411
413
|
|
|
412
414
|
```ts
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
): void
|
|
415
|
+
computeSlope(
|
|
416
|
+
history: number[],
|
|
417
|
+
): number
|
|
417
418
|
```
|
|
418
419
|
|
|
419
|
-
|
|
420
|
+
Compute linear regression slope using ordinary least squares.
|
|
420
421
|
|
|
421
422
|
Parameters:
|
|
422
|
-
- `
|
|
423
|
-
- `config` - - Complexity budget configuration.
|
|
423
|
+
- `history` - - Rolling history of best scores.
|
|
424
424
|
|
|
425
|
-
|
|
425
|
+
Returns: OLS slope estimate.
|
|
426
|
+
|
|
427
|
+
### computeTrends
|
|
426
428
|
|
|
427
429
|
```ts
|
|
428
|
-
|
|
429
|
-
engine: NeatLikeWithAdaptive,
|
|
430
|
-
config: { enabled?: boolean | undefined; mode?: string | undefined; improvementWindow?: number | undefined; increaseFactor?: number | undefined; stagnationFactor?: number | undefined; maxNodesStart?: number | undefined; maxNodesEnd?: number | undefined; minNodes?: number | undefined; maxConnsStart?: number | undefined; maxConnsEnd?: number | undefined; horizon?: number | undefined; },
|
|
431
|
-
trends: { improvement: number; slope: number; },
|
|
432
|
-
factors: { increaseFactor: number; stagnationFactor: number; },
|
|
433
|
-
noveltyFactor: number,
|
|
430
|
+
computeTrends(
|
|
434
431
|
history: number[],
|
|
435
|
-
):
|
|
432
|
+
): { improvement: number; slope: number; }
|
|
436
433
|
```
|
|
437
434
|
|
|
438
|
-
|
|
435
|
+
Compute improvement and slope trends from score history.
|
|
439
436
|
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
437
|
+
Improvement answers whether the window ended above where it started; slope
|
|
438
|
+
answers how strongly the trajectory points upward or downward across the
|
|
439
|
+
window as a whole. The adaptive scheduler uses both so it can distinguish a
|
|
440
|
+
noisy plateau from sustained progress.
|
|
444
441
|
|
|
445
442
|
Parameters:
|
|
446
|
-
- `
|
|
447
|
-
- `config` - - Complexity budget configuration.
|
|
448
|
-
- `trends` - - Improvement and slope metrics.
|
|
449
|
-
- `factors` - - Adjustment factors.
|
|
450
|
-
- `noveltyFactor` - - Novelty multiplier.
|
|
451
|
-
- `history` - - Rolling history for window checks.
|
|
443
|
+
- `history` - - Rolling history of best scores.
|
|
452
444
|
|
|
453
|
-
|
|
445
|
+
Returns: Trend metrics (improvement and slope).
|
|
446
|
+
|
|
447
|
+
### initializeConnectionBudget
|
|
454
448
|
|
|
455
449
|
```ts
|
|
456
|
-
|
|
450
|
+
initializeConnectionBudget(
|
|
457
451
|
engine: NeatLikeWithAdaptive,
|
|
458
452
|
config: { enabled?: boolean | undefined; mode?: string | undefined; improvementWindow?: number | undefined; increaseFactor?: number | undefined; stagnationFactor?: number | undefined; maxNodesStart?: number | undefined; maxNodesEnd?: number | undefined; minNodes?: number | undefined; maxConnsStart?: number | undefined; maxConnsEnd?: number | undefined; horizon?: number | undefined; },
|
|
459
453
|
): void
|
|
460
454
|
```
|
|
461
455
|
|
|
462
|
-
|
|
456
|
+
Initialize connection budget if undefined.
|
|
463
457
|
|
|
464
|
-
|
|
465
|
-
|
|
458
|
+
Connection budgets are optional, so the helper only seeds this state when the
|
|
459
|
+
configuration explicitly opts into a connection-cap schedule.
|
|
466
460
|
|
|
467
461
|
Parameters:
|
|
468
462
|
- `engine` - - NEAT engine instance.
|
|
@@ -470,50 +464,56 @@ Parameters:
|
|
|
470
464
|
|
|
471
465
|
Returns: Nothing.
|
|
472
466
|
|
|
473
|
-
###
|
|
467
|
+
### initializeNodeBudget
|
|
474
468
|
|
|
475
469
|
```ts
|
|
476
|
-
|
|
470
|
+
initializeNodeBudget(
|
|
477
471
|
engine: NeatLikeWithAdaptive,
|
|
478
472
|
config: { enabled?: boolean | undefined; mode?: string | undefined; improvementWindow?: number | undefined; increaseFactor?: number | undefined; stagnationFactor?: number | undefined; maxNodesStart?: number | undefined; maxNodesEnd?: number | undefined; minNodes?: number | undefined; maxConnsStart?: number | undefined; maxConnsEnd?: number | undefined; horizon?: number | undefined; },
|
|
479
473
|
): void
|
|
480
474
|
```
|
|
481
475
|
|
|
482
|
-
Initialize
|
|
483
|
-
|
|
484
|
-
Connection budgets are optional, so the helper only seeds this state when the
|
|
485
|
-
configuration explicitly opts into a connection-cap schedule.
|
|
476
|
+
Initialize node budget if undefined.
|
|
486
477
|
|
|
487
478
|
Parameters:
|
|
488
479
|
- `engine` - - NEAT engine instance.
|
|
489
480
|
- `config` - - Complexity budget configuration.
|
|
490
481
|
|
|
491
|
-
|
|
482
|
+
### normalizeSlope
|
|
492
483
|
|
|
493
|
-
|
|
484
|
+
```ts
|
|
485
|
+
normalizeSlope(
|
|
486
|
+
slope: number,
|
|
487
|
+
initialScore: number,
|
|
488
|
+
): number
|
|
489
|
+
```
|
|
490
|
+
|
|
491
|
+
Normalize slope magnitude relative to initial score.
|
|
492
|
+
|
|
493
|
+
Parameters:
|
|
494
|
+
- `slope` - - Raw OLS slope.
|
|
495
|
+
- `initialScore` - - First score in history window.
|
|
496
|
+
|
|
497
|
+
Returns: Normalized slope clamped to [-2, 2].
|
|
498
|
+
|
|
499
|
+
### updateScoreHistory
|
|
494
500
|
|
|
495
501
|
```ts
|
|
496
|
-
|
|
502
|
+
updateScoreHistory(
|
|
497
503
|
engine: NeatLikeWithAdaptive,
|
|
498
504
|
config: { enabled?: boolean | undefined; mode?: string | undefined; improvementWindow?: number | undefined; increaseFactor?: number | undefined; stagnationFactor?: number | undefined; maxNodesStart?: number | undefined; maxNodesEnd?: number | undefined; minNodes?: number | undefined; maxConnsStart?: number | undefined; maxConnsEnd?: number | undefined; horizon?: number | undefined; },
|
|
499
|
-
|
|
500
|
-
factors: { increaseFactor: number; stagnationFactor: number; },
|
|
501
|
-
noveltyFactor: number,
|
|
502
|
-
history: number[],
|
|
503
|
-
): void
|
|
505
|
+
): number[]
|
|
504
506
|
```
|
|
505
507
|
|
|
506
|
-
|
|
508
|
+
Update rolling score history with current best score.
|
|
507
509
|
|
|
508
|
-
|
|
509
|
-
|
|
510
|
+
Score history is the minimum evidence the adaptive scheduler needs in order
|
|
511
|
+
to talk about improvement or stagnation. The helper keeps that history bounded
|
|
512
|
+
to the configured window so later slope and delta calculations stay local to
|
|
513
|
+
recent generations.
|
|
510
514
|
|
|
511
515
|
Parameters:
|
|
512
516
|
- `engine` - - NEAT engine instance.
|
|
513
517
|
- `config` - - Complexity budget configuration.
|
|
514
|
-
- `trends` - - Improvement and slope metrics.
|
|
515
|
-
- `factors` - - Adjustment factors.
|
|
516
|
-
- `noveltyFactor` - - Novelty multiplier.
|
|
517
|
-
- `history` - - Rolling history for window checks.
|
|
518
518
|
|
|
519
|
-
Returns:
|
|
519
|
+
Returns: Rolling history array after update.
|