1162
Comment:
|
2130
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
## page was renamed from combinat/LanguageAndTiling | |
Line 3: | Line 4: |
This page gathers ideas for refactorization of sage.combinat.words and a creation of a class for tilings. A word (in the way they are considered in Sage) should be considered as particular case of tilings. The two main notions which coexist with some generality are : tiling generated by local rules (subshift of finite type) and tiling generated by substitution rule (morphic word, adic systems, ...). generic definition : A ''tiling'' is a map from an enumerated set to an alphabet. A finite word is a word for which the enumeration set is an interval of integers (?), an ''infinite word'' ? a ''bi-infinite word'' ? |
This page gathers ideas for refactorization of sage.combinat.words and implementation of tilings. |
Line 9: | Line 8: |
The main structure should go in the patch [[http://trac.sagemath.org/sage_trac/ticket/12224|#12224]]. Up to now the code is a bit dissaminated everywhere in Sage: * sage.categories.languages * sage.categories.factorial_languages * sage.categories.examples.languages * sage.monoids.free_monoid * sage.combinat.languages.* * sage.combinat.words.* * sage.dynamics.symbolic.full_shift |
|
Line 10: | Line 19: |
The highest level class should be something like TilingSpace. It contains an enumerated set, an alphabet (and optionally a way of plotting). Do we always assume that the enumerated set is either a group (like ZZ^d) or a sub-semigroup of a group (like NN^d) ? | |
Line 12: | Line 20: |
=== Tiling and words === | The highest level class should be something like TilingSpace. It contains an enumerated set, an alphabet (and optionally a way of plotting). Do we always assume that the enumerated set is either a group (like ZZ) or a sub-semigroup of a group (like NN) ? |
Line 14: | Line 22: |
=== Behavior of algorithms with infinite input data === | |
Line 15: | Line 24: |
=== Factor, equality === By going from ZZ to ZZ^2 or more general groups, the notion of factor is not well defined. It depends of some shape. In ZZ we take integers interval |
What to do for equality comparison of infinite words ? === Finite languages and factor set === Most of it was implemented by Franco. We would like to enhance it and use Rauzy castle. See [[http://trac.sagemath.org/sage_trac/ticket/12225|#12225]]. === Substitutive and adic languages === There are many algorithms for language described by a sequence of substitutions. The particular case of morphic and purely morphic languages corresponds respectively to periodic and purely_periodic directive word. * Enumeration of factors, desubstitution ([[http://trac.sagemath.org/sage_trac/ticket/12227|#12227]]) * Factor complexity for purely morphic languages ([[http://trac.sagemath.org/sage_trac/ticket/12231/#12231]]) * Equality for purely morphic language (following J. Honkala, CANT, chapter 10) == TODO list == which should go in the main trac ticket * words path (currently in sage.combinat.words.paths) which have to be modified to fit with the new implementation other todos * 1-dim subshift of finite type / sofic * n-dim finite words and n-dimensional shifts * n-dim subshifts of finite type * n-dim substitutive subshift * cellular automata |
Language and tilings
This page gathers ideas for refactorization of sage.combinat.words and implementation of tilings.
Structure
The main structure should go in the patch #12224. Up to now the code is a bit dissaminated everywhere in Sage:
- sage.categories.languages
- sage.categories.factorial_languages
- sage.categories.examples.languages
- sage.monoids.free_monoid
- sage.combinat.languages.*
- sage.combinat.words.*
- sage.dynamics.symbolic.full_shift
Tiling space
The highest level class should be something like TilingSpace. It contains an enumerated set, an alphabet (and optionally a way of plotting). Do we always assume that the enumerated set is either a group (like ZZ) or a sub-semigroup of a group (like NN) ?
Behavior of algorithms with infinite input data
What to do for equality comparison of infinite words ?
Finite languages and factor set
Most of it was implemented by Franco. We would like to enhance it and use Rauzy castle. See #12225.
Substitutive and adic languages
There are many algorithms for language described by a sequence of substitutions. The particular case of morphic and purely morphic languages corresponds respectively to periodic and purely_periodic directive word.
Enumeration of factors, desubstitution (#12227)
Factor complexity for purely morphic languages (http://trac.sagemath.org/sage_trac/ticket/12231/#12231)
- Equality for purely morphic language (following J. Honkala, CANT, chapter 10)
TODO list
which should go in the main trac ticket
- words path (currently in sage.combinat.words.paths) which have to be modified to fit with the new implementation
other todos
- 1-dim subshift of finite type / sofic
- n-dim finite words and n-dimensional shifts
- n-dim subshifts of finite type
- n-dim substitutive subshift
- cellular automata