Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de...

73
Transforma y vencerás Dr. Eduardo A. RODRÍGUEZ TELLO CINVESTAV-Tamaulipas 12 de marzo de 2018 Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 1 / 73

Transcript of Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de...

Page 1: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás

Dr. Eduardo A. RODRÍGUEZ TELLO

CINVESTAV-Tamaulipas

12 de marzo de 2018

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 1 / 73

Page 2: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

1 Transforma y vencerásSimplificación de la instancia, pre-ordenamientoCambio de representaciónReducción del problema

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 2 / 73

Page 3: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás

Transforma y vencerás

Este grupo de técnicas resuelven un problema mediante unatransformación:

1 Simplificación de la instancia: una instancia más simple(conveniente) del mismo problema

2 Cambio de representación: se emplea una representacióndiferente de la misma instancia

3 Reducción del problema: Se transforma el problema a otrodiferente para el cuál existe un algoritmo eficiente conocido

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 3 / 73

Page 4: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

1 Transforma y vencerásSimplificación de la instancia, pre-ordenamientoCambio de representaciónReducción del problema

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 4 / 73

Page 5: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Simplificación de la instancia, pre-ordenamiento

Se resuelve la instancia del problema al transformarla en otra mássimple o fácil de resolver

Pre-ordenamiento:BúsquedaProblema de selección (cálculo de la media)Unicidad de elementos (verificar que todos los elementos sondistintos)

Además:El ordenamiento topológico ayuda a resolver algunos problemaspara DAGs (grafos dirigidos acíclicos)El pre-ordenamiento se emplea en muchos problemasgeométricos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 5 / 73

Page 6: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Búsqueda con pre-ordenamiento

Problema:Buscar un valor K en un arreglo A[0..n− 1]

Algoritmo basado en pre-ordenamiento:1 Ordenar el arreglo con un algoritmo eficiente, Θ(n log n)

2 Aplicar búsqueda binaria, O(log n)

Eficiencia: Θ(n log n) + O(log n) = Θ(n log n)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 6 / 73

Page 7: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Unicidad de elementos

Problema:

Verificar que todos los elementos de un arreglo A[0..n− 1] sondistintos

Fuerza bruta:

Comparar todo los pares de elementos

Eficiencia: O(n2)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 7 / 73

Page 8: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Unicidad de elementos con pre-ordenamiento

Análisis de la complejidad1 Ordenar el arreglo con un algoritmo eficiente, Θ(n log n)

2 Recorrer el arreglo verificando pares de elementos adyacentes,Θ(n)

Eficiencia: Θ(n log n) + Θ(n) = Θ(n log n)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 8 / 73

Page 9: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Cálculo de la moda estadística

Problema:

Encontrar el valor que ocurre con mayor frecuencia en un arregloA[0..n− 1]

Fuerza bruta:

1 Recorre la lista calculando las frecuencias de todos los elementosdistintos

2 Encuentra el valor con la máxima frecuencia

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 9 / 73

Page 10: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Cálculo de la moda estadística

El algoritmo de fuerza bruta se implementa con una lista auxiliarB que almacena los valores encontrados y su frecuenciaEn cada iteración el i-ésimo elemento de A se compara con losvalores encontrados (al recorrer B)Si se encuentra el elemento en B se incrementa su frecuencia,sino el elemento se agrega a B con frecuencia 1El peor caso de este algoritmo se da cuando la lista no tienevalores repetidos:

En cada iteración el i-ésimo elemento de A se compara con i− 1elementos en B antes de agregarse con frecuencia 1n∑

i=1

(i− 1) = 0 + 1 + . . . + (n− 1) =n(n− 1)

2∈ Θ(n2)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 10 / 73

Page 11: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Cálculo de la moda estadística con pre-ordenamiento

Una alternativa es simplificar la instancia usandopre-ordenamientoEntonces todos los valores iguales en A estarán adyacentesPor lo tanto para calcular la moda estadística bastaría conencontrar el número mayor de elementos adyacentes iguales en A

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 11 / 73

Page 12: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Cálculo de la moda estadística con pre-ordenamiento

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 12 / 73

Page 13: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Cálculo de la moda estadística

Análisis de la complejidad

1 Ordenar el arreglo con un algoritmo eficiente, Θ(n log n)

2 Recorrer el arreglo verificando el número máximo de elementosadyacentes iguales, Θ(n)

Eficiencia: Θ(n log n) + Θ(n) = Θ(n log n)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 13 / 73

Page 14: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Eliminación Gaussiana

Problema:

Resolver un sistema de n ecuaciones lineales con n incógnitas conuna matriz arbitraria de coeficientes (n es un número grande)

a11x1 + a12x2 + . . . + a1nxn = b1a21x1 + a22x2 + . . . + a2nxn = b2

......

an1x1 + an2x2 + . . . + annxn = bn

En notación matricialAx = b

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 14 / 73

Page 15: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Eliminación Gaussiana

Simplificación de la instancia:

Se transforma en un sistema de n ecuaciones lineales con nincógnitas con una matriz de coeficientes en forma triangular superior

a′11x1 + a′12x2 + . . . + a′1nxn = b′1a′22x2 + . . . + a′2nxn = b′2

......

a′nnxn = b′n

En notación matricial

Ax = b =⇒ A′x = b′

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 15 / 73

Page 16: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Eliminación Gaussiana

Resolución de la instancia:

La ventaja de tener un sistema de ecuaciones con una matriz decoeficientes en forma triangular superior es que este sistema seresuelve fácilmente haciendo substituciones hacia atrás:

Se inicia encontrando el valor de xn a partir de la última ecuación

Se substituye el valor xn encontrado en la penúltima ecuación paraencontrar xn−1

Y así sucesivamente hasta substituir los valores conocidos de lasúltimas (n− 1) variables en la primera ecuación para encontrar elvalor de x1

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 16 / 73

Page 17: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Eliminación Gaussiana

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 17 / 73

Page 18: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Eliminación Gaussiana

Eficiencia:

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 18 / 73

Page 19: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles de búsqueda balanceados

Los árboles binarios de búsqueda permiten aumentar la eficienciatemporal de las operaciones de búsqueda, inserción y borrado enel caso promedio: Θ(log n)

Sin embargo, en el peor caso estas operaciones tienencomplejidad Θ(n) porque el árbol puede degenerar en unocompletamente desbalanceado con altura n− 1

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 19 / 73

Page 20: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles de búsqueda balanceados

Existen diversos esfuerzos reportados en la literatura para crearestructuras de datos que permitan:

Preservar la eficiencia logarítmica de las operaciones básicas(búsqueda, inserción y borrado) en árboles binarios

Conservar los elementos ordenados

Evitar el peor caso

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 20 / 73

Page 21: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles de búsqueda balanceados

Entre ellos se distinguen dos enfoques principales:Mediante simplificación de la instancia: Un árbol binariodesbalanceado se reestructura mediante operaciones detransformación especiales (rotaciones) para balancearlo.

Mediante cambio de la representación: Se permite la existenciade más de un elemento en los nodos del árbol de búsqueda.

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 21 / 73

Page 22: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles de búsqueda balanceados

Mediante simplificación de la instancia:Árboles AVL

Árboles rojos-negros

Árboles biselados (splay)

Mediante cambio de la representación:Árboles multivía 2-3

Árboles multivía 2-3-4

Árboles B

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 22 / 73

Page 23: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles AVL

Definición

Un árbol AVL es un árbol binario de búsqueda en el cual el factorde balance de cada nodo, definido como la diferencia entre lasalturas de los subárboles izquierdo y derecho de un nodo, es iguala 0, 1 o -1. Un árbol vacío tiene altura -1.

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 23 / 73

Page 24: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles AVL

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 24 / 73

Page 25: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles AVL

Si una inserción o borrado de un nodo provoca que el árbol AVLse quede desbalanceado, éste debe ser reestructurado medianteuna operación de rotación para balancearlo

Existen cuatro tipos de rotaciones:Simple a la derecha (rotación R)Simple a la izquierda (rotación L)Doble izquierda derecha (rotación LR)Doble derecha izquierda (rotación RL)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 25 / 73

Page 26: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles AVL, rotaciones

Rotación L

