diff --git a/papers/even_level_graph_generators/experiments/shard_hunt.py b/papers/even_level_graph_generators/experiments/shard_hunt.py new file mode 100644 index 0000000..74928d5 --- /dev/null +++ b/papers/even_level_graph_generators/experiments/shard_hunt.py @@ -0,0 +1,59 @@ +"""Witness-hunt for one dual, sharded across processes: shard k of m scans +valid parity partitions [k::m]. First witness found anywhere proves the +dual is bridge-derived. Run several shards in parallel.""" +import sys +import os +import time +sys.path.insert(0, '/Users/didericis/Code/math-research/papers/' + 'level_resolutions_of_maximal_planar_graphs/experiments') +sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) +from load_holton_mckay import parse_planar_code +from tutte_dual_treecolor import dual_triangulation +from exhaustive_bridge import valid_parity_partitions +from fast_bridge import EdgeCode +from fast_decide import expand_and_check + + +def run(i, shard, nshards, cap): + graphs = parse_planar_code('experiments/nonham38m4.pc') + G, _ = dual_triangulation(graphs[i][0]) + n = G.number_of_nodes() + code = EdgeCode(G.nodes()) + code.state0 = code.state_of(G) + parts = list(valid_parity_partitions(G)) + mine = list(range(shard, len(parts), nshards)) + print(f'dual {i} shard {shard}/{nshards}: {len(mine)} partitions', flush=True) + t0 = time.time() + for j in mine: + labels = parts[j] + seen = {code.state0} + frontier = [code.state0] + found = False + while frontier and len(seen) < cap: + new = [] + for st in frontier: + wit, neigh = expand_and_check(st, code, labels, n) + if wit: + found = True + break + for ns in neigh: + if ns not in seen: + seen.add(ns) + new.append(ns) + if found: + break + frontier = new + if found: + print(f'dual {i} shard {shard}: WITNESS at partition {j} ' + f'(orbit>={len(seen)}, {time.time()-t0:.0f}s) -> BRIDGE-DERIVED', + flush=True) + return + print(f' shard {shard} part {j}: no witness (orbit {len(seen)}, ' + f'{time.time()-t0:.0f}s)', flush=True) + print(f'dual {i} shard {shard}: done, no witness in my partitions', flush=True) + + +if __name__ == '__main__': + i = int(sys.argv[1]); shard = int(sys.argv[2]); nshards = int(sys.argv[3]) + cap = int(sys.argv[4]) if len(sys.argv) > 4 else 300000 + run(i, shard, nshards, cap) diff --git a/papers/even_level_graph_generators/paper.aux b/papers/even_level_graph_generators/paper.aux index 8890fd0..a1941c9 100644 --- a/papers/even_level_graph_generators/paper.aux +++ b/papers/even_level_graph_generators/paper.aux @@ -40,10 +40,10 @@ \newlabel{def:intertwining-tree}{{4.6}{4}{Intertwining tree}{theorem.4.6}{}} \newlabel{thm:intertwining-iff-hamiltonian-dual}{{4.7}{4}{}{theorem.4.7}{}} \citation{holton-mckay} -\bibcite{holton-mckay}{1} \newlabel{conj:every-triangulation-derived}{{4.8}{5}{}{theorem.4.8}{}} \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{Empirical status}}{5}{section*.1}\protected@file@percent } \@writefile{toc}{\contentsline {subsection}{\tocsubsection {}{}{The boundary case $n = 21$}}{5}{section*.2}\protected@file@percent } +\bibcite{holton-mckay}{1} \newlabel{tocindent-1}{0pt} \newlabel{tocindent0}{14.69437pt} \newlabel{tocindent1}{17.77782pt} diff --git a/papers/even_level_graph_generators/paper.log b/papers/even_level_graph_generators/paper.log index 1bb6ff3..a6d219c 100644 --- a/papers/even_level_graph_generators/paper.log +++ b/papers/even_level_graph_generators/paper.log @@ -1,4 +1,4 @@ -This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 21 MAY 2026 23:45 +This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022) (preloaded format=pdflatex 2022.10.5) 22 MAY 2026 10:49 entering extended mode restricted \write18 enabled. %&-line parsing enabled. @@ -404,7 +404,7 @@ Here is how much of TeX's memory you used: 27647 multiletter control sequences out of 15000+600000 475666 words of font info for 53 fonts, out of 8000000 for 9000 1302 hyphenation exceptions out of 8191 - 69i,8n,76p,781b,504s stack positions out of 10000i,1000n,20000p,200000b,200000s + 69i,8n,76p,781b,427s stack positions out of 10000i,1000n,20000p,200000b,200000s @@ -418,10 +418,10 @@ texlive/2022/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy7.pfb> -Output written on paper.pdf (6 pages, 548304 bytes). +Output written on paper.pdf (6 pages, 549382 bytes). PDF statistics: - 171 PDF objects out of 1000 (max. 8388607) - 127 compressed objects within 2 object streams + 173 PDF objects out of 1000 (max. 8388607) + 129 compressed objects within 2 object streams 33 named destinations out of 1000 (max. 500000) 77 words of extra memory for PDF output out of 10000 (max. 10000000) diff --git a/papers/even_level_graph_generators/paper.pdf b/papers/even_level_graph_generators/paper.pdf index 180fe72..7b8543f 100644 Binary files a/papers/even_level_graph_generators/paper.pdf and b/papers/even_level_graph_generators/paper.pdf differ diff --git a/papers/even_level_graph_generators/paper.tex b/papers/even_level_graph_generators/paper.tex index 21ab465..11b6815 100644 --- a/papers/even_level_graph_generators/paper.tex +++ b/papers/even_level_graph_generators/paper.tex @@ -365,19 +365,26 @@ source vertex), hence trivially valid derived level graphs. So the disjunction holds for them through the derived-level-graph disjunct -- the first instances where that disjunct does work the intertwining-tree disjunct cannot. -\item The remaining four are not Even Level Graphs for any source. A -bounded backward $E/O$-orbit search (tens of thousands of states, a -handful of source labellings) found no Even Level Graph in their -orbits, but this is far too shallow relative to the orbit size at -$n = 21$ to be conclusive; their status as derived level graphs is -open. +\item The remaining four are not Even Level Graphs for any source, and +their full $E/O$-orbits ($\sim\!10^8$ states per source labelling) are +far too large to exhaust. Restricting to \emph{bridge switches} +(Definition~\ref{def:bridge-switch}) shrinks the relevant orbits by +roughly two orders of magnitude and, crucially, keeps every reachable +triangulation valid. A backward bridge-switch search over the valid +parity partitions found an Even Level Graph witness for each of the +four, so all four are \emph{bridge-derived level graphs} +(Definition~\ref{def:bridge-derived-level-graph}) and hence valid +derived level graphs. The witnessing orbits are small -- between a few +hundred and $\sim\!1.7\times 10^5$ states -- even though other parity +partitions of the same triangulations have orbits exceeding $10^6$; +finding one good partition suffices. \end{itemize} -Thus at $n = 21$ the disjunction is confirmed for two of the six -critical iso classes and undetermined for the other four. Settling -those four -- equivalently, deciding $E/O$-orbit reachability from an -Even Level Graph -- is the first genuinely open instance of the -conjecture, and calls for either a better reachability algorithm or a -structural invariant of $E/O$-orbits. +Thus at $n = 21$ the disjunction is confirmed for all six critical iso +classes: two are Even Level Graphs outright, and the other four are +bridge-derived level graphs. The bridge-switch restriction is what made +the search tractable -- it both shrinks the orbit and guarantees +validity, so any Even Level Graph located in a backward orbit is an +immediate witness. \begin{thebibliography}{9}