Sunteți pe pagina 1din 15

ANALISIS DE

ALGORITMOS
DINAMICOS Y
VORACES SOBRE
GRAFOS
Contenido
1.Grafos
2.Tipos de grafos
3.Algoritmos dinámicos sobre
grafos
4.Algoritmos voraces sobre grafos

2
Grafos
◦ Un grafo simple G es un par (V, E) tal que:
◦ V es un conjunto finito no vac´ıo de nodos o v
´ertices. Se llama orden de G al n´umero de v
´ertices de G y se denotar´a n.
◦ E es un subconjunto del producto cartesiano V ×
V (pares de v´ertices), cuyos elementos se
denominan arcos (grafos dirigidos) o aristas (grafos
no dirigidos), que conectan los v´ertices de V .
◦ En un grafo dirigido, cada arco viene dado por un
par ordenado < u, v > donde u ∈ V es el v´ertice inicial
del arco y v ∈ V es el v´ertice final.

3
Grafos
◦ En un grafo no dirigido, no se distinguen los v
´ertices inicial y final. Dados dos v´ertices u, v ∈ V, la
arista (u, v) conecta dichos v´ertices en ambos
sentidos.
◦ En un grafo no existen autociclos ni multi-arcos.
◦ El m´aximo n´umero de aristas de un grafo no
dirigido es n(n − 1)/2. El m´aximo n´umero de arcos de
un grafo dirigido es n(n − 1). En ambos casos, se dice
que el grafo es completo.
◦ El grado de un vértice es el n´umero de arcos o
aristas que inciden en dicho v´ertices. ◦ En grafos
dirigidos, se definen el grado de entrada: n´umero de
arcos que entran al v´ertice, y el grado de salida: n
4 ´umero de arcos que salen del v´ertice.
Algoritmos voraces en grafos

Esquema
voraz

Camino ARCM
mínimo Algoritmo de
Algoritmo de Prim
Dijkstra

5
Dijkstra
▪ Buscar los caminos mínimos entre un vértice origen
y el resto de vértices del grafo (costes positivos)

6
Costes negativos? No
funciona

▪ Al seleccionar siempre el
nodo con menor distancia
(de los No Visitados)
pueden quedar excluidos
de la búsqueda nodos que
en próximas iteraciones
bajarían el costo general
del camino al pasar por
una arista negativa (para
los vértices visitados el
algoritmo no considera
7 rutas alternativas
Implementación
public class GraforMA_D extends Grafo{
protected double [][] grafo;


public void Dijkstra(int origen, double[] menorCoste, int[]
verticeMasCercano){ boolean[] visitados = new
boolean[numVertices];
….
}
}

8
InicializarDijkstra(7,…)
public class GrafoMA_D extends Grafo {
private static final int SIN_PREVIO = -1;

private void inicializarDijkstra(double[] menorCoste, boolean[]
visitados, int[] verticeMasCercano, int origen){
for (int i=0; i<numVertices; i++){
visitados[i]= false;
menorCoste[i]= grafo[origen][i];
if (grafo[origen][i]!= SIN_ARISTA) verticeMasCercano[i] = origen;
else
verticeMasCercano[i] = SIN_PREVIO;
}
visitados[origen] = true;
}
}
9
BIG
CONCEPT
Bring the attention of your
audience over a key concept
using icons or illustrations
10
THANKS!
Any questions?
You can find me at:
@username
user@mail.me

11
CREDITS
Special thanks to all the people who made
and released these awesome resources for
free:
▪ Presentation template by SlidesCarnival
▪ Photographs by Unsplash

12
Bibliografia

13
SlidesCarnival icons are
editable shapes.

This means that you can:


● Resize them
without losing
quality.
● Change fill color
and opacity.
● Change line color,
width and style.

Isn’t that nice? :)

Examples:

14
� Now you can use any emoji as an icon!
And of course it resizes without losing quality and you can change the
color.


How? Follow Google instructions
https://twitter.com/googledocs/status/730087240156643328

✋���
� � ��
❤���� � and many
more...

15

S-ar putea să vă placă și