Sei sulla pagina 1di 10

Algoritmo de pivote

Algoritmo de pivote
Los algoritmos de pivote (o algoritmos de cambio de base) son algoritmos de la optimizacin matemtica, y en especial de la Programacin Lineal. Dado un sistema de ecuaciones lineales cuyas variables deben adoptar valores no negativos (esencialmente lo mismo que un sistema de inecuaciones lineales), se busca la mejor de entre muchas soluciones alternativas, es decir, una solucin ptima del sistema. En cada paso de tal bsqueda, el algoritmo transforma el sistema sin alterar su conjunto de soluciones. Algoritmos de pivote importantes son los diversos algoritmos simplex y los algoritmos criss-cross. Los algoritmos de pivote son de gran importancia para el tratamiento de inecuaciones lineales, donde juegan un papel anlogo al de la eliminacin de Gauss para ecuaciones lineales. Se encuentran numerosas aplicaciones de sistemas de inecuaciones en reas tan diversas como la investigacin de operaciones industriales, el transporte y distribucin de bienes, en carteras de inversiones, la ingeniera estructural, la estadstica, y la teora de juegos. Frecuentemente se abordan sistemas con decenas de miles de variables.

Procedimiento general
El problema normalizado
Todo algoritmo de pivote parte de un sistema especialmente arreglado de ecuaciones lineales, cuyas variables todas, excepto tal vez una, deben tomar valores no negativos. De hecho, cualquier sistema de inecuaciones o ecuaciones lineales, as como todo problema de Programacin Lineal, puede siempre reducirse a la siguiente forma diccionario:

donde los

son nmeros reales (en la prctica casi siempre nmeros racionales). Este formato , que satisfagan las ecuaciones e inecuaciones tome el mayor valor posible. Definiendo los conjuntos de

especifica que se busca valores para las incgnitas del sistema anterior de modo tal que la variable objetivo ndices se escribir sto en lo que sigue de la forma ms compacta

En cada iteracion de un algoritmo de pivote se destaca un conjunto de variables independientes, mientras que las restantes son variables dependientes y se expresan como funciones lineales de las primeras. Al pasar de una iteracin a la siguiente se intercambia una variable independiente por una dependiente; tales pares de variables se denominan pivotes.

Algoritmo de pivote

Condiciones de optimalidad
En caso de que se cumplan las siguientes dos condiciones de optimalidad, para todo para todo (sistema factible) y (sistema acotado),

podemos obtener una solucin al problema anterior, asignando a las variables independientes del sistema los valores . Por un lado, esto logra que las variables dependientes adopten valores nonegativos, tal como se peda. Por otro lado, toda solucin alternativa al problema debe satisfacer la relacin deben tomar valores nonegativos. (Por ejemplo, en el siguiente sistema, , ya que en ella las variables independientes tambin

las condiciones de optimalidad son violadas en dos lugares, ya que lado, los valores obtenidos al anular las variables independientes, admisible porque contienen un valor negativo, aumentar el valor que adopta la variable objetivo independientes con .)

. Por un

, no constiuyen una solucin eligiendo conjuntos de variables

. Por otro lado, no podemos descartar la posibilidad de

Transformacin de las ecuaciones


En el caso habitual de que las condiciones de optimalidad no se cumplan, puede reformularse el sistema de ecuaciones, eligiendo adecuadamente un nuevo subconjunto de entre las incgnitas, y expresando las incgnitas elegidas en funcin de las incgnitas restantes. Sea funcin de los ndices que cumpla un reordenamiento de las variables, es decir una

A partir de la particin

con ,

que divide las variables del sistema en variables independientes con , se construye entonces el sistema:

con

y las llamadas variables bsicas

Ntese que los coeficientes

existen slo para pares de subndices con

y con

. En cada

iteracin, los coeficientes del sistema as modificado vuelven a examinarse para ver si satisfacen las condiciones de optimalidad para todo (sistema factible) y para todo (sistema acotado), y de este modo generan una posible solucin al problema. Un resultado estndar de la Programacin Lineal establece que todo problema que tiene soluciones tambin posee un conjunto de variables bsicas que conduce a una de ellas. Si los coeficientes del sistema satisfacen las condiciones de optimalidad, se dice que las variables bsicas forman una base optimal del problema.

Algoritmo de pivote

Pivotes admisibles
Un coeficiente no nulo variable independiente del sistema de ecuaciones se llama elemento pivote, porque permite despejar la en lugar de la variable bsica para as seguir buscando una solucin al problema. Sin

embargo, los algoritmos de pivote no eligen un elemento pivote cualquiera, sino solamente los llamados pivotes admisibles , que deben satisfacer: O se cumple simultneamente se cumple simultneamente (En el ejemplo anterior, y y (pivote de restriccin), (pivote de objetivo).

el coeficiente no optimal

permite seleccionar el elemento pivote tambin el elemento pivote Alternativamente, el coeficiente no optimal

correspondiente a permite el

un pivote admisible con intercambio de correspondiente al pivote admisible tambin seleccionar el elemento pivote

correspodiente al pivote admisible

elemento pivote con el pivote admisible .) La restriccin a pivotes admisibles impide que en dos iteraciones sucesivas se elija el mismo pivote. Las reglas segn las cuales el pivote es elegido dependen del algoritmo de pivote particular. No obstante, debe imponerse que el algoritmo termine en un nmero finito de pasos, lo que no sucede con una eleccin de pivotes inadecuada. Fukuda & Terlaky demostraron en 1999 que para todo problema con solucin y para toda base inicial existe una secuencia de a lo ms pivotes admisibles que conduce a una base optimal. Lamentablemente, esa demostracin no es constructiva en el sentido de que indique cul pivote deba elegirse en cada paso. Como se puede observar de las definiciones anteriores, una base optimal no tiene pivotes admisibles, por lo que el algoritmo no puede ser continuado a partir de una base optimal. Por otro lado, es fcil demostrar con argumentos similares a los expuestos que una base no optimal sin pivotes admisibles siempre pertenece a un problema sin solucin; sea esto, porque el sistema de ecuaciones e inecuaciones no tiene solucin alguna (problema infactible), o porque existen soluciones con un valor objetivo arbitrariamente grande (problema no acotado).

Implementacin y ejemplo
Problemas con muchas variables
La implementacin computacional de problemas prcticos a menudo dista mucho de ser trivial. Los coeficientes de sistemas con decenas de miles de variables siempre presentan una u otra estructura, la cual debe ser aprovechada para determinar los sistemas de iteraciones subsecuentes de manera relativamente rpida y numricamente estable (sin mayores errores de redondeo): Los sistemas iniciales de problemas grandes (no los sistemas transformados) contienen una inmensa mayora de coeficientes iguales a cero (el sistema es disperso), lo que permite ahorrar muchas operaciones aritmticas si se recurre al sistema de partida. Muchos procedimientos se basan en una evaluacin retardada, donde se calcula slo aquellos coeficientes de un sistema que sean necesarios para determinar un pivote, y sto solamente en el instante en que se ocupan. Para evitar la evaluacin de coeficientes superfluos tales procedimientos emplean permutaciones de las variables en el sistema de partida, factorizaciones de las inversas de matrices bsicas, una factorizacin de la matriz de coeficientes, y otras tcnicas ms. En todos estos casos suele ser necesario referirse a sistemas de iteraciones previas a la ltima, por lo que las transformaciones adoptan formas bastante ms complejas que la directa.

Algoritmo de pivote A menudo se encuentran insertas en la estructura del sistema diversas estructuras especiales, por ejemplo de flujos en redes, y para tales estructuras especiales se ha desarrollado implementaciones particularmente eficientes. No obstante lo anterior, hay tambin muchas aplicaciones que dan origen a problemas de tamao moderado, problemas para los cuales basta una implementacin simple.

Una implementacin directa


Para evitar errores de redondeo se trabaja en lo que sigue con nmeros racionales, eligiendo un nico denominador comn para todo el sistema de ecuaciones. Para encontrar un denominador as en cada paso del algoritmo no hace falta analizar los coeficientes del sistema; en caso de un sistema inicial con coeficientes enteros, en cada iteracin se cumplir que El numerador del elemento pivote es un denominador comn para el sistema de ecuaciones siguiente. Al evaluar los coeficientes de un nuevo sistema el denominador comn del sistema anterior quedar obsoleto, por lo que se procede a dividir los coeficientes del sistema nuevo por el denominador antiguo, con resultados que siempre sern enteros. Un arreglo matricial que contiene los coeficientes de un sistema de pivote suele llamarse tabla de pivoteo o cuadro de pivoteo. El siguiente esquema muestra cmo cambian los coeficientes del sistema de pivoteo al pasar de una iteracin a la que sigue:

En ese esquema, el smbolo

designa al denominador comn del sistema de ecuaciones, el smbolo

designa al

numerador del elemento pivote,

designa cualquier coeficiente restante en la misma fila del elemento pivote, cualquier coeficiente ajeno a ) y los coeficientes

designa cualquier coeficiente restante en la misma columna del elemento pivote, y la fila y a la columna del pivote. Los coeficientes de la variable a maximizar(

de la columna de valores( ) se transforman de acuerdo a las mismas reglas. Las ilustraciones en cada paso del ejemplo siguiente muestran todas el mismo sistema de ecuaciones graficado en distintos sistemas de coordenadas. En estos grficos, el rea bordeada de verde es el conjunto de soluciones factibles, para el cual todas las variables toman valores no negativos, los ejes de coordenadas corresponden a ecuaciones de variables independientes, las dems rectas a ecuaciones de variables bsicas, la recta en rojo recorre los puntos donde la variable objetivo adopta su valor mximo, las intersecciones de rectas correspondientes a pivotes admisibles llevan puntos rojos, el pivote seleccionado va bordeado de negro, y el rea anaranjada corresponde al ortante no negativo de la iteracin siguiente.

Algoritmo de pivote

Ejemplo de eleccin de pivotes


La siguiente estrategia de eleccin de pivote corresponde al algoritmo criss-cross con pivoteo en los ndices mnimos (minimal index criss-cross-algorithm). En cada paso, el pivote admisible se elegir de acuerdo a la siguiente regla (el mnimo de un conjunto vaco se considera igual a infinito): 1. Determinar los ndices 2. Si se tiene 3. Si se tiene , elegir el pivote , elegir el pivote donde donde y . . .

Se puede demostrar que este criterio simple (aunque no siempre eficiente) conduce siempre a una base optimal en un sistema que tenga solucin. En el siguiente ejemplo se busca valores no negativos para las variables variable adicional satisfaciendo el siguiente conjunto de ecuaciones lineales: que maximicen la

En el sistema inicial del ejemplo, los coeficientes no optimales son admisibles. El criterio de seleccin, sin embargo, prescribe que despejemos

, y todos los pivotes son :

en lugar de

(para animar con Firefox, pulsar aqu y luego en la imgen, manteniendo presionado) Con ello obtenemos:

Cambio de la base0 a la base1

Ahora los coeficientes no optimales son coeficiente con los pivotes admisibles

con los pivotes admisibles ,

, y el en

. En consecuencia, despejamos

Algoritmo de pivote lugar de : (animado) Se obtiene el sistema

Cambio de la base1 a la base2

El nico coeficiente no optimal en este sistema es despejamos en lugar de :

con los pivotes admisibles

Algoritmo de pivote

7 (animado) El sistema final es

Cambio de la base2 a la base3

Como este sistema satisface las condiciones de optimalidad, hemos obtenido la solucin

Dualidad
Problemas duales
A todo problema de programacin lineal llevado a la forma bsica arriba descrita se le puede asociar un problema dual de programacin lineal. Con respecto a esa forma bsica, la matriz de coeficientes del problema dual es la matriz negativa traspuesta de la matriz de coeficientes del problema original, lo que muestra de paso que el dual del problema dual es el problema original, llamado problema primal en ese contexto.

, en notacin compacta,

Algoritmo de pivote

(Precaucin: Al usar la forma diccionario para escribir el problema dual, no es lcito sustituir por !)

Transformaciones sucesivas
La relacin anterior entre los coeficientes de un par de problemas duales no se cumple solamente para el sistema de partida, sino que persiste paso a paso a travs de un algoritmo de pivotes, siempre y cuando el pivote elegido en cada iteracin sea el mismo en ambos problemas:

La relacin de dualidad es particularmente fcil de observar en un sistema de pivoteo que tiene slo dos variables independientes y dos variables despejadas. El sistema obtenido es el mismo si se intercambia el estado de dos de las variables y a continuacin se construye el problema dual, o si se realiza estas operaciones en orden inverso:

De esta relacin de dualidad se concluye que toda base optimal para el problema primal provee tambin una base optimal para el problema dual. Al ejemplo anteriormente desarrollado le corresponde el problema dual

El sistema optimal de este problema es entonces

En el problema original, la variable a maximizarse toma el valor ptimo

; el valor ptimo del problema

dual es el negativo de este valor: el mayor valor posible que su variable objetivo puede adoptar es . Una posible solucin ptima para el problema dual es .

Algoritmo de pivote

Tratamiento conjunto
Una importante consecuencia terica de la dualidad es la siguiente: para resolver problemas de optimizacin lineal no se requiere un algoritmo que maximice (o minimice) una de las variables, basta para ello cualquier algoritmo capaz de resolver sistemas de desigualdades lineales. Esto es as porque las relaciones de dualidad implican que toda base optimal para el problema primal tambin provee una base optimal para el problema dual, donde el valor ptimo de la variable del problema dual es el negativo del valor ptimo de la variable del problema original. Por tanto, para pares de soluciones ptimas se tiene Por otro lado, para pares de soluciones factibles de las cuales al menos una no es ptima se cumple

De ah podemos concluir que las soluciones ptimas para un par de problemas duales son exactamente las soluciones del siguiente sistema de desigualdades

donde las variables

se hayan sustituido por las expresiones lineales

correspondientes. En el caso de aplicaciones prcticas, sin embargo, esta forma de proceder slo es competitiva si se logra aprovechar adecuadamente la estructura de datos comn a los sistemas primal y dual.

Herramienta interactiva
El applet de pivoteo interactivo [1] de Robert Vanderbei, programado en1997, permite definir un sistema de ecuaciones lineales de tamao reducido y realizar en ese sistema pivoteos sobre pares arbitrarios de variables. La herramienta (en ingls) se autodenomina Simplex Pivot Tool, pero est orientada a algoritmos de pivote totalmente arbitrarios. Para evitar redondeo, los coeficientes del sistema pueden tambin verse en forma de fracciones, aunque stas no adoptan un denominador comn.

Literatura complementaria
George Dantzig (1963): Linear Programming and Extensions, Princeton University Press, archivo pdf [2] Vaek Chvtal (1983): Linear Programming, Freeman and Company, New York NY, ISBN 0-7167-1587-2 Robert Vanderbei (2007): Linear Programming. Foundations and Extensions, 3aed., Springer, ISBN 978-0-387-74387-5, archivo pdf [3]

Referencias
[1] http:/ / campuscgi. princeton. edu/ ~rvdb/ JAVA/ pivot/ advanced. html [2] http:/ / www. rand. org/ pubs/ reports/ 2007/ R366part1. pdf [3] http:/ / higherintellect. info/ texts/ math/ Linear%20Programming-%20Foundations%20and%20Extensions. pdf

Fuentes y contribuyentes del artculo

10

Fuentes y contribuyentes del artculo


Algoritmo de pivote Fuente: http://es.wikipedia.org/w/index.php?oldid=72640820 Contribuyentes: Heinrich Puschmann, JacobRodrigues, Wikielwikingo, 1 ediciones annimas

Fuentes de imagen, Licencias y contribuyentes


File:Lp pivoting step cc01it0 animated.svg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Lp_pivoting_step_cc01it0_animated.svg Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes: User:Heinrich Puschmann File:Lp pivoting step cc01it1 animated.svg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Lp_pivoting_step_cc01it1_animated.svg Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes: User:Heinrich Puschmann File:Lp pivoting step cc01it2 animated.svg Fuente: http://es.wikipedia.org/w/index.php?title=Archivo:Lp_pivoting_step_cc01it2_animated.svg Licencia: Creative Commons Attribution-Sharealike 3.0 Contribuyentes: User:Heinrich Puschmann

Licencia
Creative Commons Attribution-Share Alike 3.0 //creativecommons.org/licenses/by-sa/3.0/

Potrebbero piacerti anche