Ano ang linear programming. Mga hindi kinaugalian na pamamaraan

Kung sa problema linear programming Mayroon lamang dalawang mga variable, pagkatapos ay maaari itong malutas nang graphical.

Isaalang-alang ang isang linear na problema sa programming na may dalawang variable at:
(1.1) ;
(1.2)
Eto, meron di-makatwirang mga numero. Ang gawain ay maaaring alinman upang mahanap ang maximum (max) o upang mahanap ang minimum (min). Ang sistema ng mga paghihigpit ay maaaring maglaman ng parehong mga palatandaan at palatandaan.

Konstruksyon ng domain ng mga magagawang solusyon

Ang graphical na paraan para sa paglutas ng problema (1) ay ang mga sumusunod.
Una, iginuhit namin ang mga coordinate axes at piliin ang sukat. Ang bawat isa sa mga hindi pagkakapantay-pantay ng sistema ng mga hadlang (1.2) ay tumutukoy sa isang kalahating eroplano na nililimitahan ng kaukulang tuwid na linya.

Kaya, ang unang hindi pagkakapantay-pantay
(1.2.1)
ay tumutukoy sa isang kalahating eroplano na may hangganan ng isang linya.

Sa isang gilid nitong tuwid na linya, at sa kabilang panig.

Sa napakatuwid na linya.

Upang malaman kung aling panig ang hindi pagkakapantay-pantay (1.2.1), pipili kami ng isang di-makatwirang punto na hindi nasa linya. Susunod, pinapalitan namin ang mga coordinate ng puntong ito sa (1.2.1). Kung mananatili ang hindi pagkakapantay-pantay, ang kalahating eroplano ay naglalaman ng napiling punto. Kung ang hindi pagkakapantay-pantay ay hindi humawak, kung gayon ang kalahating eroplano ay matatagpuan sa kabilang panig (hindi naglalaman ng napiling punto). I-shade ang kalahating eroplano kung saan mayroong hindi pagkakapantay-pantay (1.2.1).
(2)
Ginagawa namin ang parehong para sa natitirang hindi pagkakapantay-pantay ng system (1.2). Sa ganitong paraan nakakakuha tayo ng shaded half-planes. Ang mga punto ng rehiyon ng mga magagawang solusyon ay nakakatugon sa lahat ng hindi pagkakapantay-pantay (1.2). Samakatuwid, sa graphically, ang rehiyon ng mga admissible solution (ADS) ay ang intersection ng lahat ng itinayong kalahating eroplano. Pagtatabing sa ODR. Ito ay isang matambok na polygon na ang mga mukha ay nabibilang sa mga itinayong tuwid na linya. Gayundin, ang isang ODF ay maaaring isang walang limitasyong convex figure, isang segment, isang ray o isang tuwid na linya.

Kung ang hindi bababa sa isang hindi pagkakapantay-pantay ay hindi nasiyahan, pagkatapos ay pumili ng isa pang punto. At iba pa hanggang sa matagpuan ang isang punto na ang mga coordinate ay nakakatugon sa system (1.2).

Paghahanap ng extremum ng layunin function

Kaya, mayroon kaming shaded na rehiyon ng mga feasible solution (ADA). Ito ay nililimitahan ng isang putol na linya na binubuo ng mga segment at ray na kabilang sa mga itinayong tuwid na linya (2). Ang ODS ay palaging isang convex set. Maaari itong maging isang bounded set o hindi bounded sa ilang direksyon.

Ngayon ay maaari nating hanapin ang extremum layunin function
(1.1) .

Upang gawin ito, pumili ng anumang numero at bumuo ng isang tuwid na linya
(3) .
Para sa kaginhawahan ng karagdagang pagtatanghal, ipinapalagay namin na ang tuwid na linyang ito ay dumadaan sa ODR. Sa linyang ito ang layunin ng function ay pare-pareho at katumbas ng .
.
ang ganitong tuwid na linya ay tinatawag na isang function level line.
.
Hinahati ng linyang ito ang eroplano sa dalawang kalahating eroplano. Sa isang kalahating eroplano

Sa isa pang kalahating eroplano

Iyon ay, sa isang gilid ng tuwid na linya (3), ang layunin ng function ay tumataas. At kung higit nating ilipat ang punto mula sa tuwid na linya (3), mas malaki ang halaga.

Sa kabilang panig ng tuwid na linya (3), bumababa ang layunin ng function. At habang inililipat natin ang punto mula sa tuwid na linya (3) patungo sa kabilang panig, mas magiging maliit ang halaga.
.
Kung gumuhit tayo ng isang tuwid na linya na kahanay ng linya (3), kung gayon ang bagong tuwid na linya ay magiging isang antas din ng linya ng layunin, ngunit may ibang halaga.
.

Maaari ding magkaroon ng kaso kapag ang tuwid na linya ay parallel sa isa sa mga mukha ng ODR. Pagkatapos ang tuwid na linya ay dumadaan sa dalawang vertices ng ODR polygon. Tinutukoy namin ang mga coordinate ng mga vertex na ito. Upang matukoy ang maximum (minimum) na halaga ng layunin ng function, maaari mong gamitin ang mga coordinate ng alinman sa mga vertex na ito:
.
Ang problema ay may walang katapusang maraming solusyon. Ang solusyon ay anumang puntong matatagpuan sa segment sa pagitan ng mga punto at , kabilang ang mga punto at ang kanilang mga sarili.

Isang halimbawa ng paglutas ng isang linear programming problem gamit ang graphical na paraan

Kondisyon ng problema

Ang kumpanya ay gumagawa ng mga damit ng dalawang modelo A at B. Tatlong uri ng tela ang ginagamit. Upang gumawa ng isang damit ng modelo A, 2 m ng tela ng unang uri, 1 m ng tela ng pangalawang uri, 2 m ng tela ng ikatlong uri ay kinakailangan. Upang makagawa ng isang damit ng modelo B, 3 m ng tela ng unang uri, 1 m ng tela ng pangalawang uri, 2 m ng tela ng ikatlong uri ay kinakailangan. Ang mga stock ng tela ng unang uri ay 21 m, ng pangalawang uri - 10 m, ng ikatlong uri - 16 m Ang paglabas ng isang produkto ng uri A ay nagdudulot ng kita na 400 den. mga yunit, isang uri ng produkto B - 300 den. mga yunit

Gumuhit ng isang plano sa produksyon na nagbibigay sa kumpanya ng pinakamalaking kita. Lutasin ang problema sa graphical na paraan.

Solusyon

Hayaan ang mga variable at tukuyin ang bilang ng mga damit na ginawa, mga modelo A at B, ayon sa pagkakabanggit. Kung gayon ang dami ng tela ng unang uri na natupok ay magiging:
(m)
Ang dami ng tela ng pangalawang uri na natupok ay:
(m)
Ang dami ng tela ng ikatlong uri na natupok ay:
(m)
Dahil ang bilang ng mga damit na ginawa ay hindi maaaring negatibo, kung gayon
At .
Ang kita mula sa mga damit na ginawa ay:
(den. units)

Pagkatapos ang modelong pang-ekonomiya-matematika ng problema ay may anyo:


Nilulutas namin ito nang graphical.
Iginuhit namin ang coordinate axes at .

Gumagawa kami ng isang tuwid na linya.
Sa .
Sa .
Gumuhit ng isang tuwid na linya sa pamamagitan ng mga puntos (0; 7) at (10.5; 0).

Gumagawa kami ng isang tuwid na linya.
Sa .
Sa .
Gumuhit ng isang tuwid na linya sa pamamagitan ng mga puntos (0; 10) at (10; 0).

Gumagawa kami ng isang tuwid na linya.
Sa .
Sa .
Gumuhit ng isang tuwid na linya sa pamamagitan ng mga puntos (0; 8) at (8; 0).



Nililiman namin ang lugar upang ang punto (2; 2) ay bumagsak sa may kulay na bahagi. Nakukuha namin ang quadrilateral OABC.


(A1.1) .
Sa .
Sa .
Gumuhit ng isang tuwid na linya sa pamamagitan ng mga puntos (0; 4) at (3; 0).

Napansin pa namin na dahil ang mga coefficient ng at ng layunin ng function ay positibo (400 at 300), ito ay tumataas bilang at tumataas.
.

Gumuhit kami ng isang tuwid na linya parallel sa tuwid na linya (A1.1), hangga't maaari mula dito sa direksyon ng pagtaas , at dumadaan sa hindi bababa sa isang punto ng quadrilateral OABC. Ang nasabing linya ay dumadaan sa punto C. Mula sa pagtatayo ay tinutukoy natin ang mga coordinate nito.

Solusyon sa problema: ;

.
Sagot

Iyon ay, upang makakuha ng pinakamalaking kita, ito ay kinakailangan upang gumawa ng 8 dresses ng modelo A. Ang kita ay magiging 3200 den. mga yunit

Kondisyon ng problema

Lutasin ang isang linear na problema sa programming sa graphical na paraan.

Solusyon

Nilulutas namin ito nang graphical.
Iginuhit namin ang coordinate axes at .

Gumagawa kami ng isang tuwid na linya.
Sa .
Sa .
Gumuhit ng isang tuwid na linya sa pamamagitan ng mga puntos (0; 6) at (6; 0).

Gumagawa kami ng isang tuwid na linya.
Mula dito.
Sa .
Sa .
Gumuhit ng isang tuwid na linya sa pamamagitan ng mga puntos (3; 0) at (7; 2).

Gumagawa kami ng isang tuwid na linya.
Bumubuo kami ng isang tuwid na linya (abscissa axis).

Ang rehiyon ng mga tinatanggap na solusyon (ADA) ay limitado ng mga itinayong tuwid na linya. Upang malaman kung aling panig, tandaan namin na ang punto ay kabilang sa ODR, dahil natutugunan nito ang sistema ng hindi pagkakapantay-pantay:

Inilalagay namin ang lugar sa kahabaan ng mga hangganan ng mga itinayong linya upang ang punto (4; 1) ay bumagsak sa may kulay na bahagi. Nakukuha namin ang tatsulok na ABC.

Bumubuo kami ng isang arbitrary na linya ng antas ng layunin ng function, halimbawa,
.
Sa .
Sa .
Gumuhit ng isang tuwid na linya ng antas sa pamamagitan ng mga puntos (0; 6) at (4; 0).
Dahil ang layunin ng function ay tumataas sa pagtaas at , gumuhit kami ng isang tuwid na linya parallel sa linya ng antas at bilang malayo mula dito hangga't maaari sa direksyon ng pagtaas , at dumadaan sa hindi bababa sa isang punto ng tatsulok na ABC. Ang ganitong linya ay dumadaan sa punto C. Mula sa pagtatayo ay tinutukoy natin ang mga coordinate nito.
.

Gumuhit kami ng isang tuwid na linya parallel sa tuwid na linya (A1.1), hangga't maaari mula dito sa direksyon ng pagtaas , at dumadaan sa hindi bababa sa isang punto ng quadrilateral OABC. Ang nasabing linya ay dumadaan sa punto C. Mula sa pagtatayo ay tinutukoy natin ang mga coordinate nito.

Solusyon sa problema: ;

Halimbawa ng walang solusyon

Kondisyon ng problema

Lutasin ang isang linear na problema sa programming sa graphical na paraan. Hanapin ang maximum at minimum na halaga ng layunin ng function.

Solusyon

Nilulutas namin ang problema sa graphical na paraan.
Iginuhit namin ang coordinate axes at .

Gumagawa kami ng isang tuwid na linya.
Sa .
Sa .
Gumuhit ng isang tuwid na linya sa pamamagitan ng mga puntos (0; 8) at (2.667; 0).

Gumagawa kami ng isang tuwid na linya.
Sa .
Sa .
Gumuhit ng isang tuwid na linya sa pamamagitan ng mga puntos (0; 3) at (6; 0).

Gumagawa kami ng isang tuwid na linya.
Sa .
Sa .
Gumuhit ng isang tuwid na linya sa pamamagitan ng mga puntos (3; 0) at (6; 3).

Ang mga tuwid na linya ay ang mga coordinate axes.

Ang rehiyon ng mga tinatanggap na solusyon (ADA) ay nililimitahan ng mga itinayong tuwid na linya at coordinate axes. Upang malaman kung aling panig, tandaan namin na ang punto ay kabilang sa ODR, dahil natutugunan nito ang sistema ng hindi pagkakapantay-pantay:

Nililiman namin ang lugar upang ang punto (3; 3) ay bumagsak sa may kulay na bahagi. Nakakuha kami ng walang limitasyong lugar na nalilimitahan ng putol na linyang ABCDE.

Bumubuo kami ng isang arbitrary na linya ng antas ng layunin ng function, halimbawa,
(A3.1) .
Sa .
Sa .
Gumuhit ng isang tuwid na linya sa pamamagitan ng mga puntos (0; 7) at (7; 0).
Dahil ang mga coefficient ng at ay positibo, ito ay tumataas sa pagtaas at .

Upang mahanap ang maximum, kailangan mong gumuhit ng isang parallel na linya, na kung saan ay malayo hangga't maaari sa direksyon ng pagtaas , at pagdaan sa hindi bababa sa isang punto ng rehiyon ABCDE. Gayunpaman, dahil ang lugar ay walang limitasyon sa gilid ng malalaking halaga ng at , ang gayong tuwid na linya ay hindi maaaring iguhit. Kahit anong tuwid na linya ang ating iguhit, palaging may mga punto sa rehiyon na mas malayo sa direksyon ng pagtaas at .

Kaya walang maximum. maaari mong gawin itong kasing laki ng gusto mo.
.
Hinahanap namin ang pinakamababa. Gumuhit kami ng isang tuwid na linya parallel sa tuwid na linya (A3.1) at hangga't maaari mula dito sa direksyon ng pagbaba , at dumadaan sa hindi bababa sa isang punto ng rehiyon ABCDE. Ang ganitong linya ay dumadaan sa punto C. Mula sa pagtatayo ay tinutukoy natin ang mga coordinate nito. Pinakamababang halaga

Solusyon sa problema: ;

layunin function: Pinakamataas na halaga
ay wala.
.

Linear programming

Linear programming- isang matematikal na disiplina na nakatuon sa teorya at mga pamamaraan ng paglutas ng mga matinding problema sa mga hanay ng -dimensional na vector space na tinukoy ng mga sistema ng mga linear na equation at hindi pagkakapantay-pantay.

Ang linear programming ay isang espesyal na kaso ng convex programming, na kung saan ay isang espesyal na kaso ng mathematical programming. Kasabay nito, ito ang batayan ng ilang mga pamamaraan para sa paglutas ng mga problema sa integer at nonlinear programming. Ang isang generalization ng linear programming ay fractional linear programming.

Maraming mga katangian ng mga problema sa linear programming ay maaari ding bigyang-kahulugan bilang mga katangian ng polyhedra at kaya geometrically formulated at proven.

Kwento

Ang pamamaraan ng interior point ay unang binanggit ni I. I. Dikin noong 1967.

Mga gawain

Ang pangunahing (karaniwang) linear programming problema ay tinatawag na problema sa paghahanap ng pinakamababa ng isang linear na layunin function ( linear na hugis) ng anyo:

sa ilalim ng mga kondisyon

, .

Ang problema sa linear programming ay magkakaroon canonical view , kung sa pangunahing problema sa halip na ang unang sistema ng hindi pagkakapantay-pantay mayroong isang sistema ng mga equation:

,

Ang pangunahing problema ay maaaring mabawasan sa canonical sa pamamagitan ng pagpapakilala ng mga karagdagang variable.

Ang mga problema sa linear programming sa pinaka-pangkalahatang anyo (mga problema na may magkahalong mga hadlang: mga pagkakapantay-pantay at hindi pagkakapantay-pantay, ang pagkakaroon ng mga variable na walang mga hadlang) ay maaaring bawasan sa mga katumbas (na may parehong hanay ng mga solusyon) sa pamamagitan ng pagpapalit ng mga variable at pagpapalit ng mga pagkakapantay-pantay ng isang pares ng hindi pagkakapantay-pantay.

Madaling makita na ang problema sa paghahanap ng maximum ay maaaring mapalitan ng gawain ng paghahanap ng minimum sa pamamagitan ng pagkuha ng mga coefficient na may kabaligtaran na tanda.

Mga sample na problema

Pinakamataas na pagtutugma

Isaalang-alang ang maximum na problema sa pagtutugma sa isang bipartite graph: mayroong ilang mga lalaki at babae, at para sa bawat lalaki at babae ay alam kung sila ay kaakit-akit sa isa't isa. Kailangang magpakasal maximum na bilang magkasintahang may simpatiya sa isa't isa.

Ipakilala natin ang mga variable na tumutugma sa pares ng -boy at ang -girl at matugunan ang mga paghihigpit:

na may layuning pag-andar. Maipapakita na kabilang sa pinakamainam na solusyon sa problemang ito ay mayroong isang integer. Ang mga variable na katumbas ng 1 ay tumutugma sa mga mag-asawang dapat ikasal.

Pinakamataas na daloy

Hayaang magkaroon ng isang graph (na may mga oriented na gilid), kung saan para sa bawat gilid nito throughput. At dalawang vertex ang ibinibigay: alisan ng tubig at pinagmulan. Kinakailangang ipahiwatig para sa bawat gilid kung gaano karaming likido ang dadaloy dito (hindi hihigit sa kapasidad nito) upang ma-maximize ang kabuuang daloy mula sa pinagmulan patungo sa alisan ng tubig (ang likido ay hindi maaaring lumitaw o mawala sa lahat ng mga vertices maliban sa alisan ng tubig at pinagmulan).

Kunin natin bilang mga variable ang dami ng likidong dumadaloy sa tadyang. Pagkatapos

,

nasaan ang kapasidad ng gilid na iyon. Ang mga hindi pagkakapantay-pantay na ito ay dapat dagdagan ng pagkakapantay-pantay ng dami ng pumapasok at umaagos na likido para sa bawat vertex, maliban sa alisan ng tubig at pinagmulan. Bilang isang function, natural na kunin ang pagkakaiba sa pagitan ng dami ng lumalabas at pumapasok na likido sa pinagmulan.

Ang paglalahat ng nakaraang problema ay ang pinakamataas na daloy ng pinakamababang gastos. Sa problemang ito, ibinibigay ang mga gastos para sa bawat gilid at kailangan mong piliin ang daloy na may pinakamababang gastos sa mga pinakamataas na daloy. Ang problemang ito ay bumaba sa dalawang linear na problema sa programming: una kailangan mong lutasin ang problema ng pinakamataas na daloy, at pagkatapos ay idagdag sa problemang ito ang pagpilit , kung saan ang halaga ng pinakamataas na daloy, at lutasin ang problema sa bagong feature- gastos sa daloy.

Ang mga problemang ito ay maaaring malutas nang mas mabilis kaysa sa mga pangkalahatang algorithm para sa paglutas ng mga problema sa linear programming, dahil sa espesyal na istraktura ng mga equation at hindi pagkakapantay-pantay.

Gawain sa transportasyon

Mayroong isang tiyak na homogenous na kargamento na kailangang ilipat mula sa mga bodega patungo sa mga pabrika. Para sa bawat bodega alam kung gaano karaming kargamento ang nilalaman nito, at para sa bawat planta ang pangangailangan nito para sa kargamento ay kilala. Ang halaga ng transportasyon ay proporsyonal sa layo mula sa bodega hanggang sa pabrika (lahat ng distansya mula sa ika-warehouse hanggang sa ika- pabrika ay alam). Ito ay kinakailangan upang i-compile ang pinaka murang plano transportasyon.

Mga mapagpasyang variable sa sa kasong ito ay ang dami ng kargamento na dinadala mula sa ika-warehouse hanggang sa ika- halaman. Natutugunan nila ang mga paghihigpit:

Ang layunin ng function ay may anyo: , na dapat i-minimize.

Zero sum game

May sukat na matrix. Ang unang manlalaro ay pipili ng numero mula 1 hanggang , ang pangalawa - mula 1 hanggang . Pagkatapos ay suriin nila ang mga numero at ang unang manlalaro ay makakakuha ng mga puntos, at ang pangalawang manlalaro ay makakakuha ng mga puntos (ang numero na pinili ng unang manlalaro ay makakakuha ng pangalawa). Kailangan nating hanapin ang pinakamainam na diskarte para sa unang manlalaro.

Ipagpalagay na sa isang pinakamainam na diskarte, halimbawa, ang unang manlalaro ay dapat pumili ng isang numero na may posibilidad . Kung gayon ang pinakamainam na diskarte ay isang solusyon sa sumusunod na problema sa linear programming:

, , (),

kung saan kailangang i-maximize ang function. Ang halaga sa pinakamainam na solusyon ay ang inaasahan ng kabayaran ng unang manlalaro sa pinakamasamang kaso.

Mga algorithm ng solusyon

Ang pinakasikat at malawak na ginagamit sa pagsasanay upang malutas karaniwang gawain Ang linear programming (LP) ay isang simplex na paraan. Sa kabila ng katotohanan na ang simplex na paraan ay isang medyo epektibong algorithm na ipinakita magandang resulta kapag nilulutas ang mga inilapat na problema sa LP, ito ay isang algorithm na may exponential complexity. Ang dahilan nito ay ang kombinatoryal na katangian ng simplex na pamamaraan, na sunud-sunod na binibilang ang mga vertices ng polyhedron ng mga magagawang solusyon kapag naghahanap ng pinakamainam na solusyon.

Ang unang polynomial algorithm, ang ellipsoid method, ay iminungkahi noong 1979 ng Soviet mathematician na si L. Khachiyan, kaya nalutas ang problema sa mahabang panahon nanatiling hindi nalutas. Ang pamamaraang ellipsoid ay may ganap na kakaiba, hindi kombinatoryal na katangian kaysa sa pamamaraang simplex. Gayunpaman, mula sa isang computational point of view, ang pamamaraang ito ay naging hindi maaasahan. Gayunpaman, ang mismong katotohanan ng polynomial complexity ng mga problema ay humantong sa paglikha ng isang buong klase mahusay na mga algorithm LP - mga pamamaraan ng panloob na punto, ang una ay ang algorithm ni N. Karmarkar na iminungkahi noong 1984. Ang mga algorithm ng ganitong uri ay gumagamit ng tuluy-tuloy na interpretasyon ng problema sa LP, kapag sa halip na isa-isahin ang mga vertices ng polyhedron ng mga solusyon sa problema sa LP, ang isang paghahanap ay isinasagawa kasama ang mga trajectory sa espasyo. mga variable ng problema, hindi dumadaan sa vertices ng polyhedron. Ang paraan ng panloob na punto, na, hindi katulad ng paraan ng simplex, ay lumalampas sa mga punto mula sa loob ng rehiyon mga katanggap-tanggap na halaga, ay gumagamit ng log-barrier nonlinear programming method na binuo noong 1960s nina Fiacco at McCormick.

Tingnan din

  • Graphical na paraan para sa paglutas ng isang linear programming problem

Mga Tala

Panitikan

  • Thomas H. Corman et al. Kabanata 29. Linear programming // Algorithms: construction and analysis = INTRODUKSYON SA ALGORITHMS. - 2nd ed. - M.: “Williams”, 2006. - P. 1296. - ISBN 5-8459-0857-4
  • Akulich I.L. Kabanata 1. Mga problema sa linear programming, Kabanata 2. Espesyal na mga problema sa linear programming // Mathematical programming sa mga halimbawa at problema. - M.: Higher School, 1986. - 319 p. - ISBN 5-06-002663-9
  • Karmanov V. G. Pagprograma ng matematika. - ika-3 edisyon. - M.: Nauka, 1986. - 288 p.
  • Danzig George Bernard "Mga Alaala ng Simula ng Linear Programming"

Mga link

  • - Libreng optimization package na idinisenyo upang malutas ang mga problema sa linear, integer at layunin sa programming.
  • Vershik A. M. "Tungkol sa L. V. Kantorovich at linear programming"
  • Bolshakova I. V., Kuralenko M. V. "Linear programming. Pang-edukasyon at metodolohikal na manwal para sa pagsusulit."
  • Barsov A. S. "Ano ang linear programming", Mga sikat na lektura sa matematika, Gostekhizdat, 1959.
  • M. N. Vyalyi Mga linear na hindi pagkakapantay-pantay at combinatorics. - MCNMO, 2003.

Wikimedia Foundation.

  • 2010.
  • Salten, Felix

Glagow, Martina

Linear programming

Linear programming- isang matematikal na disiplina na nakatuon sa teorya at mga pamamaraan ng paglutas ng mga matinding problema sa mga hanay ng -dimensional na vector space na tinukoy ng mga sistema ng mga linear na equation at hindi pagkakapantay-pantay.

Ang linear programming ay isang espesyal na kaso ng convex programming, na kung saan ay isang espesyal na kaso ng mathematical programming. Kasabay nito, ito ang batayan ng ilang mga pamamaraan para sa paglutas ng mga problema sa integer at nonlinear programming. Ang isang generalization ng linear programming ay fractional linear programming.

Maraming mga katangian ng mga problema sa linear programming ay maaari ding bigyang-kahulugan bilang mga katangian ng polyhedra at kaya geometrically formulated at proven.

Kwento

Ang pamamaraan ng interior point ay unang binanggit ni I. I. Dikin noong 1967.

Mga gawain

Ang pangunahing (karaniwang) linear programming problema Diksyonaryo ng ekonomiya at matematika

sa ilalim ng mga kondisyon

, .

Ang problema sa linear programming ay magkakaroon ay tinatawag na problema sa paghahanap ng minimum ng isang linear na layunin ng function (linear form) ng form: , kung sa pangunahing problema sa halip na ang unang sistema ng hindi pagkakapantay-pantay mayroong isang sistema ng mga equation:

,

Ang pangunahing problema ay maaaring mabawasan sa canonical sa pamamagitan ng pagpapakilala ng mga karagdagang variable.

Ang mga problema sa linear programming sa pinaka-pangkalahatang anyo (mga problema na may magkahalong mga hadlang: mga pagkakapantay-pantay at hindi pagkakapantay-pantay, ang pagkakaroon ng mga variable na walang mga hadlang) ay maaaring bawasan sa mga katumbas (na may parehong hanay ng mga solusyon) sa pamamagitan ng pagpapalit ng mga variable at pagpapalit ng mga pagkakapantay-pantay ng isang pares ng hindi pagkakapantay-pantay.

Madaling makita na ang problema sa paghahanap ng maximum ay maaaring mapalitan ng gawain ng paghahanap ng minimum sa pamamagitan ng pagkuha ng mga coefficient na may kabaligtaran na tanda.

Mga sample na problema

Pinakamataas na pagtutugma

canonical view

Ipakilala natin ang mga variable na tumutugma sa pares ng -boy at ang -girl at matugunan ang mga paghihigpit:

na may layuning pag-andar. Maipapakita na kabilang sa pinakamainam na solusyon sa problemang ito ay mayroong isang integer. Ang mga variable na katumbas ng 1 ay tumutugma sa mga mag-asawang dapat ikasal.

Pinakamataas na daloy

Isaalang-alang ang maximum na problema sa pagtutugma sa isang bipartite graph: mayroong ilang mga lalaki at babae, at para sa bawat lalaki at babae ay alam kung sila ay kaakit-akit sa isa't isa. Kailangan nating pakasalan ang maximum na bilang ng mga mag-asawa na may simpatiya sa isa't isa.

Kunin natin bilang mga variable ang dami ng likidong dumadaloy sa tadyang. Pagkatapos

,

nasaan ang kapasidad ng gilid na iyon. Ang mga hindi pagkakapantay-pantay na ito ay dapat dagdagan ng pagkakapantay-pantay ng dami ng pumapasok at umaagos na likido para sa bawat vertex, maliban sa alisan ng tubig at pinagmulan. Bilang isang function, natural na kunin ang pagkakaiba sa pagitan ng dami ng lumalabas at pumapasok na likido sa pinagmulan.

Hayaang magkaroon ng isang graph (na may mga oriented na gilid) kung saan para sa bawat gilid ang kapasidad nito ay ipinahiwatig. At dalawang vertex ang ibinibigay: alisan ng tubig at pinagmulan. Kinakailangang ipahiwatig para sa bawat gilid kung gaano karaming likido ang dadaloy dito (hindi hihigit sa kapasidad nito) upang ma-maximize ang kabuuang daloy mula sa pinagmulan patungo sa alisan ng tubig (ang likido ay hindi maaaring lumitaw o mawala sa lahat ng mga vertices maliban sa alisan ng tubig at pinagmulan).

Ang mga problemang ito ay maaaring malutas nang mas mabilis kaysa sa mga pangkalahatang algorithm para sa paglutas ng mga problema sa linear programming, dahil sa espesyal na istraktura ng mga equation at hindi pagkakapantay-pantay.

Gawain sa transportasyon

Ang paglalahat ng nakaraang problema ay ang pinakamataas na daloy ng pinakamababang gastos. Sa problemang ito, ibinibigay ang mga gastos para sa bawat gilid at kailangan mong piliin ang daloy na may pinakamababang gastos sa mga pinakamataas na daloy. Ang problemang ito ay bumaba sa dalawang linear programming na problema: una kailangan mong lutasin ang problema ng maximum na daloy, at pagkatapos ay idagdag sa problemang ito ang pagpilit , kung saan ang halaga ng maximum na daloy, at lutasin ang problema sa isang bagong function - ang gastos ng daloy.

Ang mga mapagpasyang variable sa kasong ito ay ang dami ng kargamento na dinadala mula sa ika-warehouse patungo sa ika- planta. Natutugunan nila ang mga paghihigpit:

Ang layunin ng function ay may anyo: , na dapat i-minimize.

Zero sum game

May sukat na matrix. Ang unang manlalaro ay pipili ng numero mula 1 hanggang , ang pangalawa - mula 1 hanggang . Pagkatapos ay suriin nila ang mga numero at ang unang manlalaro ay makakakuha ng mga puntos, at ang pangalawang manlalaro ay makakakuha ng mga puntos (ang numero na pinili ng unang manlalaro ay makakakuha ng pangalawa). Kailangan nating hanapin ang pinakamainam na diskarte para sa unang manlalaro.

Ipagpalagay na sa isang pinakamainam na diskarte, halimbawa, ang unang manlalaro ay dapat pumili ng isang numero na may posibilidad . Kung gayon ang pinakamainam na diskarte ay isang solusyon sa sumusunod na problema sa linear programming:

, , (),

kung saan kailangang i-maximize ang function. Ang halaga sa pinakamainam na solusyon ay ang inaasahan ng kabayaran ng unang manlalaro sa pinakamasamang kaso.

Mga algorithm ng solusyon

Ang pinakatanyag at malawakang ginagamit sa pagsasanay para sa paglutas ng isang pangkalahatang linear programming (LP) na problema ay ang simplex na paraan. Sa kabila ng katotohanan na ang simplex na pamamaraan ay isang medyo epektibong algorithm na nagpakita ng magagandang resulta sa paglutas ng mga inilapat na problema sa LP, ito ay isang algorithm na may exponential complexity. Ang dahilan nito ay ang kombinatoryal na katangian ng simplex na pamamaraan, na sunud-sunod na binibilang ang mga vertices ng polyhedron ng mga magagawang solusyon kapag naghahanap ng pinakamainam na solusyon.

Ang unang polynomial algorithm, ang ellipsoid method, ay iminungkahi noong 1979 ng Soviet mathematician na si L. Khachiyan, kaya nilulutas ang isang problema na nanatiling hindi nalutas sa mahabang panahon. Ang pamamaraang ellipsoid ay may ganap na kakaiba, hindi kombinatoryal na katangian kaysa sa simplex na pamamaraan. Gayunpaman, mula sa isang computational point of view, ang pamamaraang ito ay naging hindi maaasahan. Gayunpaman, ang mismong katotohanan ng polynomial complexity ng mga problema ay humantong sa paglikha ng isang buong klase ng epektibong LP algorithm - mga pamamaraan ng panloob na punto, ang una ay ang algorithm ni N. Karmarkar na iminungkahi noong 1984. Gumagamit ang mga algorithm ng ganitong uri ng tuluy-tuloy na interpretasyon ng problema sa LP, kapag, sa halip na isa-isahin ang mga vertices ng polyhedron para sa mga solusyon sa problema sa LP, ang isang paghahanap ay isinasagawa kasama ang mga trajectory sa espasyo ng mga variable ng problema na hindi dumadaan sa mga vertices ng polyhedron. Ang paraan ng panloob na punto, na, hindi katulad ng simplex na pamamaraan, ay bumabagtas sa mga punto mula sa loob ng magagawang rehiyon, ay gumagamit ng log-barrier na nonlinear na mga pamamaraan ng programming na binuo noong 1960s nina Fiacco at McCormick.

Tingnan din

  • Graphical na paraan para sa paglutas ng isang linear programming problem

Mga Tala

Panitikan

  • Thomas H. Corman et al. Kabanata 29. Linear programming // Algorithms: construction and analysis = INTRODUKSYON SA ALGORITHMS. - 2nd ed. - M.: “Williams”, 2006. - P. 1296. - ISBN 5-8459-0857-4
  • Akulich I.L. Kabanata 1. Mga problema sa linear programming, Kabanata 2. Espesyal na mga problema sa linear programming // Mathematical programming sa mga halimbawa at problema. - M.: Higher School, 1986. - 319 p. - ISBN 5-06-002663-9
  • Karmanov V. G. Pagprograma ng matematika. - ika-3 edisyon. - M.: Nauka, 1986. - 288 p.
  • Danzig George Bernard "Mga Alaala ng Simula ng Linear Programming"

Mga link

  • - Libreng optimization package na idinisenyo upang malutas ang mga problema sa linear, integer at layunin sa programming.
  • Vershik A. M. "Tungkol sa L. V. Kantorovich at linear programming"
  • Bolshakova I. V., Kuralenko M. V. "Linear programming. Pang-edukasyon at metodolohikal na manwal para sa pagsusulit."
  • Barsov A. S. "Ano ang linear programming", Mga sikat na lektura sa matematika, Gostekhizdat, 1959.
  • M. N. Vyalyi Mga linear na hindi pagkakapantay-pantay at combinatorics. - MCNMO, 2003.

Wikimedia Foundation.

  • 2010.
  • Salten, Felix

Glagow, Martina

    Tingnan kung ano ang "Linear programming" sa iba pang mga diksyunaryo:- - linear programming Isang lugar ng matematikal na programming na nakatuon sa teorya at pamamaraan ng paglutas ng mga matinding problema na nailalarawan sa pamamagitan ng isang linear na relasyon sa pagitan ng ... ... sa pagitan ng……

    Linear programming

    Linear programming Gabay sa Teknikal na Tagasalin - isang larangan ng mathematical programming na nakatuon sa teorya at mga pamamaraan ng paglutas ng mga matinding problema na nailalarawan sa pamamagitan ng isang linear na relasyon sa pagitan ng mga variable. Sa pinaka-pangkalahatang anyo nito, ang problema ng L.p. maaaring isulat ng ganito. Dana......

Ang linear programming ay isa sa pinaka makabuluhang mga seksyon matematika, kung saan pinag-aaralan ang teoretikal at metodolohikal na pundasyon para sa paglutas ng ilang problema. Ang disiplinang ito sa matematika ay malawakang ginagamit sa mga nakaraang taon sa iba't ibang larangang pang-ekonomiya at teknikal, kung saan hindi gaanong papel ang ibinibigay sa pagpaplano at paggamit ng matematika mga awtomatikong sistema mga kalkulasyon. Ang sangay ng agham na ito ay nakatuon sa pag-aaral ng mga linear optimization na modelo. Ibig sabihin, ang linear programming ay tungkol sa mga numero. Sa unang pagkakataon ang terminong ito ay iminungkahi ni T. Koopmans noong 1951. Pinakamainam na plano bawat isa linear na programa kailangang awtomatikong ma-link sa pinakamainam na antas mga presyo, iyon ay, na may layuning natukoy na mga pagtatasa.

