Está en la página 1de 13

UNIVERSIDAD NACIONAL DE

INGENIERIA

INVESTIGACIÓN DE
OPERACIONES I

Profesor: Ing. Luis Medina Aquino

2013-1

1
METODO SIMPLEX

Es un método sistemático y eficiente para encontrar y probar soluciones


situadas en los vértices de optimalidad. El método Simplex termina una vez se
haya encontrado la solución óptima.

Como veremos, cada vértice del conjunto factible de programación lineal puede
representarse en forma algebraica como una clase particular de solución de un
conjunto de ecuaciones lineales.

Se generan soluciones diferentes de tal forma que producen una secuencia de


vértices adyacentes. Cada movimiento en la secuencia (de un vértice al
adyacente) se llama iteración y el movimiento implica una manipulación en un
sistema lineal.

Ejemplo:
Se tiene el siguiente programa lineal, en su forma canónica:

Maximizar Z = 200 X1 + 240 X2 X2


Sujeto a:
16
6 X1 + 12 X2  120
8 X1 + 4 X2  64
X1 0, X2 0 A
10
B
El conjunto de soluciones factibles está
determinado por el polígono ABCD, en
donde:
Para A (0, 10)  Z = 2,400
Para B (4, 8)  Z = 2,720 D C X1
Para C (8, 0)  Z = 1,600 0 8 20
Para D (0, 0)  Z = 0

Variables de Holgura:

El método Simplex requiere que las restricciones sean ecuaciones (o


restricciones con relación de igualdad) en vez de inecuaciones (o restricciones
con relación de desigualdad).

Cualquier inecuación puede ser convertida en una ecuación agregando una


cantidad no negativa en el lado de menor valor de la inecuación.

En la restricción 1 será: 6 X1 + 12 X2 + S1 = 120


En la restricción 2 será: 8 X1 + 4 X2 + S2 = 64

El problema de programación lineal incorporando las variables de holgura se


convierte en su forma estándar:

2
Maximizar Z = 200 X1 + 240 X2 + 0 S1 + 0 S2
Sujeto a:
6 X1 + 12 X2 + 1 S1 + 0 S2 = 120  1a
8 X1 + 4 X2 + 0 S1 + 1 S2 = 64  2a

X1, X2, S1, S2  0

Variables Básicas y Soluciones Básicas Factibles

El conjunto de soluciones básicas en el problema dado en 1a y 2a:


Solución (1): X1 = 0, X2 = 0, S1 = 120, S2 = 64
Solución (2): X1 = 8, X2 = 0, S1 = 72, S2 = 0
Solución (2): X1 = 0, X2 = 1, S1 = 108, S2 = 60
Observe que las soluciones (1), (2) y (3) satisfacen también las restricciones de
no negatividad. Por tanto, son soluciones factibles.

Si tenemos más variables que ecuaciones, podemos tener un conjunto extra de


variables iguales a cero, obteniendo así un sistema con igual número de
variables y restricciones. Una solución así es llamada una solución básica.

Una solución básica factible para las ecuaciones 1a y 2a es una solución que
tenga a lo sumo dos (= número de ecuaciones) variables con valores positivos
y el resto de variables con valores iguales a cero.

Las soluciones (1) y (2) son soluciones básicas factibles.

Solución (1): X1 = 0, X2 = 0 S1 = 120, S2 = 64


Variables no básicas (= 0) Variables básicas (> 0)

Solución (2): X2 = 0, S2 = 0 X1 = 8, S1 = 72
Variables no básicas (= 0) Variables básicas (> 0)

Solución (3): X1 = 0, X2 = 1, S1 = 108, S2 = 60


En la solución 3 hay tres variables que son positivas, por tanto, es una solución
factible pero no una solución básica factible.

Procedimiento de computo Simplex

En general, la forma estándar de un modelo de programación lineal de


maximización es la siguiente:

Maximizar Z = C1 X1 + C2 X2 + .... + Cn Xn + Cn+1 Xn+1 + .... + Cn+m Xn+m


Sujeto a :
a11 X1 + a12 X2 + .... + a1n Xn + Xn+1 (=S1) = b1
a21 X1 + a22 X2 + .... + a2n Xn + Xn+2 (=S2) = b2
…… ……. …….. ….
am1 X1 + am2 X2 + .... + amn Xn + Xn+m (=Sm) = bm

