@nahisaho/musubix-neural-search 2.1.0 → 2.2.0
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/dist/EnhancedNeuralSearchManager.d.ts +215 -0
- package/dist/EnhancedNeuralSearchManager.d.ts.map +1 -0
- package/dist/EnhancedNeuralSearchManager.js +307 -0
- package/dist/EnhancedNeuralSearchManager.js.map +1 -0
- package/dist/cache/EmbeddingCache.d.ts +93 -0
- package/dist/cache/EmbeddingCache.d.ts.map +1 -0
- package/dist/cache/EmbeddingCache.js +208 -0
- package/dist/cache/EmbeddingCache.js.map +1 -0
- package/dist/cache/index.d.ts +7 -0
- package/dist/cache/index.d.ts.map +1 -0
- package/dist/cache/index.js +6 -0
- package/dist/cache/index.js.map +1 -0
- package/dist/fusion/ModalFusion.d.ts +111 -0
- package/dist/fusion/ModalFusion.d.ts.map +1 -0
- package/dist/fusion/ModalFusion.js +127 -0
- package/dist/fusion/ModalFusion.js.map +1 -0
- package/dist/fusion/index.d.ts +6 -0
- package/dist/fusion/index.d.ts.map +1 -0
- package/dist/fusion/index.js +6 -0
- package/dist/fusion/index.js.map +1 -0
- package/dist/index.d.ts +14 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -2
- package/dist/index.js.map +1 -1
- package/dist/learning/OnlineModelUpdater.d.ts +195 -0
- package/dist/learning/OnlineModelUpdater.d.ts.map +1 -0
- package/dist/learning/OnlineModelUpdater.js +231 -0
- package/dist/learning/OnlineModelUpdater.js.map +1 -0
- package/dist/learning/__tests__/OnlineModelUpdater.test.d.ts +9 -0
- package/dist/learning/__tests__/OnlineModelUpdater.test.d.ts.map +1 -0
- package/dist/learning/__tests__/OnlineModelUpdater.test.js +174 -0
- package/dist/learning/__tests__/OnlineModelUpdater.test.js.map +1 -0
- package/dist/learning/index.d.ts +2 -0
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +2 -0
- package/dist/learning/index.js.map +1 -1
- package/dist/logging/TrajectoryLogger.d.ts +115 -0
- package/dist/logging/TrajectoryLogger.d.ts.map +1 -0
- package/dist/logging/TrajectoryLogger.js +128 -0
- package/dist/logging/TrajectoryLogger.js.map +1 -0
- package/dist/logging/index.d.ts +9 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +8 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/pruning/LearnedPruningPolicy.d.ts +129 -0
- package/dist/pruning/LearnedPruningPolicy.d.ts.map +1 -0
- package/dist/pruning/LearnedPruningPolicy.js +332 -0
- package/dist/pruning/LearnedPruningPolicy.js.map +1 -0
- package/dist/pruning/index.d.ts +6 -0
- package/dist/pruning/index.d.ts.map +1 -0
- package/dist/pruning/index.js +6 -0
- package/dist/pruning/index.js.map +1 -0
- package/dist/scorer/ContextAwareScorer.d.ts +126 -0
- package/dist/scorer/ContextAwareScorer.d.ts.map +1 -0
- package/dist/scorer/ContextAwareScorer.js +281 -0
- package/dist/scorer/ContextAwareScorer.js.map +1 -0
- package/dist/scorer/index.d.ts +2 -0
- package/dist/scorer/index.d.ts.map +1 -1
- package/dist/scorer/index.js +2 -0
- package/dist/scorer/index.js.map +1 -1
- package/dist/search/AdaptiveBeamSearch.d.ts +98 -0
- package/dist/search/AdaptiveBeamSearch.d.ts.map +1 -0
- package/dist/search/AdaptiveBeamSearch.js +240 -0
- package/dist/search/AdaptiveBeamSearch.js.map +1 -0
- package/dist/search/index.d.ts +2 -0
- package/dist/search/index.d.ts.map +1 -1
- package/dist/search/index.js +2 -0
- package/dist/search/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TrajectoryLogger
|
|
3
|
+
*
|
|
4
|
+
* Search trajectory logging with JSON/Parquet export
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
* @module neural-search/logging
|
|
8
|
+
*
|
|
9
|
+
* @see TSK-NS-107 - TrajectoryLogger実装
|
|
10
|
+
* @see REQ-NS-107 - 探索軌跡ログ要件
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Branch record in the search trajectory
|
|
14
|
+
*/
|
|
15
|
+
export interface BranchRecord {
|
|
16
|
+
id: string;
|
|
17
|
+
parentId: string | null;
|
|
18
|
+
depth: number;
|
|
19
|
+
score: number;
|
|
20
|
+
timestamp: Date;
|
|
21
|
+
state: Record<string, unknown>;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Complete trajectory data
|
|
25
|
+
*/
|
|
26
|
+
export interface TrajectoryData {
|
|
27
|
+
branches: BranchRecord[];
|
|
28
|
+
totalBranches: number;
|
|
29
|
+
maxDepth: number;
|
|
30
|
+
bestScore: number;
|
|
31
|
+
averageScore: number;
|
|
32
|
+
branchesByDepth: Record<number, number>;
|
|
33
|
+
startTime?: Date;
|
|
34
|
+
endTime?: Date;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Export format type
|
|
38
|
+
*/
|
|
39
|
+
export type TrajectoryExportFormat = 'json' | 'parquet';
|
|
40
|
+
/**
|
|
41
|
+
* Parquet schema for trajectory data
|
|
42
|
+
*/
|
|
43
|
+
export interface ParquetSchema {
|
|
44
|
+
name: string;
|
|
45
|
+
type: string;
|
|
46
|
+
fields: Array<{
|
|
47
|
+
name: string;
|
|
48
|
+
type: string;
|
|
49
|
+
}>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Parquet export result
|
|
53
|
+
*/
|
|
54
|
+
export interface ParquetExport {
|
|
55
|
+
schema: ParquetSchema;
|
|
56
|
+
data: Array<Record<string, unknown>>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* TrajectoryLogger interface
|
|
60
|
+
*/
|
|
61
|
+
export interface TrajectoryLogger {
|
|
62
|
+
/**
|
|
63
|
+
* Log a branch record
|
|
64
|
+
*/
|
|
65
|
+
logBranch(branch: BranchRecord): void;
|
|
66
|
+
/**
|
|
67
|
+
* Export trajectory in specified format
|
|
68
|
+
*/
|
|
69
|
+
export(format: TrajectoryExportFormat): string;
|
|
70
|
+
/**
|
|
71
|
+
* Get current trajectory data
|
|
72
|
+
*/
|
|
73
|
+
getTrajectory(): TrajectoryData;
|
|
74
|
+
/**
|
|
75
|
+
* Clear all logged data
|
|
76
|
+
*/
|
|
77
|
+
clear(): void;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Default TrajectoryLogger implementation
|
|
81
|
+
*/
|
|
82
|
+
declare class DefaultTrajectoryLogger implements TrajectoryLogger {
|
|
83
|
+
private branches;
|
|
84
|
+
private startTime?;
|
|
85
|
+
/**
|
|
86
|
+
* Log a branch record
|
|
87
|
+
*/
|
|
88
|
+
logBranch(branch: BranchRecord): void;
|
|
89
|
+
/**
|
|
90
|
+
* Export trajectory in specified format
|
|
91
|
+
*/
|
|
92
|
+
export(format: TrajectoryExportFormat): string;
|
|
93
|
+
/**
|
|
94
|
+
* Export as JSON
|
|
95
|
+
*/
|
|
96
|
+
private exportJson;
|
|
97
|
+
/**
|
|
98
|
+
* Export as Parquet-compatible format
|
|
99
|
+
*/
|
|
100
|
+
private exportParquet;
|
|
101
|
+
/**
|
|
102
|
+
* Get current trajectory data
|
|
103
|
+
*/
|
|
104
|
+
getTrajectory(): TrajectoryData;
|
|
105
|
+
/**
|
|
106
|
+
* Clear all logged data
|
|
107
|
+
*/
|
|
108
|
+
clear(): void;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Create TrajectoryLogger instance
|
|
112
|
+
*/
|
|
113
|
+
export declare function createTrajectoryLogger(): TrajectoryLogger;
|
|
114
|
+
export { DefaultTrajectoryLogger };
|
|
115
|
+
//# sourceMappingURL=TrajectoryLogger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrajectoryLogger.d.ts","sourceRoot":"","sources":["../../src/logging/TrajectoryLogger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,IAAI,CAAC;IACjB,OAAO,CAAC,EAAE,IAAI,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,SAAS,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC/C;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAEtC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM,CAAC;IAE/C;;OAEG;IACH,aAAa,IAAI,cAAc,CAAC;IAEhC;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,cAAM,uBAAwB,YAAW,gBAAgB;IACvD,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,SAAS,CAAC,CAAO;IAEzB;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI;IAOrC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,MAAM;IAW9C;;OAEG;IACH,OAAO,CAAC,UAAU;IAUlB;;OAEG;IACH,OAAO,CAAC,aAAa;IA2BrB;;OAEG;IACH,aAAa,IAAI,cAAc;IAqC/B;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,gBAAgB,CAEzD;AAED,OAAO,EAAE,uBAAuB,EAAE,CAAC"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TrajectoryLogger
|
|
3
|
+
*
|
|
4
|
+
* Search trajectory logging with JSON/Parquet export
|
|
5
|
+
*
|
|
6
|
+
* @packageDocumentation
|
|
7
|
+
* @module neural-search/logging
|
|
8
|
+
*
|
|
9
|
+
* @see TSK-NS-107 - TrajectoryLogger実装
|
|
10
|
+
* @see REQ-NS-107 - 探索軌跡ログ要件
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Default TrajectoryLogger implementation
|
|
14
|
+
*/
|
|
15
|
+
class DefaultTrajectoryLogger {
|
|
16
|
+
branches = [];
|
|
17
|
+
startTime;
|
|
18
|
+
/**
|
|
19
|
+
* Log a branch record
|
|
20
|
+
*/
|
|
21
|
+
logBranch(branch) {
|
|
22
|
+
if (!this.startTime) {
|
|
23
|
+
this.startTime = new Date();
|
|
24
|
+
}
|
|
25
|
+
this.branches.push(branch);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Export trajectory in specified format
|
|
29
|
+
*/
|
|
30
|
+
export(format) {
|
|
31
|
+
if (format !== 'json' && format !== 'parquet') {
|
|
32
|
+
throw new Error(`Invalid export format: ${format}. Use 'json' or 'parquet'.`);
|
|
33
|
+
}
|
|
34
|
+
if (format === 'json') {
|
|
35
|
+
return this.exportJson();
|
|
36
|
+
}
|
|
37
|
+
return this.exportParquet();
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Export as JSON
|
|
41
|
+
*/
|
|
42
|
+
exportJson() {
|
|
43
|
+
const trajectory = this.getTrajectory();
|
|
44
|
+
return JSON.stringify(trajectory, (_key, value) => {
|
|
45
|
+
if (value instanceof Date) {
|
|
46
|
+
return value.toISOString();
|
|
47
|
+
}
|
|
48
|
+
return value;
|
|
49
|
+
}, 2);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Export as Parquet-compatible format
|
|
53
|
+
*/
|
|
54
|
+
exportParquet() {
|
|
55
|
+
const schema = {
|
|
56
|
+
name: 'TrajectoryData',
|
|
57
|
+
type: 'record',
|
|
58
|
+
fields: [
|
|
59
|
+
{ name: 'id', type: 'string' },
|
|
60
|
+
{ name: 'parentId', type: 'string' },
|
|
61
|
+
{ name: 'depth', type: 'int32' },
|
|
62
|
+
{ name: 'score', type: 'double' },
|
|
63
|
+
{ name: 'timestamp', type: 'timestamp' },
|
|
64
|
+
{ name: 'state', type: 'string' },
|
|
65
|
+
],
|
|
66
|
+
};
|
|
67
|
+
const data = this.branches.map(branch => ({
|
|
68
|
+
id: branch.id,
|
|
69
|
+
parentId: branch.parentId || '',
|
|
70
|
+
depth: branch.depth,
|
|
71
|
+
score: branch.score,
|
|
72
|
+
timestamp: branch.timestamp.toISOString(),
|
|
73
|
+
state: JSON.stringify(branch.state),
|
|
74
|
+
}));
|
|
75
|
+
const parquetExport = { schema, data };
|
|
76
|
+
return JSON.stringify(parquetExport, null, 2);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Get current trajectory data
|
|
80
|
+
*/
|
|
81
|
+
getTrajectory() {
|
|
82
|
+
const totalBranches = this.branches.length;
|
|
83
|
+
if (totalBranches === 0) {
|
|
84
|
+
return {
|
|
85
|
+
branches: [],
|
|
86
|
+
totalBranches: 0,
|
|
87
|
+
maxDepth: 0,
|
|
88
|
+
bestScore: 0,
|
|
89
|
+
averageScore: 0,
|
|
90
|
+
branchesByDepth: {},
|
|
91
|
+
startTime: this.startTime,
|
|
92
|
+
endTime: new Date(),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const maxDepth = Math.max(...this.branches.map(b => b.depth));
|
|
96
|
+
const bestScore = Math.max(...this.branches.map(b => b.score));
|
|
97
|
+
const averageScore = this.branches.reduce((sum, b) => sum + b.score, 0) / totalBranches;
|
|
98
|
+
const branchesByDepth = {};
|
|
99
|
+
for (const branch of this.branches) {
|
|
100
|
+
branchesByDepth[branch.depth] = (branchesByDepth[branch.depth] || 0) + 1;
|
|
101
|
+
}
|
|
102
|
+
return {
|
|
103
|
+
branches: [...this.branches],
|
|
104
|
+
totalBranches,
|
|
105
|
+
maxDepth,
|
|
106
|
+
bestScore,
|
|
107
|
+
averageScore,
|
|
108
|
+
branchesByDepth,
|
|
109
|
+
startTime: this.startTime,
|
|
110
|
+
endTime: new Date(),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Clear all logged data
|
|
115
|
+
*/
|
|
116
|
+
clear() {
|
|
117
|
+
this.branches = [];
|
|
118
|
+
this.startTime = undefined;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Create TrajectoryLogger instance
|
|
123
|
+
*/
|
|
124
|
+
export function createTrajectoryLogger() {
|
|
125
|
+
return new DefaultTrajectoryLogger();
|
|
126
|
+
}
|
|
127
|
+
export { DefaultTrajectoryLogger };
|
|
128
|
+
//# sourceMappingURL=TrajectoryLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrajectoryLogger.js","sourceRoot":"","sources":["../../src/logging/TrajectoryLogger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Logging Module
|
|
3
|
+
*
|
|
4
|
+
* @packageDocumentation
|
|
5
|
+
* @module neural-search/logging
|
|
6
|
+
*/
|
|
7
|
+
export { createTrajectoryLogger, DefaultTrajectoryLogger, } from './TrajectoryLogger.js';
|
|
8
|
+
export type { TrajectoryLogger, BranchRecord, TrajectoryData, TrajectoryExportFormat, ParquetSchema, ParquetExport, } from './TrajectoryLogger.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,gBAAgB,EAChB,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,aAAa,GACd,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LearnedPruningPolicy - Learning-based Pruning Policy
|
|
3
|
+
*
|
|
4
|
+
* Advanced pruning policy that learns from search outcomes to improve
|
|
5
|
+
* pruning decisions. Achieves 70%+ node reduction while maintaining
|
|
6
|
+
* 95%+ solution quality.
|
|
7
|
+
*
|
|
8
|
+
* @module @nahisaho/musubix-neural-search
|
|
9
|
+
* @see TSK-NS-101
|
|
10
|
+
* @see DES-NS-101
|
|
11
|
+
* @see REQ-NS-101
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* import { createLearnedPruningPolicy } from './LearnedPruningPolicy.js';
|
|
16
|
+
*
|
|
17
|
+
* const policy = createLearnedPruningPolicy({ baseThreshold: 0.25 });
|
|
18
|
+
* const decision = policy.shouldPrune(state, context);
|
|
19
|
+
* if (decision.prune) {
|
|
20
|
+
* console.log(`Pruning: ${decision.reason}`);
|
|
21
|
+
* }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
import type { SearchState, SearchContext, PruningDecision } from '../types.js';
|
|
25
|
+
/**
|
|
26
|
+
* Configuration for learned pruning policy
|
|
27
|
+
*/
|
|
28
|
+
export interface PolicyConfig {
|
|
29
|
+
/** Base score threshold for pruning (default: 0.2) */
|
|
30
|
+
baseThreshold: number;
|
|
31
|
+
/** Learning rate for policy updates (default: 0.01) */
|
|
32
|
+
learningRate: number;
|
|
33
|
+
/** Minimum samples before pattern is considered learned (default: 10) */
|
|
34
|
+
minSamples: number;
|
|
35
|
+
/** Decay rate for pattern confidence over time (default: 0.99) */
|
|
36
|
+
decayRate: number;
|
|
37
|
+
/** Maximum search depth before auto-prune (default: 50) */
|
|
38
|
+
maxDepth: number;
|
|
39
|
+
/** Enable learning from outcomes (default: true) */
|
|
40
|
+
enableLearning: boolean;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Update information for policy learning
|
|
44
|
+
*/
|
|
45
|
+
export interface PolicyUpdate {
|
|
46
|
+
/** State that was evaluated */
|
|
47
|
+
state: SearchState;
|
|
48
|
+
/** Search context at time of decision */
|
|
49
|
+
context: SearchContext;
|
|
50
|
+
/** Whether the pruning decision was correct */
|
|
51
|
+
outcome: 'correct' | 'incorrect' | 'partial';
|
|
52
|
+
/** Actual result of the search path */
|
|
53
|
+
actualResult: 'success' | 'failure' | 'partial_success';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Statistics for the pruning policy
|
|
57
|
+
*/
|
|
58
|
+
export interface PolicyStatistics {
|
|
59
|
+
/** Total pruning decisions made */
|
|
60
|
+
totalDecisions: number;
|
|
61
|
+
/** Decisions resulting in prune=true */
|
|
62
|
+
pruneDecisions: number;
|
|
63
|
+
/** Correct pruning decisions */
|
|
64
|
+
correctPrunes: number;
|
|
65
|
+
/** Incorrect pruning decisions */
|
|
66
|
+
incorrectPrunes: number;
|
|
67
|
+
/** Partial outcomes */
|
|
68
|
+
partialOutcomes: number;
|
|
69
|
+
/** Total policy updates received */
|
|
70
|
+
totalUpdates: number;
|
|
71
|
+
/** Current accuracy (correctPrunes / (correct + incorrect)) */
|
|
72
|
+
accuracy: number;
|
|
73
|
+
/** Current pruning rate (pruneDecisions / totalDecisions) */
|
|
74
|
+
pruneRate: number;
|
|
75
|
+
/** Number of learned patterns */
|
|
76
|
+
learnedPatterns: number;
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Reset options
|
|
80
|
+
*/
|
|
81
|
+
export interface ResetOptions {
|
|
82
|
+
/** Whether to preserve learned patterns (default: false) */
|
|
83
|
+
preservePatterns?: boolean;
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Learned Pruning Policy Interface
|
|
87
|
+
*/
|
|
88
|
+
export interface LearnedPruningPolicy {
|
|
89
|
+
/**
|
|
90
|
+
* Decide whether to prune a state
|
|
91
|
+
*/
|
|
92
|
+
shouldPrune(state: SearchState, context: SearchContext): PruningDecision;
|
|
93
|
+
/**
|
|
94
|
+
* Update policy with outcome feedback
|
|
95
|
+
*/
|
|
96
|
+
updatePolicy(update: PolicyUpdate): void;
|
|
97
|
+
/**
|
|
98
|
+
* Get current statistics
|
|
99
|
+
*/
|
|
100
|
+
getStatistics(): PolicyStatistics;
|
|
101
|
+
/**
|
|
102
|
+
* Reset policy state
|
|
103
|
+
*/
|
|
104
|
+
reset(options?: ResetOptions): void;
|
|
105
|
+
/**
|
|
106
|
+
* Serialize policy to JSON
|
|
107
|
+
*/
|
|
108
|
+
toJSON(): string;
|
|
109
|
+
/**
|
|
110
|
+
* Restore policy from JSON
|
|
111
|
+
*/
|
|
112
|
+
fromJSON(json: string): void;
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Create a new LearnedPruningPolicy instance
|
|
116
|
+
*
|
|
117
|
+
* @param config - Optional configuration
|
|
118
|
+
* @returns LearnedPruningPolicy instance
|
|
119
|
+
*
|
|
120
|
+
* @example
|
|
121
|
+
* ```typescript
|
|
122
|
+
* const policy = createLearnedPruningPolicy({
|
|
123
|
+
* baseThreshold: 0.25,
|
|
124
|
+
* learningRate: 0.05,
|
|
125
|
+
* });
|
|
126
|
+
* ```
|
|
127
|
+
*/
|
|
128
|
+
export declare function createLearnedPruningPolicy(config?: Partial<PolicyConfig>): LearnedPruningPolicy;
|
|
129
|
+
//# sourceMappingURL=LearnedPruningPolicy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LearnedPruningPolicy.d.ts","sourceRoot":"","sources":["../../src/pruning/LearnedPruningPolicy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,eAAe,EAChB,MAAM,aAAa,CAAC;AAMrB;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,sDAAsD;IACtD,aAAa,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,YAAY,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,UAAU,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,SAAS,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,cAAc,EAAE,OAAO,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,KAAK,EAAE,WAAW,CAAC;IACnB,yCAAyC;IACzC,OAAO,EAAE,aAAa,CAAC;IACvB,+CAA+C;IAC/C,OAAO,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,CAAC;IAC7C,uCAAuC;IACvC,YAAY,EAAE,SAAS,GAAG,SAAS,GAAG,iBAAiB,CAAC;CACzD;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,mCAAmC;IACnC,cAAc,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,gCAAgC;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,uBAAuB;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,oCAAoC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AA+BD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,aAAa,GAAG,eAAe,CAAC;IAEzE;;OAEG;IACH,YAAY,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAAC;IAEzC;;OAEG;IACH,aAAa,IAAI,gBAAgB,CAAC;IAElC;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;IAEpC;;OAEG;IACH,MAAM,IAAI,MAAM,CAAC;IAEjB;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAkWD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,GAAE,OAAO,CAAC,YAAY,CAAM,GACjC,oBAAoB,CAEtB"}
|