Simplex na paraan para sa paghahanap ng pinakamainam na solusyon. Simplex na paraan, mga halimbawa ng paglutas ng problema

Para sa paggawa ng tatlong uri ng mga kamiseta, ginagamit ang mga thread, mga pindutan at tela. Ang mga stock ng mga thread, mga butones at tela, ang kanilang mga rate ng pagkonsumo para sa pananahi ng isang kamiseta ay ipinapakita sa talahanayan. Hanapin ang pinakamataas na kita at ang pinakamainam na plano sa pagpapalabas ng produkto na nagsisiguro nito (hanapin).

kamiseta 1 kamiseta 2 kamiseta 3 Mga stock thread (m) 1 9 3 96 mga pindutan (mga pcs.) 20 10 30 640 ang tela ( 1 2 2 44 Kita (p.) 2 5 4

Ang solusyon sa problema

Pagbuo ng modelo

Sa pamamagitan ng at ang bilang ng mga kamiseta ng ika-1, ika-2 at ika-3 uri, na nilayon para ilabas.

Pagkatapos ang mga limitasyon ng mapagkukunan ay magiging tulad ng sumusunod:

Bilang karagdagan, sa loob ng kahulugan ng problema

Layunin function na nagpapahayag ng nakuha na kita:

Nakukuha namin ang sumusunod na problema sa linear programming:

Pagbabawas ng problema sa linear programming sa canonical form

Dalhin natin ang problema sa isang canonical form. Ipakilala natin ang mga karagdagang variable. Ipinakilala namin ang lahat ng karagdagang mga variable sa layunin ng function na may isang koepisyent na katumbas ng zero. Nagdaragdag kami ng mga karagdagang variable sa kaliwang bahagi ng mga hadlang na walang gustong anyo, at nakakakuha kami ng mga pagkakapantay-pantay.

Paglutas ng problema gamit ang simplex method

Pinupuno namin ang simplex table:

Dahil nalutas namin ang pinakamataas na problema, ang pagkakaroon ng mga negatibong numero sa hilera ng index kapag nilulutas ang pinakamataas na problema ay nagpapahiwatig na hindi namin nakuha ang pinakamainam na solusyon at na kinakailangan na pumunta mula sa talahanayan ng ika-0 na pag-ulit hanggang sa susunod.

Ang paglipat sa susunod na pag-ulit ay isinasagawa tulad ng sumusunod:

nangungunang mga tugma ng hanay

Ang pangunahing hilera ay tinutukoy ng pinakamababang ratio ng mga libreng miyembro at miyembro ng nangungunang hanay (mga relasyon ng simplex):

Sa intersection ng key column at key row, nakita namin ang elemento ng paglutas, i.e. 9.

Ngayon ay sisimulan na namin ang pagguhit ng 1st iteration: Sa halip na isang unit vector, naglalagay kami ng vector.

Sa bagong talahanayan, bilang kapalit ng elemento ng paglutas, isinulat namin ang 1, ang lahat ng iba pang elemento ng key column ay naka-zero. Ang mga elemento ng pangunahing linya ay nahahati sa elementong nagpapahintulot. Ang lahat ng iba pang elemento ng talahanayan ay kinakalkula ayon sa panuntunan ng parihaba.

Key column para sa 1st iteration na mga tugma

Ang mga permissive na elemento ay ang bilang na 4/3. Ang vector ay deduced mula sa batayan at ang vector ay ipinakilala sa halip. Nakukuha namin ang talahanayan ng 2nd iteration.

Key column para sa 2nd iteration na mga tugma

Nahanap namin ang key string, para dito tinukoy namin:

Ang elemento ng paglutas ay ang numerong 10/3. Ang vector ay deduced mula sa batayan at ang vector ay ipinakilala sa halip. Nakukuha namin ang talahanayan ng ika-3 pag-ulit.

BP c b A o x 1 x 2 x 3 x 4 x 5 x 6 Simplex 2 5 4 0 0 0 relasyon 0 x 4 0 96 1 9 3 1 0 0 32/3 x 5 0 640 20 10 30 0 1 0 64 x 6 0 44 1 2 2 0 0 1 22 F j - c j 0 -2 -5 -4 0 0 0 1 x 2 5 32/3 1/9 1 1/3 1/9 0 0 32 x 5 0 1600/3 170/9 0 80/3 -10/9 1 0 20 x 6 0 68/3 7/9 0 4/3 -2/9 0 1 17 F j - c j 160/3 -13/9 0 -7/3 5/9 0 0 2 x 2 5 5 -1/12 1 0 1/6 0 -1/4 -- x 5 0 80 10/3 0 0 10/3 1 -20 24 x 3 4 17 7/12 0 1 -1/6 0 3/4 204/7 F j - c j 93 -1/12 0 0 1/6 0 7/4 3 x 2 5 7 0 1 0 1/4 1/40 -3/4 x 1 2 24 1 0 0 1 3/10 -6 x 3 4 3 0 0 1 -3/4 -7/40 17/4 F j - c j 95 0 0 0 1/4 1/40 5/4

Ang lahat ng mga termino sa hilera ng index ay hindi negatibo, kaya ang sumusunod na solusyon sa problema sa linear programming ay nakuha (isinulat namin ito mula sa hanay ng mga libreng termino):

Kinakailangang magtahi ng 24 type 1 shirts, 7 type 2 shirts at 3 type 3 shirts. Sa kasong ito, ang resultang kita ay magiging maximum at halagang 95 rubles.

Simplex na pamamaraan ay isang paraan ng sunud-sunod na paglipat mula sa isang pangunahing solusyon (ang tuktok ng polyhedron ng mga solusyon) sa sistema ng mga hadlang ng problema linear programming sa isa pang pangunahing solusyon hanggang makuha ng function ng layunin ang pinakamainam na halaga (maximum o minimum).

Ang simplex na paraan ay isang unibersal na pamamaraan na maaaring malutas ang anuman problema sa linear programming, habang ang graphical na paraan ay angkop lamang para sa isang sistema ng mga hadlang na may dalawang variable.

Ang simplex method ay iminungkahi ng American mathematician na si R. Danzig noong 1947; mula noon, para sa mga pangangailangan ng industriya, ang paraang ito ay madalas na ginagamit upang malutas ang mga problema sa linear programming na may libu-libong variable at mga hadlang.

Bago lumipat sa simplex method algorithm, ilang mga kahulugan.

Anumang di-negatibong solusyon sa isang sistema ng mga hadlang ay tinatawag katanggap-tanggap na desisyon .

Magkaroon ng sistema m mga paghihigpit sa n mga variable ( m n).

Katanggap-tanggap na pangunahing solusyon ay isang solusyon na naglalaman ng m hindi negatibo major (basic ) mga variable at n - m hindi core ... (hindi basic, o libre ) mga variable. Ang mga menor de edad na variable sa pangunahing solusyon ay katumbas ng zero, habang ang mga pangunahing variable, bilang panuntunan, ay nonzero, iyon ay, ang mga ito ay mga positibong numero.

Anuman m mga variable ng system m linear equation na may n mga variable ay tinatawag pangunahing kung ang determinant ng mga coefficient sa kanila ay nonzero. Tapos yung iba n - m mga variable ay tinatawag hindi mainstream (o libre ).

Simplex method algorithm

  • Hakbang 1... Bawasan ang linear programming problem sa canonical form. Upang gawin ito, ilipat ang mga libreng termino sa kanang bahagi (kung kabilang sa mga libreng terminong ito ay negatibo, pagkatapos ay i-multiply ang katumbas na equation o hindi pagkakapantay-pantay sa - 1) at ipasok ang mga karagdagang variable sa bawat hadlang (na may plus sign kung nasa orihinal hindi pagkakapantay-pantay ang sign ay mas mababa sa o katumbas ng ", at may minus sign kung" mas malaki sa o katumbas ").
  • Hakbang 2... Kung sa natanggap na sistema m mga equation, kung gayon m kunin ang mga variable bilang pangunahing, ipahayag ang mga pangunahing variable sa mga tuntunin ng mga di-basic at hanapin ang kaukulang pangunahing solusyon. Kung ang nahanap na pangunahing solusyon ay lumabas na tinatanggap, pumunta sa isang tinatanggap na pangunahing solusyon.
  • Hakbang 3... Ipahayag ang function ng layunin sa mga tuntunin ng mga hindi pangunahing variable ng tinatanggap na pangunahing solusyon. Kung ang maximum (minimum) ng linear form ay hinahangad at walang mga menor de edad na variable na may negatibong (positibong) coefficient sa pagpapahayag nito, kung gayon ang pinakamainam na pamantayan ay natutupad at ang nakuha na pangunahing solusyon ay pinakamainam - ang solusyon ay tapos na. Kung, kapag hinahanap ang maximum (minimum) ng linear form, ang expression nito ay naglalaman ng isa o higit pang mga menor de edad na variable na may negatibong (positibong) coefficient, pumunta sa isang bagong pangunahing solusyon.
  • Hakbang 4... Sa mga menor de edad na variable na kasama sa linear na anyo na may mga negatibong (positibong) koepisyent, ang isa na tumutugma sa pinakamalaking (sa ganap na halaga) na koepisyent ay pinili at iko-convert sa mga pangunahing. Pumunta sa hakbang 2.

Mahalagang kondisyon

Ang ilang mga espesyal na kaso ay tinalakay sa magkahiwalay na mga artikulo: kung kailan ang maximum ng layunin ng function ay infinity, kailan walang solusyon ang sistema, At kailan ang pinakamainam na solusyon ay hindi lamang isa .

Susunod, suriin natin ang isang tipikal na halimbawa, kapag ang sistema ng mga hadlang ay magkasanib at mayroong panghuling pinakamabuting kalagayan, at ang isa lamang. Ang isang pagkakaiba-iba ng simplex na pamamaraan ay paraan ng pamamahagi para sa paglutas ng problema sa transportasyon .

Simplex na paraan na may simplex na mga talahanayan

Mas madaling lutasin ang problema sa linear programming sa pamamagitan ng pagbuo ng mga simplex table kaysa sa paggamit ng algebraic transformations, na ipinapakita sa susunod na seksyon. Ang mga simplex na talahanayan ay napaka-naglalarawan. Mayroong ilang mga uri ng mga panuntunan para sa pagtatrabaho sa mga simplex na talahanayan. Titingnan natin kung ano ang pinakakaraniwang tinatawag na Leading Column at Leading Row Rule.

Hindi magiging kalabisan na buksan ang manu-manong Mga Pagkilos na may mga praksyon sa isang bagong window: mayroong sapat sa kanila, mga praksyon sa mga problema sa paraan ng simplex, upang ilagay ito nang mahinahon,.

Halimbawa.

Ipinakilala namin ang mga karagdagang di-negatibong variable at binabawasan ang sistemang ito ng mga hindi pagkakapantay-pantay sa isang katumbas na sistema ng mga equation

.

Ginawa ito bilang pagsunod sa sumusunod na panuntunan: kung sa orihinal na pagpilit ang sign ay "mas mababa sa o katumbas", dapat idagdag ang karagdagang variable, at kung "mas malaki o katumbas", dapat ibawas ang karagdagang variable.

Ang mga ipinakilalang karagdagang mga variable ay kinuha bilang pangunahing (basic). Pagkatapos at ay mga di-basic (libre) na mga variable.

Ang pagpapahayag ng pangunahing (basic) na mga variable sa mga tuntunin ng mga di-basic (libre) na mga variable, nakukuha namin

Maaari din naming ipahayag ang layunin ng function sa mga tuntunin ng mga di-basic (libre) na mga variable:

Mula sa mga coefficient ng mga variable (hindi alam), binubuo namin ang unang simplex table.

Talahanayan 1
Mga pangunahing hindi alam Libreng mga miyembroLibreng hindi alam Mga pantulong na coefficient
X1X2
X3-2 1 -2
X4-4 -1 -1
X52 1 -1
X66 0 1
F0 -1 -2

Ang huling row ng talahanayan, na naglalaman ng layunin ng function at ang mga coefficient ng mga libreng variable sa loob nito, ay tatawaging index row.

Ang nakuhang solusyon ay hindi pinakamainam, dahil ang mga koepisyent ng mga libreng variable sa hilera ng index ay negatibo. Iyon ay, ang pinakamainam na solusyon ay ang isa kung saan ang mga coefficient ng mga libreng variable sa linya ng index ay mas malaki kaysa sa o katumbas ng zero.

Upang pumunta sa susunod na talahanayan, makikita natin ang pinakamalaking (modulo) ng mga numero at. Ito ang numero 2. Samakatuwid, ang nangungunang hanay ay ang hanay kung saan ito nakasulat

Upang matukoy ang nangungunang hilera, nakita namin ang pinakamaliit na ratio ng mga libreng miyembro sa mga elemento ng nangungunang column, at kung ang numerator ay may positibong numero, at ang denominator ay negatibo, ang ratio ay itinuturing na katumbas ng infinity.

.

Samakatuwid, ang nangungunang linya ay ang isa kung saan ito nakasulat

Ang nangungunang elemento ay kaya -2.

Lumikha ng pangalawang simplex na talahanayan.

Ipinasok namin ang bagong pangunahing elemento sa unang hilera, at ang haligi kung saan ito nakatayo, nagpasok kami ng isang bagong libreng variable

Pinupuno namin ang unang linya. Upang gawin ito, hinahati namin ang lahat ng mga numero sa nangungunang hilera ng Talahanayan 1 sa pamamagitan ng pivot at isulat ang mga ito sa kaukulang hanay ng unang hilera ng Talahanayan 2, maliban sa numero sa nangungunang hanay, kung saan ang kabaligtaran ng pivot ay nakasulat (iyon ay, ang yunit na hinati sa nangungunang elemento).

Pinupuno namin ang hanay ng mga auxiliary coefficient. Para sa numerong ito ng nangungunang column ng talahanayan 1, bilang karagdagan sa nangungunang elemento, sumusulat kami nang may kabaligtaran na mga palatandaan sa column ng mga auxiliary coefficient ng talahanayan 2.

talahanayan 2
Mga pangunahing hindi alam Libreng mga miyembroLibreng hindi alam Mga pantulong na coefficient
X1X3
X21 -1/2 -1/2
X4-3 -3/2 -1/2 1
X53 1/2 -1/2 1
X65 1/2 1/2 -1
F2 -2 -1 2

Ang mga hindi pa nagbubukas ng Operations with fractions manual sa isang bagong window ay maaaring gawin ito ngayon, dahil ang oras ay tama.

Upang makuha ang natitirang mga hilera ng Talahanayan 2, ang mga numero na nasa unang hilera ng talahanayang ito ay pinarami ng auxiliary coefficient sa hilera na pupunan, at sa resulta ay idinagdag namin ang numero mula sa Talahanayan 1, na nasa parehong hilera. na may kaukulang baryabol.

Halimbawa, upang makuha ang libreng termino ng pangalawang hilera, i-multiply namin ang numero 1 sa 1 at idagdag ang numero -4 mula sa talahanayan 1. Nakukuha namin -3. Ang koepisyent sa sa pangalawang linya ay matatagpuan sa parehong paraan: ... Dahil ang nakaraang talahanayan ay walang column na may bagong free variable, ang coefficient ng pangalawang row sa column ng bagong free variable ay magiging (iyon ay, mula sa talahanayan 1 nagdaragdag kami ng 0, dahil walang column c sa talahanayan 1).

Ang linya ng index ay napunan din sa:

Ang solusyon na nakuha sa ganitong paraan ay muling hindi optimal, dahil sa hilera ng index ang mga koepisyent ng mga libreng variable ay muling negatibo.

Upang pumunta sa susunod na talahanayan ng simplex, makikita natin ang pinakamalaking (modulo) ng mga numero at, iyon ay, ang moduli ng mga coefficient sa hilera ng index. Ito ang numero 2. Samakatuwid, ang nangungunang hanay ay ang hanay kung saan ito nakasulat.

Upang hanapin ang nangungunang hilera, makikita namin ang pinakamababang kaugnayan ng mga libreng miyembro sa mga elemento ng nangungunang hilera. Nakukuha namin:

.

Samakatuwid, ang nangungunang linya ay ang isa kung saan ito nakasulat, at ang nangungunang elemento ay -3/2.

Paggawa ng ikatlong simplex table

Ang bagong pangunahing variable ay nakasulat sa unang linya. Sa column kung nasaan ito, nagpasok kami ng bagong libreng variable.

Unang linya:

Mga pantulong na coefficient:

Talahanayan 3
Mga pangunahing hindi alam Libreng mga miyembroLibreng hindi alam Mga pantulong na coefficient
X4X3
X12 -2/3 1/3
X22 -1/3 -1/3 1/2
X52 1/3 -2/3 -1/2
X64 1/3 1/3 -1/2
F6 -4/3 -1/3 2

Ang nakuhang solusyon ay muling hindi pinakamainam, dahil ang mga koepisyent ng mga libreng hindi alam sa hilera ng index ay muling negatibo.

Upang pumunta sa ikaapat na talahanayan ng simplex, makikita natin ang pinakamalaki sa mga numero at. Ito ang numero.

Samakatuwid, ang nangungunang hanay ay ang isa kung saan ito nakasulat.

Ang pinakamababang mga module ng mga relasyon ng mga libreng miyembro sa mga elemento ng nangungunang hanay:

.

Samakatuwid, ang nangungunang linya ay ang isa kung saan ito nakasulat, at ang nangungunang elemento ay 1/3.

Sa ikaapat na talahanayan ng simplex, isulat ang bagong pangunahing variable sa unang hilera. Sa column kung nasaan ito, nagsusulat kami ng bagong libreng variable.

Unang linya:

Mga pantulong na coefficient:

Talahanayan 4
Mga pangunahing hindi alam Libreng mga miyembroLibreng hindi alam Mga pantulong na coefficient
X5X3
X46 3 -2
X16 2 -1 2/3
X24 1 -1 1/3
X62 -1 1 -1/3
F14 4 -3 4/3

Pagkalkula ng natitirang mga linya gamit ang halimbawa ng pangalawang linya:

Ang nakuha na solusyon ay hindi rin optimal, ngunit ito ay mas mahusay kaysa sa mga nauna, dahil ang isa sa mga coefficient ng mga libreng variable sa index row ay nonnegative.

Upang mapabuti ang plano, lumipat tayo sa susunod na talahanayan ng simplex.

Hanapin natin ang pinakamalaki sa mga bilang na 4 at. Ito ang numero 4. Samakatuwid, ang nangungunang hanay.

Upang mahanap ang nangungunang linya, hanapin

.

Samakatuwid, ang nangungunang linya ay ang isa kung saan ito nakasulat. Ngunit magkasama na sila sa mga libreng variable. Samakatuwid, upang ilipat ang susunod na variable mula sa libre patungo sa basic, pumili kami ng isa pang nangungunang column - ang isa kung saan ito nakasulat.

Upang mahanap ang nangungunang linya, hanapin

.

Samakatuwid, ang pangunahing linya ay ang isa kung saan ito nakasulat, at ang nangungunang elemento ay 1.

Sa fifth simplex table, isinusulat namin ang bagong basic variable sa unang row. Sa column kung nasaan ito, nagsusulat kami ng bagong libreng variable.

Unang linya:

Mga pantulong na coefficient:

Talahanayan 5
Mga pangunahing hindi alam Libreng mga miyembroLibreng hindi alam Mga pantulong na coefficient
X5X6
X32 -1 1
X410 2
X18 1
X26 1
F20 1 3 3

Subukan nating agad na malaman kung ang solusyon ay hindi optimal. Samakatuwid, para sa natitirang mga hilera, kinakalkula lamang namin ang mga libreng termino (upang malaman ang mga halaga ng mga pangunahing variable kapag ang mga libreng variable ay katumbas ng zero) at ang mga coefficient ng mga libreng variable sa hilera ng index.

Libreng miyembro:

Sa pangalawang linya;

Sa ikatlong linya;

Sa ikaapat na linya.

Index string:

Tinitingnan namin ang simplex table 5. Nakita namin na ang pinakamainam na solusyon ay nakuha, dahil ang mga coefficient ng mga libreng hindi alam sa index row ay hindi negatibo.

Simplex na paraan na may algebraic transformations

Lutasin natin sa pamamagitan ng algebraic transformations ang parehong halimbawa tulad ng sa nakaraang seksyon. Dapat pansinin na kapag nilulutas ang ganitong uri ng simplex na pamamaraan, mas mainam na huwag isulat ang function ng layunin sa form , dahil madaling malito sa mga palatandaan. Ngunit sa kasong ito, ang punto ng algorithm na tumutukoy sa criterion ng optimality ay mababago tulad ng sumusunod.

Kung ang maximum (minimum) ng linear form ay hinahangad at walang mga menor de edad na variable na may positibong (negatibong) coefficients sa pagpapahayag nito, kung gayon ang pinakamainam na pamantayan ay natutupad at ang nakuha na pangunahing solusyon ay pinakamainam - ang solusyon ay tapos na. Kung, kapag hinahanap ang maximum (minimum) ng linear form, ang expression nito ay naglalaman ng isa o higit pang mga menor de edad na variable na may positibong (negatibong) coefficient, pumunta sa isang bagong pangunahing solusyon.

Halimbawa. Hanapin ang maximum ng isang function sa ilalim ng mga hadlang

Hakbang I. Ipakilala ang mga karagdagang di-negatibong variable at bawasan ang sistemang ito ng mga hindi pagkakapantay-pantay sa isang katumbas na sistema ng mga equation

.

Ang mga ipinakilala na karagdagang mga variable ay kinuha bilang mga pangunahing, dahil sa kasong ito ang pangunahing solusyon ng system ay madaling mahanap. Pagkatapos at ay menor de edad variable.

Ang pagpapahayag ng mga pangunahing variable sa mga tuntunin ng mga hindi pangunahing, nakukuha namin

Dahil dito, ang ibinigay na partisyon ng mga variable sa basic at non-basic ay tumutugma sa pangunahing solusyon na hindi wasto (dalawang variable ang negatibo) at samakatuwid ay hindi pinakamainam. Lumipat tayo mula sa pangunahing solusyong ito patungo sa isang pinahusay na solusyon.

Upang magpasya kung aling variable ang dapat ilipat mula sa hindi basic tungo sa basic, isaalang-alang ang alinman sa dalawang umiiral na equation ng huling system na may mga negatibong libreng termino, halimbawa, ang pangalawa. Ipinapakita nito na posible na isalin at sa mga pangunahing variable, dahil sa equation na ito mayroon silang mga positibong coefficient (samakatuwid, sa kanilang pagtaas, at ito ay mangyayari kung isasalin natin ang alinman sa mga ito sa pangunahing mga variable, ang variable ay tataas).

Subukan nating isalin sa pangunahing variable. Upang matukoy kung aling variable ang dapat ilipat mula sa basic hanggang sa hindi basic, makikita natin ang absolute value ng pinakamaliit na ratio ng mga libreng miyembro ng system sa mga coefficient sa. Meron kami. Ito ay nakuha mula sa ikatlong equation, na nagpapakita na ang variable, na positibo sa orihinal na pangunahing solusyon, ay dapat i-convert sa mga di-basic. Dahil dito, ang nakuha na pangunahing solusyon, tulad ng orihinal, ay naglalaman ng dalawang negatibong sangkap, ibig sabihin, kapag pumasa sa naturang pangunahing solusyon, walang magiging pagpapabuti.

Isipin mo paraan ng simplex para sa paglutas ng mga problema sa linear programming (LP). Ito ay batay sa paglipat mula sa isang baseline plan patungo sa isa pa, kung saan tumataas ang halaga ng layunin ng function.

Ang algorithm ng simplex na pamamaraan ay ang mga sumusunod:

  1. Binabago namin ang orihinal na problema sa canonical form sa pamamagitan ng pagpapakilala ng mga karagdagang variable. Para sa mga hindi pagkakapantay-pantay ng form ≤, ang mga karagdagang variable ay ipinakilala na may (+) sign, ngunit kung ang form ≥, pagkatapos ay may (-) sign. Ang mga karagdagang variable ay ipinakilala sa layunin ng function na may naaangkop na mga palatandaan na may isang koepisyent na katumbas ng 0 mula noon hindi dapat baguhin ng layuning pag-andar ang pang-ekonomiyang kahulugan nito.
  2. Ang mga vector ay nakasulat P i mula sa mga coefficient ng mga variable at column ng mga libreng termino. Tinutukoy ng pagkilos na ito ang bilang ng mga vector ng unit. Ang panuntunan ay dapat mayroong kasing dami ng mga vector ng yunit na may mga hindi pagkakapantay-pantay sa sistema ng mga hadlang.
  3. Pagkatapos nito, ang orihinal na data ay ipinasok sa isang simplex na talahanayan. Ang mga vector ng yunit ay ipinakilala sa batayan, at sa pamamagitan ng pagbubukod sa mga ito mula sa batayan, ang isang pinakamainam na solusyon ay matatagpuan. Ang mga coefficient ng layunin ng function ay isinulat na may kabaligtaran na tanda.
  4. Ang pinakamainam na pamantayan para sa problema sa LP ay ang solusyon ay pinakamainam kung nasa f- sa isang hilera, lahat ng mga coefficient ay positibo. Resolve Column Finding Rule - Hinanap f- ang hilera at ang pinakamaliit ay pinili sa mga negatibong elemento nito. Vector P i nagiging permissive ang nilalaman nito. Panuntunan ng pagpili ng elemento ng paglutas - ang ratio ng mga positibong elemento ng haligi ng paglutas sa mga elemento ng vector ay pinagsama-sama P 0 at ang bilang na nagbibigay ng pinakamaliit na ratio ay nagiging elemento ng paglutas kung saan muling kakalkulahin ang simplex table. Ang string na naglalaman ng elementong ito ay tinatawag na resolving string. Kung walang positibong elemento sa column ng pagresolba, walang solusyon ang problema. Matapos matukoy ang elemento ng paglutas, ang susunod na hakbang ay muling kalkulahin ang bagong simplex - talahanayan.
  5. Mga panuntunan para sa pagpuno sa isang bagong simplex - talahanayan. Sa halip na elemento ng paglutas, ang isa ay ibinababa, at ang iba pang mga elemento ay ipinapalagay na pantay 0 ... Ang paglutas ng vector ay ipinakilala sa batayan, kung saan ang katumbas na zero vector ay hindi kasama, at ang natitirang mga batayan ng vector ay naitala nang hindi nagbabago. Ang mga elemento ng linya ng pagpapahintulot ay nahahati sa elemento ng pagpapahintulot, at ang natitirang mga elemento ay muling kinakalkula ayon sa panuntunan ng mga parihaba.
  6. Ginagawa ito hanggang f- sa isang hilera, ang lahat ng mga elemento ay hindi magiging positibo.

Isaalang-alang natin ang solusyon ng problema gamit ang algorithm sa itaas.
Ibinigay:

Dinadala namin ang problema sa isang canonical form:

Nagbubuo kami ng mga vectors:

Pinupuno namin ang simplex - table:

:
Recalculate natin ang unang elemento ng vector P 0, kung saan gumawa kami ng isang parihaba ng mga numero: at nakukuha namin: .

Magsasagawa kami ng mga katulad na kalkulasyon para sa lahat ng iba pang elemento ng simplex - table:

Sa nabuong plano f- ang linya ay naglalaman ng isang negatibong elemento - (-5/3), mga vector P 1... Naglalaman ito sa column nito ng isang positibong elemento, na magiging permissive element. Muli nating kalkulahin ang talahanayan na may kaugnayan sa elementong ito:

Kakulangan ng mga negatibong elemento sa f- ang ibig sabihin ng linya ay natagpuan pinakamainam na plano:
F * = 36/5, X = (12/5, 14/5, 8, 0, 0).

  • Ashmanov S.A. Linear programming, M: Nauka, 1998,
  • Wentzel E.S. Pananaliksik sa Operasyon, M: Radio ng Sobyet, 2001,
  • Kuznetsov Yu.N., Kuzubov V.I., Voloshenko A.B. Mathematical programming, M: Mas mataas na paaralan, 1986.

Pasadyang Linear Programming Solution

Maaari kang mag-order ng anumang mga takdang-aralin sa disiplinang ito sa aming website. Maaari kang mag-attach ng mga file at tukuyin ang mga petsa sa

Simplex na pamamaraan- ito ay isang paraan ng maayos na enumeration ng mga reference plan (ang pag-order ay sinisiguro ng monotonous na mga pagbabago sa halaga ng layunin na function sa panahon ng paglipat sa susunod na plano). Sa kasong ito, kinakailangan na obserbahan ang prinsipyo: ang bawat susunod na hakbang ay dapat mapabuti o, sa matinding mga kaso, hindi lumala ang halaga ng layunin ng pag-andar.

Upang malutas ang LPP paraan ng simplex ito ay nabawasan sa canonical form, i.e. mula sa mga paghihigpit - hindi pagkakapantay-pantay kinakailangan na gumawa ng mga paghihigpit - pagkakapantay-pantay. Para dito, ang isang karagdagang hindi negatibo ay ipinakilala sa bawat hadlang. variable ng balanse may “+” sign, kung ang inequality sign “£”, at may “-” sign, kung inequality sign “³”.

Ang mga karagdagang variable na ito ay pumapasok sa layunin na function na may zero coefficients, i.e. hindi magbabago ang talaan ng layunin ng function. Ang bawat variable na hindi napapailalim sa nonnegativity na kundisyon ay maaaring katawanin bilang pagkakaiba ng dalawang nonnegative na variable:.

Kung ang mga hadlang sa gawain ay sumasalamin sa pagkakaroon at pagkonsumo ng mga mapagkukunan, kung gayon ang numerical na halaga ng karagdagang variable sa plano ng gawain, na nakasulat sa canonical form, ay katumbas ng dami ng hindi nagamit na mapagkukunan.

Upang malutas ang problema gamit ang simplex na paraan, gagamitin namin pinutol na simplex na mga talahanayan ng isang sistema ng mga linear na equation at ang binagong paraan ng pag-aalis ng Jordan.

1. Binubuo namin ang unang base plan

Ang gawain ay nananatiling pareho. Dalhin natin ang karaniwang anyo ng sistema ng mga hindi pagkakapantay-pantay (1) sa kanonikal na anyo ng sistema ng mga equation sa pamamagitan ng pagpapakilala ng mga karagdagang variable ng balanse x 3 , x 4 , x 5 ,x 6 .

Sa isang pang-ekonomiyang kahulugan, ang mga halaga ng karagdagang mga variable x 3 , x 4 , x 5 matukoy ang mga labi ng mga hilaw na materyales pagkatapos ng pagbebenta ng mga produkto.

Ang matrix ng nagresultang sistema ng mga equation ay may anyo:

Ito ay nakikita na sa matrix A ang pangunahing fourth order minor ay isang determinant na binubuo ng mga unit coefficient na may mga karagdagang variable x 3 , x 4 , x 5 ,x 6, dahil ito ay nonzero at katumbas ng 1. Nangangahulugan ito na ang mga column vector para sa mga variable na ito ay linearly independent, i.e. anyo batayan, at ang mga kaukulang variable x 3 , x 4 , x 5 ,x 6 ay basic(pangunahin). Mga variable x 1 , x 2 ang tatawagin libre(hindi mainstream).

Kung ang mga libreng variable x 1 at x 2 upang magtakda ng iba't ibang mga halaga, pagkatapos, ang paglutas ng system na may paggalang sa mga pangunahing variable, makakakuha tayo ng isang walang katapusang hanay ng mga partikular na solusyon. Kung ang mga zero na halaga lamang ang itinalaga sa mga libreng variable, pagkatapos ay mula sa walang katapusang hanay ng mga partikular na solusyon ay maaaring pumili ang isa. mga pangunahing solusyon- mga pangunahing plano.

Upang malaman kung ang mga variable ay maaaring maging basic, kinakailangan upang kalkulahin ang determinant na binubuo ng mga coefficient ng mga variable na ito. Kung ang ibinigay na determinant ay hindi katumbas ng zero, kung gayon ang mga variable na ito ay maaaring maging basic.


Ang bilang ng mga pangunahing solusyon at ang kaukulang bilang ng mga pangkat ng mga pangunahing variable ay maaaring hindi hihigit sa, kung saan n Ay ang kabuuang bilang ng mga variable, r- ang bilang ng mga pangunahing variable, rmn.

Para sa ating gawain r = 4; n= 6. Pagkatapos, ibig sabihin. Posible ang 15 grupo ng 4 na pangunahing variable (o 15 pangunahing solusyon).

Ating lutasin ang sistema ng mga equation para sa mga pangunahing variable x 3 , x 4 , x 5 ,x 6:

Ipagpalagay na ang mga libreng variable x 1 = 0, x 2 = 0, nakukuha namin ang mga halaga ng mga pangunahing variable: x 3 = 312; x 4 = 15; x 5 = 24;x 6 = –10, ibig sabihin ang pangunahing solusyon ay magiging = (0; 0; 312; 15; 24; –10).

Ang pangunahing solusyon na ito ay hindi katanggap-tanggap mula noon x 6 = –10 ≤ 0, at ayon sa kondisyon ng mga paghihigpit x 6 ≥ 0. Samakatuwid, sa halip na ang variable x 6 bilang batayan ay dapat kumuha ng isa pang variable mula sa bilang ng libre x 1 o x 2 .

Ang karagdagang solusyon ay isasagawa gamit ang pinaikling simplex na mga talahanayan, na pinupunan ang mga hilera ng unang talahanayan ng mga coefficient ng system tulad ng sumusunod (Talahanayan 1):

Talahanayan 1

F- ang string ay tinatawag index... Ito ay napuno ng mga coefficient ng layunin ng pag-andar, na kinuha sa kabaligtaran na mga palatandaan, dahil ang equation ng function ay maaaring kinakatawan sa anyo F = 0 – (– 4x 1 – 3x 2).

Sa column ng libreng miyembro b i may negatibong elemento b 4 = –10, ibig sabihin ang solusyon sa system ay hindi wasto. Upang makakuha ng isang magagawang solusyon (baseline), elemento b 4 ay dapat gawing hindi negatibo.

Pumili tayo x Ang 6 ay isang row na may negatibong intercept. Ang linyang ito ay naglalaman ng mga negatibong elemento. Pinipili namin ang alinman sa mga ito, halimbawa, "-1" sa x 1 -kolum, at x 1 -column ay kinuha bilang permissive column(ito ay tutukuyin na ang variable x 1 ay mula sa libre hanggang sa basic).

Hatiin ang mga libreng miyembro b i sa mga kaukulang elemento a ay paglutas ng column, makuha namin relasyon sa pagpapahalagaΘ i= = (24, 15, 12, 10). Pinipili namin ang pinakamaliit na positibo (minΘ i= 10), na tutugma linya ng paglutas... Tinutukoy ng permissive string ang variable x j, na sa susunod na hakbang ay nakausli mula sa batayan at nagiging libre. Kaya x Ang 6 -string ay isang paglutas ng string, at ang elementong "-1" ay elementong nagpapahintulot... Inikot namin ito. Mga variable x 1 at x 6 ang pinagpalit.

Mga relasyon sa pagpapahalaga Θ i sa bawat linya ay tinutukoy ayon sa mga patakaran:

1) Θ i= kung b i at a ay may iba't ibang mga palatandaan;

2) Θ i= ∞ kung b i= 0 at a ay < 0;

3) Θ i= ∞ kung a ay = 0;

4) Θ i= 0 kung b i= 0 at a ay > 0;

5) Θ i= kung b i at a ay may parehong mga palatandaan.

Ginagawa namin ang hakbang ng binagong pagbubukod ng Jordan (SHME) na may elemento ng paglutas at gumuhit ng bagong talahanayan (Talahanayan 2) ayon sa sumusunod na panuntunan:

1) sa halip na elemento ng paglutas (RE), isang halaga ang itinakda na kabaligtaran nito, i.e. ;

2) ang mga elemento ng linya ng pagpapahintulot ay nahahati sa RE;

3) ang mga elemento ng column sa pagresolba ay nahahati sa REs at nagbabago ang sign;

4) ang natitirang mga elemento ay matatagpuan ayon sa parihaba na panuntunan:

Mula sa mesa. 2 na ang mga libreng tuntunin sa b i-ang column ay di-negatibo, samakatuwid, ang paunang magagawang solusyon ay nakuha - unang batayang plano= (10; 0; 182; 5; 4; 0). Sa kasong ito, ang halaga ng function F() = 40. Geometrically ito ay tumutugma sa vertex F(10; 0) ng solusyon polygon (Larawan 1).

talahanayan 2

2. Sinusuri ang plano para sa pinakamainam. Ang pangunahing plano ay hindi optimal, tulad ng sa F-ang linya ay may negatibong koepisyent na "–4". Pagpapabuti ng plano.

3. Paghahanap ng bagong reference plan

Pinipili namin ang pinahihintulutang elemento ayon sa panuntunan:

Pinipili namin ang pinakamaliit na negatibong koepisyent sa F-ang linyang "–4", na tumutukoy sa column ng paglutas - x 6; variable x 6 isinasalin namin sa basic;

Paghahanap ng mga relasyon Θ i, kasama ng mga ito ay pipiliin namin ang pinakamaliit na positibo, na tumutugma sa linya ng paglutas:

min Θ i = min(14, 5, 2, ∞) = 2, samakatuwid x 5-linya - permissive, variable x 5 isinasalin namin sa libre (mga variable x 5 at x 6 ay ipinagpalit).

Sa intersection ng resolving row at column ay ang resolving element na "2";

Ginagawa namin ang hakbang ng SHMZH, bumuo ng talahanayan. 3 ayon sa tuntunin sa itaas at makakakuha tayo ng bagong reference plan = (12; 0; 156; 3; 0; 2).

Talahanayan 3

4. Sinusuri ang bagong baseline na plano para sa pinakamainam

Ang baseline plan ay hindi rin optimal, dahil sa F-ang linya ay may negatibong koepisyent na "-1". Halaga ng function F() = 48, na geometrical na tumutugma sa vertex E(12,0) solusyon polygon (Larawan 1). Pagpapabuti ng plano.

5. Paghahanap ng bagong reference plan

x 2 -column - permissive, since in F-string ang pinakamaliit na negatibong koepisyent na "-1" ay nasa x 2 -column (Δ 2 = –1). Hanapin ang pinakamaliit na Θ i: min Θ i = min(≈ 9, 6, ∞, 24) = 6, samakatuwid x 4 - linya - permissive. Pinahihintulutang elemento "1/2". Pagpapalit ng mga Variable x 2 at x 4 . Ginagawa namin ang hakbang ng SHMZH, bumuo ng talahanayan. 4, nakakakuha tayo ng bagong baseline plan = (9; 6; 51; 0; 0; 5).

6. Sinusuri ang plano ng suporta para sa pinakamainam

V F-Row lahat ng coefficient ay hindi negatibo, samakatuwid, ang baseline plan ay pinakamainam. Geometrically tumutugma sa punto D(9; 6) (tingnan ang Fig. 1). Ang pinakamainam na plano ay nagbibigay ng pinakamataas na halaga ng layunin ng function c.u.

Ang isang halimbawa ng paglutas ng problema sa pamamagitan ng simplex na pamamaraan ay isinasaalang-alang, pati na rin ang isang halimbawa ng paglutas ng dalawahang problema.

Nilalaman

Ang gawain

