You are on page 1of 24

Àlgebra Lineal i Matemàtica Discreta

Eix de Matemàtica Discreta


Apunts 2015–2016

PRIMERA SESSIÓ

1 Definicions bàsiques
Definició 1.1. Un graf G = (V, E) esta constituı̈t per un conjunt no buit V , els elements del qual
anomenem vèrtexs (o també nodes) i un conjunt E de branques (o arestes) on una branca és un
conjunt de dos vèrtexs.

A no ser que diguem el contrari no admetem bucles (branques d’un node a un mateix) ni varies
branques entre el mateix parell de vèrtexs.

Definició 1.2. Sigui G = (V, E) un graf i siguin x, y nodes de G. Els nodes x i y són adjacents si
existeix una branca entre ells, és a dir, si e = {x, y} ∈ E. En aquest cas també diem que la branca
e es incident amb els vèrtexs x i y, que la branca e connecta x amb y, i que x i y són extrems de
la branca e.

Definició 1.3. Sigui G = (V, E) un graf i sigui x un node de G. El grau de x, que denotarem
grau(x), és el número de nodes adjacents a x.

Definició 1.4. Un graf G = (V, E) és bipartit si V es pot dividir en dos conjunts X, Y de tal
manera que tota branca té un extrem a X i l’altre a Y . En aquest cas diem que (X, Y ) és una
bipartició de G.

Lema 1.5. Sigui G un graf bipartit amb e branques i sigui (X, Y ) una bipartició de G. Aleshores
X X
grau(x) = grau(y) = e
x∈X y∈Y

Demostració. Quan sumem els graus dels vèrtexs de X cada branca es conta un cop. El mateix
raonament s’aplica quan sumem els graus dels vèrtexs de Y .

Lema 1.6. (Principi de les mans encaixades) En tot graf G = (V, E) amb e branques:
X
grau(x) = 2e
x∈V

Demostració. Al sumar els graus dels vèrtexs, cada branca {x, y} contribueix en una unitat al
grau de x i en una unitat al grau de y.

1
2 Circuits Eulerians
Definició 2.1. Un passeig en un graf G es una seqüència no buida de vèrtexs (on permetem
repeticions)
x1 , x2 , . . . , xk
tal que xi i xi+1 són adjacents per tot i ∈ {1, . . . , k − 1}. Direm que un passeig creua una branca
e si e = {xi , xi+1 } per algun i ∈ {1, . . . , k − 1}. La longitud del passeig és k − 1. Si, a més, tots els
vèrtexs són diferents l’anomenem un camı́.

Observació 2.2. Si existeix un passeig de x a y (és a dir, que comença a x i acaba a y) aleshores
també existeix un camı́ de x a y

Demostració. Sigui x1 , x2 , . . . , xk un passeig de x a y i suposem que xi = xj (i 6= j). Aleshores si


eliminem els vèrtexs xi+1 , xi+2 , . . . , xj obtenim un nou passeig

x1 , . . . , xi−1 , xi , xj+1 , . . . , xk

que conté una repetició menys. Iterant aquest procés tantes vegades com sigui necessari eliminarem
tots els vèrtexs repetits.

Definició 2.3. Un passeig x1 , . . . , xk és tancat si x1 = xk . Si, a més, no creua dues vegades la
mateixa branca i x1 , . . . , xk−1 és un camı́ aleshores és un cicle.

Observació 2.4. Si en un graf G tots els nodes tenen grau 2 o superior aleshores segur que hi ha
un cicle.

Demostració. Sigui x1 , . . . , xk un camı́ de G de longitud màxima. Com xk té grau ≥ 2 aleshores


xk és adjacent a un node x diferent de xk−1 . La única raó per la que no podem estendre el camı́
afegint x al final és perquè x = xi per algun i ∈ {1, . . . , k − 2}. Per tant xi , xi+1 , . . . , xk , xi és un
cicle.

Definició 2.5. Un graf és connex si hi ha un camı́ entre tot parell dels seus vèrtexs.

Definició 2.6. Sigui G = (V, E) un graf. Els nodes de V és poden dividir de manera única en
subconjunts V1 , . . . , Vr de tal manera que tot parell de nodes estan connectats per un camı́ si i
nomes si pertanyen al mateix subconjunt. A cadascun dels subconjunts V1 , . . . , Vr l’anomenem
component connex de G.

De vegades serem una mica informals i també anomenarem components connex d’un graf G
a cadascun dels subgrafs de G que s’obté si ens quedem amb els nodes d’un component connex i
eliminem la resta.
Observeu que un graf és connex si i només si té només un component connex.

Definició 2.7. Un circuit eulerià de G és un passeig tancat que creua exactament una vegada
cada branca de G.

Definició 2.8. Un graf H és un subgraf de G si H s’obté eliminant vèrtexs i branques de G.

2
SEGONA SESSIÓ

Teorema 2.9. (d’Euler) Un graf connex G té un circuit eulerià si i només si tots els seus nodes
tenen grau parell.

Demostració. (⇒) Sigui c = x1 , . . . , xk , x1 un circuit eulerià i sigui x un vèrtex qualsevol. Podem


calcular grau(x) sumant el número de vegades que el circuit c creua una branca incident a x. Dos
casos:

• x 6= x1 . Cada cop que el circuit passa a través de x, entra per una branca incident a x i
surt per una branca incident a x. Per tant, contribueix en valor 2 a aquesta suma. Per tant
quan sumem 2 un número de vegades obtindrem necessàriament un número parell.

• x = x1 . En adició a la suma del punt anterior, que sabem es parell, ara cal comptar també
la primera branca (que surt de x1 ) i la darrera branca (que arriba a x1 ) del circuit. Al sumar
2 a un número parell obtenim novament un número parell.

(⇐) Inducció en el nombre de branques de G, que anomenarem m:

• m = 0 : G esta constituı̈t per un sol node aı̈llat, que clarament admet un circuit eulerià.

• m > 0 : Suposem ara que l’enunciat és cert per a tots els grafs amb un nombre de branques
inferior a m (hipòtesi d’inducció). Com que G és connex i m > 0 el grau de tot vèrtex ha de
ser diferent de zero i, per tant, ha de ser igual o superior a 2. Per l’observació 2.4, G conté
un passeig tancat. Ens quedem, de tots el passeigs tancats de G, amb el que és més llarg
d’entre tots els que no repeteixen cap branca, que anomenarem c.
Demostrarem per reducció a l’absurd que c és un circuit eulerià. Suposem que no ho és.
Anomenem G−c al subgraf de G que s’obté quan eliminem totes les branques de c. Observem
que tots els nodes de G − c tenen grau parell ja que per tot vèrtex de G, hem eliminat un
número parell de branques incidents a ell. Sigui X un component connex de G − c que
contingui com a mı́nim una branca. Sobre X podem deduir el següent:

