Simplex na pamamaraan. Ang pangunahing ideya, mga yugto ng paghahanap ng mga solusyon, algorithm ng pamamaraan. Simplex na paraan para sa paglutas ng LLP. Pangkalahatang ideya ng simplex na pamamaraan

Isaalang-alang natin unibersal na pamamaraan mga solusyon sa kanonikal na problema linear programming

Sa n mga variable at m equality constraints, na kilala bilang simplex method.

Ang hanay ng mga plano para sa isang canonical na problema ay isang convex polyhedral set na may hangganan na bilang ng mga sulok na puntos. At kung ang problemang ito ay may pinakamainam na solusyon, kung gayon ito ay nakakamit ng hindi bababa sa isang sulok na punto.

Kaugnay ng anumang punto ng sulok ay ang pangunahing plano ng problema, kung saan ang mga variable ay katumbas ng zero, at ang natitirang mga variable ay tumutugma sa mga linearly independent na column ng condition matrix. Ang mga linearly independent na column na ito ay bumubuo ng non-singular basis matrix.

Ang pag-ulit sa lahat ng mga punto ng sulok ay mahal sa computation at samakatuwid ay hindi epektibo. Noong 1947, iminungkahi ni J. Dantzig ang isang maayos na pamamaraan para sa pagbilang ng mga punto ng sulok, kung saan sapat na upang suriin lamang ang isang maliit na bahagi ng mga ito upang mahanap ang pinakamainam na solusyon. Ang pamamaraang ito ay tinatawag na simplex na pamamaraan.

Iminungkahi ni J. Danzig na palitan lamang ang isang vector sa batayang matrix kapag lumilipat mula sa isang matinding punto patungo sa isa pa. Nangangahulugan ito na sa panahon ng naturang paglipat dapat nating ibukod ang isa sa mga pangunahing variable - gawin itong hindi basic ( katumbas ng zero), at sa lugar nito ipakilala ang isang bagong variable mula sa mga di-basic (zero) - gawin itong basic (positibo).

Lumalabas na ang geometrically tulad ng isang kapalit ay humahantong sa isang paglipat mula sa isang sulok na punto patungo sa isang katabi (kapitbahay) na nauugnay sa nakaraang punto karaniwang gilid.

Mula sa lahat ng mga kalapit na punto, ang isa kung saan ang layunin ng pagpapaandar ay higit na tumataas ang pipiliin. Dahil may hangganan ang bilang ng mga punto ng sulok, sa pamamagitan ng isang may hangganang bilang ng mga transition ang vertex na may pinakamataas na halaga layunin function, o ang unboundedness ng layunin function ay itatatag sa isang walang limitasyong hanay ng mga plano.

Ang pangkalahatang pamamaraan ng simplex na pamamaraan ay binubuo ng mga sumusunod na pangunahing hakbang.

· hakbang 0. Pagpapasiya ng paunang batayan at ang kaukulang paunang punto ng sulok (baseline).

· hakbang 1. Sinusuri ang kasalukuyang baseline para sa pinakamainam . Kung ang pinakamainam na pamantayan ay nasiyahan, yun ang plano ay pinakamainam at ang solusyon ay kumpleto na. Kung hindi pumunta sa hakbang 2.

· hakbang 2. Paghahanap ng variable na ipinakilala sa mga pangunahing. (Mula sa kondisyon ng pagtaas ng layunin ng pag-andar).

· hakbang 3. Paghahanap ng isang variable na hindi kasama sa mga pangunahing variable (Mula sa kondisyon ng pagpapanatili ng mga hadlang ng problema).

· hakbang 4 . Paghahanap ng mga coordinate ng bagong baseline (katabing punto ng sulok). Pumunta sa hakbang 1.

Ang mga paulit-ulit na hakbang 1-4 ay bumubuo ng isang pag-ulit ng simplex na paraan.

Mula sa diagram na ito ay sumusunod na, una, upang simulan ang simplex na paraan, kailangan mong magkaroon ng ilang uri ng punto ng sulok - isang paunang pangunahing plano, at pangalawa, kailangan mong masuri ang kasalukuyang punto ng sulok para sa pinakamainam nang hindi kinakalkula ang lahat ng katabing mga vertex. Ang mga problemang ito ay madaling malutas kung ang canonical na problema sa LP ay may ilang espesyal na anyo.

Kahulugan. Sasabihin natin na ang problema sa canonical LP ay may “preferred form” kung

1. kanang bahagi ng mga equation, .

2. ang condition matrix ay naglalaman ng unit submatrix ng laki

Sa madaling salita, sa anumang equation mayroong isang variable na may isang koepisyent na katumbas ng isa, na wala sa iba pang mga equation. Ang unang kundisyon ay hindi mabigat, dahil sa kaso ng negatibong kanang bahagi ng ilang equation, sapat na upang i-multiply ito sa (-1). Sa isang problema sa uri ng kagustuhan, ang paghahanap ng paunang baseline ay napakasimple.

Halimbawa 2.1.

Matrix ng Kondisyon A at ang vector ng kanang bahagi ng mga hadlang b mukhang

at target na vector c = (1, -3, 0, 4, 2).

Ang isang batayan na matrix ay agad na halata: na may mga vector ng yunit ng mga kondisyon.

Samakatuwid, ang pagpili bilang pangunahing mga variable x 1 , x 3 ,x 5 , at paglalagay sa sistema ng mga equation x 2 = x 4 = 0 (hindi pangunahing mga variable) , mahanap namin agad x 1 = 10,x 3 = 20,x 5 = 8, kaya ang paunang baseline x 0 = (10, 0, 20, 0, 8). Nakikita namin na ang mga halaga ng mga pangunahing variable ay katumbas ng kanang bahagi ng mga hadlang. Mula dito ay malinaw na ang kanang bahagi ay dapat na positibo b i .

Sa hinaharap, pagsasamahin natin ang mga pangunahing variable sa isang vector x B.

Kaya, sa kanonikal na problema ng ginustong anyo, ang submatrix ng pagkakakilanlan ay kinuha bilang paunang batayan na matrix A B = E, at ang katumbas na mga variable na batayan ay katumbas ng mga kanang bahagi ng mga hadlang:

x B = b.

