Um grafo é um par , em que é um conjunto de objetos distintos e é um conjunto de pares de elementos de .
- Os elementos de são chamados de vértices;
- Os elementos de são chamados de arestas.
Visualmente, podemos imaginar um grafo simplesmente como um conjunto de pontos e linhas conectando pares desses pontos. Neste caso, os pontos representam os vértices e as linhas representam as arestas conectando pares de vértices.
Conceitos Básicos
Definição 1 (Adjacência) Dois vértices e são adjacentes se, e somente se, existe uma aresta conectando e em .
Definição 2 (Caminho) Uma sequência de vértices é um caminho se, e somente se, existe uma aresta conectando e , para todo . Ou seja, quaisquer dois vértices consecutivos de são adjacentes.
Um caminho é dito simples quando ele não repete vértices.
Definição 3 (Ciclo) Uma ciclo é um caminho que começa e termina num mesmo vértice .
Um ciclo é dito simples quando ele não repete vértices além do primeiro.
Definição 4 (Grafo simples) Um grafo é dito simples se, e somente se, não há arestas conectando um vértice a ele mesmo e não há dois vértices conectados por mais de uma aresta.
Definição 5 (Grau) O grau de um vértice é a quantidade de arestas incidentes em , isto é, a quantidade de arestas distintas conectando a algum outro vértice no grafo. Denotamos o grau de um dado vértice por .
Definição 6 (Sub-grafo) Um grafo é um sub-grafo de se é um subconjunto de e, para cada par de vértices em , são adjacentes em se, e somente se, eles são adjacentes em .
Definição 7 (Grafo conexo) Um grafo é dito conexo se existe um caminho entre quaisquer dois vértices distintos de e desconexo, caso contrário.
Todo grafo, conexo ou não, pode ser particionado em sub-grafos disjuntos e conexos, chamamos esses sub-grafos de componentes conexas. Veja que um grafo conexo é a sua própria componente conexa!
Definição 8 (Grafo completo) Um grafo simples de vértices é dito completo, ou um -clique, se todos os pares de vértices são adjacentes. Denotamos um -clique por .
Existem diversos tipos de grafos, e a ideia é que este artigo passe pelos tipos de grafos mais importantes que devemos conhecer. Abaixo, seguem 4 tipos essenciais de grafos aos quais devemos sempre nos atentar, uma vez que aparecem em inúmeras questões de diferentes olimpíadas de matemática.
Tipo 1 - Árvores
Definição (Árvore) É um grafo conexo e sem ciclos.
Teorema: Toda árvore com vértices possui exatamente arestas;
Definição (Folha) Uma folha é um vértice de grau .
Exercício 1. Prove que toda árvore tem uma folha.
Suponha por absurdo que todo vértice tem grau maior do que . Considere o maior caminho simples , onde está conectado a para todo . Como o grau de é maior do que , existe um vértice vizinho de (por quê?) e, portanto, é um caminho simples maior do que , absurdo.
Exercício 2. Seja um grafo com vértices. Mostre que quaisquer duas afirmações a seguir implicam a outra.
- é conexo.
- não tem ciclos.
- tem arestas.
Isto é, se 1 e 2 são verdades, então 3 também é, se 1 e 3 são verdades, então 2 também é, e se 2 e 3 são verdades, 1 também é.
Caso 1. é conexo e não tem ciclos.
Provaremos por indução em . Caso base: : claramente possui arestas. Suponha agora que todo grafo conexo e acíclico com vértices possui arestas. Seja uma folha de . Por hipótese de indução, o subgrafo de possui arestas. Como tem grau , tem arestas.
Caso 2. não tem ciclos e tem arestas.
Sejam a quantidade de vértices em cada componente conexa de . Como cada componente conexa é uma árvore, temos que a quantidade de arestas de é , mas é conexo.
Caso 3: é conexo e tem arestas.
Suponha por absurdo que tem ciclos. Note que, ao remover uma aresta de um ciclo, o grafo continua conexo e o ciclo desaparece. Portanto se tem ciclos, podemos remover arestas e obter uma árvore com vértices, ou seja, , absurdo.
Corolário: Assim, se um grafo contém vértices, é conexo e não tem ciclos (ou seja, é uma árvore), então ele possui exatamente arestas. Provando, assim, o nosso primeiro Teorema!
Tipo 2 - Grafos bipartidos
Definição: (Grafo bipartido) Um grafo é bipartido se, e somente se, os seus vértices podem ser particionados em grupos disjuntos, de tal forma que não há arestas conectando dois vértices pertencentes ao mesmo grupo.
Notação: Se os vértices de um grafo bipartido foram divididos entre dois grupos e , podemos denotar
Exercício 1. Se é um grafo bipartido, então .
Ou seja, a soma dos graus dos vértices no primeiro grupo é igual a soma dos vértices no segundo grupo que, por sua vez, é igual a quantidade de arestas em .
Sabemos que cada aresta em conecta um vértice em a outro em $Y$. Vamos contar a quantidade de elementos do conjunto , em que o vértice é uma das extremidades da aresta , de duas formas diferentes:
1) Para cada vértice em é uma das extremidades de exatamente arestas em Cada vértice em está em exatamente pares distintos com a nossa propriedade desejada e cada par com a nossa propriedade desejada contém exatamente um vértice em . Logo, há exatamente tais pares.
2) Por outro lado, temos que cada aresta $a\in A$ possui exatamente uma extremidade em . Daí, cada aresta em , está em exatamente par com a nossa propriedade desejada e cada par com a nossa propriedade desejada contém uma aresta em . Assim, há exatamente tais pares.
Desta forma, . Analogamente, contando a quantidade de pares $(v',a)$, em que o vértice é uma das extremidades da aresta , podemos concluir que .
Portanto, .
Exercício 2. Um grafo é bipartido se, e somente se, ele não possui nenhum ciclo de tamanho ímpar.
(Ida) Se é bipartido, então ele não possui nenhum ciclo de tamanho ímpar.
Prova: Primeiramente, suponha por absurdo que há um ciclo ímpar no grafo bipartido , digamos , Assuma, sem perda de generalidade, que está no grupo . Como é adjacente a , eles devem ser de grupos diferentes está no grupo . De maneira similar, é adjacente a está no grupo . Seguindo este raciocínio, teremos no grupo e no grupo , para todo . Isso implica que e são dois vértices adjacentes que se encontram no mesmo grupo (Grupo 1), absurdo! Logo, não há ciclos ímpares em .
(Volta) Se não possui ciclos de tamanho ímpar, então ele é bipartido.
Prova: Suponha que todos os ciclos de têm tamanho par. Tome um vértice qualquer . Para cada vértice na mesma componente conexa que , defina a distância de a , e denote por , como o tamanho do menor caminho de a . Coloque todos os vértices de cuja distância a é par em um grupo e coloque todos os vértices restantes em outro grupo. Faça o mesmo para cada componente conexa de (usando os mesmos dois grupos para todas). Vamos provar que não há arestas conectando vértices da no mesmo grupo.
Se dois vértices adjacentes e , s.p.g. pertencentes à componente conexa , foram colocados no mesmo grupo, então há um ciclo ímpar em . De fato, o caminho indo de a (com tamanho ), depois pela aresta conectando e , em seguida pelo caminho indo de a (com tamanho ) constitui um ciclo de tamanho . Contudo, estamos assumindo que e foram colocados na mesma componente conexa, o que significa que e têm a mesma paridade é par é ímpar é um ciclo de tamanho ímpar, absurdo.
Logo, conseguimos dividir os vértices de em dois grupos tais que não há dois vértices adjacentes no mesmo grupo é bipartido.
Portanto, é bipartido se, e somente se, ele não possui ciclos de tamanho ímpar.
Corolário: Toda árvore é um grafo bipartido.
Exercício 3. Num quartel com soldados, são escolhidos, todas as noites, soldados para ficar de vigília. Após noites, percebeu-se que cada par de soldados ficou de vigília junto exatamente uma vez. Calcule em função de .
Tente montar um grafo bipartido em que um dos grupos representa os soldados e o outro representa as noites.
Considere um grafo bipartido , em que é o conjunto de todos os soldados do quartel e é o conjunto de noites. Conectamos um soldado e uma noite por uma aresta se, e somente se, o soldado ficou de vigília na noite .
Sabemos que, para cada par de soldados e , há exatamente uma noite na qual eles ficaram juntos de vigília. Ademais, suponha que os soldados de vigília na noite são e Cada noite contém exatamente pares de soldados: (), () e (). Daí, =#(noite, par de soldados juntos de vigília nessa noite)=.
Portanto, .
Definição (Grafo bipartido completo) Um grafo bipartido é dito completo se cada elemento de é adjacente a todos os elementos de e, consequentemente, cada elemento de é adjacente a todos os elementos de .
Um grafo bipartido completo cujos grupos disjuntos possuem e vértices, respectivamente, é denotado por .
Tipo 3 - Grafos planares
Definição (Grafo planar) Todo grafo que pode ser desenhado no plano, com pontos representando vértices e linhas contínuas conectando pares de pontos representando arestas, sem que haja duas arestas se intersectando.
Propriedades
- (Fórmula de Euler) , onde , são o número de vértices e arestas, respectivamente - e o número de faces (regiões) do grafo. Note que a região externa ao grafo também entra na contagem.
Acima um exemplo de grafo com 10 vértices, 15 arestas e 3 faces.
Exercício 1. Seja G um grafo planar contendo faces e arestas. Prove que . Por corolário, mostre que o não é um grafo planar.
Realize uma contagem dupla sobre os pares (face, aresta sobre a borda desta face). Após provar isso, junte a desigualdade com o fato de que .
Note que uma face sempre possui pelo menos arestas e cada aresta é contada em exatamente duas faces. Logo, ao contarmos o número de pares descritos na dica:
1. Fixada a aresta (A formas) temos faces em que ela contabiliza
2. Fixada a face (F formas), temos arestas no mínimo em que ela contabiliza
Logo, . Plugando na fórmula de Euler: . Como há vértices e arestas no , chegamos num absurdo.
Exercício 2. Adapte sua solução para um grafo bipartido provando que nesse caso, se ele for também planar, então: . Com isso, prove que um não é planar.
Nota: (Teorema de Kuratowski) Um grafo será planar se e somente se ele não possui um subgrafo homeomórfico a um ou .
Tipo 4 - Grafos direcionados
Um grafo direcionado tem a mesma estrutura de vértices que um grafo comum, mas as arestas não são mais pares de vértices, mas sim pares de vértices ordenados onde de um vértice sai-se alguma aresta para outro.
- Definições importantes: Assim como o conceito de grau de um vértice num grafo normal, para um bipartido temos o grau de entrada (in-grau), a quantidade de arestas que chegam no vértices, e o grau de saída (out-grau), o número de arestas que saem de um vértices. Vamos usar a notação para o in-grau e para o out-grau.
A partir desses conceitos podemos derivar um teorema análogo ao da soma de vértices de um grafo simples:
Isso vale já que ao somar todos os in-graus dos vértices, cada aresta é contada apenas uma vez e é análogo para o out-grau.
- Outra ideia importante no estudo de grafos direcionados é o conceito de torneios, geralmente usado para falar de uma competição entre times em que cada equipe joga apenas uma vez com todas as outras admitindo apenas vencedores ou perdedores, ou seja, um grafo direcionado completo em que uma aresta representa quem ganhou de quem (ela pode apontar para o vencedor ou para o perdedor dependendo de como é definido). Assim, ao analizar torneios se encontram vários teoremas interessantes:
Teorema 1: Todo torneio possui um caminho direcionado simples passando por todos os vértices.
Para provar o teorema vamos aplicar indução na quantidade de vértices, suponha que a condição vale para um torneio de vértices, tome um torneio de vértices, ao retirar um deles, sabemos que existe um caminho passando por todos os outros, vamos olhar para esse caminho e para as arestas que ligam o vértice destacado aos outros
Se a aresta entre e sair do segundo, podemos pegar o caminho:
Logo supomos que aponta para , analogamente dizemos que aponta para senão podemos pegar o caminho:
Porém se todas as arestas chegarem em , sabemos em particular que aponta para e assim temos o caminho:
Logo, basta averiguar os casos iniciais e para é fácil ver que vale
Num grafo direcionado podemos definir a ideia de fortemente conexo, ou seja existe um caminho que liga qualquer par de vértices. Assim, sabemos que um torneio possui um ciclo direcionado passando por todos os vértices se e somente se é fortemente conexo, a prova fica a critério do leitor
Exemplo 1: Seja G um grafo conexo com um número par de arestas, prove que é possível direcionar cada uma das arestas de tal forma que a quantidade de arestas saindo de cada vértice é par.
Lema 1: Num grafo com uma quantidade ímpar de arestas podemos direcionar as arestas para que apenas um vértice tenha out-grau ímpar
Prova: Vamos aplicar indução na quantidade de arestas, suponha que vale para todo grafo com no máximo arestas e suponha verdadeiro o enunciado da questão tome um grafo com arestas e escolha um vértice() e retire uma aresta ligada a ele (ligada a ) se o que sobra é um grafo conexo, organize as arestas para e tenham out-grau par e faça a aresta sair de assim é o único com out-grau ímpar, faça o mesmo se e acabarem em componentes conexas diferentes cada uma com uma quantidade par de arestas, caso contrário, é possível organizar por hipótese as arestas de tal forma que e sejam os únicos com out-grau ímpar então basta que a aresta retirada saia e parta para .
Como a quantidade de arestas é par sabemos que existem ao menos 3 vértices e por ser conexo sabemos que existe um vértice com grau pelo menos 2. Vamos aplicar indução no número de arestas, assim, supomos que a condição vale para todo valor de arestas menor ou igual a tome um grafo de arestas e escolha um vértice com grau pelo menos () retire ambas arestas (sejam elas ligadas aos vértices e ), assim você terá um grafo conexo com uma quantidade par de arestas ou um grafo não conexo com no máximo componentes conexas.
No primeiro caso, basta aplicar a condição para o grafo restante já que você tem uma quantidade par de arestas e recolocar as duas que foram retiradas ambas saindo de mantendo assim a paridade do out-grau dos vértices.
Para o próximo temos que tomar cuidado com uma possível componente conexa com uma quantidade ímpar de arestas dessa forma, se houverem apenas componentes conexas com uma quantidade par de arestas, é possível organizar as arestas para , e terem out-grau par então basta fazer as arestas retiradas saírem de . Se houver uma componente conexa com ímpar arestas, sabemos que podemos direcionar as arestas de tal forma que dois dos vértices nomeados tenham out-grau ímpar, assim fazemos uma das arestas destacadas apontar para um vértice de out-grau par e agora temos dois de out-grau par e outro ímpar, para finalizar fazemos a outra aresta destacada sair do vértice de grau ímpar
Exemplo 2: (Canadá 2006) Considere um torneio com equipes. Dizemos que as equipes , e formam um triângulo cíclico se ganha de , ganha de e ganha de .
a) Determine o menor número de triângulos cíclicos possíveis
Vamos provar que o mínimo é por indução, suponha que vale para equipes, tome um torneio com equipes sem triângulos cíclicos, note que podemos adicionar um vértice que ganhou de todas equipes e outro que perdeu para todas dessa forma não adicionamos nenhum triângulo novo, já que para que haja um triângulo os vértices devem ter pelo menos uma aresta entrando e outra saindo, dessa forma, os vértices adicionados não poderam formar nenhum triângulo.
Veja que para temos o grafo abaixo, logo a indução está completa.
b) Determine o maior número de triângulos cíclicos possíveis
Para maximizar a quantidade de triângulos cíclicos(), vamos contar a quantidade de triângulos não cíclicos() já que sabemos que:
Pois a quantidade de triângulos cíclicos e não cíclicos compreendem todas as possibilidades de triângulos. Assim, note que qualquer triângulo não cíclico é do tipo da figura do item a), logo para contar quantos deles existem num torneio, basta pegar todos os vértices e escolher duas arestas saindo dele, logo:
Porém por , sabemos que:
Logo:
Finalmente, concluimos que:
Logo, o máximo de triângulos cíclicos possíveis num torneio de equipes é ocorrendo quando saem e entram exatamente arestas de cada vértice(caso de igualdade da )