– X té algun node en comú amb c, ja que, altrament G no seria connex. Anomenarem x
a aquest element en comú.
– Com que X és connex i tots els seus vèrtexs tenen grau parell, aleshores, per hipòtesi
d’inducció, X té un circuit eulerià d que, podem suposar, comença al vèrtex x.

Veurem que es pot obtenir un passeig tancat c0 més llarg que c (obtenint per tant una
contradicció). El passeig c0 s’inicia tal com c però tant aviat com arriba al vèrtex x deixa
el passeig c per seguir el passeig d fins que torna de nou al vèrtex x. Un cop ha tornat al
vèrtex x aleshores reprèn el passeig c fins al final.

Encara que no ho demostrarem, el Teorema d’Euler és cert també si permetem que G tingui
arestes múltiples o si té bucles (quan un vèrtex té un bucle, per definició, aquest contribueix en
dos unitats al grau).

3
3 Grafs dirigits
Definició 3.1. Un graf dirigit G = (V, E) esta constituı̈t per un conjunt no buit V , els elements
del qual anomenem vèrtexs (o també nodes) i un conjunt E de branques (o arestes) on una branca
és un parell ordenat de vèrtexs. Si e = (x, y) és una branca de E, direm que x és el vèrtex inicial
de e i que y és el vèrtex final de e. També direm que la branca e surt del vèrtex x i arriba al
vèrtex y.

A no ser que diguem el contrari, no admetem bucles (branques d’un node a un mateix) ni
múltiples branques amb el mateix vèrtex inicial i final.

Definició 3.2. Un passeig en un graf dirigit G = (V, E) és una seqüencia no buida de vèrtexs (on
permetem repeticions)
x1 , x2 , . . . , xk
tal que (xi , xi+1 ) ∈ E per tot i ∈ {1, . . . , k − 1}. Direm que un passeig creua una branca e si
e = (xi , xi+1 ) per algun i ∈ {1, . . . , k − 1}.

Els conceptes de camı́, passeig tancat i cicle en grafs dirigits es defineixen de manera anàloga
a com ho hem fet amb els grafs no dirigits.

Definició 3.3. Sigui G = (V, E) un graf dirigit.

• Direm que G és dèbilment connex si el graf no dirigit que s’obté quan eliminem l’orientació
de les branques és connex.

• Direm que G és fortament connex si per tot x, y ∈ V existeix un camı́ que comença a x i
acaba a y.

4 Grafs planars
Definició 4.1. Un graf és planar si es pot dibuixar (en el pla) sense que es creuin les seves
branques. A tal dibuix se l’anomena representació plana del graf.

Definició 4.2. Per tot n ≥ 1, Kn es el graf amb n vèrtexs en el que tot parell d’ells són adjacents.

Tota representació plana d’un graf divideix el pla en regions (o cares) incloent la cara externa.
Formalment,

Definició 4.3. Una regió d’una representació plana d’un graf es un conjunt de punts del pla, R,
tal que: (1) es pot anar d’un punt qualsevol a l’altre sense creuar cap de les branques del graf, i
(2) no es pot anar de R a cap punt fora de R sense creuar cap branca.

Teorema 4.4. (Fórmula d’Euler) En tota representació plana d’un graf connex G

r =e−v+2

on r és el número de regions, e és el número de branques i v és el número de vèrtexs.

Demostració. Es demostra per inducció en e.

4
• Si e = 0 aleshores G està constituı̈t per un node aı̈llat. En aquest cas tenim r = 1, e = 0 i
v = 1, i, per tant, la formula es verifica.

• (Hipòtesi d’inducció) Suposem que és cert per tots el grafs que tenen un número de branques
inferior a e. Tenim dos casos:

– G té un vèrtex x de grau 1. Sigui G − x el nou graf obtingut quan eliminem x i la


branca incident a x. El graf G − x te e − 1 branques, v − 1 vèrtexs i r regions (això
darrer es degut a que hem eliminat una branca on un dels seus extrems té grau 1). Per
H.I tenim r = (e − 1) − (v − 1) + 2. Operant obtenim r = e − v + 2.
– Tots els vèrtexs de G tenen grau 2 o superior. Segons l’Observació 2.4, G conté un
cicle. Sigui G − b el graf que s’obté quan eliminem una branca qualsevol b del cicle.
El graf G − b és connex (podeu veure per què?), té e − 1 branques, v vèrtexs i r − 1
regions (això darrer es degut a que hem eliminat una branca d’un cicle). Per H.I tenim
r − 1 = (e − 1) − v + 2. Operant obtenim r = e − v + 2.

5
TERCERA SESSIÓ

Teorema 4.5. Si G és un graf planar amb e branques i v ≥ 3 vèrtexs aleshores e ≤ 3v − 6


Demostració. Suposem primer que G és connex. Sabem que el número de regions r d’una repre-
sentació plana satisfà r = e − v + 2. Definim la matriu ’branca-regió’ M amb e files i r columnes
on: 
 2 si la branca i és completament dins de la regió j
Mi,j = 1 si la branca i és frontera de la regió j
0 altrament

Sigui x la suma de tots els nombres a la matriu M . Cada branca de G o bé està dins d’una regió
o bé és la frontera de una o dues regions i, per tant, cada fila de M suma 2. Per tant x = 2e
Per altra banda, cada columna suma al menys 3. Efectivament, si hi ha més d’una regió
aleshores cadascuna d’elles ha d’estar bordejada per com a mı́nim 3 branques. Si només hi ha
una regió aleshores, si v ≥ 3 i el graf és connex aleshores aquesta regió conté com a mı́nim dues
branques completament dins de la regió i, per tant, la suma de la columna és, com a mı́nim 4.
Per tant, 3r ≤ x. Ficant-ho tot junt tenim 3r ≤ x = 2e. Substituint r per e − v + 2 obtenim:

3(e − v + 2) ≤ 2e
3e − 3v + 6 ≤ 2e
e ≤ 3v − 6

Si G no és connex afegim branques fins a obtenir un graf planar connex G0 . Si e0 és el número de
branques de G0 tenim e ≤ e0 ≤ 3v − 6.
Corol.lari 4.6. K5 no és planar.
Demostració. Per a K5 tenim e = 10 i v = 5. Aleshores 10 > 3 · 5 − 6 i, per tant, no pot ser planar
segons el Teorema 4.5
Definició 4.7. Recordeu que un graf G = (V, E) és bipartit si V es pot dividir en dos conjunts
X, Y de tal manera que tot vèrtex té un extrem a X i l’altre a Y . Si, a més, hi ha una branca
connectant tot vèrtex de X amb tot vèrtex de Y aleshores direm que G és bipartit complet. Per
tot m, n ≥ 1, anomenarem Km,n el graf bipartit complet que té m elements a X i n elements a Y .
Lema 4.8. K3,3 no es planar
Demostració. Per reducció a l’absurd. Si K3,3 fos planar, el número de regions r, d’una hipotètica
representació planar seria r = 9 − 6 + 2 = 5. Sigui M la matriu ’branca-regió’ de K3,3 tal com
es defineix a la demostració del Teorema 4.5 i sigui x el número total de 1’s que conté. Tal com
havı́em vist x ≤ 2e = 18. Tota regió de K3,3 té, com a mı́nim, 4 branques, ja que no podem
aconseguir un cicle en K3,3 amb menys. Per tant, tenim 20 = 4r ≤ x. Obtenim una contradicció
ja que cap valor de x satisfà 20 ≤ x ≤ 18.
Definició 4.9. Una subdivisió d’un graf G és tot graf que s’obté quan afegim zero, un o més nodes
al mig de les branques de G.
Teorema 4.10. (Kuratowski) Un graf és planar si i només si no conté cap subdivisió de K5 o
K3,3 .
Demostració. No es dóna.

6
5 Arbres
Definició 5.1. Un graf és un arbre si és connex i no té cap cicle.

Lema 5.2. Si un arbre té dos o més vèrtexs aleshores té com a mı́nim un vèrtex de grau 1.

Demostració. Sigui T un arbre. Hem vist a l’observació 2.4 que si tots els vèrtexs tinguessin grau
2 o superior aleshores T tendria un cicle. Per tant existeix algun vèrtex x amb grau(x) ≤ 1. Com
T és connex i té com a mı́nim dos vèrtexs, grau(x) ≥ 1.

Lema 5.3. Un arbre T amb n vèrtexs té n − 1 branques.

Demostració. Per inducció en el n.

• n = 1. Aleshores T està constituı̈t per un únic node aı̈llat i el número de branques és 0.

• (Hipòtesi d’inducció) Suposem que es cert per tot arbre amb n − 1 nodes. Sigui x un node
de grau 1 de T i sigui T − x el graf que s’obté quan eliminem x i la seva branca incident.
T − x és també un arbre i com té n − 1 nodes aleshores per hipòtesi d’inducció té n − 2
branques. T té per tant n − 2 + 1 = n − 1 branques (les n − 2 de T − x i la que hem eliminat
en el procés de construir T − x).

Si p és un passeig x1 , . . . , xk anomenarem p−1 al passeig xk , xk−1 , . . . , x1 que s’obté quan creuem
p en ordre invers. Si q és un passeig xk , xk+1 , . . . , xm tal que el vèrtex inicial de q és igual al vèrtex
final de p aleshores anomenarem p · q al passeig x1 , . . . , xk , xk+1 , . . . , xm que s’obté creuar p seguit
de q.

Lema 5.4. En un arbre tot parell de vèrtexs està connectat per un camı́ únic.

Demostració. Com tot arbre és connex aleshores tot parell de nodes estan connectats per, com a
mı́nim, un camı́. Ara demostrarem, per contradicció, que no pot haver-hi dos camins diferents p i
q amb els mateixos vèrtex inicial i final. Considerem dos casos:

• p i q no tenen cap altre vèrtex en comú a part de node inicial i final. Aleshores p · q −1 és un
cicle, lo qual es impossible.

• Si p i q tenen algun element en comú z a part del node inicial i final. Aleshores podem
escriure p = p1 · p2 i q = q1 · q2 on z és el vèrtex final de p1 i de q1 (i per tant també el vèrtex
inicial de p2 i q2 ). Com p i q són diferents aleshores, o bé p1 i q1 són diferents o bé p2 i q2 són
diferents. Per tant podem trobar un parell de camins diferents amb els mateixos extrems que
tenen com a mı́nim un element menys en comú. Continuant de la mateixa manera podrem
arribar a trobar un parell de camins que no tenen cap altre element en comú apart dels
extrems i aplicar el cas anterior.

7
QUARTA SESSIÓ

5.1 Arbres generadors


Definició 5.5. Sigui G un graf. Un arbre generador de G és un subgraf de G que és un arbre i
conté tots els vèrtexs de G.
Definició 5.6. Un graf ponderat és un graf on cada branca e té associat un cost ce (ce pot ser un
número real encara que generalment treballarem només amb números enters no negatius).
Els grafs ponderats reben altres noms com grafs amb costos, grafs amb pesos o grafs amb
capacitats.
Definició 5.7. Un arbre generador de G és mı́nim si no n’hi ha un altre on la suma dels costos
de les branques sigui més petit.
L’algorisme de Kruskal (Algorisme 1) calcula, donat un graf ponderat G, un arbre generador
mı́nim.
Algorithm 1 Kruskal
entrada: un graf ponderat G amb n nodes
T és un arbre que inicialment és buit
for i := 1 to n − 1 do
escull la branca e de menor cost d’entre totes les que, en afegir-les a T , no produeixen cap
cicle (si n’hi ha varies de menor cost escull-ne una qualsevol d’elles)
afegeix e a T
end for
retorna T {T és un arbre generador mı́nim de G}

Lema 5.8. L’arbre generador T retornat per l’algorisme de Kruskal amb entrada G és mı́nim.
Demostració. Encara que l’enunciat és cert per tot graf ponderat ho demostrarem només en el cas
que els costos de G són tots diferents. Siguin e1 , . . . , en−1 les branques de T ordenades de manera
creixent segons cost (o, equivalentment, en l’ordre en que l’algorisme de Kruskal les ha afegit a
T ). Demostrarem l’enunciat per contradicció. Suposem que existeix un arbre generador mı́nim
T ∗ diferent de T . Sigui ek la branca més petita de totes les que estan a T però no a T ∗ . Si afegim
ek a T ∗ obtenim un cicle c. Entre les branques del cicle c hi trobarem segur una branca e∗ que no
pertany a T (ja que T no conté cap cicle). Afirmem que
cek ≤ ce∗
Vegem-ho. A la iteració k, l’algorisme de Kruskal escolleix ek com la branca de menor cost entre
totes les que no creen cap cicle en afegir-les a {e1 , . . . , ek−1 }. Si l’algorisme escolleix ek enlloc de
e∗ això es degut a que o bé cek ≤ ce∗ o bé a que el subgraf amb branques {e1 , . . . , ek−1 , e∗ } conté
un cicle, però això darrer és impossible ja que, per la minimalitat de k, totes aquestes branques
es troben a T ∗ .
Finalment, sigui T ∗ − e∗ + ek el resultat de substituir la branca e∗ per la branca ek a T ∗ .
T − e∗ + ek és un arbre generador (podeu veure perquè?) que té cost inferior a T ∗ , contradient

la suposició que T ∗ és mı́nim.


Observeu que la demostració anterior implica que si totes les branques d’un graf tenen costos
diferents aleshores aquest té un arbre generador mı́nim únic.

8
6 Arbres arrelats
Definició 6.1. Un arbre arrelat és un arbre on un node s’ha designat com l’arrel i totes les
branques s’han orientat, obtenint un graf dirigit, en direcció oposada a l’arrel.

Definició 6.2. Sigui T un arbre arrelat. Si (x, y) és una branca de T direm que x és el pare de
y i que y és el fill de x. Dos vèrtexs amb el mateix pare són germans. Els ascendents d’un node
y són tots els nodes que hi ha en l’únic camı́ que connecta l’arrel amb y amb l’excepció del node
y. Els descendents d’un node x són tots els nodes que tenen a x com ascendent. Un vèrtex x de
T és una fulla si no té cap fill, altrament direm que x és un vèrtex intern. El nivell d’un vèrtex x,
que denotarem nivellT (x) (o simplement nivell(x) si l’arbre T és clar pel context) és la longitud
del camı́ únic que va de l’arrel a x. La profunditat d’un arbre és el nivell del vèrtex amb nivell
més gran.

Definició 6.3. Un arbre arrelat és m-ari si cada vèrtex té com a molt m fills. Els arbres 2-aris
se’ls anomena generalment binaris.

Definició 6.4. Sigui T un arbre arrelat i x un node de T . El subarbre de T a x, que denotarem


Tx , és el subgraf de T que s’obté si eliminem de T tots els nodes que no són ni x ni cap dels seus
descendents. Tx és, per tant, un arbre arrelat i la seva arrel és x.

Lema 6.5. Tot arbre T m-ari amb profunditat h té com a molt mh fulles.

Demostració. Per inducció en la profunditat h.

• h = 0. En aquest cas T està constituı̈t per una única fulla i es verifica 1 ≤ m0 .

• (Hipòtesi d’inducció) Suposem que es cert per tot arbre amb profunditat ≤ h − 1. Siguin
x1 , . . . , xk els fills de l’arrel. El número total de fulles ` de T és la suma `1 + · · · + `k on `i
és el número de fulles de Txi . Com Txi té profunditat ≤ h − 1 tenim `i ≤ mh−1 . Per tant,
` ≤ k · mh−1 ≤ mh on l’última desigualtat se segueix de k ≤ m.

Si x és un número real, dxe és el numero sencer n més petit tal que x ≤ n. Com a conseqüència
directa del lema anterior tenim:

Lema 6.6. Tot arbre T m-ari amb ` fulles té, com a mı́nim, profunditat dlogm `e.

Demostració. Si anomenem h a la profunditat de l’arbre aleshores, segons el Lema 6.5, ` ≤ mh .


Aplicant logaritme a totes bandes obtenim logm ` ≤ h. Com h és un número sencer, dlogm `e ≤
h.

9
CINQUENA SESSIÓ

6.1 Recorreguts en arbres


Definició 6.7. Un arbre arrelat binari ordenat és un arbre arrelat binari on, addicionalment, els
fills d’un node estan ordenats de manera que podem distingir entre fill esquerre i fill dret. Si un
node té un únic fill aleshores aquest pot ser o bé fill esquerre o bé fill dret.

Un algorisme de cerca o recorregut en grafs és un algorisme que, donat un graf G i un vèrtex
d’inici r visita tots els nodes de G accessibles des de r d’una manera sistemàtica i sense repetir-ne
cap. Deixem per més endavant recorreguts en grafs. En aquesta secció presentem tres algorismes
per a recórrer arbres arrelats binaris ordenats: Preordre (algorisme 2), Postordre (algorisme 3) i
Inordre (algorisme 4). En tots ells el vèrtex d’inici és sempre l’arrel.

Algorithm 2 Preordre
entrada: un arbre T amb arrel r
visita(r)
if r té fill esquerre e then
Preordre(Te )
end if
if r té fill dret d then
Preordre(Td )
end if

Algorithm 3 Postordre
entrada: un arbre T amb arrel r
if r té fill esquerre e then
Postordre(Te )
end if
if r té fill dret d then
Postordre(Td )
end if
visita(r)

Algorithm 4 Inordre
entrada: un arbre T amb arrel r
if r té fill esquerre e then
Inordre(Te )
end if
visita(r)
if r té fill dret d then
Inordre(Td )
end if

10
7 Recorregut (cerques) en grafs
En aquesta secció presentarem algorismes de cerca en grafs. Encara que, per simplicitat, només
tractarem amb grafs no dirigits molts dels conceptes i algorismes vistos es generalitzen de manera
immediata per a grafs dirigits.

7.1 Cerca en amplada (Breath-First-Search)


L’algorisme BFS (algorisme 5) recorre en amplada un graf G començant a un node r que també
es donat per entrada.

Algorithm 5 BFS
entrada: un graf G i un vèrtex r
T := arbre que inicialment només conté r
marca r com ’pendent’
while quedin nodes pendents do
escull el node pendent més antic, que anomenem x
visita(x) i desmarca’l com pendent
for tot node y adjacent a x do
if y no és pendent ni visitat then
marca y com pendent
afegeix y i la branca {x, y} a T
end if
end for
end while
retorna T

A l’arbre T retornat per l’algorisme BFS amb entrada (G, r) l’anomenem arbre BFS de (G, r).
Si G és connex aleshores T és un arbre generador de G. Si G no és connex, aleshores T és un
arbre generador del component connex de r.
Lema 7.1. Siguin x, y vèrtexs qualsevol de T i siguin i, j respectivament els seus nivells. Si i < j
aleshores x es marcat com pendent abans que y (i per tant, també es visitat abans que y).
Demostració. Per inducció en i.
• i = 0. En aquest cas x = r i per tant x és marcat com ’pendent’ en primer lloc.
• (i − 1 ⇒ i). Sigui x0 el pare de x i sigui y 0 el pare de y. Aleshores nivell(x0 ) = i − 1 i
nivell(y 0 ) = j − 1. Per hipòtesi d’inducció x0 es visitat abans que y 0 . Per tant x és marcat
com pendent abans que y.

7.1.1 Una aplicació de BFS. Trobant camins mı́nims en un graf.


Definició 7.2. Sigui G un graf dirigit o no dirigit i siguin x, y nodes (no necessàriament diferents)
de G. La distancia de x a y, que denotarem distG (x, y) (o simplement dist(x, y) si el graf G és
clar pel context) és la longitud del camı́ més curt (és a dir, amb longitud mı́nima) que comença a
x i acaba a y.

11
Lema 7.3. Sigui G un graf connex i sigui T un arbre BFS de (G, r) arrelat a r. Aleshores per
tot vèrtex x
distG (r, x) = nivell(x)

Demostració. Per inducció en k = distG (r, x):

• k = 0. En aquest cas x = r i, per tant, nivell(x) = 0.

• (k − 1 ⇒ k). Sigui p := x0 , x1 , . . . , xk un camı́ mı́nim de r a x (per tant x0 = r i xk = x).


Es segueix que distG (x0 , xk−1 ) ≤ k − 1 ja que x0 , x1 , . . . , xk−1 és un camı́ de r a xk−1 . Per
hipòtesi d’inducció nivell(xk−1 ) ≤ k − 1. En el moment de visitar xk−1 marcarem xk com a
pendent a no ser que xk ja hagi estat marcat abans com a pendent. Per tant, el pare de xk
(a T ) és o bé xk−1 o bé un node que ha estat visitat abans. Aleshores, pel Lema 7.1 el pare
ha de ser un node de nivell k − 1 o inferior. Per tant el nivell de xk és k o inferior. També
tenim nivell(x) ≥ k ja que, altrament, hi hauria un camı́ a T (i per tant a G) de longitud
inferior a k, i això és impossible. Per tant nivell(x) = k.

7.2 Cerca en profunditat (Depth-First-Search)


L’algorisme DFS (algorisme 6) recorre en profunditat un graf G començant a un node r que també
es donat per entrada.

Algorithm 6 DFS
entrada: un graf G i un vèrtex r
T := arbre que inicialment només conté r
visita(r)
marquem r com node ’actiu’ {En tot moment només hi pot haver un node marcat com ’actiu’}
while hagi un node actiu do
sigui x el node marcat com ’actiu’
if x és adjacent a algun node encara no visitat then
selecciona un node qualsevol y no visitat adjacent a x
afegeix y i la branca {x, y} a T
visita(y)
el node marcat com ’actiu’ passa a ser y enlloc de x
else
el node x deixa de ser ’actiu’ {Diem que l’algorisme fa backtracking des del node x}
if x 6= r then
el pare de x a l’arbre T passa a ser el node ’actiu’
end if
end if
end while
retorna T

A l’arbre T retornat per l’algorisme DFS amb entrada (G, r) l’anomenem arbre DFS de (G, r).
Si G és connex aleshores T és un arbre generador de G. Si G no és connex, aleshores T és un
arbre generador del component connex de r.

12
8 Grafs dirigits acı́clics
Definició 8.1. Sigui G un graf dirigit. Direm que una ordenació x1 , . . . , xn dels vèrtexs de G és
topològica si per tot branca (xi , xj ) de G, i < j.

Observació 8.2. Si un graf dirigit té un cicle aleshores no té cap ordenació topològica.

Definició 8.3. Un graf dirigit acı́clic (DAG1 ) és un graf dirigit sense cicles.

Lema 8.4. Tot DAG G = (V, E) conté un node del que no surt cap branca.

Demostració. Sigui x1 , . . . , xk un camı́ de G de longitud màxima. La única raó per la que no


podem estendre el camı́ és, o bé, perquè xk té grau de sortida zero, o bé, perquè totes les branques
que surten de xk acaben en un altre vèrtex del camı́, però això darrer és impossible ja que G no
conté cicles. Per tant xk té grau de sortida 0.

Teorema 8.5. Un graf G és un DAG si i només si té una ordenació topològica.

Demostració. Ja hem vist (observació 8.2) que si un graf té una ordenació topològica aleshores és
un DAG. Demostrarem l’invers per inducció en el número n de nodes de G.

• n = 1. Aleshores G està constituı̈t per un únic node aı̈llat i, per tant, té una ordenació
topològica.

• (n − 1 ⇒ n). Per el Lema 8.4, G conté un node x del que no surt cap branca. Sigui G − x
el subgraf que s’obté quan eliminem x i totes les branques que arriben a x. Com G − x té
n − 1 nodes, per hipòtesi d’inducció G − x té una ordenació topològica. Si afegim x al final
de l’ordenació topològica de G − x obtenim una ordenació topològica de G.

1
De L’anglès ‘Directed Acyclic Graph’

13
SISENA SESSIÓ

9 Camins mı́nims sobre grafs ponderats


En aquesta secció tots els grafs són no dirigits i ponderats (amb costos). Es essencial assumir que
tots els costos són ≥ 0.

Definició 9.1. En un graf ponderat la longitud d’un camı́ p := x1 , x2 , . . . , xk és defineix com la
suma dels costos de les branques que creua. Formalment la longitud de p és
X
c{xi ,xi+1 }
1≤i<k

La distancia entre dos nodes x, y, que denotarem distG (x, y) és la longitud del camı́ de x a y amb
menor longitud. Si no hi ha cap camı́ de x a y aleshores distG (x, y) = ∞.

L’algorisme de Dijsktra (algorisme 7) calcula donat un graf G i un node r, la distància de r a


cadascun dels nodes de G.

Algorithm 7 Dijkstra
entrada: un graf G = (V, E) i un vèrtex r
assigna temporalment d(r) = 0 i d(x) = ∞ per tot altre x ∈ V
marca tots els nodes com ’no permanents’
while quedi algun node no permanent x amb d(x) 6= ∞ do
escull el node no permanent x amb d(x) més petit
marca x com permanent
for tot vèrtex no permanent y adjacent a x do
if d(x) + c{x,y} < d(y) then
d(y) passa a ser d(x) + c{x,y}
end if
end for
end while
{d(x) conté el valor de la distància de r a x per tot node x}

És pot adaptar fàcilment l’algorisme de Dijkstra per a que retornı́ també un camı́ mı́nim de r
a tot node de G. També és fàcil modificar-lo per a que funcioni sobre grafs dirigits.

Lema 9.2. En el moment en el que l’algorisme de Dijkstra marca un node x com permanent

d(x) = distG (r, x)

Demostració. Per inducció en l’ordre en el que x és marcat com permanent.

• x és marcat primer. En aquest cas x = r i d(x) és, correctament, 0.

• (Hipòtesi d’inducció) Anomenem S al conjunt de tots els nodes marcats anteriorment i


suposem que d(x0 ) = distG (r, x0 ) per tot node x0 ∈ S. Demostrarem separadament que
d(x) ≥ distG (r, x) i d(x) ≤ distG (r, x).

14
(d(x) ≥ distG (r, x)) En algun moment el valor de d(x) passa de ser ∞ a d(x0 ) + c{x0 ,x} on
x0 és un node marcat prèviament. Com existeix un camı́ p de r a x0 amb longitud d(x0 )
aleshores en podem trobar un de r a x amb longitud d(x) afegint-hi x al final del camı́ p.
Per tant d(x) ≥ distG (r, x).
(d(x) ≤ distG (r, x)) Sigui p := x1 , . . . , xk un camı́ qualsevol de r a x i sigui xi el darrer
node del camı́ que pertany a S. El cost del subcamı́ x1 , . . . , xi , xi+1 és igual al cost del camı́
x1 , . . . , xi (que, per hipòtesi d’inducció és ≥ d(xi )) més c{xi ,xi+1 } . Ara bé, immediatament
després de marcar xi es revisa (en el bucle for) el valor de d(y) per tot node no permanent
adjacent a xi (entre ells xi+1 ). Per tant, tot just en el moment d’acabar de revisar xi+1 ,
d(xi+1 ) és més petit o igual que d(xi ) + c{xi ,xi+1 } . En el futur, el valor de d(xi ) no pot
canviar ja que xi és permanent i el valor de d(xi+1 ) es queda igual o disminueix. Per tant,
es continuarà complint que d(xi ) + c{xi ,xi+1 } ≥ d(xi+1 ).
Per tant el cost de x1 , . . . , xi+1 és ≥ d(xi+1 ). Se segueix que el cost del camı́ sencer p també
és ≥ d(xi+1 ) ja que tots els costos són positius. Finalment, tenim que d(xi+1 ) ≥ d(x) ja que,
altrament, l’algorisme Dijkstra hauria escollit xi+1 enlloc de x.

10 Coloració de grafs
Definició 10.1. Donat un graf G, una coloració de G s’obté assignant un color a cada node
(permetent repetir el mateix color) de tal manera que nodes adjacents reben colors diferents.
Direm que G és k-colorable (on k > 0 és un número no negatiu) si existeix una coloració de G amb
k colors o menys. El número cromàtic de G, denotat χ(G), és el mı́nim número de colors que fan
falta per colorar-lo.

Podem suposar que els ’colors’ són números naturals {1, 2, . . . , k}.

Lema 10.2. Sigui G un graf. Aleshores les següents afirmacions són equivalents:

1. G és bipartit.

2. G és pot colorar amb 2 colors.

3. G no conté cap cicle de mida senar.

Demostració. (1 ⇒ 2) Sigui (X, Y ) una bipartició de G. Aleshores podem colorar G correctament


assignant color 1 a tots els vèrtexs de X i color 2 a tots els vèrtexs de Y .
(2 ⇒ 3) Per contradicció. Suposem que G és pot colorar amb dos colors i conté un cicle
x1 , . . . , xn , x1 de mida senar. Aleshores els vèrtexs x1 , x3 , x5 , . . . , xn han de rebre el mateix color,
però x1 i xn són adjacents, una contradicció.
(3 ⇒ 1). Demostrarem primer que G no conté cap passeig tancat de mida senar. Ho fem
per contradicció. Suposem que G no conté cap cicle de mida senar però si conté algun passeig
tancat de mida senar. D’entre tots els passeigs de mida senar, n’escollim un x1 , . . . , xn , x1 de mida,
n, mı́nima. Com no és un cicle aleshores existeixen 1 ≤ i < j ≤ n tal que xi = xj . Per tant
xi , xi+1 , . . . , xj i x1 , . . . , xi , xj+1 , . . . , xn , x1 són dos passeigs tancats tals que si sumem la seva mida
obtenim n, que és senar. Per tant un d’ells té mida senar, però això contradiu la minimalitat de
n.

15
Per tant, G és un graf que no conté cap passeig tancat de mida senar. Suposem primer que
G és connex. Sigui x un node qualsevol de G i definim X com el conjunt de tots els nodes que
és troben a distancia parell de x i Y com la resta. Anem a veure que (X, Y ) és una bipartició
de G. Sigui (u, v) una branca qualsevol de G, i siguin u1 , . . . , un i v1 , . . . , vm camins mı́nims de x
a u i v respectivament. Aleshores u1 , . . . , un , vm , . . . , v1 és un passeig tancat. Com la seva mida,
n + m − 1, és parell cal un dels valors n, m sigui parell i l’altre senar. Això és el mateix que dir,
que un dels vèrtexs u, v pertany a X i l’altre a Y . Si G té varies components connexes V1 , . . . , Vm ,
m > 1 aleshores trobem una bipartició (Xi , Yi ), 1 ≤ i ≤ m per cadascuna d’elles i construı̈m la
bipartició (X1 ∪ · · · ∪ Xm , Y1 ∪ · · · ∪ Ym ) de G.

16
SETENA SESSIÓ

L’algorisme voraç per a la coloració (algorisme 8) ens retorna una coloració no necessàriament
òptima.

Algorithm 8 Algorisme voraç per a la coloració


entrada: un graf G = (V, E)
ordena els nodes x1 , . . . , xn
for i := 1 to n do
assigna a xi el mı́nim color d’entre tots els que no han estat assignats prèviament als nodes
adjacents a xi
end for

Lema 10.3. Si tot node d’un graf G té grau ≤ d aleshores χ(G) ≤ d + 1.

Demostració. Sigui x1 , . . . , xn l’ordre escollit per l’algorisme voraç. Demostrarem per inducció en
i que xi es assignat algun color de {1, . . . , d + 1}.

• i = 1. x1 és assignat sempre color 1.

• (Hipòtesi d’inducció). Suposem que és cert per tot vèrtex colorat abans que xi . Com a
molt d nodes adjacents a xi han estat colorats prèviament. Per tant, algun dels colors
{1, 2, . . . , d + 1} estarà disponible per a xi .

Teorema 10.4. (Appel, Haken) Tot graf planar es pot colorar amb 4 colors.

Demostració. No es dóna. La demostració utilitza un ordinador per a comprovar centenars de


casos.

11 Xarxes de flux
Definició 11.1. Una xarxa de flux és un graf dirigit G = (V, E) on cada branca té associada una
capacitat ce ≥ 0 (ce pot ser generalment un número real encara que nosaltres suposarem que és
un número natural) i on hi ha dos nodes distingits: un node font s i un node pou t. A tot node
que no és la font o el pou l’anomenem intern.

A més, suposarem que no arriba cap branca al node font, que no surt cap branca del node pou,
i que tot node pertany a, com a mı́nim, una branca. Cap de les suposicions són essencials però
permeten simplificar alguns arguments.

Definició 11.2. Un flux és una funció f : E → R+ que assigna a cada branca e un número
f (e) ≥ 0. Un flux ha de satisfer les condicions següents:

(i) [Condició de capacitat] Per tota branca e

0 ≤ f (e) ≤ ce

17
(ii) [Condició de conservació] Per tot node intern x

f ent (x) = f sort (x)

on f ent (x) = e arriba a x f (e) és el flux total que arriba a x i f sort (x) = e surt de x f (e) és el
P P
flux total que surt de x.

Definició 11.3. El valor d’un flux f , valor(f ), és defineix com f sort (s) (que, de fet, és igual a
f ent (t)).

11.1 Algorisme de Ford-Fulkerson


Sigui G = (V, E) una xarxa i f un flux. Per tota branca e = (x, y) anomenarem ←

e a la branca
(y, x).

Definició 11.4. Definim el graf residual de G respecte f , que denotem Gf de la manera següent:

• El conjunt de vèrtexs de Gf és el mateix que el de G.

• Per tota branca e de E tal que f (e) < ce incloem la branca e a Gf amb capacitat ce −f (e).
A totes les branques que afegim d’aquesta manera les anomenem branques d’avanç.

• Per tota branca e de E tal que 0 < f (e) incloem la branca ←



e a Gf amb capacitat f (e). A
totes les branques que afegim d’aquesta manera les anomenem branques de retrocés.

A la capacitat de les branques de Gf l’anomenarem capacitat residual per a distingir-la de la


capacitat de les branques de G.

Definició 11.5. Sigui p un camı́ a Gf de s a t. La congestió de p és la capacitat residual més


petita d’entre totes les que creua p.

Definició 11.6. Sigui p un camı́ a Gf i sigui c la seva congestió. L’augmentació de f amb p és el
nou flux que s’obté si modifiquem flux f de la manera següent:

• Per tota branca d’avanç e creuada per p sumem c a f (e)

• Per tota branca de retrocés ←



e creuada per p restem c a f (e).

Lema 11.7. Sigui p un camı́ a Gf i sigui f 0 el resultat d’augmentar f amb p. Aleshores f 0 satisfà
les condicions de capacitat i conservació.

Demostració. Sigui c la congestió de p


(Condició de capacitat). Sigui e una branca de G.

• Si p creua una branca d’avanç e aleshores

0 ≤ f 0 (e) = f (e) + c ≤ f (e) + (c(e) − f (e)) = c(e)

• Si p creua una branca de retrocés ←



e aleshores

0 = f (e) − f (e) ≤ f (e) − c = f 0 (e) ≤ f (e) ≤ c(e)

18
• En tot altre cas el valor del flux que transporta la branca no canvia.

(Condició de conservació). Sigui x un node intern de G. Si x no pertany a p aleshores f ent (x) i


f sort (x) no canvien. Si x pertany a p aleshores s’ha de verificar que el canvi en la quantitat de
flux que entra a x és igual al canvi en la quantitat del flux que surt de x. Hi ha quatre casos a
considerar depenent de si la branca de p que entra a x és d’avanç o retrocés i si la branca de p que
surt de x és d’avanç i retrocés. Ho deixem com exercici.
L’algorisme Ford-Fulkerson (algorisme 9) calcula el flux màxim d’una xarxa.

Algorithm 9 Algorisme Ford-Fulkerson


entrada: una xarxa G = (V, E) amb font s i pou t
f és un flux que inicialment pren valor f (e) = 0 per tota branca e
while hi hagi un camı́ p de s a t al graf residual Gf do
augmenta f amb p
end while
retorna f

Observació 11.8. Si totes les capacitat són números sencers aleshores en tota iteració de l’algo-
risme Ford-Fulkerson el valor del flux i de les capacitats residuals són números sencers. Per tant,
a cada iteració el valor del flux augmenta en, com a mı́nim, una unitat.

Teorema 11.9. El flux retornat per l’algorisme Ford-Fulkerson té valor màxim.

Demostració. No es dóna.

19
VUITENA SESSIÓ

12 Comptatge: cinc casos comuns


12.1 Seqüències
Definició 12.1. Sigui X un conjunt de elements. Una seqüència sobre X és una col.lecció ordenada
d’elements possiblement repetits de X. Escriurem (a1 , a2 , . . . , ak ) per denotar la seqüència en la
que el primer element és a1 , el segon element és a2 i aixı́ successivament. La mida de la seqüència
(a1 , a2 , . . . , ak ) és k.

Lema 12.2. El número de seqüències de mida k sobre un conjunt de n elements és nk .

Demostració. Tenim n possibilitats per el primer element, n possibilitats per al segon element, i
k
aixı́ successivament fins arribar al darrer element. Per tant tenim un total de n · n · · · · · n = nk
z }| {
seqüències de mida k.

12.2 Arranjaments
Definició 12.3. Sigui X un conjunt de elements. Un arranjament sobre X és una col.lecció
ordenada d’elements no repetits de X. Alternativament, un arranjament és una seqüencia sobre
X que no conté elements repetits. Una permutació de X és un arranjament que conté tots els
elements de X.

Recordeu que, per definició, 0! = 1.

Lema 12.4. Per tot 0 ≤ k ≤ n, el número d’arranjaments de mida k sobre un conjunt de n


elements és
n!
n(n − 1) · · · (n − k + 1) =
(n − k)!
Demostració. Fem com a la demostració del Lema 12.2: tenim n possibilitats per al primer element,
(n − 1) possibilitats per al segon element i aixı́ fins a (n − k + 1) possibilitats per al k-èsim
element.

12.3 Subconjunts
Definició 12.5. Sigui X un conjunt de elements. Un subconjunt de X és una col.lecció no ordenada
d’elements no repetits de X. Escriurem {a1 , a2 , . . . , ak } per denotar el subconjunt que conté els
elements a1 , . . . , ak . La mida de un subconjunt és el número d’elements que conté.

Utilitzarem el sı́mbol  
n
k
per a denotar el número de subconjunts de mida k d’un conjunt de n elements. Sovint el sı́mbol
n
k
es pronuncia ”n sobre k” i ens referim a ell com número o coeficient binomial.

Lema 12.6. Per tot 1 ≤ k ≤ n:

20
Figura 1: Triangle de Pascal
n
 n n n n n
n 0 1 2 3 4 5
...
0 1
1 1 1
2 1 2 1
3 1 3 3 1
4 1 4 6 4 1
5 1 5 10 10 5 1
.. .. .. .. .. .. .. ..
. . . . . . . .

n n
 
1. 0
= n
=1
n n
 
2. k
= n−k

n+1 n n
  
3. (Identitat de Pascal) k
= k
+ k−1

Demostració. Propietats (1) i (2) se segueixen directament de la definició. Per veure propietat (3)
suposem que X té n + 1 elements, escollim un element qualsevol x de X i calculem separadament:
(i) el número de subconjunts de mida k que no contenen x i (ii) el número de subconjunts de mida
k que contenen x. Sigui A un subconjunt de mida k de X
(i) Si A no conté x aleshores el podem escollir de nk maneres.


n

(ii) Si A conté x aleshores els k − 1 elements restants de A poden ser escollits de k−1 maneres

Les propietats (1) i (3) permeten calcular els números binomials recursivament. La taula de la
figura 1, coneguda com triangle de Pascal ensenya com fer-ho.
Teorema 12.7. (Teorema binomial) Per tot a, b ∈ R i n ≥ 0:
n  
n
X n k n−k
(a + b) = a b
k=0
k

Demostració. Escriu (a+b)n com (a+b)(a+b) · · · (a+b). Si expandim aquest producte distribuint
hem d’escollir o bé una a o bé una b en cadascun dels n factors (a + b). Per tant cada terme de
l’expressió serà del tipus ak bn−k per algun 0 ≤ k ≤ n. Quantes vegades apareixerà el terme ak bn−k ?
Doncs, tantes com maneres tenim d’escollir k a’s, és a dir nk . Per tant el coeficient de ak bn−k és
n

k
.
Corol.lari 12.8. Per tot n ≥ 0 :
Pn n
 n
1. k=0 k = 2

2. Si, a més, n ≥ 1, nk=0 nk (−1)k = 0


P 

Demostració. La primera equació s’obté substituint a = 1 i b = 1 al Teorema binomial. La segona


s’obté substituint a = 1 i b = −1.

21
Finalment, donem la formula per als números combinatoris.

Lema 12.9. Per tot 0 ≤ k ≤ n:  


n n!
=
k k!(n − k)!
Demostració. Podem obtenir tots els arranjaments de mida k si generem tots els subconjunts de
mida k i, en cada subconjunt, ordenem els seus elements de totes les maneres possibles. Tenim k!
maneres d’ordenar k elements i per tant obtenim
 
n n!
k! =
k (n − k)!

Si dividim totes dues bandes per k! obtenim el resultat.

12.4 Números multinomials


Definició 12.10. Sigui X = {x1 , x2 , . . . , xn } i siguin m1 , m2 , . . . , mn ≥ 0 i sigui m = m1 + m2 +
· · · + mn . Utilitzem  
m
m1 , m2 , . . . , mn
per denotar el número de seqüencies diferents sobre X que podem construir si demanem que, per
tot 1 ≤ i ≤ n, cada seqüència contingui exactament mi vegades el sı́mbol xi .

Ens referirem als números d’aquest tipus com números o coeficients multinomials.

Lema 12.11. Siguin m1 , . . . , mn ≥ 0 números sencers positius i sigui m = m1 + m2 + · · · + mn .


Aleshores  
m m!
=
m1 , m2 , . . . , mn m1 !m2 ! · · · mn !

Demostració. Escollim primer m1 posicions (d’entre m) per al primer sı́mbol de X. Tenim mm1


possibilitats. Ara
 hem d’escollir m2 posicions per al segon sı́mbol
 d’entre les m−m1 restants. Això
m−m1 m−m1 −m2
ens dona m2 possibilitats. Similarment tenim m3
possibilitats per a les m3 posicions
del tercer sı́mbol i aixı́ successivament. Aleshores el número total de possibilitats és
     
m m − m1 m − m1 − m2 m − m1 − · · · − mn−1
··· =
m1 m2 m3 mn
m! (m − m1 )! (m − m1 − m2 )! (m − m1 − · · · − mn−1 )!
··· =
m1 !(m − m1 )! m2 !(m − m1 − m2 )! m2 !(m − m1 − m2 − m3 )! mn !(m − m1 − · · · − mn−1 − mn )!
m!
m1 !m2 ! · · · mn !

Quan n = 2 obtenim la forma habitual dels números binomials


     
m m! m m
= = =
m1 , m2 m1 !m2 ! m1 m2

22
NOVENA SESSIÓ

12.5 Multiconjunts
Definició 12.12. Sigui X un conjunt de elements. Un multiconjunt de X és una col.lecció no
ordenada d’elements possiblement repetits de X. La mida de un multiconjunt és el número
d’elements (contant un element repetit tantes vegades com apareixi) que conté.

Lema 12.13. Pertot 0 ≤ k, n, el número de multiconjunts de mida k d’un conjunt de n elements,


que denotarem nk , és  
n+k−1
k
Demostració. Sigui X = {x1 , . . . , xn } i sigui A un multiconjunt de X de mida k. Anomenem ai al
número de vegades que el sı́mbol xi apareix a A. Aleshores tenim a1 + a2 + · · · + an = k. Podem
representar A substituint el número ai per ai cercles, és a dir, amb una seqüència del tipus:
a a a
z }|1 { z }|2 { z }|n {
•···•+•···•+··· + •···•

Vegem-ho amb un exemple. Si X = {1, 2, 3, 4, 5, 6}, aleshores podem representar el multicon-


junt A = {1, 2, 2, 4, 5, 5, 5, 5} per mitja de la seqüència

•+••++•+••••+

Inversament cada seqüència amb k cercles i n−1 sumes representa de manera única un multiconjunt
de mida k sobre X. Per tant el número de multiconjunts de mida k sobre X és igual al número
de seqüències que podem construir utilitzant k cercles i n − 1 sumes, que és igual al número de
maneres de seleccionar k posicions (les dels cercles) sobre un un conjunt total de n+k−1 posicions,
és a dir n+k−1

k
.

13 Altres eines per a comptar


13.1 Principi d’Inclusió-Exclusió
Teorema 13.1. (Principi d’inclusió-exclusió) Siguin A1 , . . . , An subconjunts d’un conjunt Y .
Aleshores

|A1 ∪ A2 ∪ · · · An | = |A1 | + |A2 | + · · · + |An |


−|A1 ∩ A2 | − |A1 ∩ A3 | − · · · − |An−1 ∩ An |
+|A1 ∩ A2 ∩ A3 | + |A1 ∩ A2 ∩ A4 | + · · · + |An−2 ∩ An−1 ∩ An |
−|A1 ∩ A2 ∩ A3 ∩ A4 | − · · · − |An−3 ∩ An−2 ∩ An−1 ∩ An |
..
.
+(−1)n−1 |A1 ∩ A2 · · · ∩ An |

Demostració. Sigui a un element qualsevol de A1 ∪ A2 ∪ · · · An . Demostrarem que a és comptat


exactament una vegada en el terme de la dreta de l’equació. Suposem que a pertany exactament

23
a k dels conjunts A1 , A2 , · · · , An . Anem a calcular quantes vegades es comptat a cadascuna de les
files de la dreta de l’equació. L’element a es comptat k vegades a la primera fila, una vegada per
cada conjunt de A1 , . . . , An que el conté. Observeu que k = k1 . A la segona fila, a es compta
en el terme |Ai ∩ Aj | si tant Ai com Aj estan entre els k conjunts que contenen a. N’hi ha k2


d’aquests parells. De manera general, el número de vegades que a es comptat a la i-èsima fila és
k

i
si i ≤ k i 0 si i > k (ja que la intersecció de més de k conjunts d’entre A1 , . . . , An segur que
no conté a). Per tant la contribució de a al terme dret és
     
k k k+1 k
− · · · + (−1)
1 2 k

La segona igualtat demostrada al Corol.lari 12.8 implica que aquesta expressió és igual a k0 , que


és 1.

13.2 Principi de les caixes


Teorema 13.2. (Principi de les caixes) Si fiquem n + 1 objectes en n caixes aleshores existeix
una caixa que conté com a mı́nim dos objectes.

Demostració. Si totes les caixes tinguessin com a molt un objecte aleshores el número total d’ob-
jectes seria com a molt n, en contradicció amb el fet de que hi ha n + 1 objectes.

Teorema 13.3. (Principi de les caixes generalitzat) Si fiquem m objectes en n caixes aleshores
existeix una caixa que conté com a mı́nim dm/ne objectes.

Demostració. Si totes les caixes tinguessin com a molt dm/ne − 1 objectes. Aleshores el número
total d’objectes seria
n · (dm/ne − 1) < n · m/n = m
en contradicció amb el fet de que hi ha m objectes.

24

You might also like