Un trapero tiene una mochila en la que puede meter objetos por un peso total de hasta 44 kilos. En uno de sus paseos observa un montón en el que hay seis cacharros, cuyo peso y valor estima según refleja la tabla siguiente Cacharro nº 1 2 4 5 6 Valor 0 12 28 5 4 10 Peso 20 12 14 25 5 12 Qué cacharros debe recoger en su mochila para que el valor de lo recogido sea máximo?
Un criterio razonable para proceder a la elección de cacharros es el la relación valor/peso. De acuerdo con este criterio, los cacharros se ordenan según la siguiente tabla Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 En virtud de esta ordenación, la primera cuestión que debe plantearse el trapero es si le conviene o no llevarse el cacharro nº. Esto permite establecer la raíz de un árbol del que parten dos ramas según opte por dejar o llevarse dicho cacharro. V0 r2 r1
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 V0 r2 r1 0 G = 28 G ( i) representa el valor de la mochila en el nodo correspondiente
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 V0 Para el nodo se calcula el máximo valor que podría contener en el supuesto de que los cacharros se pudieran partir en trozos cuyo valor fuera proporcional a su peso. El nombre de un cacharro con un asterisco significa que ese cacharro ha sido partido. r2 r1 G G = 28 Maxp() = 6.6 24 cacharros : c1+ c4* 25 Peso : 24 20 + 25 = 44 25 Vlr a o : 24 28 + 0 = 6.6 25 Como el máximo potencial de es mayor que el valor de la mochila en, el trapero debe seguir planteándose si se lleva o no el cacharro nº 1, que es el siguiente en la relación valor/peso. Eso supone que, de los y salen dos ramas que analizan la posibilidad de abandonar o tomar el cacharro nº 1.
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 V0 r2 r1 G G = 28 r V 0 0 G G = G = 28
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 G G = 28 r V G Maxp(V) = 57.8 9 cacharros : c4+ c6+ c2* 12 Peso : 9 25 + 10 + 12 = 44 12 Valor : 9 5+ 12+ 12= 56 12 G Como el máximo valor potencial que toma esta rama 56 es menor que el valor de la mochila en el vértice, no es necesario continuar la búsqueda por esta rama y procedemos a su poda
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 0 G = 28 G G Maxp() = 6.6 Como el máximo valor potencial que toma esta rama 6.6 es mayor que el valor de la mochila en el vértice, hay que continuar la búsqueda por esta rama. 24 cacharros : c1+ c4* 25 Peso : 24 20 + 25 = 44 25 Vlr a o : 24 0 + 5 = 6.6 25
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 0 G = 28 V r G Como el máximo valor potencial que toma esta rama 8 es mayor que el valor de la mochila en el vértice, hay que continuar la búsqueda por esta rama. Pasamos a considerar si nos llevamos el cacharro número 4 G Maxp() = 69 G = 28 5 cacharros : c1+ c4+ c6* 10 5 Peso : 14 + 25 + 10 = 44 10 5 Valor : 28+ 5+ 10= 68 10
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 G = 28 0 V7 4 r7 G G r8 4 V8 V9 4 r9 r10 0 4 G ( 4) 1 4 r11 G r12 4 2
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 G = 28 0 V7 4 r7 G G G r8 r9 r10 r11 r12 V8 V9 0 1 2 4 4 4 4 4 G ( 4) G ( 4) = 6
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 G = 28 0 V7 4 G r7 r8 r9 r10 V8 V9 0 4 4 4 G 1 4 r11 G r12 4 2 G ( 4) Maxp(V7) = 55.6 < 6 2 cacharros : c1+ c6+ c2+ c1* 5 Peso : 2 20+ 10+ 12+ 5= 44 5 Vlor a : 2 0+ 12+ 12+ 4= 55.6 5 G ( 4) = 6 Como el máximo valor potencial que toma esta rama, 55.6, es menor que el valor de la mochila en el vértice 1, no es necesario continuar la búsqueda por esta rama y procedemos a su poda
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 G = 28 0 G G G r8 r9 r10 r11 r12 V8 V9 0 1 2 4 4 4 4 4 Infactible G ( 4) = 6 El peso conjunto de los cacharros 1 y 4 excede la resistencia de la mochila
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 G = 28 0 G V9 4 G r9 r10 r11 r12 0 4 1 4 G 4 2 Infactible G ( 4) = 6 El peso conjunto de los cacharros, 1 y 4 excede la resistencia de la mochila
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 G = 28 0 Maxp(0) = 70 cacharros: c+ c1+ c6 Peso : 14+ 20+ 10= 44 Valor : 28+ 0 + 12 = 70 G G ( 4) r10 G 0 4 1 4 r11 G ( 4) = 6 G r12 4 2 Como el máximo valor potencial que toma esta rama 70 es mayor que el valor de la mochila en el vértice 1, es necesario continuar la búsqueda por esta rama. Nótese que este óptimo corresponde a una solución entera que aprovecha exactamente la capacidad de la mochila
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 0 G G ( 4) Como el máximo valor potencial que toma esta rama, 56, es menor que el valor de la mochila en el vértice 1, no es necesario continuar la búsqueda por esta rama y procedemos a su poda. G G ( 4) = 6 G = 28 r10 r11 r12 0 4 1 4 Maxp(2) = 56 G 4 cacharros : c+ c6+ c2 + c5 2 G ( 4) = 28 Peso : 14+ 10+ 12+ 5< 44 Valor : 28+ 12 + 12+ 4= 56< 6
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 G = 28 0 G Pasamos a considerar la posibilidad y conveniencia de llevarnos o no el nº 6. G ( 4) r10 4 G 0 1 4 r11 G ( 4) = 6 G 46 r1 r14 r15 r16 4 46 5 46 6 146
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 Analizamos 4 ya que tenía máximo valor potencial correspondiente a una mochila llena con cacharros completos. G ( 46) = 70 G = 28 0 G 46 G ( 4) r1 r10 G 0 4 4 46 1 5 4 r11 46 G ( 4) = 6 r14 r15 r16 G 6 146
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 Analizamos Maxp() cacharros : c+ c1+ c2+ c5 Pso e : 10 14+ 20+ 12= 44 12 Valor : 10 28 + 0 + 12 = 68 < 70 12 Como este potencial, 68, es menor que la cota entera encontrada, 70, se poda. 46 G ( 46) G = 28 0 G G ( 4) r1 r10 G 0 4 1 5 4 r11 46 G ( 4) = 6 r14 r15 r16 4 46 G ( 46) = 70 G 6 146
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 Analizamos el vértice 15. Maxp(5) = 68 5 cacharros : c+ c4+ c2* 12 4 Peso : 14 + 25 + 12 = 44 12 5 Valor : 28+ 5+ 12= 68< 70 12 Como este potencial es menor que la cota entera encontrada, 70, se poda. r10 G ( 46) = 6 5 0 G G ( 4) 4 46 G ( 46) = 70 r14 G 0 4 1 4 r15 r11 46 G = 28 G ( 4) = 6 r16 G 6 146
Cacharro nº 1 4 6 2 5 Valor 28 0 5 12 12 4 G = 28 0 G G ( 4) r10 G 0 4 1 4 r11 G ( 4) = 6 G Por último, el vértice 16 supone una solución infactible porque el peso de los tres objetos es superior a lo que la mochila puede aguantar. r14 4 46 G ( 46) = 70 r16 Infactible 6 146
G V7 V 4 G r G ( 4) r7 V8 4 46 r2 r8 G ( 46) G r1 V9 4 r9 V0 46 r1 G ( 4) 4 r10 4 r14 0 G 1 G ( 46) = 70 G = 28 r11 4 5 r15 46 G ( 4) = 6 G ( 46) = 6 r16 G = 28 r12 4 2 G ( 4) = 28 6 46