Para sa pagbebenta ng tatlong grupo ng mga kalakal, ang isang komersyal na negosyo ay may tatlong uri ng limitadong materyal at pera na mapagkukunan sa halagang b 1 = 240, b 2 = 200, b 3 = 160 na mga yunit. Kasabay nito, para sa pagbebenta ng 1 pangkat ng mga kalakal para sa 1 libong rubles. Ang turnover ay ginugugol sa mapagkukunan ng unang uri sa halaga ng isang 11 = 2 yunit, ang mapagkukunan ng pangalawang uri sa halaga ng isang 21 = 4 na yunit, ang mapagkukunan ng ikatlong uri sa halaga ng isang 31 = 4 mga yunit. Para sa pagbebenta ng 2 at 3 grupo ng mga kalakal para sa 1 libong rubles. Ang turnover ay ginugol, ayon sa pagkakabanggit, ng mapagkukunan ng unang uri sa halagang isang 12 = 3, isang 13 = 6 na yunit, ng mapagkukunan ng pangalawang uri sa halaga ng isang 22 = 2, isang 23 = 4 na yunit, ng mapagkukunan ng ikatlong uri sa halaga ng isang 32 = 6, isang 33 = 8 na yunit ... Ang kita mula sa pagbebenta ng tatlong grupo ng mga kalakal para sa 1 libong rubles. turnover ay, ayon sa pagkakabanggit, c 1 = 4, c 2 = 5, c 3 = 4 (libong rubles). Tukuyin ang nakaplanong dami at istraktura ng turnover upang ang tubo ng negosyo sa pangangalakal ay pinakamataas.

