´ 6. PROGRAMACION ENTERA. 6.1. Introducci´n. o 6.2. M´todos de soluci´n. e o 6.3. Definiciones. 6.4. Soluci´n gr´fica. o a 6.5. Algoritmo de ramificaci´n y acotaci´n. o o 6.6. Programaci´n 0-1. o 6.7.

Algoritmo de ramificaci´n y acotaci´n 0-1. o o

1

6.1. Introducci´n. o Modelo lineal con variables enteras. • Programaci´n entera mixta: algunas variables eno teras y otras continuas. • Programaci´n entera pura: todas las variables toman o valores enteros. • Programaci´n entera 0-1: todas las variables son o binarias. Ejemplo. El problema del agente viajero. Supongamos un viajante que debe visitar 5 ciudades una sola vez cada una de ellas y regresar a la primera. Se trata de determinar en que orden debe visitar las 5 ciudades para que el recorrido total sea m´ ınimo. La tabla de distancias es la siguiente.
C1 C1 C2 C3 C4 C5 0 40 85 130 70 C2 40 0 50 100 45 C3 85 50 0 50 35 C4 130 100 50 0 65 C5 70 45 35 65 0

Variables.

  0 xij =  1

C i → Cj C i → Cj
2

500y2 − 1. x 3 ≥ 0 y1. 1 3 .Ejemplo.000.000y3 sujeto a 30x1 + 20x2 + 60x3 ≤ 4.Prima 40 30 40 5. • xj : unidades que se producen de Aj .500 40x1 + 30x2 + 40x3 ≤ 5. o Horas A1 A2 A3 Disp.500 y 1. y3 = 0.   0 • yj =  1 Modelo entero. 3. 2. y2 . 1. 60 40 80 Precio Venta 120 80 150 Costes de inicio: 2.500 Mat. x 2 . 30 20 60 4. si no se produce Aj si se produce Aj max z = (120 − 60)x1 + (80 − 40)x2 + (150 − 80)x3 − −2.000y1 − 1.500 Coste Prod. j = 1.500 x1 ≤ M 1 y 1 x2 ≤ M 2 y 2 x3 ≤ M 3 y 3 x1 . Problema de producci´n.000 semanales.

Enumeraci´n exhaustiva. 4 . M´todos de soluci´n. e o 1.2. u Conjunto de soluciones no convexo. x2 ≥ 0 y enteras 12x1+5x2=60 x2 x1+x2=7 x1 max N´mero finito de soluciones.6. o max z = 80x1 + 45x2 sujeto a x1 + x 2 ≤ 7 12x1 + 5x2 ≤ 60 x1 .

