Algoritme de pivot
Els algoritmes de pivot (o algoritmes de canvi de base) són algoritmes de l'optimisació matemàtica, i en especial de la Programació Llineal. Donat un sistema d'equacions llineals que les seues variables deuen adoptar valors no negatius (essencialment lo mateix que un sistema d'inecuaciones llineals), es busca la millor d'entre moltes solucions alternatives, és dir, una solució òptima del sistema. En cada pas de tal busca, l'algoritme transforma el sistema sense alterar el seu conjunt de solucions. Algoritmes de pivot importants són els diversos algoritmes simplex[1][2] i els algoritmes criss-cross.[3]
Els algoritmes de pivot són de gran importància per al tractament de inecuaciones llineals, a on juguen un paper anàlec al de l'eliminació de Gauss para equacions llineals. Es troben numeroses aplicacions[2] de sistemes de inecuaciones en àrees tan diverses com l'investigació d'operacions industrials, el transporte i distribució de bens, en carteres de valors, l'ingenieria estructural, l'estadística, i la teoria de jocs. Freqüentment s'aborden sistemes en decenes de mils de variables.[4]
Procediment general
[editar | editar còdic]El problema normalisat
[editar | editar còdic]Tot algoritme de pivot partix d'un sistema especialment arreglat d'equacions llineals, que les seues variables totes, llevat tal volta una, deuen prendre valors no negatius. De fet, qualsevol sistema de inecuaciones o equacions llineals, aixina com tot problema de Programació Llineal, pugues sempre reduir-se a la següent forma diccionari:[1][2]
a on els són número real (en la pràctica casi sempre números racionals). Este format especifica que es busca valors per a les incògnites , que satisfacen les ecuacionés i inecuacionés del sistema anterior de modo tal que la variable objectiu prenga el major valor possible.
- ( En convertir un problema a la forma anterior no disminuïx el número de desigualtats; estes permaneixen en la seua totalitat i només es convertixen en condicions de no-negatividad d'algunes variables. D'esta manera, una inecuación com per eixemple
- és substituïda per
- )
- ( En convertir un problema a la forma anterior no disminuïx el número de desigualtats; estes permaneixen en la seua totalitat i només es convertixen en condicions de no-negatividad d'algunes variables. D'esta manera, una inecuación com per eixemple
Definint els conjunts d'índexs
s'escriurà açò en lo que seguix de la forma més compacta
En cada iteración d'un algoritme de pivot es destaca un conjunt de variables independents, mentres que les restants són variables dependents i s'expressen com a funcions llineals de les primeres. En passar d'una iteración a la següent s'intercanvia una variable independent per una depenent; tals parells de variables es denominen pivots.
Condicions de optimalidad
[editar | editar còdic]En cas de que es complixquen les següents dos condicions de optimalidad,
- per a tot (sistema factible) i
- per a tot (sistema acotat),
podem obtindre una solució al problema anterior, assignant a les variables independents del sistema els valors . Per un costat, açò conseguix que les variables depenents adopten valors nonegativos, tal com es demanava. Per un atre costat, tota solució alternativa al problema deu satisfer la relació , ya que en ella les variables independents també deuen prendre valors nonegativos.
- ( Per eixemple, en el següent sistema,
- ( Per eixemple, en el següent sistema,
- les condicions de optimalidad són violades en dos llocs, ya que i . Per un costat, els valors obtinguts en anular les variables independents, , no constituïxen una solució admissible perque contenen un valor negatiu, . Per un atre costat, no podem descartar la possibilitat d'aumentar el valor que adopta la variable objectiu elegint conjunts de variables independents en . )
Transformació de les equacions
[editar | editar còdic]En el cas habitual de que les condicions de optimalidad no es complixquen, pot reformular-se el sistema d'equacions, elegint adequadament un nou subconjunt d'entre les incògnites, i expressant les incògnites elegides en funció de les incògnites restants. Siga un reordenamiento de les variables, és dir una funció dels índexs que complixca
A partir de la partició , en
que dividix les variables del sistema en variables independents en i les cridades variables bàsiques en , es construïx llavors el sistema:
Note's que els coeficients existixen solament per a parells de subíndexs en i en . En cada iteración, els coeficients del sistema aixina modificat tornen a examinar-se per a vore si satisfan les condicions de optimalidad
- per a tot (sistema factible) i
- per a tot (sistema acotat),
i d'esta manera generen una possible solució al problema. Un resultat estàndar de la Programació Llineal establix que tot problema que té solucions també posseïx un conjunt de variables bàsiques que conduïx a una d'elles.[1][2] Si els coeficients del sistema satisfan les condicions de optimalidad, es diu que les variables bàsiques formen una base optimal del problema.
Pivots admissibles
[editar | editar còdic]Un coeficient no nul del sistema d'equacions es diu element pivot, perque permet rebujar la variable independent en lloc de la variable bàsica per a aixina seguir buscant una solució al problema. No obstant, els algoritmes de pivot no elegixen un element pivot qualsevol, sino solament els cridats pivots admissibles , que deuen satisfer:
-
- O es complix simultàneament i (pivot de restricció),
- o es complix simultàneament i (pivot d'objectiu).
- ( En l'eixemple anterior,
- el coeficient no optimal permet seleccionar l'element pivot corresponent a un pivot admissible en intercanvi de o també l'element pivot corresponent al pivot admissible Alternativament, el coeficient no optimal permet també seleccionar l'element pivot corresponent al pivot admissible o l'element pivot en el pivot admissible . )
- ( En l'eixemple anterior,
La restricció a pivots admissibles impedix que en dos iteraciones successives s'elegixca el mateix pivot. Les regles segons les quals el pivot és elegit depenen de l'algoritme de pivot particular. No obstant, deu impondre's que l'algoritme termine en un número finito de passos, lo que no succeïx en una elecció de pivots inadequada. Fukuda & Terlaky varen demostrar[5] en 1999 que para tot problema en solució i per a tota base inicial existix una seqüència de lo més pivots admissibles que conduïx a una base optimal. Llamentablement, eixa demostració no és constructiva en el sentit de que indique quin pivot dega elegir-se en cada pas.
Com es pot observar de les definicions anteriors, una base optimal no té pivots admissibles, per lo que l'algoritme no pot ser continuat a partir d'una base optimal. Per un atre costat, és fàcil demostrar en arguments similars als exposts que una base no optimal sense pivots admissibles sempre pertany a un problema sense solució; siga açò, perque el sistema d'equacions i inecuaciones no té solució alguna (problema infactible), o perque existixen solucions en un valor objectiu arbitrariamente gran (problema no acotat).
Implementació sense errors de grosseig
[editar | editar còdic]Per a evitar errors de grosseig es treballa en lo que seguix en número racional, elegint un únic denominador comú per a tot el sistema d'equacions. Per a trobar un denominador aixina en cada pas de l'algoritme no fa falta analisar els coeficients del sistema; en cas d'un sistema inicial en coeficients sancers, en cada iteración es complirà que
- El numerador de l'element pivot és un denominador comú per al sistema d'equacions següent.
En evaluar els coeficients d'un nou sistema el denominador comú del sistema anterior quedarà obsolet, per lo que es procedix a dividir els coeficients del sistema nou pel denominador antic, en resultats que sempre seran sancers.[6]
Un apany matricial que conté els coeficients d'un sistema de pivot sol cridar-se taula de pivoteo o quadro de pivoteo. El següent esquema mostra cóm canvien els coeficients del sistema de pivoteo en passar d'una iteración a la que seguix:
|
|
En eixe esquema, el símbol designa al denominador comú del sistema d'equacions, el símbol designa al numerador de l'element pivot, designa qualsevol coeficient restant en la mateixa fila de l'element pivot, designa qualsevol coeficient restant en la mateixa columna de l'element pivot, i qualsevol coeficient alié a la fila i a la columna del pivot. Els coeficients de la variable a maximizar () i els coeficients de la columna de valors () es transformen d'acort a les mateixes regles.
Eixemple ilustrat
[editar | editar còdic]Representació gràfica
[editar | editar còdic]Les ilustracions en cada pas de l'eixemple següent mostren totes el mateix sistema d'equacions graficado en distints sistemes de coordenades. En estos gràfics,
- l'àrea vorejada de vert és el conjunt de solucions factibles, per al qual totes les variables prenen valors no negatius,
- els eixos de coordenades corresponen a equacions de variables independents, les demés rectes a equacions de variables bàsiques,
- la recta en roig recorre els punts a on la variable objectiu adopta el seu valor màxim,
- les interseccions de rectes corresponents a pivots admissibles duen punts rojos, el pivot seleccionat va vorejat de negre, i
- l'àrea anaranjada correspon al ortante no negatiu de la iteración següent.
Eixemple d'elecció de pivots
[editar | editar còdic]La següent estratègia d'elecció de pivot correspon a l'algoritme criss-cross en pivoteo en els índexs mínims (minimal index criss-cross-algorithm). En cada pas, el pivot admissible s'elegirà d'acort a la següent regla (el mínim d'un conjunt buit es considera igual a infinit):
- Determinar els índexs i .
- Si es té , elegir el pivot a on .
- Si es té , elegir el pivot a on .
Es pot demostrar[3] que este criteri simple (encara que no sempre eficient) conduïx sempre a una base optimal en un sistema que tinga solució.
En el següent eixemple es busca valors no negatius per a les variables que maximizar la variable adicional satisfent el següent conjunt d'equacions llineals:
En el sistema inicial de l'eixemple, els coeficients no optimales són , , i tots els pivots són admissibles. El criteri de selecció, no obstant, prescriu que rebugem en lloc de :
(per a animar en Firefox, pulsar ací i després en l'image, mantenint pressionat)
En això obtenim:
Ara els coeficients no optimales són en els pivots admissibles , , i el coeficient en els pivots admissibles , . En conseqüència, rebugem en lloc de :
(animat)
S'obté el sistema
L'únic coeficient no optimal en este sistema és en els pivots admissibles , ; rebugem en lloc de :
(animat)
El sistema final és
Com este sistema satisfà les condicions de optimalidad, hem obtingut la solució
Referències
[editar | editar còdic]- ↑ 1,0 1,1 1,2 Vašek Chvátal (1983): Linear Programming., Freeman and Company, ISBN 0-716-71587-2
- ↑ 2,0 2,1 2,2 2,3 Robert Vanderbei (1996/2007): Linear Programming; Foundations and Extensions, 3.ed. Springer, ISBN 978-0-387-74385-5, archive pdf, (edició alternativa: Linear Programming; Foundations and Extensions, Kluwer, 1996, ISBN 0-7923-9804-1)
- ↑ 3,0 3,1 Komei Fukuda & Tamás Terlaky (1997): Criss-cross methods: A fresh view on pivot algorithms, Mathematical Programming, 79, 369-395, [enllaç trencat]
- ↑ Robert Vanderbei: Linear Programming. Foundations and Extensions, Kluwer, ISBN 978-0-7923-9804-2}}, capítul 21.4: Simplex Method vs Interior-Point Methods.
- ↑ Komei Fukuda & Tamás Terlaky (1999): On the Existence of a Short Admissible Pivot Sequences for Feasibility and Linear Optimization Problems, Pure Mathematics and Applications, vol.10, 431-447, [enllaç trencat]
- ↑ Erwin Bareiss (1968): Sylvester's Identity and Multistep Integer-Preserving Gaussian Elimination, Mathematics of Computation, vol.22 (102), 565-578, archive pdf
Erro en la cita: La etiqueta <ref> definida en las <references> con nombre «1996_implements» no se utiliza en el texto anterior.
Erro en la cita: La etiqueta <ref> definida en las <references> con nombre «1996_networkflow» no se utiliza en el texto anterior.
- Este artícul conté una traducció derivada de «Algoritmo de pivote» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.