Background
tensor4all-tensorci (chain TCI) has a GlobalPivotFinder mechanism that actively searches for points where the current tensor train approximation has high interpolation error, and adds them as new pivots. This is critical for convergence on functions with localized features.
tensor4all-treetci currently lacks this capability. Pivots are discovered only through edge-local proposers (Kronecker product of existing pivots + full-pivot LU selection), with no explicit global error-driven search.
This gap is a blocker for migrating tensor4all-quanticstci from the chain TCI backend to the tree TCI backend (see tensor4all/Tensor4all.jl#21).
Current State
Chain TCI (tensor4all-tensorci)
GlobalPivotFinder trait in globalpivot.rs
DefaultGlobalPivotFinder implementation:
- Generates
nsearch random initial points
- For each point, performs floating-zone local optimization (sweeps all dimensions, selects index with max error)
- Collects points where
|f(x) - TT(x)| > abs_tol × tol_margin
- Limits results to
max_nglobal_pivot
- Key parameters:
nsearch (default: 5), max_nglobal_pivot (default: 5), tol_margin (default: 10.0)
- Called once per sweep iteration in the main TCI2 loop
Tree TCI (tensor4all-treetci)
- Three proposer strategies:
DefaultProposer, SimpleProposer, TruncatedDefaultProposer
- All proposers generate candidates combinatorially from existing pivot sets
- No error evaluation against the current TTN approximation
- No random search component
Proposed Design
Add a GlobalPivotFinder (or equivalent) to tensor4all-treetci that:
- Evaluates the current tree tensor network at random sample points
- Computes interpolation error:
|f(x) - TTN(x)|
- Performs local optimization (generalized floating zone for tree topology)
- Adds high-error points as global pivots via
add_global_pivots
Considerations
- Tree topology generalization: The chain floating-zone sweeps dimensions left-to-right. For trees, the sweep order needs to follow the tree structure (e.g., BFS or leaf-to-root).
- Trait-based design: Follow the same
GlobalPivotFinder trait pattern from chain TCI for extensibility.
- Integration point: Called in
crossinterpolate2 main loop, after each sweep, same as chain TCI.
- Parameters to add to
TreeTciOptions: nsearch, max_nglobal_pivot, tol_margin (or equivalent names).
Acceptance Criteria
Related Issues
Background
tensor4all-tensorci(chain TCI) has aGlobalPivotFindermechanism that actively searches for points where the current tensor train approximation has high interpolation error, and adds them as new pivots. This is critical for convergence on functions with localized features.tensor4all-treetcicurrently lacks this capability. Pivots are discovered only through edge-local proposers (Kronecker product of existing pivots + full-pivot LU selection), with no explicit global error-driven search.This gap is a blocker for migrating
tensor4all-quanticstcifrom the chain TCI backend to the tree TCI backend (see tensor4all/Tensor4all.jl#21).Current State
Chain TCI (
tensor4all-tensorci)GlobalPivotFindertrait inglobalpivot.rsDefaultGlobalPivotFinderimplementation:nsearchrandom initial points|f(x) - TT(x)| > abs_tol × tol_marginmax_nglobal_pivotnsearch(default: 5),max_nglobal_pivot(default: 5),tol_margin(default: 10.0)Tree TCI (
tensor4all-treetci)DefaultProposer,SimpleProposer,TruncatedDefaultProposerProposed Design
Add a
GlobalPivotFinder(or equivalent) totensor4all-treetcithat:|f(x) - TTN(x)|add_global_pivotsConsiderations
GlobalPivotFindertrait pattern from chain TCI for extensibility.crossinterpolate2main loop, after each sweep, same as chain TCI.TreeTciOptions:nsearch,max_nglobal_pivot,tol_margin(or equivalent names).Acceptance Criteria
GlobalPivotFindertrait (or equivalent) defined intensor4all-treetcicrossinterpolate2main loopTreeTciOptionsextended with global pivot search parametersRelated Issues