Linear programming: mga pamamaraan

Gamit ang pamamaraan, posible na malutas ang isang malaking bilang ng mga matinding problema na may kaugnayan sa ekonomiya. Sa kasong ito, kadalasan ay kinakailangan upang mahanap ang matinding mga halaga ng ilang mga pag-andar ng isang variable na halaga. Ang solusyon sa isang sistema ng mga nababagong equation at hindi pagkakapantay-pantay ay ipinahayag bilang batayan ng linear programming. Ang ganitong uri Ang programming ay nailalarawan sa pamamagitan ng isang mathematical formulation ng mga variable, isang sequence at isang tiyak na pagkakasunud-sunod ng mga kalkulasyon, pati na rin ang lohikal na pagsusuri. Nalalapat ito:

Kung may katiyakan sa matematika at quantitative na limitasyon sa pagitan ng mga salik na pinag-aaralan at variable na dami;

Kung mayroong pagpapalitan ng mga kadahilanan dahil sa pagkakasunud-sunod ng mga kalkulasyon;

Kung ang lohika ng matematika ay pinagsama sa isang pag-unawa sa kakanyahan ng mga phenomena na pinag-aaralan.

Ang linear programming ay tumutulong upang makalkula ang pinakamainam na pagganap ng lahat ng mga makina, mga linya ng produksyon, mga yunit, pati na rin ang paglutas ng mga problema sa makatwirang paggamit ng mga magagamit na materyales.

Sa agrikultura gamit ang pamamaraang ito Ang pinakamababang halaga ng rasyon ng pagpapakain ay tinutukoy na isinasaalang-alang ang magagamit na dami ng feed. Isinasaalang-alang nito ang mga uri at nilalaman ng ilang mga kapaki-pakinabang na sangkap sa kanila.

Sa pandayan pamamaraang ito nagbibigay-daan sa iyo na makahanap ng solusyon problema sa transportasyon at mga problema tungkol sa mga mixture na bahagi ng metalurgical charge. Ang kakanyahan ng problema sa transportasyon sa kasong ito ay nagpapahiwatig ng pinakamainam na attachment ng pagkonsumo ng mga negosyo sa mga negosyo na nakikibahagi sa produksyon.

Linear programming: mga problema

Natatanging tampok lahat mga gawaing pang-ekonomiya, na nalutas gamit ang mga linear programming techniques, ang pagpipilian ilang mga opsyon mga solusyon, pati na rin ang mga kundisyon na naglilimita. Sa pamamagitan ng paglutas ng naturang problema, posible na makahanap ng pinakamainam na solusyon mula sa lahat mga alternatibong opsyon.

Ang isang makabuluhang halaga ng paggamit ng mga linear programming techniques sa ekonomiya ay ang pagpili ng pinakamainam na opsyon mula sa malaking dami lahat ng mga opsyon na itinuturing na katanggap-tanggap. Ang mga ganitong problema ay halos imposibleng malutas sa ibang mga paraan, dahil pinapayagan lamang nila ang isa na mahanap ang antas ng pagiging makatwiran ng aplikasyon Gamit ang linear programming, tulad ng isang pangunahing problema habang ang transportasyon ay nalutas, na dapat mabawasan ang paglilipat ng kargamento ng mga kalakal sa panahon ng kanilang paghahatid. mula sa tagagawa.

Linear Programming sa Excel

Sa proseso ng paglutas ng mga naturang problema, kailangan munang lumikha ng isang modelo, na nagpapahiwatig ng pagbabalangkas ng mga kondisyon sa wikang matematikal. Pagkatapos ng yugtong ito, makakahanap ng solusyon sa pamamagitan ng graphic na pamamaraan. Para sa layuning ito sa Excel program umiiral espesyal na function"Paghanap ng solusyon."

Tulad ng malinaw na mula sa itaas, ang linear programming ay may napakalawak na saklaw ng aplikasyon.

15. Analytical na pamamaraan. Mga pamamaraan ng linear programming.

15.1. Mga pamamaraan ng pagsusuri

Sa kabuuan ng kanyang buong ebolusyon, ang tao, kapag nagsasagawa ng ilang mga aksyon, ay naghangad na kumilos sa paraang ang resulta na nakamit bilang resulta ng ilang aksyon ay naging, sa isang tiyak na kahulugan, ang pinakamahusay. Sa paglipat mula sa isang punto patungo sa isa pa, hinanap niya ang pinakamaikling posibleng landas. Kapag nagtatayo ng tirahan, naghanap siya ng geometry na, na may pinakamababang pagkonsumo ng gasolina, ay magbibigay ng katanggap-tanggap komportableng kondisyon pag-iral. Habang gumagawa ng mga barko, sinubukan niyang bigyan sila ng hugis kung saan ang tubig ay mag-aalok ng pinakamababang pagtutol. Ang listahan ng mga katulad na halimbawa ay madaling ipagpatuloy.

Ang pinakamahusay na solusyon sa mga problema sa isang tiyak na kahulugan ay karaniwang tinatawag pinakamainam. Sa kasalukuyan, walang problemang malulutas nang walang paggamit ng mga prinsipyo sa pag-optimize. kumplikadong problema. Kapag nagtatakda at nilulutas ang mga problema sa pag-optimize, dalawang tanong ang lumitaw: ano at paano mag-optimize?

Ang sagot sa unang tanong ay nakuha bilang resulta ng isang malalim na pag-aaral ng problemang lutasin. Ang parameter na tumutukoy sa antas ng pagiging perpekto ng solusyon sa problemang lumitaw ay natukoy. Ang parameter na ito ay karaniwang tinatawag target na function o pamantayan ng kalidad. Susunod, ang isang hanay ng mga dami ay itinatag na tumutukoy sa layunin ng pag-andar. Sa wakas, ang lahat ng mga hadlang na dapat isaalang-alang sa paglutas ng problema ay nabuo. Pagkatapos nito, ang isang modelo ng matematika ay itinayo, na binubuo sa pagtatatag ng analytical dependence ng layunin ng function sa lahat ng mga argumento at ang analytical formulation ng mga hadlang na nauugnay sa problema. Susunod, nagsisimula kaming maghanap ng sagot sa pangalawang tanong.