Xj 0 j = 1, 2, 3, ...., m+n

3
TABLA SIMPLEX

Cj C1 C2 .... Cn Cn+1 Cn+2 ....Cn+m


CB VB X1 X2 .... Xn Xn+1 Xn+2 ....Xn+m B
Cn+1 Xn+1 a11 a12 ....a1n 1 0 ....0 b1
Cn+2 Xn+2 a21 a22 ....a2n 0 1 ....0 b2
.... .... .... .... .... .... .... .... ....
.... .... .... .... .... .... .... .... ....
Cn+m Xn+m am1 am2 ....amn 0 0 ....1 bm
Zj Z1 Z2 ....Zn Zn+1 Zn+2 ....Zn+m CBTB
Cj - Zj C1-Z1 C2-Z2 ....Cn-Zn Cn+1-Zn+1 Cn+2-Zn+2 Cn+m -Zn+m

En este problema habrá m variables básicas con un valor positivo y n variables


no básicas con valor cero, para que exista una solución básica factible.

ALGORITMO DEL METODO SIMPLEX

PASO #1:
Cambiamos el programa lineal, de la forma canónica a la forma estándar, y
luego el sistema lo pasamos al formato del tablero inicial. Esta tabla inicial se
denomina Iteración 0.

PASO #2:
Calculamos la fila Zj de acuerdo a la siguiente expresión: CBTB j = 1, 2, 3,
...., n+m.
Zj = Es la disminución indirecta del valor de la función objetivo inducido al
considerar en la solución una unidad de la variable asociada a la j-ésima
columna no básica de la tabla, mientras las demás variables no básicas se
mantienen en cero.

PASO #3:
Calculamos la fila Cj – Zj j = 1, 2, 3, ...., n+m. Cj – Zj = es el costo de
oportunidad de aumentar, si es positivo, la función objetivo por unidad de
aumento de una variable no básica.

Casos:
a) Si para al menos un j, Cj – Zj es positivo y si al menos un aij para este j es
positivo, entonces existe una mejor solución básica factible. Aún no se ha
llegado a la solución óptima.
b) Si para al menos un j, Cj – Zj es positivo y todos los aij para este j son
negativos, entonces la región de soluciones factibles no está acotada. Y la
solución tiende a infinito.
c) Si todos los Cj – Zj son negativos y ceros, entonces la solución óptima se
ha encontrado.

4
Para nuestro problema inicial, hemos cambiado de la forma canónica a la
estándar. Ahora nos falta colocar los valores al tablero inicial junto con el paso
#2. ITERACIÓN # 0
Cj 200 240 0 0
CB VB X1 X2 S1 S2 B
0 S1 6 12 1 0 120
0 S2 8 4 0 1 64
Zj 0 0 0 0 0
Cj - Zj 200 240 0 0

PASO #4:
Identificamos a la variable que nos da el mayor Cj – Zj tal como Xk (Sk), esta
variable no básica es candidata para ingresar en la tabla como variable
básica, y su columna se va a llamar columna pivote.

En contraparte, existe una variable básica Xr (Sr) que va a salir de la base. La


fila que contiene a esta variable se denomina fila pivote. El criterio para su
elección se basa en determinar el cociente bi / aik más pequeño, haciendo
caso omiso (y por ende las filas) de los cocientes cuyo denominador sea cero o
negativo. El número pivote es la intersección de la fila pivote y la columna
pivote: ark.

PASO #5:
El número pivote debe ser convertido a uno (+1), y la variable básica entrante
reemplaza a la variable básica saliente en la columna de las variables básicas.
Luego, cada uno de los coeficientes restantes en la columna pivote tiene que
ser convertido a cero.

PASO #6:
Repetimos los pasos 3, 4 y 5 hasta que algún tablero cumpla con la condición
Cj – Zj  0, j = 1, 2, 3, ...., n+m.

Aplicando las reglas 4, 5 y 6 de nuestro problema ejemplo identificamos la


columna pivote como aquella que tiene el mayor valor positivo de los Cj – Zj, y
deducimos que la variable no básica X2 es la variable básica entrante.
Calculando bi/ai2 obtenemos el menor valor (10), con lo cual identificamos la
fila pivote, y determinamos que la variable S1 sale de la base.
Cj 200 240 0 0
CB VB X1 X2 S1 S2 B bi/ai2
0 S1 6 12 1 0 120 10 Fila pivote
0 S2 8 4 0 1 64 16
Zj 0 0 0 0 0
Cj - Zj 200 240 0 0
Columna
pivote

