Revisões de Conjuntos {, {a}, {b}, {a, b}} 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, A subconjunto de 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 existe um x tal que x A e x / B ou vice-versa A B A contido propriamente em B (A B A B) A B A contém propriamente B 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}) = 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 1
Operações sobre conjuntos 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} Quando está impĺıcito um dado universo U, chama-se complementar de A, e representa-se por A, ao complementar de A em U, ou seja a U \ A. Complementar de A em Σ : {x Σ x / A} Departamento de Ciência de Computadores da FCUP MC Aula 2 2
Concatenação AB = {xy x A e y B} {a, ab}{b, ba} = {ab, aba, abb, abba} Normalmente AB BA 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} {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 3
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} 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,...} Departamento de Ciência de Computadores da FCUP MC Aula 2 4
{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 5
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 = e distribuem sobre uma sobre a outra (A (B C)) = (A B) (A C), (A (B C)) = (A B) (A C) Departamento de Ciência de Computadores da FCUP MC Aula 2 6
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 Σ. Se ɛ L 1 então L 2 L 1 L 2 e se ɛ L 2 então L 1 L 1 L 2 o fecho de Kleene verifica A A = A (A ) = A ({ɛ} A) = A (A B ) = (A B) = {ɛ} Exercício 2.2. Mostra todas as propriedades anteriores. Departamento de Ciência de Computadores da FCUP MC Aula 2 7
Noções de grafos (dirigidos) Grafo G = (V, E) é um conjunto de vértices (ou nós) V e um conjunto de arcos E V V. 1 2 G = ({1, 2, 3, 4, 5}, {(1, 2), (2, 3), (2, 4), (3, 2), (3, 4), (4, 4)} 5 3 4 Um arco é representado por um par ordenado de vértices (a, b). a é a origem e b o fim. Os vértices a e b dizem-se adjacentes. E define uma relação binária em V. Um lacete é um arco da forma (a, a) com a V Departamento de Ciência de Computadores da FCUP MC Aula 2 8
Um vértice que não é a origem nem o destino de nenhum arco diz-se isolado. Por exemplo, 5. Um caminho em G é uma sequência finita de vértices a 1 a 2... a n em que cada um está ligado ao seguinte por um arco: (a i, a i+1 ) E, 1 i n 1.Por exemplo, (1, 2, 3). Mas não (3, 2, 1) A origem de um caminho a 1 a 2... a n é o primeiro vértice (a 1 ) e o fim é o último (a n ). Diz-se um caminho (dirigido) de a 1 para a n Um ciclo é um caminho em que a origem e o fim são o mesmo vértice. O vértice a é acessível do vértice b se existir um caminho de b para a. Um grafo dirigido é fortemente conexo se qualquer vértice é acessível de qualquer outro vértice. Departamento de Ciência de Computadores da FCUP MC Aula 2 9
Um grafo dirigido é conexo se dados quaisquer dois vértices a e b, a é acessível a b ou b é acessível a a. G 1 G 2 G 3 1 2 1 1 2 2 3 4 3 4 3 4 G 1 é fortemente conexo, G 2 conexo e G 3 nem uma coisa nem outra. Exercício 2.3. Um grafo G = (V, E) é fortemente conexo se e só se E = V V. Departamento de Ciência de Computadores da FCUP MC Aula 2 10
Multigrafos dirigidos Um multigrafo é um terno (V, A, φ) em que V é um conjunto de vértices, A um conjunto de arcos e φ uma função de A em V V. Se φ for injectiva obtemos um grafo dirigido. Um multigrafo com símbolos associados aos arcos é um quinteto (V, A, Σ, τ) em que (V, A, φ) é um multigrafo, Σ um alfabeto e τ uma função que associa a cada arco de A um elemento de Σ a 1 b c 2 Departamento de Ciência de Computadores da FCUP MC Aula 2 11
Leituras [Tom99] (Pág 18-21) [HMU00](Cap 1.3) Departamento de Ciência de Computadores da FCUP MC Aula 2 12
Referências [HMU00] John E. Hopcroft, Rajeev Motwani, and Jeffrey D. Ullman. Introduction to Automata Theory, Languages and Computation. Addison Wesley, 2nd edition, 2000. [Tom99] Ana Paula Tomás. Apontamentos de modelos de computação. Technical report, Departamento de Ciência de Computadores, FCUP, 1999. Departamento de Ciência de Computadores da FCUP MC Aula 2 13