CONTAGEM E CODIFICAÇÃO DE ÁRVORES

Tamanho: px
Começar a partir da página:

Download "CONTAGEM E CODIFICAÇÃO DE ÁRVORES"

Transcrição

1 CONTAGEM E CODIFICAÇÃO DE ÁRVORES PAULO JORGE M. TEXEIRA 1. Motivação São inúmeros os problemas que podem ser modelados através de árvores. As árvores são estruturas de dados extremamente úteis em muitas aplicações e admitem tratamento computacional eficiente quando comparadas às estruturas mais genéricas como os grafos (os quais, por sua vez são mais flexíveis e complexos). As diferentes aplicações de árvores necessitam de estruturas bem mais complexas, como veremos no decorrer deste trabalho. 2. Conceitos Iniciais da Teoria de Grafos Um grafo não orientado, ou simplesmente grafo G é um par (V,E), onde V é o conjunto de vértices e E é o conjunto de arestas. Indicaremos por V = n e E = m a quantidade de elementos de cada conjunto. Cada aresta é um subconjunto de V com 1 ou 2 vértices. Dada uma aresta {v,w} E, os vértices v e w são denominados extremidades da aresta, ou então, que a aresta incide sobre os vértices v e w. Uma aresta unitária, da forma {v} é dito um laço. No caso de um laço, a aresta unitária é contada duas vezes quando da determinação do grau do vértice e, portanto, contribui com 2(duas) unidades para o seu grau. Neste trabalho, os grafos considerados são finitos (possuem um número finito de vértices) e não possuem laços. Um subgrafo H de G é dito um subgrafo gerador ou de espalhamento de G se V (H) = V (G). Dois vértices são adjacentes ou vizinhos quando são extremidades de uma aresta. O conjunto de vizinhos de um vértice v é o conjunto N(v) = {w V/{v,w} E}. A cardinalidade N(v) ou então, o número de arestas incidentes em v, é dita o grau de v, e indicado por d(v). A excentricidade de um vértice v de um grafo G, denotada por e(v), é a maior das distâncias do vértice v aos demais vértices do grafo G, isto é: e(v) = máx{d(v, w)/w V (G), w v}. O diâmetro de um grafo G, denotado por diâmetro (G), é o maior valor dentre todas as excentricidades dos vértices de G, isto é: diâmetro (G) = máx {e(v)/v V (G)}. O raio de um grafo G, denotado porraio(g), é o menor valor dentre todas as excentricidades dos vértices de G, isto é: raio(g) = mín{e(v)/ v V (G)}. O centro de um grafo G, denotado por C(G), é o conjunto de vértices do grafo G que têm a menor excentricidade, isto é: C(G) = {v V (G)/e(v) é mínimo }. Portanto, em vista da definição, tem-se que o centro de um grafo não é formado, necessariamente, por um único vértice. Dado um grafo G = (V,E), um passeio em G é uma seqüência de vértices de G : v 1,v 2,...,v k tais que toda aresta (v i,v i+1 ) E, i, 1 i k 1. O comprimento do passeio é dado pelo número de arestas que o compõem, isto é, k 1 como indicado anteriormente. O vértice v 1 é chamado de origem (ou início)

2 2 PAULO JORGE M. TEXEIRA do passeio e o vértice v k seu término (ou fim). Um passeio em que não há repetição de arestas, isto é: todas as arestas do passeio são distintas, é dito uma trilha ou trajeto. Em particular, se não há repetição de vértices, o passeio é dito um caminho. Um passeio v 1,v 2,,v k é dito fechado quando o vértice de seu início coincide com o vértice de seu término, isto é: v 1 = v k. Analogamente, uma trilha ou um caminho são ditos fechados quando o vértice de início coincide com o vértice final. Um caminho é dito hamiltoniano se é composto por uma seqüência de arestas que percorre os vértices do grafo uma e somente uma única vez. Uma trilha é dita hamiltoniana se é um caminho hamiltoniano que, partindo de um qualquer vértice de um grafo G conexo, retorna ao vértice inicial de tal modo que, exceto para o vértice inicial, foi percorrido um caminho hamiltoniano. Assim, fica formado um circuito com todos os vértices do grafo G e, portanto, todos os vértices desse circuito têm grau igual a 2(dois). Um ciclo é um passeio fechado v 1,v 2,,v k 1,v k, v 1 tal que v 1,v 2,,v k é um caminho. Ou seja, um ciclo é um caminho de comprimento maior do que ou igual a 3, em que o primeiro e o último vértices coincidem. Um ciclo simples é um caminho de comprimento maior do que ou igual a 3 em que somente o primeiro e o último vértices coincidem. O tamanho de um passeio fechado é dado pelo número de arestas que o compõem. Em particular, o comprimento de um ciclo é dado pelo seu número de vértices distintos ou, equivalentemente, de seu número de arestas. Um ciclo com um número par de arestas é dito um ciclo par, e com um número ímpar de arestas é dito um ciclo ímpar. Um grafo que não possui ciclos é dito acíclico. Um grafo é conexo quando existir pelo menos um caminho entre cada par de vértices. Caso contrário é dito desconexo. Uma componente conexa é um subgrafo conexo do grafo considerado. Indicamos o número de componentes conexas de um grafo G por w(g). Uma árvore é um grafo conexo e acíclico. Uma corda em um ciclo é uma aresta que é adjacente a dois vértices não consecutivos desse ciclo. Uma corda em um caminho é uma aresta que é adjacente a dois vértices não consecutivos de um caminho. 3. Introdução Quando dois ou mais grafos têm particularidades próprias entre si dizemos que eles pertencem à mesma família de grafos. Assim, podemos definir uma família de grafos como o conjunto (finito ou não) de todos os grafos que satisfazem a uma ou mais propriedades (as quais caracterizam essa família) que precisam ser claramente atendidas por todos os seus elementos. Normalmente, a definição de uma família consiste em mencionar a propriedade satisfeita pelos grafos que a constituem. Como o conjunto de todos os grafos é infinito, o máximo que podemos afirmar é que um grafo pode pertencer a mais de uma família, de acordo com a caracterização a ela dada. O universo dos grafos tem sido então, largamente estudado, através de diferentes famílias com suas específicas características. O grande desafio da comunidade de Teoria dos Grafos é: * estabelecer condições que caracterizam com precisão os elementos de cada família assim definida;

3 CONTAGEM E CODIFICAÇÃO DE ÁRVORES 3 * encontrar condições que permitam determinar o total de elementos de cada família; e * definir a maneira de ser possível construir grafos que atendam às propriedades estabelecidas para cada uma das famílias. Entre essas famílias podemos destacar: * a família dos grafos eulerianos (aqueles grafos em que é possível verificar a existência de um circuito (ou ciclo) que inclua exatamente uma vez cada aresta); O problema foi estudado pela primeira vez por Euler ( ) e, por essa razão um circuito que percorre cada aresta de um grafo exatamente uma vez é dito um circuito euleriano e, um grafo que possui tal circuito é então chamado de grafo euleriano. * a família dos grafos hamiltonianos (aqueles grafos em que é possível verificar a existência de um circuito (ou ciclo) que inclua exatamente uma vez cada vértice); Um circuito passando exatamente uma vez por cada vértice de um grafo é chamado de circuito hamiltoniano, em homenagem ao matemático irlandês William Rowan Hamilton ( ), que estudou este problema no grafo determinado pelas arestas de um dodecaedro regular. Um grafo que possui um circuito hamiltoniano é então chamado de grafo hamiltoniano. Há grafos que podem pertencer a mais de uma família. Por exemplo, os grafos da família de ciclos são eulerianos e hamiltonianos. Há outros grafos que são eulerianos e não são hamiltonianos. Há outros que são hamiltonianos mas não são eulerianos, e há outros que não são eulerianos e também não são hamiltonianos. * a família dos grafos planares (aqueles em que sua representação no plano seja possível desde que atenda ao fato de que quaisquer duas arestas nunca se cruzem, podendo as arestas até ter um vértice em comum). * a família das árvores (aqueles grafos que são conexos e acíclicos e com o menor número de arestas); * a família dos grafos isomorfos (aqueles grafos em que há uma bijeção entre os conjuntos de vértices de cada um deles e de tal modo que as adjacências entre arestas fiquem preservadas, conforme a definição a seguir); 3.1. O Problema do Isomorfismo entre Grafos. Dois grafos G 1 = (V 1,E 1 ) e G 2 = (V 2,E 2 ) são ditos isomorfos quando existir uma bijeção f : V 1 V 2 tal que, para todo v,w V 1, {v,w} E 1 {f(v),f(w)} E 2. Ou seja: vértices vizinhos de G 1 devem ser mapeados (têm sua imagem) pela função f em vértices vizinhos de G 2 e vice-versa. Exemplo A função f : {1, 2, 3, 4, } {m,n,o,p,q} tal que: f(1) = n, f(2) = q, f(3) = o, f(4) = p e f() = m define um isomorfismo entre os grafos G 1 e G 2 representados na figura a seguir. Decidir, por exemplo, quando dois grafos finitos G 1 e G 2 são isomorfos é um problema de difícil solução. O problema do isomorfismo entre grafos consiste em obter um algoritmo que verifique se dois grafos G 1 = (V 1,E 1 ) e G 2 = (V 2,E 2 ) são isomorfos. A solução deve exibir uma função que associe de modo

4 4 PAULO JORGE M. TEXEIRA 2 3 q 1 n o 4 m p Figura 1. Dois grafos Isomorfos biunívoco os vértices dos dois grafos, preservando a noção de adjacência. Inicialmente, como condição necessária para que isto ocorra é preciso que ambos os conjuntos de vértices tenham a mesma quantidade de elementos, ou seja: V 1 = V 2 = n. Caso contrário não podem existir bijeções de V 1 em V 2. A solução da verificação da existência ou não de um isomorfismo entre dois grafos por força bruta é aquela em que devemos experimentar todas as funções bijetoras existentes de V 1 para V 2 (ou parte delas), verificando, para cada uma, se a relação de adjacência expressa pelo conjunto de arestas de G 1 é preservada no conjunto de arestas de G 2. Ora, quando V 1 = V 2 = n, existem n! bijeções distintas de V 1 em V 2. Assim, será preciso exibir pelo menos uma, dentre as n! possíveis bijeções de G 1 para G 2, o que evidencia a ineficiência deste algoritmo. Não é conhecido até o momento, na literatura, um algoritmo eficiente (de complexidade polinomial) que permita verificar se dois grafos quaisquer (que não pertencem a uma família conhecida, ou essa família não foi caracterizada no momento da verificação, ou os grafos não satisfazem à nenhuma propriedade em especial) são ou não grafos isomorfos, ou seja, um algoritmo que resolva o problema da verificação do isomorfismo. E, também, ainda não foi provado que tal algoritmo não existe. Para a família das árvores o problema tem solução de forma eficiente, isto é, pode ser verificado o isomorfismo entre duas árvores, em tempo linear, no número de vértices Representação de Grafos. Um esquema de representação é uma maneira alternativa de exibir os grafos de uma determinada família. O resultado obtido pela aplicação de um esquema a um grafo G = (V,E), onde V = n e E = m,e = {{u,v}/u V,v V } é chamado representação para o grafo. É preciso explicitar n vértices e m pares de vértices. A partir dela, os conjuntos de vértices e arestas do grafo representado devem poder ser deduzidos sem ambigüidades. A seguir apresentamos alguns esquemas de representação: O esquema de representação mais usual para grafos arbitrários é o gráfico, onde: * todo grafo pode ser representado sobre uma superfície por um conjunto de pontos e segmentos de curvas de tal modo que a cada vértice corresponda um ponto e a cada aresta corresponda um segmento de curva interligando os pontos associados às suas extremidades.

5 * essa representação gráfica não é única. CONTAGEM E CODIFICAÇÃO DE ÁRVORES Outro esquema consiste em mencionar, para todo vértice v V, seu conjunto de vizinhos N(v), construindo um conjunto de pares da forma {(v, {N(v)})/v V }. Numa representação obtida por esse esquema são mencionados v V (1 + N(v) ) = n + 2m termos. Exemplo Subfamília dos grafos conexos cujos vértices possuem grau 2. Uma caracterização equivalente seria dizer que os grafos integrantes desta família são ciclos simples sem arestas interiores (cordas). Logo, grafos com n vértices desta família possuem exatamente n arestas. O esquema de representação por vizinhos exige a nomeação de n + 2n = 3n elementos. Por exemplo, considere o ciclo representado abaixo: Figura 2 Representação por vizinhos: {(1, {2, 6}), (2, {1, 3}), (3, {2, 4}), (4, {3, }), (, {4, 6}), (6, {, 1})}. Figura 2: Um ciclo simples com 6 vértices e seu esquema de representação por vizinhos Um esquema alternativo mais compacto para representar os grafos de um ciclo é utilizar uma seqüência de n vértices, dispostos na mesma ordem em que figuram no ciclo: 1, 2, 3, 4,, 6. Esta representação não é única pois o mesmo grafo poderia ser representado por 1, 6,, 4, 3, 2 ou 2, 3, 4,, 6, 1, por exemplo. Ao utilizarmos um esquema de representação, se cada grafo da família possui uma única representação esta é denominada um Código. Neste caso, a correspondência entre grafos e códigos deve ser biunívoca. O processo para a obtenção do código para um determinado grafo de uma dada família chama-se Codificação. A validação de um código consiste em determinar se a ele corresponde um grafo da família, sem explicitamente exibir tal grafo. A construção explícita do grafo a partir de seu código chama-se Decodificação. Algumas vezes, o estudo de codificações para famílias particulares de grafos conduz à solução de problemas de contagem e geração. Esse é o caso da família das árvores. Na seção 9 será apresentado o Código de Prüfer para a Codificação e Decodificação de Árvores, objeto deste trabalho.

6 6 PAULO JORGE M. TEXEIRA A seguir, apresentamos algumas propriedades básicas de árvores, introduzimos alguma terminologia conveniente para trabalhar com árvores e provamos algumas fórmulas úteis de contagem sobre árvores. 4. Definições Básicas em Árvores e Árvores Enraizadas Um dos tipos especiais de grafos mais amplamente utilizados em diferentes aplicações é uma árvore. Há uma importante utilização como modelos combinatórios em química, ciência da computação, pesquisa operacional, ciências sociais, e muitas outras áreas da matemática aplicada. Devido à sua relativa simplicidade estrutural, as árvores são uma das classes de grafos mais intensamente estudadas. Portanto, gerar árvores é um importante problema computacional. Definição 4.1. Uma árvore enraizada T é um grafo com um determinado vértice r, chamado de raiz, e pode-se provar (mais adiante será feito) que há um único caminho da raiz até qualquer dos outros vértices. Após a definição do vértice raiz, os vértices restantes constituem um único conjunto vazio ou são divididos em k (k 1) conjuntos disjuntos, distintos e não vazios, que são as subárvores de r, onde cada subárvore é, por sua vez, uma árvore. Observação 4.2. Uma árvore enraizada T tem uma única raiz. De fato. Suponha, por absurdo, que seus vértices a e b sejam, ambos, raízes de T. Então, haveria caminhos do vértice a para o vértice b e do vértice b para o vértice a, formando um ciclo, o que é uma contradição. Assim, uma vez enraizada, uma árvore tem uma única raiz. Intuitivamente, uma árvore em Teoria dos Grafos parece-se com uma árvore real no sentido de que toda árvore pode ser desenhada com a aparência de uma árvore real. Notação: A notação T r indica a subárvore de T com raiz em r se r é um vértice de T. Como os conjuntos das subárvores têm de ser disjuntos observe que a estrutura indicada na Figura 3, abaixo, não é uma árvore. Podemos também observar que há dois caminhos distintos entre os vértices A e H: um caminho passando pelo vértice C e outro caminho passando pelo vértice B. Além do mais, se uma árvore é um grafo não direcionado (sem arestas direcionadas), então, qualquer vértice pode ser a raiz da árvore. Por exemplo, considere os exemplos de árvores na Figura 4, abaixo. O vértice rotulado por a é uma raiz para cada uma dessas árvores. A árvore mais à direita na Figura 4 é desenhada de tal forma que a parece ser uma raiz, mas a árvore mais abaixo na Figura 4, que é a árvore mais à direita redesenhada, não possui nenhum vértice que seja uma raiz natural. Isto é, qualquer vértice pode ser a raiz. Finalmente, uma árvore não tem ciclos (num grafo direcionado, não há ciclos mesmo quando as direções das arestas são ignoradas), porque um ciclo forneceria dois modos de se chegar da raiz a certos vértices. Isso prova que há um único caminho da raiz até qualquer dos outros vértices. Por exemplo, na árvore da esquerda na Figura 4, o acréscimo de uma aresta ( g,h) criaria um ciclo (quando as

7 CONTAGEM E CODIFICAÇÃO DE ÁRVORES 7 A B C D E F G H I Figura 3 d h a b c e f g i j l i k h a b c e d f g h i j k l m j k e d b a c f g l m Figura 4 direções das arestas são ignoradas) e um segundo caminho de a para h via g ; o acréscimo de uma aresta ( d,a) cria um ciclo o que faz com que se tenha um segundo caminho de a para a, uma vez que já temos o caminho nulo de a para a Propriedades das árvores enraizadas. Em grande parte deste parágrafo estaremos usando árvores com arestas direcionadas. Seguindo a terminologia comum, chamamos de árvore direcionada a uma árvore enraizada (ao contrário de uma árvore

8 8 PAULO JORGE M. TEXEIRA não direcionada que não tem raiz (no sentido de que não tem uma raiz em especial)). Uma árvore não direcionada pode ser transformada em uma árvore enraizada escolhendo-se um vértice como raiz e, então, direcionando todas as arestas saindo da raiz. Em uma árvore T = (V,E), qualquer vértice pode ser eleito como raiz, tornando-a enraizada. Uma árvore cuja raiz não é determinada a priori é simplesmente chamada uma árvore livre. Essas definições são usadas para árvores enraizadas e não enraizadas. Por exemplo, para enraizar a árvore não direcionada que está no meio na Figura 4, no vértice a, simplesmente podemos direcionar todas as arestas da esquerda para a direita. O modo padrão de desenhar uma árvore enraizada T é colocar a raiz a no topo da figura. Então os vértices adjacentes de a são colocados num nível abaixo do nível de a, e assim por diante, como na primeira árvore da Figura 4. Dizemos que a raiz está no nível 0, os vértices b e c naquela árvore estão no nível 1, os vértices d, e, f, e g naquela árvore estão no nível 2 e assim por diante. Para qualquer vértice x em T, exceto a raiz, o pai de x é o único vértice y com uma aresta para x (o mais próximo do último vértice no caminho único de a para x). Reciprocamente, o vértice x é um filho do vértice y. Se dois vértices têm o mesmo pai, eles são irmãos. Na primeira árvore da Figura 4, o vértice e tem o vértice b como seu pai, os vértices h e i como seus filhos, os vértices d e f como seus irmãos, o vértice a como seu outro ancestral, e o vértice l como seu outro descendente. Os ancestrais de um vértice v em uma árvore enraizada são todos os vértices no (único) caminho simples entre a raiz e v (incluindo o próprio vértice v). A raiz é, portanto, um ancestral comum a todos os vértices. Um vértice w é descendente de v se, e somente se, v for ancestral de w. A relação pai-filho se estende aos ancestrais e descendentes de um vértice. Seja n o vértice raiz da subárvore T n de T. Os vértices raízes n 1,n 2,,n k das subárvores de T n são chamados de filhos de n e n é o pai destes vértices, que são vértices irmãos entre si. Se z é filho de n 1 então n 2 é tio de z e n é avô de z. O grau de uma árvore é o máximo entre os graus de seus vértices. Denomina-se caminho numa árvore a uma seqüência de vértices distintos v 1,v 2,,v k 1,v k, de modo que exista sempre a relação v i é pai de v i+1 ou v i é filho de v i+1 entre vértices consecutivos, isto é, entre v 1 e v 2, entre v 2 e v 3,, entre v k 1 e v k. Diz-se que v 1 alcança v k e que v k é alcançado por v 1, quando há um único caminho entre os vértices v 1 e v k. Um caminho de k vértices é obtido pela sequência de k 1 pares de vértices. Nesse caso o caminho é dito de comprimento k 1. Definimos o número do nível ou profundidade de um vértice x em M como o comprimento do único caminho do vértice a para o vértice x, ou seja, é o número de vértices do caminho entre a raiz e o vértice. O nível de um vértice é o número de ancestrais que ele possui. O nível da raiz (ou profundidade de uma árvore) é, portanto, igual a 1. Na Figura 4, o comprimento do caminho entre o vértice a e o vértice h é 3. Cada vértice x em T é a raiz da subárvore de x e seus descendentes. O número de filhos de um vértice x é chamado grau de saída desse vértice, e indicado por d + (x). Se um vértice u pertence à subárvore T v (v é a raiz de T v ), então u é descendente de v e v é dito ancestral ou antecessor de u. Se, neste caso, u é diferente de v então u é dito descendente próprio de v e v é ancestral próprio de u. Um vértice que não

9 CONTAGEM E CODIFICAÇÃO DE ÁRVORES 9 possui descendentes próprios (vértices sem filhos) é chamado de vértice folha. Ou seja, um vértice folha é aquele com grau de saída nulo. Assim, um vértice v tal que d(v) = 1 é chamado folha. Um vértice que não é folha é chamado vértice interior ou vértice interno. Se cada vértice interno de uma árvore enraizada tem m filhos, a árvore T é chamada de árvore m-ária. Se m = 2, a árvore T é dita uma árvore binária e se m = 3, T é uma árvore ternária. A altura de um vértice v é o número de vértices no maior caminho de v até um de seus descendentes. Assim, as folhas, por definição, têm altura igual a 1. A altura de uma árvore T é igual ao máximo nível de seus vértices. Representa-se a altura de T por h(t) e a altura da subárvore de raiz v por h(v). Uma árvore ordenada é aquela na qual os filhos de cada vértice estão ordenados. Assume-se a ordenação da esquerda para a direita. Desse modo, a árvore da Figura 3 é ordenada. Entretanto, o mesmo não ocorre com a árvore da Figura. Figura. Árvore não ordenada. Diferentes Caracterizações das árvores As árvores têm muitas caracterizações equivalentes. Apresentaremos aqui 3(três) delas..1. Primeira caracterização de árvores. Definição.1.1. Um grafo conexo e sem ciclos (acíclico) é dito uma árvore e será indicado por T = (V,E) (quando for preciso fazer referência aos respectivos conjuntos de vértices e arestas) ou simplesmente por T, uma referência do inglês tree Uma excelente caracterização para uma árvore é que é um grafo tal que a adição de qualquer aresta à árvore forma um único ciclo, e a retirada de qualquer aresta resulta em um grafo desconexo com duas componentes conexas: uma componente que inclui um dos vértices extremidade da aresta retirada e a outra componente conexa que inclui o outro vértice extremidade da aresta retirada.

10 10 PAULO JORGE M. TEXEIRA Definição.1.2. Um grafo sem ciclos é dito uma floresta. Assim, uma árvore é uma floresta com um único grafo conexo: ela mesma. E cada componente conexa de uma floresta é uma árvore. A seguir, apresentamos alguns resultados derivados dessa primeira caracterização das árvores. Teorema.1.3. Um grafo T é uma árvore se e somente se todo par de vértices de T é unido por um único caminho. Prova: Seja T uma árvore. Suponha, por contradição, que existem dois caminhos distintos P 1 e P 2 entre os vértices v e w de T. Como os caminhos são distintos, existem vértices t 1 e t 2 tais que as seções de P 1 e P 2 entre t 1 e t 2 são totalmente disjuntas. Logo, considerando a união dessas seções (P 1 (t 1 t 2 ) P 2 (t 1 t 2 )), temos um ciclo. Isso é uma contradição! Logo, se T é uma árvore, para todo par de vértices de T existe um único caminho entre eles. P1 P1 v w v w P2 t1 P2 t2 Figura 6 Suponha agora que para todo par de vértices de T existe um único caminho entre eles. Logo, T é conexo. Falta então, agora, mostrar que T é grafo acíclico. Suponha que T é cíclico, ou seja, que T contém algum ciclo Ĉ. u C v Figura 7 Seja e = (u,v) uma aresta no ciclo Ĉ. Então, Ĉ (u,v) é um caminho em T entre u e v, contradizendo a hipótese de que o caminho era único. Portanto, T é conexo e acíclico e então, por definição, T é uma árvore. Teorema.1.4. Seja T = (V,E) uma árvore tal que V = n, E = m. Então, m = n 1.

11 Prova: CONTAGEM E CODIFICAÇÃO DE ÁRVORES 11 Seja T = (V,E) tal que V = n, E = m. Vamos fazer a prova por indução no número de vértices de T. Para n = 1, temos que: m = 0 = n 1 = 1 1. Verdadeira para n = 1. Suponha como hipótese de indução que o resultado é válido para toda árvore com menos do que n vértices, e para n > 1. Então, T possui pelo menos uma aresta e = {v,w}. Se removermos a aresta e de T teremos duas componentes conexas T 1 e T 2, sendo ambas árvores e o grafo T com menos de n vértices. Seja V (t 1 ) = n 1 ; E(t 1 ) = m 1 ; V (t 2 ) = n 2 ; E(t 2 ) = m 2 Logo, a hipótese de indução vale para T 1 e para T 2, ou seja: m 1 = n 1 1 e m 2 = n 2 1. Mas, V (t) = n = ( V (t 1 ) = n 1 ) + ( V (t 2 ) = n 2 ) = n 1 + n 2 E(t) = m = E(t 1 ) + E(t 2 ) + 1 = n n = n 1 + n 2 1 = n 1. Então, o resultado vale para toda árvore com n elementos, n 1. Lema.1.. Seja T = (V,E) uma árvore. As afirmações seguintes são equivalentes: 1. T é uma árvore. 2. T é conexo e E é mínima. 3. T é acíclico e E = V T é conexo e E = V 1.. T é acíclico e para todo v, w V, a adição de uma aresta v,w produz um grafo contendo exatamente um ciclo. 6. T é conexo e para toda aresta e = {u,w} em E, o grafo G 1 = G {{u,w}} é desconexo. 7. Para quaisquer vértices u e w em V, o caminho de u a w é único. Prova: 1 = 2: Se T é árvore, T é conexo e acíclico, e o número mínimo de arestas é n 1, pois, caso contrário, T seria desconexo (um caminho é o grafo conexo com o menor número de arestas e, sendo o número de vértices igual a n, há n 1 arestas nesse caminho); 2 = 3: Como T é conexo e E é mínima, T é acíclico, pois a existência de qualquer ciclo implica que E não seja mínima. A retirada de uma aresta e = u,w de T implica que T 1 = T {{u,w}} é grafo desconexo com duas componentes conexas, pois, caso contrário, a inclusão da aresta em T formaria um ciclo. Procedendo à retirada das arestas de T, uma a uma, teríamos, ao final, a formação de n componentes conexas (o máximo possível) com a retirada de n 1 arestas. Assim: m = E = V 1; 3 = 4: Suponha que T é acíclico e m = E = n 1. Suponha, por absurdo, que T é desconexo. Logo, T no mínimo tem duas componentes conexas C 1 e C 2. Sejam os vértices u e w, respectivamente, de C 1 e C 2. A inclusão da aresta e = u,w à T não cria um ciclo e torna T conexo. Se T tem k componentes conexas, inclui-se k 1 arestas como visto antes, e, daí, T é conexo. Nesse caso, o total de arestas será m = n 1 + (k 1) o que é absurdo, pois por hipótese, m = n 1. Logo, T é conexo e m = n 1; 4 = :

12 12 PAULO JORGE M. TEXEIRA (a) Suponha que T é conexo e m = E = n 1. Suponha, por absurdo, que C 1 e C 2 são ciclos em T. Ao retirar duas arestas, uma de cada ciclo, T continuará conexo e m = n 1 2 n 1. Contradição, pois m é mínima. Logo, T é acíclico; (b) Seja e = u,w uma aresta a ser adicionada a T. Como T é conexo, havia um caminho entre os vértices u e w e a inclusão da aresta e = u,w cria um ciclo em T. Como T é acíclico (parte (a)), esse ciclo criado é único; = 6: (a) A primeira parte vem de 3 4. Logo, para todo apr de vértices u e w de V, há um único caminho entre u e w. A retirada de qualquer aresta {v, t} no caminho entre dois quaisquer vértices u e w, desconecta o grafo T, ou seja, T {{v,t}} é desconexo; 6 = 7: Suponha que dois quaisquer vértices u e w de T estejam unidos por mais de um caminho em T. Assim, a retirada de qualquer aresta de um dos caminhos entre u e w não torna o grafo desconexo, o que contraria a hipótese. Logo, o caminho entre dois vértices quaisquer em T é único; 7 = 1: Suponha que para todo par de vértices u e w em V, o caminho entre u e v é único. Logo, por definição, T é conexo. Como o caminho entre u e v é único, não há um ciclo contendo u e w em T. Logo, T é acíclico. Daí T é árvore, por definição. Teorema.1.6. (do aperto de mãos) Seja G = (V,E) grafo tal que V = n e E = m. Então d(v) = 2m. v V Prova: cada aresta (v,w) contribui com 2(duas) unidades para a soma dos graus dos vértices (uma unidade para d(v) e uma unidade para d(w)). Logo, a soma total é duas vezes o número de arestas. Observação: Esse teorema é também válido para multigrafos. Corolário.1.7. Em qualquer grafo G, a soma dos graus de seus vértices é par. Prova: É imediato, pois v V d(v) = 2m, e 2m é par. Corolário.1.8. Em qualquer grafo G = (V,E), o número de vértices de grau ímpar é par. Prova: Sejam V P = {v V/ d(v) é par} e V I = {v V/ d(v) é ímpar}. É claro que V = V P V I e V P V I = φ. Além disso: d(v) = d(v) = d(v) + d(v) = 2m Logo, o número de parcelas v V P V I v V v V p v V I de grau ímpar (ou o número de vértices de grau ímpar) é par. Lema.1.9. Em uma árvore T = (V,E), v V d(v) = 2m = 2n 1, onde n = V. Prova: Imediato, pois qualquer aresta u,w de um grafo tem o grau de seus vértices extremidades u e w contados duas vezes: uma com os vizinhos de u e outra com os vizinhos de w, e pelo Lema.1., m = n 1. Definição Seja T = (V,E) uma árvore. Um vértice v de T é dito uma folha se d(v) = 1.

13 CONTAGEM E CODIFICAÇÃO DE ÁRVORES 13 Teorema Toda árvore não trivial, ou seja, V (T) 2 tem pelo menos duas folhas. Prova: Todo grafo conexo com pelo menos dois vértices tem uma aresta. Considere um caminho maximal em uma árvore. Os vértices extremos desse caminho são necessariamente de grau 1 (pois se não fossem de grau 1, o caminho poderia ser prolongado e então não mais seria um caminho maximal). Logo, os vértices extremos desse caminho são duas folhas de T. Lema Seja T = (V,E) uma árvore com n vértices e v uma folha de T. Então, T v é uma árvore com exatamente n 1 vértices. Prova: Seja v uma folha de T e T 1 = T v. Sejam u e w V (T), u v, w v e P um caminho entre u e w. É claro que v não está em P. Logo, P é também um caminho em T 1. Logo T 1 é conexo. A remoção do vértice v não cria ciclos em T 1. Logo, T 1 é uma árvore com n 1 vértices. Definição O centro de uma árvore é definido como C(T) = {v V (T)/ e(v) é mínima}. Essa é uma particular definição do centro de um grafo, como anteriormente já visto. Teorema.1.14 (Jordan 1869). O centro de uma árvore T tem exatamente um vértice ou exatamente dois vértices adjacentes entre si. Prova: Vamos fazer a prova por indução no número de vértices de T. Se V (T) = 1, então C(T) = v e, assim: C(T) = 1. Se V (T) = 2, então V (T) = u,v e, assim: C(T) = 2. Logo, a proposição é verdadeira para n = 1 e para n = 2. Suponha, então, o resultado verdadeiro para toda árvore com menos do que n vértices, sendo n > 2. Seja T qualquer árvore com n vértices. Seja F = {vv (T)/d(v) = 1}, ou seja: F é o conjunto das folhas de T. Seja T 1 = T F. T 1 ). Pelo Lema.1.9, T 1 é uma árvore com menos do que n vértices (logo, a hipótese de indução se aplica a Observe que para todo vértice u V (T), o vértice que está a uma distância máxima de u é necessariamente uma folha, pois T é grafo conexo. Logo, os vértices de excentricidade máxima são as folhas e, então,c(t) F = φ. Como todas as folhas foram removidas de T e nenhum caminho entre dois vértices interiores de T passam por folhas, temos que et 1 (u) = et(u) 1. Ou seja, os vértices de excentricida de mínima em T 1 são iguais aos vértices de excentricidade mínima de T. Temos, então, que: C(T) = C(T 1 ) e, logo, vale o resultado para T, n 1. Definição.1.1. Dada uma árvore T = (V,E), uma raiz de T é qualquer vértice v de T escolhido e chamado, a partir da escolha, de raiz. A árvore T passa a ser dita, então, uma árvore enraizada. Definição Seja G = (V,E) um grafo. Uma aresta e E é dita uma ponte, ou uma aresta de corte, se ω(g e) > ω(g). Se G é conexo, dizemos apenas que e é uma aresta cuja remoção desconecta o grafo G.

14 14 PAULO JORGE M. TEXEIRA r Exemplo Figura 8 e u v removendo a aresta e G (G) = 2 (G - e) = 3 Figura 9 Teorema Uma aresta e é uma ponte de G se e somente se não existir ciclo contendo a aresta e. Prova: Seja e = {v,w} E(G) uma ponte de G. Logo, ω(g e) > ω(g) e, além disso, v e w, os vértices extremos da aresta e estão em componentes conexas distintos. Suponha, por contradição, que existe um ciclo ω contendo a aresta e. Logo, ω e é um caminho entre v e w em G e, contradizendo o fato de que estavam em componentes conexas distintas. v e w C - e Figura 10 Suponha, agora, que não existe um ciclo contendo a aresta e e que, por contradição, suponha que a aresta e não seja ponte de G. Então, ω(g e) = ω(g). Entre v e w em G existe a aresta e. Em G e deve existir um caminho P entre v e w. Ou seja, P + e é um ciclo em G. Isso é uma contradição!!! Portanto, e é uma ponte de G.

15 CONTAGEM E CODIFICAÇÃO DE ÁRVORES 1 v e w P Figura 11 Corolário Seja G = (V,E) um grafo conexo. T é uma árvore se e somente se cada aresta de T for uma ponte. Prova: Suponha que T é uma árvore. Logo, por definição, T é grafo conexo e acíclico e, portanto, pelo Teorema.1.17, toda aresta de T é uma ponte. Por outro lado, suponha que toda aresta de T é uma ponte. Daí, pelo mesmo Teorema, não existe ciclo em T que contenha qualquer aresta de T e então T é acíclico e conexo. Portanto,T é uma árvore..2. Segunda caracterização de árvores. Essa caracterização envolve a noção de folhas. Como visto anteriormente, uma folha de um grafo G é um vértice de grau 1. É claro que toda árvore com mais de um vértice tem pelo menos dois vértices folhas. Uma caracterização recursiva de árvores é: Um grafo G (tendo um vértice folha v), com tamanho n > 1, é uma árvore se e somente se removendo-se a folha v e a única aresta incidente na folha v, o grafo remanescente é uma árvore de tamanho n 1. Os vértices sem filhos de uma árvore T são chamados folhas de T. Todos os outros vértices (com filhos) são chamados vértices internos de T. Se cada vértice interno de uma árvore enraizada tem m filhos, a árvore T é chamada de árvore m-ária. Uma árvore enraizada é uma árvore com um vértice, a raiz, que será distinta dos outros vértices. Duas árvores enraizadas são consideradas isomorfas se e somente se existe uma bijeção entre elas que preserva adjacências correspondentes entre as arestas e, a raiz de uma é levada na raiz da outra. Existem exatamente n n 2 árvores rotuladas com n vértices. Esse resultado, devido à Cayley, é um dos mais célebres resultados em Teoria dos Grafos. Existem muitas provas para ele, uma delas devido à Prüfer, que usa um particular código para representar árvores rotuladas, conhecido como Código de Prüfer. Mais adiante veremos em detalhes como obter esse código e provar esse resultado. Usando a caracterização recursiva de árvores mencionada acima, é fácil mostrar que é possível determinar a árvore rotulada cujo código é a seqüência de rótulos fornecida..3. Terceira caracterização de árvores. Teorema Uma árvore com n vértices tem n-1 arestas. Prova: Considere que a árvore é enraizada (se ela é não direcionada, podemos torná-la enraizada como descrito anteriormente). Cada vértice, exceto a raiz está na ponta inferior de uma única aresta (a partir de seu pai). Há, então, n 1 vértices sem raiz e, portanto, n 1 arestas.

16 16 PAULO JORGE M. TEXEIRA Teorema.3.2. Uma árvore m-ária T com k vértices internos tem n = mk + 1 vértices no total. Prova: Cada vértice interno tem m filhos. Assim há mk filhos mais o vértice não-filho, a raiz. Logo, há mk + 1 vértices no total. Corolário.3.3. Seja T uma árvore m-ária. Então temos: (a) Se T tem k vértices internos, ela tem j = (m 1)k + 1 folhas. (b) Se T tem j folhas, ele tem k = j 1 m 1 (c) Se T tem n vértices no total, ela tem n 1 m Prova: mj 1 vértices internos e m 1 (m 1)n + 1 vértices internos e m vértices no total. folhas. (a) Sabemos que o total de vértices (n) é igual à soma dos vértices internos (k) com as folhas (j). Logo: j = n k. Mas n = mk + 1 do Teorema. Daí: j = n k = mk + 1 k = (m 1)k + 1. (b) De (a), tem-se: j = (m 1)k + 1. Logo, j 1 = (m 1)k. Daí: k = j 1 e como n = j + k, então m 1 n = j + j 1 m 1 = mj 1 m 1. (c) De n = j + k, vem: k = n j = n {(m 1)k + 1} = n (m 1)k 1. Logo: k + (m 1)k = n 1. Daí: k(1 + m 1) = n 1. Ou seja: k = n 1 m. 6. Problemas simples envolvendo o estudo das árvores 6.1. Introdução. Nesta seção utilizamos as fórmulas de contagem demonstradas na seção anterior e aplicamos essas fórmulas em alguns problemas de decomposição. A seguir, mostramos como as árvores podem ser usadas para decompor e sistematizar a análise de vários problemas de busca. Essas fórmulas de contagem serão bastante úteis nas seções seguintes, quando da discussão de particularidades sobre as árvores binárias Problemas simples O problema de uma cadeia de telefones. Suponha que uma cadeia de telefones seja instalada por uma empresa que tenha 100 funcionários. Ela é ativada por um líder que liga para um escolhido grupo de três pessoas. Cada uma dessas três pessoas liga para grupos escolhidos de três outras pessoas, e assim por diante. Quantas ligações serão feitas ao todo? Quantas pessoas não terão que fazer nenhuma ligação? Solução: Tal cadeia telefônica é uma árvore enraizada com 100 vértices. Uma aresta corresponde a uma ligação. Então, pelo Teorema.3.1, haverá = 99 ligações. Uma vez que a árvore é ternária (3-ária), do Corolário.3.3 parte (c), tem-se que há k = 67 folhas. Isto é, 67 pessoas não farão nenhuma ligação O problema do torneio de tênis. Se 6 pessoas se inscrevem para disputar um torneio de tênis, quantas partidas haverá? (3 1) =

17 CONTAGEM E CODIFICAÇÃO DE ÁRVORES 17 CAMPEÃO Figura 12. Árvore de um torneio de tênis. Solução: torneio se desenrola de um modo binário contrário (semelhante a uma árvore) mas a construção da árvore se faz no sentido contrário: das folhas para a raiz da árvore, como pode ser visto na Figura 7. Todos os participantes são folhas e as partidas são os vértices internos. Pelo Corolário parte (b), se há j = 6 folhas e a árvore é binária, então há k = 6 1 = partidas a serem disputadas. 2 1 Como visto anteriormente, a altura de uma árvore enraizada é o comprimento do caminho mais longo, ou, equivalentemente, o maior número de nível indicado para qualquer vértice. Uma árvore enraizada de altura h é chamada equilibrada se todas as folhas estão nos níveis h e h 1. Árvores equilibradas são boas árvores. A árvore da cadeia de telefones do problema deveria ser equilibrada de modo a fazer chegar a mensagem a todos os funcionários o mais rápido possível. Uma árvore de torneio de tênis, como do problema 6.2.2, deveria ser equilibrada para ser justa; de outra forma, alguns jogadores poderiam chegar às finais jogando menos partidas que outros jogadores. Na prática, em Torneios do Grand Slam, os melhores jogadores, segundo um ranking anual, só começam a jogar a partir da segunda rodada, ou seja, são vértices internos sem terem sido folhas. Tornando-se uma árvore m-ária equilibrada, minimiza-se sua altura, como veremos a seguir. Teorema Considere T uma árvore m-ária de altura h. Então: (a) T tem no máximo m h folhas; (b) se T tem j folhas, então tem altura h > [log j m ]; (c) se T é uma árvore equilibrada, então h = [log j m ]. Prova: É claro que uma árvore m-ária de altura igual a l tem m folhas (os filhos da raiz). Agora vamos usar indução para mostrar que uma árvore m-ária de altura h, tem no máximo, m h folhas. As folhas de uma árvore m-ária de altura h são apenas as folhas das sub-árvores de m enraizadas nos m filhos

18 18 PAULO JORGE M. TEXEIRA da raiz. Estas m sub-árvores têm altura de no máximo h 1. Por indução, elas têm no máximo m h 1 folhas cada uma ou no máximo m.m h 1 = m h folhas no total. A segunda parte do Teorema, agora segue imediatamente (basta lembrar que h = [log j m ] implica em que m h 1 < j m h ). Exercício Mostre que a soma dos números de nível de todas as j-folhas, numa árvore binária, é pelo menos j(log 2 j) e, portanto, o nível médio de folhas é pelo menos log 2 j. Um dos usos mais comuns da aplicação de árvores é em procedimentos de testagens seqüenciais. Os dois procedimentos de testagem seqüenciais mostrados a seguir (um deles um problema básico de ciência da computação e o outro um quebra-cabeça de lógica), ilustram a variedade de tais aplicações de árvores O problema da busca de dicionário Examinemos o problema do compilador busca no dicionário. Queremos identificar uma palavra desconhecida (número) X testando-a em um ramo de 3 caminhos indicados por: menor que, igual a e maior que, contra palavras num conjunto (dicionário) ao qual X pertence. O procedimento de teste pode ser representado por uma árvore binária, ou quase binária. Por exemplo, se X fosse uma das 14 primeiras letras do alfabeto, então a Figura 8 seria a tal árvore binária de busca. Cada vértice é rotulado com a letra testada naquele estágio do procedimento. O procedimento começa por testar X contra H. A aresta à esquerda de um vértice é colocada quando X é menor que a letra e a aresta da direita quando X é maior. Tal árvore pode ter um vértice interno com apenas um filho se o número de vértices for par. Para minimizar o número de testes necessários de modo a reconhecer qualquer X, ou seja, minimizar a altura da árvore de busca, devemos tornar a árvore equilibrada. Suponha que X pertence a um conjunto de n palavras. Qual o número máximo de testes que seriam necessários para reconhecer X? H D L B F J N A C E G L K M Figura 13. Árvore de teste da busca do dicionário. Solução:

19 CONTAGEM E CODIFICAÇÃO DE ÁRVORES 19 (2 1)n + 1 Pelo Corolário.3.3, uma árvore binária de busca com n vértices tem = 2 n + 1 folhas. 2 2 Então, o número máximo de testes necessários para reconhecer X é a altura de uma árvore de busca equilibrada de n + 1 n + 1 folhas, ou seja: h = log 2 2 = log 2 2 [(n + 1)] O Problema do quebra-cabeça Um quebra-cabeça de lógica, muito conhecido, tem n moedas, sendo uma delas falsa (muito leve ou muito pesada em relação às outras n 1 moedas) e uma balança para comparar o peso de quaisquer dois conjuntos de moedas (a balança pode inclinar-se para a direita, para a esquerda ou ficar equilibrada). O problema a ser resolvido é: para um dado valor de n, determinar um procedimento para encontrar a moeda falsa realizando-se um número mínimo de pesagens. Em algumas variações deste problema, o enunciado informa que a moeda falsa é muito pesada ou leve demais. Se, a priori, sabemos que a moeda falsa é muito leve, quantas pesagens serão necessárias, no mínimo, para um conjunto com n moedas? Solução: Nosso procedimento para testagem vai formar uma árvore na qual o primeiro teste é a raiz da árvore. Os demais outros testes são os outros vértices internos, e as soluções, isto é, qual moeda é falsa, são as folhas. Consideremos para a ilustração que será feita (veja a Figura 9), a testagem para oito moedas (numeradas de 1 a 8), onde a formação da árvore obedecerá: 1 seguir pela aresta da esquerda quando o conjunto de moedas da esquerda, numa testagem, é mais leve; 2. seguir a aresta do meio quando os dois conjuntos de moedas têm o mesmo peso; 3. seguir pela aresta da direita quando o conjunto de moedas da direita é mais leve Figura 14. Árvore de teste com 8 moedas. Repare que, por exemplo, quando pesamos as moedas 4 e (e já sabemos que dentre as moedas 1,2,3,6,7,8 não está a moeda leve), a balança não pode ficar equilibrada. A árvore de teste é ternária, e com n moedas

20 20 PAULO JORGE M. TEXEIRA haverá n folhas, isto é, n diferentes possibilidades de qual moeda é a falsa. O Teorema garante que a árvore de teste deve ter altura maior do log 2 n que para conter n folhas. Não é automático que exista um procedimento de teste que possa alcançar o limite de altura. Para o problema da moeda falsa sendo mais pesada ou mais leve, este limite pode ser alcançado dividindo-se sucessivamente o subconjunto corrente, onde se sabe estar a moeda falsa, em três pilhas quase iguais e comparando-se duas das pilhas de mesmo tamanho. Se a moeda falsa não pode ser identificada, a priori, como mais leve ou mais pesada, então o problema seria muito mais difícil. Uma determinada moeda irá, geralmente (mas não sempre), aparecer em duas folhas da árvore de teste: uma vez quando a moeda for mais leve e outra vez quando for mais pesada. A Figura 9 ilustra o problema comentado O Problema do compilador Esse problema é um exemplo de construção de árvore de baixo para cima, começando por um conjunto de folhas. Ao construir uma tabela de símbolos, um compilador inicialmente lista um grande número de diferentes nomes de variáveis usados pelo programa (e outros nomes extras gerados pelo compilador). Mais tarde, o compilador combina repetidamente dois nomes ou dois subconjuntos de nomes que deverão ser atribuídos a um mesmo lugar na memória (em várias sub-seções do programa, nomes diferentes são usados para a mesma variável). Considerando que um certo nome de variável possa ser submetido em diversas rodadas, sendo renomeado e combinado com outros nomes, não é eficaz mudar um nome a cada vez que ele é combinado. Ao invés disso, pode-se construir árvores como é mostrado nas Figuras 10. Se os nomes A e B são equivalentes e ambos deveriam ser uma variável chamada A, combinamos as folhas A e B em uma árvore, como mostrado na Figura 10, tomando A como raiz. Se A e B são combinados com o novo nome A e depois A é combinado com C, e agora tanto A quanto C são equivalentes e agora chamados C, construímos a árvore mostrada na Figura 10. Seguindo para cima até o topo da árvore, pode-se determinar o nome atual de qualquer nome original. Seja COMB(W;X;Y ) a operação de combinar os conjuntos de variáveis atualmente chamadas X e Y em uma variável chamada W. Suponha que iniciamos com nomes de variáveis A,B,C,D,E,F,G e sucessivamente serão feitas as seguintes operações: COMB(E;E,G), COMB(B ;B,C), COMB(D ;D,F), COMB(B ;B,E), COMB(A ;A,B ). Então teríamos a família de árvores mostrada na Figura 10. Por exemplo, a variável originalmente chamada G é agora chamada A (como são A,B,C, e E). 7. Resultados teóricos envolvendo o estudo sobre Árvores 7.1. Árvores Geradoras. Definição Uma árvore geradora de um grafo G conexo é um subgrafo gerador de G que é uma árvore. De modo análogo, podemos definir uma floresta geradora. Assim, uma árvore geradora é o subgrafo

21 CONTAGEM E CODIFICAÇÃO DE ÁRVORES 21 A B A (a) B C A B C A C A A B A B B (b) A A B A B C E A A G ( c ) Figura 1. Procedimentos de um compilador gerador minimal conexo de um grafo G conexo onde qualquer aresta que seja recolocada na árvore, forma um ciclo em G. G T Figura 16 Corolário Todo grafo conexo G possui uma árvore geradora. Prova: Seja T um subgrafo gerador minimal conexo de G em relação à propriedade de ser conexo e em relação à quantidade de arestas. Assim, T é conexo por construção. Vamos mostrar que T é acíclico. Suponha que T não seja acíclico e seja Ĉ um ciclo de T, e seja e uma aresta de Ĉ. Logo, pelo Teorema.1.14, a aresta e não é uma ponte de T. Logo ω(t e) = ω(t). Então, T e é um subgrafo gerador conexo de G e possui menos arestas do que o subgrafo T, contradizendo o fato de que T era minimal. Logo, T é acíclico e conexo, ou seja, T é uma árvore

22 22 PAULO JORGE M. TEXEIRA Corolário Se G é grafo conexo então m n 1, onde E(G) = m e V (G) = n. Prova: Seja G um grafo conexo. Então, pelo Corolário 7.1.2, G tem uma árvore geradora T e, portanto, tem-se que: m = E(G) E(T) = V (T) 1 = n 1. Daí m n 1. A igualdade vem da Definição Teorema Seja T uma árvore geradora de G e uma aresta c E(G) E(T). Então, T + e contém exatamente um ciclo. Prova: Seja T uma árvore geradora de G.Sabemos que é um subgrafo gerador minimal conexo de G e, portanto, a inclusão de uma aresta c E(G) E(T) gera um ciclo em T e esse ciclo, necessariamente, contém a aresta e. v e w C - e Figura 17 Seja Ĉ um ciclo de T + e contendo a aresta e. Temos que Ĉ e é um caminho em T entre os extremos da aresta e. Logo, esse caminho é único. Portanto, o ciclo que contém a aresta e, é único, ou seja, T + e contém exatamente um ciclo. Definição Se T é uma árvore geradora de G então T(G) = (V,E(G) E(T)) é chamado de co-árvore de G. Exemplo G T (G) é co-árvore de G T Figura 18 Teorema Seja G um grafo conexo, T uma árvore geradora de G e uma aresta e de G. Então: (i) T(G) não contém cortes de arestas de G; (ii) T(G) + e contém um único corte de arestas minimal de G, dito um cociclo de G.

23 Prova: CONTAGEM E CODIFICAÇÃO DE ÁRVORES 23 (i) Uma co-árvore T(G) não pode conter um corte de arestas de G, porque mesmo retirando todas as arestas de, o grafo G permanece conexo, pois restarão as arestas de T, que é uma árvore geradora de G. (ii) Seja e uma aresta de T tal que T e é desconexo. Logo, a aresta e é ponte de T. Sejam S e S os conjuntos de vértices dos componentes conexos de T e respectivamente. Assim, como [S, S] é um corte de arestas de G, por definição, e é minimal. De fato: [S,S] e não é um corte por (i). Ou seja, B = [S,S] e T(G) + e. Tome qualquer aresta e B. T e + e é ainda uma árvore geradora mínima de G, Logo, todo corte minimal de G contido em T(G) + e deve incluir essa aresta e. Logo, B é o único corte minimal de G. S S e e e e G T T-e (G)+ e (G)- e Figura 19 [S,S] = T(G) + e. Observação Observe que existe uma analogia entre ciclos x árvores e corte minimais x co-árvores, a saber: ciclos x árvores cortes minimais x co-árvores T não contém ciclos. T(G) não contém cortes minimais T + e contém um único ciclo. T(G) + e contém um único corte minimal de G. Teorema Em uma árvore T, não trivial, um vértice v V (T) é articulação se e somente se v não é uma folha de T. Prova: Seja T uma árvore não trivial. Seja v V (T) uma articulação. Então existem dois vértices u e w de T, tal que todo caminho entre os vértices u e w contém o vértice v. Logo, d(v) > 1. Então, v não é uma folha de T. Por outro lado, seja v V (T) tal que v não é folha de T. Então, d(v) > 1. Logo, existem pelo menos dois vértices u e w adjacentes ao vértice v e o caminho P: u,v,w em T. Como T é uma árvore, esse caminho P entre u e w é único. Logo, a retirada do vértice v desconecta a árvore T, ou seja, v é articulação da árvore T. T T

24 24 PAULO JORGE M. TEXEIRA Corolário Todo grafo conexo G, não trivial, possui pelo menos dois vértices que não são articulações. Prova: Seja G um grafo conexo. Pelo Corolário 7.1.2, G possui uma árvore geradora T. E sabemos que T tem pelo menos duas folhas. Sejam v 1 e v 2 essas folhas. Pelo Teorema 7.1.8, v 1 não é uma articulação. Logo, ω(t v 1 ) = ω(t) = 1. Mas T v 1 é uma árvore geradora de G v 1 e ω(g v 1 ) ω(t v 1 ) = 1. Logo, ω(g v 1 ) = ω(g) = 1, ou seja, v1 não é articulação de G. De maneira análoga, v 2 não é articulação de G. Logo, vale o Corolário. 8. Codificação e Decodificação de Árvores 8.1. Introdução. Neste parágrafo apresentamos conceitos teóricos sobre codificação e decodificação de árvores. Apresentamos o Código de Prüffer e mostramos sua utilização na codificação e decodificação em árvores, as formas de armazenamento de árvores na memória do computador e a seguir mostramos como as árvores podem ser usadas para decompor e sistematizar a análise de vários problemas de busca Os problemas de Geração e Contagem de Grafos. Como dissemos no Parágrafo 2, o estudo de propriedades dos grafos de forma segmentada por diferentes famílias ganha importância na Teoria dos Grafos e têm proporcionado avanços significativos na solução de diferentes problemas reais que tomam elementos particulares dessas famílias como modelos de estudo. Diferentes problemas de natureza combinatória são levantados sobre uma particular família de grafos. Dentre esses, aqueles que tratam: I) da contagem do número de elementos da família, ou seja: o de determinar qual o número total de grafos distintos de uma família claramente definida que podem ser construídos com um número finito n de vértices. De grande importância também para estudos de caráter combinatório é o de verificar dentre todos os grafos contados numa família com número finito de elementos quantos são e quantos não são isomorfos entre si, procurando subdividi-los em subclasses não isomorfas. É claro que, também para famílias de quantidades infinitas de grafos, essa subdivisão em subclasses respeitando-se o isomorfismo é de grande importância para caracterizar propriedades. II) o problema de criar condições que permitam (conhecido o número finito de vértices), a geração de grafos de uma dada família atendendo às seguintes situações: a) a geração aleatória uniforme de qualquer grafo da família com a propriedade de que qualquer grafo da família possui igual probabilidade de ser gerado. Desse modo, a geração dos grafos cria uma distribuição uniforme de elementos; b) a geração de todos os grafos da família, um a seguir do outro, de modo único e de forma sistemática através de uma lei de formação que pode ser única ou não, para todos os elementos, ou seja, enumerando seus elementos. Por exemplo, no caso de verificar se duas árvores são ou não isomorfas, o algoritmo que faz tal verificação tem complexidade O(n) no número n de vértices de cada árvore. De modo similar, a enumeração de árvores

