Open badisa opened 1 week ago
PR naming note: This doesn't quite target "uniform overlap" between all adjacent pairs of windows [(lambdas[i], lambdas[i+1]) for i in range(K-1)]
. It targets a fixed value of overlap for the first K-2
pairs [(lambdas[i], lambdas[i+1]) for i in range(K-2)]
. The very last pair (lambdas[-2], lambdas[-1])
might have a much larger overlap.
(In these cases, uniform overlap might have been achieved if we had known to target a slightly higher overlap(i, i+1) for all i
. One possible brute-force approach (https://github.com/proteneer/timemachine/pull/1385) would be to call the current method several times with different trial values of target_overlap
, trying to make target_overlap
as large as possible without increasing len(lambdas)
.)
(x-axis: lambda idx
, y-axis: overlap(lambdas[idx], lambdas[idx+1])
, dashed grey line: target overlap, blue curve: current approach, orange curve: brute-force (but maybe more uniform) approach)
This PR adds support for re-balancing the lambda schedule generated by adaptive bisection aiming to space the windows such that neighboring windows have the same target overlap. As noted by @maxentile in https://github.com/proteneer/timemachine/pull/1426#issuecomment-2484094405, this does not provide a uniform set of overlaps as the overlap between the N-1 and Nth window may be higher.