Tema Nociones Peliminaes y Lenguajes D. Luis A. Pineda ISBN: 0--- Alfabetos Lenguajes Repesentación Intepetación Poblemas Conceptos centales Funciones, algoitmos y fómulas Alfabetos Conjunto finito (no vacío) de símbolos: Σ Σ = {a, b, c,, z} Σ = {α, β, γ,, ω} Σ = {0, } Σ = {0,,,,, } Σ = {} Σ = El conjunto de caactees ASCII Una cadena (o palaba) sobe un alfabeto Σ Una secuencia finita de símbolos de Σ Longitud de una cadena El númeo (posiciones) de símbolos en la cadena: w = tiene un símbol peo tes posiciones La longitud de una cadena w es w w = La cadena nula: Λ (lambda) Λ se puede selecciona en cualquie alfabeto Λ = 0 Notación: Minúsculas al pincipio del alfabeto denotan símbolos: a, b, c Mínusculas al final del alfabeto denotan cadenas: w, x, y, z... Potencias de un alfabeto Si Σ es un alfabeto Σ k es el conjunto de cadenas de longitud k, tales que todos los símbolos están en Σ Σ 0 = {Λ} Si Σ = {0, } entonces Σ 0 = {Λ} Σ = {0, } Σ = {00, 0, 0, }, etc. Σ Σ (Σ es el alfabeto and Σ es el conjunto de cadenas de longitud )
Paa cualquie alfabeto Σ el conjunto de todas las cadenas sobe Σ se denota Σ * Σ * = Σ 0 Σ Σ Y sin Σ 0 : Σ * = {0, } * = {Λ, 0,, 00, 0, 0,, } Σ + = Σ Σ Σ + = {0, } + = {0,, 00, 0, 0,, } Σ * es denumeable Un conjunto es denumeable, enumeable infinito o contable si puede se odenado en una sóla lista (pobablemente infinita):,,, es una lista infinita,,,,,, no lo es! ( +?) Es necesaio pode deci qué númeo le coesponde a cada elemento de la lista: quién le pecede y quién le sigue Un conjunto A es denumeable si existe una función con dominio en los númeo natuales N tal que a cada miembo de A se asocia un númeo n en N Σ * es denumeable Σ * N Λ 0 00 0 0 000 00 0 00 0 00 0 0... Σ * = {0, } * = {Λ, 0,, 00, 0, 0,, } N Σ * Σ = {a,..,z} Σ * es denumeable ( letas) Σ 0 tiene cadena de longitud 0 (i.e. Λ) Σ tiene cadenas de longitud (i.e. a,,z) Σ tiene cadenas de longitud (en oden alfabético) Σ tiene cadenas de longitud (en oden alfabético) Existe una función tal que cada agumento n tiene como valo la cadena coespondiente en Σ * Concatenación de cadenas: Si x y y son cadenas xy denota la concatenación de x con y Más específicamente: Si x = x x x i & y = y y y j entonces xy = x x x i y y y j e.g: x = 00 y y = 0 entonces xy = 000 xy = i + j Identidad paa la concatenación: Λx = xλ = x La concatenación es asociativa: (xy)z = x(yz) Concatenación de conjuntos de cadenas Si A, B Σ * la concatenación de A y B es AB = {xy x A & y B} La concatenación no es conmutativa A = {a, b} y B = {c, d} AB = {ac, ad, bc, bd} BA = {ca, cb, da, db}
Concatenación de cadenas AB = {xy x A & y B} d ad bd c ac bc B A a b Difeente de BA = {ca, cb, da, db} Sin embago: Σ n+ = Σ Σ n = Σ n Σ (Σ = Σ ) If Σ = {0, } then Σ 0 = {Λ} Σ = {Λ}{0, } = {0, }{Λ} = {0, } Σ = {0, }{0, }= {00, 0, 0, } Σ = {0, }{00, 0, 0, } = {00, 0, 0, } {0, } = {000, 00, 00, 0, 00, 0, 0, } Lenguajes Un lenguaje es un conjunto de cadenas compuestas con símbolos de un alfabeto Lenguajes natuales (Español, Inglés, etc.) Nivel sintáctico: oaciones compuestas de palabas Nivel léxico: palabas compuestas de símbolos del alfabeto Lenguajes fomales Nivel sintáctico: expesiones bien fomadas compuestas de cadenas (tokens) Nivel léxico: tokens compuestos po símbolos del alfabeto (e.g. ASCII) Definiciones de Lenguajes Un lenguaje sobe Σ es un subconjunto de Σ * L es un lenguaje sobe Σ si L Σ * L no necesita inclui todos los símbolos de Σ, po lo mismo, si L es un lenguaje sobe Σ, también lo es sobe un supe conjunto de Σ Ejemplos de Lenguajes El lenguaje de todas las cadenas fomadas po n 0 s seguidas de n s, paa algún n 0: {Λ, 0, 00, 000, } El conjunto de cadenas de 0 s y s con el mismo númeo de ambos símbolos: {Λ, 0, 0, 00, 00, 00, } El conjunto de cadenas epesentando los númeos pimos en notation binaia: {0,, 0,, 0, } Ejemplos de Lenguajes Σ * es un lenguaje sobe cualquie alfabeto Φ, el lenguaje vacío, es un lenguaje sobe cualquie alfabeto {Λ}, el lenguaje consistente de la cadena vacía En paticula, nota que Φ {Λ}
Especifiación de lenguajes Expesado con notación infomal de conjuntos: {w una popiedad de w} Ejemplo: {w w consiste de una secuencia de n 0 s seguida de una secuencia de n s} Expesando w con paámetos {0 n n n 0} donde n es el paámeto {0 i j 0 i j} donde i y j son los paámetos Combinando las opeaciones de conjuntos con la concatencación {ab, bab} * {b}{bb} * E incluso: {byb y {a, b} * } Es conveniente tene una manea simple y diecta paa defini lenguajes! Repesentación Las cadenas de un lenguaje epesentan objetos del mundo: Juan, Pedo y Luis se epesentan po {juan, pedo, luis},,,, se epesentan po {0,, 0,, 0, } Una epesentación puede pensase como una función del mundo al lenguaje Es la función que evalúa quien envía un mensaje! Juan se epesenta po juan Intepetación Las cadenas del lenguaje se intepetan como objetos en el mundo: {juan, pedo, luis} se intepetan como Juan, Pedo y Luis {0,, 0,, 0, } se intepetan como,,,, Una intepetación se puede pensa como una función del lenguaje al mundo! Es la función que evalúa quien ecibe el mensaje! juan se intepeta como Juan Poblemas Un poblema consiste en decidi si una cadena petenece a un lenguaje Si Σ es un alfabeto, L es un lenguaje sobe Σ, el poblema L es: Dada una cadena w en Σ *, decidi si o no w está en L Poblemas y lenguajes son ealmente lo mismo Un Poblema: El poblema de decidi si un númeo es pimo puede expesase con el lenguaje L p consistente de todas las cadenas monádicas cuya longitud sea un númeo pimo: L p ={,,,,,} L p L p Dada una cadena de s hay que deci si o no dependiendo de si dicha cadena epesenta o no a un númeo pimo Poblemas Dos maneas de pensa aceca de los poblemas: Como un poblema de decisión: Decidi si una cadena está incluida en el conjunto (i.e. el lenguaje) {,,,,,}? Como un poceso que tansfoma una entada en cieta salida: Algoitmo si Qué es más fácil?
Algoitmos El poblema de los acionales Función: independiente de la epesentación Algoitmo: dependiente de la epesentación Fómula: expesión de un algoitmo! Cómo podemos decidi si un númeo es acional? El poblema de los acionales La función que los odena... / / / m/ 0 / / / m/ / / / / / m/ / / / / / m/ /m /m /m /m Los acionales son numeables! Los acionales son numeables! Foma de Foma de 0 / / / m/ 0 / / / m/ / / / / / m/ / / / / / m/ /m /m /m /m Los enteos: () =, () =, () =,... Redundante: () = () = () = () =... =
Algoitmo paa ( Algoitmo paa ( 0 / / / m/ 0 / / / m/ / / /m / / /m / m/ / / /m / / /m / m/ Cualquie n está sobe un cuadado de lado m: sq() = sq() = sq( es el numeado o el denominado de un acional en la imagen de : sq( = m Algoitmo paa ( Algoitmo paa ( 0 / / / m/ 0 / / / m/ / / /m / / /m / m/ / / /m / / /m / m/ Si n está en columna deecha: ( = sq(/? = m/? Ejemplo: () = sq()/? = /? Si n está en englón infeio: ( =?/sq( =?/m Ejemplo: () =?/sq() =?/ Algoitmo paa ( Algoitmo paa ( 0 / / / /m / / / /m / / m/ m/ 0 / / / /m / / / /m / / m/ m/ Cálculo esquina infeio deecha: Si n está en la columna deecha n es cuando más: n (sq( ) + sq( = (m ) + m Ejemplo: ( ) + = Cálculo de? si n está en la columna deecha: Quita a n el cuadado anteio: n (sq( ) Ejemplo: si n = :? = - ( ) =
Algoitmo paa ( Algoitmo y fomula paa ( 0 / / / /m / / / /m / / Cálculo de? si n está en la englón infeio: sq( n + Ejemplo: si n = :? = + = m/ m/ 0 / / / m/ / / / m/ / / /m /m sq( si n (sq( ) + sq( n ( sq( ) ( = sq( n + en oto caso sq( Poblemas Dos maneas de pensa aceca de los poblemas: Como un poblema de decisión: / {/, /, /, /, /, /,, /, /,}? Como un poceso que tansfoma una entada en cieta salida: / Algoitmo si Peo en este caso, podemos decidi en base a la estuctua de las cadenas! Poblemas Peo que tal los pimos: Como un poblema de decisión: {,,,,,}? Como un poceso que tansfoma una entada en cieta salida: Algoithm yes Podemos odena los pimos? Lo podemos sabe po la estuctua de las cadenas? Tenemos que veifica los natuales uno po uno? Teoía de la complejidad Todo algoitmo equiee ecusos: Pasos de pocesamiento (tiempo) Memoia El poblema es complejo si lo expesamos tanto: Como poblema de decisión Como poceso algoítmico