Sei sulla pagina 1di 1

Facultad de Ciencias Fı́sicas y Matemáticas Universidad de Chile

CC3101 Matemáticas Discretas para la


Computación
Profesor: Pablo Barceló
Alumno: Matı́as Azócar Carvajal

Anexo Tarea 3
21 de Agosto de 2018

P1. (a) Sea A la matriz de adyacencia. Recordemos que A[i][j] (elemento de A fila i columna j) solo puede ser 1 (si
existe la arista ij) o 0 si no.
Luego, veamos como serán los elementos de A2 . Por definición:
n−1
X
(A2 )[i][j] = A[i][k] · A[k][j]
k=0

Ahora, veamos que la única forma de que A[i][k] · A[k][j] 6= 0 es que A[i][k] = A[k][j] = 1. De otra forma, el término
se anuları́a. Es ası́ que cada vez que sumemos 1 al término (A2 )[i][j] estamos asegurando la existencia de un camino
de largo 2 entre el nodo i y el nodo j. (Explı́citamente, son los k que crean el camino (i, k), (k, j)). Concluı́mos ası́
que -dada la forma en la que se construye- A2 es la matriz que nos indica la cantidad de caminos del nodo i al nodo
j según:
número de caminos de largo 2 entre u y v = (A2 )[i][j]

(b) Ahora, nos gustarı́a extender esta idea para caminos de largo k > 2. Para ello, usaremos inducción.
Caso base: k = 2
Demostrado en la parte (a)
Hipótesis inductiva: (Ak )[i][j] = Cantidad de caminos de largo k entre i y j
Paso inductivo: (Ak+1 )[i][j] = Cantidad de caminos de largo k+1 entre i y j
Sabemos que podemos escribir Ak+1 como Ak A, pero eso, a su vez, es:
n−1
X
(Ak+1 )[i][j] = (Ak )[i][l](A)[l][j]
l=0

Pero por definición, cada vez que sumemos algo, aseguramos la existencia de:
• (Ak )[i][l] caminos de largo k entre i y l.
• (A)[l][j] caminos de largo 1 entre l y j. (En particular, aquı́ solo podemos tener o no tener el camino en cuestión).
Uniendo ambas, tenemos caminos de largo k + 1 entre i y j utilizando como arista final (l, j). Luego, haciendo correr
el ı́ndice l por todos los nodos, obtenemos todos los caminos de largo k + 1 entre i y j. Demostrando justamente lo
que querı́amos.
(c) Es de conocimiento general que el método de búsqueda binaria es O(log n). Es en base a este método que
creamos el algoritmo, pasando de cada potencia a la cual queremos elevar la matriz de incidencia a la parte entera
de dividirlo en dos. Es ası́ que concluı́mos que el algoritmo es O(log n) (Siendo un método de busqueda binaria
ligeramente modificado).
P2. (a) Por definición, un árbol es un grafo simple y, además, no contiene ciclos de ningún tipo. En particular, esto
implica que no tiene ciclos de largo impar. Luego, utilizando la Proposición 4.2.2 del apunte

“Todo grafo simple es bipartito ⇔ No contiene ciclos de largo impar00

Con esto, queda demostrado que todo árbol es bipartito.


(b) Para finalizar, cabe mencionar el bien conocido hecho de que la cantidad máxima de aristas en un grafo bipartito
es el producto entre los cardinales de la separación que se crea. Los códigos están explicados a través de comentarios
dentro de los archivos adjuntos.

Potrebbero piacerti anche