
- •1. Математикалық модельдеу. Модельдеудің негізгі кезеңдері
- •1.2 Сызықтық бағдарламалау есептерінің қойылымы. Есептердің математикалық моделдерін қҧру
- •2. Сызықтық бағдарламалау есептері және оларды шешу әдістері
- •2.1 Сызықтық бағдарлама есебін графиктік әдіспен шешу
- •2.2 Сызықтық бағдарламалау есептерінің канондық тҥрі. Базистік шешімдер
- •2.3 Сызықтық бағдарламалау есебін симплекс әдісімен шешу
2.2 Сызықтық бағдарламалау есептерінің канондық тҥрі. Базистік шешімдер
Сызықтық бағдармалау есптері канондық түрде жазылуы үшін барлық белгісіздер мен шектеулердің аң жағы теріс емес және мақсат функциясы максималдануы қажет.
Сызықтық бағдармалау есебінің канондық түрі:
f = c1 x1 + c2 x2 + ... + cn xn ® max
-
ìa11x1
+ a12 x2
+ ... + a1n xn = b1
ï
+ a22 x2
+ ... + a2n xn
= b2
ïa21x1
í
... ...
... ... ... ...
ï
ï
+ am2 x2
+ ... + amn xn
= bm
îam1 x1
xij
³ 0
(2.3)
Сызықтық бағдармалау есептерінің шектеулері тек қана « = » емес және « £ », « ³ », 1>;0BK=4Kқтан, ал мақсатты функция максимумға немесе минимумға шығарылатындықтан, сызықтық бағдармалау есептерін канондық түрге келтіре білу қажет. Осы мақсатта екі түрлі есеп қарастырайық.
Сызықтық бағдармалау есебі тӛмендегідей модельмен берілсін:
f = c1 x1 + c2 x2 + ... + cn xn ® max
14
xn+1 , xn+2 , ... , xn+m
-
ìa11x1
+ a12 x2
+ ... + a1n xn £ b1
ï
a21x1
+ a22 x2
+ ... + a2n xn
£ b2
ï
í
... ...
... ... ... ...
ï
ï
am1 x1
+ am 2 x2
+ ... + amn xn
£ bm
î
xij ³ 0
( j = 1, n)
(2.4)
мұндағы bi ³ 0 (i = 1, m) .
Шектеулердің сол жағы оң жағынан кіші немесе тең. Шектеулердің сол жағы оң
жағына тең болуы үшін, шектеулердің сол жағына теріс емес
белгісіздерін қосамыз. Бұл белгісіздер мақсатты функцияның мәнін ӛзгертпес үшін нӛль коэффициенттерімен енеді.
(2.4) есебінің канондық түрі тӛмендегідей болып жазылады:
f = c1 x1 + c2 x2 + ... + cn xn + 0 × xn+1 + 0 × xn+2 + ... + 0 × xn+m ® max
-
ìa11x1
+ a12 x2
+ ... + a1n xn + xn+1
= b1
ï
+ a22 x2
+ ... + a2n xn
+ xn+2
= b2
ïa21x1
í
... ...
... ... ... ...
ï
ï
+ am 2 x2
+ ... + amn xn
+ xn+m
= bm
îam1 x1
xij ³ 0
( j = 1, n + m)
(2.5)
xn+1 , xn+2 , ..., xn+m қосымша айнымалылар деп аталады.
Мысалы шикізаттарды пайдалану есебінде қосымша белгісіздердің экономикалық интерпретациясы пайдаланылмаған қорлардың шамасын кӛрсетеді.
Сызықтық бағдармалау есебінің басқа бір жеке түрін қарастырайық:
-
f = c1 x1 + c2 x2
+ ... + cn xn ® min
ìa11x1
+ a12 x2
+ ... + a1n xn ³ b1
ï
+ a22 x2
+ ... + a2n xn
³ b2
ïa21x1
í
... ...
... ... ... ...
ï
ï
+ am 2 x2 + ... + amn xn
³ bm
îam1 x1
xij ³ 0
( j = 1, n)
(2.6)
мұндағы bi ³ 0 (i = 1, m) .
Мақсат функцияның минималды мәнін анықтауды ( - f ) функциясының
максималды мәнін анықтауға келтіруге болады, себебі min f = -max(- f ).
« ³ » H5:B5C;5@V= B5ңдік шектеулерге келтіру үшін әрбір шектеудің сол жағынан
теріс емес xn+1 , xn+2 , ..., xn+ m айнымалыларын алып тастаймыз. Бұл айнымалылар мақсат функцияның мәнін ӛзгертпес үшін нӛль коэффициенттерімен енеді.
(2.6) есебінің канондық түрі тӛмендегідей болып жазылады:
f = -c1 x1 - c2 x2 + ... - cn xn + 0 × xn+1 + 0 × xn+2 + ... + 0 × xn+m ® max
15
n - m .
ìa11x1 |
+ a12 x2 |
+ ... + a1n xn - xn+1 |
|
||
ï |
a21x1 |
+ a22 x2 |
+ ... + a2n xn |
|
|
ï |
|
||||
í |
|
|
|
... ... |
|
... ... ... ... |
|
||||
ï |
|
|
|
|
|
ï |
am1 x1 |
+ am 2 x2 |
+ ... + amn xn |
|
|
î |
|
= b1 - xn+2 = b2
- xn+m = bm
|
|
|
|
|
|
||
xij |
³ 0( j = 1, n + m) |
(2.7) |
|
||||
|
|
|
|
|
|||
(2.6) есебінің моделі, бұл |
есептің қосымша айнымалыларының экономикалық |
|
интерпретациясын қоспадағы берілген шектеулердегі ( bi ) тағамдық заттарының артық мӛлшері ретінде кӛрсетуге болады.
Сонымен, егер сызықтық бағдарламалау есебінде мақсатты функцияның минимумға анықталатын болса, онда ондай есептерді мақсат функцияның максимумын анықтауға келтіріп, барлық « £ », « ³ » H5:B5C;5@V= B5ңбе-итеңдік шектеулерге келтіру қажет.
Ескерту. Есепті канондық түрге келтіргенде мақсат функцияны максимизациялау қажетті шарт емес. Есептерді минимумға шығару әдісі максимумға шығарғандағыдан ӛзгешелеу. Сондықтан мақсат функцияны максимизациялау талабы есепті бір алгоритммен шығаруға мүмкіндік береді.
Сызықтық бағдарламалау есептерінің базистік шешімдері
Cызықтық бағдарламалау есептерін симплекс әдісімен шығару үшін оны канондық түрге келтіріп алғашқы таяныш шешімін анықтау қажет. Содан соң симплекс әдісінің алгоритмі мен есептің оптималды шешімін немесе шешімі болмайтындығын табады.
Cызықтық бағдарламалау есептері ӛзінің оптималды шешімін кӛпбұрыштың бұрыштық нүктесінде қабылдайды. Бұрыштық нүктенің координаталары – есептің базистік шешімі деп аталады. Базистік шешімдерді шектеулерді қарапайым түрлендірулер арқылы немесе басқа әдістермен анықтауға болады.
Cызықтық бағдарламалау есебінің канондық түрінде жазылған (2.3) шектеулерін қарастырайық. Бұл шектеулер n белгісізі бар m сызықтық теңдеулерден тұрады. Айталық m < n болсын, бірақ тәжірибеде кӛбінесе m > n және m = n болып келеді.
(2.3) есебінің шектеулеріндегі айнымалыларды екі топқа бӛлуге болады. Бірінші топ
– негізгі (тәуелді) айнымалылар, олардың саны m сызықтық тәуелсіз теңдеулердің
санына тең, ал екіншісі – негізгі емес (тәуелсіз) айнымалылар, олардың саны
(2.3) есебінің шектеулері жүйелі қарапайым түрлендірулерден кейін мына түрге келтірілсін:
|
|
|
ìx1 |
|
|
|
|
¢ |
|
|
|
|
|
|
¢ |
|
|
|
|
¢ |
|
|
|
|
|
|
|
|
|
|
+ a1, m+1 xm+1 |
+ ... + a1n xn = b1 |
|
|
|
||||||||||||||
|
|
|
ï |
x |
|
|
|
+ a¢ |
x |
|
|
|
+ ... + a¢ |
x |
|
= b¢ |
|
|
|
|||||
|
|
|
ï |
2 |
|
|
m+1 |
n |
|
|
|
|||||||||||||
|
|
|
|
|
|
2, m+1 |
|
|
|
2n |
|
|
|
2 |
|
|
|
|||||||
|
|
|
í |
... ... ... ... ... |
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
|
|
ï |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
ï |
|
|
x |
|
+ a¢ |
|
x |
|
|
|
+ ... + a¢ |
|
x |
|
= b¢ |
(2.8) |
|
||||
|
|
|
î |
|
|
|
m |
m, m+1 |
|
|
m+1 |
mn |
|
|
n |
|
m |
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
¢ |
³ 0 |
(i = 1, m) . |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
мұндағы bi |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(2.8) жүйесіндегі x1 , x2 , ... , xm белгісіздерінің коэффициенттері бірлік векторларын құрайды.
16
x1 , x2 , ..., xm
æ1 |
ö |
|
æ0 |
ö |
æ1 |
ö |
|
|||||
ç |
0 |
÷ |
|
ç |
1 |
÷ |
ç |
0 |
÷ |
|
||
ç |
÷ |
|
ç |
÷ |
ç |
÷ |
|
|||||
E1 = ç |
... |
÷ |
E2 |
= ç |
... |
÷ |
En = ç |
... |
÷ |
|
||
ç |
÷ |
|
ç |
÷ |
ç |
÷ |
|
|||||
|
|
|
|
|
||||||||
ç |
0 |
÷ |
|
ç |
0 |
÷ |
ç |
0 |
÷ |
|
||
è |
ø , |
è |
ø , ... , |
è |
ø |
|
||||||
E1 , E2 , ..., Emбірлік векторлары |
|
m |
ӛлшемді |
кеңістіктің базисін құрайды, ал |
|
айнымалылары базистік деп аталады. Егер айнымалы теңдеулер
жүйесіндегі бір теңдеуге ғана бірге тең коэффициентпен енсе, онда ол базистік болып табылады.
Қалған айнымалылар базистік емес деп аталады.
Базистік емес (тәуелсіз) айнымалыларды нӛльге теңеп базистік (тәуелді) айнымалылардың мәнін табатын жеке шешім таяныш шешім деп аталады. Сонымен,
егер xm+1 = 0, xm+2 , ..., xn = 0 болса, онда x1 = b¢, x2 = b2¢, ..., xm = bm¢ .
Осылайша алынған бірінші шешім алғашқы таяныш шешім деп аталады.
Cызықтық бағдарламалау есептерінде үш түрлі « £ », « ³ », « = » H5:B5C;5@ :5745A54V. (2.4) жеке есебін канондық түрге келтіргеннен кейін (2.5) әрбір теңдеуінде
xn+1 , xn+2 , ..., xn+m айнымалылары пайда болады.
Базистік емес айнымалылардан нольге теңей отырып: x1 = 0, x2 = 0, ..., xn = 0 , мүмкін болатын базистік шешімін аламыз:
xn+1 = b1 , xn+2 = b2 , ... , xn+m = bm
Шектеулері « ³ », (2.6) есебін (2.7) канондық түрге келтірген кезде xn+1 , xn+2 , ..., xn+m айнымалылары базистік бола алмайды, себебі олар (-1) коэффициенттерімен енеді. Сондықтан базистік айнымалыларды, яғни мүмкін болатын базистік шешімдерін табу үшін жасанды базис әдісі қолданылады. (2.7) есебінің әрбір шектеуіне жасанды
теріс емес xn+m+1 , xn+m +2 , ..., xn+m+m айнымалыларын енгізіп, яғни алған базистік шешім коэффициенті бірге тең жасанды айнымалының кӛмегімен құрылады. Жасанды айнымалы мақсат функциясына « М » коэффициенті арқылы енгізіледі. Есеп максимумға шығарылғанда М-нің мәні ӛле үлкен теріс сан деп, ал минимумға шығарылғанда ӛте үлкен оң сан деп алынады. Мақсатты функцияға жасанды айнымалылар (-М ) коэффициентімен енеді, мұндағы М – есептің шартындағы сандардан үлкен сан. Жасанды айнымалыларды енгізгеннен соң (2.7) есебі тӛмендегідей жазылады:
f = -c1 x1 - c2 x2 - ... - cn xn + 0 × xn+1 + 0 × xn+2 + ... + 0 × xn+m - - M × xn+m+1 - M × xn+m+2 - ... - M × xn+m+m ® max
ìa11x1 |
+ a12 x2 |
+ ... + a1n xn - xn+1 |
+ |
|
|||||
ï |
a21x1 |
+ a22 x2 |
+ ... + a2n xn |
- |
|
||||
ï |
|
||||||||
í |
|
|
|
... ... |
|
|
|||
... ... ... ... |
|
|
|||||||
ï |
|
|
|
|
|
|
|||
ï |
am1 x1 |
+ am 2 x2 |
+ ... + amn xn |
|
|
||||
î |
|
|
xn+m+1 = b1
xn+2 + xn+m+2 = b2
- xn+m + xn+m+m = bm
xij ³ 0 ( j = 1, n + m + m)
Жасанды белгісіздер алғашқы базистік шешім алынуы үшін ғана енгізіледі. Жасанды айнымалылар базистік болып тұрғанда, олардың мәні оң болады (егер
оларға сәйкес bi > 0 болса) және максималды мәнімен салыстырғында мақсатты функцияның мәнін азайтады. Бұл айнымалылардың коэффициенттері абсолюттік
17
шамасы жағынан ең үлкен теріс шама болғандықтан, есеп симплекс әдісімен шығарған кезде базистік айнымалылардан базистік емес айнымалыларға кӛшеді. Бұл әдіс шектеулері « =» Bүрінде берілген кезде де қолданылады.
Ескерту. Алғашқы базистік шешім алынған кезде жасанды айнымалылар санын неғұрлым азайтуға ұмтылу керек. Ол оптималды шешім алуды жылдамдатады.