Parte B Teoria dos Grafos

Parte B Teoria dos Grafos 45 Parte B Teoria dos Grafos B. Grafos e Subgrafos Um grafo G é uma tripla ordenada (V(G), E(G), ), constituindo de um conjunto não vazio V(G) de vértices, um conjunto disjunto E(G) das arestas e uma função

Leia mais

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral

Árvores. SCC-214 Projeto de Algoritmos. Thiago A. S. Pardo. Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral SCC-214 Projeto de Algoritmos Thiago A. S. Pardo Listas e árvores Listas lineares Um nó após o outro, adjacentes Sem relações hierárquicas entre os nós, em geral Diversas aplicações necessitam de estruturas

Leia mais

Capítulo 1 Conceitos e Resultados Básicos

Capítulo 1 Conceitos e Resultados Básicos Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko Capítulo 1 Conceitos e Resultados Básicos Um grafo é um par ordenado (V, A), onde V e A são conjuntos disjuntos, e cada elemento

Leia mais

GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira

GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira Ciência da Computação GRAFOS Aula 04 Caminhos, Conexidade e Distância Max Pereira Um grafo é dito conexo se for possível visitar qualquer vértice, partindo de um outro qualquer, passando pelas suas arestas.

Leia mais

Árvores: Conceitos Básicos e Árvore Geradora

