Documentos de Académico
Documentos de Profesional
Documentos de Cultura
2. ¿Cómo aplicarlos?
Havel-Hakimi:
La secuencia de números se debe corresponder con el grado de cada vértice:
Eje.: 5,4,4,2,2 ->no es una secuencia gráfica pq hay 5 vértices y el de grado
mayor es 5. O sea que el de grado mayor, como mucho debe de ser n-1.
DFS: Si no nos dan el vértice de origen, escogemos uno. Si estuviesen ordenados (por
letras o números) es mejor escoger el primero en la secuencia (no es imprescindible,
solo es ”más estético” a mi gusto). A partir de ese vértice se visita otro vértice
adyacente, de éste vértice adyacente a otro vértice adyacente. Cuando no se puede
seguir para adelante, se va retrocediendo vértices hasta que encuentras uno que tenía
más de un vértice adyacente y continuas el recorrido por ahí. Se acaba cuando ya no
quedan más vértices para visitar. Si queda algún vértice y no has llegado hasta a él,
significa que ése vértice es aislado (cosa tonta pq se ve claro en el dibujo.....)
Este recorrido se va apuntando en forma de tabla. En mi libro hay un buen ejemplo en el
módulo Recorridos y conectividad, el ejemplo 6-19 Simulación del algoritmo.
1
BFS: El procedimiento consiste en coger un vértice y visitar primero (en orden
alfabético o de menor a mayor) todos los vértices adyacentes a éste vértice. Luego se
elimina éste y se hace lo mismo con el siguiente.... hasta haber visitado todos. Si no se
puede visitar todos los vértices.... tonces no es conexo. Pági.19 Ejemplo 6-24
Dijkstra. (Recomiendo mirar la tabla del ejemplo 6-53 pag. 38 a la vez que vas leyendo
los pasos)
Primero se monta una tabla en la que el encabezado de cada fila es el nombre de cada
vértice.
Primera fila: se rellena la celda correspondiente al vértice de origen con
(0, nombredelverticeorigen), donde el 0 es la distancia del vértice de origen ..en este
caso al vértice de origen. Las demas celtas se rellenan con (infinito,
nombreverticeorigen).... hasta ahora sólo hemos preparado la tabla, no hemos mirado
distancias ni nada.
Segunda fila:
1. Marcamos con un * el vértice que vamos a explorar.
2. Ponemos un dedito u otra cosa (a gusto del consumidor) en ese vértice y
miramos la distancia al siguiente vértice/columna.
a. Si no tiene adyacencia con ese vértice ->copiamos lo de la celda
superior.
b. Si tiene adyacencia y además podemos mejorar la distancia (sumando
la distancia del vértice que estamos explorando con el peso de la
arista que nos lleva a ese vértice) ponemos el valor de la distancia x y
el vértice que estamos explorando (x, vérticequeexploramos).
3. Repetimos hasta haber explorado todos los vértices/columna.
4. De todas las distáncias que tenemos rellenas en esa fila, escogemos la de
menor valor que no se haya explorado ese vértice (de ahí viene marcar con
asterisco.
5. Ponemos en una nueva fila los valores (x,nombre) del vértice escogido tal y
como está en la fila anterior, y repetimos todo desde el punto 2.
El algoritmo se acaba cuando ya han sido “escogidos” todos los vértices. Los valores de
la fila final nos proporciona la menor distancia del vértice de origen a todos los demás.
Para ver el recorrido seguido para llegar del vértice de origen hasta el/los vértice/s que
queremos averiguar, hay que seguir la columna hacia arriba y mirar el nombre del
vértice que nos ha llevado hasta ahí, te paras cuando cambie de nombre y saltas al
vértice que indica el nombre. Haces lo mismo en ese vértice, hasta que encuentres que
el nombre coincide con el nombre del vértice origen. Dependiendo del grafo puede
haber varios saltos. Suena más complicado de lo que es... ya lo comentaremos.
Floyd. El ejemplo que ponen es horrible y a mi entender está mal.... pero bueno. En
teoría es lo mismo que Dijkstra pero se lleva mediante matrices y lo que se busca es la
distancia mínima entre todos los pares de vértices. Es demasiado largo para que lo
pongan en el examen
2
escogen aristas que formen algún ciclo con otra anterior (consejo: ir haciendo un
dibujito con los vértices/aristas que vas incorporando). Se acaba cuando se han
incorporado tantas aristas como vértices-1.
Prim. Ejemplo Aquí no me han numerado los apartados, pero sigue al de kruskal, en el
mío, pag.23.
Se lleva una tabla similar a la de Dijkstra.
El procedimiento es se escoge un vértice de pártida.
Se visitan todos los vértices adyacentes a éste vértice y se registra en la tabla la
distancia.
Se escoge el siguiente vértice adyacente de menor peso y se repite la operación hasta
haber visitado todos los vértices, actualizando la tabla si se encuentra un peso menor
que el de la fila anterior. (ojo por que en éste no se van sumando los pesos para conocer
la distancia, si no que nos vamos “quedando” con las aristas que encontramos de menor
peso, siempre manteniendo la conectividad)
TSP- El objetivo es encontrar un circuito/recorrido que visite todos los vértices sin
repetición y de coste mínimo. Pág. 23 Grafos eulerianos y hamiltonianos.
Se representan los vértices en una gráfica de dos ejes. Los (x,y) son las distancias entre
vértices....... este creo que está mejor explicado en el libro de lo que yo puedo explicar.
De todos modos, considero que no es buen “candidato” a que caiga.