14
PROGRAMACIÓN DINÁMICA Realizado por: Br. Silva Mattey, Luis Felipe C.I.: 20.905.586 Profesor: Ing. Diógenes Rodríguez Porlamar, Julio 2013.

Presentacion programacion dinamica luis silva

Embed Size (px)

DESCRIPTION

esta presentación es en cumplimiento con la asignación de ka materia de programación

Citation preview

Page 1: Presentacion programacion dinamica luis silva

PROGRAMACIÓN DINÁMICA

Realizado por:

Br. Silva Mattey, Luis Felipe

C.I.: 20.905.586

Profesor: Ing. Diógenes Rodríguez

Porlamar, Julio 2013.

Page 2: Presentacion programacion dinamica luis silva

Con esta revolución tecnológica que se ha venido presentando, la cantidad de

datos actualmente ha venido aumentando su volumen y estos para ser procesados de

forma correcta necesitan ser ordenados previamente, el ordenamiento de datos es

simplemente colocarlos de manera que se cree una simple información basándose en

un criterio de ordenamiento. Para esto existen distintos métodos de ordenamiento que

permiten arreglar los datos de una tabla en algún orden secuencial ya sea numérico,

alfabético, alfanumérico, ascendente o descendente, en la siguiente presentación se

explicara 4 métodos conocidos para el ordenamiento de datos.

Page 3: Presentacion programacion dinamica luis silva

El método de ordenamiento Shell Sort debe su nombre al ingeniero y matemático

estadounidense Donald Shell. Este método se basa en dos características como son:

El ordenamiento por inserción es eficiente si la entrada está "casi ordenada".

El ordenamiento por inserción es ineficiente, en general, porque mueve los valores

sólo una posición cada vez.

Entre los pasos a seguir para el método de ordenamiento Shell Sort están

los siguientes:

• Primer paso, se divide la lista de elementos entre n/2 grupos de dos.

Considerando un incremente o salto entre los elementos de n/2.

• Segundo paso, clasificar cada grupo por separado, comparando las

parejas de elementos y si no están ordenado se intercambian.

• Tercer paso, se divide ahora la lista en la mitad de grupos (n/4) con un

intercambio o salto entre los elementos también (n/4) y nuevamente se

clasifica cada grupo por separado.

• Así sucesivamente, se sigue dividiendo la lista en la mitad de grupos. El

algoritmo termina cuando se consigue cuando el tamaño del salto es 1.

Page 4: Presentacion programacion dinamica luis silva

3, 8, 5, 1, 6, 7, 2, 4

Se cuenta la cantidad de elementos en total, n=8, luego se aplica la formula

de n/2, la cual seria 8/2= 4, entonces nuestra lista se dividiría en dos grupos

de 4.

3, 8, 5, 1 | 6, 7, 2, 4

Se procede a comparar los elementos ente 3 - 1 y entre 6 - 4 para realizar los

ordenamientos entre los cuales se cambiaria el 8 por el 7 y el 5 por el 2 y

nuestra lista quedaría de la siguiente manera.

3, 7, 2, 1, 6, 8, 5, 4

Se procede a aplicar de nuevo la formula n/2, con la diferencia que nuestra n

seria 4 debido a que tenemos dos grupos de 4 la cual seria 4/2= 2, entonces

en nuestra lista se realizaran saltos de dos en dos. Nuestra lista quedaría de

la siguiente manera.

2, 1, 3, 7, 5, 4, 6, 8

Page 5: Presentacion programacion dinamica luis silva

Se puede volver a realizar un salto de dos en dos si algún elemento no se

encuentra en orden para el salto de uno en uno, siguiendo esto nuestra

lista quedaría de la siguiente manera.

2, 1, 3, 4, 5, 7, 6, 8

Finalmente se aplica por última vez la formula n/2, con la diferencia que

nuestra n seria 2 por el salto anterior 2/2= 1, entonces en nuestra lista se

realizaran saltos de uno en uno. Nuestra lista quedaría de la siguiente

manera.

1, 2, 3, 4, 5, 6, 7, 8

Page 6: Presentacion programacion dinamica luis silva

El método de ordenamiento de burbuja es uno de los métodos

más sencillos se basa revisando cada elemento de una lista que va a

ser ordenada, lo fundamental de este método es intercambiar los

elementos si están ordenados de manera equivocada, el método usa

comparaciones para operar elementos. Se debe realizar varias

revisiones a toda la lista hasta que no se necesario realizar

intercambios

Page 7: Presentacion programacion dinamica luis silva

Se sigue sucesivamente comparando el 30 con los elemento 4,

12, 28. Se realiza el cambio debido a que el 30 es mayor que los

elementos ya expuestos anteriormente, entonces nuestra lista

quedaría:

18, 1, 4, 12, 28, 30

Sin embargo se puede ver que nuestra lista no está