Para sa isang pangunahing plano ng ganitong uri, maaaring bumuo ng isang pamantayan ng pinakamainam na sapat na simple upang subukan. Ipakilala natin ang mga dami

? j = < с B , A j > - c j , j = 1,...,n,(2.1)

saan Sa B- vector ng mga coefficient ng layunin ng function para sa mga pangunahing variable x B , A j -j- ika column ng condition matrix, c j -j- ang koepisyent ng layunin na pag-andar. Mga Pagkakaiba ? j ay tinatawag na simplex differences o simplex estimates.

Pamantayan sa pagiging mahusay para sa pangunahing plano. Kung para sa isang pangunahing plano na may isang yunit batayan ng matris lahat ng simplex na pagtatantya ay hindi negatibo, kung gayon ang planong ito ay pinakamainam.

Ilapat natin ang criterion na ito upang suriin ang pinakamainam ng pangunahing plano x 0 = (10, 0, 20, 0, 8) mula sa halimbawa 2.1.

Dahil sa bagay na ito ang vector ng mga pangunahing variable x B =(x 1 , x 3 ,x 5 ), Iyon Sa B = (c 1 , c 3 ,c 5 ) = (1, 0, 2).


Kaya naman,

? 1 = < с B , A 1 > - c 1 = 1 1 + 0 0 + 2 0 - 1= 0,

2 = < сБ, A2 >- c2 = 1 3 + 0 1 + 2 2 - (-3) = 10,

? 3 = < с B , A 3 > - c 3 = 1 0 + 0 1 + 2 0 - 0= 0,

? 4 = < с B , A 4 > - c 4 = 1 (-1) + 0 5 + 2 1 - 4= -3,

? 5 = < с B , A 5 > - c 5 = 1 0 + 0 0 + 2 1 - 2= 0.

Mula noong pagtatasa ? 4 < 0, то базисный план x 0 hindi optimal. Tandaan na ang mga simplex na pagtatantya na tumutugma sa mga pangunahing variable ay palaging katumbas ng zero, kaya sapat na suriin lamang ang mga hindi pangunahing pagtatantya.

Ang simplex method ay binubuo ng paghahanap at pagsubok ng vertex (anggulo) na solusyon sa problema sa LP. Sa bawat yugto, pinipili ng pamamaraan ang isang vertex at ang mga kaukulang variable nito, na nagsisiguro ng paggalaw sa pinakamababa (maximum) na may pinakamataas na bilis. Pinapalitan ng napiling variable ang isa, pinaka-mahigpit na isa. Ang simplex na paraan ay nagbibigay-daan din sa iyo upang matukoy kung ang isang solusyon ay umiiral. Ang algorithm na nagpapatupad ng simplex na pamamaraan ay maaaring isulat bilang:

Hakbang 1. Ang isang tiyak na vertex sa ODR ay tinutukoy, na tumutugma sa mga pangunahing tinatanggap na solusyon (mga variable) na natagpuan sa pamamagitan ng pagkuha mula sa matrix T- linear mga independiyenteng hanay at itakda ang lahat ng iba pang mga variable na naaayon sa iba pang mga column ng matrix sa zero.

Hakbang 2. Pinili mula sa lahat ng posibleng natitira p - t mga gilid na tumutugma sa mga di-basic na variable, isang gilid (variable) na, kapag gumagalaw kasama nito, ay humahantong sa pinakamabilis na pagbaba sa layunin ng function.

Hakbang 3. Para bang ang isang paggalaw ay isinasagawa mula sa unang taluktok sa kahabaan ng napiling gilid patungo sa isa pang vertex, na nagbibigay ng isang bagong solusyon na may mas mababang halaga ng CF. Ang isang bagong vertex ay nabuo sa pamamagitan ng pagpapalit ng batayang variable (gilid) ng isang bagong batayan na variable (gilid).

Ang mga haligi at elemento ng mga vector ay karaniwang inayos at nakasulat sa anyo ng isang simplex na talahanayan, ang pagbuo nito ay ipapakita sa ibaba.

Ang simplex na paraan ay malulutas ang problema sa LP sa karaniwang anyo.

I-minimize (maximize) ang function sa ilalim ng mga kundisyon x > 0; Ax = b.

Ang Matrix A ay totoo at may sukat T x "at ranggo T.

Ang formulated LP problem ay maaari ding isulat sa form

Batay sa pag-record ng problema sa LP sa form (8Л), masasabi natin na ang extended matrix

mga sukat (t + 1) (n + 2) tumutugma sa mga solusyon[x/] t.

Katawanin natin ang matrix A bilang isang hanay ng mga column

Dahil ang matrix A ay may ranggo T, pagkatapos ay magkakaroon T mga linearly independent na column ng matrix A, halimbawa (a U1 ,...,a U/u Isaalang-alang ang isang vector x° > 0, para lahat ng ito p - t ang mga elemento ay 0 at Ax° = b. Hayaan itong mga elemento na may mga numero..., ako n_m . Ipagpalagay din natin na ang lokasyon aw ng mga linearly independent na column ng matrix A ay tumutugma sa lokasyon ng mga non-zero na elemento sa mga vectors 0. Sa geometriko, ayon sa Pahayag 3 ng § 7.6, nangangahulugan ito na ang x° ay ang vertex (anggulo) ng ODR at, bilang karagdagan, natutugunan ang mga ibinigay na kundisyon. Ang solusyon na ito ay tinatawag na tinatanggap na pangunahing solusyon. Ang mga anggulo ng admissible set ay tinatanggap na mga pangunahing solusyon.

Alalahanin na ang hanay ng mga pangunahing solusyon ay naglalaman ng lahat ng impormasyong kailangan para sa pinakamainam na solusyon ng problema sa LP. Para sa dalawang-dimensional na kaso na isinasaalang-alang sa § 7.6, ang mga pangunahing solusyon ay lahat ng 6 na puntos, at ang mga tinatanggap na pangunahing solusyon ay ang mga puntos L, V, Si 0.

Kaya, ang anumang vector x na katulad ng x° ay maaaring isulat bilang

saan x sa- isang vector na ang mga elemento ay tumutugma sa mga linearly independent column ng matrix A; xF - vector na may zero na elemento.

Ipaalam sa amin katulad na tukuyin ang mga vectors

Mga variable na elemento ng isang vector x sa, ay tinatawag pangunahing mga variable at ang mga variable na elemento ng vector x F ay tinatawag libre (di-basic) mga variable.

kasi x° F=0, kung gayon ang halaga ng layunin ng function para sa paunang vector x° ay magiging katumbas ng

kung saan ang /° ay ang halaga ng / sa puntong x°.

Solusyon (8.1) ng anyong [x°/°]t para sa x > 0 ay tinatawag malinaw (hayagang) solusyon. Kaya, kung magtatakda kami ng mga di-basic na variable na katumbas ng zero, makakakuha kami ng malinaw na solusyon.

Para sa kaginhawahan, muli nating ayusin T linearly independent columns ng matrix A in kaliwang bahagi at isulat ang matrix sa form

Dito tumutugma ang matrix B T linearly independent columns may sukat tx t at ranggo T, at ang matrix F

ay tx (p - t) matris. Dahil ang matrix B ay binubuo ng mga linearly independent column, mayroon itong inverse B -1 at detB φ 0. Tandaan na upang mabuo ang matrix B maaari kang pumili ng anuman T linearly independent columns ng matrix A.

Ibigay natin ang problema (8.1) na isinasaalang-alang ang ipinakilalang notasyon

Ang representasyong ito ay tumutugma sa pinalawak na matrix

kung saan sumusunod

Kung ang vector x V ay magiging isang solusyon sa sistema Bx d = b, pagkatapos ito ang magiging pangunahing solusyon. Kung mananatili ang hindi pagkakapantay-pantay V= B -1 b > O, pagkatapos x sa magiging isang katanggap-tanggap na solusyon.

kaya, kasalukuyang solusyon natutugunan ang sumusunod na equation:

Isaalang-alang natin ang matrix (8.4). Ang mga pangunahing variable ay ipapakita sa tahasan, kung papalitan natin ang matrix B ng identity matrix I. I-multiply ang unang hilera ng matrix (8.4) sa kaliwa ng B~ 1, makukuha natin

kung saan ang B_1 b > O, ibig sabihin. T itaas na mga elemento sa kanang column ay hindi negatibo at kumakatawan sa kasalukuyang halaga ng mga variable.

Sa kaliwang bahagi nangungunang linya Ang resulta ay isang unit matrix: B -1 B = I. Ang pagtatanghal na ito napaka maginhawa, dahil kapag nagpaparami ng isang vector x sa ang bawat variable ay nasa isang hiwalay na linya.

Kaya, ang pangunahing solusyon, na isasaalang-alang natin na tinatanggap at naaayon sa batayan B, ay x m = [x sa 0], kung saan x sa == B_1 b. Ang pangunahing solusyon ay nagreresulta mula sa pagpapalagay na x F = 0. Gayunpaman, kung xF* 0, kung gayon ang x^ ay maaaring kalkulahin bilang x 5 = = B~"b - B^"Fx/r. Ang pagpapalit ng ekspresyong ito sa target na function(cost function), nakukuha namin

Dahil kinakailangan upang matukoy ang pag-asa ng gastos sa mga di-pangunahing mga variable, ang isa ay kasama sa mga pangunahing, ang ilalim na linya sa ilalim ng matrix I ay dapat na zero. Upang gawin ito, sa (8.7) pinarami namin ang unang hilera (ng matrix) sa pamamagitan ng mula sa at idagdag ito sa pangalawa

kung saan ay ang halaga ng layunin function para sa unang siglo

torus x 0 mula sa (8.3).

Matrix (8.8) ang tawag simplex na talahanayan. Dinadala siya sa species na ito ay paunang yugto simplex algorithm. Sa panahon ng pagpapatupad ng algorithm, ang isang paglipat ay ginawa mula sa isang talahanayan patungo sa isa pa hanggang sa ang kanang ibabang elemento ng talahanayan ay naging maximum o minimum.

Ang paggamit ng simplex table ay madaling makakita ng wastong solusyon. Mga variable x Ang F ay tumutugma sa zero submatrix, mga variable x sa- unit matrix:

Ipagpalagay natin na ang problema sa LP ay nabawasan sa karaniwang anyo, ang talahanayan ng simplex ay kinakalkula, at ang paunang pangunahing solusyon na naaayon sa tuktok ng solusyon na polyhedron ay napili.

Pagkatapos - solusyon sa problema (8.1). Kaya

tulad ng b > Oh, ito ay isang pangunahing tinatanggap na solusyon.

Ipakita natin ang matrix (8.9) sa isang mas maginhawang anyo, na pinapanatili ang pangunahing notasyon:

Isaalang-alang natin nang hiwalay ang mga problema ng maximization at minimization.

Paghahanap ng pinakamainam na plano. Ang pamamaraang ito ay unibersal; ito ay nagbibigay-daan sa paglutas ng mga problema sa linear programming ng anumang dimensyon sa isang pangkalahatang pagbabalangkas. Gayunpaman, ang pamamaraang ito ay nangangailangan ng pagbabawas ng orihinal na problema sa canonical form.

Ang pangunahing ideya ng paraan ng simplex ay ang paglipat mula sa isang vertex ng ODR patungo sa isa pa upang sa bawat paglipat ay bumababa ang halaga ng CF. Ito ay kung paano ka makakakuha mula sa anumang vertex hanggang sa pinakamainam at makuha ang pinakamainam na plano.

Halimbawa: hayaan ang reference plan X =(x1,x2,…,xm,0,0,…,0) at ang nauugnay na sistema ng mga linearly independent vectors: A1,A2,…,Am ay kilala, pagkatapos ay para sa reference plan na ito maaari mong kalkulahin ang halaga CF Z=(c1x1+c2x2+…+cmxm) at isulat ang mga kundisyon ng limitasyon sa ang sumusunod na anyo x1A1+x2A2+…+xmAm=b

Dahil ang mga vector A1, A2,…, Am ay linearly independent, anumang vector Aj ay maaaring palawakin sa mga vector na ito: Aj=x1jA1+x2jA2+…+xmjAm (*) Ipakilala natin ang mga value na Zj Zj=x1jc1+x2jc2+…+ xmjcm, kung saan ang xij ay ang coefficient na tumutugma sa Ai sa expansion vector Aj sa pamamagitan ng mga batayang vector

Theorem 1: Pagpapabuti ng reference plan

Kung para sa ilang index j ang kundisyon Zj-Cj>0 ay nasiyahan, kung gayon ang halaga ng CF ay maaaring bawasan at:

· kung ang CF ay limitado mula sa ibaba, posible na bumuo ng isang reference plan na may mas maliit na halaga ng CF, ang parehong nakaraang

· kung ang TF ay hindi limitado mula sa ibaba, posible na bumuo ng isang plano na tumutugma sa isang arbitraryong maliit na halaga ng TF

Theorem 2: pamantayan ng pinakamainam para sa reference plan

Kung para sa ilang index j sa reference plan ang hindi pagkakapantay-pantay na Zj-Cj0. Hayaang makamit ang minimum na ito para sa vector Ak, kung gayon ang vector na ito ang dapat makuha mula sa batayan. Ang linya na naaayon sa vector na ito ay tinatawag na isang gabay at ipinapahiwatig na "à".

4. Pagkatapos tukuyin ang column at row guides, punan ang bagong simplex table. Sa naturang talahanayan, lilitaw si Ai bilang kapalit ng linya ng gabay. Pagpupuno bagong mesa nagsisimula sa isang gabay na linya. Bilang bahagi ng reference plan, ang halaga Ө0 X'l=Ө0=Xk/Xkl ay nakasulat doon, ang natitirang mga elemento ng linyang ito ay tinutukoy ng formula X'lj X'lj=Xkj/Xkl kung saan ang Xkl ay ang elemento na matatagpuan sa intersection ng mga row at column na mga gabay, partikular dito ang lahat ng dating elemento ng guide line ay nahahati, at isang unit ang awtomatikong lilitaw sa lugar ng dating elemento ng Xkl. Pangkalahatang tuntunin upang muling kalkulahin ang linya ng gabay, maaari mong isulat ito tulad nito: Ak (bagong elemento ng linya ng gabay) = (lumang elemento ng linya ng gabay)/(elemento na nakatayo sa intersection ng column at row ng gabay)

5. Ang lahat ng mga elemento ng natitirang mga hilera ng talahanayan ay muling kinakalkula, kasama ang karagdagang ilalim na linya. Ang muling pagkalkula ay isinasagawa ayon sa mga formula

· para sa mga bahagi ng reference plan X’i=Xi-Ө0Xil=Xi-(Xk/Xkl)*Xil

· para sa mga bahaging pinalawak sa batayan X’ij=Xij-(Xkj/Xkl)*Xil

· Para sa karagdagang linya Z’j-Cj=(Zj-Cj)-(Xkj/Xkl)*(Zl-Cl)

Ang lahat ng mga formula na ito ay binuo ayon sa isang panuntunan:

(bagong email)=(lumang email)-(bagong row direction email)*(direction email para sa column sa kaukulang row)

Matapos punan ang bagong talahanayan ng simplex, nangyayari ang paglipat sa ikalawang yugto ng algorithm.

Mga pamamaraan ng natural at artipisyal na batayan. Mga pangunahing konsepto, algorithm ng mga pamamaraan.

Para sa karamihan ng mga problema sa linear programming, ang mga paghihirap ay lumitaw sa paglutas ng mga ito na nauugnay sa pagtukoy ng paunang reference plan at ang paunang simplex na talahanayan kung saan nagsisimula ang lahat ng mga pag-ulit. Ito ay dahil sa katotohanan na sa mga tunay na problema sa mga vector Ai ay walang mga vector na naglalaman lamang ng isang di-zero na bahagi, i.e. mga vector ng form (0,0,0,…,0,1,0,…,0) o hindi sapat ang kanilang bilang upang maging batayan. Ibig sabihin, hindi posibleng bumuo ng natural na batayan.

Ang paraan ng artipisyal na batayan ay batay sa artipisyal na pagpapakilala V modelo ng matematika mga problema ng naturang mga vector.

Hayaan itong ibigay ZLP canonical mga form

F: C1X1=C2X2+…+CnXnàmin

a11x1+a21x2+…+an1xn=b1

a12x1+a22x2+…+an2xn=b2

…………………………

a1mx1+a2mx2+…+anmxn=bm

Pagkatapos ito ay na-convert sa form

F: C1X1+C2X2+…+CnXn+MXn=1+MXn+2+…+MXn+màmin

a11x1+a21x2+…+an1xn+xn+1=b1

a12x1+a22x2+…+an2xn+xn+2=b2

……………………………….

a1mx1+a2mx2+…+anmxn+xn+m=bm

Kung saan ang M ay walang katapusan malalaking numero. Sa resultang problema, ang unang batayan ay agad na makikita; ang mga vector na may artipisyal na ipinakilala na mga variable na xn+1, xn+2,…, xn+m ay dapat kunin bilang ito. Dahil ang mga vector na ito ay magkakaroon ng anyo: (1,0,0,…,0),(0,1,0,…,0),(0,0,…,1). Ang nabagong problema ay pagkatapos ay malulutas gamit ang simplex method algorithm. Ang paunang reference plan ng binagong problema ay may anyo (0,0,…,0,xn+1,xn+2,…,xn+m)=(0,0,…,0,b1,b2,…, bm). Ang orihinal na talahanayan ng simplex ay ganito ang hitsura:

Batayan koepisyent CF Plano C1 C2 Cn M M M
A1 A2 An Isang +1 Isang+2 Isang+m
Isang +1 M b1 a11 a21 an1 1 0 0
Isang+2 M b2 a12 a22 an2 0 1 0
Isang+m M bm a1m a2m anm 0 0 1
Z0

Tinutukoy namin ang mga elemento ng karagdagang linya gamit ang mga formula Z0=Mb1+Mb2+…+Mbm=∑mi=1Mbi=M∑ni=1bi

Upang matukoy ang mga pagkakaiba Zj=a11M+Ma12+…+Ma1m=M∑mj=1aij V i=1,n

Zj-Cj=M∑mj=1aij-Cj

Matapos matanggap ang orihinal na talahanayan ng simplex, ito ay binago, sinusubukang makuha mula sa mga batayang vector na naaayon sa ipinakilala na mga karagdagang variable.

Dahil si M ay napaka malaking bilang, pagkatapos ay kabilang sa mga pagkakaiba Zj-Cj magkakaroon ng maraming positibong numero. Ibig sabihin, magkakaroon ng maraming kandidato para isama sa batayan sa mga vectors A1,A2,…,An

Kung ang ilang vector ay tumutugma sa mga artipisyal na ipinakilala na mga variable na xn+1,xn+2,…,xn+m, kung gayon ang kaukulang vector ay hinango mula sa batayan, at ang simplex na column ng talahanayan na may vector na ito ay i-cross out at hindi ibinalik. muli nito. Sa dulo ng pagbabago ng simplex table, dalawang opsyon ang posible:

· lahat ng mga vector na nauugnay sa mga artipisyal na variable ay hinango mula sa batayan, sa kasong ito ang lahat ng mga haligi ng simplex table na naaayon sa mga karagdagang variable ay mawawala, at ang solusyon ay orihinal na problema

· ang resultang pinakamainam na plano ay maglalaman pa rin ng ilang karagdagang variable, nangangahulugan ito na ang ODD ng orihinal na problema ay walang laman, ibig sabihin, ang mga paghihigpit nito ay magkasalungat, samakatuwid ang orihinal na problema ay walang mga solusyon sa lahat.

Mga problema sa dual linear programming. Pahayag ng mga problema, ang kanilang mga katangian.

Symmetric dual problema:

Unang karaniwang anyo

f(x)=c1x1+c2x2+…+cnxnàmin

a11x1+a21x2+…+an1xn>=b1

a12x1+a22x2+…+an2xn>=b2

…………………………………………..

a1mx1+a2mx2+…+anmxn>=bm

Dalawahang problema

d(y)=b1y1+b2y2+…+bmymàmax

a11y1+a12y2+…+a1mym=0, V j=1,m

Non-septenary pares ng dalawahang problema

Ang orihinal na problema sa kanonikal na anyo

f(x)=c1x1+c2x2+…+cnxnàmin

a11x1+a21x2+..+an1xn=b1

a12x1+a22x2+..+an2xn=b2

…………………………..

2. Pagpapakilala ng mga natural na pangunahing variable. Paggawa ng isang simplex table. Kahulugan ng zero plan.

Simplex na pamamaraan. Algorithm ng simplex na pamamaraan.

Simplex na pamamaraan- isang algorithm para sa paglutas ng problema sa pag-optimize ng linear programming sa pamamagitan ng pag-enumerate ng vertices ng convex polyhedron sa isang multidimensional na espasyo. Ang pamamaraan ay binuo ng Amerikanong matematiko na si George Danzig noong 1947.

Ang ideya ng simplex na paraan ay ang posed descriptive na problema ay isinalin sa mathematical form. Ang mathematical formulation ng problema ay naglalaman ng equation ng layunin function na nagpapahiwatig ng nais na resulta - pagtukoy ng minimum o maximum ng layunin function; mga sistema linear na mga hadlang, na ibinibigay ng mga pagkakapantay-pantay o hindi pagkakapantay-pantay. Ang resultang matematikal na paglalarawan ay humahantong sa anyo ng matris. Pagkatapos ang paglalarawan ng matrix ng problema ay nabawasan sa canonical form. Pagkatapos ng sistema mga linear na equation nabawasan sa canonical form, sinimulan nating lutasin ang problema sa linear programming. Ang algorithm para sa paglutas ng problemang ito ay binubuo ng isang pagkakasunud-sunod ng pagbuo ng mga matrice. Ang bawat hakbang ng solusyon ay naglalapit sa iyo sa pagkuha ng ninanais na resulta.

Sa computational scheme ng simplex na pamamaraan, ang isang iniutos na proseso ay ipinatupad kung saan, simula sa ilang paunang tinatanggap na punto ng sulok (karaniwan ay ang pinagmulan), ang mga sunud-sunod na paglipat mula sa isang tinatanggap na matinding punto patungo sa isa pa ay isinasagawa hanggang sa isang punto na tumutugma sa pinakamainam na solusyon. ay matatagpuan.

Simplex method algorithm

1. Dinadala namin ang sistema ng mga paghihigpit sa canonical form (kapag limitado ang system). Bukod dito, ang isang solong batayan ay maaaring makilala sa system.

2. Hanapin ang orihinal sangguniang plano(hindi negatibong mga pangunahing solusyon ng KZLP system of equation). Ang bawat isa sa mga reference na plano ay tinutukoy ng isang sistema ng m linearly independent vectors na nakapaloob sa isang ibinigay na sistema ng n vectors A 1 , A 2 ,…, Isang n. Ang pinakamataas na limitasyon sa bilang ng mga reference plan na nakapaloob sa isang partikular na problema ay tinutukoy ng bilang ng mga kumbinasyon Sa nm);

