Skip to content

Safe splits - #40

Merged
ms609 merged 27 commits into
masterfrom
Safe-Splits
Nov 29, 2018
Merged

Safe splits#40
ms609 merged 27 commits into
masterfrom
Safe-Splits

Conversation

@ms609

@ms609 ms609 commented Nov 27, 2018

Copy link
Copy Markdown
Owner

Use a better approach to split recognition; remove dependency on Quartet (which depends in turn on TreeSearch)

@codecov

codecov Bot commented Nov 29, 2018

Copy link
Copy Markdown

Codecov Report

Merging #40 into master will increase coverage by 0.28%.
The diff coverage is 83.21%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #40      +/-   ##
==========================================
+ Coverage   57.73%   58.01%   +0.28%     
==========================================
  Files          39       41       +2     
  Lines        4398     4475      +77     
==========================================
+ Hits         2539     2596      +57     
- Misses       1859     1879      +20
Impacted Files Coverage Δ
R/phylo.R 23.95% <ø> (ø) ⬆️
src/ape_reorder.h 77.77% <ø> (ø) ⬆️
src/mpl.c 31.99% <ø> (ø) ⬆️
R/mpl_morphyex.R 73.33% <ø> (ø) ⬆️
src/TreeSearch-init.c 100% <ø> (ø) ⬆️
src/phangorn_bip.cpp 100% <100%> (ø)
R/Partitions.R 100% <100%> (ø)
src/renumber_tree.h 94.66% <100%> (ø) ⬆️
src/RMorphy.c 63.06% <100%> (ø) ⬆️
R/parse_files.R 70.83% <48%> (+0.17%) ⬆️
... and 7 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update ae73150...afacc15. Read the comment docs.

Martin Smith added 2 commits November 29, 2018 09:01
As Travis now seems to have improved its behaviour
@ms609
ms609 merged commit bc9c959 into master Nov 29, 2018
@ms609
ms609 deleted the Safe-Splits branch November 29, 2018 09:29
ms609 added a commit that referenced this pull request Jun 21, 2026
Backwards comment fixed+landed (8671fda); Δ-probe showed ~48% greedy-regret
share in expand_and_reinsert on Zanol; exact-scorer port prepared+validated on
worktree (41b0d237); heavy A/B path-killed (no mission dataset >=120t, so
prune_reinsert never auto-enables) → land+A/B deferred to composition #40.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ms609 added a commit that referenced this pull request Jun 21, 2026
Read of ts_driven.cpp orchestration: per-phase score_tree prints are
verbosity>=2-gated (off at default v=1L); only un-gated full rescores are the
2 per-outer-cycle convergence checks (~µs each, ~0.001% wall, one redundant but
sub-floor) + 1 final/replicate. Step-switching minimal (each phase owns its
state). R/C marshalling already T-P5o'd as amortizable. Last undone non-gated
aspect of the isolation plan; addressable wall now lives in composition #40.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ms609 added a commit that referenced this pull request Jun 21, 2026
…n race (#39 closed)

Post-flip cpp-search KPI (Hamilton, freshness-asserted ratchetCycles==6L):
- QUALITY CLOSED: TS reaches the optimum on every dataset/seed; on Zanol (ns=9)
  TS is the ONLY reliably-1261 config (TNT fast configs miss +1).
- Wall gap is NOT algorithmic: candidate-efficiency ~1.2-1.9x near-parity
  (count-based), throughput ~2x at-limit; the 8-110x is a default-budget
  mismatch (TS default heavy / TNT default light), corrected from an initial
  overreach (advisor).
- #39 CLOSED: ratchet isolated race = cycle-quality PARITY (TNT does NOT reach
  the optimum in fewer reweight cycles) + ~2x at-limit throughput, no lever.
- Component-isolation program now COMPLETE; only composition #40 (gated,
  modest + reliability-bounded) remains.

Adds the ratchet-race driver, KPI CSVs, and the component-isolation plan STATUS.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ms609 added a commit that referenced this pull request Jun 21, 2026
…te before #40

All components closed on both gates (ratchet cycle-parity race 2026-06-21).
Resolve the stale Next-task/TBD sections; add the pre-composition fresh-eyes
re-audit gate.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ms609 added a commit that referenced this pull request Jun 21, 2026
#55 fuse=dead-weight (drop); #56 col-reduction shipped opt-in 830b8cc (Giles 17%
Zhu 9% Zanol ~0%, dCand!=0 mixed-state -> opt-in not default, oracle before any
default-on); #57 ~1.9% EW sub-floor deferred.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ms609 added a commit that referenced this pull request Jun 21, 2026
Every MaximizeParsimony/SearchControl switch + preset + the opt-in env levers
(TS_SECT_COLREDUCE), each with a when-relevant assessment grounded in this
session's findings (ratchet 6, fuse=dead-weight, col-reduce mixed-state-only,
rasStarts, prune-reinsert >=120t, clipOrder, the 3x trailing-TBR consolidation).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ms609 added a commit that referenced this pull request Jun 21, 2026
…ot global

Jobs 17533071 (20-rep) + 17541277 (40-rep), 3 seeds EW. clipOrder=2 (tips-first)
~1.25x faster / ~26% fewer candidates, but biases the trajectory: clean ~1.5x win
on Zanol (uniform ns=9, 3/3 optima); +1 quality tradeoff on Zhu that 2x budget does
NOT recover; wall-unstable on Giles. Complements TS_SECT_COLREDUCE. Default stays 0L.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ms609 added a commit that referenced this pull request Jun 23, 2026
…efault-OFF (#B2)

Adds compute_collapsed_flags_aggressive: collapse internal branches of minimum
possible length 0 (final[p] & final[c] != 0 per char), validated bit-for-bit
against a brute-force MPR oracle (0/206 internal, fp=0). Gated TS_COLLAPSE_AGGRESSIVE
(default OFF), scoped to tbr_search neighbourhood reduction; pool dedup keeps exact
flags; NA datasets fall back to conservative. Byte-identical OFF (156/156 tests).

Inert on the char-rich roster (0% density at optimum) but the mbank corpus has a
char-poor tail where density is high; b2_speed_cell.R + hamilton_b2_speed_array.sh
run the wall-clock-to-optimum ON/OFF A/B there. Diagnostic export
ts_collapsed_flags_debug + b2_*.R probes + #40 handoff briefing.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ms609 added a commit that referenced this pull request Jun 23, 2026
…liable speed lever

Hamilton job 17591484 (896 cells, 10 char-poor + 4 control × 32 seeds):
faster-frac 42%, median speedup ≈ 0, dScore ≈ 0; project2144 ≈1.6× SLOWER.
char/tip ratio does not predict winners → no selector → CLOSED.
Add b2_speed_analyze.R (paired wall-clock-to-floor analysis script).
Briefing updated with "TESTED, NOT RECOMMENDED" TL;DR for #40.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ms609 added a commit that referenced this pull request Jun 23, 2026
…trategy briefing

Prototype: ts_driven.cpp / ts_parallel.cpp wired with TS_FUSE_PAIRWISE env flag.
Functional on 88t (validated), no quality gain over matched-wall-clock multistart
on 4 hardest datasets; TS reaches TNT optimum everywhere → recombination NOT a
quality lever, residual = budget. B1 closed; flag retained for completeness.
Add pairwise-fuse strategy briefing and zero-exchanges analysis for #40.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ms609 added a commit that referenced this pull request Jul 3, 2026
… + Δ-probe

expand_and_reinsert (T-266, 2026-03-27) used the union-of-finals
fitch_indirect_length_bounded approximation that the June directional fix
(#26/#27) replaced everywhere else — it was MISSED. Port it to the exact
edge_set scorer, mirroring ts_wagner.cpp:487:
  - per-tip compute_insertion_edge_sets (prelim is current via
    wagner_incremental_rescore) + fitch_indirect_length_cached per edge.

Also a gated, non-perturbing -DTS_SCOREAPPROX_PROBE oracle that tallied
Δ = exact_cost(E_bounded) − min_E exact_cost(E) per placement. On Zanol
(forced pruneReinsertCycles): bounded chose strictly-worse edges in ~62%
of placements, mean ~6 steps, ~48% greedy-regret SHARE. After the port the
probe reports Δ=0 at every placement (production == exact argmin).

NOTE: this is greedy-regret SHARE, not realizable wall-clock — prune_reinsert
auto-enables ONLY at nTip>=120 (`large` preset); NO mission dataset reaches
120t (max=88). So this path runs on zero default mission searches. Land +
time-matched A/B (NNI-polish `large` preset, ≥120t) is COMPOSITION-gated (#40).
Worktree-only; NOT for cpp-search until composition.

Tests: prune-reinsert 44/0, drift 22/0, ratchet 17/0, tbr 28/0.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ms609 added a commit that referenced this pull request Jul 3, 2026
…sert (T-266)

Lands 41b0d2373's exact edge-set insertion scorer in expand_and_reinsert (replacing the union-of-finals fitch_indirect_length_bounded approximation; mirrors the June directional fix at ts_wagner.cpp), plus branch post-review hardening: 4007f8e port (byte-identical to 41b0d2373); 0fb6de9 thread_local probe accumulators (parallel-search data-race fix, production byte-identical); 98122e5 NA + IW score-soundness regression tests (Vinther2008).

The 'NOT for cpp-search until composition (#40)' note in 4007f8e's body is superseded: landing the correctness fix is decoupled from the #40 time-matched A/B. Dormant path (prune-reinsert auto-enables only at nTip>=120 / large preset; no default mission search reaches 120t) so nil current wall-clock risk. Verified: clean consistent rebuild + targeted tests 123 pass / 0 fail (incl new NA/IW soundness + wagner-quality).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
ms609 added a commit that referenced this pull request Aug 5, 2026
Retire file-based coordination for the issue tracker
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant