La combinatoria analitica può definirsi come il settore della combinatoria che affronta i problemi delle configurazioni discrete mediante le tecniche ed il linguaggio delle serie generatrici; in particolare si utilizzano acquisizioni dell'analisi complessa per ottenere dei risultati sul comportamento asintotico delle cardinalità di configurazioni combinatorie. Molti risultati della combinatoria analitica forniscono strumenti efficaci per lo studio della complessità di vari algoritmi.
Introduzione
[modifica | modifica wikitesto]La combinatoria analitica si organizza intorno a varie tematiche. Si impiegano dei metodi simbolici per esprimere relazioni tra oggetti matematici discreti ed operazioni algebriche sopra funzioni generatrici con scopi enumerativi; si sviluppano invece dei metodi di analisi complessa al fine di ricavare dalle funzioni generatrici delle informazioni sul comportamento asintotico del numero degli oggetti enumerati; nella natura delle singolarità si cerca la chiave per lo studio dei comportamenti asintotici. Inoltre una importante attività si rivolge allo studio delle proprietà probabilistiche delle grandi strutture aleatorie.
La combinatoria analitica è stata ampiamente sviluppata negli ultimi decenni, soprattutto per merito di Philippe Flajolet e dalla sua scuola. Essa è stata presentata in modo dettagliato e completo nel libro Analytic Combinatorics scritto da lui e da Robert Sedgewick[1]. Dei precedenti contributi a questo approccio possono essere trovati nei lavori di Leonhard Euler, Arthur Cayley, Srinivasa Ramanujan, George Pólya e Donald Knuth.
Classi combinatorie
[modifica | modifica wikitesto]I metodi simbolici si concentrano sulla nozione di classe combinatoria, cioè sugli insiemi delle configurazioni (o strutture) finite ciascuna delle quali è caratterizzata da un intero naturale che esprime una sua taglia. Questi metodi consistono nell'associare alle operazioni insiemistiche o algebriche riguardanti le classi delle operazioni algebriche sulle riguardanti corrispondenti serie generatrici in modo da ottenere un processo di traduzione puramente formale tra proprietà delle classi e proprietà delle serie. Si constata che vi sono due tipi di funzioni generatrici assai proficui per operare con la detta corrispondenza, le funzioni generatrici ordinarie da associare alle classi di configurazioni non etichettate e le funzioni generatrici esponenziali per le classi delle configurazioni etichettate.
Definizioni
[modifica | modifica wikitesto]Diciamo classe combinatoria un insieme munito di un'applicazione che chiamiamo taglia. Per ogni elemento dell'insieme scriviamo l'intero naturale che costituisce la sua taglia. Si chiede inoltre che per ogni taglia il numero di elementi di tle taglia sia finito.
Per le funzioni taglia delle specie di configurazioni più usuali si impongono come più promettenti alcune definizioni in grado di rappresentare con chiarezza il grado di estensione (o di peso, o di ricchezza, o di complessità) delle singole configurazioni. Ad esempio come taglia degli alberi binari si può assumere il numero dei loro vertici; ma un'altra scelta promettente può consistere nella loro altezza. Non è invece lecito assumere il numero delle loro foglie, in quanto il numero degli alberi binari con dato numero di foglie non è finito: si pensi che ogni albero binario si può allungare senza limiti aggiungendogli nodi con un solo successore. In generale ogni configurazione caratterizzata da una taglia si può considerare ottenuto componendo opportunamente delle componenti elementari che si usano chiamare atomi: un esempio è dato dai nodi di un grafo, un altro dalle lettere delle stringhe di un insieme caratterizzato da qualche vincolo.
Consideriamo ora un insieme combinatorio e denotiamo con il numero degli elementi di tale insieme aventi taglia . Si definisce come serie generatrice ordinaria nella variabile formale associata ad la serie definita come
- .
Spesso è comodo servirsi di una seconda espressione equivalente per questa serie:
- .
Per le specie di strutture etichettate considereremo invece più delle cosiddette serie generatrici esponenziali.
In genere le serie generatrici associate alla enumerazione degli oggetti combinatori sono serie formali, entità che si trattano senza porsi problemi di convergenza. Nell'ambito della combinatoria analitica, invece, si studiano i comportamenti delle serie nel quadro dell’analisi complessa. L'osservazione fondamentale che si utilizza, come esplicitato di seguito, riguarda il fatto che la natura della singolarità sull'asse reale positivo fornisce informazioni precise sulla crescita dei numeri degli oggetti di taglia .
Conviene introdurre una notazione utile per esprimere i coefficienti di una serie generatrice : scriveremo per denotare il coefficiente della variabile , in modo che per
- ,
si abbia:
- .
Esempi
[modifica | modifica wikitesto]Presentiamo alcuni esempi riguardanti configurazioni piuttosto note.
- Classe delle parole su un alfabeto di due lettere assumendo con taglia la lunghezza delle parole. Vi sono parole di lunghezza e la serie generatrice è
- Composizioni di interi positivi, intendendo che le composizioni di sono tutte le sequenze di interi positivi tali che . Il numero delle composizioni di è e la serie generatrice è
- Il numero degli alberi binari completi con nodi è
- e la relativa serie generatrice è
- .
Il metodo simbolico
[modifica | modifica wikitesto]Il metodo simbolico è un procedimento che si propone di tradurre direttamente relazioni tra classi combinatorie nelle serie generatrici corrispondenti. Si procede secondo un algoritmo che inizia con classi combinatorie molto semplici e le compone servendosi di operatori dal comportamento noto. Questi operatori insiemistici riguardano, oltre che operazioni semplici come l'unione disgiunta, il prodotto cartesiano, altre operazioni un po' più complesse, come il passaggio all'insieme delle parti, la formazione di sequenze e di multiinsiemi. Inoltre si possono far intervenire costruzioni ricorsive. Il vantaggio di questo metodo consiste nel fatto che la definizione insiemistica, o simbolica, conduce direttamente a relazioni algebriche sopra le funzioni generatrici.
Di solito in combinatoria si utilizzano due tipi di serie generatrici, le serie generatrici ordinarie, da applicare alle classi combinatorie di oggetti non etichettati, e le serie generatrici esponenziali, per le classi combinatorie di oggetti etichettati.
Nelle esposizioni della combinatoria si usa denotare le classi combinatorie con lettere in corsivo e le loro serie generatrici con le corrispondenti lettere in fonti dritte. Ad esempio le serie associate alla classe combinatoria , alla ed alla sono denotate, rispettivamente, con e .
Costruzioni elementari
[modifica | modifica wikitesto]Come mattoni di base si assumono delle classi formate da un solo oggetto. Si rivelano utili due tipi di classi: quelle nelle quali al singoletto si attribuisce taglia zero e quelle il cui singoletto assume taglia uno. Una classe del primo tipo dunque presenta un elemento di taglia nulla e la sua serie generatrice è la funzione costante . Una classe del secondo tipo ha un solo elemento, di taglia uno, e la sua serie generatrice è . Le operazioni elementari sono l'unione disgiunta, il prodotto cartesiano e la formazione di sequenze.
Unione disgiunta
[modifica | modifica wikitesto]Scriviamo per denotare la classe che è unione disgiunta delle classis e . Questa relazione si traduce per le serie generatrici nella
- ,
in quanto
- .
Prodotto cartesiano
[modifica | modifica wikitesto]Si scrive se la classe è l'insieme delle coppie , con e . La funzione taglia è definita dalla . Per le corrispondenti serie generatrici si ha quindi la relazione
- .
Sequenze
[modifica | modifica wikitesto]Scriviamo quando è l'insieme delle sequenze finite di elementi di . In altri termini
- , o anche .
La taglia di una sequenza è la somma delle taglie delle sue componenti. Perché l’operazione sia ben definita, la classe non deve contenere alcun elemento di taglia 0; in caso contrario la classe conterrebbe une infinità di elementi di una qualsiasi taglia positiva. La traduzione nelle serie generatrici est
- .
La serie viene talora chiamata la quasi-inversa della serie .
Definizione ricorsiva
[modifica | modifica wikitesto]Quando sono soddisfatte certe condizioni piuttosto tecniche , si possono introdurre classi combinatorie con definizioni ricorsive. Limitiamoci a presentare alcuni esempi.
Alberi binari
[modifica | modifica wikitesto]Per albero binario intendiamo sia l'insieme vuoto che chiamiamo albero vuoto, sia un grafo formato da un vertice radice e da due suoi sottoalberi ai quali a loro volta chiediamo siano alberi binari. L'equazione della classe combinatoria degli alberi binari è dunque:
- , dove
è costituita da un solo elemento di taglia 0 e è composta da un solo elemento di taglia 1. Questa equazione si traduce nell’equazione
- .
Alberi unari-binari
[modifica | modifica wikitesto]Un albero unario-binario è un albero nel quale ogni suo nodo interno, nodo non foglia, possiede uno o due discendenti. La corrispondente equazione simbolica ha la forma
e da questa si deduce l'equazione funzionale
- .
Esempi
[modifica | modifica wikitesto]Si può adoperare il metodo simbolico anche nei tre casi elementari che seguono.
Parole binarie
[modifica | modifica wikitesto]Una parola binaria è une sequenza di simboli 0 e 1. Introduciamo due semplicissime classi combinatorie e , entrambe aventi come serie generatrice la . Le parole binarie si ottengono con la costruzione
- ,
e la serie generatrice di questi oggetti è
- e .
Va riconosciuto che per un esempio molto semplice si è utilizzato un grosso apparato formale.
Composizione ristretta di interi
[modifica | modifica wikitesto]Consideriamo il problema di coprire il segmento con dei mattoni di estensione (taglia) 1 e 2; in altre parole si tratta di scrivere l'intero come somma di addendi uguli a 1 o 2; si vuole poi conoscere in quanti modi si può far questo, cioè il numero delle coperture di . Per esempio, l'intero 4 può ottenersi con cinque scritture:
- 4=1+1+1+1=1+1+2=1+2+1=2+1+1=2+2 .
Si constata facilmente che il numero delle composizioni di è , l'-esimo numero de Fibonacci. Per giungervi con il metodo simbolico si considerano due classi e formate da un unico elemento avente, rispettivamente taglia 1 e taglia 2. Con queste classi la classe delle coperture est
e la corrispondente serie generatrice è:
- .
Altre costruzioni simboliche
[modifica | modifica wikitesto]Vediamo altre costruzioni simboliche importanti. Cicli. I cicli, il cui insieme denotiamo con , sono simili alle sequenze, salvo che due oggetti che si ottengono l'uno dall'altro mediante una rotazione circolare non sono considerati distinti. La serie generatrice dei cicli è nettamente più complicata; il caso dei cicli etichettati porta ad una serie più semplice:
ove è la indicatrice di Eulero. Classe puntata. Si denota con la classe degli insiemi di elementi di tra i quali uno è «puntato», ovvero contrassegnato in modo da risultare distinto dagli altri. Per esempio, gli alberi muniti di radice sono alberi liberi puntati. Formalmente, ogni oggetto è arricchito da un elemento de taglia zero sopra uno dei suoi componenti (atomi). La serie generatrice è
- .
Sostituzione. La classe si ottiene sostituendo, ogni atomo di un elemento di , un elemento della classe . La serie generatrice si esprime semplicemente con .
Analisi
[modifica | modifica wikitesto]I metodi di analisi complessa ruotano intorno al processo di estrazione di informazioni asintotiche dalle funzioni generatrici. Si è raggiunto un insieme di risultati che garantiscono la fattibilità di una traduzione sistematica tra funzioni generatrici e la forma asintotica dei coefficienti.
Nella maggior parte delle situazioni che si presentano in combinatoria, una serie formale con capacità enumerativa
può essere vista come lo sviluppo intorno allo 0 di una funzione analitica . Il raggio di convergenza della serie è ottenibile, ad esempio, come par
- .
Questo significa che
- )
dove è una funzione sub-esponenziale di . Quindi sul raggio di convergenza si trova una singolarità ed un teorema classico di Pringsheim (da non confondere con un teorema de Pringsheim dello stesso nome) afferma che se i coefficienti sono non negativi, come evidentemente accade alle serie enumeratrici, allora esiste una singolarità reale positiva nel punto .
Caso delle serie razionali
[modifica | modifica wikitesto]Con i costruttori diversi dalla ricorsività, cioè con e con gli operatori , si ottengono le serie razionali. In tal caso il termine è asintoticamente equivalente ad una somma di termini della forma . Più precisamente, se la singolarità dominante presenta molteplicità , allora
- .
Esempio.- Consideriamo la serie razionale
- .
Le sue singolaritàsi trovanoo in ( denota la sezione aurea). La singolarità dominante è 1/2, e la sua molteplicità è 5. Quindi si ha
- .
Un caso più generale
[modifica | modifica wikitesto]Il caso generale è più delicato e procede nel modo che segue. Si consideri une famiglia generale ma ben precisa di funzioni (combinazioni di potenze (complesse) di e di ); per esse si sanno ottenere delle stime asintotiche servendosi degli strumenti di analisi complessa più o meno impegnativi. Successivamente si utilizza un altro principio di base, chiamato teorema di transfert, che in parole povere dice che se due funzioni sono «vicine» in un intorno di una loro singolarità reale, sono vicini anche i loro rispettivi coefficienti. Il risultato sulla famiglia di funzioni presentato limitandoci al caso della singolarità nel punto 1 (al quale ci si può sempre ricondurre con un semplice cambiamento di variabile) è il seguente.
- Consideriamo e . Abbiamo allora
- ,
- dove denota la classica funzione Gamma.
Presentiamo alcuni dei molti esempi contenuti nel libro di Flajolet e Sedgewick.
Funzione Coefficienti
Il teorema di transfert
[modifica | modifica wikitesto]Il teorema di transfert afferma che basta conoscere il comportamento di due funzioni in un intorno della loro più piccola singolarità per essere in grado di confrontare il comportamento asintotico dei loro coefficienti. Un suo enunciato è il seguente.
- Siano e ) due funzioni aventi la più piccola singolarità in 1. Allora:
- da segue ;
- da segue ;
- da segue .
- Siano e ) due funzioni aventi la più piccola singolarità in 1. Allora:
Un esempio
[modifica | modifica wikitesto]Procediamo alla valutazione asintotica del numero degli alberi binari. Si inizia dalla equazione simbolica
- ,
dove è ridotto ad un elemento di taglia 0 e è composto da un elemento di taglia 1. Questa equazione si traduce nell'equazione
- .
Si risolve questa equazione trovano
- .
La funzione presenta una singolarità in avente ordine . In un intorno di si può scrivere
e grazie al teorema generale, dato che , si ottiene
- .
Classi combinatorie etichettate
[modifica | modifica wikitesto]Une classe combinatoria si dice etichettata se i suoi elementi sono etichettati. Per definizione un tale oggetto combinatorio di taglia , è di più dotato di una permutazione dell'insieme . Gli esempi più pertinenti di oggetti etichettati sono i grafi.
Per enumerare gli oggetti di una classe etichettata si adoperano serie generatrici esponenziali, serie i cui coefficienti sono normalizzati dal fattoriale del grado (taglia).
Definizione
[modifica | modifica wikitesto]Più formalmente, sia una classe combinatoria etichettata, e sia , per , il numero degli oggetti di questa classe aventi taglia . La serie generatrice esponenziale associata ad ha la forma
- .
Questo equivale a scrivere
- .
L'estrazione di un coefficiente da questa serie fornisce
- ; dunque .
Esempi
[modifica | modifica wikitesto]Permutazioni. Denotiamo con la classe delle permutazioni. Sa serie generatrice esponenziale è
- .
Grafi senza spigoli. Per ogni intero esiste uno e un solo grafo senza spigoli e la corrispondente serie generatrice è
La stessa serie enumera i grafi completi.
Grafi ciclici. Il numero dei grafi etichettati con vertici collegati in modo da formare un solo cicle è (n-1)!. La loro serie generatrice esponenziale è pertanto
- .
Costruzioni
[modifica | modifica wikitesto]Prodotto
[modifica | modifica wikitesto]La costruzione di una somma disgiunta di classi combinatorie si traspone senza modifiche alle classi etichettate. Per il prodotto la trasformazione è più delicata. Siano e due classi combinatorie etichettate. Il loro prodotto cartesiano è costituito dalle coppie di oggetti etichettati, ma una di queste coppie non è etichettata soddisfacentemente, in quanto i suoi elementi non presentano etichette distinte. Occorre definire una struttura associata, ai cui elementi si attribuiscono le etichette , in modo che l'ordine relativo delle etichette di ogni elemento è rispettata. Si definisce
come l'insieme delle coppie così rietichettate. La famiglia contiene esattamente elementi. Il prodotto etichettato delle classi e viene definito
- .
Per le serie generatrici esponenziali si ottiene
- .
In effetti, per e , si ha
- ,
et quindi
- .
Sequenza
[modifica | modifica wikitesto]A partire dalla somme disgiunta e dal prodotto, si costruisce l'operatore di sequenza come nel caso ordinario. Per l'insieme delle sequenze finite di elementi di scriviamo . Va notato che non presenta alcun elemento di taglia nulla. In altri termini
- ,
o ancore , dove le sequenze sono rietichettate. Per la serie generatrice esponenziale si ha
- .
Insieme delle parti
[modifica | modifica wikitesto]Le definizioni d'insieme e di ciclo date in precedenza si adattano anche alle strutture non etichettate. Si definisce la classe
come la classe delle parti della classe contenente elementi. Questa classe si può vedere come la classe quoziente espressa da
- ,
dove è l’insieme delle sequenze di lunghezza le cui componenti appartengono a , e dove la relazione mette in equivalenza due ssequenze che coincidono a meno di una permutazione. Si ha
- .
La classe delle parti della classe è definita come
- ,
e la serie generatrice esponenziale corrispondente è
- .
Ciclo
[modifica | modifica wikitesto]Si definisce la classe
come la classe dei cicli di lunghezza i cui componenti sono elementi della classe . Questa si può vedere come il quoziente della classe delle sequenze di lunghezza di elementi de rispetto all'insieme delle permutazioni circolari di suoi elementi. Per essa si ottiene
- .
La classe dei cicli della classe è per definizione
- ,
e la serie generatrice esponenziale corrispondente è
- .
Due casi particolari sono l'operatore di costruzione dei cicli di lunghezza pari, e quello dei cicli di lunghezza dispari, qui sono definiti rispettivamente
- e .
Le loro rispettive serie generatrici sono
- e .
Esempi
[modifica | modifica wikitesto]Permutazioni. Une permutazione può essere vista come un insieme de cicli su supporti disgiunti. Questo conduce all'equazione simbolica
- ,
dove è la classe formata da un solo elemento di taglia 1. La serie generatrice esponenziale è
- .
Involuzioni. Una involuzione è una permutazione tale che . Una involuzione si può vedere come un insieme di cicli di lunghezza 1 o 2 sopra supporti disgiunti. L'equazione simbolica è dunque
- ,
e la corrispondente serie generatrice esponenziale è . Un calcolo elementare conduce alla seguente espressione chiusa
Dérangements. Un dérangement è una permutazione priva di punti fissi. La sua definizione simbolica è
- ,
e la sua funzione generatrice esponenziale
- .
Per valutare il numero di dérangements di taglia , basta osservare che ha la singolarità in . Lo sviluppo della intorno a questo punto è
- , de sorte .
Alberi. Un albero con radice è formato da un vertice e da un insieme di sottoalberi; sono interessanti sia alberi etichettati che alberi non etichettati. Per gli alberi etichettati, l'equazione simbolica è
- ,
e la serie esponenziale correspondante è:
- .
Un albero piano con radice e non etichettato, formato da un vertice e da una sequenza di sottoalberi, come equazione simbolica ha
- ,
e come serie generatrice ordinaria
- .
Multi-insiemi
[modifica | modifica wikitesto]La costruzione della classe dei multiinsiemi, ossia delle parti dotate di molteplicità è simile a quella della classe delle parti. In questa classe
- ,
ogni elemento di può figurare in una parte un numero arbitrario di volte. si ottiene quindi
- .
Denotando con il numero di elementi di aventi taglia , si giunge alla relazione
Una applicazione di questi risultati riguarda le partizioni degli interi. Denotando con la classe degli interi positivi, per la quale come taglia di ogni intero si assume il suo valore, si ha
- .
La serie generatrice di è allora
- .
L'insieme delle partizioni degli interi è la classe dei multiinsiemi degli interi positivi. Se la denotiamo con , si ottiene dunque la formule
- .
La serie generatrice di è
- .
Di questa serie non si conosce alcuna espressione chiusa, ma si può calcolare il valore asintotico di ciascuno dei suoi coefficienti.
Note
[modifica | modifica wikitesto]- ^ Philip Flajolet, Robert Sedgewick (2009): Analytic Combinatorics, Cambridge University Press, ISBN 978-0-521-89806-5 - accessibile in http://algo.inria.fr/flajolet/Publications/book/070503.pdf[collegamento interrotto]
Bibliografia
[modifica | modifica wikitesto]- (EN) Jérémie Lumbroso, Basile Morcrette: Gentle Introduction to Analytic Combinatorics in CIMPA Summer School Analysis of Random Structures, An Najah University, Nablus, Palestine, 18-27 august 2014 - http://lipn.univ-paris13.fr/~nicodeme/nablus14/nafiles/gentle.pdf
- (EN) Robin Pemantle, Mark C. Wilson (2013): Analytic Combinatorics in Several Variables, Cambridge University Press, ISBN 978-1107031579
- (EN) Herbert Wilf (1990): Generatingfunctionology, Academic Press, 1990, ISBN 0-12-751955-6 - [1]
- (EN) François Bergeron, Gilbert Labelle, Pierre Leroux (1998):Combinatorial Species and Tree-like Structures, Cambridge University Press, ISBN 9780521573238
- (EN) Micha Hofri (1995): Analysis of Algorithms: Computational Methods and Mathematical Tools, Oxford University Press, ISBN 0-19-509954-0.