c947ce75ff
- New paper papers/even_level_graph_generators/: defines Even Level Graph (every level cycle even), derived level graphs, intertwining trees, and the disjunction conjecture (every maximal planar graph is a derived level graph or intertwining tree). Empirically tested through n=11: every iso class is at least an intertwining tree, so the disjunction holds trivially in this range. The intertwining tree disjunct fails at the Tutte graph dual (n=25), so the disjunction becomes non-trivial past some unknown threshold. - Level Switching paper: adds Section 4 (Reachability via edge switches) with the two-step argument (Sleator-Tarjan-Thurston for Case 1; face-merges for Case 2) and Theorem 4.1 (O(n) edge switches suffice to reach all-depth-0). Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
39 lines
1.6 KiB
Python
39 lines
1.6 KiB
Python
"""Plot iso[49] at n=9, the counterexample to Conjecture 4.4."""
|
|
import sys
|
|
import os
|
|
sys.path.insert(0, '/Users/didericis/Code/math-research/papers/'
|
|
'level_resolutions_of_maximal_planar_graphs/experiments')
|
|
import networkx as nx
|
|
import matplotlib.pyplot as plt
|
|
from triangulation_gen import enumerate_all_triangulations
|
|
|
|
OUT_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
|
|
tris = enumerate_all_triangulations(9)
|
|
G = tris[49]
|
|
print(f'iso[49] degree sequence: {sorted([G.degree(v) for v in G.nodes()], reverse=True)}')
|
|
print(f'iso[49] edges: {sorted(G.edges())}')
|
|
|
|
# Use planar layout
|
|
_, emb = nx.check_planarity(G)
|
|
pos = nx.combinatorial_embedding_to_pos(emb)
|
|
|
|
fig, ax = plt.subplots(figsize=(8, 7))
|
|
nx.draw_networkx_edges(G, pos, ax=ax, edge_color='#333', width=1.5)
|
|
# Color vertices by degree
|
|
degree_color = {4: '#3b82f6', 5: '#dc2626'}
|
|
node_colors = [degree_color[G.degree(v)] for v in G.nodes()]
|
|
nx.draw_networkx_nodes(G, pos, ax=ax, node_color=node_colors,
|
|
node_size=600, edgecolors='black', linewidths=1.2)
|
|
nx.draw_networkx_labels(G, pos, ax=ax, font_color='white',
|
|
font_size=11, font_weight='bold')
|
|
ax.set_aspect('equal'); ax.axis('off')
|
|
ax.set_title('iso[49] at $n=9$: degree sequence (5,5,5,5,5,5,4,4,4).\n'
|
|
'NOT a valid derived level graph of any Even Level Graph.\n'
|
|
'Blue = degree 4, Red = degree 5.', fontsize=11)
|
|
fig.tight_layout()
|
|
out = os.path.join(OUT_DIR, 'fig_n9_counterexample.png')
|
|
fig.savefig(out, dpi=180, bbox_inches='tight')
|
|
plt.close(fig)
|
|
print(f'wrote {out}')
|