Algoritmos Voraces - Dijkstra

Post on 12-Apr-2017

166 views 3 download

Transcript of Algoritmos Voraces - Dijkstra

Algoritmos voracesIng. Carlos Uscamayta

Algoritmos Voraces

Algoritmo de Disjktra

Problemas

Algoritmos voracesTambien conocidos como :

Ávido

Devorador

Goloso

Pero que son ?

Se los conoce asi por que en cada paso , el algoritmo escoge el mejor “pedazo” que es capaz de “comer” sin preocuparse del futuro.

Nunca deshace una decisión ya tomada:

Una vez incorporado un candidato a la solución permanece ahí hasta el final..

Cada vez que un candidato es rechazado, lo es para siempre.

Pero como funcionan ?

El algoritmo elige en cada paso al mejor elemento posible (elemento mas prometedor).

Se elimina ese elemento del conjunto de candidatos.

Nunca deshace una decisón ya tomada: El candidato incorporado permanece ahí hasta el final, y si es rechazado, lo es para siempre.

Ejemplos de Algoritmos voraces

KRUSKALPRIM

El Algoritmo de Dijkstra

El algoritmo de Dijkstra, también llamado algoritmo de caminos mínimos, es un algoritmo para la determinación del camino más corto dado un vértice origen al resto de los vértices en un grafo con pesos en cada arista. Su nombre se refiere a Edsger Dijkstra, quien lo describió por primera vez en 1959

Pero como funcionan ?

1.- Se considera que el nodo origen esta resuelto y el resto de los nodos se consideran no resueltos

2.- Comenzando por el nodo origen se calculan las distancias a los nodos conectados.

3.- Se sitúan las distancias en el diagrama de red, especificando entre paréntesis de que nodo proviene esa distancia.

4.- Del resto de nodos no resueltos que tengan ya una distancia desde el nodo origen se selecciona aquel nodo no resuelto que tenga menor distancia, a partir de este momento se considerara a este nodo como el nodo resuelto y se calcularan las distancias desde el resto de los nodos no resueltos

5.-volver al paso 2 se continua aplicando esta metodología hasta que todos los nodos tengan distancia mínima desde el origen y estén resueltos.

Pseudocodigo

PROBLEMAS :

Carlos UscamaytaScrum Team Member - Software Architect

INNOVISION

uscamayta.carlos@gmail.com