SlideShare una empresa de Scribd logo
1 de 12
Descargar para leer sin conexión
UNIVERSIDAD NACIONAL DE TRUJILLO
Facultad de Ciencias Físicas y
Matemáticas
Escuela Profesional de Informática
MONOGRAFIA
PROBLEMA DE LA MOCHILA
Autores :
Malpartida Aranda Vanessa Jaqueline
Sánchez Aranda Erwin Joao
TRUJILLO- PERU
2014
P á g i n a | 2
INDICE
1. Dedicatoria ......................................................................................................................3
2. Introducción.....................................................................................................................4
3. Marco Teórico .................................................................................................................5
3.1. Realidad Problemática .............................................................................................5
4. Capítulo I: Conceptos y Algoritmos................................................................................5
4.1. Backtracking ............................................................................................................5
4.2. Algoritmo Voraz......................................................................................................6
5. Capítulo II: Problema de la Mochila ...............................................................................8
5.1. Definición ................................................................................................................8
5.2. Planteamiento del problema.....................................................................................8
5.3. Solución Óptima ......................................................................................................8
5.4. Código en Prolog .....................................................................................................9
6. Conclusiones .................................................................................................................11
7. Anexos...........................................................................................................................11
8. Referencias ....................................................................................................................12
8.1. Bibliográficas.........................................................................................................12
8.2. Webgráficas ...........................................................................................................12
P á g i n a | 3
1. Dedicatoria
A los estudiantes de
Ciencias de la Computación,
investigadores interesados en la
resolución de problemas computacionales
y personas interesadas en el lenguaje de
programación Prolog.
A nuestros docentes, familiares que día a
día nos apoyan en nuestra formación no
solo académica sino también social y a
nuestros compañeros, con quienes
intercambiamos valioso conocimiento.
P á g i n a | 4
2. Introducción
El problema de la mochila, comúnmente abreviado por KP (proveniente del inglés
Knapsack Problem), es un problema de optimización combinatoria, es decir, que busca la
mejor solución entre un conjunto de posibles soluciones a un problema.
Este problema 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.
En teoría de la complejidad computacional, NP es el acrónimo en inglés de nondeterministic
polynomial time ("tiempo polinomial no determinista"). Es el conjunto de problemas que
pueden ser resueltos en tiempo polinómico por una máquina de Turing no determinista.
La importancia de esta clase de problemas de decisión es que contiene muchos problemas
de búsqueda y de optimización para los que se desea saber si existe una cierta solución o si
existe una mejor solución que las conocidas. En esta clase están por ejemplo, el problema
del viajante (también llamado "problema del viajante de comercio" o "problema del agente
viajero") donde se quiere saber si existe una ruta óptima que pasa por todos los nodos en
un cierto grafo y el problema de satisfacibilidad booleana en donde se desea saber si una
cierta fórmula de lógica proposicional puede ser cierta para algún conjunto de valores
booleanos para las variables.
Dada su importancia, se han hecho muchos esfuerzos para encontrar algoritmos que
decidan algún problema de NP en tiempo polinómico. Sin embargo, pareciera que para
algunos problemas de NP (los del conjunto NP-completo) no es posible encontrar un
algoritmo mejor que simplemente realizar una búsqueda exhaustiva.
La clase de complejidad NP-completo es el subconjunto de los problemas de decisión en
NP tal que todo problema en NP se puede reducir en cada uno de los problemas de NP-
completo. Se puede decir que los problemas de NP-completo son los problemas más
difíciles de NP y muy probablemente no formen parte de la clase de complejidad P. La
razón es que de tenerse una solución polinómica para un problema NP-completo, todos los
problemas de NP tendrían también una solución en tiempo polinómico.
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.
En esta monografía se abordarán algoritmos utilizados para resolver el problema de la
mochila para luego explicar paso a paso su implementación en lenguaje Prolog.
P á g i n a | 5
3. Marco Teórico
3.1. Realidad Problemática
Actualmente se ha visto una decadencia en lo referente a investigación de los
problemas computacionales convencionales, poco interés de parte de los estudiantes
de Ciencias de la Computación . Sin embargo, el problema abordado en esta
monografía, resulta de mucha utilidad para poder entender mejor algoritmos de
búsquedas y selección, ya que resulta no muy complicado de analizar y
posteriormente sencillo de implementar. Esto será logrado mediante el lenguaje de
programación Prolog, que gracias a su proceso de Backtracking, nos permitirá un
mejor manejo de los procedimiento para la obtención de resultados, siendo
ventajoso al mismo tiempo el aumento de nivel de conocimiento que brinda a los
estudiantes, quienes posteriormente al utilizar esta tecnología serán capaces de
resolver problemas de este tipo sin la complejidad que podrían haber tenido antes.
4. Capítulo I: Conceptos y Algoritmos
4.1.Backtracking
También llamado Vuelta Atrás, es una estrategia para encontrar soluciones a
problemas que satisfacen restricciones. El término "backtrack" fue acuñado por
primera vez por el matemático estadounidense D. H. Lehmer en la década de 1950.
En su forma básica, la idea de backtracking se asemeja a un recorrido en profundidad
dentro de un grafo dirigido. El objetivo del recorrido es encontrar soluciones para
algún problema.
La ejecución en Prolog se basa en el concepto del backtracking así como de la
unificación, gracias a la segunda, cada objetivo determina un subconjunto de
cláusulas susceptibles de ser ejecutadas. Cada una de ellas se denomina punto de
elección. Prolog selecciona el primer punto de elección y sigue ejecutando el
programa hasta determinar si el objetivo es verdadero o falso. En caso de ser falso
entra en juego el backtracking que funciona de la siguiente manera:
 Cuando se va ejecutar un objetivo, Prolog sabe de antemano cuantas
soluciones alternativas puede tener. Cada una de las alternativas se
denomina punto de elección. Dichos puntos de elección se anotan
internamente y de forma ordenada. Para ser exactos, se introducen en una
pila.
 Se escoge el primer punto de elección y se ejecuta el objetivo eliminando el
punto de elección en el proceso.
 Si el objetivo tiene éxito se continúa con el siguiente objetivo aplicándole
estas mismas normas.
 Si el objetivo falla, Prolog da vuelta atrás recorriendo los objetivos que
anteriormente sí tuvieron éxito y deshaciendo las ligaduras de sus variables.
Es decir, comienza el backtracking.
P á g i n a | 6
 Cuando uno de esos objetivos tiene un punto de elección anotado, se detiene
el backtracking y se ejecuta de nuevo dicho objetivo usando la solución
alternativa. Las variables se ligan a la nueva solución y la ejecución continúa
de nuevo hacia adelante. El punto de elección se elimina en el proceso.
 El proceso se repite mientras haya objetivos y puntos de elección anotados.
De hecho, se puede decir que un programa Prolog ha terminado su ejecución
cuando no le quedan puntos de elección anotados ni objetivos por ejecutar en
la secuencia. Además, los puntos de elección se mantienen aunque al final la
conjunción tenga éxito. Esto permite posteriormente conocer todas las
soluciones posibles.
El siguiente es un algoritmo genérico de backtracking:
Donde:
Solución? (·) es una función que retorna verdadero si su argumento es una
solución.
procesarSolucion (·), depende del problema y que maneja una solución.
Sucesores (·) es una función que dado un candidato, genera todos los
candidatosque son extensiones de este.
Terminar?es una variable global booleana inicialmente es falsa, pero que
puedeser hecha verdadera por procesarSolucion, en caso que solo interesa
encontrar una solución.
4.2.Algoritmo Voraz
Un algoritmo voraz también conocido como ávido, devorador o goloso es aquel que,
para resolver un determinado problema, sigue una heurística consistente en elegir la
opción óptima en cada paso local con la esperanza de llegar a una solución general
óptima. Una forma de ver los algoritmos voraces es considerar la estrategia de Vuelta
atrás, en la cual se vuelve recursivamente a decisiones anteriormente tomadas para
variar la elección entonces tomada, pero eliminando esa recursión y eligiendo la
mejor opción.
Los algoritmos voraces tienden a ser bastante eficientes y pueden implementarse de
forma relativamente sencilla. Su eficiencia se deriva de la forma en que trata los
datos, llegando a alcanzar muchas veces una complejidad de orden lineal. Sin
embargo, la mayoría de los intentos de crear un algoritmo voraz correcto fallan a
menos que exista previamente una prueba precisa que demuestre la correctitud del
algoritmo.
P á g i n a | 7
Un algoritmo voraz funciona por pasos:
 Inicialmente partimos de una solución vacía.
 En cada paso se escoge el siguiente elemento para añadir a la solución, entre
los candidatos.
 Una vez tomada esta decisión no se podrá deshacer.
 El algoritmo acabará cuando el conjunto de elementos seleccionados
constituya una solución.
Esquema general de un algoritmo voraz:
Donde:
 solución(S).Comprueba si un conjunto de candidatos es una solución
(independientemente de que sea óptima o no).
 seleccionar(C). Devuelve el elemento más “prometedor” del conjunto de
candidatos pendientes.
 factible (S, x). Indica si a partir del conjunto S y añadiendo x, es posible
construir una solución.
 insertar (S, x). Añade el elemento x al conjunto solución. Además, puede ser
necesario hacer otras cosas.
P á g i n a | 8
5. Capítulo II: Problema de la Mochila
5.1. Definición
Se modela una situación análoga al de 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.
El problema de la mochila es definido formalmente como:
“Se tiene una determinada instancia de KP con un conjunto de objetos N, que consiste
de n objetos j con ganancia pj y peso wj, y una capacidad C, usualmente, los valores son
tomados como números enteros positivos. El objetivo es seleccionar un subconjunto de
N tal que la ganancia total de esos objetos seleccionados es maximizado y el total de los
pesos no excede a c.”
El problema se puede expresar matemáticamente por medio del siguiente programa
lineal:
5.2. Planteamiento del problema
"Se tiene una mochila de emergencia que es capaz de soportar un peso máximo P, así
como un conjunto de objetos, cada uno de ellos con un peso y un valor de prioridad.
La solución pasa por conseguir introducir el máximo valor en la mochila, eligiendo
los objetos adecuados. Cada objeto debe tomarse completo”.
5.3. Solución Óptima
Si los objetos ingresados a la mochila, cumplen con la restricción de que la suma de
sus pesos es menor o igual a la capacidad de la mochila y que la suma de sus valores
es el máximo valor posible.
P á g i n a | 9
5.4.Código en Prolog
P á g i n a | 10
Donde al ejecutar por ejemplo lo siguiente:
Nos brindara la solución óptima, siendo para este caso:
Que maximiza el valor, obteniendo al final 136 con el peso de 4, en vez de una solución por
fuerza bruta, que elegiría al primer elemento, completando el peso 4 pero con solo 92 de
valor.
P á g i n a | 11
6. Conclusiones
 Podemos concluir que si bien, se encuentra una solución óptima con la ayuda de los
algoritmos voraces, esto solo es posible si es que la cantidad de objetos no es
demasiado grande, caso contrario, el tiempo en que se tardaría para encontrar una
solución sería enorme o simplemente podría fallar la búsqueda.
 Nos damos cuenta, que el uso del lenguaje de programación Prolog, nos da ventajas
debido a su proceso de Backtracking, el cual nos permite hallar el conjunto de
soluciones de una manera entendible y rápida.
 Finalmente tenemos que si se encuentra alguna forma de desarrollar un algoritmo
para resolver los problemas de tipo NP-Completo, que no sea de la forma exhaustiva,
se habrá hecho un gran hallazgo en el campo de las Ciencias de la Computación,
además de que ese algoritmo creado, permitirá también su aplicación para todos los
demás problemas de tipo NP-Completo de acuerdo a su definición.
7. Anexos
Glosario de Términos:
 NP: En teoría de la complejidad computacional, NP es el acrónimo en inglés de
nondeterministic polynomial time (tiempo polinomial no determinista). Es el
conjunto de problemas que pueden ser resueltos en tiempo polinómico por una
máquina de Turing no determinista.
 NP-Completo: En teoría de la complejidad computacional, la clase de complejidad
NP-completo es el subconjunto de los problemas de decisión en NP tal que todo
problema en NP se puede reducir en cada uno de los problemas de NP-completo.
 Prolog: proveniente del francés PROgrammation en LOGique, es un lenguaje para
programar mediante el paradigma lógico con técnicas de producción final
interpretada. Es bastante conocido en el área de la Ingeniería Informática para
investigación en Inteligencia Artificial.
 Backtracking: es una estrategia para encontrar soluciones a problemas que
satisfacen restricciones. El término "backtrack" fue acuñado por primera vez por el
matemático estadounidense D. H. Lehmer en la década de 1950.
 Heurística: se define como un conjunto de reglas metodológicas no
necesariamente forzosas, positivas y negativas, que sugieren o establecen cómo
proceder y qué problemas evitar a la hora de generar soluciones y elaborar
hipótesis
P á g i n a | 12
8. Referencias
8.1.Bibliográficas
1. Campos J, “Esquemas algorítmicos: Algoritmos voraces”. Consultado el 2104.
2. Tomas Bruno, “Modelos y Optimización”, Facultad de Ingeniería de la Universidad
de Buenos Aires, 2013.
3. Velasco Álvarez Jonás, “Combinatoria”, Universidad Autónoma de Nuevo León.
Consultado el 2014
4. Christos H. Papadimitriou, “Computational Complexity", USA, 1994.
5. Vijay V. Vazirani, “Approximation Algorithms”, Berlin, Germany, 2001.
6. Hans Kellerer, Ulrich Pferschy, David Pisinger, “Knapsack Problem", Berlin,
Germany, 2004.
8.2.Webgráficas
1. http://es.wikibooks.org/wiki/Algoritmia/Algoritmos_voraces
2. http://es.wikipedia.org/wiki/Algoritmo_voraz
3. http://www.genbetadev.com/respuestas/que-es-el-backtracking
4. http://programacion.net/articulo/tutorial_basico_de_programacion_en_prolog_5
8/4
5. http://es.wikipedia.org/wiki/Vuelta_atr%C3%A1s
6. http://es.wikibooks.org/wiki/Programaci%C3%B3n_din%C3%A1mica/Problem
a_de_la_mochila

Más contenido relacionado

La actualidad más candente

Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialJuank Grifin
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortlinkinpark03
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoJosé Antonio Sandoval Acosta
 
Todo sobre inteligencia artificial métodos de búsqueda ia
Todo sobre inteligencia artificial  métodos de búsqueda iaTodo sobre inteligencia artificial  métodos de búsqueda ia
Todo sobre inteligencia artificial métodos de búsqueda iajuliogtz28
 
Metodos de busqueda
Metodos de busquedaMetodos de busqueda
Metodos de busquedamcamila25
 
Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)Fernando Solis
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de usoSaul Mamani
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificaciónAlex Uhu Colli
 
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaEjercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaHéctor Estigarribia
 
Caso de uso de biblioteca
Caso de uso de bibliotecaCaso de uso de biblioteca
Caso de uso de bibliotecapersye
 
Algoritmos de Busqueda
Algoritmos de BusquedaAlgoritmos de Busqueda
Algoritmos de BusquedaFernando Solis
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..NANO-06
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaRolf Pinto
 

La actualidad más candente (20)

Tipos de listas en estructura de datos
Tipos de listas en estructura de datosTipos de listas en estructura de datos
Tipos de listas en estructura de datos
 
PROBLEMA DE LA MOCHILA
PROBLEMA DE LA MOCHILAPROBLEMA DE LA MOCHILA
PROBLEMA DE LA MOCHILA
 
Tipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia ArtificialTipos de búsqueda en Inteligencia Artificial
Tipos de búsqueda en Inteligencia Artificial
 
Método de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sortMétodo de ordenamiento por selección (selection sort
Método de ordenamiento por selección (selection sort
 
Colas
ColasColas
Colas
 
Estructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamientoEstructura de Datos - Unidad 5 metodos de ordenamiento
Estructura de Datos - Unidad 5 metodos de ordenamiento
 
Ordenamiento parte 2
Ordenamiento parte 2Ordenamiento parte 2
Ordenamiento parte 2
 
Todo sobre inteligencia artificial métodos de búsqueda ia
Todo sobre inteligencia artificial  métodos de búsqueda iaTodo sobre inteligencia artificial  métodos de búsqueda ia
Todo sobre inteligencia artificial métodos de búsqueda ia
 
Metodos de busqueda
Metodos de busquedaMetodos de busqueda
Metodos de busqueda
 
Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)Introducción a Tipos de Datos Abstractos (TDA)
Introducción a Tipos de Datos Abstractos (TDA)
 
2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso2. Casos de uso y diagramas de casos de uso
2. Casos de uso y diagramas de casos de uso
 
Cuadro sinóptico estructuras de datos y su clasificación
Cuadro sinóptico   estructuras de datos y su clasificaciónCuadro sinóptico   estructuras de datos y su clasificación
Cuadro sinóptico estructuras de datos y su clasificación
 
Listas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de DatosListas,pilas y colas Estructura de Datos
Listas,pilas y colas Estructura de Datos
 
Ejercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informadaEjercicios de búsqueda a Ciegas y Búsqueda informada
Ejercicios de búsqueda a Ciegas y Búsqueda informada
 
Caso de uso de biblioteca
Caso de uso de bibliotecaCaso de uso de biblioteca
Caso de uso de biblioteca
 
Listas,pilas&colas yorka
Listas,pilas&colas yorkaListas,pilas&colas yorka
Listas,pilas&colas yorka
 
Algoritmos de Busqueda
Algoritmos de BusquedaAlgoritmos de Busqueda
Algoritmos de Busqueda
 
Pilas como estructura de datos..
Pilas como estructura de datos..Pilas como estructura de datos..
Pilas como estructura de datos..
 
Teoría De La Complejidad Algoritmica
Teoría De La Complejidad AlgoritmicaTeoría De La Complejidad Algoritmica
Teoría De La Complejidad Algoritmica
 
Metodo de busqueda
Metodo de busquedaMetodo de busqueda
Metodo de busqueda
 

Similar a Monografia - Problema de la Mochila

Problema de la ocho reinas. Implementación en Prolog.
Problema de la ocho reinas. Implementación en Prolog.Problema de la ocho reinas. Implementación en Prolog.
Problema de la ocho reinas. Implementación en Prolog.Mayra Villanueva
 
Taller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfTaller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfHectorSantiagoOrtizV1
 
Taller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfTaller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfHectorSantiagoOrtizV1
 
Taller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfTaller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfHectorSantiagoOrtizV1
 
Taller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfTaller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfHectorSantiagoOrtizV1
 
69cfc2bfe8bbf481977db1bf877bde0e1830f102
69cfc2bfe8bbf481977db1bf877bde0e1830f10269cfc2bfe8bbf481977db1bf877bde0e1830f102
69cfc2bfe8bbf481977db1bf877bde0e1830f102maritzatec
 
Metodologia para el analisis y planteamiento del problema
Metodologia para el analisis y planteamiento del problemaMetodologia para el analisis y planteamiento del problema
Metodologia para el analisis y planteamiento del problemayenmary
 
Metodologia solucion de problemas algoritmos (1)
Metodologia solucion de problemas algoritmos (1)Metodologia solucion de problemas algoritmos (1)
Metodologia solucion de problemas algoritmos (1)Levinthon Hernandez Meriño
 
LI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdf
LI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdfLI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdf
LI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdfCESAR ROGELIO TEJADA CASTAÑEDA
 
Clasificacion de los problemas
Clasificacion de los problemasClasificacion de los problemas
Clasificacion de los problemasJohnfornerod
 
Introducción a la programación teoría - 5to 3ra
Introducción a la programación  teoría - 5to 3raIntroducción a la programación  teoría - 5to 3ra
Introducción a la programación teoría - 5to 3raGaby Gonzalez
 
TIC en el Diseño, Desarrollo y Gerencia del Currículo
TIC en el Diseño, Desarrollo y Gerencia del CurrículoTIC en el Diseño, Desarrollo y Gerencia del Currículo
TIC en el Diseño, Desarrollo y Gerencia del CurrículoHector Conde
 

Similar a Monografia - Problema de la Mochila (20)

Problema de la ocho reinas. Implementación en Prolog.
Problema de la ocho reinas. Implementación en Prolog.Problema de la ocho reinas. Implementación en Prolog.
Problema de la ocho reinas. Implementación en Prolog.
 
Taller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfTaller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdf
 
Tecnologia
Tecnologia Tecnologia
Tecnologia
 
Taller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfTaller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdf
 
Taller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfTaller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdf
 
Taller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdfTaller 1 (Hector, camila, Eylin).pdf
Taller 1 (Hector, camila, Eylin).pdf
 
Estructuras_F_CAT
Estructuras_F_CATEstructuras_F_CAT
Estructuras_F_CAT
 
69cfc2bfe8bbf481977db1bf877bde0e1830f102
69cfc2bfe8bbf481977db1bf877bde0e1830f10269cfc2bfe8bbf481977db1bf877bde0e1830f102
69cfc2bfe8bbf481977db1bf877bde0e1830f102
 
Metodologia para el analisis y planteamiento del problema
Metodologia para el analisis y planteamiento del problemaMetodologia para el analisis y planteamiento del problema
Metodologia para el analisis y planteamiento del problema
 
Clase3
Clase3Clase3
Clase3
 
Metodologia solucion de problemas algoritmos (1)
Metodologia solucion de problemas algoritmos (1)Metodologia solucion de problemas algoritmos (1)
Metodologia solucion de problemas algoritmos (1)
 
LI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdf
LI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdfLI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdf
LI_1164_140518_A_Analisis_Diseno_Implantacion_Algoritmos_Plan2016.pdf
 
Clasificacion de los problemas
Clasificacion de los problemasClasificacion de los problemas
Clasificacion de los problemas
 
Ruta critica
Ruta criticaRuta critica
Ruta critica
 
Introducción a la programación teoría - 5to 3ra
Introducción a la programación  teoría - 5to 3raIntroducción a la programación  teoría - 5to 3ra
Introducción a la programación teoría - 5to 3ra
 
Ior
IorIor
Ior
 
TIC en el Diseño, Desarrollo y Gerencia del Currículo
TIC en el Diseño, Desarrollo y Gerencia del CurrículoTIC en el Diseño, Desarrollo y Gerencia del Currículo
TIC en el Diseño, Desarrollo y Gerencia del Currículo
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Maps
MapsMaps
Maps
 

Último

Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMarceloQuisbert6
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxEduardoSnchezHernnde5
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdfCristhianZetaNima
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSaulSantiago25
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingKevinCabrera96
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxMarcelaArancibiaRojo
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVSebastianPaez47
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxSergioGJimenezMorean
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASPersonalJesusGranPod
 
Condensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismoCondensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismosaultorressep
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolicalf1231
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptxguillermosantana15
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónXimenaFallaLecca1
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 

Último (20)

Magnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principiosMagnetismo y electromagnetismo principios
Magnetismo y electromagnetismo principios
 
Flujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptxFlujo multifásico en tuberias de ex.pptx
Flujo multifásico en tuberias de ex.pptx
 
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
04. Sistema de fuerzas equivalentes II - UCV 2024 II.pdf
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Seleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusiblesSeleccion de Fusibles en media tension fusibles
Seleccion de Fusibles en media tension fusibles
 
Principales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards DemingPrincipales aportes de la carrera de William Edwards Deming
Principales aportes de la carrera de William Edwards Deming
 
hitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docxhitos del desarrollo psicomotor en niños.docx
hitos del desarrollo psicomotor en niños.docx
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kVEl proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
El proyecto “ITC SE Lambayeque Norte 220 kV con seccionamiento de la LT 220 kV
 
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptxPPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
PPT SERVIDOR ESCUELA PERU EDUCA LINUX v7.pptx
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
 
Condensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismoCondensadores de la rama de electricidad y magnetismo
Condensadores de la rama de electricidad y magnetismo
 
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
07 MECANIZADO DE CONTORNOS para torno cnc universidad catolica
 
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
¿QUE SON LOS AGENTES FISICOS Y QUE CUIDADOS TENER.pptx
 
Obras paralizadas en el sector construcción
Obras paralizadas en el sector construcciónObras paralizadas en el sector construcción
Obras paralizadas en el sector construcción
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 

Monografia - Problema de la Mochila

  • 1. UNIVERSIDAD NACIONAL DE TRUJILLO Facultad de Ciencias Físicas y Matemáticas Escuela Profesional de Informática MONOGRAFIA PROBLEMA DE LA MOCHILA Autores : Malpartida Aranda Vanessa Jaqueline Sánchez Aranda Erwin Joao TRUJILLO- PERU 2014
  • 2. P á g i n a | 2 INDICE 1. Dedicatoria ......................................................................................................................3 2. Introducción.....................................................................................................................4 3. Marco Teórico .................................................................................................................5 3.1. Realidad Problemática .............................................................................................5 4. Capítulo I: Conceptos y Algoritmos................................................................................5 4.1. Backtracking ............................................................................................................5 4.2. Algoritmo Voraz......................................................................................................6 5. Capítulo II: Problema de la Mochila ...............................................................................8 5.1. Definición ................................................................................................................8 5.2. Planteamiento del problema.....................................................................................8 5.3. Solución Óptima ......................................................................................................8 5.4. Código en Prolog .....................................................................................................9 6. Conclusiones .................................................................................................................11 7. Anexos...........................................................................................................................11 8. Referencias ....................................................................................................................12 8.1. Bibliográficas.........................................................................................................12 8.2. Webgráficas ...........................................................................................................12
  • 3. P á g i n a | 3 1. Dedicatoria A los estudiantes de Ciencias de la Computación, investigadores interesados en la resolución de problemas computacionales y personas interesadas en el lenguaje de programación Prolog. A nuestros docentes, familiares que día a día nos apoyan en nuestra formación no solo académica sino también social y a nuestros compañeros, con quienes intercambiamos valioso conocimiento.
  • 4. P á g i n a | 4 2. Introducción El problema de la mochila, comúnmente abreviado por KP (proveniente del inglés Knapsack Problem), es un problema de optimización combinatoria, es decir, que busca la mejor solución entre un conjunto de posibles soluciones a un problema. Este problema 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. En teoría de la complejidad computacional, NP es el acrónimo en inglés de nondeterministic polynomial time ("tiempo polinomial no determinista"). Es el conjunto de problemas que pueden ser resueltos en tiempo polinómico por una máquina de Turing no determinista. La importancia de esta clase de problemas de decisión es que contiene muchos problemas de búsqueda y de optimización para los que se desea saber si existe una cierta solución o si existe una mejor solución que las conocidas. En esta clase están por ejemplo, el problema del viajante (también llamado "problema del viajante de comercio" o "problema del agente viajero") donde se quiere saber si existe una ruta óptima que pasa por todos los nodos en un cierto grafo y el problema de satisfacibilidad booleana en donde se desea saber si una cierta fórmula de lógica proposicional puede ser cierta para algún conjunto de valores booleanos para las variables. Dada su importancia, se han hecho muchos esfuerzos para encontrar algoritmos que decidan algún problema de NP en tiempo polinómico. Sin embargo, pareciera que para algunos problemas de NP (los del conjunto NP-completo) no es posible encontrar un algoritmo mejor que simplemente realizar una búsqueda exhaustiva. La clase de complejidad NP-completo es el subconjunto de los problemas de decisión en NP tal que todo problema en NP se puede reducir en cada uno de los problemas de NP- completo. Se puede decir que los problemas de NP-completo son los problemas más difíciles de NP y muy probablemente no formen parte de la clase de complejidad P. La razón es que de tenerse una solución polinómica para un problema NP-completo, todos los problemas de NP tendrían también una solución en tiempo polinómico. 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. En esta monografía se abordarán algoritmos utilizados para resolver el problema de la mochila para luego explicar paso a paso su implementación en lenguaje Prolog.
  • 5. P á g i n a | 5 3. Marco Teórico 3.1. Realidad Problemática Actualmente se ha visto una decadencia en lo referente a investigación de los problemas computacionales convencionales, poco interés de parte de los estudiantes de Ciencias de la Computación . Sin embargo, el problema abordado en esta monografía, resulta de mucha utilidad para poder entender mejor algoritmos de búsquedas y selección, ya que resulta no muy complicado de analizar y posteriormente sencillo de implementar. Esto será logrado mediante el lenguaje de programación Prolog, que gracias a su proceso de Backtracking, nos permitirá un mejor manejo de los procedimiento para la obtención de resultados, siendo ventajoso al mismo tiempo el aumento de nivel de conocimiento que brinda a los estudiantes, quienes posteriormente al utilizar esta tecnología serán capaces de resolver problemas de este tipo sin la complejidad que podrían haber tenido antes. 4. Capítulo I: Conceptos y Algoritmos 4.1.Backtracking También llamado Vuelta Atrás, es una estrategia para encontrar soluciones a problemas que satisfacen restricciones. El término "backtrack" fue acuñado por primera vez por el matemático estadounidense D. H. Lehmer en la década de 1950. En su forma básica, la idea de backtracking se asemeja a un recorrido en profundidad dentro de un grafo dirigido. El objetivo del recorrido es encontrar soluciones para algún problema. La ejecución en Prolog se basa en el concepto del backtracking así como de la unificación, gracias a la segunda, cada objetivo determina un subconjunto de cláusulas susceptibles de ser ejecutadas. Cada una de ellas se denomina punto de elección. Prolog selecciona el primer punto de elección y sigue ejecutando el programa hasta determinar si el objetivo es verdadero o falso. En caso de ser falso entra en juego el backtracking que funciona de la siguiente manera:  Cuando se va ejecutar un objetivo, Prolog sabe de antemano cuantas soluciones alternativas puede tener. Cada una de las alternativas se denomina punto de elección. Dichos puntos de elección se anotan internamente y de forma ordenada. Para ser exactos, se introducen en una pila.  Se escoge el primer punto de elección y se ejecuta el objetivo eliminando el punto de elección en el proceso.  Si el objetivo tiene éxito se continúa con el siguiente objetivo aplicándole estas mismas normas.  Si el objetivo falla, Prolog da vuelta atrás recorriendo los objetivos que anteriormente sí tuvieron éxito y deshaciendo las ligaduras de sus variables. Es decir, comienza el backtracking.
  • 6. P á g i n a | 6  Cuando uno de esos objetivos tiene un punto de elección anotado, se detiene el backtracking y se ejecuta de nuevo dicho objetivo usando la solución alternativa. Las variables se ligan a la nueva solución y la ejecución continúa de nuevo hacia adelante. El punto de elección se elimina en el proceso.  El proceso se repite mientras haya objetivos y puntos de elección anotados. De hecho, se puede decir que un programa Prolog ha terminado su ejecución cuando no le quedan puntos de elección anotados ni objetivos por ejecutar en la secuencia. Además, los puntos de elección se mantienen aunque al final la conjunción tenga éxito. Esto permite posteriormente conocer todas las soluciones posibles. El siguiente es un algoritmo genérico de backtracking: Donde: Solución? (·) es una función que retorna verdadero si su argumento es una solución. procesarSolucion (·), depende del problema y que maneja una solución. Sucesores (·) es una función que dado un candidato, genera todos los candidatosque son extensiones de este. Terminar?es una variable global booleana inicialmente es falsa, pero que puedeser hecha verdadera por procesarSolucion, en caso que solo interesa encontrar una solución. 4.2.Algoritmo Voraz Un algoritmo voraz también conocido como ávido, devorador o goloso es aquel que, para resolver un determinado problema, sigue una heurística consistente en elegir la opción óptima en cada paso local con la esperanza de llegar a una solución general óptima. Una forma de ver los algoritmos voraces es considerar la estrategia de Vuelta atrás, en la cual se vuelve recursivamente a decisiones anteriormente tomadas para variar la elección entonces tomada, pero eliminando esa recursión y eligiendo la mejor opción. Los algoritmos voraces tienden a ser bastante eficientes y pueden implementarse de forma relativamente sencilla. Su eficiencia se deriva de la forma en que trata los datos, llegando a alcanzar muchas veces una complejidad de orden lineal. Sin embargo, la mayoría de los intentos de crear un algoritmo voraz correcto fallan a menos que exista previamente una prueba precisa que demuestre la correctitud del algoritmo.
  • 7. P á g i n a | 7 Un algoritmo voraz funciona por pasos:  Inicialmente partimos de una solución vacía.  En cada paso se escoge el siguiente elemento para añadir a la solución, entre los candidatos.  Una vez tomada esta decisión no se podrá deshacer.  El algoritmo acabará cuando el conjunto de elementos seleccionados constituya una solución. Esquema general de un algoritmo voraz: Donde:  solución(S).Comprueba si un conjunto de candidatos es una solución (independientemente de que sea óptima o no).  seleccionar(C). Devuelve el elemento más “prometedor” del conjunto de candidatos pendientes.  factible (S, x). Indica si a partir del conjunto S y añadiendo x, es posible construir una solución.  insertar (S, x). Añade el elemento x al conjunto solución. Además, puede ser necesario hacer otras cosas.
  • 8. P á g i n a | 8 5. Capítulo II: Problema de la Mochila 5.1. Definición Se modela una situación análoga al de 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. El problema de la mochila es definido formalmente como: “Se tiene una determinada instancia de KP con un conjunto de objetos N, que consiste de n objetos j con ganancia pj y peso wj, y una capacidad C, usualmente, los valores son tomados como números enteros positivos. El objetivo es seleccionar un subconjunto de N tal que la ganancia total de esos objetos seleccionados es maximizado y el total de los pesos no excede a c.” El problema se puede expresar matemáticamente por medio del siguiente programa lineal: 5.2. Planteamiento del problema "Se tiene una mochila de emergencia que es capaz de soportar un peso máximo P, así como un conjunto de objetos, cada uno de ellos con un peso y un valor de prioridad. La solución pasa por conseguir introducir el máximo valor en la mochila, eligiendo los objetos adecuados. Cada objeto debe tomarse completo”. 5.3. Solución Óptima Si los objetos ingresados a la mochila, cumplen con la restricción de que la suma de sus pesos es menor o igual a la capacidad de la mochila y que la suma de sus valores es el máximo valor posible.
  • 9. P á g i n a | 9 5.4.Código en Prolog
  • 10. P á g i n a | 10 Donde al ejecutar por ejemplo lo siguiente: Nos brindara la solución óptima, siendo para este caso: Que maximiza el valor, obteniendo al final 136 con el peso de 4, en vez de una solución por fuerza bruta, que elegiría al primer elemento, completando el peso 4 pero con solo 92 de valor.
  • 11. P á g i n a | 11 6. Conclusiones  Podemos concluir que si bien, se encuentra una solución óptima con la ayuda de los algoritmos voraces, esto solo es posible si es que la cantidad de objetos no es demasiado grande, caso contrario, el tiempo en que se tardaría para encontrar una solución sería enorme o simplemente podría fallar la búsqueda.  Nos damos cuenta, que el uso del lenguaje de programación Prolog, nos da ventajas debido a su proceso de Backtracking, el cual nos permite hallar el conjunto de soluciones de una manera entendible y rápida.  Finalmente tenemos que si se encuentra alguna forma de desarrollar un algoritmo para resolver los problemas de tipo NP-Completo, que no sea de la forma exhaustiva, se habrá hecho un gran hallazgo en el campo de las Ciencias de la Computación, además de que ese algoritmo creado, permitirá también su aplicación para todos los demás problemas de tipo NP-Completo de acuerdo a su definición. 7. Anexos Glosario de Términos:  NP: En teoría de la complejidad computacional, NP es el acrónimo en inglés de nondeterministic polynomial time (tiempo polinomial no determinista). Es el conjunto de problemas que pueden ser resueltos en tiempo polinómico por una máquina de Turing no determinista.  NP-Completo: En teoría de la complejidad computacional, la clase de complejidad NP-completo es el subconjunto de los problemas de decisión en NP tal que todo problema en NP se puede reducir en cada uno de los problemas de NP-completo.  Prolog: proveniente del francés PROgrammation en LOGique, es un lenguaje para programar mediante el paradigma lógico con técnicas de producción final interpretada. Es bastante conocido en el área de la Ingeniería Informática para investigación en Inteligencia Artificial.  Backtracking: es una estrategia para encontrar soluciones a problemas que satisfacen restricciones. El término "backtrack" fue acuñado por primera vez por el matemático estadounidense D. H. Lehmer en la década de 1950.  Heurística: se define como un conjunto de reglas metodológicas no necesariamente forzosas, positivas y negativas, que sugieren o establecen cómo proceder y qué problemas evitar a la hora de generar soluciones y elaborar hipótesis
  • 12. P á g i n a | 12 8. Referencias 8.1.Bibliográficas 1. Campos J, “Esquemas algorítmicos: Algoritmos voraces”. Consultado el 2104. 2. Tomas Bruno, “Modelos y Optimización”, Facultad de Ingeniería de la Universidad de Buenos Aires, 2013. 3. Velasco Álvarez Jonás, “Combinatoria”, Universidad Autónoma de Nuevo León. Consultado el 2014 4. Christos H. Papadimitriou, “Computational Complexity", USA, 1994. 5. Vijay V. Vazirani, “Approximation Algorithms”, Berlin, Germany, 2001. 6. Hans Kellerer, Ulrich Pferschy, David Pisinger, “Knapsack Problem", Berlin, Germany, 2004. 8.2.Webgráficas 1. http://es.wikibooks.org/wiki/Algoritmia/Algoritmos_voraces 2. http://es.wikipedia.org/wiki/Algoritmo_voraz 3. http://www.genbetadev.com/respuestas/que-es-el-backtracking 4. http://programacion.net/articulo/tutorial_basico_de_programacion_en_prolog_5 8/4 5. http://es.wikipedia.org/wiki/Vuelta_atr%C3%A1s 6. http://es.wikibooks.org/wiki/Programaci%C3%B3n_din%C3%A1mica/Problem a_de_la_mochila