Hypercubic billiard word: Difference between revisions

Inthar (talk | contribs)
Inthar (talk | contribs)
Determining whether a scale word is a billiard scale: Described the algorithm used for finding billiard scales with a specified signature
Line 18: Line 18:


=== Determining whether a scale word is a billiard scale ===
=== Determining whether a scale word is a billiard scale ===
The following discussion documents a naive algorithm for answering whether a circular word ''s'' of arity ''r'' with signature vector '''a''' = ∑<sub>''i''</sub> ''a''<sub>''i''</sub> '''e'''<sub>''i''</sub> ∈ ℝ<sup>''r''</sup> corresponding to the signature ''a''<sub>1</sub>''x''<sub>1</sub>...''a''<sub>''r''</sub>''x''<sub>''r''</sub> is a billiard word:
Consider the ''r''-dimensional prism ''P'' = ∏<sup>''r''</sup><sub>''i''=1</sub> [0, ''a''<sub>''i''</sub>]. Since the pattern in which the billiard line ''L'' = ''L''(''t'') = '''a'''''t'' + ''b'' hits the integer coordinate hyperplanes (i.e. the sets ''x''<sub>''i''</sub> = ''n'' for ''n'' ∈ ℤ) is periodic with period 1 in ''t'', we may first regard ''P'' as an ''r''-torus and ''L'' : ℝ → ''P'' as a periodic function with period 1.  Because ''s'' is a billiard word, ''L'' ''cannot'' meet any point '''q''' ∈ ℝ<sup>''r''</sup> where two coordinates are integers. Thus for two distinct integers ''i'' < ''j'' in {1, ..., ''r''}, any choice of two integers ''m''<sub>''i''</sub> ∈ {0, ..., ''a''<sub>''i''</sub>} and ''n''<sub>''j''</sub> ∈ {0, ..., ''b''<sub>''j''</sub>} corresponds to the affine hyperplane (which we call a ''constraint hyperplane'')
<math>H(m_i, n_j) = \operatorname{span}(\mathbf{a}, \mathbf{e}_1, ..., \hat{\mathbf{e}}_i, ..., \hat{\mathbf{e}}_j, ..., \mathbf{e}_r) + (m_i \mathbf{e}_i + n_j \mathbf{e}_j),</math>
where the circumflexes indicate that the ''i''th and ''j''th basis vectors are to be omitted. In particular, ''L'' and ''H''(''m''<sub>''i''</sub>, ''n''<sub>''j''</sub>) are disjoint for any ''i'' < ''j'', any ''m''<sub>''i''</sub> ∈ {0, ..., ''a''<sub>''i''</sub> &minus; 1}, and any ''n''<sub>''j''</sub> ∈ {0, ..., ''b''<sub>''j''</sub> &minus; 1}.
Now, using the identifications '''e'''<sub>''i''</sub> = 0 for ''i'' in {1, ..., ''r''} on ''P'' results in a smaller ''r''-torus ''C'' whose fundamental domain in ℝ<sup>''r''</sup> is the unit cube ''C̄'' = ∏<sup>''r''</sup><sub>''i''=1</sub> [0, 1].
The path ''L'' descends to ''L'' : ℝ → ''C'' which is still periodic with period 1. The constraint hyperplanes also descend to ''C''. Now unwrap ''C'' to ''C̄'', and regard ''L'' as a subset of ''C̄'' that is partitioned into disjoint line segments that travel from one facet (i.e. an (''r'' &minus; 1)-dimensional face) of ''C̄'' to another. The reader is warned that to find (the images of) all of the constraint hyperplanes in ''C̄'', any constraint hyperplane that does not meet ''C̄'' should be shifted by integer increments in coordinates so that the shifted hyperplane does meet ''C̄''. The constraint hyperplanes partition ''C̄'' into finitely many regions (as they do for ''P''), and any valid billiard path ''L'' in ''C̄'' must meet len(''s'')-many of these regions before returning to its starting point.
Now we use the projection π, a linear map on ℝ<sup>''r''</sup> whose kernel is generated by '''a''', to project ''C̄'' to an (''r'' &minus; 1)-dimensional convex polytope π(''C̄''). The constraint hyperplanes now become (''r'' &minus; 2)-dimensional hyperplanes that partition π(''C̄'') into finitely many convex regions. The components of ''L'' now become points in π(''C̄''), and each region in the partition has at most one point of π(''L''). When ''L'' hits an integer coordinate hyperplane ''x''<sub>''i''</sub> = (some integer), the corresponding point in π(''L'') now shifts by &minus;π('''e'''<sub>''i''</sub>). Since ''L'' hits len(''s'') coordinate hyperplanes before returning to its starting region, if we choose any point in π(''L'') and shift it len(''s'') times, each corresponding to the coordinate of the hyperplane hit by ''L''. To find all billiard scales with signature '''a''', we simply iterate the procedure described in the previous sentence over all regions in the partition we obtained in π(''C̄''); we may choose the centroid of the region (which is a convex polytope) as the starting point of π(''L'').


== Questions ==
== Questions ==