quitando un o ´ trozo donde la soluci´n optima no est´. 3). 5 . 4) 3. (4. 3. o 12x1+5x2=60 x2 x1+x2=7 P = ( 3.6 .2. Ramificaci´n y acotaci´n o o Considerar aquellos problemas que puedan contener la soluci´n optima. 4) . Enumeraci´n y aproximaci´n o o Prescindir de la restricci´n de enteras. (4. y dividirlos en dos. o ´ a Resolver dichos problemas.4 ) x1 max Aproximaciones: (3. (3. 3).

Definici´n 1 Dado un problema entero (PE). • PR infactible ⇒ PE infactible. Definiciones.6. se llama o problema relajado (PR) al mismo problema pero prescindiendo de la restricci´n de enteras. para el PE. La soluci´n candidata puede ser soluci´n optima del PE. PR PE Ax ≤ b x≥0 • PR no acotado ⇒ PE no acotado o infactible. zI . o PE max z = cT x sujeto a sujeto a PR max z = cT x Ax ≤ b x ≥ 0 y enteras Observaciones. • En otro caso. 6 . en cada iterao ci´n del proceso de resoluci´n llamamos soluci´n cano o o didata a la mejor soluci´n entera obtenida hasta el moo mento. o o ´ El valor de la funci´n objetivo para la soluci´n candidata o o fija una cota inferior.3. z ∗ ≥ z∗ . Definici´n 2 Dado un problema entero.

o a PE max z = 80x1 + 45x2 sujeto a x1 + x 2 ≤ 7 12x1 + 5x2 ≤ 60 x1. x1 ≥ 4 7 .4. 3. Soluci´n gr´fica.6 . x2 ≥ 0 x1+x2=7 P=(3.6. x2 ≥ 0 y enteras 12x1+5x2=60 x2 PR max z = 80x1 + 45x2 sujeto a x 1 + x2 ≤ 7 12x1 + 5x2 ≤ 60 x 1 .4) x1 max x1 → x1 ≤ 3.

1 2 z ∗ = 428 8 . 4) → candidata → zI = 420.4) Problema 2 P = (4 .Problema 2 max z = 80x1 + 45x2 sujeto a x1 + x 2 ≤ 7 12x1 + 5x2 ≤ 60 x1 ≤ 3 x1 .4). 2. x∗ ) = (4. x 2 ≥ 0 12x1+5x2=60 x2 x1=3 x1=4 Problema 3 max z = 80x1 + 45x2 sujeto a x 1 + x2 ≤ 7 12x1 + 5x2 ≤ 60 x1 ≥ 4 x 1 . x2 ≥ 0 x1+x2=7 P=(3. 3: (x∗ . 2. 1 2 Prob. 2: (x∗ .4 ) Problema 3 x1 max Prob. x∗ ) = (3.

x 2 ≥ 0 12x1+5x2=60 x2 x1=3 x1=4 Problema 5 max z = 80x1 + 45x2 sujeto a x 1 + x2 ≤ 7 12x1 + 5x2 ≤ 60 x1 ≥ 4 x2 ≥ 3 x 1 . 8 > 420 = zI . 1 2 Prob. 4: (x∗ . 5: infactible. 2 ) Problema 4 x1 max Prob.16.Problema 4 max z = 80x1 + 45x2 sujeto a x1 + x 2 ≤ 7 12x1 + 5x2 ≤ 60 x1 ≥ 4 x2 ≤ 2 x1 . 2). 9 . x∗ ) = (4.16 . x2 ≥ 0 x1+x2=7 Problema 5 x2=3 x2=2 P = ( 4. z ∗ = 422.

10 . x2 ≥ 0 x1+x2=7 x2=3 x2=2 x1 max Prob. z ∗ = 400. 7: (x∗ . 2). 0). x∗ ) = (5.Problema 6 max z = 80x1 + 45x2 sujeto a x1 + x 2 ≤ 7 12x1 + 5x2 ≤ 60 x1 ≥ 4 x2 ≤ 2 x1 ≤ 4 x1 . 1 2 Prob. 6: (x∗ . x∗ ) = (4. x 2 ≥ 0 12x1+5x2=60 x2 x1=3 x1=4 x1=5 Problema 7 max z = 80x1 + 45x2 sujeto a x 1 + x2 ≤ 7 12x1 + 5x2 ≤ 60 x1 ≥ 4 x2 ≤ 2 x1 ≥ 5 x 1 . 2 1 z ∗ = 410.

2.Esquema de la soluci´n.4 ) z* = 428 x2>=3 Problema 4 z I =420 x1<=4 Problema 6 z I =420 (x1 .16 . x2 ) = (4 .4 ) z* = 441 x1<=3 Problema 2 z I =420 (x1 . x2 ) = (4 . 4 ) z* = 420 x2<=2 Terminal x1>=4 Problema 3 zI =420 (x1 . x2 ) = (4.6 . x2 ) = (3 .8 zI =420 (x1 . 3. x2 ) = (5 . o PR (x1 . 0) z* = 400 Terminal 11 . 2 ) z* = 422. 2 ) z* = 410 Terminal Problema 5 zI =420 x1>=5 Problema 7 Infactible Terminal (x1 . x2 ) = (3.

no toma un valor entero en la soluci´n actual. – ¿C´mo se ramifica? Eligiendo al azar una vao riable que. o – Es infactible. • Ramificar: Dividir la regi´n de soluciones en dos o subregiones a˜adiendo restricciones a cada problen ma relajado. • Problema terminal: Problema que no ser´ ramia ficado. teniendo que ser entera. – Se ramifica siempre que la soluci´n no es eno tera y ramificando el problema sea posible llegar a una soluci´n entera mejor que la actual o candidata.Observaciones. 12 . Acotar el o valor de la variable. Es problema terminal aqu´l que cumpla ale guna de las siguientes condiciones: – Si el valor de la funci´n objetivo en menor o igual o que el valor objetivo de la soluci´n candidata. o – La soluci´n es entera.

comenzando por el que tenga mayor z ∗. u Si no. o o Objetivo maximizar. Algoritmo de ramificaci´n y acotaci´n. 2. Es problema terminal todo aquel que cumpla (a) z ∗ ≤ zI . (c) El problema es infactible. parar. Problemas terminales. zI := −∞. 1. la soluci´n optima es la soluci´n candidata. Acotaci´n. o ´ – En otro caso. y ramificar a˜adiendo las restricciones xj ≤ [xj ] . Si existe alg´n problema no terminal. Resolver cada uno de los dos probleo mas reci´n creados. ir al paso 2. o – Si la soluci´n optima es entera. Ramificaci´n. Inicializaci´n.6. Se actualiza la o cota inferior haciendo zI := z ∗. xj ≥ [xj ] + 1. o ´ o Si no existe candidata. En dicho problema elegir para acotar alguna variable que no sea entera. e 4. Analizar cada problema. Resolver el PR. n 3. 13 . y esta soluci´n o entera es la soluci´n candidata de ahora en adeo lante. (b) La soluci´n es entera y z ∗ > zI . Seleccionar el problema no terminal o de mayor z ∗.5. el problema es infactible.

14 −0. x2 ≥ 0 y enteras PR max z = 80x1 + 45x2 sujeto a x 1 + x2 ≤ 7 12x1 + 5x2 ≤ 60 x 1 . Elegimos x1 para ramificar y o creamos dos problemas.Ejemplo. PE max z = 80x1 + 45x2 sujeto a x1 + x 2 ≤ 7 12x1 + 5x2 ≤ 60 x1 .71 0. 14 .14 La soluci´n no es entera.71 −0. o ´ x1 x2 0 0 1 0 x3 20 x4 5 440 3.4 3.6 a2 a1 zI := −∞. x2 ≥ 0 Soluci´n optima del PR. 0 1 1. introduciendo las restricciones x1 ≤ 3 y x1 ≥ 4.

14 0 0 0 1 x5 0 0 0 1 0 0 0 1 35 −1 1 −7 440 3.4 3.14 -0. x 2 ≥ 0 x1 0 x2 0 1 0 0 0 1 0 0 0 1 0 0 x3 20 1.6 3 440 3. o ´ 1 2 Problema terminal → zI := z ∗ = 420.6 −0.4 3. z ∗ = 420.6 420 4 3 4 a2 a1 a5 a2 a1 a5 a2 a1 a4 0 1 1 0 0 1 0 0 0 1 0 Soluci´n optima: (x∗ .14 0.14 0.Problema 2 max z = 80x1 + 45x2 sujeto a x1 + x 2 ≤ 7 12x1 + 5x2 ≤ 60 x1 ≤ 3 x1 . 15 .71 −0. 4) . x∗ ) = (3.71 45 1 0 −5 x4 5 −0.71 −0.71 0.14 0 5 −0.71 0 20 1.

14 0.6 −0.2 0 −0.6 −4 440 3.14 0.4 −1 −1.71 0 20 1.14 9 0.2 x5 0 0 0 1 0 0 0 1 28 2. x∗ ) = (4.71 -0. 16 . 2.71 −0.4). x 2 ≥ 0 x1 0 x2 0 1 0 0 0 1 0 0 0 1 0 0 x3 20 1.6 a2 a1 a5 a2 a1 a5 a2 a1 a3 0 1 −1 0 0 1 0 0 0 1 0 Soluci´n optima: (x∗ .4 3.71 0 0 0 1 x4 5 −0.14 0.4 440 3.Problema 3 max z = 80x1 + 45x2 sujeto a x1 + x 2 ≤ 7 12x1 + 5x2 ≤ 60 x1 ≥ 4 x1 .4 4 0. z ∗ > zI → problema no terminal.71 −0. No es entera.14 0 5 −0.4 428 2. o ´ 1 2 z ∗ = 428.4 3.

. el problema reo lajado (PR) es el mismo problema prescindiendo de todas las restricciones excepto de las restricciones 0-1 para las variables. Se debe decidir qu´ objetos introducir a e en la mochila para maximizar su valor. . n. . se llama soluci´n o o parcial a una soluci´n donde el valor de alguna variable o est´ sin fijar. o Ejemplo. . .   0 si el objeto j no es introducido en la mochila xj =  1 si se selecciona j para la mochila Modelo lineal.6. n Definici´n 3 Dado un problema 0-1. j = 1. j = 1. . El peso de la mochila est´ limitado a P. Cada objeto j tiene fijado un peso aj y un valor cj . 1 . . . . + a n xn ≤ P xj = 0. Programaci´n entera 0-1. Definici´n 4 Dado un problema 0-1. . una complecci´n es una soluci´n obtenida a partir o o de la soluci´n parcial dando valor a todas las compoo nentes que estaban sin fijar. . 17 . Se consideran n objetos.6. . El problema de la mochila. max z = c1 x1 + c2 x2 + . a Definici´n 5 Dada una soluci´n parcial de un problema o o 0-1. + cnxn sujeto a a1 x1 + a 2 x2 + .

Asociar a estos problemas el ´ ındice k = k + 1. Parar. 1) cumple las restrico ciones → optima. ir al paso 2. 0). . Si x = (0. · · · . Para cada nuevo problema. . 1. 1) cumple las ´ restricciones → optima. . o o Objetivo maximizar y 0 ≤ c1 ≤ c2 ≤ . . 0. o Si todos los problemas son terminales. El problema es infactible. entonces actualizar zI := z ∗. La soluci´n o optima viene dada por (b). (b) Si z ∗ > zI y x∗ cumple las restricciones del problema. ´ siendo z(0) el valor objetivo para x = (0. ≤ cn. . Asociar al problema el ´ ındice k = 1 e ir al paso 2. Son terminales aquellos que: (a) z ∗ ≤ zI . zI := z(0). 4. .7. . . (c) Hay al menos una restricci´n que no la verifica o ninguna complecci´n. Inicializaci´n. Seleccionar un problema no terminal o ∗ y ramificarlo en dos. 3. 18 . ´ En otro caso. . En otro caso. Acotaci´n. 2. Algoritmo de ramificaci´n y acotaci´n 0-1. Si x∗ = (1. a˜adiendo respectivade mayor z n mente las restricciones xk = 0 y xk = 1. Analizar cada problema comenzando por aquel que tenga mayor z ∗. Ramificaci´n. Parar. parar. .6. 1. hacer x∗ o igual a la complecci´n que tiene 0 la componente k + 1 o y 1 el resto. Calcular z ∗ para cada x∗. Problemas terminales.

o zI := 0. . . y4 = 0. .Ejemplo. x3 = y2 . . k = 1 y ramificamos el PR creando: Problema 2 max z = 10y1 + 12y2 + 15y3 + 25y4 sujeto a y1 = 0 y2 . 1 Problema 3 max z = 10y1 + 12y2 + 15y3 + 25y4 sujeto a y1 = 1 y2 . x2 = y4 max z = 10y1 + 12y2 + 15y3 + 25y4 sujeto a 5y1 + 5y2 + 3y3 + 6y4 ≤ 12 yj = 0. . y4 = 0. z ∗ = 52. 4 y = (1. . . . o y = (0. . 1 j = 1. . . 4 Cambio de variables: x4 = y1 . 1) no cumple la restricci´n. . . . . . Problema de la mochila. . 1 j = 1. 1 19 . max z = 15x1 + 25x2 + 12x3 + 10x4 sujeto a 3x1 + 6x2 + 5x3 + 5x4 ≤ 12 xj = 0. . . 1. . . 1) no cumple la restricci´n. . . x1 = y3 . .

-. 0.) y * = (1. 1. 1. 1 ) z * = 50 y2= 1 y = (1. 1 ) z * = 40 Terminal z I = 40 y = (1. 1. 1). 1. 1. 0. 1.Esquema de la soluci´n. . . 1. 1 ) z * = 35 Terminal 35 < zI y2= 0 y = (1. . 1. 3 4 20 . o ´ Cambio de variables: x∗ = x∗ = 1. -.) y * = (1. .) y * = (0. . 0 ) z * = 22 Terminal 22 < z I y = (1. 1 ) z * = 47 y3= 0 y 3= 1 y = (1. 0. -. 0. 1.) y * = (1. -. 1 2 z ∗ = 40. 1 ) z * = 52 y1 = 0 y1 = 1 y = (0. 0. 1. x∗ = x∗ = 0. 0.) y = (1. 0. -. 0.) y * = (1. 1. 0. . 0 ) z = 37 Terminal 37 < z I Soluci´n optima: y∗T = (0. 1. 1. -. o zI = 0 y * = ( 0.

6. El problema del agente viajero. . 5 i. 1 Este modelo no contiene todas las restricciones del problema del agente viajero → problema relajado. . 5 xij = 0.8. . Se trata de determinar en qu´ orden debe visitarlas para que el recorrido total e sea m´ ınimo. Un viajante debe visitar 5 ciudades una sola vez cada una de ellas y regresar a la primera. j = 1. . . C1 C1 C2 C3 C4 C5 0 40 85 130 70 C2 40 0 50 100 45 C3 85 50 0 50 35 C4 130 100 50 0 65 C5 70 45 35 65 0 Planteamiento del problema. Distancias en km. xij = 1 si Ci → Cj . 5 xij = 1 j=1 i = 1. . . . . min z = i=1 j=1 xij = 0 si Ci → Cj 5 5 cij xij sujeto a 5 xij = 1 i=1 5 j = 1. . 21 . .

z ∗ = 275. optima: C1 → C2 → C3 → C4 → C5 → C1 .Esquema de soluci´n. resolviendo cada problema o o con el algoritmo de asignaci´n. o PR x 12 = x 21 = 1 x 35= x 54= x43 = 1 z * 230 = x =0 12 x21= 0 Problema 3 x12 = x 25= x 51= 1 x 34 = x43 = 1 z * 255 = x21 = 0 x 34 = 0 Problema 6 x12 = x25 = x 54 = x 43= x 31 = 1 z *= 285 Terminal x43 = 0 Problema 7 x12 = x 23 = x 34 = x45 = x51 = 1 z * 275 = Terminal Problema 2 x15 = x52 = x 21 = 1 x34 = x43 = 1 z * 255 = x15 = 0 Problema 4 x13 = x34 = x 45 =x52 = x21 = 1 z * 285 = Terminal Problema 5 x15 = x 51 = 1 x24 = x 43 = x32 = 1 z * 340 = Terminal Sol. ´ La soluci´n anterior se obtiene aplicando el algoritmo o de ramificaci´n y acotaci´n. o 22 .

Sign up to vote on this title
UsefulNot useful