CI065 | CI755 Algoritmos e Teoria dos · PDF fileCI065 | CI755 Algoritmos e Teoria dos Grafos...
Transcript of CI065 | CI755 Algoritmos e Teoria dos · PDF fileCI065 | CI755 Algoritmos e Teoria dos Grafos...
CI065 CI755Algoritmos e Teoria dos Grafos
Alguns Exerccios Resolvidos
2 de agosto de 2016
2 1. Se G e um grafo de 14 vertices e 25 arestas cujos vertices temgraus 3 ou 5, quantos vertices tem grau 3 e quantos tem grau 5?
2. Generalize o raciocnio para um grafo de n vertices e m arestascujos vertices tem graus d1 ou d2.
Resposta:
1.
3t+ 5c = 2 25,t+ c = 14,
logo
t = 10,
c = 4.
2. Fazendo
n1: # vertices de grau d1, e
n2: # vertices de grau d2,
temos
n1d1 + n2d2 = 2m,
n1 + n2 = n,
logon1 = n n2,
1
e(n n2)d1 + n2d2 = 2m,
ou sejand1 + (d2 d1)n2 = 2m
e portanto,
n2 =2m nd1d2 d1
,
n1 =nd2 2md2 d1
.
2
13 Prove que, se G e um grafo direcionado, entaovV (G)
+(v) = |A(G)| =
vV (G)
(v),
Resposta:
Seja G um grafo direcionado e seja M sua matriz de incidencia. Vamoscalcular a soma das entradas de M .
S(G) =
aA(G),vV (G)
M [v, a].
M :
a1 a2 . . . amv1 M [v1, a1] M [v1, a2] . . . M [v1, am]v2 M [v2, a1] M [v2, a2] . . . M [v2, am]...
......
. . ....
vn M [vn, a1] M [vn, a2] . . . M [vn, am]
Somando pelas linhas de M temos
S(G) =
vV (G)
aA(G)
M [v, a],
e como aA(G)
M [v, a] = +G(v) G(v),
para cada v V (G), entao
S(G) =
vV (G)
(+G(v)
G(v)
). =
vV (G)
+G(v)
vV (G)
G(v).
Somando pelas colunas de M temos
S(G) =
aA(G)
vV (G)
M [v, a],
e como vV (G)
M [v, a] = 0
para cada a A(G), entao
S(G) =
aA(G)
0 = 0.
3
Entao, vV (G)
+G(v)
vV (G)
G(v) = 0
ou seja, vV (G)
+G(v) =
vV (G)
G(v).
Calculando do mesmo modo
S (G) =
aA(G),vV (G)
|M [v, a]|,
chegamos a vV (G)
+G(v) +
vV (G)
G(v) = 2|A(G)|,
e da vV (G)
+G(v) = 2|A(G)| =
vV (G)
G(v).
4
14 Prove queMGT = (MG)
T ,
para todo grafo direcionado G, onde MT denota a matriz transpostada matriz M .
Resposta:
Basta provar que
MGT [u, v] = (MG)T [u, v], para todo u, v V (G).
Sejam u, v V (G). Entao
MGT [u, v] = 1
se e somente se(u, v) A(GT ),
ou seja(v, u) A(G),
e portantoMG[v, u] = 1,
ou seja(MG)
T [u, v] = 1.
5
30 Prove que um grafo G e bipartido se e somente se E(G) = G(X) paraalgum X V (G) e que, neste caso, {X, V (G)X} e uma biparticaode G.
Resposta:
() Considere uma biparticaoX, Y deG. Vamos provar que G(X) = E(G).Como e evidente que G(X) E(G), basta provar queE(G) G(X).Seja entao {x, y} E(G). Como G e bipartido, sem perda de ge-neralidade podemos supor x X e y Y e portanto, {x, y} G(X).
() Seja X V (G) tal que E(G) = G(X). Para provar quye G ebipartido, basta verificar que X, V (G)X e biparticao de G.Como X, V (G)X e uma particao de V (G), resta somente veri-ficar que X e V (G)X sao independentes.Suponha que houvesse aresta {u, v} E(G) com u, v X. Entao{u, v} 6 G(X) e contrariando a hipotese de que E(G) = G(X).Pelo mesmo argumento conclumos que V (G)X e independente.
6
78 Seja T a arborescencia resultante de uma busca em largura sobre umgrafo conexo G e seja r sua raiz. Prove que G e bipartido se e somente sed(r, u) e d(r, v) tem paridades diferentes para toda aresta {u, v} GE(S(T )).
Resposta:
Seja T a arborescencia resultante de uma busca em largura sobre umgrafo conexo G e seja r sua raiz e seja {u, v} G E(S(T )).Como T e arborescencia resultante de uma busca em largura, entao(Corolario ??) rTu e rTv sao caminhos mnimos em G.
Como rTu (u, v) e caminho de r a v em G, conclumos que
|rTv| |rTu (u, v)| = |rTu|+ 1.
Por argumento analogo, conclumos que
|rTu| |rTv|+ 1,
ou seja, os tamanhos dos caminhos rTu e rTv diferem de no maximo 1.
() Se G e bipartido, entao o circuito fundamental de {u, v} comrelacao a T tem tamanho par e isso so e possvel se os tamanhosdos caminhos rTu e rTv diferem de exatamente 1 e, portanto,d(r, u) e d(r, v) tem paridades diferentes.
() Se d(r, u) e d(r, v) tem paridades diferentes para toda aresta {u, v} GE(S(T )), entao os conjuntos de vertices de G a distancia pare mpar de r sao independentes e, portanto, G e bipartido.
7
84 Prove que se T e a arborescencia resultante de uma busca em largurasobre um grafo conexo G e r = r(T ), entao
|dG(r, u) dG(r, v)| 1, para todo {u, v} E(G S(T )).
Resposta:
Seja T a arborescencia resultante de uma busca em largura sobre umgrafo conexo G e seja r = r(T ). Seja ainda {u, v} G E(S(T )).Como T e arborescencia resultante de uma busca em largura, entao(Corolario ??) rTu e rTv sao caminhos mnimos em G e, consequente-mente,
dG(r, u) = |rTu|, edG(r, v) = |rTv|.
Como rTu (u, v) e caminho de r a v em G, conclumos que
|rTv| |rTu (u, v)| = |rTu|+ 1,
ou seja,|rTv| |rTu| 1,
isto e,dG(r, v) dG(r, u) 1,
Por argumento analogo, conclumos que
dG(r, u) dG(r, v) 1,
ou seja,|dG(r, u) dG(r, v)| 1.
8
86 Seja T uma arborescencia geradora de um grafo G produzida por umabusca em profundidade. Prove que
1. A raiz de T e vertice de corte de G se e somente se tem mais deum filho.
2. Um vertice v que nao e raiz de T e vertice de corte de G se esomente se tem um filho w tal que nenhum descendente de w evizinho de um ancestral proprio de v.
3. Uma aresta {u, v} e aresta de corte em G se e somente se (u, v) A(T ) e nenhuma aresta em G liga um descendente de v a umancestral de u.
Resposta:
Seja T uma arborescencia geradora de um grafo G produzida por umabusca em profundidade e seja r sua raiz.
1. () Suponha que r e vertice de corte de G. Como r e raiz de T ,entao cada componente de G r tem que ter um filho de r.Se r e vertice de corte em G, entao G r tem mais de umcomponente e, consequentemente, r tem mais de um filho emT .
() Suponha que r e vertice de corte de G e tem u e v comofilhos em T . Sejam U e V os descendentes de u e v em T ,respectivamente. Os conjuntos U e V tem que ser disjuntospois nao pode haver vertice em T que seja descendente deambos.Se houvesse caminho de u a v em G r, teramos uma arestaem G(U) ligando um descendente de u a um naodescendentede u, ou seja, uma aresta cruzada em GE(S(T )) com relacaoa T , o que nao e possvel pois T uma arborescencia produzidapor uma busca em profundidade.
2. () Seja v um e vertice de corte de G que nao e raiz de T e sejap o pai de v. Nestas condicoes, o vertice v tem que ter umfilho w em T tal que p e w estao em componentes diferentesde G v.Suponha agora que w tem um descendente t que e vizinho deum ancestral proprio a de v. Neste caso wTt (t, a) aTp seriacaminho de w a p em G v e v nao seria vertice de corte.
() Seja v um vertice de T que tem um filho w tal que nenhumdescendente de w e vizinho de um ancestral proprio de v. Se
9
houvesse caminho de w ao pai de v em G v, este caminhoteria que ter ao menos uma aresta fora de S(T ). Como T earborescencia produzida por uma busca em profundidade estaaresta teria que ligar um descendente de w a um ancestralproprio de v.
3. () Seja {u, v} uma aresta de corte em G. Sem perda de gene-ralidade, podemos supor que u e o pai de v em T e, sendoassim, u e vertice de corte em G. De acordo com o item an-terior, nenhuma aresta em G liga um descendente de v a umancestral de u.
() Seja (u, v) A(T ) tal que nenhuma aresta em G liga umdescendente de v a um ancestral de u. Se houvesse caminhode u a v em G{u, v} este caminho teria uma aresta fora deS(T ). Como T e arborescencia produzida por uma busca emprofundidade, esta aresta teria que ligar um descendente de va um ancestral u.
10
92 Seja G um grafo direcionado e considere uma execucao do algoritmoBuscaProfundidade(G). Seja F a floresta direcionada induzida pelosvalores de v.pai | v V (G) e, para cada v V (G) sejam v.pre e v.posos ndices de preordem e posordem computados.
Prove que
1. Se (u, v) e arco de F ou arco de avanco com relacao a F , entaou.pre < v.pre < v.pos < u.pos.
2. Se (u, v) e arco cruzado com relacao a F , entao v.pre < v.pos