Sábado 14 de Diciembre de 2024, 12:25
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Re: problema de la mochila
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Re: problema de la mochila (Leído 10105 veces)
gatubela
Nuevo Miembro
Mensajes: 1
Re: problema de la mochila
«
en:
Miércoles 5 de Junio de 2002, 05:02 »
0
necesito que me ayuden con el famoso problema de la mochila, el algoritmo de fuerza bruta lo tengo hecho, pero por lo que he averiguado parece que es un problema NP-completo, con grafos. gracias
Tweet
avefenix
Nuevo Miembro
Mensajes: 6
Re: problema de la mochila
«
Respuesta #1 en:
Martes 25 de Junio de 2002, 01:10 »
0
Te ayudaria, pero no conozco el "famoso" problema
chuntaro
Nuevo Miembro
Mensajes: 16
Re: problema de la mochila
«
Respuesta #2 en:
Martes 22 de Octubre de 2002, 17:40 »
0
si me dices el problema???? te garantizo resolverlo!!!
con grafos o , pseudo, codg. o como quieras!!!!
De Profundiis
Miembro activo
Mensajes: 89
Re: problema de la mochila
«
Respuesta #3 en:
Sábado 30 de Noviembre de 2002, 02:44 »
0
Hola,
trataré de explicar de qué va el problema de la mochila.
Supongamos que tenemos
n
elementos y cada uno de estos items tiene un peso y un valor. Y tenemos una "mochila" con una capacidad máxima para aguantar cierto peso (llamémosle M). El problema de la mochila tiene dos versiones.
1) La primera es encontrar la mejor forma de combinar estos elemento en la mochila de forma que el peso de la suma de los items no sobrepase el límite de la mochila y que el valor de la suma de los items sea máximo, dado cierto conjunto de elementos.
2) El segundo es el llamado
problema de la mochila fraccionada
. Aquí en realidad lo que se puede fraccionar son los items. De modo que podrías meter 'medio' item en la mochila hasta llegar al límite del peso y tratando, de nuevo, de obtener el valor más alto sumando todos los items metidos en la mochila. Por supuesto, si metes una fracción de item su valor también se fracciona. Es decir, si tenemos el item 3 que pesa 6 y cuyo valor es 4 y metemos 1/2 item, entonces el peso será 3, pero el valor será 2 (es decir, 4/2=2). Queda claro ¿no?
Según la teoría de la complejidad computacional este problema es NP-completo. Es decir, no tiene un solución eficiente en términos de complejidad temporal. Para casos sencillos se puede resolver sin problemas, pero para casos con muchos items el coste temporal va creciendo exponencialmente, con lo que en problemas con tallas grandes se hace inviable resolverlo con ningún tipo de algoritmo conocido hasta ahora.
Se suelen emplear algoritmos voraces para su resolución.
Por cierto, si alguno consigue resolverlo con un algoritmo de coste polinómico o lineal que vaya preparándose para empezar a dar conferencias en universidades porque habrá resuelto un dilema computacional que viene desde los años 50. Ya que existe una teoría que dice que si se encuentra solución para algún problema NP-completo, muchos de los demás problemas de la familia NP-completa se podrán resolver aplicando un algoritmo similar. Suerte.
PD: Había en este foro algún matemático que estaba estudiando la rama de computación. Me gustaría comentar sobre la teoría de la complejidad. Es que no recuerdo quién era ni dónde lo he leído. Si me lees, avisa:)
Bueno, manos a la obra (yo tengo una solución algorítmica no implementada).
Saludos.
r3dsk1
Miembro MUY activo
Mensajes: 291
Re: problema de la mochila
«
Respuesta #4 en:
Sábado 30 de Noviembre de 2002, 02:48 »
0
Uhhao parece un reto interesante para todos,suerte a todos que lo intenten.
Saludos.
click aqui para instalar linux
De Profundiis
Miembro activo
Mensajes: 89
Re: problema de la mochila
«
Respuesta #5 en:
Sábado 30 de Noviembre de 2002, 11:32 »
0
Por cierto, dije que yo tenía una solución algorítmica. Tengo que aclarar que mi solución no es una solución correcta del todo. Me explico:
El algoritmo que tengo tiene un coste lineal, pero a cambio de esto, no siempre da el mejor resultado para algunos casos, sino que da una soúción aproximadamente óptima. A veces es mejor una solución
casi correcta
y rápida, que una solución correcta, pero muy lenta. Nada más.
Saludos.
Murciego
Nuevo Miembro
Mensajes: 23
Re: problema de la mochila
«
Respuesta #6 en:
Domingo 1 de Diciembre de 2002, 17:44 »
0
Hola.
Yo soy el matemático de computación.
Efectivamente, el problema de la mochilla fraccionada se puede resolver mediante una algoritmo voraz, y la solución dada es la exacta.
Para el problema de la mochila no fraccionada nosotros usabamos algoritmos de programación dinámica, y de exploración del arbol de soluciónes con ramificación y acotacion (usando el problema de la mochila fraccionada) y el ramificación y poda.
No recuerdo si el problema era NP-completo. Lo que si esta claro es que es NP, puesto que una máquina con oraculo lo resuelve en tiempo polinomial.
Para informarte sobre el tema puedes mirar el libro G.Brassard- P.Bratley "Algoritmica, Concepcion y Analisis" Ed. Masson
Por cierto, el problema de cortar tablas que sugerí para un reto, y que nadie lo ha resuelto aun, creo que también es NP-completo, aunque estuve casi un més intentando resolverlo y no fui capaz (y la profesora que me daba Calculabilidad tampoco).
Un saludo
De Profundiis
Miembro activo
Mensajes: 89
Re: problema de la mochila
«
Respuesta #7 en:
Domingo 1 de Diciembre de 2002, 22:38 »
0
Hola Murciego,
gracias por tu respuesta. Conozco el libro de Brassard y Bratley (ya es un clásico:D junto al Cormen) he estado pensando en comprármelo, quizás lo haga. Con respecto a tu problema de las tablas, ya estuve pensando que sería NP-completo, pero no estaba seguro:P. El caso es que no domino de la teoría de la complejidad, pero algo sé.
Me gustaría si es posible que comentásemos abiertamente en el foro algo de esto, pero podríamos hacerlo en el foro de Algoritmos. En primer lugar me gustaría, si no te importa, que me explicases la diferencia entre un problema de la familia NP y la familia NP-completa (pensaba que eran lo mismo:().
Bueno, ya irán surgiendo cosas.
Un saludo.
Murciego
Nuevo Miembro
Mensajes: 23
Re: problema de la mochila
«
Respuesta #8 en:
Lunes 2 de Diciembre de 2002, 12:17 »
0
Un problema se dice que pertenece a la clase NP si existe una máquina de Turing NO determinista que lo resuelve en tiempo polinomial.
Un problema se dice DURO para una clase si cualquier problema de esa clase se puede "tranformar" a el en tiempo Polinomial. En particular, un problema es NP-DURO si cualquier problema NP se puede reducir a el en tiempo polinomial (o lo que es equivalente, es espacio logaritmico)
Un problema es NP-completo si es NP y además es NP-DURO, o sea, DURO para la clase NP.
Es facil ver, que cualquier problema P es NP, y que cualquier problema NP es EXP (resolubles por una máquina determinista en tiempo exponencial).
También se sabe que P es distinto de EXP.
Entonces tenemos la siguiente cadena de desigualdades:
P contenido en NP contenido en EXP y P distinto de EXP
Entonces P es distinto de EXP o de P o de ambos (existen muchas clases de complejidad intermedia). La duda es: En esa cadena,¿en que punto de da la desigualdad extricta?
Bueno, no me enrollo más. Si quieres hablar más de este tema no dudes en decirmelo.
Un saludo
De Profundiis
Miembro activo
Mensajes: 89
problema de la mochila
«
Respuesta #9 en:
Miércoles 4 de Diciembre de 2002, 00:46 »
0
Gracias por la explicación, no tengo mucho tiempo ahora, pero ten por seguro que cuando esté más desahogado trataré de plantear algunas otras dudas que me quedan, aunque quizás lo haga en el foro "Diseño de Algoritmos" porque me parece que esto ya no es C. Jejeje.
Un saludo.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Re: problema de la mochila