ECO and Object Grammars:
two methods for the enumeration of
combinatorial objects
Simone Rinaldi
Dipartimento di Scienze Matematiche e
Informatiche “Roberto Magari” Siena
Workshop "Formal Languages and Automata:
Theory and Applications",
September 2003, Ravello
ECO method
 ECO is a method for Enumeration of Combinatorial
Objects introduced by Barcucci, Del Lungo, Pergola
and Pinzani
O a class of combinatorial objects
p a parameter on O (i.e. p: O  N+)
On the objects of O having size n, On={o:p(o)=n}
 ECO operator:
J: On  P(On+1 )
P(On+1 ) is the set of parts of On+1
Proposition: Let J be an operator on O, such that:
1. for each o' On+1 there is o  On s.t. o' J(o);
2. for each o,o'  On with o  o', J(o)  J(o') = ;
then
{J(o) : o  On }
is a partition of On+1
A very simple example:
Parallelogram Polyominoes
 A parallelogram polyomino
A very simple example:
Parallelogram Polyominoes
 A parallelogram polyomino
A very simple example:
Parallelogram Polyominoes
 A parallelogram polyomino
upper path
lower path
Well-known enumerative results
 The number of parallelogram polyominoes
with semi-perimeter n+2:
1  2n 
 
fn =
n 1  n 
•The Catalan numbers:
1,2,5,42,132,429,…
•The 5 parallelogran polyominoes with sp=4
The ECO operator for
Parallelogram Polyominoes
(3)
(1)
(2)
(4)
(k)  (1) (2) (3) … (k-1) (k) (k+1)
(3)
Generating tree of the operator J
The recursive construction determined by J can be suitably
described through a generating tree
(1)
(2)
(1)
(1)
(2)
(1)
(2)
(3)
A succession rule

(1)
(k)  (1) (2) … (k) (k+1) (k+1)
(1)
(1)
(1)
(2)
1
(2)
(1)
fn
(2)
2
(3)
5
ECO method: enumeration (1)
 Born as a method for the enumeration of
combinatorial objects:
 E. Barcucci, A. Del Lungo, E. Pergola, R. Pinzani, ECO: a
methodology for the Enumeration of Combinatorial
Objects.
 E. Barcucci, A. Del Lungo, E. Pergola, R. Pinzani, A
methodology for plane tree enumeration.
 E. Barcucci, A. Del Lungo, E. Pergola, R. Pinzani, Directed
animals, forests and permutations.
ECO method: algebraic
characterizations (2)
 Operations on succession rules:
 L. Ferrari, E. Pergola, R. Pinzani, S. Rinaldi, An algebraic
characterization of the set of succession rules.
 L. Ferrari, E. Pergola, R. Pinzani, S. Rinaldi, Jumping
succession rules and their generating functions.
 S. Brlek, E. Duchi, E. Pergola, S. Rinaldi, On the
equivalence problem for succession rules.
 Production matrices:
 E. Deutsch, L. Ferrari, S. Rinaldi, Production matrices.
ECO method:
generating functions (3)
 To determine the generating function
associated with an ECO operator:
 C. Banderier, M. Bousquet-Melou, A. Denise, P. Flajolet, D.
Gardy and D. Gouyou-Beauchamps, Generating functions
for generating trees.
 E. Duchi, A. Frosini, S. Rinaldi, R. Pinzani, A note on
rational succession rules.
ECO method: random and
exhaustive generation (4)
 Random generation of combinatorial
objects:
 E. Barcucci, A. Del Lungo, E. Pergola, R. Pinzani, Random
generation of trees and other combinatorial objects.
 Exhaustive generation of objects:
 A. Del Lungo, A. Frosini, S. Rinaldi, ECO method and the
exhaustive generation of convex polyominoes.
 S. Bacchelli, E. Barcucci, E. Grazzini, E. Pergola,
Exhaustive generation of combinatorial objects by ECO
Object grammars
<{Oi}iI , {EOi}iI , {j}jJ , {A}>
Oi is a class of objects;
EOi is a finite subsets of Oi (terminal
objects);
j is an operation on {Oi}iI (object
operation);
A is an element of {Oi}iI (axiom).
Object grammar for Dyck paths
<{D}, {.}, {}, {D}>

Object grammar for Dyck paths
<{D}, {.}, {}, {D}>
=
+
f(x)=1+x2f 2(x)
A new approach
Let L be the language of the words
from the root to a node in the generating
tree of 
(1)
(1)
(1)
(2)
(2)
(1)
(2)
(3)
L= {(1),(1)(1), (1)(2), (1)(1)(1), (1)(1)(2), (1)(2)(1),
(1)(2)(2), (1)(2)(3), … }
S

S
=
 m(w)w
w
L

= (1)  (1)(1)  (1)(2)  (1)(1)(1) 
(1)(1)( 2)  (1)( 2)(1)  (1)( 2)( 2)  ...
f

= x  2 x  5x 2  42 x3 ...
Operations on S
nS
(i)S

=
 (n  m(w)) w
nN
 m(w)(i)w
iN
w
L

=
w
L
w = (i1)(i2 ).... (ik )
w  L
w = (i1  1)(i2  1).... (ik  1)

Example:
w = (1)(2)(3)(2)(3)
L
S






= w : w  L
=
 m(w)w

w = (2)(3)(4)(3)(4)

w
L

S  ,S  have the same generating function
The series associated with 
Let C be the series associated with :
C=(1)+(1)C +(1)C +(1)CC
Let wC, w  (1) :
w = (1)(1)(2)(3)(3)  (1)C
w = (1)(2)(2)(3)(4)(2)  (1)C
w = (1)(2)(2)(3)(4)(2)(1)(2)(2)  (1)C C
Formal power series and
Object Grammars
C=(1)+(1)C +(1)C +(1)CC
C(x)=x+xC(x) +xC(x) +xC2
Formal power series and
Object Grammars
C=(1)+(1)C +(1)C +(1)CC
Formal power series and
Object Grammars
C=(1)+(1)C +(1)C +(1)CC
(1)(1)(2)(3)(3)
(1)
Formal power series and
Object Grammars
C=(1)+(1)C +(1)C +(1)CC
(1)(1)(2)(3)(3)
(1)(1)
Formal power series and
Object Grammars
C=(1)+(1)C +(1)C +(1)CC
(1)(1)(2)(3)(3)
(1)(1)(2)
Formal power series and
Object Grammars
C=(1)+(1)C +(1)C +(1)CC
(1)(1)(2)(3)(3)
(1)(1)(2)(3)
Formal power series and
Object Grammars
C=(1)+(1)C +(1)C +(1)CC
(1)(1)(2)(3)(3)
(1)(1)(2)(3)(3)
Formal power series and
Object Grammars
C=(1)+(1)C +(1)C +(1)CC
C
Formal power series and
Object Grammars
C=(1)+(1)C +(1)C +(1)CC
C
Formal power series and
Object Grammars
C=(1)+(1)C +(1)C +(1)CC
C
C
Object Grammar for
parallelogram polyominoes
=
+
+
+
Results
Object grammars for various classes
of polyominoes
Directed-convex polyominoes
Directed column-convex polyomines
Column-convex polyominoes
Convex polyominoes
Example: column-convex
polyomines
Class C
Example: column-convex
polyomines
Class B
Example: column-convex
polyomines
Class P
Example: column-convex
polyomines
Class Q
Operations for column-convex
polyominoes (class C)
Operations for the class B
Operations for the class P
Operations for the class Q
Scarica

Presentazione di PowerPoint - Dipartimento di Informatica