Programacion dinamica

14
INSTITUTO UNIVERSITARIO POLITÉCNICO “SANTIAGO MARIÑO” EXTENSIÓN PORLAMAR PROGRAMACIÓN NO NUMÉRICA II PROGRAMACION DINAMICA RELIZADO: Br. Valdiviezo David C.I:21.326.272 FACILITADOR: Ing. Rodríguez Diógenes Porlamar, Julio del 2013

Transcript of Programacion dinamica

Page 1: Programacion dinamica

INSTITUTO UNIVERSITARIO POLITÉCNICO

“SANTIAGO MARIÑO”

EXTENSIÓN PORLAMAR

PROGRAMACIÓN NO NUMÉRICA II

PROGRAMACION DINAMICA

RELIZADO:

Br. Valdiviezo David C.I:21.326.272

FACILITADOR:

Ing. Rodríguez Diógenes

Porlamar, Julio del 2013

Page 2: Programacion dinamica

INTRODUCCIÓN

En la actualidad los métodos o algoritmos de ordenamiento son de gran

importancia en la informática ya que nos permiten ordenar de manera

eficaz vectores, listas, arreglos que son estructuras de datos que nos

facilitan el manejo de grandes cantidades de datos alfanuméricos.

Los métodos de ordenamientos que trataremos son de tipo interno ya

que estos se almacenar en la memoria principal ya que el tiempo de

acceso a los elementos que la componen es la misma cantidad que

contenga el vector o matriz a resolver.

Page 3: Programacion dinamica

MÉTODO DE ORDENAMIENTO SHELL SORT

• El método de ordenamiento

Shell Sort fue desarrollado por

Donald Shell en 1959 y este

método consiste en comparar

los elementos con saltos de

mayor tamaño, pero con

incrementos de manera

decírsete y así los elementos

que dan ordenados de manera

mas eficiente.

Page 4: Programacion dinamica

EJEMPLO DE ORDENAMIENTO SHELL SORT

Deducir las secuencias parciales de clasificación por el método de Shell para ordenar de

manera ascendente la siguiente lista de números 6, 1 , 5, 2, 3, 4, 0.

Para iniciar este método de ordenamiento primero debemos dividir el numero total de elementos que

componen el vector entre dos y en este caso seria 6/2= 3 lo cual indica el numero de saltos para realizar el

recorrido del vector

Recorrido Salto Lista Recorrida Intercambio

1 3 2,1,4,5,0,3,5,6 (6,2),(5,4),(6,0),(2,0)

2 3 0,1,4,2,3,5,6 (2,0)

3 3 0,1,4,2,3,5,6 No hay intercambio

4 3 0,1,2,3,4,5,6 (4,2),(4,3)

5 3 0,1,2,3,4,5,6 No hay intercambio

Page 5: Programacion dinamica

MÉTODO DE ORDENAMIENTO POR BURBUJA

• El método de ordenamiento por burbuja es uno de los mas conocidos

ya que es fácil de emplear y no requiere de gran conocimiento para el

desarrollo del mismo y por ende es un de los métodos de

ordenamiento menos eficientes que existe en la actualidad.

• El ordenamiento por burbuja o ordenamiento por hundimiento funciona

revisando cada elemento del vector que va hacer ordenado, con el

siguiente intercambiando posiciones si los elementos esta ordenados

de manera equivocada

Page 6: Programacion dinamica

EJEMPLO DE ORDENAMIENTO POR

BURBUJA • Ordenar de manera accedente un vector de 5 elemento.

80 55 35 21 15

80 55 35 21 15

55 80 35 21 15

55 35 80 21 15

55 35 21 80 15

55 35 21 15 80

35 55 21 15 80

35 21 55 15 80

35 21 15 55 80

21 35 15 55 80

15 21 35 55 80

Se necesitaron 4 comparaciones (n-1) para colocar el valor mayor de ultimo

Se inicia comparando los elementos del vector desde el lado izquierdo para así ordenarlos de manera accedente

Page 7: Programacion dinamica

MÉTODO DE ORDENAMIENTO MERGER

SORT 2

• Este método de ordenamiento fue desarrollado por John Von

Neumann en el año 1945 este algoritmo o método de ordenamiento

es similar a Quick Sort ya que estos dos métodos emplean para la

solución de los problemas de ordenamiento la técnica de divide y

vencerás la cual se basa en la descomposición del vector o lista a

ordenar en bloques o partes mas pequeñas para así facilitar el

trabajo de ordenamiento del vector o lista.

Page 8: Programacion dinamica

EJEMPLO DE ORDENAMIENTO MERGE SORT 2 • Este método se basa en la técnica de divides y vencerá por lo cual el vector se va

descomponiendo en partes mas pequeñas para que así sea mas fácil la solución del siguiente

problema.

Page 9: Programacion dinamica

MÉTODO DE LA MOCHILA

El problema de la mochila o algoritmo

de la mochila es un problema de

optimización combinatoria es el único

algoritmo. La función de este algoritmo

consiste en llenar una mochila de

manera que el contenido sea el máximo

posible. Este problema ha sido resuelto

habitualmente mediante programación

lineal entera.

Page 10: Programacion dinamica

EJEMPLO DE METODO DE LA MOCHILA

• El club de baloncestos Unicaja de Málaga quiere contratar un jugador nuevo; para ello, ha

sondeado el mercado y ha encontrado a 5 jugadores que pueden adaptarse a lo requerido por

el entrenador. Para reforzar el equipo el unicaja dispone de un presupuesto máximo de 50.000

€/mes. En la siguiente tabla aparece una relación de los candidatos a ser fichados junto con su

aportación esperada y el sueldo que percibirían:

Como puede apreciarse en este caso, estamos aplicando elproblema de la mochila a una solución de índole económico.Teniendo como intención es elegir los mejores jugadores, cuyaaportación es mayor y proporcionan una mayor utilidad para elunicaja, optimizando también el desembolso que conlleva unanueva contratación. Sin olvidar la restricción de 50.00€.

Page 11: Programacion dinamica

Donde la función objetivo es la suma de las utilidades que reporta cada jugador y representa, portanto, la utilidad que percibirá Unicaja en la función de la combinación de jugadores que elija,puesto que se trata de la utilidad del club de baloncesto le interesa que sea la mayor posible. Deahí que el objetivo sea maximizar la función.

En cuanto a la restricción, es la restricción presupuestaria del equipo, es decir, son los 50.00€mensuales de los que dispone unicaja para remunerar a sus nuevos jugadores.

Si llamamos xi al jugador “i” el problema a resolver es:

Page 12: Programacion dinamica

Para resolverlo utilizaremos las dos formas vistas. Primero utilizando elplanteamiento “lógico”; escogeremos como criterio el ratio “Aportación/Sueldo”.Ya que tenemos en cuenta ambos factores en la decisión: mientras más alto seael ratio, preferible será contratar a ese jugador. Reconsideramos el sueldo,dividiendo por 1.000 para hacer el ratio más operativo:

Como se ha mencionado escogeremos aquellos jugadores con mejor ratio hasta agotar el presupuesto.Jugador 5: ratio = 0,58333, sueldo = 12.000 €Jugador 4: ratio = 0,41666, sueldo = 36.000 €Como el total disponible era de 50.000 € y tenemos acumulado 48.000 € no hay más jugadores cuyo sueldo pueda entrar en presupuesto, así que este es nuestro resultado definitivo de este método.

Page 13: Programacion dinamica

Por otra parte, resolviendo obtenemos la misma solución contratando a lo0s jugadores 3 y 5. La utilidad para el equipo de los jugadores nuevo al equipo 22.

Page 14: Programacion dinamica