Árvores: Conceitos Básicos e Árvore Geradora Árvores: Conceitos Básicos e Árvore Geradora Grafos e Algoritmos Computacionais Prof. Flávio Humberto Cabral Nunes fhcnunes@yahoo.com.br 1 Introdução No dia a dia aparecem muitos problemas envolvendo árvores:

Leia mais

CONCEITOS BÁSICOS EM GRAFOS

CONCEITOS BÁSICOS EM GRAFOS Um grafo (simples) G é formado por um conjunto de vértices, denotado por V(G), e um conjunto de arestas, denotado por E(G). Cada aresta é um par (não ordenado) de vértices distintos. Se xy é uma aresta,

Leia mais

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47

MATEMÁTICA DISCRETA. Patrícia Ribeiro 2018/2019. Departamento de Matemática, ESTSetúbal 1 / 47 1 / 47 MATEMÁTICA DISCRETA Patrícia Ribeiro Departamento de Matemática, ESTSetúbal 2018/2019 2 / 47 1 Combinatória 2 Aritmética Racional 3 3 / 47 Capítulo 3 4 / 47 não orientados Um grafo não orientado

Leia mais

Matemática Discreta 10

Matemática Discreta 10 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Matemática Discreta 10 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br - www.univasf.edu.br/~jorge.cavalcanti 1 Muitas

Leia mais

Instituto de Computação Universidade Federal Fluminense. Notas de Aula de Teoria dos Grafos. Prof. Fábio Protti Niterói, agosto de 2015.

Instituto de Computação Universidade Federal Fluminense. Notas de Aula de Teoria dos Grafos. Prof. Fábio Protti Niterói, agosto de 2015. Instituto de Computação Universidade Federal Fluminense Notas de Aula de Teoria dos Grafos Niterói, agosto de 2015. Conteúdo 1 Conceitos Básicos 5 1.1 Grafos, vértices, arestas..................... 5 1.2

Leia mais

Raiz, filho, pai, irmão, ancestral, descendente, folha.

Raiz, filho, pai, irmão, ancestral, descendente, folha. 17.1 Aula 17: Conceitos de Árvores e Árvores Binárias Raiz, ilho, pai, irmão, ancestral, descendente, olha. Nível, altura, subárvore, subárvore parcial. Árvores binárias completas, binárias cheias, estritamente

Leia mais

Teoria dos Grafos. Árvores

Teoria dos Grafos.  Árvores Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Preparado a partir

Leia mais

Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade

Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade Conteúdo 1 Teoria de Grafos Conceitos Básicos Isomorfismo de Grafos Subgrafos Passeios em Grafos Conexidade > Teoria de Grafos 0/22 Conceitos Básicos Inicialmente, estudaremos os grafos não direcionados.

Leia mais

GRAFOS Aula 02 Formalização: definições Max Pereira

GRAFOS Aula 02 Formalização: definições Max Pereira Ciência da Computação GRAFOS Aula 02 : definições Max Pereira Um grafo G é um par ordenado G = (V, E) onde V é um conjunto finito e não vazio de elementos e E é um conjunto de subconjuntos de dois elementos

Leia mais

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos.

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. 1 Árvores Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. Um grafo simples sem ciclos mas não conexo (em que cada componente conexa é portanto uma árvore) chama-se uma floresta. Numa

Leia mais

x y Grafo Euleriano Figura 1

x y Grafo Euleriano Figura 1 Grafo Euleriano Um caminho simples ou um circuito simples é dito euleriano se ele contém todas as arestas de um grafo. Um grafo que contém um circuito euleriano é um grafo euleriano. Um grafo que não contém

Leia mais

GRAFOS: UMA INTRODUÇÃO

GRAFOS: UMA INTRODUÇÃO GRAFOS: UMA INTRODUÇÃO Vilmar Trevisan -Instituto de Matemática - UFRGS Junho de 2006 Grafos: uma introdução Informalmente, um grafo é um conjunto de pontos no plano ligados entre por flechas ou por segmentos

Leia mais

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 5 a Lista de Exercícios

UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO. 5 a Lista de Exercícios UNIVERSIDADE FEDERAL DO RIO DE JANEIRO DEPARTAMENTO DE CIÊNCIAS DA COMPUTAÇÃO MATEMÁTICA COMBINATÓRIA 5 a Lista de Exercícios 1. O grafo de intersecção de uma coleção de conjuntos A 1,..., A n é o grafo

Leia mais

2 Relação entre soma dos graus e número de arestas

2 Relação entre soma dos graus e número de arestas Rio de Janeiro, 24 de Outubro de 2011. LISTA DE ESTRUTURAS DISCRETAS PROFESSOR: EDUARDO LABER OBSERVAÇÕES: Exercícios marcados com são mais complicados. 1 Isomorfismo 1. Seja G =(V,E) um grafo simples.

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br Grafos Eulerianos Preparado a partir do texto: Rangel, Socorro.

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Grafos Enumeração de Passeios/Caminhos O processo associado à enumeração de caminhos de um grafo/dígrafo é semelhante ao processo de contagem com a diferença de que usaremos uma matriz de

Leia mais

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira

Árvores. SCC-202 Algoritmos e Estruturas de Dados I. Lucas Antiqueira Árvores SCC-202 Algoritmos e Estruturas de Dados I Lucas Antiqueira Listas e árvores Listas lineares Um nó após o outro, adjacentes Nó sucessor e antecessor Diversas aplicações necessitam de estruturas

Leia mais

Circuitos Hamiltorianos

Circuitos Hamiltorianos Circuitos Hamiltorianos Vimos que o teorema de euler resolve o problema de caracterizar grafos que tenham um circuito em que cada aresta apareça exatamente uma vez. Vamos estudar aqui uma questão relacionada.

Leia mais

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8.

ESTRUTURAS DE DADOS. prof. Alexandre César Muniz de Oliveira. 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. ESTRUTURAS DE DADOS prof. Alexandre César Muniz de Oliveira 1. Introdução 2. Pilhas 3. Filas 4. Listas 5. Árvores 6. Ordenação 7. Busca 8. Grafos Sugestão bibliográfica: ESTRUTURAS DE DADOS USANDO C Aaron

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 16: Grafos Planares. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 16: Grafos Planares. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 16: Grafos Planares Preparado a partir do texto: Rangel, Socorro. Teoria do

Leia mais

Noções da Teoria dos Grafos

Noções da Teoria dos Grafos Noções da Teoria dos Grafos André Arbex Hallack Índice 1 Introdução e definições básicas. Passeios eulerianos 1 2 Ciclos hamiltonianos 7 3 Árvores 11 4 Emparelhamento em grafos 15 5 Grafos planares: Colorindo

Leia mais

Introdução à Teoria dos Grafos. Isomorfismo

Introdução à Teoria dos Grafos. Isomorfismo Isomorfismo Um isomorfismo entre dois grafos G e H é uma bijeção f : V (G) V (H) tal que dois vértices v e w são adjacentes em G, se e somente se, f (v) e f (w) são adjacentes em H. Os grafos G e H são

Leia mais

Cap. 2 Conceitos Básicos em Teoria dos Grafos

Cap. 2 Conceitos Básicos em Teoria dos Grafos Teoria dos Grafos e Aplicações 8 Cap. 2 Conceitos Básicos em Teoria dos Grafos 2.1 Grafo É uma noção simples, abstrata e intuitiva, usada para representar a idéia de alguma espécie de relação entre os

Leia mais

Percursos em um grafo

Percursos em um grafo Percursos em um grafo Definição Um percurso ou cadeia é uma seqüência de arestas sucessivamente adjacentes, cada uma tendo uma extremidade adjacente à anterior e a outra a subsequente (à exceção da primeira

Leia mais

Aula 2 Definições, Conceitos Básicos e Representação Interna de Grafos. Teoria dos Grafos Prof.

Aula 2 Definições, Conceitos Básicos e Representação Interna de Grafos. Teoria dos Grafos Prof. Teoria dos Grafos Aula 2 Definições, Conceitos Básicos e Representação Interna de Grafos Jorge Figueiredo Aula 2-1 Definições Dois tipos de elementos: Vértices ou nós. Arestas. v3 v1 v2 v4 v5 v6 Jorge

Leia mais

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios 1 Conceitos 1. Prove o Teorema da Amizade: em qualquer festa com pelo menos seis pessoas, ou três se conhecem

Leia mais

Noções da Teoria dos Grafos. André Arbex Hallack

Noções da Teoria dos Grafos. André Arbex Hallack Noções da Teoria dos Grafos André Arbex Hallack Junho/2015 Índice 1 Introdução e definições básicas. Passeios eulerianos 1 2 Ciclos hamiltonianos 5 3 Árvores 7 4 Emparelhamento em grafos 11 5 Grafos planares:

Leia mais

Capítulo 1. Aula Conectividade Caminhos

Capítulo 1. Aula Conectividade Caminhos Capítulo 1 Aula 7 1.1 Conectividade Muitos problemas podem ser modelados com caminhos formados ao percorrer as arestas dos grafos. Por exemplo, o problema de determinar se uma mensagem pode ser enviada

Leia mais

ESTRUTURA DE DADOS. Arvore Binária Jose. Arvore Ternaria Direção

ESTRUTURA DE DADOS. Arvore Binária Jose. Arvore Ternaria Direção ESTRUTURA DE DADOS 1. Árvores: Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas usando-se

Leia mais

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos

Grafos - Motivação. Grafos - Motivação. Algoritmos e Estruturas de Dados II Introdução a Grafos Algoritmos e Estruturas de Dados II Introdução a Profa. M. Cristina/ Profa. Rosane (2010) Material de aula original: Profa. Josiane M. Bueno - Motivação : conceito introduzido por Euler, em 1736 Problema

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada.

Teoria dos Grafos. Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada. Teoria dos Grafos Valeriano A de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilceunespbr, socorro@ibilceunespbr Grafos Hamiltonianos Preparado a partir do texto: Rangel, Socorro

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A de Oliveira, Socorro Rangel, Silvio A de Araujo Departamento de Matemática Aplicada Capítulo 12: Grafos Hamiltonianos Preparado a partir do texto: Rangel, Socorro Teoria do

Leia mais

Percursos em um grafo

Percursos em um grafo Percursos em um grafo Definição Um percurso ou cadeia é uma seqüência de arestas sucessivamente adjacentes, cada uma tendo uma extremidade adjacente à anterior e a outra a subsequente (à exceção da primeira

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Árvores Algoritmo de Kruskal O algoritmo de Kruskal permite determinar a spanning tree de custo mínimo. Este custo corresponde à soma dos pesos (distância, tempo, qualidade,...) associados

Leia mais

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa

Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Aula -Grafos Uma figura vale por mil palavras A representação de dados e ou informações utilizando de recursos visuais é, em muitos casos,

Leia mais

Circuitos Eulerianos Ciclos Hamiltonianos O Problema do Caixeiro Viajante CAMINHAMENTOS BASEADO EM TOWNSEND (1987), CAP. 7.

Circuitos Eulerianos Ciclos Hamiltonianos O Problema do Caixeiro Viajante CAMINHAMENTOS BASEADO EM TOWNSEND (1987), CAP. 7. Matemática Discreta Capítulo 7 SUMÁRIO CAMINHAMENTOS BASEADO EM TOWNSEND (1987), CAP. 7 Circuitos Eulerianos Ciclos Hamiltonianos O Problema do Caixeiro Viajante Newton José Vieira 30 de julho de 2007

Leia mais

Matemática Discreta. Aula 06: Teoria dos Grafos. Tópico 01: Grafos e suas Representações. Observação

Matemática Discreta. Aula 06: Teoria dos Grafos. Tópico 01: Grafos e suas Representações. Observação Aula 06: Teoria dos Grafos Tópico 01: Grafos e suas Representações Nesta aula nós passamos a estudar um outro assunto, mas que também tem muita aplicação na vida prática, a Teoria dos Grafos. Para esta

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 14: Conjuntos de Corte e Conectividade Preparado a partir do texto: Rangel,

Leia mais

CI065 CI755 Algoritmos e Teoria dos Grafos

CI065 CI755 Algoritmos e Teoria dos Grafos CI065 CI755 Algoritmos e Teoria dos Grafos Exercícios 11 de outubro de 2017 1 Fundamentos 1. Seja S = {S 1,..., S n } uma família de conjuntos. O grafo intercessão de S é o grafo G S cujo conjunto de vértices

Leia mais

As Pontes de Königsberg

As Pontes de Königsberg As Pontes de Königsberg Anderson Freitas Ferreira e Lívia Minami Borges 13 de junho de 2015 Resumo A teoria de grafos teve seu início em 1736, quando Euler utilizou uma estrutura para resolver o Problema

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Existem três companhias que devem abastecer com gás, eletricidade e água três prédios diferentes através de tubulações subterrâneas. Estas tubulações podem estar à mesma profundidade? Isto

Leia mais

Planaridade AULA. ... META Introduzir o problema da planaridade de grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de:

Planaridade AULA. ... META Introduzir o problema da planaridade de grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Planaridade AULA META Introduzir o problema da planaridade de grafos. OBJETIVOS Ao final da aula o aluno deverá ser capaz de: Distinguir grafo planar e plano; Determinar o dual de um grafo; Caracterizar

Leia mais

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO

TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO TEORIA DOS GRAFOS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS MATEMÁTICA DISCRETA II PROFº MARCOS NASCIMENTO Por que estudar grafos? Importante ferramenta matemática com aplicação em diversas áreas

Leia mais

SCC Modelagem Computacional em Grafos Introdução a Grafos

SCC Modelagem Computacional em Grafos Introdução a Grafos SCC0216 - Modelagem Computacional em Grafos Introdução a Grafos Prof. Alneu (alneu@icmc.usp.br ) / Profa. Rosane (rminghim@icmc.usp.br) PAE: Alan (alan@icmc.usp.br) / Henry (henry@icmc.usp.br) Baseado

Leia mais

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios

Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios Instituto de Computação - Universidade Federal Fluminense Teoria dos Grafos - Lista de exercícios 1 Conceitos 1. Prove o Teorema da Amizade: em qualquer festa com pelo menos seis pessoas, ou três se conhecem

Leia mais

Noções da Teoria dos Grafos. André Arbex Hallack

Noções da Teoria dos Grafos. André Arbex Hallack Noções da Teoria dos Grafos André Arbex Hallack Junho/2015 Índice 1 Introdução e definições básicas. Passeios eulerianos 1 1.1 Introdução histórica..................................... 1 1.2 Passeios

Leia mais

Teoria dos Grafos. Edson Prestes

Teoria dos Grafos. Edson Prestes Edson Prestes Árvores Sabemos que com um ou dois vértices apenas uma árvore pode ser formada. Entretanto com três vértices podemos formar três árvores. Com quatro vértices temos quatro estrelas e doze

Leia mais

Alg l ori r t i m t os e E str t u r tu t ra r s d e D ados I I Intr t o r duçã ç o ã a a Gr G a r f a o f s P of o a. M. C r C ist s ina n a /

Alg l ori r t i m t os e E str t u r tu t ra r s d e D ados I I Intr t o r duçã ç o ã a a Gr G a r f a o f s P of o a. M. C r C ist s ina n a / Algoritmos e Estruturas de Dados II Introdução a Grafos Profa. M. Cristina / Profa. Rosane (2012) Baseado no material de aula original: Profª. Josiane M. Bueno Divisão do arquivo 1ª parte: Motivação Definição:

Leia mais

Planaridade UFES. Teoria dos Grafos (INF 5037)

Planaridade UFES. Teoria dos Grafos (INF 5037) Planaridade Planaridade Ideia intimamente ligada à noção de mapa, ou seja, uma representação de um conjunto de elementos (usualmente geográficos) dispostos sobre o plano A planaridade é um conceito associado

Leia mais

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações?

GRAFOS. Prof. André Backes. Como representar um conjunto de objetos e as suas relações? 8/0/06 GRAFOS Prof. André Backes Definição Como representar um conjunto de objetos e as suas relações? Diversos tipos de aplicações necessitam disso Um grafo é um modelo matemático que representa as relações

Leia mais

Algoritmos e Estruturas de Dados II Introdução a Grafos. Divisão do arquivo

Algoritmos e Estruturas de Dados II Introdução a Grafos. Divisão do arquivo Algoritmos e Estruturas de Dados II Introdução a Profa. M. Cristina / Profa. Rosane (2010/11) Baseado no material de aula original: Profª. Josiane M. Bueno Divisão do arquivo 1ª parte: Motivação Definição:

Leia mais

PERCURSOS. André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré

PERCURSOS. André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré PERCURSOS André Falcão, Carlos Augusto, Rafael Broédel e Lucas Dipré Serra 2011 Índice 1...O que é caminho e circuito 1.1...Caminho 1.2...Circuito 1.3...Classificação 2...Caminhos Eulerianos 2.1...Definição

Leia mais

Teoria dos Grafos. Grafos Planares

Teoria dos Grafos. Grafos Planares Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br Grafos Planares

Leia mais

Grafos: árvores geradoras mínimas. Graça Nunes

Grafos: árvores geradoras mínimas. Graça Nunes Grafos: árvores geradoras mínimas Graça Nunes 1 Motivação Suponha que queremos construir estradas para interligar n cidades Cada estrada direta entre as cidades i e j tem um custo associado Nem todas as

Leia mais

Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko. Capítulo 3

Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko. Capítulo 3 Introdução à Teoria dos Grafos (MAC-5770) IME-USP Depto CC Profa. Yoshiko Capítulo 3 Árvores Problema: Suponha que numa cidade haja n postos telefônicos. Para que seja sempre possível haver comunicação

Leia mais

Prof. Marco Antonio M. Carvalho

Prof. Marco Antonio M. Carvalho Prof. Marco Antonio M. Carvalho Lembretes! Lista de discussão! Endereço:! programaacao@googlegroups.com! Solicitem acesso:! http://groups.google.com/group/programaacao! Página com material dos treinamentos!

Leia mais

Estruturas de Dados Grafos

Estruturas de Dados Grafos Estruturas de Dados Grafos Prof. Eduardo Alchieri (introdução) Grafo é um conjunto de pontos e linhas que conectam vários pontos Formalmente, um grafo G(V,A) é definido pelo par de conjuntos V e A, onde:

Leia mais

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos.

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. 1 Árvores Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. Um grafo simples sem ciclos mas não conexo (em que cada componente conexa é portanto uma árvore) chama-se uma floresta. Numa

Leia mais

Árvores Conceitos gerais

Árvores Conceitos gerais http://www.mysticfractal.com/ FractalImaginator.html Árvores Conceitos gerais 9/11 Nesta aula veremos conceitos e definições sobre árvores Diferentemente das estruturas de pilhas, filas e listas que são

Leia mais

CAMINHOS, CIRCUITOS, CAMINHOS MÍNIMOS E CONEXIDADE

CAMINHOS, CIRCUITOS, CAMINHOS MÍNIMOS E CONEXIDADE CAPíTULO 2 CAMINHOS, CIRCUITOS, CAMINHOS MÍNIMOS E CONEXIDADE Neste captulo tratamos de tr^es classes especiais de grafos. Na primeira sec~ao apresentamos a classe dos caminhos e noc~oes que permeiam essa

Leia mais

Faculdade de Computação

Faculdade de Computação UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação - 1 0 Semestre 007 Professora : Sandra Aparecida de Amo Solução da Lista de Exercícios n o 1 Exercícios de Revisão

Leia mais

Aula 1: Introdução ao curso

Aula 1: Introdução ao curso Aula 1: Introdução ao curso MCTA027-17 - Teoria dos Grafos Profa. Carla Negri Lintzmayer carla.negri@ufabc.edu.br Centro de Matemática, Computação e Cognição Universidade Federal do ABC 1 Grafos Grafos

Leia mais

Teoria dos Grafos AULA 3

Teoria dos Grafos AULA 3 Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br AULA 3 Trajetos, Caminhos, Circuitos, Grafos Conexos Preparado

Leia mais

Arranjos. Claudio Esperança Paulo Roma LCG/UFRJ. All rights reserved.

Arranjos. Claudio Esperança Paulo Roma LCG/UFRJ. All rights reserved. Arranjos Claudio Esperança Paulo Roma 1 Arranjos Arranjos de retas e planos são a terceira estrutura em importância em GC. Arranjos de retas são coleções de retas infinitas distribuídas no plano. Arranjos

Leia mais

CIC 111 Análise e Projeto de Algoritmos II

CIC 111 Análise e Projeto de Algoritmos II CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 22 Combinatorics Binomial coefficients Catalan numbers Inclusion-exclusion Burnside

Leia mais

Introdução a Grafos Letícia Rodrigues Bueno

Introdução a Grafos Letícia Rodrigues Bueno Introdução a Grafos Letícia Rodrigues Bueno UFABC Teoria dos Grafos - Motivação Objetivo: aprender a resolver problemas; Como: usando grafos para modelar os problemas; Grafos: ferramenta fundamental de

Leia mais

Grafos. Rafael Kazuhiro Miyazaki - 21 de Janeiro de 2019

Grafos. Rafael Kazuhiro Miyazaki - 21 de Janeiro de 2019 21 de Janeiro de 2019 1 Definições Definição 1. (Grafo) Um grafo G = (V, A) é constituido por um conjunto V de vértices e um conjunto A V V de arestas. Usualmente representamos o conjunto V como pontos

Leia mais

Conceito Básicos da Teoria de Grafos

Conceito Básicos da Teoria de Grafos 1 Conceito Básicos da Teoria de Grafos GRAFO Um grafo G(V,A) é definido pelo par de conjuntos V e A, onde: V - conjunto não vazio: os vértices ou nodos do grafo; A - conjunto de pares ordenados a=(v,w),

Leia mais

Grafos Direcionados. > Grafos Direcionados Representações Computacionais 1/36

Grafos Direcionados. > Grafos Direcionados Representações Computacionais 1/36 Grafos Direcionados > Grafos Direcionados Representações Computacionais 1/36 Grafos Direcionados Em muitas aplicações, é importante ter direção nas arestas: Ruas de mão única Grafos modelando páginas da

Leia mais

Departamento de Engenharia de Produção UFPR 57

Departamento de Engenharia de Produção UFPR 57 Departamento de Engenharia de Produção UFPR 57 Introdução a Grafos Muitos problemas de otimização podem ser analisados utilizando-se uma estrutura denominada grafo ou rede. Problemas em redes aparecem

Leia mais

2 Definição do Problema

2 Definição do Problema Definição do Problema. Formulação Matemática O problema do Fluxo Máximo entre todos os pares de nós surge no contexto de redes, estas representadas por grafos, e deriva-se do problema singular de fluxo

Leia mais

Grafos: componentes fortemente conexos, árvores geradoras mínimas

Grafos: componentes fortemente conexos, árvores geradoras mínimas Grafos: componentes fortemente conexos, árvores geradoras mínimas SCE-183 Algoritmos e Estruturas de Dados 2 Thiago A. S. Pardo Maria Cristina 1 Componentes fortemente conexos Um componente fortemente

Leia mais

Programa. 1 Parte 1 - Conjuntos e Aplicações. 1 Conjuntos. 4 Indução Matemática e Divisibilidade. 5 Congruências Lineares

Programa. 1 Parte 1 - Conjuntos e Aplicações. 1 Conjuntos. 4 Indução Matemática e Divisibilidade. 5 Congruências Lineares Programa Matemática Discreta 2008/09 Jorge Manuel L. André FCT/UNL 1 Parte 1 - Conjuntos e Aplicações 1 Conjuntos 2 Relações Binárias 3 Aplicações 4 Indução Matemática e Divisibilidade 5 Congruências Lineares

Leia mais

Matemática Combinatória Gabarito Lista 7 Artur Souza, Bruno Leite e Marcos Castro

Matemática Combinatória Gabarito Lista 7 Artur Souza, Bruno Leite e Marcos Castro Matemática Combinatória Gabarito Lista 7 Artur Souza, Bruno Leite e Marcos Castro Questão 1 Sejam as pessoas representadas por nós e as relações de amizade por arestas. Utilizando o Princípio das Gavetas:

Leia mais

Árvores Árvores Geradoras de Custo Mínimo 0/16

Árvores Árvores Geradoras de Custo Mínimo 0/16 Conteúdo 1 Árvores 2 Árvores Geradoras de Custo Mínimo Árvores Árvores Geradoras de Custo Mínimo 0/16 Árvores Definição (Grafo Acíclico) Um grafo acíclico é um grafo que não contém ciclos. Árvores Árvores

Leia mais

ANTÔNIO LUIZ PEREIRA E SEVERINO TOSCANO MELO

ANTÔNIO LUIZ PEREIRA E SEVERINO TOSCANO MELO CONTANDO ÁREAS (O TEOREMA DE PICK) Introdução Consideremos um polígono P no plano cartesiano. Se os vértices de P têm todos coordenadas inteiras, então a Fórmula de Pick para sua área é (1) A = i+ f 1,

Leia mais

Algoritmos e Estruturas de Dados II Grafos conceitos gerais. Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M.

Algoritmos e Estruturas de Dados II Grafos conceitos gerais. Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M. Algoritmos e Estruturas de Dados II conceitos gerais Thiago A. S. Pardo Profa. M. Cristina Material de aula da Profa. Josiane M. Bueno Valorados Um grafo valorado (ponderado/com pesos) G(V,A) consiste

Leia mais

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos.

Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. 1 Árvores Definição 1.1 : Uma árvore é um grafo simples conexo e sem ciclos. Um grafo simples sem ciclos mas não conexo (em que cada componente conexa é portanto uma árvore) chama-se uma floresta. Numa

Leia mais

Teoria dos Grafos AULA 1

Teoria dos Grafos AULA 1 Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br AULA 1 Introdução, Conceitos Iniciais, Isomorfismo Preparado

Leia mais

Teorema 1 - Todo corte de arestas de um grafo conexo G contém pelo menos uma aresta em comum com qualquer árvore geradora de G. Exemplo 2 - Seja T:

Teorema 1 - Todo corte de arestas de um grafo conexo G contém pelo menos uma aresta em comum com qualquer árvore geradora de G. Exemplo 2 - Seja T: 12 - Conjuntos de Corte o estudarmos árvores geradoras, nós estávamos interessados em um tipo especial de subgrafo de um grafo conexo: um subgrafo que mantivesse todos os vértices do grafo interligados.

Leia mais

Subgrafos. Se G é um grafo e F A(G) então o subgrafo de G induzido (ou gerado) por F é o

Subgrafos. Se G é um grafo e F A(G) então o subgrafo de G induzido (ou gerado) por F é o Um grafo completo é um grafo simples em que quaisquer dois de seus vértices distintos são adjacentes. A menos de isomorfismo, existe um único grafo completo com n vértices; que é denotado por K n. O grafo

Leia mais

Teoria dos Grafos Introdu c ao

Teoria dos Grafos Introdu c ao Teoria dos Grafos Introdução Referências P. O. Boaventura Netto, Grafos: Teoria, Modelos e Algoritmos, São Paulo, E. Blucher 001; R. J. Trudeau, Introduction to Graph Theory, New York, Dover Publications,

Leia mais

RESOLUÇÃO DCC-UFRJ MATEMÁTICA COMBINATÓRIA 2006/2 PROVA Considere a soma. S n = n 2 n 1

RESOLUÇÃO DCC-UFRJ MATEMÁTICA COMBINATÓRIA 2006/2 PROVA Considere a soma. S n = n 2 n 1 DCC-UFRJ MATEMÁTICA COMBINATÓRIA 2006/2 PROVA 1 1. Considere a soma S n = 1 2 0 + 2 2 1 + 3 2 2 + + n 2 n 1. Mostre, por indução finita, que S n = (n 1)2 n + 1. Indique claramente a base da indução, a

Leia mais

Lista de Exercícios 9 (Extra): Soluções Grafos

Lista de Exercícios 9 (Extra): Soluções Grafos UFMG/ICEx/DCC DCC111 Matemática Discreta Lista de Exercícios 9 (Extra): Soluções Grafos Ciências Exatas & Engenharias 1 o Semestre de 018 Para cada uma das seguintes armações, diga se é verdadeira ou falsa

Leia mais

1.3 Isomorfismo 12 CAP. 1 CONCEITOS BÁSICOS

1.3 Isomorfismo 12 CAP. 1 CONCEITOS BÁSICOS 12 CAP. 1 CONCEITOS BÁSICOS I i I j. Essa relação de adjacência define um grafo com conjunto de vértices {I 1,...,I k }. Esse é um grafo de intervalos. Faça uma figura do grafo definido pelos intervalos

Leia mais

PCC173 - Otimização em Redes

PCC173 - Otimização em Redes PCC173 - Otimização em Redes Marco Antonio M. Carvalho Departamento de Computação Instituto de Ciências Exatas e Biológicas Universidade Federal de Ouro Preto 27 de abril de 2016 Marco Antonio M. Carvalho

Leia mais

Espaços Euclidianos. Espaços R n. O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais:

Espaços Euclidianos. Espaços R n. O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais: Espaços Euclidianos Espaços R n O conjunto R n é definido como o conjunto de todas as n-uplas ordenadas de números reais: R n = {(x 1,..., x n ) : x 1,..., x n R}. R 1 é simplesmente o conjunto R dos números

Leia mais

ANÁLISE COMBINATÓRIA

ANÁLISE COMBINATÓRIA Nome Nota ANÁLISE COMBINATÓRIA 1) De quantas maneiras diferentes 11 homens e 8 mulheres podem se sentar em uma fila se os homens sentam juntos e as mulheres também? 2!*11!*8! 2) O controle de qualidade

