Differences between revisions 1 and 7 (spanning 6 versions)
Revision 1 as of 2012-01-22 17:46:58
Size: 1162
Editor: vdelecroix
Comment:
Revision 7 as of 2012-02-22 15:24:19
Size: 2130
Editor: vdelecroix
Comment:
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.

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

LanguagesAndTilings (last edited 2014-03-19 13:30:06 by vdelecroix)