Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Tema 6 - Programació Lineal, Apuntes de Matemáticas

Asignatura: Mètodes Numèrics, Profesor: Josep Maria Mondelo, Carrera: Matemàtiques, Universidad: UAB

Tipo: Apuntes

Antes del 2010

Subido el 17/02/2009

shigeru-1
shigeru-1 🇪🇸

4.2

(48)

15 documentos

1 / 7

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Cap´ıtol 6
Programaci´o lineal
Es coneixen amb el nom de programaci´o lineal un conjunt de m`etodes per
resoldre problemes d’optimitzaci´o lineals amb restriccions lineals. on molt
freq¨uents a la ind´ustria.
Els introduirem mitjan¸cant dos exemples cl`assics.
Problema del transport. Suposem que:
Tenim Ifactories, que anomenem F1,...,FI, de manera que la facto-
ria i {1,...,I}produeix cada setmana aiunitats d’un determinat
producte.
Tenim Jciutats, que anomenem C1,...,CJ, de manera que la ciutat
j {1,...,J}requereix setmanalment bjunitats del producte.
El cost de transportar una unitat del producte de la factoria ia la
ciutat j´es ci, j .
Volem trobar la quantitat de producte que hem de portar setmanalment de
la factoria ial client j, que anomenarem xi,j, de manera que
esgotem la producci´o,
cobrim les necessitats de cada ciutat, i
minimitzem costos.
Podem formular aquest problema com a problema de programaci´o lineal
com segueix:
140 J.M. Mondelo. M`etodes Num`erics. Cap´ıtol 6
minimitzar f({xi,j}i=1÷I ,j=1÷J) :=
I
X
i=1
J
X
j=1
ci,jxi,j ,(minimitzem costos)
subjecte a
J
X
j=1
xi,j =ai, i = 1 ÷I, (esgotem la producci´o)
I
X
i=1
xi,j =bj, j = 1 ÷J, (cobrim la demanda)
xi,j 0, i = 1 ÷I, j = 1 ÷J. (positivitat)
Problema de la dieta. Hem de dissenyar una dieta que ha de satisfer
determinats requeriments nutricionals. Suposem que
tenim mnutrients,
tenim naliments,
cj´es el cost per unitat de l’aliment j,
ai,j ´es la quantitat del nutrient iper unitat de l’aliment j,
di´es la quantitat ınima di`aria del nutrient i.
El problema consisteix a trobar la quatitat di`aria de l’aliment j, que ano-
menem xj, que contindr`a la nostra dieta, de manera que es cobreixin els
m´ınims diaris i minimitzem costos. Ho podem formular com a problema de
programaci´o lineal aix´ı:
min
n
X
j=1
cjxj,
s.a.
n
X
j=1
ai,jxjdi, i = 1 ÷m,
xj0, j = 1 ÷n.
6.1 Tipus de formulacions
En aquesta secci´o introduim diverses formulacions de problemes de progra-
maci´o lineal, que seran rellevants en l’aplicaci´o del m`etode del ımplex, que
descriurem en la propera secci´o.
pf3
pf4
pf5

Vista previa parcial del texto

¡Descarga Tema 6 - Programació Lineal y más Apuntes en PDF de Matemáticas solo en Docsity!

Cap´ıtol 6Programaci´o lineal Es coneixen amb el nom de^ programaci´

o lineal^ un conjunt de m`etodes per resoldre problemes d’optimitzaci´o lineals amb restriccions lineals. S´

on molt freq¨uents a la ind´ustria.Els introduirem mitjan¸cant dos exemples cl`

assics. Problema del transport.^ Suposem que:^ •^ Tenim^ I^ factories, que anomenem

F,... , F, de manera que la facto-^1 I^ ria i ∈ { 1 ,... , I} produeix cada setmana^ aunitats d’un determinati^ producte.

-^ Tenim^ J^ ciutats, que anomenem^

