Upload
luisfesilva
View
374
Download
1
Embed Size (px)
DESCRIPTION
esta presentación es en cumplimiento con la asignación de ka materia de programación
Citation preview
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.
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.
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.
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
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
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
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
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
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.
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.
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.
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.
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