You are on page 1of 9

05.

569 · Grafs i Complexitat · PAC1


2019-2020-Sem. 1 · Grau en Enginyeria Informàtica
Estudis d’Informàtica, Multimèdia i Telecomunicació

Presentació

Aquesta PAC és una introducció a la teoria de grafs que cobreix els continguts estudiats en els 3
primers mòduls de l’assignatura. Els exercicis treballen tant els conceptes previs sobre funcions i
algorismes, els fonaments de la teoria de grafs i els problemes de recorreguts i connectivitats sobre
grafs.

Competències

En aquesta PAC es treballen les següents competències del Grau en Enginyeria Informàtica:

• Capacitat per utilitzar els fonaments matemàtics, estadı́stics i fı́sics per comprendre els sis-
temes TIC.
• Capacitat per analitzar un problema en el nivell d’abstracció adequat a cada situació i aplicar
les habilitats i coneixements adquirits per a resoldre’l.

Objectius

Els objectius concrets d’aquesta PAC són:

• Conèixer els principals conceptes de combinatòria.


• Conèixer el concepte de complexitat temporal i espacial d’un algorisme i saber analitzar-la
en algorismes concrets.
• Conèixer el concepte de graf i els diferents tipus de graf (grafs orientats, grafs ponderats,
pseudografs, multigrafs, ...).
• Conèixer les principals propietats dels grafs i saber analitzar-les en un graf concret.

• Conèixer els problemes de connectivitat més usuals sobre grafs, els algorismes que els resolen
i saber-los aplicar en un graf concret.
• Ser capaç de representar i analitzar un problema en termes de la teoria de grafs.

1
05.569 · Grafs i Complexitat · PAC1
2019-2020-Sem. 1 · Grau en Enginyeria Informàtica
Estudis d’Informàtica, Multimèdia i Telecomunicació

Descripció de la PAC
1. (Valoració d’un 20% = 10% + 10%)

(a) Sigui K10 el graf complet amb conjunt de vèrtexs V = {v1 , . . . , v10 }.
i. Quants camins diferents hi ha de longitud 4 que comencen per v1 i acaben a v10 ?
ii. Quants camins diferents hi ha en total de v1 a v10 ?
(b) Sigui A el conjunt format pels nombres enters de l’1 al 15.
i. Quants subconjunts de 5 nombres diferents es poden formar a partir d’A?
ii. Quants d’aquests subconjunts de 5 nombres contenen els nombres 2 i 3?

Solució:

(a) Recordem que en un camı́ no hi ha vèrtexs repetits, i la longitud és el nombre d’arestes que el
componen. A més, un graf complet conté una aresta entre qualsevol parella de vèrtexs.
i. Els camins de longitud 4 que comencen en v1 i acaben en v10 han de passar per 3 vèrtexs
més de entre els vèrtexs {v2 , . . . , v9 }, per tant n’hi ha 8 · 7 · 6 = 336.
ii. Seguint l’argument de l’apartat anterior, n’hi ha 1 de longitud 1, 8 de longitud 2, 8 · 7 = 56
de longitud 3, 336 de longitud 4 (veure apartat anterior), 8 · 7 · 6 · 5 = 1680 de longitud 5,
8·7·6·5·4 = 6720 de longitud 6, 8·7·6·5·4·3 = 20160 de longitud 7, i 40320 de longitud 8 i
9. Per tant, en total n’hi ha 1+8+56+336+1680+6720+20160+40320+40320 = 109601.
(b) i. A partir d’un conjunt amb 15 elements, podem formar V (15, 5) = 15·14·13·12·11 = 360360
5-mostres ordenades sense repetició. Com que en els subconjunts no importa l’ordre i per
a cada subconjunt tenim 5! = 120 ordenacions possibles, el total de subconjunts de 5
elements és V (15, 5)/5! = 3003.
ii. Si sabem que els nombres 2 i 3 es troben en cada subconjunt, només hem de triar els 3
nombres restants, d’un conjunt amb 15 − 2 = 13 nombres. Per tant, seguint el mateix
argument que en l’apartat anterior, obtenim que n’hi ha V (13, 3)/3! = 1716/6 = 286.

2. (Valoració d’un 20% = 5% + 5% + 10%)


Definim les funcions MultSqrMatrix(A, B) i NumberPaths(i, j, p, A), on A i B són matrius
quadrades de mida n × n i 1 ≤ i, j, p ≤ n.

2
05.569 · Grafs i Complexitat · PAC1
2019-2020-Sem. 1 · Grau en Enginyeria Informàtica
Estudis d’Informàtica, Multimèdia i Telecomunicació

