lunedì 8 dicembre 2008

ancora kolam

Linguaggi a figure
Le figure kolam raggruppate in famiglie hanno attratto in particolare l’interesse degli studiosi di informatica teorica che si occupano dell’analisi e della descrizione di immagini attraverso l’uso di
linguaggi a figure, i quali utilizzano insiemi di unità di base e regole specifiche, formali, per combinarle. Lo studio dei linguaggi a figure è strettamente imparentato con la teoria formale del linguaggio, un settore di ricerca inaugurato 45 anni fa con lo studio dei linguaggi naturali da parte di Noam Chomsky. Nei decenni successivi, gli informatici hanno utilizzato la teoria formale del linguaggio nell’analisi e nella specificazione dei linguaggi di programmazione. Gift Siromoney del Madras Christian College del Tamil Nadu fu il primo a introdurre l’uso di disegni kolam nello studio dei linguaggi a figure. Un volume commemorativo edito nel 1989 comprende una bibliografia di oltre 100 pubblicazioni di Siromoney, che mostrano come per tutta la vita egli abbia combinato i suoi interessi accademici con un profondo apprezzamento della storia e della cultura
del Tamil Nadu. Per Siromoney, che collaborava con sua moglie Rani, e per altri informatici, in particolare Kamala Krithivasan e K. G. Subramanian, i disegni kolam divennero una ricca fonte di immagini che potevano essere usate come esempi di alcuni tipi esistenti di linguaggi a figure, nonché servire da impulso per la creazione di nuovi tipi di linguaggi.
Altri informatici, oltre al gruppo di Madras, si sono serviti dei linguaggi a figure per descrivere le famiglie di kolam.
I linguaggi che si utilizzano per produrre solo alcune famiglie di kolam. Un esempio di rudimentale linguaggio formale che genera stringhe di simboli e vediamo come queste stringhe
possano essere tradotte in figure. Diciamo che gli unici simboli del nostro linguaggio siano A, B e C e che la stringa di partenza sia ABAA. Le nostre regole per creare una nuova stringa di simboli
da una precedente saranno: B→AC, A→B, C→CC. Ci riferiamo alle stringhe che risultano
dall’applicazione di queste regole di riscrittura alla stringa precedente come«esiti». Pertanto, se la stringa di partenza è ABAA, il primo esito sarà BACBB, il secondo esito sarà ACBCCACAC, e il terzo BCCACCCCCBCCBCC. Le regole di riscrittura possono continuare a generare esiti indefinitamente. A ogni stadio, le tre regole sono applicate simultaneamente - ossia in parallelo - anziché sequenzialmente, cosicché, per esempio, la A e la C introdotte in uno stadio applicando
la regola B→AC rimangono inva riate fino a uno stadio successivo. Questa è una caratteristica di un linguaggio di Lindenmayer o L-linguaggio, che prende il nome da Aristid Lindenmayer,
un biologo interessato a costruire modelli della crescita delle piante. Quello del nostro esempio è un L-linguaggio acontestuale deterministico. È acontestuale perché il destino di ogni simbolo è
considerato singolarmente, senza riferimento ai simboli vicini, e deterministico perché per ogni simbolo c’è solo una possibile regola di riscrittura. Ora il problema è come creare una figura
partendo da una stringa di simboli. Przemsylaw Prusinkiewicz, uno studioso particolarmente noto per le applicazioni degli L-sistemi alla computer grafica, ha messo a punto tecniche che si servono di simboli interpretati come «comandi della tartaruga». Questo tipo di grafica venne
ideato negli anni sessanta da Seymour Papert, che lo concepì per stimolare l’immaginazione dei bambini attraverso l’uso del computer. L’idea è che una tartaruga possa creare un’immagine trascinando la coda; se la solleva, il disegno che si ottiene è discontinuo. La tartaruga
non gode di un punto di vista generale, ma può creare disegni complessi comprendendo
ed eseguendo una serie limitata di comandi che le vengono trasmessi mediante un insieme di simboli. Questi comandi includono:
F : Muovi in avanti di un passo mentre disegni una linea.
f : Muovi in avanti di un passo senza disegnare una linea.
+ : Ruota a sinistra (in senso antiorario) di un angolo di d gradi.
–: Ruota a destra (in senso orario) di un angolo di d gradi.
Ciascun disegno deve iniziare specificando la direzione della tartaruga e l’angolo d, che rimane fisso per tutta l’operazione. Ogni mossa comincia nel punto e nella direzione dove è terminata la
precedente. Come esempio, un L-linguaggio acontestuale deterministico che segua l’interpretazione della tartaruga può riprodurre la famiglia del Serpente delle figure kolam. Un kolam di questa famiglia viene disegnato in maniera continua e termina dove è iniziato, ma differisce da molti altri kolam in quanto la sua realizzazione non parte da una matrice di punti. L’interpretazione della tartaruga utilizza linee rette e genera una versione angolosa del disegno, sebbene l’introduzione di tecniche di data fitting possa produrre una curva liscia. In ogni caso, un linguaggio che descrive il Serpente angoloso inizia definendo d pari a 45 gradi e usa come stringa di partenza B– –F– –B– –F. La tartaruga considera sempre che B significhi F+F+F– –F¬- –F+F+F, e la regola di riscrittura per generare figure a Serpente più complesse è B→B+F+B– –F– –B+F+B. Successive
applicazioni della regola di riscrittura fanno sì che la figura cresca esponenzialmente.
Il più complesso kolam a Serpente fra quelli raffigurati è una versione «lisciata» di quello che sarebbe il terzo esito. Se a ogni esito dovessimo ridurre la grandezza del passo della tartaruga
in modo tale che i disegni successivi stiano sempre in un quadrato avente lo stesso lato, e dovessimo continuare il procedimento a tempo indefinito, otterremmo a sorpresa una variante di un frattale che riempie lo spazio senza intersecare se stesso, noto come «curva di Sierpinski» dal nome del matematico che lo descrisse nel 1912. Un L-linguaggio acontestuale deterministico è stato usato anche per descrivere un’altra famiglia di kolam: le Cavigliere di Krishna. Come accade nella famiglia del Serpente, i membri di quella delle Cavigliere di Krishna sono derivati ricorsivamente l’uno dall’altro e crescono in maniera esponenziale. Il gruppo di informatici di Madras è riuscito a ottenere versioni non angolose delle figure kolam utilizzando «mosse kolam», anziché le lineari mosse della tartaruga, per disegnare curve e anelli lisci. Questi ricercatori hanno definito sette mosse kolam basandosi sulle descrizioni delleazioni di donne tamil fatte da loro stesse.
Per ottenere le Cavigliere di Krishna servono solo tre delle mosse kolam: F : Muovi in avanti mentre disegni una linea.
R1 : Muovi in avanti mentre fai un mezzo giro a destra.
R2 : Muovi in avanti mentre fai un anello completo a destra.
Un linguaggio che produce le Cavigliere di Krishna prende inizio con la stringa R1FR2FR2FR2FR1 e ha le seguenti regole di riscrittura: R1→R1FR2FR1 e R2→R1FR2FR2FR2FR1. Come accade
per il kolam a Serpente, dove ogni applicazione della regola di riscrittura sostituisce ciascun braccio della croce con una nuova croce a quattro bracci, si possono produrre Cavigliere di Krishna via via più intricate sostituendo ciascuna «foglietta» con un insieme di quattro fogliette.
In diverse famiglie di kolam l’accrescimento
si compie in modo simile.

Nessun commento: