Sie sind auf Seite 1von 7

Optimizacion Captulo 1 Nociones de Grafos 1

Los problemas que aparecen en este curso son mayormente formulados mediante
grafos. Este capitulo esta dedicado al concepto de grafo.

Definiciones

Multigrafo Un multigrafo G=(V,E) es una funcion que asigna a cada elemento e
de E (ramas) un par no ordenado {u,v} de elementos de V (vertices) que
llamamos los extremos de e. Por ejemplo,

Nota: Las ramas b y c tienen los mismos extremos (ramas multiples). Los
extremos de la rama f son iguales (bucle).

Grafo Sea V un conjunto finito de elementos que llamamos vertices y sea E un
conjunto de pares de vertices que llamamos ramas. Al par G=(V,E) lo llamamos
grafo. Advertimos que un grafo es un multigrafo que no tiene ramas multiples ni
bucles. Por ejemplo,
Nota: En adelante consideraremos slo grafos. Cuando se trate de un multigrafo lo
aclararemos explicitamente.

Adyacente: Si (u,v)eE decimos que los vertices u y v son adyacentes.

2
f
e
d
c b
a
3 4
1
E
a
b
c
d
e
f
V={1,2,3,4}
{1,2}
{1,4}
{1,4}
{3,4}
{2,3}
{2,2}
3 4
2 1



V={1,2,3,4}
E={{1,2},{2,3},{3,4},{1,4},{1,3}}
fig 1
fig 2
Optimizacion Captulo 1 Nociones de Grafos 2
Tabla de adyacencia de un grafo Es una tabla que asigna a cada vertice u de G la

lista de ramas que tienen uno de sus extremos en u.

Grado de un vertice El grado de un vertice u, escribiremos grad(u), es el numero
de ramas que tienen a u como extremo. Decimos que las ramas inciden en u.

Grafo completo: Si u,veV implica que (u,v)eE decimos que G es completo y
escribimos K
n
donde n=|V|. En este caso,|E|=
|
.
|

\
|
2
n
. Por ej. la figura 2 es un K
4

si se agregara la rama (2,4).

Camino: Una sucesion de vertices u
1
, u
2
, ..., u
p
tales que (u
i
,u
i+1
)eE lo llamamos
un camino (que une u
1
con u
p
). Si todos los u
i
son distintos decimos que el camino
es simple. Salvo indicacion en contrario los caminos que consideraremos son
simples. Si el camino incluye a todos los vertices de V decimos que el camino es
hamiltoniano.

Circuito o Ciclo Un camino tal que u
1
,u
2
,...,u
p-1
son distintos y u
p
=u
1
lo llamamos
un circuito o ciclo, es decir, un circuito es un camino cerrado. Si el circuito
contiene todos los vertices de V decimos que el circuito es hamiltoniano. Si G
tiene algun circuito hamiltoniano decimos que el grafo es hamiltoniano.

Dodecaedro: ejemplo de grafo hamiltoniano.









Grafo aciclico Un grafo que no contiene circuitos lo llamamos aciclico.

Grafo Bipartito Un grafo G=(V,E) se llama bipartito si V esta particionado en 2
subconjuntos M y N tales que toda rama de E tiene un extremo en M y otro en N.
Decimos que G es completo si para todo par ueM y veN se tiene que (u,v)eE.
En este caso escribimos K
mn
donde m=|M| y n=|N|

3
1
2
Tabla
1 (1,2) (1,3)
2 (1,2)
3 (1,3)
Optimizacion Captulo 1 Nociones de Grafos 3
Subgrafo Un grafo H se dice que es un subgrafo de G si todos los vertices y ramas
de H son vertices y ramas de G.

Grafo conexo Un grafo es conexo si u,veV implica que hay un camino que une u
con v. Un subgrafo H conexo y maximal de G se llama una componente de G

Subgrafo inducido Sea U un subconjunto de vertices del grafo G. El grafo H
cuyos vertices son U y tal que (u,v) con u,veU es rama en H si (u,v) es rama en G
se llama grafo inducido por U.

Substraccion de vertices o ramas Sea G=(V,E) un grafo y U un subconjunto de V
entonces G-U es el grafo que resulta de G suprimiendo los vertices U y las ramas
que inciden sobre los vertices de U. Sea R un subconjunto de E entonces G-R es
el grafo que resulta de G suprimiendo las ramas R.

Grafo dirigido o digrafo Un grafo dirigido o digrafo G=(V,D) esta formado por
un conjunto de vertices V y un subconjunto D de pares ordenados de vertices que
llamamos arcos. Por ejemplo,

En un grafo dirigido una sucesion de vertices u
1
, u
2
, ..., u
p
tales que (u
i
,u
i+1
)eE lo
llamamos un camino dirigido. Si u
1
=u
p
decimos que es un circuito dirigido.

Arbol Un grafo aciclico y conexo se llama arbol.

Arbol con raiz A rooted tree es un grafo dirigido cuyo arbol subyacente es un
arbol que tiene un vertice distinguido, raz, tal que hay un solo camino dirigido de
la raiz a cualquier otro vertice.
Si uv decimos que u es el padre de v y v es el hijo de u. Si v se encuentra en un
camino dirigido a partir de u, decimos que v es descendiente de u. Si no existe v
tal que uv decimos que u es una hoja. Decimos que los hijos de la raiz tienen
profundidad 1, los hijos de los hijos de la raiz tienen profundidad 2, etc. La
mxima profundidad de un vertice se llama altura del arbol. Un vertice que no es
una hoja o la raiz se llama vertice interno.
Un arbol es m-ario significa que cada vertice tiene m hijos o menos.

Nota: Sea T un arbol m-ario con n vertices y altura h entonces
) 1 /( ) 1 ( 1
1
s s +
+
m m n h
h

Nota: El arbol binario completo tiene 2
h+1
1 nodos (vertices).
3 4
2 1



V= {1,2,3,4}
E={(1,2),(3,2),(4,3),(1,4),(4,1).(2,4)}
Optimizacion Captulo 1 Nociones de Grafos 4









Ejemplos
Circuitos Eulerianos
En la ciudad de Knigsberg habia una isla en medio de un ro y 7 puentes
dispuestos segun lo que muestra la figura











Se plantea el problema de si es posible recorrer en un camino cerrado todos los
puentes una sola vez c/u. En el multigrafo de la figura 3 se traduce el problema en
hallar una secuencia de ramas que contenga una sola vez a todas las ramas del
grafo. A un tal camino lo llamamos circuito euleriano.

Teorema (Euler)
En un multigrafo conexo existe un circuito euleriano sii los grados de todos los
vertices son pares.
Demostracion
Observamos que un tal circuito debe entrar y salir de cada vertice una o mas veces
y, por lo tanto, deben incidir en cada vertice un numero par de ramas. Asi la
condicion enunciada es necesaria. (En el caso de los puentes no se cumple la
condicion).
Supongamos ahora que el numero de ramas que inciden en cada vertice es par.
Construiremos un circuito euleriano. Sea G el grafo. Elijamos un vertice inicial a
y una rama que sale de a y llega a otro vertice que llamamos b. De b tiene que
salir otra rama que llegar, digamos, a c. De c tiene que salir otra rama...etc. De
esta manera debemos volver eventualmente a a. Hemos construido un circuito con
ramas distintas. Si las ramas R
1
de este circuito agotaran las ramas de G el
teorema esta demostrado. Si no, consideremos el grafo G-R
1
y construyamos un
segundo circuito con ramas R
2
en forma analoga. De esta manera construiremos
una secuencia de circuitos R
i
cuya union ser un circuito euleriano.

A
Ro
fig 3
Optimizacion Captulo 1 Nociones de Grafos 5











Algoritmo SEARCH
Sea G un grafo. Describimos un algoritmo para detectar si G es conexo. Durante
el mismo los vertices del grafo estaran pintados de blanco, amarillo y verde. Se
supone que el grafo esta dado por su tabla de adyacencia.

Inicializacion
Pintar de blanco todos los vertices.
Elegir un vertice cualquiera y pintarlo de amarillo.
Loop
Elegir un vertice amarillo u. Si no hay ninguno: Stop.
Si hubiera vertices blancos adyacentes al amarillo u pintarlos de amarillo.
Pintar u de verde.
Volver a loop

Ejercicio
Demostrar que G es conexo sii cuando el algoritmo se detiene todos los vertices
son verdes .

Para acotar el tiempo que la computadora tarda en resolver un problema sobre un
grafo se lo suele acotar en funcion del numero de vertices o ramas. Observamos
en el algoritmo search que el tiempo depende de cuantas veces se repite el loop y
que cada loop consiste en examinar ramas distintas de G. Por lo tanto, el tiempo es
proporcional a |E|. Tambien observemos que el cardinal de E no supera a
|V|(|V|-1)/2. Por lo tanto el tiempo es O(n
2
) donde n es el nmero de vrtices.

Torneo
Consideremos un certamen con n jugadores de tenis donde c/u juega n-1 partidas
con los restantes. Sean los n jugadores vertices V de un grafo. Para cada par de
jugadores u y v escribamos uv si u le gana a v. Sea G=(V,D) un grafo dirigido
tal que para todo u,v se tiene una y solo una de las relaciones uv o vu. Un tal
grafo se llama un torneo. Se trata de ordenar todos los vertices de G de forma que
u
1
u
2
...u
n
. A esto lo llamamos un camino hamiltoniano en un grafo
dirigido. Existe tal camino?
R
1
R
3
R
2
Optimizacion Captulo 1 Nociones de Grafos 6

Teorema
En todo torneo existe un camino hamiltoniano.
Demostracion
Por induccion. Supongamos tener un camino v
1
v
2
...v
i
v
i+1
...v
k
(k<n). Sea
z un vertice distinto de los k vertices. Si para algn i=1,2,...,k-1 se tuviera
v
i
zv
i+1
podemos agregar z extendiendo el camino a k+1 vertices. Quedan 2
casos
zv
1
con lo cual podemos extender el camino por la izquierda
v
1
z, v
2
z,...,v
n-1
z, v
k
z. Pero v
k
z permite extender el camino por la
derecha

Definiciones equivalentes de arbol
Teorema
Las siguientes afirmaciones son equivalentes
1) T es un conexo y no tiene ciclos (definicion original)
2) T es conexo y todo e desconecta a T
Mostramos que T no tiene ciclos. Si tuviera un ciclo C eeC no desconectaria
3) Cualesquiera u,veT son conectados por un solo camino.
Si hubiera 2 caminos habria un ciclo y los e del ciclo no desconectarian a T
4) T no tiene ciclos y si e es un nuevo edge el grafo T+e tiene un solo ciclo.
Si T tuviera un ciclo C y (u,v) perteneciera a C dos caminos distintos conectarian
a u y v. Por tanto no hay ciclos. Si (u,v) no pertence a T al agregarlo a T (u,v) mas
el camino de u a v forman un ciclo.
4)1) Hay que demostrar que T es conexo. Sea C el ciclo que se forma al agregar
(u,v). Entonces C\(u,v) es un camino que une a u con v T es conexo