(1) funció M ultSqrM atrix(A,B) (1) funció N umberP aths(i,j,p,A)


(2) inici (2) inici
(3) n← N umberRows(A) (3) n← N umberRows(A)
(4) C← Initialize(n) (4) C←A
(5) per i=1 fins n (5) per x=1 fins p-1
(6) per j=1 fins n (6) C← M ultSqrM atrix(C,A)
(7) sum ←0 (7) fiper
(8) per k=1 fins n (8) retorn C[i,j]
(9) sum ← sum+A[i,k]*B[k,j] (9) fi
(10) fiper
(11) C[i,j]← sum
(12) fiper
(13) fiper
(14) retorn C
(15) fi
La funció NumberRows(A) retorna el nombre de files d’una matriu A i té un cost d’una
operació computacional. La funció Initialize(n) inicialitza una matriu de mida n × n, la
defineix i li assigna zero a totes les entrades. Considerem que la funció Initialize(n) té un
cost de n2 operacions, i l’assignació d’una matriu a una altra té un cost d’una operació.

(a) Digueu, en funció d’n, quantes operacions es realitzen en la funció MultSqrMatrix. Om-
pliu la següent taula:

Lı́nia Cost
3
4
..
.
Total

(b) Determineu, en funció d’n, la complexitat de cadascuna de les funcions MultSqrMatrix


i NumberPaths.
(c) Si la matriu A és la matriu d’adjacències d’un graf G, aleshores NumberPaths(i, j, p, A)
retorna el nombre de recorreguts que hi ha del vèrtex i al vèrtex j de longitud p. Sigui
G el graf cicle de 6 vèrtexs, V = {1, 2, 3, 4, 5, 6}. Doneu A i A3 , on A és la matriu
d’adjacències de G. Quins paràmetres s’han de passar a la funció NumberPaths per
obtenir el nombre de recorreguts de longitud 3 del vèrtex 1 al vèrtex 2, i què retorna la
funció en aquest cas? Doneu també tots aquests recorreguts.

3
05.569 · Grafs i Complexitat · PAC1
2019-2020-Sem. 1 · Grau en Enginyeria Informàtica
Estudis d’Informàtica, Multimèdia i Telecomunicació

Solució:
(a)
Lı́nia Cost
3 2
4 n2 + 1
5 2n + 2
6 (2n + 2)n = 2n2 + 2n
7 n2
8 (2n + 2)n2 = 2n3 + 2n2
9 5n3
11 n2
14 1
Total 7n3 + 7n2 + 4n + 6
(b) D’acord amb l’apartat anterior, la complexitat de la funció MultSqrMatrix en funció d’n és
O(n3 ). D’altra banda, a la funció NumberPaths, la lı́nia 6 té una complexitat O(n3 ) i s’executa
n − 1 vegades en el pitjor dels casos. Per tant, la complexitat és O(n4 ).
(c) Les matrius A i A3 són
   
0 1 0 0 0 1 0 3 0 2 0 3
 1 0 1 0 0 0   3 0 3 0 2 0 
   
 0 1 0 1 0 0 0 3 0 3 0 2
A3 = 
  
A=  0
 i .
 0 1 0 1 0 


 2 0 3 0 3 0 

 0 0 0 1 0 1   0 2 0 3 0 3 
1 0 0 0 1 0 3 0 2 0 3 0

La crida seria NumberPath(1, 2, 3, A) i retorna 3. Per tant, hi ha 3 recorreguts de longitud 3


de 1 a 2. Els recorreguts són {1, 2, 1, 2}, {1, 2, 3, 2} i {1, 6, 1, 2}.

3. (Valoració d’un 30% = 10% + 5% + 10% + 5%)

(a) Donada la seqüència de nombres enters: x + 2, 3, x + 1, x + 1, 2, 2, x, x, 1, 1 que no està


necessàriament ordenada, per a quins valors de x (x ≥ 1) obtenim una seqüència gràfica?
Nota: Calculeu primer quin és l’enter més gran que pot aparèixer en aquesta seqüència
si fos gràfica i, a partir d’aquest, quins són els possibles valors per x.
(b) Per a cadascun dels valors obtinguts en l’apartat (a), doneu la mida, i el mı́nim nombre
d’arestes que cal eliminar per tal que el graf deixi de poder ser connex. Nota: Justifiqueu
totes les respostes i ompliu la següent taula com a resum.

4
05.569 · Grafs i Complexitat · PAC1
2019-2020-Sem. 1 · Grau en Enginyeria Informàtica
Estudis d’Informàtica, Multimèdia i Telecomunicació