5
El siguiente paso convertimos a 1 el valor del número pivote (12). Para ello
dividimos toda la primera fila R01 (restricción uno de la iteración 0) entre 12.
X1 X2 S1 S2 B
R01 1/2 1 1/12 0 10
R02 8 4 0 1 64

Luego, los demás valores de la columna pivote (X2) deben tener valor cero.
Para ello hacemos la siguiente operación: A los valores de la fila R 02 se le resta
cuatro veces la fila R01, y se obtiene R12 (la restricción 2 de la iteración 1):

R02 8 4 0 1 64
- 4R01 -2 -4 -1/3 0 -40
R12 6 0 -1/3 1 24

La tabla resultante se muestra a continuación:

Cj 200 240 0 0
CB VB X1 X2 S1 S2 B
240 X2 1/2 1 1/12 0 10
0 S2 6 0 -1/3 1 24
Zj 120 240 20 0 2400
Cj - Zj 80 0 -20 0

Ya que existe un valor positivo (80) en la fila de Cj – Zj, entonces la tabla no es


óptima, y se debe seguir trabajando con los pasos 4, 5 y 6, hasta que se
cumpla la condición Cj – Zj  0, j = 1, 2, 3, ...., n+m.

El siguiente paso es identificar la columna pivote que es el mayor valor positivo


de los Cj – Zj, vemos que este criterio se cumple para la columna de X1, por
tanto esta variable no básica va a ingresar a la base, mientras que la variable
básica que sale de la base es aquella que tiene el menor cociente bi/ai1, en
este caso es S2.
ITERACIÓN # 1
Cj 200 240 0 0
CB VB X1 X2 S1 S2 B bi/ai2
240 X2 1/2 1 1/12 0 10 20
0 S2 6 0 -1/3 1 24 4 Fila pivote
Zj 120 240 20 0 2400
Cj - Zj 80 0 -20 0
Columna
pivote

Luego, convertimos el número pivote (6) en 1, dividiendo la fila pivote entre 6.

6
El siguiente paso convertimos a 1 el valor del número pivote (12). Para ello
dividimos toda la primera fila R01 (restricción uno de la iteración 0) entre 12.
X1 X2 S1 S2 B
R11 1/2 1 1/12 0 10
R12 1 0 -1/18 1/6 4
Luego, los demás valores de la columna pivote (X2) deben tener valor cero.
Para ello hacemos la siguiente operación: A los valores de la fila R 02 se le resta
cuatro veces la fila R01, y se obtiene R12 (la restricción 2 de la iteración 1):

R11 1/2 1 1/12 0 10


-1/2R12 -1/2 0 1/36 -1/12 -2
R21 0 1 1/9 -1/12 8

La tabla resultante se muestra a continuación:

ITERACIÓN # 2
Cj 200 240 0 0
CB VB X1 X2 S1 S2 B
240 X2 0 1 1/9 -1/12 8
200 X1 1 0 -1/18 1/6 4
Zj 120 240 140/9 40/3 2720
Cj - Zj 0 0 -140/9 -40/3

Ya que todos los Cj – Zj,  0 entonces la tabla es óptima.


La respuesta final es: X1 = 4 y X2 = 8 (variables básicas) y S1 = S2 = 0
(variables no básicas), y el valor de Z = 2720.

Nos podemos dar cuenta que, en cada tabla del procedimiento Simplex, los
valores de X1 y X2 tienen valores de los vértices del polígono de la región
factible. Esto quiere decir que cada tabla va recorriendo los vértices del
polígono hasta llegar al vértice óptimo que me da el máximo valor de Z.

EJERCICIOS

Maximizar Z = 3 X1 + 4 X2 Maximizar Z = 3 X1 + 2 X2 + X3
Sujeto a: Sujeto a:
X1 + 2 X2  1000 X1 + 2 X2 + X3  10
3 X1 + 2 X2  1800 X1 + X2 + 2 X3  9
X2  400 2 X1 + 3 X3  12
X1 0, X2 0 X1, X2, X3 0