Optimizacion Captulo 1 Nociones de Grafos 7
Practica de Grafos

1 Sea G=(V,E) donde V={0,1,2,3,4,5,6,7,8,9} y
E={01,12,23,34,04,05,16,27,38,49,56,67,78,89,59}
Dibujar G. Hallar las matriz de incidencia y la tabla de adyacencia de G.
2 Un grafo tiene por lo menos 2 vertices cuyos grados son iguales.
3 La suma de los grados de los vertices es igual al doble del numero de ramas.
4 Hay un numero par de vertices que tienen grado impar.
5 Un grafo es bipartito sii todo circuito tiene un nmero par de ramas.
6 G=(V,E) es un arbol sii G es conexo y |E|=|V|-1
7 Todo arbol que tiene al menos una rama tiene (por lo menos) dos vertices de
grado 1.
8 Si el grado de todos los vertices de un grafo es por lo menos 2 entonces
contiene un ciclo.
9 Probar que en un grafo conexo, dos caminos de maxima longitud tienen un
vertice en comun.
10 Cuantos circuitos hamiltonianos que comienzan en el vertice u hay en K
n
?
11 Demostrar que en un grafo conexo existe un camino euleriano si y solo si
existen dos vertices de grado impar. (un camino es euleriano si parte de un
vertice y llega a otro pasando por todas las ramas de G una sola vez.)
12 Probar que H es un spanning tree de un grafo conexo G si y solo si H es un
subgrafo aciclico maximal de G.
13 Construir un spanning tree del grafo siguiente a) usando el criterio de depth-
first b) breadth-first. En ambos casos usar como raz el vrtice u










-=-=-=-=-=-=-=-=-=-
t
s
r
z
x
y
w
v
u
w
w

Das könnte Ihnen auch gefallen