problema de la mochila

16
1 UNIVERSIDAD NACIONAL DE TRUJILLO FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS ESTUDIANTES DE INGENIERIA INFORMATICA MONOGRAFIA PROBLEMA DE LA MOCHILA EN PROGRAMACION LOGICA AUTORES: QUISPE MORENOS JULISSA VANESSA RODRIGUEZ RODRIGUEZ EVELIN LEYDY RODRIGUEZ SANDOVAL LOURDES CAROLINA SALDAÑA RAMOS EDINSON AUGUSTO TRUJILLO-PERU 2014

Upload: evelin-rodriguez-rodriguez

Post on 06-Jul-2015

513 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: PROBLEMA DE LA MOCHILA

1

UNIVERSIDAD NACIONAL DE TRUJILLO

FACULTAD DE CIENCIAS FISICAS Y MATEMATICAS

ESTUDIANTES DE INGENIERIA INFORMATICA

MONOGRAFIA

PROBLEMA DE LA MOCHILA EN PROGRAMACION LOGICA

AUTORES:

QUISPE MORENOS JULISSA VANESSA

RODRIGUEZ RODRIGUEZ EVELIN LEYDY

RODRIGUEZ SANDOVAL LOURDES CAROLINA

SALDAÑA RAMOS EDINSON AUGUSTO

TRUJILLO-PERU

2014

Page 2: PROBLEMA DE LA MOCHILA

2

INDICE

DEDICATORIA……………………………………………………………………. 3

INTRODUCCION ………………………………………………………………. 4

1. MARCO TEORICO

1.1. CAPITULO I : …………………………………………………………. 5

1.1.1. HISTORIA DEL PROBLEMA DE LA MOCHILA

1.1.2 DEFINICION PROBLEMA DE LA MOCHILA

1.2. CAPITULO II …………………………………………………………… 6

1.2.1 CASOS EN LOS QUE SE PRESENTA EL PROBLEMA DE LA MOCHILA

1.2.2 METODOS DE RESOLUCION

1.3. CAPITULO III …………………………………………………………… 9

1.3.1 PLANTEAMIENTO DEL PROBLEMA DE LA MOCHILA

1.3.2 PSEUDOCODIGO

1.4. CAPITULO IV ………………………………………………………….. 11

1.4.1 APLICACIONES A LA SOCIEDAD

1.4.2 CODIGO EN PROLOG

CONCLUSIONES……………………………………………………………….. 12

ANEXOS………………………………………………………………………….. 13

BIBLIOGRAFIAS……………………………………………………………….. 14

Page 3: PROBLEMA DE LA MOCHILA

3

A todos los estudiantes de ciencia

y tecnología, ya que gracias a la

investigación y esfuerzo que

damos, lograremos el progreso y

desarrollo de la humanidad.

Además también a nuestro

profesor Arturo Díaz Pulido de

programación lógica por la guía y

la orientación prestado para así

lograr el objetivo de este trabajo.

Page 4: PROBLEMA DE LA MOCHILA

4

INTRODUCCION

El presente trabajo está diseñado de forma práctica y sencilla para entender

el problema de la mochila en programación lógica, haciendo uso de los

conceptos, uso, el desarrollo a través de ejemplos y la importancia dando

una breve descripción de cada punto planteado.

El problema de la mochila recoge una situación que se presenta con cierta

frecuencia en los ambos económico e industrial, donde la mochila suele

representar la restricción presupuestaria (cantidad máxima de recursos

económicos de los que se dispone) y donde la utilidad de los objetos

seleccionados se equipara a un beneficio económico por adquirir o llevar a

cabo ciertas acciones.

Al mismo tiempo el tema específico sobre la mochila para esta monografía

permite conocer y saber la solución usando reglas y hechos además de sus

aplicaciones.

Page 5: PROBLEMA DE LA MOCHILA

5

MARCO TEORICO

CAPITULO I

HISTORIA PROBLEMA DE LA MOCHILA :

El problema de la mochila es uno de los 21 problemas NP-completos de Richard

Karp, establecidos por el informático teórico en un famoso artículo de 1972.

Ha sido intensamente estudiado desde mediados del siglo XX y se hace referencia a

él en el año 1897, en un artículo de George Mathews Ballard.

Si bien la formulación del problema es sencilla, su resolución es más compleja.

Algunos algoritmos existentes pueden resolverlo en la práctica para casos de un

gran tamaño. Sin embargo, la estructura única del problema, y el hecho de que se

presente como un subproblema de otros problemas más generales, lo convierten

en un problema frecuente en la investigación.

DEFINICION PROBLEMA DE LA MOCHILA:

El problema de la mochila, comúnmente abreviado por KP (del inglés Knapsack

problem) es un problema de optimización combinatoria.