7
Maximizar Z = 4 X1  2 X2 + 3 X3 Maximizar Z = 5 X1  3 X2 + X3
Sujeto a: Sujeto a:
X1  X2  X3  8 X1 + X2  10
X2  X3  4  X2 + X3  6
X1 + X3  12 X1  X3  2
X1, X2, X3 0 X1, X2, X3 0

Maximizar Z =  X1 + 3 X2 + 2 X3 MAX Z = 4 X1  X2 + 3 X3 + 2 X4
Sujeto a: Sujeto a:
X1 + X2  X3  6 5 X1 + X2 – 3 X3 + 5 X4  50
 X1 + 2 X2 + X3  9 4 X1  X2 + X3 + 3 X4  44
2 X1 + 3 X2 + X3  15 X1  X3 + 2 X4  15
X1, X2, X3 0 X1, X2, X3, X4 0

VARIABLES DE EXCESO O SUPERFLUAS

Una restricción lineal de la forma  aij Xj bi se puede convertir en una


igualdad, restando una nueva variable no negativa del lado izquierdo de la
desigualdad.

Esta variable es numéricamente igual a la diferencia entre los lados izquierdo y


derecho de la desigualdad, y se conoce como variable de exceso.

Ejemplo: 4 X1 + 6 X2 + X3 54
4 X1 + 6 X2 + X3 S1 = 54

Generación de una solución factible inicial

Después de que todas las restricciones lineales (con lados derechos no


negativos) se han transformado en igualdades, introduciendo variables de
holgura y de exceso donde sea necesario, agregue una nueva variable,
llamada variable artificial, al lado izquierdo de cada ecuación de restricción
que no contenga una variable de holgura. Ahora cada ecuación de restricción
contendrá o una variable de holgura o una variable artificial.

Una solución inicial no negativa para este conjunto de restricciones se obtiene


haciendo cada variable de holgura y cada variable artificial igual al lado
derecho de la ecuación en la cual aparecen; y haciendo las otras variables,
incluyendo las variables de exceso, iguales a cero.
Ejemplo:
X1 + 2 X2  3
4 X1 + 5 X2  6
7 X1 + 8 X2 = 15

8
Se convierte en:
X1 + 2 X2 + S1 =3
4 X1 + 5 X2  S2 = 6
7 X1 + 8 X2 = 15
Si ahora se agregan respectivamente las variables artificiales a1 y a2 al lado
izquierdo de las dos últimas restricciones, es decir, a las restricciones que no
tengan variable de holgura; el resultado es:

X1 + 2 X2 + S1 =3
4 X1 + 5 X2  S2 + a1 =6
7 X1 + 8 X2 + a2 = 15
Una solución inicial no negativa a este último sistema es S1 = 3, a1 = 6, a2 =
15, como variables básicas, y X1 = X2 = S2 = 0 como variables no básicas.

Ocasionalmente, se puede generar fácilmente una solución sin un conjunto


completo de variables de holgura y artificiales.

Costos de penalización

La introducción de variables de holgura y de exceso no altera ni a la naturaleza


de las restricciones ni a la función objetivo. Por consiguiente, estas variables se
incorporan a la función objetivo con coeficientes cero.

Las variables artificiales, sin embargo, cambian la naturaleza de las


restricciones. Ya que se agregan solo a un lado de una desigualdad, el nuevo
sistema es equivalente al sistema anterior de restricciones solo si las variables
artificiales tienen valor cero.

Para garantizar estas condiciones en la solución óptima (en contraste con la


solución inicial), las variables artificiales se incorporan en la función objetivo
con coeficientes positivos muy grandes si se trata de un programa de
minimización, o con coeficientes negativos muy grandes si se trata de un
programa de maximización.

Estos coeficientes, que se denotan con + M o –M, donde M se considera un


número positivo muy grande, representan el severo costo de penalización en
las variables artificiales.

Ejemplo:
Forma Canónica

Minimizar Z = 20 X1 + 30 X2
Sujeto a:
2 X1 + X2  10 (S1, a1)
3 X1 + 4 X2  24 (S2, a2)
8 X1 + 7 X2  56 (S3, a3)
X1, X2  0

9
Forma Estándar
Minimizar Z = 20 X1 + 30 X2 + 0 S1 + 0 S2 + 0 S3 + M a1+ M a2 + M a3
Sujeto a:
2 X1 + X2  1 S1 + 0 S2 + 0 S3 + 1 a1 + 0 a2 + 0 a3 = 10
3 X1 + 4 X2 + 0 S1  1 S2 + 0 S3 + 0 a1 + 1a2 + 0 a3 = 24
8 X1 + 7 X2 + 0 S1 + 0 S2  1 S3 + 0 a1 + 0 a2 + 1 a3 = 56

X1, X2, S1, S2, S3, a1 , a2 , a3  0


EL METODO SIMPLEX PARA UN MODELO DE MINIMIZACIÓN

Las modificaciones que se requieren para resolver un modelo de minimización


son muy simples.

Tome el negativo de la función objetivo y resuelva el problema como si fuese


un modelo de maximización. Este artificio funciona debido a que para cualquier
función (x) maximizará también a - (x).

Por lo tanto, tomando el negativo de una función objetivo de minimización y


resolviéndolo como si fuese un modelo de maximización se obtendrá la
solución óptima correcta del modelo de minimización original.

Minimizar Z = Maximizar (-Z)

En nuestro ejemplo anterior sería:

Forma Estándar
Maximizar (Z) = 20 X1  30 X2 + 0 S1 + 0 S2 + 0 S3  M a1 M a2  M a3
Sujeto a:
2 X1 + X2  1 S1 + 0 S2 + 0 S3 + 1 a1 + 0 a2 + 0 a3 = 10
3 X1 + 4 X2 + 0 S1  1 S2 + 0 S3 + 0 a1 + 1a2 + 0 a3 = 24
8 X1 + 7 X2 + 0 S1 + 0 S2  1 S3 + 0 a1 + 0 a2 + 1 a3 = 56

X1, X2, S1, S2, S3, a1, a2, a3  0

ITERACION 0
Cj -20 -30 0 0 0 -M -M -M
CB VB X1 X2 S1 S2 S2 a1 a2 a3 B
-M a1 2 1 -1 0 0 1 0 0 10
-M a2 3 4 0 -1 0 0 1 0 24
-M a3 8 7 0 0 -1 0 0 1 56
Zj -13M -12M M M M -M -M -M -90M
Cj - Zj -20+13M -30+12M -M -M -M 0 0 0

10
PROBLEMAS NO FACTIBLES

Un programa lineal es no factible cuando no hay solución que satisfaga


simultáneamente todas las restricciones y condiciones de no negatividad. Esto
significa que el conjunto factible es vacío.

La señal de infactibilidad se presenta al obtener una tabla con las propiedades