x mida mı́nim nombre d’arestes per deixar de ser connex

(c) Per al valor de x més petit per el qual la seqüència de l’apartat (a) és gràfica, dibuixeu
un graf G1 connex que tingui aquesta seqüència de graus. Justifiqueu si el graf G1 és
bipartit i si és un arbre. Existeix un graf G2 no connex que tingui aquesta mateixa
seqüència de graus? Són isomorfs els grafs G1 i G2 ?
(d) Doneu l’ordre en què es visiten els vèrtexs del graf G1 amb l’algorisme BFS. Feu el
mateix per l’algorisme DFS.

Solució:

(a) Com que la seqüència conté 10 nombres enters, aleshores x ≤ 9. Si x és parell, aleshores la
seqüència contindria 5 nombres senars: 3, x + 1, x + 1, 1, 1. Com que el nombre de vèrtexs
de grau senar ha de ser parell, x no pot ser parell. Per a la resta de valors, x ∈ {1, 3, 5, 7},
apliquem l’algorisme de Havel-Hakimi, i obtenim que només per x ∈ {1, 3, 5} la seqüència és
gràfica:
x=1 x=3 x=5 x=7
3,3,2,2,2,2,1,1,1,1 5,3,4,4,2,2,3,3,1,1 7,3,6,6,2,2,5,5,1,1 9,3,8,8,2,2,7,7,1,1
2,1,1,2,2,1,1,1,1 5,4,4,3,3,3,2,2,1,1 7,6,6,5,5,3,2,2,1,1 9,8,8,7,7,3,2,2,1,1
2,2,2,1,1,1,1,1,1 3,3,2,2,2,2,2,1,1 5,5,4,4,2,1,1,1,1 7,7,6,6,2,1,1,0,0
2,1,1,2,2,2,1,1 4,3,3,1,0,1,1,1 6,5,5,1,0,0,-1,0
2,2,2,2,1,1,1,1 4,3,3,1,1,1,1,0
1,1,2,1,1,1,1 2,2,0,0,1,1,0
2,1,1,1,1,1,1 2,2,1,1,0,0,0
0,0,1,1,1,1 1,0,1,0,0,0
és gràfica és gràfica és gràfica no és gràfica
(b) La mida, o sigui el nombre d’arestes del graf, pel lema P de les encaixades, es pot calcular a
partir de la suma dels graus dels seus vèrtexs: |A| = ( v∈V g(v))/2. Un graf amb 10 vèrtexs,
si té menys de 9 arestes no pot ser connex. Per tant, obtenim la següent taula resum:
x mida mı́nim nombre d’arestes per deixar de ser connex
1 18/2 = 9 9−8=1
3 28/2 = 14 14 − 8 = 6
5 38/2 = 19 19 − 8 = 11
(c) Per a x = 1, el següent graf G1 té com a seqüència de graus 3, 3, 2, 2, 2, 2, 1, 1, 1, 1:

5
05.569 · Grafs i Complexitat · PAC1
2019-2020-Sem. 1 · Grau en Enginyeria Informàtica
Estudis d’Informàtica, Multimèdia i Telecomunicació

5 9

2 6 10

1 3 7

4 8

Aquest graf és clarament bipartit, per exemple, considerant la partició V1 = {1, 5, 6, 7, 8} i
V2 = {2, 3, 4, 9, 10}; i és un arbre, ja que entre qualsevol parella de vèrtexs hi ha un únic camı́.
El següent graf G2 :

8 2 6

7 10 1 3

9 4

té la mateixa seqüència de graus, però clarament no és connex. Els dos grafs G1 i G2 no són
isomorfs, ja que un és connex i l’altre no, per tant no poden conservar les adjacències.
(d) Els recorreguts BFS i DFS del graf G1 són els següents:
• BFS: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
• DFS: [1, 2, 5, 9, 6, 10, 3, 7, 4, 8].

4. (Valoració d’un 30% = 5% + 10% + 10% + 5%)


Considerem un graf G amb vèrtexs V = {a, b, c, d, e, f }. El cost de l’aresta entre dos vèrtexs
ve donat per les següents regles:

• Si són vèrtexs corresponents a lletres consecutives a l’abecedari, aleshores el cost és 1;


• si no, el cost és 2 entre dues vocals, 4 entre vocal i consonant, i no existeix aresta en la
resta de casos.

(a) Dibuixeu el graf G.

6
05.569 · Grafs i Complexitat · PAC1
2019-2020-Sem. 1 · Grau en Enginyeria Informàtica
Estudis d’Informàtica, Multimèdia i Telecomunicació