Busca la mejor solución entre un conjunto de posibles soluciones a un problema.

Modela una situación análoga al llenar una mochila, incapaz de soportar más de un

peso determinado, con todo o parte de un conjunto de objetos, cada uno con un peso

y valor específicos.

Los objetos colocados en la mochila deben maximizar el valor total sin exceder el peso

máximo.

Page 6: PROBLEMA DE LA MOCHILA

6

CAPITULO II

CASOS EN LOS QUE SE PRESENTA EL PROBLEMA DE LA MOCHILA:

a) Problema de la mochila simple:

Llamado problema de la mochila supercreciente.

Es un tipo de problema de la mochila (problema NP-completo) al que le aplican

una serie de condiciones que hacen que pueda ser planteado como un problema de

la suma de subconjuntos (problema NP-completo) .

Si tiene solución, esta será única.

Observar que en un problema de la mochilla 0-1, si para cada tipo de ítem el

beneficio y los pesos son idénticos (vi=wi), entonces el problema quedaría

formulado de la siguiente forma:

Se verifica:

Resolución:

La solución es muy fácil debido a que la secuencia S es una secuencia

supercreciente:

Se recorren los elementos de la mochila de mayor a menor comprobando si dicho

valor es menor que T.

Si es mayor, ese valor no estará en la suma y por tanto en la posición

correspondiente del vector solución xi habrá un 0.

Page 7: PROBLEMA DE LA MOCHILA

7

En caso contrario tendrá un 1 y se continuará la resolución con los restantes

elementos de la mochila para el problema T-Sj.Para este tipo de problemas, en el

caso de que exista la solución, esta será única.

Aplicación:

A la criptografía

b) Problema de la mochila de múltiple elección:

Si en un problema de la mochila 0-1 los ítems están subdivididos en k clases,

denotadas por Ni, y exactamente un ítem tienen que ser tomado de cada clase

c) Problema de la mochila múltiple:

Si en un problema de la mochila 0-1 tenemos n ítems y m mochilas con

capacidades Wi .

Un caso especial del problema de la mochila múltiple es cuando los beneficios

son iguales a los pesos y todas las mochilas tienen la misma capacidad.

Se le llama problema de la múltiple suma de subconjuntos.

Page 8: PROBLEMA DE LA MOCHILA

8

Métodos de resolución

Algoritmos voraces:

Consiste en introducir en la mochila según orden decreciente de utilidad

(beneficio) los diversos objetos.

En una primera etapa, se adicionarán unidades enteras hasta que, por motivo de

capacidad, no sea posible seguir introduciendo enteros y haya que añadir la

porción que quepa del siguiente objeto.

Concepto de solución óptima:

Teorema:

si se ordenan los objetos de forma de decreciente en cuanto a su relación

(utilidad/ponderación = bi/ci) y se introducen en la mochila enteros en este orden

mientras quepan y cuando no quede capacidad para uno entero se añade la

porción que aún tenga cabida el resultado al que se llega es una solución óptima.

Algoritmo goloso:

Mientras no se haya excedido el peso de la mochila, seguir agregando a la mochila

i..

- ….mayor beneficio vi.

- ….tenga menor peso wi.

- ….tenga mayor rentabilidad vi/wi.

Page 9: PROBLEMA DE LA MOCHILA

9

TIPO DE BUSQUEDA:

También realiza una búsqueda con retroceso (Backtracking)

Esta técnica es también llamada búsqueda con vuelta atrás, el termino se utiliza

para la búsqueda primero en profundidad que elige valores para ua variable a la

vez(solo genera un sucesor a la vez) y vueeve atrás cuando una variable no tiene

ningún valor legal para asignarse.

La idea es encontrar la mejor combinación en un momento determinado, por eso

se dice que este tipo de algoritmo es una búsqueda en profundidad. Durante la

búsqueda, si se encuentra una alternativa incorrecta, la búsqueda retrocede hasta

el paso anterior y toma la siguiente alternativa. Cuando se han terminado las

posibilidades, se vuelve a la elección anterior y se toma la siguiente opción. Si no

hay más alternativas la búsqueda falla. De esta manera, se crea un árbol implícito,

el en que cada nodo es un estado de la solución.

Page 10: PROBLEMA DE LA MOCHILA

10

CAPITULO III

PLANTEAMIENTO DEL PROBLEMA DE LA MOCHILA:

En esta imagen se tiene una mochila con una capacidad de 15 kg que se puede

llenar con cajas de distinto peso y valor, el problema planteado seria que cajas

elegir de modo de maximizar las ganancias y no exceder a 15 kg del peso

permitido.

Matemáticamente aquí se muestra como se resuelve este problema de

la mochila:

n objetos: i= 1..n {

Problema: cargar una mochila de capacidad W, maximizando el valor de su carga.

Version I : los objetos se pueden fraccionar = fracción xi, 0≤ Xi ≤ 1

→ el objeto i contribuye

en ,al peso de la carga, limitado por w.

en , al valor de la carga , que se quiere maximizar.

Hipótesis ∑ , sino la solución es trivial.

→en optimo , ∑ .

¿Mejor objeto restante?

Page 11: PROBLEMA DE LA MOCHILA

11

→ Ejemplar de problema:

n= 5, w =100

Selección:

1. ¿Objeto más valioso? ↔ Vi max

2. ¿Objeto más ligero? ↔ wi min

3. ¿Objeto más rentable? ↔ vi/wi max

1 2 3 4 5

vi 20 30 66 40 60

wi 10 20 33 40 50

Vi/wi 2.0 1.5 2.2 1.0 1.2 Objeto (∑ )

Xi(vi max) 0 0 1 0.5 1 146

Xi( wi min) 1 1 1 1 0 156

Xi(vi/wi max) 1 1 1 0 0.8 164

PSEUDOCODIGO:

función Mochila 1( w[ 1..n], v[1..n] ,w) : objetos[1..n]

para i :=1 hasta n hacer

x[i] := 0 ; { la solución se construye en x}

peso :=0;

{bucle voraz:}

mientras peso <= w hacer

i : =el mejor objeto restante; {1}

si peso+w[i] <= w entonces

x[i] := 1;

peso : = peso+w[i]

sino

x[i] := (w-peso)/w[i];

peso := w;

devolver x

fin función

1 2 3 4 5

Vi 20 30 66 40 60

wi 10 20 30 40 50 ∑

Page 12: PROBLEMA DE LA MOCHILA

12

CAPITULO IV APLICACIONES A LA SOCIEDAD:

En la vida real, se utiliza para modelar diferentes situaciones:

en los sistemas de apoyo a las fianzas: para encontrar el mejor equilibrio

entre el capital y rendimiento financiero.

en la carga del barco o avión: todo el equipaje debe ser llevado, sin ser

sobrecargado.

en el corte de materiales: para minimizar las caídas.

El problema de la mochila siempre se explica mejor por medio de un ejemplo.

Supongan que son un ladrón que acaba de entrar a una bóveda, para esto ustedes

solo llevan consigo una mochila que tiene una capacidad limitada, en este caso

de c cantidad de kilos. Ahora ante sus ojos se encuentran con n objetos cada uno

con un valor v y un peso p.Lamentablemente usted no puede llevar todos los

objetos así que debe de escoger aquella combinación de objetos tal que la suma de

sus valores sea máxima y la suma de sus pesos no rebase la capacidad de la

mochila.

En robótica, permite resolver problemas de fabricación para minimizar el número

de desplazamientos para conseguir realizar un número determinado de

perforaciones en una plancha o en un circuito impreso.

Page 13: PROBLEMA DE LA MOCHILA

13

CONCLUSIONES

El problema de la mochila se puede dar solución mediantes algoritmos

voraces y algoritmos.

La implementación se puede desarrollar en distintos lenguajes de

programación como en este caso hemos usado para hallar la solución

programación lógica mediante hechos y reglas.

Para lograr la optimización, aunque este problema suele representar

restricciones presupuestarias, los objetos que son seleccionados deben

equiparse a un beneficio económico para llevar a cabo ciertas acciones

Page 14: PROBLEMA DE LA MOCHILA

14

ANEXOS

Page 15: PROBLEMA DE LA MOCHILA

15

Apéndice A

Fuente página de google:

http://es.wikibooks.org/wiki/Programaci%C3%B3n_din%C3%A1mica/Problema

_de_la_mochila

Apéndice B

http://www.forosdelweb.com/f130/aporte-problema-mochila-963496/

http://www.todoexpertos.com/categorias/ciencias-

eingenieria/matematicas/respuestas/418995/el-problema-de-la-mochila

Page 16: PROBLEMA DE LA MOCHILA

16

BIBLIOGRAFIA

Richard M. Karp (1972). «Reducibility Among Combinatorial Problems». En R. E.

Miller y J. W. Thatcher (editores). Complexity of Computer Computations. Nueva

York: Plenum. pp. 85–103.

Volver arriba ↑ G.B. Mathews, On the partition of numbers, Proceedings of the

London Mathematical Society, 28:486-490, 1897.

Volver arriba ↑ Eric Gossett,"Discrete Mathematics with Proof". Segunda edición.

John Willey 2009.

http://es.wikipedia.org/wiki/Problema_de_la_mochila

Jorge Ramió Aguirre,"Aplicaciones criptográficas: libro guía de la asignatura

seguridad informática". Universidad Politécnica, Escuela Universitaria de

Informática. Enero 1998.