Rotación R

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 26 / 73

Page 27: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles AVL, rotaciones

Rotación R

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 27 / 73

Page 28: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles AVL, rotaciones

Rotación LR

Rotación RL

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 28 / 73

Page 29: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles AVL, rotaciones

Rotación LR

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 29 / 73

Page 30: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles AVL, eficiencia

Su eficiencia está ligada a la altura h del árbolEspecíficamente la altura h de un árbol AVL con n nodossatisface:

blog2 nc ≤ h < 1.4405 log2(n + 2)− 1.3277

Esto implica que las operaciones de búsqueda e inserción sonΘ(log n) en el peor casoEn el caso promedio buscar en un árbol AVL requiereaproximadamente el mismo número de comparaciones que si serealiza la búsqueda binaria en un arreglo ordenadoLa operación de borrado pertenece también a la clase Θ(log n)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 30 / 73

Page 31: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles 2-3

Inventados por John Hopcroft en 1970

Poseen dos tipos de nodos: 2-nodo y 3-nodo

Todas sus hojas deben estar en el mismo nivel (perfectamentebalanceado en altura)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 31 / 73

Page 32: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles 2-3, ejemplo

Ejemplo: 9, 5, 8, 3, 2, 4, 7

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 32 / 73

Page 33: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles 2-3, eficiencia

Su eficiencia está ligada a la altura h del árbol. Encontremos lacota superior de h

Un árbol 2-3 de altura h con el menor número de valores (llaves)es un árbol completo de 2-nodos. Por lo tanto se tiene la siguienteinecuación:

n ≥ 1 + 2 + . . . + 2h = 2h+1 − 1,

por lo tantoh ≤ log2(n + 1)− 1

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 33 / 73

Page 34: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Árboles 2-3, eficiencia

Por otra parte, un árbol 2-3 de altura h con el mayor número devalores (llaves) es un árbol completo de 3-nodos (cada uno condos valores y 3 hijos):

n ≥ 2(1) + 2(3) + . . . + 2(3h) = 2(1 + 3 + . . . + 3h) = 3h+1 − 1,

por lo tantoh ≥ log3(n + 1)− 1,

entonceslog3(n + 1)− 1 ≤ h ≤ log2(n + 1)− 1

Esto implica que las operaciones de búsqueda, inserción yborrado están todas en laclase Θ(log n) en el peor caso y en el caso promedio

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 34 / 73

Page 35: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Ordenamiento por montículos (heaps)

Montículo (heap)Un montículo (max-heap) es un árbol binario con un valor (llave)en cada uno de sus nodos tal que cumple con las siguientespropiedades:

Forma: Es esencialmente completo, i.e., todos sus niveles estáncompletos excepto posiblemente el último, donde sólo los valoresmás a la derecha pueden faltarDominancia parental: El valor en cada nodo es mayor o igual quelos valores en sus hijos

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 35 / 73

Page 36: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Ordenamiento por montículos (heaps)

Propiedades importantes de los montículos (heaps)Dado n, existe un único árbol binario con n nodos que esesencialmente completo, con h = blog2 nc

La raíz contiene siempre el valor más grande (max-heap), por elloson útiles para implementar colas de prioridad

El subárbol enraizado en cualquier nodo de un montículo estambién un montículo

Un montículo, por ser un árbol completo, puede ser implementadomediante un arreglo lo que simplifica su codificación

La eficiencia de las operaciones en los montículos es crucial endiversos algoritmos (Prim, Dijkstra, Código Huffman, B&B)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 36 / 73

Page 37: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Montículos representados como arreglos

Los nodos padre están en las primeras bn/2c posiciones, lashojas en las dn/2e restantes

El hijo izquierdo del nodo en la posición j está en 2j con1 ≤ j ≤ bn/2c

El hijo derecho del nodo en la posición j está en 2j + 1

El padre del nodo en la posición j está en bj/2c para 2 ≤ j ≤ n

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 37 / 73

Page 38: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Construcción del montículo (bottom-up)

Construcción bottom-up de un montículo1 Inicializar la estructura de un árbol binario completo con los n

valores en el orden dado

2 Iniciando con el último valor de los padres (i.e., el más a laderecha), fijar la raíz del montículo con este valor. Si no satisfacela condición del montículo (dominancia), continuar intercambiandoese valor con el de su hijo más grande hasta lograr que estacondición sea válida

3 Repetir el paso 2 para cada uno de los nodos padre predecesores

4 El algoritmo se detiene cuando el paso 2 se realizó para la raízdel árbol

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 38 / 73

Page 39: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Construcción del montículo (bottom-up)

Ejemplo: 2, 9, 7, 6, 5, 8

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 39 / 73

Page 40: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Construcción del montículo (bottom-up)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 40 / 73

Page 41: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Construcción del montículo (bottom-up), eficiencia

Asumamos por simplicidad que tenemos un montículo completon = 2k − 1 y h = blog2 nc = dlog2 ne − 1 = k − 1

Cada llave en el nivel i del árbol viajará en el peor caso al nivel hde una hoja en el algoritmo de construcción

Dado que moverse al nivel inferior requiere dos comparaciones(una para encontrar el hijo más grande y otra para determinar sise requiere un intercambio) el número de comparaciones queinvolucran una llave en el nivel i sera 2(h− i)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 41 / 73

Page 42: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Construcción del montículo (bottom-up), eficiencia

Entonces el número total de comparaciones en el peor caso delalgoritmo HeapBottomUp será:

Cworst(n) =

h−1∑i=0

∑llaves en

nivel i

2(h− i) =

h−1∑i=0

2(h− i)2i = 2(n− log2(n+1))

Por lo tanto usando este algoritmo se puede construir unmontículo de tamaño n con menos de 2n comparaciones

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 42 / 73

Page 43: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Simplificación de la instancia, pre-ordenamiento

Ordenamiento por montículo (heapsort)1 Construir un montículo para una lista dada de n valores

2 Repetir la operación de remoción de la raíz n− 1 veces:Intercambia el valor de la raíz y el nodo en la hoja más a la derecha

Decrementa el tamaño del montículo en 1

Si es necesario, intercambia el valor de la nueva raíz con el de suhijo más grande hasta lograr que la condición del montículo(dominancia) sea válida

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 43 / 73

Page 44: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Construcción del montículo (bottom-up)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 44 / 73

Page 45: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Simplificación de la instancia, pre-ordenamiento

Construcción del montículo (bottom-up), eficienciaPeor caso:1. Construir un montículo para una lista dada de n valores

C(n) =

h−1∑i=0

2(h− i)2i = 2[n− log2(n + 1)] ∈ Θ(n)

donde 2i es el número de nodos en el nivel i

2. Repetir la operación de remoción de la raíz n− 1 veces (reparar montículo)

C(n) =

n−1∑i=1

2 log2 i ∈ Θ(n logn)

La complejidad de ambos pasos es entonces: Θ(n) + Θ(n logn) = Θ(n logn)Además, el caso promedio también es Θ(n logn) (misma clase que elmergesort)Eficiencia espacial: in-situ (in-place), i.e., no requiere espacio dealmacenamiento extraEs no estable, i.e., cambia el orden relativo de elementos con igual llave

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 45 / 73

Page 46: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Cambio de representación

1 Transforma y vencerásSimplificación de la instancia, pre-ordenamientoCambio de representaciónReducción del problema

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 46 / 73

Page 47: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Cambio de representación

Evaluación de polinomios

Problema de evaluación de polinomiosDado un polinomio de grado n

p(x) = anxn + an−1x

n−1 + . . . + a1x + a0

y un valor específico de x, encontrar el valor de p en ese punto.

Los polinomios constituyen una de las clases más importantes defunciones porque:

Poseen una gran cantidad de propiedades interesantesPueden ser usados en cálculo y análisis matemático paraaproximar cualquier otra función derivableTienen aplicaciones prácticas variadas en física, química,economía y las ciencias sociales

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 47 / 73

Page 48: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Cambio de representación

Evaluación de polinomios

El problema de manipularlos eficientemente ha sido estudiadodesde hace varios siglos

La Regla de Horner es un algoritmo elegante y eficiente paraevaluar un polinomio (siglo XIX)