siguientes:
1. Todos los costos de oportunidad (Cj – Zj) son no positivos (es decir, se ha
cumplido la terminación o criterio de Optimalidad.
2. Una o más variables artificiales permanecen en la solución, con un valor
positivo. Es decir, una o más variables artificiales permanecen en la base
y el dato asociado de la columna de los valores del lado derecho (B) es
positivo.

Finalmente, ningún problema del mundo real correctamente formulado puede


ser no factible. La infactibilidad es una anomalía matemática introducida por los
analistas. Ya sea que las restricciones sean demasiado estrictas, tan estrictas
que en su conjunto no puedan ser satisfechas simultáneamente o que se haya
cometido un error de copiado al meter los datos a la computadora.

Minimizar Z = 20 X1 + 30 X2
Sujeto a:
2 X1 + X2  10 (S1)
3 X1 + 4 X2  24 (S2)
8 X1 + 7 X2  56 (S3, a1)
X1, X2  0

PROBLEMAS NO ACOTADOS

Un problema lineal es no acotado si la función objetivo puede mejorarse


arbitrariamente sobre la región factible. Esto implica que también la región
factible debe ser no acotada.

Los problemas no acotados no es un fenómeno del mundo real. Nadie ha


descubierto todavía al manera de obtener utilidades infinitas. La infinitud es otra
anomalía matemática introducida ya sea por una formulación incorrecta (por
ejemplo, no imponer suficientes restricciones) o por errores en el ingreso de
datos.

La señal de no acotabilidad consiste en (1) una columna con un costo de


oportunidad positivo y (2) todos los elementos del cuerpo principal de la tabla,
en esa columna, son  0.
MAX Z = 4 X1  3 X2 + 2 X3 + X4
Maximizar Z = X1  2 X2 Sujeto a:
Sujeto a: X1  X2  5
 X1  2 X2  4 X2  X3  2
X1  3 X2  3 X2 2 X3 + X4  4
X1, X2 0 X1, X2, X3, X4 0

11
PROBLEMAS DEGENERADOS

Un vértice degenerado es el que tiene menos de m variables básicas positivas,


siendo m el número de restricciones del modelo y por ello el número de filas del
cuerpo principal de la tabla.

Por lo tanto, se encontrará un vértice degenerado cuando la tabla presente un


cero en la columna de los valores del lado derecho (B). Si esto sucede en la
tabla, es posible que la variable que estemos tratando de introducir ingrese a la
base a nivel cero, por lo que en este pivoteo quedaremos en el mismo vértice,
con el simple cambio del conjunto básico, en tanto que no cambia la función
objetivo.
Maximizar Z = 3 X1 + 2 X2 + 4 X3
Sujeto a:
3 X1 + X2 5 X3  10
X1 + X2 + 2 X3  8
2 X1 + 2 X3  2
X1, X2, X3 0

OPTIMOS ALTERNATIVOS

Recuerde que la señal de Optimalidad en una tabla simplex es que todos los
elementos de la última fila (Cj – Zj) sean  0.

Cuando se encuentra una tabla óptima con un elemento cero en la última fila,
dentro de una columna no básica, esa variable se puede llevar a la base sin
cambiar el valor objetivo. Si la solución óptima es no degenerada, la variable
llevada a la base será positiva. Esto significa que se habrá obtenido un nuevo
vértice y que por lo tanto existen soluciones óptimas alternas.

Maximizar Z = X1 2 X2
Sujeto a:
 2 X1 + X2  4
X1 – 3 X2  3
2 X1  4 X2  8
X1, X2 0

Maximizar Z = 4 X1 + 3 X2 + 2 X3
Sujeto a:
2 X1 + X2 X3  10
2 X1 + 2 X2 + X3  14
3 X1 + X2 + X3  12
X1, X2, X3 0

12
EJERCICIOS

Maximizar Z = 2 X1  X2 + X3 Minimizar Z =  X1 2 X2 – 3 X3


Sujeto a: Sujeto a:
X1 + X3  1  X1 + X2 + 2 X3  4
- X1 + 2 X2 + X3  2 X1 + X2 + X3  6
X3  2
X1, X2, X3 0 X1, X2, X3 0

Maximizar Z = 2 X1 4 X2 + 3 X3 Minimizar Z = 2 X1  X2 – X3


Sujeto a: Sujeto a:
 X1+ X2 + 2 X3  9 X1  X2 + 2 X3  9
6 X1 – 2 X2 + 2 X3  6  3X1 + 2 X2 + 2 X3  6
2 X1  2 X2 + X3  4 2 X1  2 X2 – X3  3
X1, X2, X3 0 X1, X2, X3 0

Maximizar Z = 6 X1 4 X2 + 5 X3 MIN Z = 3 X1 + 2 X2 + 4 X3 + X4


Sujeto a: Sujeto a:
2 X1+ X2 + 2 X3  45 2 X1 + 3 X3 – 2 X4  6
3 X1 + X2 + 2 X3  54 2 X2  2 X3 + X4  10
2 X1  2 X2 + X3 42 X3 – X4  5
X1, X2, X3 0 X1, X2, X3, X4 0

Maximizar Z =  X1 4 X2 + 6 X3 MIN Z =  2 X1 3 X2 + X3


Sujeto a: Sujeto a:
X1+ 2 X2 + X3  11 2 X1 2 X2 + 2 X3  10
2 X1 + X2 + 2 X3  10 X1 + 2 X2 + X3  13
- 3 X1  X2 + X3 3 3 X1  X2  X3 15
X1, X2, X3 0 X1, X2, X3 0

Maximizar Z = 2 X1 3 X2 + X3 MIN Z = X1 4X2  6 X3


Sujeto a: Sujeto a:
 X1+ 2 X2 + X3  13 X1 2 X2 + X3  11
2 X1  2 X2 + 2 X3  10 2 X1 + X2 + 2 X3  10
3 X1  X2  X3 15  3 X1  X2  X3 3
X1, X2, X3 0 X1, X2, X3 0

13

También podría gustarte