Kaya, hayaan, bilang isang resulta ng pormalisasyon ng inilapat na problema, itinatag na ang layunin ng pag-andar ay , kung saan ang set X ay isang pangkalahatan ng mga paghihigpit, ito ay tinatawag na hanay ng mga magagawang solusyon. Ang kakanyahan ng problema sa pag-optimize ay ang paghahanap sa set X - ang hanay ng mga magagawang solusyon para sa naturang solusyon
, kung saan ang target na function f umabot sa pinakamababa o pinakamataas na halaga nito.

Ang isang mahalagang bahagi ng mga pamamaraan ng pag-optimize ay linear programming.

15.2. Mga pangunahing konsepto ng linear programming

Ang unang pagbanggit (1938) ng mga pamamaraan sa matematika sa epektibong pamamahala ng produksyon ay kabilang sa matematikong Sobyet na si L. V. Kantorovich. Pagkalipas ng isang taon, noong 1939, inilathala ni L. V. Kantorovich ang akdang "Mga pamamaraan sa matematika ng pag-aayos at pagpaplano ng produksyon" at praktikal na inilapat ang mga resulta na nakuha. Ang terminong "linear programming" ay ipinakilala ng mga Amerikanong mathematician na sina J. Danzig at T. Koopmans noong huling bahagi ng 40s. Binuo ni J. Dantzig ang mathematical apparatus ng simplex method para sa paglutas ng mga problema sa linear programming (1951). Simplex na pamamaraan ay ginagamit upang malutas ang isang malawak na hanay ng mga problema sa linear programming at isa pa rin sa mga pangunahing pamamaraan.

Ang linear programming ay isang sangay ng matematika na nakatuon sa paghahanap ng extremum (maximum o minimum) sa mga problema na inilalarawan mga linear na equation. Bukod dito, ang mga linear na equation ay naglalarawan ng parehong layunin ng pag-andar mismo at ang mga parameter ng input (mga variable) ng mga kondisyon ng mga paghihigpit sa mga parameter ng input. Ang isang kinakailangang kondisyon para sa mga problema sa linear programming ay ang ipinag-uutos na pagkakaroon ng mga paghihigpit sa mga mapagkukunan (mga hilaw na materyales, materyales, pananalapi, demand para sa mga produktong gawa, atbp.). Sa iba isang mahalagang kondisyon Ang paglutas ng problema ay ang pagpili ng criterion sa pagtigil para sa algorithm, ibig sabihin, ang layunin ng function ay dapat na pinakamainam sa ilang kahulugan. Ang pinakamainam ng layunin na pag-andar ay dapat na ipahayag sa dami. Kung ang target na function ay kinakatawan ng isa o dalawang equation, kung gayon sa pagsasanay ang mga naturang problema ay madaling malutas. Ang pamantayan sa paghinto ng algorithm (o pamantayan ng pinakamainam) ay dapat matugunan ang mga sumusunod na kinakailangan:

    maging isa lamang para sa isang naibigay na gawain;

    sinusukat sa mga yunit ng dami;

    linearly depende sa input parameters.

Batay sa itaas, maaari nating bumalangkas ang linear programming problem sa pangkalahatang anyo:

hanapin ang extremum ng layunin function

sa ilalim ng mga paghihigpit sa anyo ng mga pagkakapantay-pantay:

(2.2)

sa ilalim ng mga paghihigpit sa anyo ng mga hindi pagkakapantay-pantay:

(2.3)

at mga kondisyon ng hindi negatibong mga parameter ng input:

Sa maikling anyo, ang problema sa linear programming ay maaaring isulat tulad ng sumusunod:

(2.5)

ibinigay na

saan
- mga variable ng input;

Ang mga numero ay positibo, negatibo at katumbas ng zero.

Sa anyo ng matrix, ang problemang ito ay maaaring isulat bilang mga sumusunod:

Ang mga problema sa linear programming ay maaaring malutas sa analytically at graphically.

15.3. Problema sa Canonical linear programming

, i=1,…,m,

, j=1,…,n.

Ang mga pangunahing pamamaraan ng computational para sa paglutas ng mga problema sa linear programming ay partikular na binuo para sa canonical na problema.

15.4. Pangkalahatang problema sa linear programming

Ito ay kinakailangan upang i-maximize (i-minimize) ang isang linear function ng n mga variable.

sa ilalim ng mga paghihigpit

, i=1,…, k,

, i=1+ k,…, m,

, …,

Dito km, rn. Ang karaniwang problema ay nakuha bilang isang espesyal na kaso ng pangkalahatan na may k= m, r= n; kanonikal – sa k=0, r= n.

Halimbawa.

Ang pabrika ng confectionery ay gumagawa ng ilang uri ng matamis. Tawagin natin silang "A", "B" at "C". Alam na ang pagbebenta ng sampung kilo ng matamis na "A" ay nagbibigay ng kita na 90 rubles, "B" - 100 rubles at "C" - 160 rubles. Maaaring gawin ang kendi sa anumang dami (garantisado ang mga benta), ngunit limitado ang mga supply ng hilaw na materyales. Ito ay kinakailangan upang matukoy kung anong uri ng mga matamis at kung gaano karaming sampu ng kilo ang kailangang gawin upang ang kabuuang kita mula sa mga benta ay mapakinabangan. Ang mga rate ng pagkonsumo ng mga hilaw na materyales para sa paggawa ng 10 kg ng matamis ng bawat uri ay ibinibigay sa Talahanayan 1.

Talahanayan 1. Mga rate ng pagkonsumo ng hilaw na materyal

para sa produksyon

Ang pang-ekonomiya at matematikal na pagbabalangkas ng problema ay may anyo

Maghanap ng mga naturang variable na halaga X=(x1, x2, x3), sa

layunin function

sa ilalim ng mga kundisyon-paghihigpit: