You are on page 1of 15

Gramticas Formales y Sistemas Lindenmayer a Con Sentido Musical

Manuel Antonio Cervantes Aguirre Israel Villaseor Leon n Ruiz Carrillo Josue Jonathan Sallvador HectorZuiga Muos n n 26 de noviembre de 2012

Indice general
1. Introduccin o 2. Denicion de elementos para crear la 2.1. Alfabeto . . . . . . . . . . . . . . . . 2.2. Estado Inical . . . . . . . . . . . . . 2.3. Estados deetransicin . . . . . . . . o 2.4. Estado Final . . . . . . . . . . . . . 3. Construccion del Programa gramatica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 7 7 7 8 9 11

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

. . . .

Agradecimientos
Al Doctor Jorge Vasconcelos Santill Por su paciencia, dedicacin y a o comprensin a los alumnos o

Cap tulo 1 Introduccin o


Gramtica a Una gramtica formal es una estructura matemtica con un conjunto de rea a glas de formacin que denen las cadenas de caracteres admisibles en un o determinado lenguaje formal o lengua natural. L-Systems Un sistema de Lindenmayer es una gramtica formal (un conjunto de reglas a y s mbolos) principalmente utilizados para modelar el proceso de crecimiento de las plantas; puede modelar tambin la morfolog de una variedad de e a organismos. Los sistemas-L tambin pueden utilizarse para generar fractales e auto-similares como los sistemas de funcin iterada. o Utilizando estas dos teor construiremos un ambiente el cual nos permias ta generar una gramtica aleatoria, y esta a su vez pueda representarse con a sonidos, tratando que el resultado obtenido tenga un sentido musical, para ello utilizaremos cuatro de las escalas pentatnicas, con esto deniremos o un alfabeto que despus derivaremos en conjuntos que puedan hacer que se e tenga interaccin entre todas las notas por la relacin de interseccin que se o o o crea.

CAP ITULO 1. INTRODUCCION

Cap tulo 2 Denicion de elementos para crear la gramatica


Una gramtica est denida por una cuartupla denotada por G= { V , a a , Q0 , P } donde V es un conjunto de caracteres llamado alfabeto, es un conjunto de s mbolos terminales, Q0 es un conjunto de s mbolos iniciales y P el conjuton de producciones. Comencemos por denir el conjunto potencia unicando las notas tomadas de las cuatro escalas pentatnicas, Estas se conforman de las siguiente mao nera: Pentatonica Pentatonica Pentatonica Pentatonica mayor = {C,D,F,G,A,Cm } menor ={C,Eb,F,G,A#,Cm} blues={C,Eb,F,F#,G,A#} neutral ={C,D,F,G,A#}

2.1.

Alfabeto

Una vez que conocemos los elementos de las pentatnicas los desagrupao mos y denimos el alfabeto de nuestra gramtica, = {C,D,Eb,F,F#,G,A,A#,Cm} a

2.2.

Estado Inical

En este caso podremos tomar cualquier elemento del alfabeto como estado inicial, como ejercicio aleatorio para construccin de la gramtica, entonces o a Q0 ={C,D,Eb,F,F#,G,A,A#,Cm} 7

8CAP ITULO 2. DEFINICION DE ELEMENTOS PARA CREAR LA GRAMATICA

2.3.

Estados deetransicin o

Para poder determinar los estados de transicin es necesario calcular too das las intersecciones hechas por los elementos descritos anteriormente. a={C,D,F,G,A,Cm}; b={C,Eb,F,G,A#,Cm}; c={C,EbF,F#,G,A#}; d={C,D,F,G,A#}; 1. a b ={C,Cm,F,G} 2. a c ={C,F,G} 3. a d ={C,D,F,G} 4. b c ={C,Eb,F,G,A#} 5. b d ={C,F,G,A#} 6. c d ={C,F,G,A#} Notamos que las intersecciones 5 y 6 generan la misma cadena de caracteres, esto tambin sucede al hacer la interseccin con estos conjuntos, e o se recrean las intersecciones 2 y 5 por tanto trabajaremos solo con las descritas. Con estas instersecciones podemos comenzar a denir nuestras reglas de gramatica, por ejemplo con C podemos tomar cualquier elemento en una siguiente iteracion caso contrario con Cm que solo podemos tomar los elementos de 1. Por lo tanto los estados de transicin estn descritos de la siguiente manera. o a Para ejemplicar el tipo de trasniciones que se desarrollaran utilizaremos como estado inicial el simbolo C. C 1C 1 2Cm 2 1Cm 1 7F . .. . . .. . . 3G

2.4. ESTADO FINAL

2.4.

Estado Final

De igual forma que en el estado inicial podemos denir el estado nal como cualquier elemento del alfabeto, siempre y cuando se haya cumplido el tamao de la palabra que se desea obtener. P={C,D,Eb,F,F#,G,A,A#,Cm} n

10CAP ITULO 2. DEFINICION DE ELEMENTOS PARA CREAR LA GRAMATICA

Cap tulo 3 Construccion del Programa


En este apartado analizaremos la forma de construccin del programa o computacional que genere aleatoriamente una gramtica con sus elementos a para despus escuchar la composicin musical genera. e o #i n c l u d e <s t d i o . h> #i n c l u d e <s t d l i b . h> #i n c l u d e <time . h> main ( ) { i n t n =0, i , x , i n i c , t , nmro ;

p r i n t f (\ n I n g r e s e l a c a n t i d a d d e v a l o r e s p a r a l a g r a m a t i c a : ) ; s c a n f ( %d,&nmro ) ; t=nmro1; intMi [ t ] ; srand ( time (NULL ) ) ; x=rand () %7; i n i c=x ; i f ( i n i c ==0){ Mi [ 0 ] = 1 ; / /C p r i n t f ( EstadoInicialC ) ; } else i f ( i n i c ==1){ Mi [ 0 ] = 2 ; / / Eb 11

12

CAP ITULO 3. CONSTRUCCION DEL PROGRAMA

p r i n t f ( EstadoInicialEb ) ; } else i f ( i n i c ==2){ Mi [ 0 ] = 3 ; / / F p r i n t f ( E s t a d o I n i c i a l F ) ; } else i f ( i n i c ==3){ Mi [ 0 ] = 4 ; / / F# p r i n t f ( E s t a d o I n i c i a l F #); } i f ( i n i c ==4){ Mi [ 0 ] = 5 ; / /G p r i n t f ( EstadoInicialG ) ; } else i f ( i n i c ==5){ Mi [ 0 ] = 6 ; / /A p r i n t f ( EstadoInicialA ) ; } else i f ( i n i c ==6){ Mi [ 0 ] = 7 ; / /A# p r i n t f ( E s t a d o I n i c i a l A #); }else i f ( i n i c ==7){ Mi [ 0 ] = 8 ; / /Cm p r i n t f ( EstadoInicialCm ) ; }

intreg [ t ] ; reg [0]=0; p r i n t f (\ n\ n C o m e n c e m o s a e s c r i b i r l a g r a m a t i c a \n ) ; w h i l e ( n<=t ){

13 i f ( Mi [ n]==1){ srand ( time (NULL ) ) ; x=rand () %4; i=rand () %7; r e g [ n+1]=x ; Mi [ n+1]= i ; / /C p r i n t f (\ n % % % % , Mi [ n] , > , r e g [ n +1] ,Mi [ n + 1 ] ) ; d s d d } else i f ( Mi [ n]==2){ srand ( time (NULL ) ) ; i=rand () %4; r e g [ n+1]=1; Mi [ n+1]= i ; / / Eb p r i n t f (\ n % % % % , Mi [ n] , > , r e g [ n ] , Mi [ n + 1 ] ) ; d s d d } else i f ( Mi [ n]==3){ srand ( time (NULL ) ) ; x=rand () %4; i=rand () %7; r e g [ n+1]=x ; Mi [ n+1]= i ; / / F p r i n t f (\ n % % % % , Mi [ n] , > , r e g [ n ] , Mi [ n + 1 ] ) ; d s d d } else i f ( Mi [ n]==4){ srand ( time (NULL ) ) ;

i=rand () %5; r e g [ n+1]=1; Mi [ n+1]= i ; / / F# p r i n t f (\ n % % % % , Mi [ n] , > , r e g [ n ] , Mi [ n + 1 ] ) ; d s d d } i f ( Mi [ n]==5){ srand ( time (NULL ) ) ;

14

CAP ITULO 3. CONSTRUCCION DEL PROGRAMA

x=rand () %4; i=rand () %7; r e g [ n+1]=x ; Mi [ n+1]= i ; / /G p r i n t f (\ n % % % % , Mi [ n] , > , r e g [ n ] , Mi [ n + 1 ] ) ; d s d d } else i f ( Mi [ n]==6){ srand ( time (NULL ) ) ;

i=rand () %5; r e g [ n+1]=1; Mi [ n+1]= i ; / /A p r i n t f (\ n % % % % , Mi [ n] , > , r e g [ n ] , Mi [ n + 1 ] ) ; d s d d } else i f ( Mi [ n]==7){ srand ( time (NULL ) ) ; x=rand () %1; i=rand () %5; r e g [ n+1]=x ; Mi [ n+1]= i ; / /A# p r i n t f (\ n % % % % , Mi [ n] , > , r e g [ n ] , Mi [ n + 1 ] ) ; d s d d }else i f ( Mi [ n]==8){ srand ( time (NULL ) ) ; x=rand () %1; i=rand () %7; r e g [ n+1]=x ; Mi [ n+1]= i ; / /Cm p r i n t f (\ n % % % % , Mi [ n+1], >, r e g [ n ] , Mi [ n + 1 ] ) ; d s d d } n++; }

getchar () getchar ( ) ; }

You might also like