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}iI , {EOi}iI , {j}jJ , {A}> Oi is a class of objects; EOi is a finite subsets of Oi (terminal objects); j is an operation on {Oi}iI (object operation); A is an element of {Oi}iI (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 nN m(w)(i)w iN 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)CC Let wC, 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)CC C(x)=x+xC(x) +xC(x) +xC2 Formal power series and Object Grammars C=(1)+(1)C +(1)C +(1)CC Formal power series and Object Grammars C=(1)+(1)C +(1)C +(1)CC (1)(1)(2)(3)(3) (1) Formal power series and Object Grammars C=(1)+(1)C +(1)C +(1)CC (1)(1)(2)(3)(3) (1)(1) Formal power series and Object Grammars C=(1)+(1)C +(1)C +(1)CC (1)(1)(2)(3)(3) (1)(1)(2) Formal power series and Object Grammars C=(1)+(1)C +(1)C +(1)CC (1)(1)(2)(3)(3) (1)(1)(2)(3) Formal power series and Object Grammars C=(1)+(1)C +(1)C +(1)CC (1)(1)(2)(3)(3) (1)(1)(2)(3)(3) Formal power series and Object Grammars C=(1)+(1)C +(1)C +(1)CC C Formal power series and Object Grammars C=(1)+(1)C +(1)C +(1)CC C Formal power series and Object Grammars C=(1)+(1)C +(1)C +(1)CC 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