Es un buen ejemplo del uso de la técnica del cambio derepresentación al expresar p(x) en una nueva fórmula

p(x) = (. . . (anx + an−1)x + . . .)x + a0

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 48 / 73

Page 49: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Cambio de representación

Regla de Horner

Ejemplo

p(x) = 2x4 − x3 + 3x2 + x− 5= x(2x3 − x2 + 3x + 1)− 5= x(x(2x2 − x + 3) + 1)− 5= x(x(x(2x− 1) + 3) + 1)− 5

Coef. 2 −1 3 1 −5

x = 3 2 3(2)− 1 = 5 3(5) + 3 = 18 3(18) + 1 = 55 3(55)− 5 = 160

2x− 1 x(2x− 1) + 3 x(x(2x− 1) + 3) x(x(x(2x− 1) + 3) + 1)− 5

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 49 / 73

Page 50: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Cambio de representación

Regla de Horner, algoritmo

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 50 / 73

Page 51: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Cambio de representación

Regla de Horner, eficiencia

El número de multiplicaciones M(n) y de adiciones A(n) estádado por la siguiente expresión:

M(n) = A(n) =

n−1∑i=0

1 = n

La eficiencia de la regla de Horner puede apreciarse más sitomamos en cuenta que evaluar por fuerza bruta el término degrado n del polinomio anx

n se requieren n multiplicaciones.

Mientras que el algoritmo de Horner usando n multiplicacionesevalúa además de este término los otros n− 1 del polinomio

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 51 / 73

Page 52: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Cambio de representación

Exponenciación binaria

El excelente desempeño del algoritmo de Horner se diluye si seaplica el método al cálculo de an, el cual es el valor de xn parax = a

De hecho degenera en la complejidad del algoritmo de fuerzabruta que multiplica a por si mismo y realiza sumas innecesariasde ceros

Debido a que el cálculo de an (de hecho an mod m) es unaoperación esencial en diversos métodos de chequeo deprimalidad y de encriptación, veremos ahora un algoritmo basadoen la idea de cambio de representación

Este explota la representación binaria del exponenten = bI . . . bi . . . b0

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 52 / 73

Page 53: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Cambio de representación

Exponenciación binaria

Esto significa que el valor de n puede calcularse como el valor delpolinomio siguiente en x = 2

p(x) = bIxI + . . . + bix

i + . . . + b0

Por ejemplo si n = 13 entonces su representación binaria es 1101y 13 = 1 · 23 + 1 · 22 + 0 · 21 + 1 · 20

Calculemos el valor de este polinomio con la regla de Horner yveamos lo que implica para el cálculo de la potencia

an = ap(2) = abIxI+...+bix

i+...+b0

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 53 / 73

Page 54: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Cambio de representación

Exponenciación binaria

Regla de Horner para p(2)

p← 1for i← I − 1 downto 0 do

p← 2p + bi

Implicaciones para ap(2)

ap ← a1

for i← I − 1 downto 0 doap ← a2p+bi

Observemos que

a2p+bi = (ap)2 · abi =