C,... , C, de manera que la ciutat^1 J^ j ∈ { 1 ,... , J} requereix setmanalment^ bunitats del producte.j^

-^ El cost de transportar una unitat del producte de la factoria

i^ a la ciutat^ j^ ´es^ c, j.i Volem trobar la quantitat de producte que hem de portar setmanalment dela factoria^ i^ al client^ j, que anomenarem^ x, de manera quei,j^

-^ esgotem la producci´o, •^ cobrim les necessitats de cada ciutat, i •^ minimitzem costos.Podem formular aquest problema com a problema de programaci´

o lineal com segueix:

140 J.M. Mondelo. M`

etodes Num`erics. Cap´ıtol 6 minimitzar^ f^ ({x}) :=i,j^ i=1÷I,j=1÷J^

I^ J∑∑^ cx,^ (minimitzem costos)i,j^ i,j^ i=1^ j= J∑subjecte a^ x=^ a,^ i^ = 1^ ÷^ I,i,j^ i j= (esgotem la producci´ o) I∑^ x=^ b,^ j^ = 1^ ÷^ J,^ i,j^ j^ i=

(cobrim la demanda) x≥^0 ,^ i^ = 1^ ÷^ I,^ j^ = 1^ ÷^ J.^ i,j^

(positivitat) Problema de la dieta.^ Hem de dissenyar una dieta que ha de satisferdeterminats requeriments nutricionals. Suposem que^ •^ tenim^ m^ nutrients,^ •^ tenim^ n^ aliments,^ •^ c´es el cost per unitat de l’alimentj^

j,

-^ a´es la quantitat del nutrient^ i^ per unitat de l’alimenti,j^

j,

-^ d´es la quantitat m´ınima di`aria del nutrienti^

i. El problema consisteix a trobar la quatitat di`

aria de l’aliment^ j, que ano- menem^ x, que contindr`a la nostra dieta, de manera que es cobreixin elsj^ m´ınims diaris i minimitzem costos. Ho podem formular com a problema deprogramaci´o lineal aix´ı:^ n∑min^ cx,j^ j^ j=1^ n∑^ s.a.^ axi,j^ j^ j=

≥^ d,^ i^ = 1^ ÷^ m,i x≥^0 ,^ j^ = 1^ ÷^ n.j

6.1^ Tipus de formulacions En aquesta secci´o introduim diverses formulacions de problemes de progra-maci´o lineal, que seran rellevants en l’aplicaci´

o del m`etode del s´ımplex, que descriurem en la propera secci´o.

6.1 Tipus de formulacions^

6.1.1^ Forma mixta Direm que un problema de programaci´

o lineal est`a en^ forma mixta^ si s’escriu^ n∑nmin f ({x}) =^ cxj j^ jj=1^ j=1 n∑ s.a. ax≤ d,^ i^ = 1^ ÷^ p,i,j j i j=1 n∑ ax= d,^ i^ =^ p^ + 1^ ÷^ m,i,j j i j=1x≥ 0 ,^ j^ = 1^ ÷^ n.j (^) El pas d’un problema de programaci´o lineal general a forma mixta es fa com segueix:^ •^ Si volem maximitzar^ f^ , podem minimitzar

−f^ , donat que f (x) = maxf (x) ⇐⇒ −f (x) = min(−f^ (x)), 00 x∈R x∈R^ on^ R^ ´es el conjunt definit per les restriccions. • Si tenim una restricci´o amb^ ≥, multipliquem la inequaci´

o corresponent per^ −1 i passem a tenir una restricci´

o amb^ ≤.

-^ Si tenim una variable^ xlliure (´es a dir, no tenim la restricci´i^

o^ x≥^ 0),i^ afegim dues variables addicionals^ xi,

,^ x, juntament amb les restric- 1 i,^2 cions^ x≥^ 0,^ x≥^ 0. Llavors, tant ai,^1 i,^2

f^ com a la resta de restriccions, substituim totes les aparicions de^ x

per^ x−^ x.^ Obtenim aix´ı uni i,^1 i,^2 problema equivalent en el que^ xno apareix.i^

Quan l’haguem resolt, podem recuperar^ x=^ x−^ x.i^ i,^1 i,^2 Introduim nomenclatura relacionada amb aquesta formulaci´

o:

-^ f^ es diu^ funci´o objectiu. n^ •^ Una^ x^ ∈^ Rsatisfent les restriccions es diu

soluci´o factible^ o^ pro- grama^ (d’aqu´ı el nom^ programaci´o lineal

-^ El conjunt de totes les solucions factibles l’anomenarem

conjunt fac- tible^ o^ regi´o factible. n^ • Una^ x^ ∈^ Rfactible que minimitzi la funci´

o objectiu es diu^ soluci´o factible `optima.

