Está en la página 1de 16

Algoritmos

vidos

Algoritmos vidos (greedy)

ALGORITMO DE DIJKSTRA

ALGORITMO DE DIJKSTRA
( Ejemplo )

Ejemplo greedy (mochila)


Un turista quiere hacer un buen viaje el fin de semana con sus amigos.Van a ir a las
montaas para ver las maravillas de la naturaleza, por lo que necesita empacar bien para
el viaje.l tiene una buena mochila para llevar cosas, pero sabe que puede llevar un
mximo de 4 kg solamente y tendr que durar todo el da.Se crea una lista de lo que
quiere llevar para el viaje, pero el peso total de todos los artculos es
demasiado.Entonces decide agregar columnas a su lista inicial que detalla sus pesos y un
valor numrico que representa la importancia de el artculo para el viaje.

ITEM
PESO
Mapa
9
Compas
13
agua
153
sndwich
50
glucosa
15
estao
68
banana
27
manzana
39
queso
23
cerveza
52
crema solar 11

VALOR ITEM
150 VALOR
35 Cmara
200
30
160 camiseta
15
60
45 Pantalones
60 10
40 sombrilla
30
40
10 pantalones impermeables
70 70
ropa impermeable
75
nota de los casos
80
gafas de sol
20

PESO
32
24
48
73
42
43
22
7

ALGORITMOS
DIVIDE Y VENCERAS

Divide

Ventajas:
Simplificacin.
Recursividad.

Vencers

ALGORITMOS
DIVIDE Y VENCERAS

TORRES DE HANOI
DIVIDE Y VENCERAS

Este juego (un algoritmo clsico) tiene sus orgenes en la


cultura oriental y en una leyenda sobre el Templo de Brahma,
cuya estructura simulaba una plataforma metlica con tres
varillas y discos en su interior. El problema en cuestin supona
la existencia de 3 varillas (A, B y C) o postes en los que se
alojaban discos (n discos) que se podan trasladar de una varilla
a otra
libremente, pero con una condicin: cada disco era ligeramente
inferior en dimetro al que estaba justo debajo de l.

ALGORITMO DE ORDENACION
QUICKSORT

ALGORITMO DE ORDENACION QUICKSORT

FUNCIONAMIENTO

METODOS DE RETROCESO
(Backtracking)

Sudoku resuelto
mediante vuelta
atrs.
Mtodo que
descarta un gran
nmero de
conjuntos de
soluciones, sin
enumerar
explcitamente cada
una de las mismas.

METODOS DE RETROCESO (Backtracking)


procedimiento ensayarSolucin
Inicio
<inicializar cuenta de posibles selecciones>
repetir
<tomar siguiente seleccin (tarea)>
<determinar si seleccin es valida>
si vlido entonces
<anotar seleccin>
si <problema solucionado> entonces
exito = true
si no
ensayarSolucin {llamada para realizar otra tarea}
{ vuelta atrs, se analiza si se ha alcanzado la
solucin del problema }
si no exito entonces
<borrar anotacin> {el bucle se encarga de probar
con otra seleccin}
fin _ si
fin _ si
fin _ si
hasta (exito) o (<no ms posibilidades>)

METODOS DE RETROCESO (Backtracking)


Problema de las ocho reinas

Dado un tablero
de ajedrez (8 x 8
casillas), hay que
situar ocho reinas
de forma que
ninguna de ellas
pueda actuar
(comer) sobre
ninguna de
las otras.

BIBLIOGRAFIA

http://es.slideshare.net/luzenith_g/algoritmos-voraces-greedy
http://rosettacode.org/wiki/Knapsack_problem/0-1#Java
http://webdiis.unizar.es/asignaturas/EDA/ea/slides/2-Algoritmos%20Voraces.pdf
libro estructuras de datos joyanes edicion 1.