Apêndice E
Grafos não-dirigidos
Muitos problemas de otimização combinatória são formuladas sobre grafos.
Este apêndice faz uma rápida revisão
dos conceitos e da terminologia
da teoria dos grafos não-dirigidos.
Um grafo não-dirigido é um tipo especial de grafo dirigido.
Assim, poderíamos nos contentar com o resumo sobre grafos dirigidos
que faremos no apêndice F.
Mas é mais prático tratar dos grafos não-dirigidos em separado.
E.1 Grafos e suas arestas
Um grafo não-dirigido
(= undirected graph)
é um par de conjuntos
em que é um conjunto finito não vazio e
é um conjunto de pares não-ordenados de elementos de .
Os elementos de são chamados nós
e os elementos de são chamados arestas
(= edges).
[As letras
e são as iniciais de
vertex
e edge,
respectivamente.
(Quem sabe deveríamos escrever
e
em lugar de
e .)
A palavra vértice será aplicada apenas a vértices de poliedros.]
Se é o conjunto de todos os pares não-ordenados
de elementos de ,
dizemos que o grafo é completo.
Uma aresta pode ser denotada simplesmente por
ou por .
Os nós e são as pontas
da aresta.
Dizemos que uma tal aresta incide
em e em .
Dizemos também que a aresta
liga
e .
(É claro que não há arestas paralelas
,
ou seja, duas arestas distintas que ligam o mesmo par de nós.)
Dizemos também que os nós e são
vizinhos
ou adjacentes.
O grau
(= degree)
de um nó é o número de arestas que têm ponta .
Se dermos um nome — como , por exemplo — a um grafo,
o conjunto de nós do grafo será denotado por
e o conjunto de arestas por .
O número de nós de um grafo é denotado por
e o número de arestas por .
Portanto, se é o grafo em discussão então e .
É claro que .
Um subgrafo
de um grafo
é qualquer grafo tal que
e .
Se ,
dizemos que
é um subgrafo gerador
(= spanning subgraph)
de .
Dado um subconjunto de ,
se é o conjunto de todas as arestas de
que têm ambas as pontas em ,
dizemos que o subgrafo é
induzido por .
Esse grafo é denotado por .
Dado um subconjunto de ,
se é o conjunto de todas as pontas de arestas de ,
dizemos que o subgrafo é induzido por .
Para qualquer nó de ,
denotamos por
o subgrafo induzido por .
Para qualquer aresta ,
denotamos por
o subgrafo que tem conjunto de nós
e conjunto de arestas .
Para qualquer par de nós,
denotamos por
o grafo que tem conjunto de nós
e conjunto de arestas .
Um grafo é bipartido
se existe uma bipartição,
digamos ,
de tal que toda aresta tem uma ponta em
e outra em .
[A expressão é
uma das partições
está errada;
diga é um dos blocos
da partição
.]
Se todo par com e é uma aresta,
dizemos que o grafo é bipartido completo.
E.2 Caminhos e ciclos
Um caminho
(= path)
num grafo não-dirigido é qualquer sequência alternante
de nós e arestas tal que, para cada ,
o nó é uma das pontas da aresta e é a outra ponta.
O nó é a origem do caminho
e é o término.
Dizemos que o caminho vai de a .
O comprimento
do caminho é ,
ou seja, o número de termos do caminho que são arestas.
O conjunto de nós de um caminho
é denotado por e o conjunto de arestas por .
Um caminho é subcaminho
de um caminho se pode ser obtido
pela remoção de termos
de .
Por exemplo,
é um subcaminho de
.
Um caminho é segmento
de um caminho se pode ser obtido pela remoção
de termos do início e/ou do fim de .
Por exemplo,
é um segmento de
.
Um caminho
é quase-simples
(= edge-simple)
se não tem arestas repetidas, isto é,
se as arestas são diferentes entre si.
(Nada impede, entretanto, que o caminho tenha nós repetidos.)
Se é um caminho quase-simples
então o comprimento de é igual a .
Um caminho é simples
se não tem nós repetidos.
(É claro que todo caminho simples é, em particular, quase-simples.)
Se é um caminho com origem e término então algum subcaminho
de é um caminho simples de a .
Todo caminho com uma dada origem e um dado término
tem um subcaminho simples com origem
e término .
Dados caminhos
e ,
se o término do primeiro é igual à origem do segundo,
então os dois caminhos podem ser concatenados.
O resultado da concatenação é o caminho
.
A concatenação de dois caminhos e
é denotada por .
A distância de a
é o mínimo dos comprimentos de todos os caminhos
de a .
Conexão.
Um grafo não-dirigido é conexo
se, para cada par de seus nós,
existe um caminho de a
(e portanto também um caminho de a ).
Um grafo é desconexo se não for conexo.
Uma componente conexa
de um grafo não-dirigido é um subgrafo não-dirigido conexo
maximal
de .
Ciclos.
Um ciclo
(= cycle)
é um caminho quase-simples
em que e .
Lema E.1 (folclore)
Se todos os nós de um grafo não-dirigido
têm grau maior que
então o grafo tem um ciclo. ■
Um ciclo é simples
se não tem nós repetidos exceto o último (que coincide com o primeiro).
Ciclos simples em grafos não-dirigidos também
são conhecidos como circuitos
(= circuits).
Todo ciclo tem um segmento que é um circuito.
Em particular, todo ciclo de comprimento ímpar
tem um segmento que é um circuito de comprimento ímpar.
Lema E.2 (folclore)
Um grafo não-dirigido é bipartido se e somente se
não tem
circuitos de comprimento ímpar. ■
E.3 Florestas e árvores
Uma floresta
(= forest)
é um grafo não-dirigido sem ciclos.
Uma árvore
(= tree)
é uma floresta conexa.
Uma folha
de uma floresta
é qualquer nó de grau .
Para quaisquer dois nós e de uma árvore,
existe um e um só caminho simples de a .
Para toda aresta de uma árvore ,
o grafo não-dirigido é uma floresta
com exatamente duas componentes conexas.
Lema E.3
Toda floresta com uma ou mais arestas tem pelo menos duas folhas. ■
Exercícios E.3
-
★
Prove o lema E.1.
-
Prove que todo caminho com uma dada origem e um dado término
tem um subcaminho simples com origem
e término .
-
Prove que todo ciclo de comprimento ímpar
tem um segmento que é um circuito de comprimento ímpar.
-
Prove os lemas E.2
e E.3.
E.4 Cortes
Dado um grafo não-dirigido
e um subconjunto de ,
denotamos por
o conjunto .
O conjunto de todas as arestas que têm uma ponta em e outra em
é denotado por
É claro que .
É claro também que
.
Se é um nó, usamos a abreviatura para .
Um nó é isolado
se .
O número é o grau de .
É claro que .
É claro também que
Um corte
(= cut)
em um grafo não-dirigido
é o conjunto de todos os arestas que têm uma ponta em um conjunto de nós
e a outra ponta fora do conjunto.
Em outras palavras, um corte é qualquer conjunto da forma ,
com .
O conjunto é uma margem do corte.
Um corte é trivial se sua margem é
ou .
(Note que um grafo desconexo
tem cortes vazios que não são triviais.)
E.5 Álgebra linear
A matriz de adjacências
de um grafo não-dirigido tem linhas e colunas indexadas pelos nós.
A componente da matriz na posição
vale se é uma aresta e vale em caso contrário.
É claro que a matriz é simétrica.
A matriz de incidências
do gafo tem linhas indexadas por
e colunas indexadas por .
A coluna que corresponde a um aresta tem
um nas posições e
e tem nas demais posições.
Portanto,
a linha da matriz
tem um nas colunas correspondentes às arestas que têm ponta
e tem nas demais colunas.
Exemplo E.1:
O grafo não-dirigido que tem nós e arestas
tem a seguinte matriz de incidências
(com
representando ):
Lema E.4 (circuitos e dependência linear)
Seja a matriz de incidências de um
grafo não-dirigido .
Se o conjunto das colunas de é linearmente dependente
então tem um circuito. ■
Lema E.5 (circuitos e dependência linear em grafos bipartidos)
Seja a matriz de incidências de um
grafo não-dirigido bipartido
.
Se tem um circuito então
o conjunto das colunas de é linearmente dependente. ■
Esse lema pode ser informalmente resumido assim:
num grafo bipartido,
um conjunto de arestas linearmente independentes é o mesmo que
uma floresta.
Em grafos não-dirigidos arbitrários,
um lema análogo vale se as combinações lineares
forem feitas em , ou seja,
se os coeficientes forem binários e a aritmética for binária
(, , ,
,
e ).
Exercícios E.5
-
Prove os lemas
E.4
e E.5.
-
Mostre que o enunciado do lema E.5
é falso se retirarmos o adjetivo bipartido.
-
★
Florestas e independência linear em grafos bipartidos.
Seja a matriz de incidências de um
grafo não-dirigido bipartido
e um subconjunto de .
Mostre que
o conjunto das colunas da matriz é linearmente independente
se e somente se
o grafo é uma floresta.