142 J.M. Mondelo. M`

etodes Num`erics. Cap´ıtol 6

6.1.2^ Forma standard Direm que un problema de programaci´

o lineal est`a en^ forma standard^ si s’escriu^ min^ cx+^...^ +^ cx^11 n

n s.a. ax+... + ax=^ d, 1 , 11 1 ,nn^1 ..^ (6.1). ax+... + ax=^ d,m, 11 m,nn^ mx≥^0 ,^ ∀i^ = 1^ ÷^ n,i^ amb^ •^ m^ ≤^ n,^ •^ d≥^0 ∀i^ = 1^ ÷^ m,i^ ^ ^ a...^ a^1 ,^1 1 ,n^ ....^ •^ rang=^ m^.^.^ a...^ am,^1 m,n

Abreujadament, escriuremmin^

⊤cx s.a. Ax^ =^ d,x^ ≥^0 , essent^ c^ = (c,... , c) i^ d^ = (d,... , d^1 n^1

⊤^1 )≥^ 0.m Per passar un problema de forma mixta a forma standard, hem de fer: • Si tenim una restricci´o de desigualtat, n∑ ax≤^ d,i,j^ j^ i j=1 afegim una variable y≥ 0 i canviem la restricci´o peri n∑ ax+^ y=^ d.i,j j^ i^ i j=1 Les variables que s’afegeixen per aquest motiu s’anomenen^ variablesde separaci´o. • Si tenim una d< 0, canviem de signe la restricci´o corresponent.i (^) • Si rang A < m, eliminem les equacions dependents. 1 n (^) x ≥ 0 per a x ∈ Rs’ha d’entendre component a component:^ x≥^0 ∀i^ = 1^ ÷^ n.i^

6.3 M`etode del s´ımplex^

6.3^ Metode del s´ımplex 6.3.1^ Segona fase del metode del s´

ımplex

La segona fase del m`etode del s´ımplex ´

es un procediment sistem`atic que permet resoldre qualsevol problema de programaci´

o lineal en forma standard restringida. Parlem de “segona fase” perqu`

e la primera fase, que veurem m´es endavant, serveix per passar de forma standard a forma standard restringida,que ´es una cosa que hem deixat pendent a la secci´

o 6.1.3. Considerem, doncs, un problema de programaci´

o lineal en forma standard restringida. Per exemple, el de la secci´

o anterior, despr´es d’afegir variables de separaci´o^ x, x:^34 min^ f^ =^ −x^1

− 2 x 2  s.a. −x+ x+ x= 2 1 2 3.^ (6.3) x+ x+ x= 4 1 2 4  x≥ (^0) i Aquest problema est`a en forma standard restringida, amb base

B^ =^ {^3 ,^4 },

variables basiques^ {x, x}^ i variables secund^34

aries^ {x, x}. La soluci´o facti-^12 ble b`asica associada a aquesta formulaci´

o s’obt´e posant a zero les variables secund`aries,^ x=^1

x= 0,^ (6.4)^2 i a¨ıllant les variables b`asiques de les restriccions, que d´

ona precissament el terme independent,^ x= 2^1

,^ x= 4.^ (6.5)^2 Noteu que, de fet, les restriccions ens permeten escriure les variables b`