Sa direktang gawain ng pagpaplano ng turnover, nalulusaw sa pamamaraang simplex, magkasundo dalawahang gawain linear programming.
I-install conjugate pares ng mga variable direkta at dalawahang gawain.
Ayon sa conjugate pares ng mga variable, mula sa solusyon ng direktang problema, makuha dalawahang solusyon sa problema kung saan pagtatasa ng mapagkukunan ginastos sa pagbebenta ng mga kalakal.

Paglutas ng problema gamit ang simplex method

Hayaan x 1, x 2, x 3 - ang bilang ng mga kalakal na naibenta, sa libong rubles, 1, 2, 3 - ang kanyang mga grupo, ayon sa pagkakabanggit. Pagkatapos matematikal na modelo ang problema ay mukhang:

F = 4 x 1 + 5 x 2 + 4 x 3 -> max

0))) (~) "title =" (! LANG: delim (lbrace) (matrix (4) (1) ((2x_1 + 3x_2 + 6x_3 = 0))) (~)">!}

Niresolba namin ang simplex na paraan.

Ipakilala ang mga karagdagang variable x 4 ≥ 0, x 5 ≥ 0, x 6 ≥ 0 upang i-convert ang mga hindi pagkakapantay-pantay sa mga pagkakapantay-pantay.

Kunin ang x 4 = 240 bilang batayan; x 5 = 200; x 6 = 160.

Ipinasok namin ang data sa simpleng mesa

Simplex table number 1

Layunin function:

0 240 + 0 200 + 0 160 = 0

Kinakalkula namin ang mga marka gamit ang formula:

Δ 1 = 0 2 + 0 4 + 0 4 - 4 = - 4
Δ 2 = 0 3 + 0 2 + 0 6 - 5 = - 5
Δ 3 = 0 6 + 0 4 + 0 8 - 4 = - 4
Δ 4 = 0 1 + 0 0 + 0 0 - 0 = 0
Δ 5 = 0 0 + 0 1 + 0 0 - 0 = 0
Δ 6 = 0 0 + 0 0 + 0 1 - 0 = 0

Dahil may mga negatibong rating, hindi optimal ang plano. Pinakamababang marka:

Ipinakilala namin ang variable x 2 sa batayan.

Tinutukoy namin ang isang variable na umaalis sa batayan. Upang gawin ito, hanapin ang pinakamaliit na hindi negatibong ratio para sa column x 2.

= 26.667

Ang pinakamaliit na hindi negatibo: Q 3 = 26.667. Nakukuha namin ang variable x 6 mula sa batayan

Hatiin ang ikatlong hanay ng 6.
Mula sa 1st line, ibawas ang 3rd line, multiplied sa 3
Mula sa 2nd row, ibawas ang 3rd row, na pinarami ng 2


Kinakalkula namin:

Kumuha kami ng bagong talahanayan:

Simplex table number 2

Layunin function:

0 160 + 0 440/3 + 5 80/3 = 400/3

Kinakalkula namin ang mga marka gamit ang formula:

Δ 1 = 0 0 + 0 8/3 + 5 2/3 - 4 = - 2/3
Δ 2 = 0 0 + 0 0 + 5 1 - 5 = 0
Δ 3 = 0 2 + 0 4/3 + 5 4/3 - 4 = 8/3
Δ 4 = 0 1 + 0 0 + 5 0 - 0 = 0
Δ 5 = 0 0 + 0 1 + 5 0 - 0 = 0
Δ 6 = 0 (-1) / 2 + 0 (-1) / 3 + 5 1/6 - 0 = 5/6

Dahil may negatibong pagtatantya Δ 1 = - 2/3, hindi optimal ang disenyo.

Ipinakilala namin ang variable x 1 sa batayan.

Tinutukoy namin ang isang variable na umaalis sa batayan. Upang gawin ito, hanapin ang pinakamaliit na hindi negatibong ratio para sa column x 1.

Ang pinakamaliit na di-negatibo: Q 3 = 40. Nakukuha namin ang variable x 2 mula sa batayan

Hatiin ang 3rd row sa 2/3.
Mula sa 2nd row, ibawas ang 3rd row, na i-multiply sa 8/3


Kinakalkula namin:

Kumuha kami ng bagong talahanayan:

Simplex table number 3

Layunin function:

0 160 + 0 40 + 4 40 = 160

Kinakalkula namin ang mga marka gamit ang formula:

Δ 1 = 0 0 + 0 0 + 4 1 - 4 = 0
Δ 2 = 0 0 + 0 (-4) + 4 3/2 - 5 = 1
Δ 3 = 0 2 + 0 (-4) + 4 2 - 4 = 4
Δ 4 = 0 1 + 0 0 + 4 0 - 0 = 0
Δ 5 = 0 0 + 0 1 + 4 0 - 0 = 0
Δ 6 = 0 (-1) / 2 + 0 (-1) + 4 1/4 - 0 = 1

Dahil walang mga negatibong pagsusuri, ang plano ay pinakamainam.

Ang solusyon sa problema:

x 1 = 40; x 2 = 0; x 3 = 0; x 4 = 160; x 5 = 40; x 6 = 0; F max = 160

Iyon ay, kinakailangang ibenta ang mga kalakal ng unang uri sa halagang 40 libong rubles. Hindi kinakailangang magbenta ng mga kalakal ng ika-2 at ika-3 uri. Sa kasong ito, ang pinakamataas na kita ay magiging F max = 160 libong rubles.

Solusyon sa dalawahang problema

Ang dalawahang problema ay:

Z = 240 y 1 + 200 y 2 + 160 y 3 -> min

Pamagat = "(! LANG: delim (lbrace) (matrix (4) (1) ((2y_1 + 4y_2 + 4y_3> = 4) (3y_1 + 2y_2 + 6y_3> = 5) (6y_1 + 4y_2 + 8y_3> = 4) (y_1, y_2, y_3> = 0))) (~)">!}

Ipakilala ang mga karagdagang variable y 4 ≥ 0, y 5 ≥ 0, y 6 ≥ 0 upang i-convert ang mga hindi pagkakapantay-pantay sa mga pagkakapantay-pantay.

Ang mga pares ng conjugate ng mga variable ng direkta at dalawahang problema ay may anyo:

Mula sa huling simplex ng talahanayan No. 3 ng direktang problema, nakita namin ang solusyon sa dalawahang problema:

Z min = F max = 160;
y 1 = Δ 4 = 0; y 2 = Δ 5 = 0; y 3 = Δ 6 = 1; y 4 = Δ 1 = 0; y 5 = Δ 2 = 1; y 6 = Δ 3 = 4;

Y 1 = 0; y 2 = 0; y 3 = 1; Z min = 160;



error: Ang nilalaman ay protektado!!