{(ap)2 si bi = 0(ap)2 · a si bi = 1

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 54 / 73

Page 55: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Cambio de representación

Exponenciación binaria

Ejemplo: calcular a13, entonces n = 13 = 11012

dígitos binarios de n 1 1 0 1

acumulador a a2 · a = a3 (a3)2 = a6 (a6)2 · a = a13

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 55 / 73

Page 56: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Cambio de representación

Exponenciación binaria, eficiencia

Como el algoritmo realiza una o dos multiplicaciones en cadaiteración el número total de multiplicaciones M(n) para calcularan es

(b− 1) ≤M(n) ≤ 2(b− 1)

donde b es la longitud de la cadena de bits que representa elexponente n

Considerando que b− 1 = blog2 nc podemos concluir que laeficiencia del algoritmo de exponenciación binaria que acabamosde presentar es logarítmica

Esta es entonces mejor que la del algoritmo de fuerza bruta deexponenciación que resulta siempre en n− 1 multiplicaciones

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 56 / 73

Page 57: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

1 Transforma y vencerásSimplificación de la instancia, pre-ordenamientoCambio de representaciónReducción del problema

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 57 / 73

Page 58: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Reducción del problema

Esta variante de la técnica transforma y vencerás resuelve unproblema al transformarlo en otro problema diferente para el cualexiste un algoritmo eficiente conocido.

Para que sea de utilidad práctica, el tiempo combinado de latransformación y la solución del otro problema debe ser máspequeño que cuando se resuelve el problema original con otroalgoritmo.

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 58 / 73

Page 59: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Reducción del problema, ejemplos

Calcular el lcm(m,n) mediante el cálculo del gdc(m,n)

Calcular el número de caminos de longitud k en un grafo al elevarla matriz de adyacencia a la k potencia

Transformar un problema de maximización en uno deminimización y viceversa

Programación lineal

Reducción de problemas a grafos (e.g., resolver rompecabezasvía grafos estado-espacio)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 59 / 73

Page 60: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Cálculo del mínimo común múltiplo

El mínimo común múltiplo de dos enteros m y n, denotadolcm(m,n), se define como el entero más pequeño que es divisiblepor ambos enteros m y n

Por ejemplo lcm(24, 60) = 120

Una forma de calcularlo es descomponer en factores primos m yn. Después se multiplican los factores comunes a m y n por losfactores primos que sólo aparecen en m por los factores primosque sólo aparecen en n:

24 = 2 · 2 · 2 · 360 = 2 · 2 · 3 · 5lcm(24, 60) = (2 · 2 · 3) · 2 · 5 = 120

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 60 / 73

Page 61: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Cálculo del mínimo común múltiplo

Este procedimiento que acabamos de revisar es ineficiente

Una mejor opción se logra al efectuar una reducción del problemay aprovechar que existe un algoritmo eficiente para calcular elmáximo común divisor (algoritmo de Euclides), el cual es elproducto de todos los factores primos de m y n

Debido a que el producto del lcm(m,n) y gcd(m,n) incluye cadafactor de m y n exactamente una vez y en consecuencia es iguala el producto de m y n

Esta observación nos permite deducir la fórmula siguiente:

lcm(m,n) =m · n

gcd(m,n)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 61 / 73

Page 62: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Conteo de caminos en un grafo

Nuestro siguiente problema es el de conteo de caminos delongitud k en un grafo

Una opción para resolverlo consiste en efectuar una reducción delproblema y aprovechar que el número de caminos de longitudk > 0 entre el vértice i y el vértice j de un grafo (dirigido o nodirigido) es igual al elemento (i, j) de la matriz de adyacencia Adel grafo elevada a k-ésima potencia (i.e., Ak)

Por lo tanto el problema de conteo de caminos de un grafo puedeser resuelto calculando potencia adecuada de su matriz deadyacencia

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 62 / 73

Page 63: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Conteo de caminos en un grafo

A =

0 1 1 11 0 0 01 0 0 11 0 1 0

A2 =

3 0 1 10 1 1 11 1 2 11 1 1 2

Hay tres caminos de longitud dos que inician y terminan en a:a→ b→ a, a→ c→ a, y a→ d→ a

Pero sólo uno de longitud dos entre a y c: a→ d→ c

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 63 / 73

Page 64: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Programación lineal

Muchos problemas de toma de decisiones pueden ser reducidosa una instancia de un problema de Programación Lineal (PL)

El término PL define una clase particular de problemas donde sebusca optimizar una función lineal (función objetivo) de variasvariables sujeta a restricciones expresadas en forma deecuaciones (o inecuaciones) lineales

Las técnicas de PL son ampliamente utilizadas para resolver unadiversidad de problemas militares, económicos, industriales ysociales

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 64 / 73

Page 65: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Programación lineal, ejemplo problema de producción

Una fabrica de hilos y tejidos requiere fabricar dos tejidos decalidad diferente T1 y T2

Se dispone de 500 Kg de hilo a, 300 Kg de hilo b y 108 Kg de hilo c

Para obtener un metro de T1 diariamente se necesitan 120 gr dehilo a, 150 gr de b y 72 gr de c

Para producir un metro de T2 por día se necesitan 200 gr de a,100 gr de b y 27 gr de c

El tejido T1 se vende a $4,000 el metro y el T2 a $5,000 el metro

Si se debe obtener la máxima ganancia, ¿cuántos metros de T1 yT2 se deben fabricar?

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 65 / 73

Page 66: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Programación lineal, ejemplo problema de producción

Paso 1. Identificar las variables de decisión

Las variables de decisión en este problema son xT1 y xT2

Estas representan el número de metros diarios a fabricar de lostejidos T1 y T2

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 66 / 73

Page 67: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Programación lineal, ejemplo problema de producción

Paso 2. Expresar restricciones como ecuaciones linealesDado que:

1 m de T1 requiere 120 gr de hilo a, 150 gr de b y 72 gr de c1 m de T2 requiere 200 gr de hilo a, 100 gr de b y 27 gr de cSe dispone de un máximo de kilogramos de cada hilo (a, b, c): 500,300 y 108

Podemos escribir las siguientes restricciones:

0.120xT1 + 0.200xT2 ≤ 500 hilo a0.150xT1 + 0.100xT2 ≤ 300 hilo b0.072xT1 + 0.027xT2 ≤ 108 hilo c

Las restricciones de no negatividad no son necesarias pues setrata de un problema de maximización (se recomienda incluirlasen minimización)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 67 / 73

Page 68: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Programación lineal, ejemplo problema de producción

Paso 3. Escribir función objetivo (lineal)

Las ganancias de la compañía son de dos tipos: (1) El tejido T1 sevende a $4,000 el metro y (2) el T2 a $5,000 el metro

Por lo tanto la función objetivo a maximizar es:

Z = 4000xT1 + 5000xT2

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 68 / 73

Page 69: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Programación lineal, ejemplo problema de producción

La formulación completa del problema de PL es la siguiente:

Maximizar: Z = 4000xT1 + 5000xT2

Sujeto a: 0.120xT1 + 0.200xT2 ≤ 500

0.150xT1 + 0.100xT2 ≤ 300

0.072xT1 + 0.027xT2 ≤ 108

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 69 / 73

Page 70: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Programación lineal, en forma canónica

La forma estándar de un problema de PL con m restricciones y nvariables puede ser representado así:

Minimizar: Z = c1x1 + c2x2 + . . . + cnxnSujeto a: a11x1 + a12x2 + . . . + a1nxn ≤ b1

a21x1 + a22x2 + . . . + a2nxn ≤ b2...

am1x1 + am2x2 + . . . + amnxn ≤ bmx1, x2, . . . , xn ≥ 0

b1, b2, . . . , bn ≥ 0

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 70 / 73

Page 71: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Programación lineal, en forma canónica

Una función lineal como 2x1 − 3x2 + 8x3 puede escribirse como elproducto punto de dos vectores:

c =

2−3

8

y x =

x1x2x3

Esto puede expresarse como:

c · x o cTx

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 71 / 73

Page 72: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Programación lineal, en forma canónica

De igual forma las restricciones lineales pueden representarse enforma matriz-vector

x1 ≤ 200

x2 ≤ 300

x1 + x2 ≤ 400

=⇒

1 0

0 1

1 1

︸ ︷︷ ︸

(x1

x2

)≤

200

300

400

︸ ︷︷ ︸

A x ≤ b

Cada fila de la matriz A corresponde a una restricción

ai · x ≤ bi para toda i = 1, 2, . . . ,m

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 72 / 73

Page 73: Dr. Eduardo A. RODRÍGUEZ Tertello/algorithms/sesion13.pdf · Eliminación Gaussiana Resolución de la instancia: La ventaja de tener un sistema de ecuaciones con una matriz de coeficientes

Transforma y vencerás Reducción del problema

Programación lineal, en forma canónica

Usando esta conveniente notación podemos expresar unproblema de PL en forma canónica como:

Minimizar: cTx

Sujeto a: Ax ≤ b

x ≥ 0

A es la matriz de coeficientes, x el vector de decisión, b el vectorde requerimientos, y c el vector de costo (ganancia)

Dr. Eduardo RODRÍGUEZ T. (CINVESTAV) Transforma y vencerás 12 de marzo de 2018 73 / 73