asiques en termes de les secund`aries,^ x= 2 +^3

} x− x 1 2 ,^ (6.6) x= 4 − x− x 4 1 2 de manera que, variant^ x, x≥^ 0, i imposant^12

x, x≥^ 0, descrivim tota la^34 regi´o factible.Observem que podem pujar la variable

x, mantenint^ xigual a zero, i la^12 funci´o objectiu decreix. Aix`o ´es degut a que la variable

xporta coeficient^1 negatiu a la funci´o objectiu. En particular, la soluci´

o factible b`asica corres- ponent a la formulaci´o (6.3), donada per les equacions (6.4) i (6.5), no ´

es optima.Quant podrem pujar^ x? Tant com ens permeti el fet que s’ha de satisfer^1 (6.6) i que^ x, x≥^ 0. Aixo vol dir (recordeu que mantenim^34

xa zero):^2 0 ≤^ x= 2 +^ x=⇒^ no hi ha l´^3

ımit, 0 ≤^ x= 4^ −^ x=⇒^ x≤^4.^4 1

146 J.M. Mondelo. M`

etodes Num`erics. Cap´ıtol 6 Si fem^ x= 4, tindrem^ x= 0 (i^ x^1

6 = 0).^ Podem pensar que^ xentra 3 1 a la base (era zero i s’ha fet diferent de zero), mentre que

xsurt de la^4 base (era diferent de zero i s’ha fet zero).

Volem esbrinar com reformular el problema en forma standard restringida amb la nova base (´

es a dir, amb variables b`asiques^ {x, x}). Considerem el sistema d’equacions^31 f^ =^ −x−^21

x (^2) 2 = −x+ x+ x, 1 2 3 ^ 4 = x+ x+ x 1 2 4 l’escrivim en una taula aix´ı,

xxxx^1 2 3 4 f + 0 −^1 −^2 0 0 x 2 −^1 1 1 03 x (^4 1 1 0 ) i emprem eliminaci´o Gaussiana per a posar zeros a la segona columna, llevatd’un 1 a la tercera fila.^ Aix`o vol dir:

deixem la tercera fila tal qual, i la sumem a la primera i segona files. D’aix`

o se’n diu^ pivotar^ per l’element de la fila 3, columna 2, que ´es el^ pivot

, i per aix`o l’hem requadrat a la taula anterior. Obtenim:

xxxx^1 2 3 4 f + 4 0 −^1 0 1 (6.7) x (^6 0 2 1 13) x (^4 1 1 0 ) Aquesta taula correspon al problemamin^ f^ + 4 =^

−x+ x 2 4  s.a. 2 x+ x+ x= 6 2 3 4 , x+ x+ x= 4 1 2 4  x≥ (^0) i que ´es equivalent al problema (6.3), ´

es en forma standard restringida, i cor- respon a la base^ B^ =^ {x, x}. Recordeu que aix`^13

o ´es degut a qu`e

-^ les columnes corresponents a^ xi^1

xde la taula (6.7) s´on una matriu^3 de permutaci´o, i

-^ les variables^ x, xtenen coeficient 0 a la funci´^13

o objectiu.

6.3 M`etode del s´ımplex^

La soluci´o factible b`asica corresponent a aquesta formulaci´

o ´es x= 6,^ x= 4,^ x=^ x= 0,^3 1 2

i el valor de la funci´o objectiu en aquesta soluci´

o ´es^ f^ =^ −4 (observeu que tot es llegeix directament de la taula (6.7)). Aquesta soluci´

o factible basica encara no ´esoptima, donat que, com que

xporta coeficient^ −1 a la funci´o^2 objectiu, fent pujar la^ xla funci´o objectiu baixa.^2

Per a saber fins quant podem pujar^ x, fem com abans.^2

Observem que podem extreure tota la informaci´o directament de la taula (6.7):^ x≥^0 ,^ 1a restr.^3

=⇒^ x≤^6 /2 = 3,^2 x≥ 0 , 2a restr. =⇒^ x≤^4 /1 = 4. 1 2 Aixo vol dir que^ xpot arribar fins a 3, i per tant entra a la base, tot fent^2 sortir^ x, que ´es la variable basica que es fa zero. Per reflectir aquest canvi^3 de base, hem de pivotar per l’element de la fila 2, columna 3, i per aix`

o l’hem requadrat a la taula (6.7). En general, per trobar el pivot, hem de^ •^ triar una columna amb coeficient negatiu a la funci´

o objectiu, i

-^ d’entre les files que tinguin element positiu a la columna anterior, triarla que doni m´ınim quocient entre el terme independent i l’element dela columna. Exercici:^ Qu`e passaria si pivot´essim per la fila

3 , columna^3? Pivotant per la fila 2, columna 3 (´es a dir, fent Gauss per fer un 1 a lafila 2 columna 2 i zeros a la resta de la columna), obtenim^ x^1

xxx^2 3 413 f + 7 0 0 22 (6.9)^11 x (^3 0 1 2 2211) x 1 1 0 − 1 22 que correspon al problemamin^ f^ + 7 =^

 13 x+ x 3 4  2 2  11  s.a. x+ x+ x= 3 2 3 4 2 2 , 11  x− x+ x= 1 1 3 4  2 2  x≥ (^0) i

148 J.M. Mondelo. M`

etodes Numerics. Cap´ıtol 6 del qual la soluci´o factible basica associada ´

es x= 3, x= 1, x=^ x= 0.^ (6.10) 2 1 3 4 Aquesta soluci´o factible basica ´esoptima, donat que, si movem

xo^ x, la^3 funci´o objectiu puja. Aquest fet es reconeix sobre la taula (6.9) en qu`

e tots els coeficients de la funci´o objectiu s´

on^ ≥^ 0. Per tant (6.10) ´es la soluci´o del problema (6.3).Si examinem que hem fet sobre la figura 6.1, observem que la primerasoluci´o factible basica que hem obtingut (equacions (6.4) i (6.5)) corresponal vertex^ S, la segona (equaci´o (6.8)) al v`

ertex^ R^ i la soluci´o optima (equaci´o (6.10)) al vertex^ Q. La regi´o factible ´

es, de fet, la projecci´o sobre les coor- denades^ x, xd’un s´ımplex bidimensional dins^12

(^4) R(d’aqu´ı el nom de^ metode del s´ımplex). Cada vertex correspon a una soluci´

o factible basica. Cada pas del metode consisteix a despla¸car-se d’un v`

ertex a un de consecutiu a trav´es de la frontera, tot fent disminuir la funci´

o objectiu.

6.3.2^ Formulaci´o general d’un pas Suposem que tenim un problema de programaci´

o lineal,^ (k)(k)(k)min f + a= ax+... +^ ax 1 n 0 , 0 0 , 10 ,n(k)(k)(k) s.a. a= ax+... +^ ax 1 n 1 , 0 1 , 11 ,n ..^ ,.(k)(k)(k) a= ax+... +^ ax 1 m,nn m, 0 m, 1  x≥ 0 , i = 1 ÷ ni que est`a en forma standard restringida:^ •^ m^ ≥^ n, (k)^ •^ a≥^0 ∀i^ = 1^ ÷^ m,^ i,^0 •^ existeix una matriu de permutaci´

o^ m^ ×^ m^ dins ^ (k)(k) a...^ a 1 , 1 1 ,n ....,^.. (k)(k) a...^ a^ m,n m, (^1) les columnes de la qual determinen una base, i