3. Kami ay nagtatayo simplex na talahanayan (simplex na talahanayan isang matrix na nagsisilbing isang paraan ng pag-enumerate ng mga tinatanggap na batayan na solusyon ng isang (hindi-degenerate) na linear programming na problema kapag nilulutas ito gamit ang simplex na paraan. Ito ay nabuo mula sa isang matrix ng mga coefficient ng isang sistema ng mga linear programming equation na nabawasan sa canonical form nito ayon sa tinatawag na simplex algorithm ay nagbibigay-daan sa isang limitadong bilang ng mga hakbang (iteration) upang makuha ang nais na resulta - isang plano na nagbibigay; isang matinding halaga ng layunin ng function).

4. B simpleng mesa sinusuri namin ang mga vectors para sa negatibiti, i.e. mga pagtatasa Zj – Сj ang nakasulat sa linya ay dapat na ≤ 0 (sa pinakamababa), Zj – Сj ≥ 0(sa maximum). Kung ang mga pagtatantya ay nakakatugon sa mga kondisyon ng pinakamainam, pagkatapos ay malulutas ang problema.

5. Kung para sa ilang mga vectors ang pinakamainam na kondisyon ay nilabag, kung gayon kinakailangan na ipakilala sa batayan ang isang vector na tumutugma sa:

max[θ 0 j (Zj – Сj)] ; min[θ 0 j (Zj – Сj)] ; θ 0 j = min, Saan x i> 0

Elemento ng vector θ j na tumutugma θ 0 j tinatawag na permissive; ang hilera at haligi kung saan ito matatagpuan ay tinatawag na gabay;

6. Hanapin ang expansion coefficient para sa lahat ng vectors sa bagong batayan. Ilapat natin ang pamamaraang Giordano Gauss

Tingnan natin ang pinakamainam na reference plan. Kung ang pagtatantya ay nakakatugon sa mga kondisyon ng pinakamainam, kung gayon ang problema ay malulutas kung hindi, pagkatapos ay isinasagawa ang mga hakbang 5-7.

2. Pagpapakilala ng mga natural na pangunahing variable. Paggawa ng isang simplex table. Kahulugan ng zero plan.

Ang simplex na paraan ay pinaka-epektibo sa paglutas ng mga kumplikadong problema at kumakatawan sa isang umuulit (step-by-step) na proseso na nagsisimula sa sero(sanggunian) solusyon (vertex n-dimensional polyhedron). Susunod sa paghahanap pinakamainam na opsyon Ipinagpapalagay ng plano ang paggalaw sa kahabaan ng mga sulok na punto (mga vertices ng polyhedron) hanggang ang halaga ng layunin ng function ay umabot sa maximum (minimum) na halaga. Isaalang-alang natin ang algorithm ng simplex na paraan gamit ang halimbawa ng problema sa pagpaplano ng turnover para sa limitadong mapagkukunan hilaw na materyales.

Nagbebenta ang kumpanya n mga pangkat ng produkto, pagkakaroon m limitadong materyal at pera b i ≥0 (1 ≤ i≤ m). Ang mga gastos sa mapagkukunan ng bawat isa ay kilala i- uri ng paggawa at pagbebenta ng isang yunit ng mga kalakal ng bawat pangkat, na ipinakita sa anyo ng isang matrix ( a ij) at ang tubo na natanggap ng negosyo mula sa pagbebenta ng isang yunit ng mga kalakal j-pangkat kasama sa layunin function Z(X). Ang linear programming method ay hindi naiiba sa system (1) - (2):

Z(X) = с 1 Х 1 + с 2 Х 2 + с 3 Х 3 + … +с n Х n →max(min) (1)

a 11 X 1 + a 12 X 2 +…a 1n X n ≤ b 1,

a 21 X 1 + a 22 X 2 +…a 2n X n ≤ b 2 (2)

a m1 X 1 + a m2 X 2 +…a mn X n ≤ b m,

X 1 ≥0 X 2 ≥0 X 3 ≥0 …X n ≥0

Ang mga yugto ng paglutas ng problema gamit ang simplex na pamamaraan ay kinabibilangan ng:

1) Pag-drawing ng zero reference plan. Ipinakilala namin ang mga bagong di-negatibong (basic) na mga variable, salamat sa kung saan ang sistema ng mga hindi pagkakapantay-pantay (2) ay naging isang sistema ng mga equation:

a 11 X 1 + a 12 X 2 +…a 1n X n + X n+1 = b 1

a 21 X 1 + a 22 X 2 +…a 2n X n + X n+2 = b 2 (3)

……………………………………..

a m1 X 1 + a m2 X 2 +…a mn X n + X n+m = b m,

Kung kukunin natin ang mga variable ng input bilang mga vector ng haligi, kung gayon kinakatawan nila walang asawa (basic) mga vector. Tandaan na ang mga pangunahing variable ay may simple pisikal na kahulugan- Ito natitira tiyak na mapagkukunan sa bodega para sa isang naibigay na plano ng produksyon, samakatuwid ang batayan na ito ay tinatawag natural. Niresolba namin ang system (3) na may paggalang sa mga pangunahing variable:

X n+1 = b 1, -a 11 X 1 - a 12 X 2 -…a 1n X n

X n+2 = b 2 - a 21 X 1 - a 22 X 2 -…a 2n X n (4)

………………………………………..

X n+m = b m, - a m1 X 1 + a m2 X 2 +…a mn X n

Isinulat namin muli ang layunin ng function sa form

Z(X) = 0-(-с 1 Х 1 -с 2 Х 2 -с 3 Х 3 -…-с n Х n) (5)

Ipagpalagay na ang mga kinakailangang pangunahing variable X 1 = X 2 = X 3 = ... = X n = 0, makakakuha tayo ng zero reference plan X = (0, 0, ...0, b 1, b 2, b 3 ... b m), kung saan ang Z(X) = 0 (lahat ng mapagkukunan sa stock, walang ginawa). Ipinasok namin ang plano sa isang simplex na talahanayan.

Plano Batayan C i /C j Ibig sabihin X i X 1 X 2 Xn Xn+1 Xn+2 X n+ 3 Qmin
Xn+1 b 1 isang 11 isang 12 isang 13 b 1/a 12
Xn+2 b 2 isang 21 isang 22 isang 23 b 2 / a 22
Xn+3 b 3 isang 31 isang 32 isang 33 b 3 / a 32
Z(X) = 0 -C 1 - C 2 - C 3 Index. linya

2) Mula sa mga negatibong coefficient ng index line, piliin ang pinakamalaki ganap na halaga, na tumutukoy sa nangungunang column at nagpapakita kung aling variable sa susunod na pag-ulit (hakbang) ang lilipat mula sa pangunahing (libre) patungo sa basic (sa katunayan, isang pangkat ng produkto ang napili kung saan ang mga benta ay nagdadala pinakamataas na kita). Pagkatapos ay hinahati namin ang mga reserba ng mga hilaw na materyales b i sa mga kaukulang coefficient ng gastos, ipasok ang mga resulta sa isang talahanayan at matukoy ang pinakamababang halaga Q min (ang mapagkukunan na ang reserba ay pinakamalakas na naglilimita sa output ng napiling pangkat ng produkto ay napili). Pinipili ng value na ito ang nangungunang linya at ang variable na Xi, na sa susunod na hakbang (iteration) ay aalis sa batayan at magiging libre.