Leia mais

Teoria dos Grafos AULA 1

Teoria dos Grafos AULA 1 Teoria dos Grafos Valeriano A. de Oliveira Socorro Rangel Silvio A. de Araujo Departamento de Matemática Aplicada antunes@ibilce.unesp.br, socorro@ibilce.unesp.br, saraujo@ibilce.unesp.br AULA 1 Introdução,

Leia mais

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo PMR2300 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó (exceto a

Leia mais

Tópicos de Matemática Finita Data: I II-1 II-2 II-3 II-4 III-1 III-2 III-3 III-4 IV-1 IV-2 IV-3 IV-4 Nota Final

Tópicos de Matemática Finita Data: I II-1 II-2 II-3 II-4 III-1 III-2 III-3 III-4 IV-1 IV-2 IV-3 IV-4 Nota Final Tópicos de Matemática Finita Data: 20-06-2003 1 a Época Correcção Código: 1B Nome: Número: Curso: O exame que vai realizar tem a duração de três horas. As respostas às perguntas do grupo I não necessitam

Leia mais

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 13: Árvores. Departamento de Matemática Aplicada

Teoria dos Grafos. Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo. Capítulo 13: Árvores. Departamento de Matemática Aplicada Teoria dos Grafos Valeriano A. de Oliveira, Socorro Rangel, Silvio A. de Araujo Departamento de Matemática Aplicada Capítulo 13: Árvores Preparado a partir do texto: Rangel, Socorro. Teoria do Grafos,

Leia mais

GRAFOS. Introdução Conceitos Fundamentais

GRAFOS. Introdução Conceitos Fundamentais GRAFOS Introdução Conceitos Fundamentais Uma aplicação do produto de matrizes Agora é a sua vez... Considere o diagrama seguinte Determine, o número de formas diferentes de ir de a 1 até e 2 e de a 2

Leia mais

Estrutura de Dados Árvores Prof. Tiago Eugenio de Melo, MSc material de referência

Estrutura de Dados Árvores Prof. Tiago Eugenio de Melo, MSc material de referência Estrutura de Dados Árvores Prof. Tiago Eugenio de Melo, MSc tiago@comunidadesol.org material de referência http://www.tiagodemelo.info/aulas 1 Roteiro Motivação Representação de árvores Definição Terminologia

Leia mais

Introdução a Teoria dos Grafos Raimundo Macêdo

Introdução a Teoria dos Grafos Raimundo Macêdo Doutorado em Ciência da Computação lgoritmos e Grafos Raimundo Macêdo LaSiD/DCC/UF Introdução a Teoria dos Grafos Raimundo Macêdo Definição Estrutura que consiste em dois conjuntos: um conjunto de vértices

Leia mais