totalmente ordenada, es decir se procede a realizar la

comparación con el siguiente elemento al inicio de la lista.

Comparamos el numero 18 con el numero 1 y al ver que el

número 18 es mayor se procede a realizar el cambio. Entonces

nuestra lista quedara de la siguiente manera:

1, 18, 4, 12, 28, 30

30, 18, 1, 4, 12, 28

Siguiendo el método de la

burbuja debemos ordenar el arreglo

realizando comparación entre los

elementos de la lista, entonces iniciamos

la comparación con el primer elemento

que sería el 30 y se compara con el

numero 18. Después de esta

comparación al ver que el 30 es mayor

que el 18 se procede al cambio. Nuestra

lista quedaría de la siguiente manera:

18, 30, 1, 4, 12, 28

Se sigue la comparación entre el

30 con el número 1 y al ver que el

número 1 es menor se procede a

realizarse el cambio, nuestra lista

quedara de la siguiente manera:

18, 1, 30, 4, 12, 28

Page 8: Presentacion programacion dinamica luis silva

Se sigue sucesivamente

comparando el 30 con los elemento 4, 12,

28. Se realiza el cambio debido a que el 30

es mayor que los elementos ya expuestos

anteriormente, entonces nuestra lista

quedaría:

18, 1, 4, 12, 28, 30

Sin embargo se puede ver que

nuestra lista no está totalmente ordenada,

es decir se procede a realizar la

comparación con el siguiente elemento al

inicio de la lista. Comparamos el numero

18 con el numero 1 y al ver que el número

18 es mayor se procede a realizar el

cambio. Entonces nuestra lista quedara de

la siguiente manera:

1, 18, 4, 12, 28, 30

Page 9: Presentacion programacion dinamica luis silva

Y sucesivamente se compara el 18

con el 4 para seguir ordenando la

lista, entonces quedaría:

1, 4, 18, 12, 28, 30

Luego se compara el 18 con el 12

y al ver que el 18 es mayo se procede a

realizarse el cambio. Nuestra lista

quedaría:

1, 4, 12, 18, 28, 30

Y así nuestra lista queda

correctamente ordena.

Page 10: Presentacion programacion dinamica luis silva

Este método fue creado por el matemático húngaro John Von

Neumann en 1945. Se basa en la premisa de divide y vencerás y de

acuerdo a esto el ordenamiento se realiza mediante la división del

vector a ordenar en dos partes iguales, ordenando las dos mitades

por separado y luego mezclarlas manteniendo el orden, en un solo

vector ordenado.

La premisa de divide y vencerás en este método se cumple

siguiendo tres pasos fundamentales los cuales son:

Primer paso es DIVIDIR: se divide la secuencia de "n" elementos

a ordenar en dos subsecuencias de "n/2" elementos cada una.

Segundo paso es VENCER: se ordenan las dos subsecuencias

de manera recursiva mediante el algoritmo MERGESORT.

Tercer paso COMBINAR: se combina las dos subsecuencias

ordenadas para generar la solución.

Page 11: Presentacion programacion dinamica luis silva

Como se puede

observar se va dividiendo

la lista de dos en dos

hasta que los elemento

quedan totalmente

separados uno de otro

para luego empezar con la

mezcla e ir ordenándolos

de menor a mayor hasta

que nuestra lista queda

totalmente ordenada.

Page 12: Presentacion programacion dinamica luis silva

Es una forma de optimización, este método tiene como

base un problema el consiste en maximizar el valor de los

objetos que se introduzcan en la mochila.

existen dos variantes del problema:

Mochila fraccionada: Los objetos se pueden fraccionar, es

decir se puede colocar en la mochila trozos de objetos.

Mochila entera: Los objetos no se pueden fraccionar y por

tanto deben ir enteros en la mochila.

En ambas versiones se debe tomar en cuenta que son

problemas de optimización (maximización). Sólo nos interesa

una solución, la óptima.

Page 13: Presentacion programacion dinamica luis silva

Una empresa dispone de un millón de bolívares para invertir en nuevos proyectos. En concreto

dispone de tres nuevos proyectos posibles. En la siguiente tabla aparece el costo que supone cada

uno de ellos, así como el beneficio que se espera de su realización. La empresa desea saber en cual

debe invertir si quiere maximizar su beneficio esperado sin superar su presupuesto.

Para resorberlo, llamamos xi a una variable binaria que

toma el valor 1 si se elige el proyecto i (i = 1, 2, 3, 4) y cero en

caso contrario.

En este problema nos encontramos como restricciones

solo la presupuestaria luego la formulación del mismo es

como “problema de la mochila”:

Resolviendo obtenemos que la mejor opción es elegir los

proyectos 2 y 3 alcanzándose un beneficio esperado de 3.500.000

Page 14: Presentacion programacion dinamica luis silva