Linguagem (formal) de alfabeto Σ Linguagem é qualquer subconjunto de Σ, i.e. qualquer conjunto de palavras de Σ Σ = {a, b} {aa, ab, ba, bb} ou {x x {a, b} e x = 2} {a, aa, ab, ba, aaa, aab, aba,...} ou {x x {a, b} com pelo menos um a} {ɛ, ab, ba, abab, aabb, baba, bbaa, abba, baab,...} ou {x x {a, b} com o mesmo número de a e b} Σ Σ n Σ {ɛ} As linguagens podem ser finitas ou infinitas. Dá exemplo de cada... Pretende-se obter representações finitas para as linguagens infinitas, i.e. L = {x Σ x têm a propriedade P } Departamento de Ciência de Computadores da FCUP MC Aula 2 1
Problemas e Linguagens Um problema de decisão equivale a decidir se uma palavra pertence a uma dada linguagem. Portanto podemos identificar problemas e linguagens. Dado um alfabeto Σ e L uma linguagem sobre Σ (L Σ ), o problema L é: Dado w Σ, decidir se w L Exemplo: Primalidade L p L p = {x {0, 1} x é a representação binária de um número primo} Departamento de Ciência de Computadores da FCUP MC Aula 2 2
Revisões de Conjuntos a A a pertence a A, a é elemento de A a {a, b, c} a / A a não pertence a A d / {a, b, c} A B A contido em B, x A x B {a, b} {b, c, a} A B A contém B, B A {b, c, a} {a, b} A = B igualdade de conjuntos, A B e B A {a, b, c} = {b, c, a} A B x tal que x A e x / B ou vice-versa ou {} conjunto vazio #A ou A cardinal de A, número de elementos (finito {a, b, c} = 3 ou infinito) P(A) Conjunto dos subconjuntos de A P({a, b}) = {, {a}, {b}, {a, b}} Partição de A subconjunto de P(A), tal que os elementos são {{a}, {c, b}} não vazios, disjuntos 2 a 2 e a reunião é A A B Produto cartesiano de A e B, conjunto de pares ordenados (a, b), a A e b B R A B Relação binária de A em B Departamento de Ciência de Computadores da FCUP MC Aula 2 3
Operações sobre linguagens Intersecção de A com B A B = {x x A e x B} Reunião de A com B A B = {x x A ou x B} Complementar de B em A A \ B = {x x A e x / B} Complementar de A A, complementar de A em U, quando está impĺıcito um universo U Complementar de A em Σ : {x Σ x / A} Concatenação AB = {xy x A e y B} {a, ab}{b, ba} = {ab, aba, abb, abba} Normalmente AB BA Departamento de Ciência de Computadores da FCUP MC Aula 2 4
As potências L n de L são definidas indutivamente por: L 0 = {ɛ} L n+1 = LL n Isto é, L n = {x 1 x 2... x n x i L, 1 i n}, n 0 {ab, aab} 0 = {ε} {ab, aab} 1 = {ab, aab} {ab, aab} 2 = {abab, abaab, aabab, aabaab} {ab, aab} 3 = {ababab,ababaab,abaabab,aababab, abaabaab,aababaab,aabaabab,aabaabaab} Departamento de Ciência de Computadores da FCUP MC Aula 2 5
Fecho de Kleene O fecho de Kleene L de L é a reunião de todas as potências finitas de L L = L 0 L 1 L 2 L 3... = n 0 L n ou, equivalentemente, L = {x 1 x 2... x n n 0 e x i L, 1 i n} i.e, a linguagem das palavras que são concatenação de palavras de L. Exercício 2.1. Mostrar a equivalência das duas definições. Σ, o conjunto das palavras de alfabeto Σ, é o fecho de Kleene de Σ = {ɛ} {01} = {ɛ, 01, 0101, 010101, 01010101, 0101010101,...} {000} = {ɛ, 000, 000000, 000000000,...} = {0 3n n N} L + é a reunião das potências não nulas de L L + = LL = n 1 L n Departamento de Ciência de Computadores da FCUP MC Aula 2 6
Exercício 2.2. Seja Σ o alfabeto {0, 1}. Sendo A = {10, 11} e B = {00, 1}, determina: A B, AB,BA, A 3, A Exercício 2.3. Seja aaaba uma palavra de alfabeto {a, b}. A que linguagens pertence: (a) {a, b} (b) {aaa, bab}{ba, bb} (c) {aaa} {b} {a} (d) {a} {b} {a} (e) {aa} {a} {a, ba, bb, ɛ} Departamento de Ciência de Computadores da FCUP MC Aula 2 7
Algumas propriedades das operações Associatividade, e concatenação: (A B) C = A (B C), (A B) C = A (B C), (AB)C = A(BC) Comutatividade e (A B) = (B A), (A B) = (B A) é o elemento neutro para a A = A = A é elemento absorvente para a concatenação A = A = Departamento de Ciência de Computadores da FCUP MC Aula 2 8
e distribuem sobre uma sobre a outra (A (B C)) = (A B) (A C), (A (B C)) = (A B) (A C) Concatenação distribui sobre a (mas não sobre ) A(B C) = AB AC Leis de Morgan (A B) = A B, (A B) = A B Se L 1, L 2 Σ e L 1 L 2 então L n 1 L n 2 (n N), e L 1 L 2 Sejam L 1, L 2 Σ. L 1 L 1 L 2 Se ɛ L 1 então L 2 L 1 L 2 e se ɛ L 2 então o fecho de Kleene verifica Departamento de Ciência de Computadores da FCUP MC Aula 2 9
A A = A (A ) = A ({ɛ} A) = A (A B ) = (A B) = {ɛ} Exercício 2.4. Mostra todas as propriedades anteriores. Departamento de Ciência de Computadores da FCUP MC Aula 2 10
Alfabeto Palavra Sumário dos conceitos novos Concatenação Inversa Vazia Linguagem concatenação fecho de Kleene relação com outras operações sobre conjuntos Departamento de Ciência de Computadores da FCUP MC Aula 2 11
Leituras [TM05] (Cap. 1 e 2) [HMU00](Cap 1.5) Referências [HMU00] John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman. Introduction to Automata Theory, Languages and Computation. Addison Wesley, 2nd edition, 2000. [TM05] Ana Paula Tomás and Nelma Moreira. Modelos de computação. Technical report, Departamento de Ciência de Computadores, FCUP, 2005. Departamento de Ciência de Computadores da FCUP MC Aula 2 12