3) Ang paglipat sa isang bagong plano ay isinasagawa bilang isang resulta ng muling pagkalkula ng simplex na talahanayan gamit ang pamamaraang Jordan-Gauss. Una, pinapalitan namin ang X j sa batayan ng X i ng nangungunang column. Hatiin natin ang lahat ng mga elemento ng nangungunang linya sa pamamagitan ng paglutas ng elemento (RE), bilang isang resulta kung saan ang lugar ng RE sa nangungunang linya ay magiging 1. Dahil ang X i ay naging basic, ang natitirang mga koepisyent nito ay dapat na katumbas ng 0. Ang mga bagong elemento ng planong ito ay matatagpuan ayon sa tuntunin ng parihaba

NE=SE – (A*B)/RE (6)

Ang resultang plano ay sinusuri gamit ang mga coefficient ng linya ng index: kung lahat sila ay positibo, kung gayon ang plano ay pinakamainam kung hindi, kung gayon ang plano ay maaaring mapabuti sa pamamagitan ng pagsasagawa ng susunod na pag-ulit (hakbang).

Halimbawa. Ang 20 libong rubles ay inilaan para sa pagbili ng mga kagamitan para sa site ng produksyon. Ang kagamitan ay maaaring ilagay sa isang lugar na hindi hihigit sa 72 sq.m. Maaari kang mag-order ng kagamitan ng dalawang uri: uri A, na nangangailangan ng isang lugar ng produksyon na 6 sq.m at pagbibigay ng 6 na libong mga yunit. mga produkto sa bawat shift (presyo 5,000 rubles) at uri B, na nangangailangan ng isang lugar ng 12 sq.m at paggawa ng 3 libong mga yunit (presyo 2,000 rubles). Ano ang pinakamainam na plano sa pagkuha ng kagamitan upang matiyak pinakamataas na pagganap plot?

Tukuyin natin ang dami ng biniling kagamitan ng uri A at B ng X 1 at X 2, ayon sa pagkakabanggit.

Produktibo ng site (objective function): Z(X) =6Х 1 +3Х 2.

Ang mga pangunahing limitasyon ay nauugnay

may cash: 5Х 1 +2Х 2 ≤ 20,

na may lugar ng produksyon: 6Х 1 +12Х 2 ≤ 72.

Ipinakilala namin ang mga bagong pangunahing variable X 3 (natitira cash pagkatapos bumili ng kagamitan) at X 4 (natitirang lugar pagkatapos ng paglalagay ng kagamitan) at muling isulat ang mga paghihigpit sa anyo ng isang sistema ng mga equation:

5X 1 +2X 2 +X 3 =20 (X 3 =20 – 5X 1 - 2X 2)

6X 1 +12X 2 +X 4 = 72 (X 4 =72 – 6X 1 – 12X 2)

Sa kasong ito, ang layunin ng function: Z(X) = 6Х 1 +3Х 2 +0Х 3 +0Х 4 .

Gumagawa kami ng reference (0th) na plano: X = (0, 0, 20, 72), i.e. wala pang nabibili (wala pang nagastos, walang laman ang espasyo). Paggawa ng simplex table

Plano Batayan C i /C j Ibig sabihin X i X 1 X 2 X 3 X 4 Qmin
X 3 20/5=4
X 4 72/6=12
Z(X) = 0 - 6 - 3 Linya ng index
→X 1 0,4 0,2 4/0,4=10
X 4 9,6 -1,2 48/9,6=5
Z(X) = 6*4=24 -0,6 1,2 Linya ng index
X 1 0,25 -1/24 -
→X 2 -1/8 5/48 -
Z(X) =6*2+3*5=27 9/8 1/16 Linya ng index

Malinaw, ang nangungunang column ay tumutugma sa X 1, dahil ito ang may pinakamalaking index 6. Nahanap namin ang pinakamababang halaga ng Q min = 4 (ang pinakamatinding hadlang sa mapagkukunan) sa pamamagitan ng pagtukoy sa isang nangungunang hilera na nagpapakita na ang X 3 ay hinango mula sa mga batayang variable , at X ang ipinasok sa halip na 1. Muli naming kinakalkula ang mga elemento ng nangungunang linya, hinahati ang mga ito sa 5, at gamit ang formula (6) tinutukoy namin ang mga elemento ng pangalawa at index na linya. Ang layunin ng function para sa 1st plan ay katumbas ng Z(X) = 6*4+3*0 = 24.

Gayunpaman, ang isa sa mga coefficient ng index row para sa column X 2 ay nananatiling negatibo -0.6, samakatuwid ang planong ito ay hindi pinakamainam at kailangan ng isa pang pag-ulit (hakbang) upang mapabuti ito. Piliin ang 2nd column bilang nangunguna at pinakamababang halaga Q min = 5 tinutukoy namin ang nangungunang linya na may pangunahing variable na X 4. Nang maisagawa ang parehong mga pagbabagong-anyo, nakuha namin ang ika-2 plano, na magiging pinakamainam, dahil ang lahat ng mga koepisyent ng index ay positibo.

Suriin natin ang mga resultang nakuha. Sa pinakamainam na solusyon ang layunin function ay may pinakamataas na halaga 27 libong rubles, habang ang parehong mga mapagkukunan ay kinuha sa labas ng base, samakatuwid ay ganap na ginugol.

Siguraduhin natin ito: 5*2+2*5 = 20 thousand rubles, 6*2+12*5=72 sq.m. Ang kinakailangang solusyon ay X = (2; 5;0;0) Hindi ito palaging nangyayari.

Lektura Blg. 10

Paksa: Simplex na paraan para sa mga problema na may artipisyal na batayan

Ang paraan ng simplex na solusyon ay batay sa pagpapakilala ng mga karagdagang (pangunahing) variable na ginagawang posible upang bumuo ng isang unit matrix. Kung ang mga hadlang sa problema ay ipinakita sa anyo ng mga hindi pagkakapantay-pantay:

a i1 X 1 + a i2 X 2 +…a sa X n ≥ b i (1)

o mga equation:

a i1 X 1 + a i2 X 2 +…a sa X n = b i (1*),

pagkatapos ay imposibleng makuha ang reference plan sa nais na anyo. Sa kasong ito, upang sumunod sa mga pagkakapantay-pantay (1*), ipinakilala namin artipisyal na batayan Y i , at ang mga artipisyal na variable ay hindi direktang nauugnay sa nilalaman ng gawain, ngunit ginagawang posible na bumuo ng isang sanggunian (pagsisimula) na plano:

a i1 X 1 + a i2 X 2 +…a sa X n +Y i = b i (2)

Ang layunin ng pag-andar kapag ang paglutas ng problema sa maximum ay isusulat sa form:

Z(X) =∑C j X j +(-M)∑Y i (3),

kapag nilulutas ang isang katulad na problema sa pinakamababa:

Z(X)=∑C j X j +(M)∑Y i (3*),

kung saan ang M ay napakalaki positibong numero, isang uri ng parusa para sa paggamit ng mga artipisyal na variable.

Sa kaso ng mga hindi pagkakapantay-pantay (1), una naming ipinakilala ang mga karagdagang variable X n + i na may minus sign. Ang kanilang matrix ay hindi magiging unitary, samakatuwid, sa bawat hindi pagkakapantay-pantay ng system (1) ipinakilala namin ang mga artipisyal na variable У i:

a i1 X 1 +a i2 X 2 +…a sa X n –X n+i +Y i =b i (4)

Ang layunin ng function sa kasong ito ay Z(X)=∑C j X j +0∑X n + i +(-M)∑Y i (upang mahanap ang maximum). Ang paggamit ng isang artipisyal na batayan ay nagbibigay sa simplex na paraan ng higit na kakayahang umangkop at pinapayagan itong magamit para sa isang malawak na hanay ng mga problema.

Halimbawa . Tukuyin ang maximum at minimum na halaga ng kita para sa paggawa ng dalawang uri ng mga produkto A at B, kung ang mga gastos sa produksyon at kakayahang kumita mula sa mga benta ng isang yunit ng produkto ay ibinigay sa talahanayan. Ang pangunahing kondisyon ay ang buong trabaho ng mga manggagawa sa negosyo.

Sa matematika, ang mga hadlang sa output ng produksyon ay isusulat sa anyo ng isang halo-halong sistema:

1Х 1 + 1Х 2 ≤ 6,

2X 1 + 1X 2 =8.

Para sa unang hindi pagkakapantay-pantay, ipinakilala namin ang pangunahing variable X 3, at para sa pangalawang equation ang artipisyal na variable Y 1:

1X 1 + 1X 2 + X 3 = 6,

2X 1 + 1X 2 +Y 1 =8.

Ipahayag natin ang X 3 at Y 1 mula sa nagresultang sistema ng mga equation at, upang matukoy ang maximum, isipin ang layunin ng function:

Z(X)= 3X 1 + 2X 2 +0X 3 –MY 1 = 3X 1 + 2X 2 –M(8 -2X 1 –X 2)=

3X 1 + 2X 2 –8M +2MX 1 + MX 2 = (2M + 3)X 1 + (M + 2)X 2 -8M

Para sa reference plan - X=(0,0,6,8). Bumuo tayo ng simplex table:

Plano Batayan C i /C j Ibig sabihin X i X 1 X 2 X 3 Y 1 Qmin
X 3 6/1=6
Y 1 -M 8/2=4
Z(X) = -8M -2M-3 -M-2 Linya ng index
X 3 0,5 -0,5 2/0,5=4
→X 1 0,5 0,5 4/0,5=8
Z(X) = 3*4=12 - 0,5 M+1.5 Linya ng index
→X 2 -1 -
X 1 -1 -
Z(X) =3*2+2*4=14 M+1 Linya ng index

Bilang isang patakaran, ang pagpapabuti ng plano ng sanggunian ay nagsisimula sa pag-alis ng artipisyal na variable Y 1 mula sa batayan Ang pinakamainam na plano X = (2,4,0,0) ay nakuha sa pangalawang pag-ulit, na may pinakamataas na kita na 14. libo. kuskusin. , at ang mga coefficient ng index row ay hindi negatibo. Madaling i-verify na sa gawaing ito, na may pinakamainam na plano, ang mga mapagkukunan ay ganap na ginagamit (2*1+4*1=6; 2*2+1*4=8).

Kapag nahanap ang pinakamababang kakayahang kumita, binabalangkas namin ang layunin ng function sa ibang paraan (+MY 1 ay ipinasok bilang isang termino:

Z(X)= 3X 1 + 2X 2 +0X 3 +MY 1 = 3X 1 + 2X 2 +M(8 -2X 1 –X 2)=

3X 1 + 2X 2 +8M - 2MX 1 - MX 2 = (3 - 2M)X 1 + (2 - M)X 2 +8M

Batayang plano pareho, ngunit ang mga index row coefficients sa simplex table ay iba. Ang nangungunang column, tulad ng dati, ay pinipili ng pinakamalaki ganap na halaga positibong koepisyent para sa X 1, ang nangungunang hilera ay tinutukoy ng pinakamababang halaga ng Q min =4 Sa unang pag-ulit, ang artipisyal na variable na Y 1 ay hinango mula sa batayan.

Plano Batayan C i /C j Ibig sabihin X i X 1 X 2 X 3 Y 1 Qmin
X 3 6/1=6
Y 1 M 8/2=4
Z(X) = 8M 2M-3 M-2 Linya ng index
X 3 0,5 -0,5 2/0,5=4
→X 1 0,5 0,5 4/0,5=8
Z(X) = 3*4=12 - 0,5 -M+1.5 Linya ng index

Ang mga nagresultang negatibong halaga ng mga coefficient sa index line X ay nagpapahiwatig ng pinakamainam ng 1st plan, na may pinakamababang kita na 12 libong rubles.

Ito ay ibinibigay lamang sa pamamagitan ng output ng produkto A (produkto B ay hindi ginawa), ang mga hilaw na materyales ay hindi ganap na ginagamit (natitira X 3 = 2t), habang ang pangunahing kondisyon ay natutugunan - ang mga manggagawa ay ganap na nagtatrabaho sa produksyon.


Lektura Blg. 11

Paksa: Problema sa saradong transportasyon

1. Mathematical formulation ng sarado problema sa transportasyon. Pagtukoy sa kinakailangang bilang ng mga hindi alam.

2. Mga yugto ng pagtukoy ng plano para sa paglutas ng problema sa transportasyon.