(b) Fent servir l’algorisme de Dijkstra, digueu quin és el vèrtex o vèrtexs que es troben a
major distància del vèrtex a. Per a cadascun d’aquests vèrtexs, doneu el camı́ de cost
mı́nim des del vèrtex a.
(c) Doneu les matrius obtingudes aplicant l’algorisme de Floyd. Quin és el diàmetre de G?
Quins són els vèrtexs que estan a distància el valor del diàmetre?
(d) Les distàncies obtingudes a l’apartat (b) fent servir Dijkstra es podrien obtenir aplicant
l’algorisme de Floyd?

Justifiqueu totes les respostes.

Solució:
(a) El graf G és

b
1
c

1 1
4
4 d
4 4
a
1
4 2
f 1 e

(b) La taula corresponent a l’aplicació de l’algorisme de Dijkstra és la següent:

a b c d e f
(0,a)∗ (∞,a) (∞,a) (∞,a) (∞,a) (∞,a)
(0,a) (1,a)∗ (4,a) (4,a) (2,a) (4,a)
(0,a) (1,a) (2,b)∗ (4,a) (2,a) (4,a)
(0,a) (1,a) (2,b) (3,c) (2,a)∗ (4,a)
(0,a) (1,a) (2,b) (3,c)∗ (2,a) (3,e)
(0,a) (1,a) (2,b) (3,c) (2,a) (3,e)∗

Els vèrtexs més allunyats al vèrtex a són els vèrtexs d i f . Tots dos es troben a distància 3. El
camı́ de a a d és {a, b, c, d} i el camı́ de a a f és {a, e, f }.

7
05.569 · Grafs i Complexitat · PAC1
2019-2020-Sem. 1 · Grau en Enginyeria Informàtica
Estudis d’Informàtica, Multimèdia i Telecomunicació

(c) Les matrius de l’algorisme de Floyd són les següents:


   
0 1 4 4 2 4 0 1 4 4 2 4

 0 1 ∞ 4 ∞   
 0 1 5 3 5 

0
 0 1 4 ∞   , (d1i,j ) = 
 0 1 4 8 
(di,j ) =  ,

 0 1 ∞  

 0 1 8 

 0 1   0 1 
0 0
   
0 1 2 4 2 4 0 1 2 3 2 4

 0 1 5 3 5 


 0 1 2 3 5 

0 1 4 6 0 1 4 6
(d2i,j ) =  (d3i,j ) = 
   
, ,

 0 1 8 


 0 1 7 

 0 1   0 1 
0 0
   
0 1 2 3 2 4 0 1 2 3 2 3

 0 1 2 3 5 


 0 1 2 3 4 

0 1 2 6 0 1 2 3
(d4i,j ) (d5i,j )
   
= , = ,

 0 1 7 


 0 1 2 

 0 1   0 1 
0 0
(d6i,j ) = (d5i,j ).
El diàmetre del graf és 4. Els vèrtex a distància màxima 4 són b i f .
(d) Sı́, es troben a la fila 1 de la matriu d6 . Concretament, les distàncies de a a d i f es troben en
d61,4 = 3 i d61,6 = 3, respectivament.

8
05.569 · Grafs i Complexitat · PAC1
2019-2020-Sem. 1 · Grau en Enginyeria Informàtica
Estudis d’Informàtica, Multimèdia i Telecomunicació

Recursos

Recursos Bàsics
• Mòdul didàctic 1. Conceptes previs: funcions i algorismes
• Mòdul didàctic 2. Fonaments de grafs
• Mòdul didàctic 3. Recorreguts i connectivitat
• Col.lecció de problemes

Recursos Complementaris
• PACs i exàmens de semestres anteriors
• Programari per a l’estudi d’algorismes sobre grafs
• Enllaç: Applets interactius sobre algorismes de grafs

Criteris d’avaluació
• La PAC s’ha de resoldre de forma individual.
• És necessari justificar la resposta a cadascun dels apartats. Es valorarà tant la correctesa de
la resposta com la justificació donada.
• En els apartats on calgui aplicar algun algorisme, es valorarà la tria de l’algorisme apropiat,
els passos intermedis, el resultat final i les conclusions que se’n derivin.

Format i data de lliurament

Cal lliurar un únic document PDF amb les respostes a tots els exercicis. El nom del fitxer ha
de ser: PAC1 Cognom1Cognom2Nom.pdf.

Aquest document s’ha de lliurar a l’espai de Lliurament i Registre d’AC de l’aula abans de
les 23:59 del dia 24/10/2019. No s’acceptaran lliuraments fora de termini.

You might also like