6.3 M`etode del s´ımplex^

El problema auxiliar associat ´es, min^ y+^ y^1 2 s.a.^5 x−^4 x+ 13x−^21 2

x+ x+ y= 204 5 1. x− x+ 5 x− x+ x+ y= 8  1 2 3 4 5 2  x, y≥ 0 ∀iii on les variables artificials s´on^ y, y. Substituint-les a^12

g, obtenim g = 28 − 6 x+ 5x− 18 x+ 3x− 2 x, 1 2 3 4 5 de manera que la primera taula de la fase 1 del m`

etode del s´ımplex ´es xxxxxyy (^1 2 3 4 5 1 2) g − 28 − 6 5 − 18 3 −^2 0 0 f − 0 1 6 − (^7 1 5 0 0) y 20 5 − 4 13 − (^2 1 1 01) y 8 1 − 1 5 − (^1 1 0 ) Transformarem simult`aniament la funci´

o objectiu del problema original, i per a aixo l’hem posada a la segona fila de la taula. Hem de tenir en compte,pero, que per triar pivots durant la primera fase, la funci´

o objectiu que hem de considerar ´es la^ g. Pivotem per la fila 3, columna 2 =

⇒^ entra^ x, surt^ y.^11 xxxxxyy (^1 2 3 4 5 1 2112346) g − 4 0 −−^05 55 55 34487241 f − 4 0 −−^05 555 5 413211 x 4 1 −−^01 55 555 112341 y 4 0 −−−^12 55 55 Pivotem per la fila 4, columna 6 =

⇒^ entra^ x, surt^ y.^ D’acord amb l’al-^52 gorisme 6.3.1, ho haur´ıem de fer per la columna 4, per`

o ara ho farem per la columna 6 per il·lustrar que tamb´

e es pot.^ De fet ens conv´e fer-ho aix´

ı, perque si no haur´ıem de pivotar per la fila 3, i aix

o ens faria treure de la base una variable no artificial. A la fase 1 del m`

etode del s´ımplex, la prioritat ´es treure de la base les variables artificials. Exercici:^ Comproveu que, si pivotem per la fila

3 , columna^4 , hem de fer un pas m´es per completar la fase 1 del m`

etode del s´ımplex.

152 J.M. Mondelo. M`

etodes Num`erics. Cap´ıtol 6 Pivotem, doncs per la fila 4, columna 6 =

⇒^ entra^ x, surt^ y.^52 xxxxxyy (^1 2 3 4 5 1 2) g − (^0 0 0 0 0 0 1 1) f − 28 0 8 − 24 5 0 1 −^63111 x 3 1 − 2 −^0 − (^1 4 4 4 41315) x 5 0 − 3 −^1 − 5 4 4 44 Som a l’`optim del problema auxiliar, donat que els coeficients de

g^ s´on tots ≥^ 0, i per tant hem acabat la fase 1.

Com que^ g= 0, hem obtingutopt^ una soluci´o factible b`asica del problema original.

La primera taula de la fase 2 s’obt`e de l’anterior eliminant la fila corresponent a

g^ i les columnes corresponents a les variables artificials (que, com que no s´

on a la base, valen zero).^ x^1

xxxx^2 3 4 5 f − 28 0 8 −^24 5 031 x 3 1 −^2 −^01 4 4 13 x 5 0 −^3 −^15 4 4 Pivotem per la fila 2, columna 4 =⇒^ entra^ x, surt^ x.^31 xxxxx (^1 2 3 4 5) f + 8 12 −^1 0 2 03131 x−^1 −^03 22 8 8 1373 x−^0 −^15 2 28 Pivotem per la fila 3, columna 3 =⇒

entra^ x, surt^ x.^25 xxxxx (^1 2 3 4 56072118) f + (^0 0 77 7712123) x−^0 1 − (^3 7 7 7741238) x−^1 0 − 2 7 7 77 Com que tots els coeficients de la funci´

o objectiu s´on positius, s´om a la soluci´

o factible basicaoptima, que ´es^124 x= ,^ x=^3 2 7

,^ x=^ x=^ x= 0,^1 4 i el valor de la funci´o objectiu ´es^ fopt

=^ −^60 /7.^