Экономикалық процестерді зерттеудегі сызықтық бағдарламау модельдері
ТАҚЫРЫП: ЭКОНОМИКАЛЫҚ ПРОЦЕСТЕРДІ ЗЕРТТЕУДЕГІ СЫЗЫҚТЫҚ БАҒДАРЛАМАЛАУ МОДЕЛЬДЕРІ
КІРІСПЕ.…………………………………………………………………………………………3
І БӨЛІМ. ТЕОРИЯЛЫҚ БӨЛІМ……………………………………………………………………………………………………..4
1. Жоспарлау мен басқарудағы оптималдылық қағидасы және оптималды бағдарламалаудың жалпы есебі…………………………………………………………..4
2. Сызықтық бағдарламалау есебі және оның шешімдерінің қасиеттері………………….8
3. Сызықтық бағдарламалау есебін графиктік әдіспен шешу…………………………………….9
4. Сызықтық бағдарламалау есебін шешудің симплекстік әдісі……………………………….10
4.1. Қарапайым базисті симплекс әдісі………………………………………………….10
4.2. Жасанды базисті симплекс әдісі (М-есебі)…………………………………………14
5. Сызықтық бағдарламалаудың екі жақты есептері…………………………………………16
ІІ БӨЛІМ. ПРАКТИКАЛЫҚ БӨЛІМ…………………………………………………………….19
ҚОРЫТЫНДЫ…………………………………………………………………………………………..25
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР…………………………………………………………..26
КІРІСПЕ
Өзінің мүмкіндіктерін тиімді пайдалану арқылы жоғары нәтижеге жету кез келген адамның негізгі мақсаттарының бірі. Экономикалық жүйелердің әр түрлі деңгейлерінде кездесетін жоспарлау, басқару, шектелген ресурстарды тиімді бөлу, өндірістік процестерді талдау, күрделі объектілерді жобалау сияқты есептердің ұтымды және оптималды шешімдерін табу табиғи және ғылыми-техникалық прогресс қажеттіліктерінен туған мәселелер.
Оптимизациялық есептерде математикалық әдістерді пайдалану үшін, ең алдымен, тиімді шешімін табу қажет есептің өзінің математикалық қойылымын жазуымыз қажет. Математикалық қойылымда берілген ресурстар, өндірістік технология, «жақсы» немесе «жаман» шешім деген сияқты түсініктердің сан шамалары және олардың арасындағы байланыстар, математикалық өректер, теңсіздіктер арқылы көрсетілулері тиіс. Шарттары нақты берілген есептің математика тіліндегі формалды жазылымын сол есептің математикалық моделі деп атайды.
Математикалық модель құру үшін, ең алдымен, зерттейтін объектінің ең басты қасиеттерін немесе заңдылықтарын бөліп алып, оларды математикалық өрнектер арқылы өзара байланыстырып сипаттайды. Математикалық модель құрғаннан кейін ғана есепті шешіп, зерттеу үшін математикалық әдістерді қолдануға болады.
Экономикалық процестердің математикалық модельдерін құрастыру өте күрделі мәселе, себебі ол үшін математикалық және экономикалық білгірлікті өзара ұштастыра білу қажет.
Оптимизациялау теориясында мүмкін болатын шешімдердің ішінен мақсат функциясы деп аталатын функцияға ең үлкен немесе ең кіші мән беретін «ең жақсы» шешімді табу әдістерін зерттеу мәселелері қарастырылады. Мысалы, кез келген өндіріс фирмасының негізгі мақсаты – көбірек пайда табу.
Осындай есептердің қойылымы мен шығару әдістері мақсат функциясының қасиеттері мен шешімдер жиыны жөніндегі информация көлеміне байланысты.
Мақсат функциясы мен мүмкін шешімдер жиынын сипаттайтын функциялар сызықты функциялар түрінде берілген есептер экономикалық тәжірибеде жиірек кездеседі.
Бұл курстық жұмыста сызықтық бағдарламалау есептерінің қойылымдарының математикалық модельдері және оларды шығару жолдары қарастырылған. Есептердің шығарылу әдістері экономикалық және математикалық тұрғыдан талданып келтірілген.
І БӨЛІМ. ТЕОРИЯЛЫҚ БӨЛІМ
1. Жоспарлау мен басқарудағы оптималдылық қағидасы және оптималды бағдарламалаудың жалпы есебі
Сызықтық бағдарламалау оптималды бағдарламалаудың бір бөлімі болып табылады. Ал оптималды бағдарламалау өз кезегінде шартты оптимизация есептерін оқытатын қолданбалы математиканың бір бөлімі. Экономикада мұндай есептер жоспарлау мен басқарудағы оптималдылық қағидасынының практикада қолданылу кезінде туындайды. [1]
Жоспарлау мен басқаруда оптималдылық қағидасын қолданудың маңызды шарты болып жоспарлы басқару шешімін қабылдауға қажетті икемділік пен өндірістік шаруашылық жағдайындағы баламалылық (альтернативтілік) табылады. Тап дәл осындай жағдайлар, негізінен, шаруашылық жүргізуші субъектілердің күнделікті тәжірибесін (практикасын) құрайды (өндірістік бағдарламаларды таңдау, жабдықтаушылармен қатынас, маршруттарды анықтау, материалдар жинау, қоспалар дайындау және т.с.с.).
Оптималдылық қағидасының мәні – шаруашылық жүргізуші субъектінің өндірістік қызметінің ішкі мүмкіндіктері мен сыртқы жағдайларын ең жақсы жолмен айқындайтын X = (x1, x2, …, xn) жоспарлы басқару шешімін таңдауға ұмтылуда, мұнда xj , j = – оның компоненттері.
Мұндағы «ең жақсы жолмен» сөздері оптималдылықтың қандай да бір критерийін таңдауды , яғни әр түрлі жоспарлы басқару шешімдерінің ішінен салыстыру арқылы ең тиімдісін таңдауға мүмкіндік беретін экономикалық көрсеткішті білдіреді.
«Өндірістік қызметтің ішкі мүмкіндіктері мен сыртқы жағдайларын айқындайтын» сөздері жоспарлы басқару шешімдерін таңдауда бірқатар шарттардың қойылуын білдіреді, яғни X таңдау қандай да бір D мүмкін болатын шешімдер облысында жүзеге асырылады; бұл облысты, басқаша, есептердің анықталу облысы деп те атайды.
Сонымен, жоспарлау мен басқаруда оптималдылық қағидасының тәжірибеде қолданылуы дегеніміз мынадай экстремалды есеп түрін шешу:
X ∊ D, (1.2)
f (X) → max (min), (1.1)
мұнда f (X) – оптималды критерийдің математималық түрде жазылуы – мақсат функциясы. Әдетте шартты оптимизация есебі былай жазылады:
Мына шектемелерді (шарттарды) қанағаттандыратын:
φ1 (x1, x2, …, xn) {≤ ,=, ≥} b1,
φ1 (x1, x2, …, xn) {≤ ,=, ≥} b2,
………………………………… (1.4)
φm (x1, x2, …, xn) {≤ ,=, ≥} bm,
xj ≥ 0, j = , (1.5)
және
f (X) = f (x1, x2, …, xn) → max (min) (1.3)
функциясының максимум немесе минимум мәнін табу.
(1.5) шарты міндетті емес, бірақ оған қажетті жағдайда жетуге болады. {≤ ,=, ≥} белгілінуі белгілі бір шектемеде ≤ , = немесе ≥ таңбаларының біреуін қолдануға болатындығын білдіреді. Егер қысқаша түрде жазатын болсақ төмендегідей болады:
φi (x1, x2, …, xn) {≤ ,=, ≥} bi, i = , (1.7)
xj ≥ 0, j = , (1.8)
f (x1, x2, …, xn) → max (min) (1.6)
(1.6) – (1.8) есеп – оптималды (математикалық) бағдарламалаудың жалпы есебі, немесе негізінде оптималдылық және жүйелілік қағидасы жатқан оптималды бағдарламалау есебінің математикалық моделі.
X векторы (басқарушы айнымалылар жиынтығы xj , j = ) мүмкін болатын шешім немесе оптималды бағдарламалау есебінің жоспары деп аталады, егер де ол шектемелер жүйесін қанағаттандырса. f (x1, x2, …, xn) мақсат функциясының максимум немесе минимум мәнін беретін сол X жоспары оптималды бағдарламалаудың оптималды жоспары деп аталады.
Сонымен, белгілі бір өндірістік жағдайдағы оптималды жоспар таңдау экономикалық-математикалық модельдің жүйелілік және оптималдылық тұрғысымен және оптималды бағдарламалау есебін шешумен байланысты.
Оптималды бағдарламалау есебін жалпы түрде мынадай белгілері бойынша жіктеуге болады:
1. Айнымалылардың өзара байланысу мінездемесі бойынша:
а) сызықтық;
ә) сызықтық емес.
а) жағдайында шектемелер жүйесіндегі барлық функционалдық байланыстар мен мақсат функциясы – сызықтық функциялар; жоғарыда аталғандардың біреуінде сызықтық еместіктің болуы ә) жағдайына алып келеді.
2. Айнымалылардың өзгеру мінездемесібойынша:
а) үздіксіз;
ә) дискретті.
а) жағдайында басқарушы айнымалылар мәндері қандай да бір нақты сандар облысын толтыруы мүмкін; ә) жағдайында барлық айнымалылар немесе тек бір ғана айнымалы бүтін мән қабылдауы мүмкін.
3. Уақыт факторын ескеру арқылы:
а) статикалық;
ә) динамикалық.
а) есептерінде модельдеу мен шешім қабылдау модель элементтерінің уақыт кезеңінен тәуелсіз болжамы негізінде жоспарлы басқару шешімі қабылданады; ә) жағдайында мұндай болжам жеткілікті анықталып қабылдана алмайды, сондықтан уақыт факторын ескеру қажет.
4. Айнымалылар туралы ақпараттар бойынша:
а) толық анықталғандық (детерминделгендік) жағдайындағы есептер;
ә) ақпараттың жеткіліксіз жағдайындағы есептер;
б) анықталмағандық жағдайындағы есептер.
ә) есептерінде жеке элементтері ықтималды мүмкін шамалар болып табылады, бірақ белгілі немесе қосымша статистикалық зерттеулер арқылы олардың үлестірім заңдылықтары бекітілуі мүмкін. Ал б) жағдайында кездейсоқ элементтердің мүмкін нәтижелері туралы болжамжасауға болады, бірақ бұл нәтижелердің ықтималдықтары туралы шешім шығаруға мүмкіндік жоқ.
5. Баламаларды бағалау критерийлерінің саны бойынша:
а) жай, бір критерийлі есептер;
ә) күрделі, бірнеше критерийлі есептер.
а) есептерін экономикалық тұрғыдан қарастырсақ, бір критерийлі оптималдылықтарды пайдаланған жөн немесе арнайы процедуралар (мысалы, басымдылықтарды өлшеу (салыстыру)) арқылы көп критерийлі ізденісті бір критерийліге келтірген дұрыс.
1 – 5 белгілерінің жиынтығы оптималды бағдарламалау есептері мен әдістерін жалпы түрде топтастыруға мүмкіндік береді, мысалы: 1а)2а)3а)4а)5а) – сызықтық бағдарламалаудың есептері мен әдістері, 1ә)2а)3а)4а)5а) – сызықтық емес бағдарламалаудың есептері мен әдістері, 1а)2ә)3а)4а)5а) – бүтінмәнді (дискретті) сызықтық бағдарламалаудың есептері мен әдістері және т. б.
2. Сызықтық бағдарламалау есебі және оның шешімдерінің қасиеттері
Берілген ресурстарды (қорларды) тиімді пайдалану арқылы қосымша пайданы арттыру немесе өндірістегі жалпы шығынды төмендету сияқты экономикалық есептердің математикалық модельдері сызықтық бағдарламалау есебі түрінде былайша қойылады:
Мына шектемелерді қанағаттандыратын:
a11x1 + a12x2 + … + a1nxn {≤ ,=, ≥} b1,
a21x1 + a22x2 + … + a2nxn {≤ ,=, ≥} b2,
………………………………………… (2.2)
am1x1 + am2x2 + … + amnxn {≤ ,=, ≥} bm,
xj ≥ 0, j = (2.3)
және
f (x) = c1x1 + c1x1 + … + c1x1 → max (min) (2.1)
мақсат функциясына максимум (немесе минимум) мәнін беретін n компонентті x = (x1, x2, …, xn) векторын табу.
Мұндағы aij, bi, cj — берілген тұрақты сандар, ал m < n; bi – оң сандар.
Экономикалық есептердің қойылу ерекшеліктеріне және математикалық зерттеулердің ыңғайына қарай сызықтық бағдарламалау есебі өзара пара-пар бірнеше түрде қойылады:
Мынадай түрде жазылған қойылымдар практикада жиірек кездеседі:
Матрицалық қойылым:
Мына шектемелерді қанағаттандыратын:
AX = B,
x ≥ 0
және
f (x) → max (min)
мәнін беретін x = (x1, x2, …, xn) векторын табу.
Мұндағы A = (aij)mxn – m жатық (көлбеу) жолдан және n тік жолдан тұратын матрица.
B = (b1, b2, …, bm) – m – компонентті тік вектор,
C = (c1, c2, …, cn) – n – компонентті жатық вектор.
Векторлық қойылым:
Мына шектемелерді қанағаттандыратын:
= b
xj ≥ 0, j = 1, 2, …, n
және
f (x) = → max (min)
мәнін беретін x = (x1, x2, …, xn) векторын табу.
Мұндағы Pj = – A матрицасының j-ші тік жолының элементтерінен құралған вектор.
Енді сызықтық бағдарламалау есебінің қасиеттерін тұжырымдауға қажетті бірнеше анықтамаларды қарастырайық. [2].
Бірінші анықтама. (2.2) және (2.3) шектемелерді қанағаттандыратын n компонентті x = (x1, x2, …, xn) векторы сызықтық бағдарламалау есебінің жоспары деп аталады.
Екінші анықтама. Егер мына жіктемедегі
P1, P2, …, Pk – векторлары сызықты тәуелсіз болып және xi =1, 2, …, k сызықтық коэффициенттері оң болатын болса, онда осы коэффициенттерден құралған x = (x1, x2, …, xn) векторы тіректі жоспар деп аталады.
m компонентті векторлардан құралған сызықты тәуелсіз векторлардың саны әруақытта m-нен аспайтындықтан, кез келген тіректі жоспардың нөлден үлкен компоненттерінің саны да m-нен артық бола алмайды, k ≤ m.
Үшінші анықтама. Оң компоненттерінің саны m-ге тең болатын тіректі жоспар ерекше емес тіректі жоспар деп аталады.
Төртінші анықтама. (2.1) – (2.3) сызықтық бағдарламалау есебінің (2.1) мақсат функциясына максимум (минимум) мәнін беретін жоспар оның оптималдық жоспары немесе шешімі деп аталады.
Енді осы анықтамалар негізінде сызықтық бағдарламалау есебінің шешімдер жиынының қасиеттерімен танысамыз:
1. Сызықтық бағдарламалау есебінің жоспарлар жиыны әруақытта да дөңес көпбұрыш болады.
2. Сызықтық бағдарламалау есебінің оптималдық жоспары мүмкіндік шешімдер жиынының шеткі нүктелерінің ішінен табылады. Егер шеткі нүктелерінің бірнешеуі бірдей оптималдық жоспар болатын болса, онда осы нүктелердің кез келген дөңес комбинациясы да сызықтық бағдарламалау есебінің оптималдық жоспары болады.
3. Егер P1, P2, …, Pk векторлар жүйесі сызықты тәуелсіз болып және мына векторлық теңдік орындалса:
P1x1 + P2x2 + …+ Pk xk = b
xj ≥ 0, i =1, 2, …, k,
онда x = (x1, x2, …, xk, 0, 0, …, 0 ) — n компонентті векторы S мүмкін шешімдер жиынының шеткі нүктесі болады.
Керісінше, егер x = (x1, x2, …, xn) векторы S мүмкіндіктер жиынының шеткі нүктесі болса, онда оның оң компоненттеріне сәйкес келетін Pi векторлары сызықты тәуелсіз жүйе құрайды.
Осыдан x = (x1, x2, …, xn) нүктесінің S дөңес көпбұрышының шеткі нүктесі болатындығын немесе болмайтындығын Pi, i = 1, 2, …, n векторлары арқылы анықтауға мүмкіндік береді.
m компонентті P1, P2, …, Pn векторларынан құралған кез келген m + 1 векторлар әруақытта сызықты тәуелді жүйе болатындықтан, S дөңес көпбұрышының кез келген шеткі нүктесіне m вектордан тұратын сызықты тәуелсіз жүйе сәйкес келеді.
Сонымен, кез келген x = (x1, x2, …, xn) ∊ S шеткі нүктесіне P1, P2, …, Pm сызықты тәуелсіз векторлар жүйесі сәйкес келеді де, мына шарттар орындалады:
= b
xj ≥ 0, i =1, 2, …, m.
3. Сызықтық бағдарламалау есебін графиктік әдіспен шешу
Егер сызықтық бағдарламалау есебі екі айнымалылы шектемелермен берілетін болса, онда оны графиктік әдіспен шешуге болады:
Мына шектемелерді қанағаттандыратын:
(3.2)
(3.3)
және
(3.1)
мақсат функциясына максимум (немесе минимум) мәнін беретін компонентті векторын табу. [1].
Сызықтық бағдарламалау есебін графиктік әдіспен шешу келесі қадамдардан тұрады:
Бірінші қадам. Ең алдымен координаттар жазықтығында шектемелерге сәйкес мүмкін болатын дөңес жиын (мүмкін шешімдер облысы, анықталу облысы) тұрғызылады. Содан кейін мақсат функциясының мүмкін шешімдер облысында жататын қандай да бір нүктесінде жататын вектор-градиент салынады:
.
Екінші қадам. максимумға ұмтылған жағдайда вектор-градиентке перпендикуляр түзуі дөңес жиынның шеткі нүктесіне жеткенге дейін осы вектор бағытында қозғалады. Бұл қозғалыстағы жиынның шеткі нүктесі (немесе шеткі нүктелері) функциясының максимум нүктесі болып табылады.
Үшінші қадам. Максимум нүктесінің координаттарын табу үшін өзара максимум нүктесінде қиылысатын түзулердің теңдеулер жүйесін шешу жеткілікті. Алынған нүктедегі функциясының мәні максимум болып табылады.
функциясын минимумдау жағдайында түзуін вектор-градиентке қарама-қарсы бағытта жылжыту қажет. Түсінікті, егер түзу қозғалыс кезінде мүмкін шешімдер облысынан шыға алмаса, онда сәйкес максимум немесе минимум жоқ.
4. Сызықтық бағдарламалау есебін шешудің симплекс әдісі
Есеп векторлық түрде қойылған болсын:
Мына шектемелерді қанағаттандыратын:
(4.2)
(4.3)
және
(4.1)
мақсат функциясына максимум (минимум) мәнін беретін компонентті векторын табу керек.
(4.1) – (4.3) түрінде қойылған сызықтық бағдарламалау есебінің мүмкін шешімдер жиынының бір шеткі нүктесінен екінші шеткі нүктесіне ауысуға болатындығын өткен бөлімде қарастырған болатынбыз.
Осылайша көшу барысында мақсат функциясының мәні біртіндеп өсіп отыратын болса, онда шеткі нүктелер арқылы нысаналы жылжу процесін бірнеше рет қайталанғаннан кейін оптималдық шешім табылады.
Осы есептеу процесін іске асыру барысында кезекті қадамда табылған шеткі нүктені екі көрсеткіші бойынша тексеруге тура келеді:
Бірінші, мақсат функциясының жаңадан табылған шеткі нүктедегі мәні өткен жолы табылған нүктедегі мәнінен артық болатындығын қамтамасыз ету.
Екіншіден, жаңадан табылған шеткі нүктенің оптималдық шешім еместігін аналитикалық сипаттамалар арқылы тексере отырып есептеу процесін тоқтату немесе одан әрі жалғастыру. Енді осы қойылған сұрақтар талаптарына орай қолданылатын математикалық әдістердің теориялық негіздерін келтіреміз.
4.1. Қарапайым базисті симплекс әдісі
Есеп векторлық түрде қойылған болсын:
Мына шектемелерді қанағаттандыратын:
(4.2.2)
(4.2.3)
және
(4.2.1)
мақсат функциясына максимум (минимум) мәнін беретін компонентті векторын табу. [4].
Мұндағы — компонентті тік жолдық вектор .
— векторларынан құралған кез келген вектор сызықты тәуелсіз тәуелсіз жүйе құрайды және олардың ішінде бірлік векторлардан құралған бірлік базис бар делік. Егер бірлік базис алғашқы орналасқан векторлардан тұрады десек, онда мынадай квадрат матрица шығады:
Бірлік матрицаға сәйкес келетін кері матрицасында бірлік матрица болатындығына сүйене отырып, алғашқы тіректі жоспарды былайша өрнектей аламыз:
(4.2.4)
(4.2.5)
мұрдағы
базисі бірлік матрицасы болғандықтан, (4.2.5) теңдіктер бойынша жіктелу коэффициенттері матрицасының сәйкес элементтеріне тең болады:
.
Сонда
(4.2.6)
(4.2.7)
Енді тіректі шешімінің оптималдығын тексеруге және келесі оптималдық шешімге ауысуға қажетті (4.2.4) – (4.2.7) өрнектерінен алынған барлық деректерді (есеп шығару процесінде көрнектірек болу үшін) жатық жолынан және тік жолынан тұратын симплекс кестесіне орналастырамыз (1-кесте).
Симплекс кестесі
1-кесте. Есептеу процесінің алғашқы қадамы (итерациясы).
i базис c b c1 c2 … cl … cm cm+1 … cj … ck … cn
P1 P2 … Pl … Pm Pm+1 … Pj … Pk … Pn
1 P1 c1 x1 1 0 … 0 … 0 x1m+1 … x1j … x1k … x1n
2 P2 c2 x2 0 1 … 0 … 0 x2m+1 … x2j … x2k … x2n
… … … … … … … … … … … … … … … … …
l Pl cl xl 0 0 … 1 … 0 xlm+1 … xlj … xlk … xln
… … … … … … … … … … … … … … … … …
m Pm cm xm 0 0 … 0 … 1 xmm+1 … xmj … xmk … xmn
m+1 Δ j z0 0 0 … 0 … 0 Δ m+1 … Δ j … Δ k … Δ n
Тіректі шешімнің базистік (оң) компоненттері , мақсат функциясының оларға сәйкес келетін компоненттері және әрбір тік жолының базисіне сәйкес келетін жіктелу коэффициенттері симплекс кестесінің алғашқы жолдарының торларына жазылады.
Ал кестенің соңғы -ші жолының торларына мақсат функциясының тіректі шешіміндегі мәні және тік жолдарының базис бойынша есептелген бағалары жазылады.
Осы бағаларының ішінде ең болмағанда біреуінің мәні теріс болсын делік. Онда оптималдық емес белгісі туралы теорема бойынша табылған векторы оптималдық шешім бола алмайды, яғни теңсіздігі мүмкін шешімдер жиынында «жақсырақ» шешімдер бар екендігін көрсетеді. «Жақсырақ» шешімнің біреуін табу үшін теріс бағалы тік жолдарының біреуін базиске енгіземіз. Ол тік жолдың нөмірі мына формула бойынша анықталады:
,
яғни векторын базиске енгізу арқылы жақсартылған шешімді таба аламыз.
Ескі базистен шығарылатын вектордың нөмірі мына өрнек бойынша анықталады:
яғни базистік векторларының ішінен векторы шығарылады да, оның орнына жаңа векторы енеді. Сонда жаңа табылған шешім векторларынан тұратын базис бойынша сипатталады.
Симплекс кестесінің келесі итерациядағы элементтері есептеу геометриялық тұрғыдан мынадай тік төртбұрыш схемасына сәйкес келеді:
1.
— жіктелу коэффициенттерін
есептеу үшін.
2.
— жаңа базистік компоненттерін
есептеу үшін.
3.
— Мақсат функциясының жаңа тіректі
жоспардағы мәнін есептеу үшін.
— тік жолдарының жаңа базиске
сәйкес келетін бағаларын есептеу
үшін.
(4.2.12) – (4.2.14) формулаларының есептеу схемалары матрицаның бас элементін таңдап алып Жордан-Гаусстың белгісіз айнымалыларды біртіндеп шығару арқылы матрицаны түрлендіру схемасына негізделген.
Сонымен, белгілі бір итерацияға сәйкес симплекс кестесінің барлық элеметтері анықталған болса, онда симплекс кестесінің келесі итерацияға сәйкес келетін элементтері мына ретпен анықталады:
1) Симплекс кестесінің -ші жолында жазылған бағаларының таңбалары бойынша табылған тіректі жоспардың оптималдылығын тексереміз. Егер барлық тік жолдар үшін болса, онда табылған тіректі жоспар оптималды болады.
2) Егер -дің белгілі мәндерінде теріс бағалар сәйкес келетін болса, онда табылған тіректі жоспар оптималды болмайды да, одан «жақсырақ» тіректі жоспарды табу үшін өрнегі бойынша анықталған тік жолы базиске енгізіледі.
3) өрнегі бойынша анықталған векторы ескі базистен шығарылып қалады. Егер мәндерінің барлығына теріс мәндер сәйкес келетін болса, онда мақсат функциясының максимум мәні шексіздік болады.
4) Базиске енгізілетін тік жолы мен базистен шығарылатын жолы анықталғаннан кейін бас элементі бойынша симплекс кестесінің элементтері (4.2.12) – (4.2.14) рекуренттік формулаларының көмегімен түрлендіріледі.
Соның нәтижесінде жаңа тіректі жоспар және оған сәйкес келетін базис бойынша есептелген жіктелу коэффициенттері, тік жолдарының бағалары және мақсат функциясының мәні анықтлады.
1 – 4 кезеңдерде көрсетілген түрлендірулер арқылы тіректі шешімдер біртіндеп «жақсартыла» береді де, бірнеше итерациядан оптималдық белгісін қанағаттандыратын (яғни болатын) оптималды тіректі шешім табылады.
2-кесте. Есептеу процесінің екінші итерациясы.
i Базис c b c1 c2 … cn … cm cm+1 … cj … ck … cn
P1 P2 … Pl … Pm Pm+1 … Pj … Pk … Pn
1 P1 c1 x11 1 0 … x11l … 0 x111m+1 … x11j … 0 … x11n
2 P2 c2 x12 0 1 … x12l … 0 x112m+1 … x12j … 0 … x12n
… … … … … … … … … … … … … … … … …
Pk ck x1k 0 0 …
… 0 x11lm+1 … x1lj … 1 … x1ln
… … … … … … … … … … … … … … … … …
Pm cm x1m 0 0 … x1ml … 1 x11mm+1 … x1mj … 0 … x1mn
m+1 Δ j z10 0 0 … 0 … 0 Δ1m+1 … Δ1j … 0 … Δ1n
4.2. Жасанды базисті симплекс әдісі (M-есебі)
Сызықтық бағдарламалау есебінің қойылымында бірлік базис болмаған жағдайда алғашқы жоспарды табу үшін жасанды бірлік базисін енгізуге тура келеді. Сол жағдайда құрастырылған кеңейтілген есепті симплекс әдісімен шешу берілген есептің оптималдық шешімін табуға мүмкіндік береді.
Сызықтық бағдарламалау есебі мына түрде қойылған болсын:
a11x1 + a12x1 + … + a1nx1 = b1
a21x1 + a22x1 + … + a2nx1 = b2
…………………………………… (4.3.2)
am1x1 + am2x1 + … + amnx1 = bm
(4.3.3)
шарттарын қанағаттандыратын және
(4.3.1)
мақсат функциясына максимум (минимум) мәнін беретін векторын табу керек.
Жалпы жағдайда матрицасының тік жолдарының ішінде бірлік векторлар бола бермейді. Сондықтан (4.3.1) – (4.3.3) есепке сәйкес келетін кеңейтілген есеп былайша қойылады:
(4.3.5)
(4.3.6)
шарттарын қанағаттандыратын және
(4.3.4)
мақсат функциясына максимум (минимум) мәнін беретін векторын табу керек.
Мұндағы айнымалысының шамасы өте үлкен оң сан деп есептеледі. (4.3.4) – (4.3.6) қойылым кеңейтілген есеп деп аталады.
Егер тік жолдық векторларын енгізсек, онда (4.3.5) теңдеулер жүйесін мына түрде жазуға болады:
Сонда векторлары жасанды базис деп аталатын бірлік базис құрайды, ал оларға сәйкес келетін қосымша айнымалылар деп аталады.
Егер (4.3.1) – (4.3.3) түрде қойылған есептің ең болмағанда бір шешімі болатын болса, онда ол (4.3.4) – (4.3.6) кеңейтілген есебінің оптималды шешімінде бірде-бір қосымша айнымалысы болмайды.
Кеңейтілген есептің құрамында жасанды бірлік базистың болуы ол есептің оптималды шешімін табу үшін симплекс әдісін пайдалануға мүмкіндік береді.
Егер алғашқы қойылымдағы (4.3.1) – (4.3.3) есептің бірде-бір шешімі болмаса, онда айнымалыларының ең болмағанда біреуі (4.3.4) – (4.3.6) кеңейтілген есебінің оптималды шешімінің базистік компоненттерінің құрамында қалады.
векторы кеңейтілген есептің алғашқы тіректі шешімі болады.
— (4.3.4) мақсат функциясының коэффициент-терінен құралған вектор, — компонентті вектор, ал — мақсат функциясының алғашқы мәні.
Алғашқы базис бірлік матрица болғандықтан, — тік жолдық векторларының бірлік базис бойынша жіктелу коэффициенттері осы векторлардың коэффициенттеріне тең болады, яғни .
Сондықтан жолының бағасы былайша өрнектеледі:
(4.3.7)
(4.3.7) баға өрнегі өзара тәуелсіз екі бөліктен тұрады. Бірінші бөлігі параметріне тәуелді де, ал екінші бөлігі параметріне тәуелсіз.
Сондықтан симплекс кестесінің көршілес және жолдарына баға өрнегінің өзара тәуелсіз екі бөлігін орналастыру арқылы табылған шешімнің оптималдылығын тексере аламыз.
Ол үшін жолының -ші элементі — , ал жолының -ші элементі -ге тең болуы тиіс. Сонда кеңейтілген есепке сәйкес келетін симплекс кестесін Гаусс әдісінің тіктөртбұрыш схемасы бойынша түрлендіру арқылы оптималды шешімін таба аламыз. Тек ескеретін бір ерекшелік мынадай: егер айнымалыларының ең болмағанда біреуі базистік компонент болса, онда базиске енгізілетін тік жолы симплекс кестесінің -ші жолындағы теріс мәндер бойынша анықталады.
Ал айнымалыларының ешқайсысы базистік компонент болмаса (яғни ), онда базиске енгізілетін тік жолы симплекс кестесінің -ші жолындағы теріс элементтері бойынша анықталады.
Бұл жағдайда жатық жол элементтері және тік жолдары симплекс кестесінен сызылып тасталады. Кеңейтілген есепке сәйкес келетін симплекс кестесінің қалпы (жалпы пішіні) 3-кестеде келтірілген.
3-кесте. Жасанды базис әдісін есептеу процесінің нөлінші итерациясы.
базис
…
…
…
…
…
…
…
…
1
…
…
1 0 … 0 … 0
2
…
…
0 1 … 0 … 0
… … … … … … … … … … … … … … … …
…
…
0 0 … 1 … 0
… … … … … … … … … … … … … … … …
…
…
0 0 … 0 … 1
1 0
…
…
0 0 … 0 … 0
… 0 0 … 0 … 0
5. Сызықтық бағдарламалаудың екі жақты есептері
Сызықтық бағдарламалаудың әр бастапқы есебіне сәйкес басқа екінші жақты есеп болады. Екі жақтылық теориясы өте маңызды, әсіресе, сызықтық бағдарламалау есебіне сапалы түрде зерттеу жүргізгізе отырып, тек оптималды шешім ғана табу үшін ғана емес, сонымен қатар, есептің бастапқы ақпараттары туралы параметрлердің оптималды шешімге әсерін анықтауда.
Мынадай мысал қарастырайық: қандай да бір ұйым бір кәсіпорынның ресурстарын сатып алу туралы шешім қабылдады делік, және де ресурстарына оптималды баға орнату керек. Мұнда — ресурсы бірлігінің құны (мысалы, құрылғылар бірлігі үшін – бір станоктың құны, еңбек ресурстары үшін – бір адам-күн, ғимараттар үшін — өндірістік алаңның 1 м2 құны және т. с. с.).
Әрине, сатып алушы ұйым барлық ресурсқа жинағынан тұратын шығынының минималды болғанын қалайды, яғни:
(5.1)
Екінші жағынан, ресурстарын сатушы кәсіпорын да өз кезегінде осы ресурстарды сатқаннан түскен пайданың осы ресурстарды өзі өңдеп, дайын өнім шығарып сатқанда түскен пайдадан кем болмағанын қалайды.
Бірінші (бастапқы) есеп Екінші (жақты) есеп
a11 x1 + a12 x2 + a13 x3 + … + a1n xn ≤ b1
a21 x1 + a22 x2 + a23 x3 + … + a2n xn ≤ b2
a31 x1 + a32 x2 + a33 x3 + … + a3n xn ≤ b3
…………………………………………………
am1 x1 + am2 x2 + am3 x3 + … + amn xn ≤ bm
шектемелерін қанағаттандыратын және
теріс еместік шарты орындалатын
мақсат функциясының ресурстарды тұтыну олардың әрқайсысы бойынша бар қорлардан асып кетпеу шартын орындалатын өнімін шығарғанда максималды табыс әкелетін жоспар құру керек. a11 y1 + a21 y2 + a31 y3 + … + am1 ym ≤ c1
a12 y1 + a22 y2 + a32 y3 + … + am2 ym ≤ c2
a13 y1 + a23 y2 + a33 y3 + … + am3 ym ≤ c3
………………………………………………
a1n y1 + a2n y2 + a3n y3 + … + amn ym ≤ cn
шектемелерін қанағаттандыратын және
теріс еместік шарты орындалатын
мақсат функциясының әр өнімді өндіруге қажетті ресурстардың шығындары осы өнімнің әр түрін сатқаннан түскен пайдадан кем болмау шарты орындалғанда, ресурстарына жалпы шығынды минималдайтын бағалар жиынтығын (баға) табу керек.
Өндірісте өнімнің белгілі бір түрін шығаруға кететін шекті шығын белгілі болғандықтан, сатушы талаптарын шектемелер жүйесі түрінде жазуға болады. Мысалы, бірінші өнім түрін өндіруге қойылатын шектеме былай жазылады:
a11 y1 + a21 y2 + a31 y3 + … + am1 ym ≤ c1 (5.2)
Осылайша әр өнім түріне сәйкес шектемелерді жазуға болады. Екінші жақты есептің математикалық моделі мен мазмұндық көрінісі жоғарыдағы кестенің оң жағында көрсетілген.
Енді формалды түрде кестеде көрсетілген сызықтық бағдарламалаудың екі есебін (I және II) олардың мазмұндық көрінісі мен математикалық моделінен алыстай отырып қарастырайық. Екі есептің де төмендегідей қасиеттері бар:
Бір есепте сызықтық функцияның максимумы ізделсе, келесісінде минимумы ізделеді.
Бірінші есептегі сызықтық функция айнымалыларының коэффициенттері екінші есепте шектемелер жүйесінің бос мүшесі.
Максимумдау есептерінде шектеме-теңсіздіктердің таңбалары « » болса, ал минимумдау есептерінде барлық теңсіздіктер « » түрінде болады.
Екі есептің де шектемелер жүйесіндегі айнымалылар коэффициенттерінің матрицалары бір-біріне қарағанда транспондалған болады, яғни:
I есеп үшін II есеп үшін
Бірінші есептегі шектмелер жүйесіндегі теңсіздіктер саны екінші есептегі айнымалылар санына тең.
Екі есепте де теріс еместік шарты орындалады.
Осындай қасиетттерге ие сызықтық бағдарламалаудың екі есебін (I және II) өзара екі жақты симметриялы есеп деп атайды.
ІІ БӨЛІМ. ПРАКТИКАЛЫҚ БӨЛІМ
1-МЫСАЛ.
А және Б түрлі карамельдер шығару үшін кондитер фабрикасы үш түрлі шикізат пайдаланады.
Технологиялық нормалар бойынша А түрлі карамельдің бір қорабын өндіріп шығару үшін шикізаттар шығыны 3,5 кг, 7 кг және 8 кг жұмсалса, ал Б түрлі карамельдің бір қорабын өндіріп шығаруға кететін сәйкес шикізат шығындары: 8 кг, 3 кг және 7 кг.
Фабрикадағы сәйкес шикізат қорлары (запастары) – 28 кг, 21 кг және 28 кг мөлшерінде.
Фабрика А түрлі карамельдің әрбір қорабын сатқаннан 400 теңге, ал Б түрлі карамельдің әрбір қорабынан 300 теңге түсіреді. Осы шарттарға сәйкес А және Б карамельдерін қанша мөлшерде өндіріп шығарғанда фабриканың көп пайда табатындығын анықтау қажет.
Осы есептің шешімін табуүшін алдымен оның математикалық моделін құрамыз. Егер А түрлі карамель x1 мөлшерінде, ал Б түрлі карамель x2 мөлшерінде шығарылатын болса, онда оларды сатқаннан түсетін таза пайда f(x) = 400×1 + 300×2 теңге болады.
Қойылған шарттарға сәйкес мынадай математикалық есеп шығады:
Мына шектемелерді қанағаттандыратын:
3,5×1 + 8×2 ≤ 28
7×1 + 3×2 ≤ 21 (1.2)
8×1 + 7×2 ≤ 28
x1 ≥ 0, x2 ≥ 0 (1.3)
және
f(x1, x2) = 400×1 + 300×2 → max (1.1)
мақсат функциясының максимум мәнін беретін x = (x1, x2) векторын табу.
Осылайша қойылған (1.2) және (1.3) шарттарды қанағаттандыратын шешімдердің ішінен (1.1) функцияға максимум мәнін беретін шешім табу есебі бастапқы қойылған есептің математикалық моделін құрайды.
Енді осы есепті графиктік әдіс арқылы шешейік. Ең алдымен бірінші теңсіздіктер үшін шешімдер жиынын (теңдеулердің шешімі мен түзулер бөлетін қажетті шешімдер жарты жазықтығын) анықтаймыз. Ол үшін теңсіздіктерді 0-ге теңестіреміз. Нәтижесінде алынған теңдеулердің айнымалыларын алма-кезек 0-ге теңестіру арқылы түзулердің координаттарын тауып аламыз:
3,5×1 + 8×2 – 28 = 0 (8; 0) (0; 3,5)
7×1 + 3×2 – 21 = 0 (3; 0) (0; 7)
8×1 + 7×2 – 28 = 0 (3,5; 0) (0; 4)
Енді түзулер бөлетін қажетті шешімдер жарты жазықтығын анықтау үшін әр теңсіздікке (0;0) координатын қоямыз. Осыдан шығатыны, біздің есебімізде теңсіздіктеріміз 0-ден кіші болғандықтан, әр теңсіздіктің шешімдер облысы ретінде төменгі жарты жазықтық алынады (1-сурет).
Барлық теңсіздіктер үшін жалпы облысты штрихтаймыз да, дөңес көпбұрыштың төбелерін латын әріптерімен белгілеп, координаттарын табамыз. Мысалы, B нүктесі (I және III түзулердің қиылысу нүктесі) үшін:
, x1 = 0,71, x2 = 3,19
Мысалы, C нүктесі (II және III түзулердің қиылысу нүктесі) үшін:
, x1 = 2,52, x2 = 1,12
Сонымен, OABCD дөңес көпбұрышының төбелерінің координаттары мынадай: O(0;0), A(0;3,5), B(0,71;3,19), C(2,52;1,12), D(3;0).
1-сурет.
Енді қозғалыс бағытын анықтау үшін вектор-градиент жүргіземіз, ал ол мынаған тең: = (c1, c2) = (400, 300). Бұл векторды салу ыңғайсыз болғандықтан, оған пропорционал 1/100 = (4, 3) векторын жүргіземіз.
Ендігі кезекте OABCD дөңес көпбұрышының төбелерінің координаттарының мәндерін f(x) мақсат функциясына қойып, ең оптималды шешімді табамыз:
f(O) = 400 ∙ 0 + 300 ∙ 0 = 0
f(A) = 400 ∙ 0 + 300 ∙ 3,5 = 1050
f(B) = 400 ∙ 0,71 + 300 ∙ 3,19 = 1241
f(C) = 400 ∙ 2,52 + 300 ∙ 1,12 = 1344
f(D) = 400 ∙ 3 + 300 ∙ 0 = 1200
Осыдан шығатыны f(x) мақсат функциясы өз максимумына C нүктесінде ие болады, яғни f(C) → max.
2-МЫСАЛ.
Кәсіпорын А1 және А2 өнімдерін өндіру үшін екі түрлі шикізат пайдаланады: Б1 және Б2. Шарттар туралы мәліметтер 4-кестеде көрсетілген.
4-кесте.
Шикізат Өнім данасын өндіруге кеткен шығын, кг/дана
Шикізат саны, кг
А1 А2
Б1
Б2 2
3 5
4 250
240
Өнім данасын сатудан түскен пайда, мың тг./дана
5
6
–
«Максимум пайда» критерийі бойынша өндіріс жоспарын құру керек.
Шешуі. А1 өнімінің өндіріс көлемін x1 деп, ал А2 өнімінің өндіріс көлемін x2 деп белгілеу арқылы есептің математикалық моделін құрамыз:
2×1 + 5×2 ≤ 250,
3×1 + 4×2 ≤ 240, (2.2)
x1 ≥ 0, x2 ≥ 0 (2.3)
шектемелерін қанағаттандыратын
f(x) = 5×1 + 6×2 → max (2.1)
Қосымша x3 және x4 айнымалыларын енгізу арқылы есепті канондық түрге келтіреміз:
немесе
2×1 + 5×2 + x3 = 250,
3×1 + 4×2 + x4 = 240, (2.5)
xj ≥ 0, j = 1, 2, 3, 4 (2.6)
f(x) = 5×1 + 6×2 + 0x3 + 0x4 → max (2.4)
Есептің тіректі шешімі – (0,0,250,240) және оны симплекс әдісімен шешуге болады (5-кесте).
5-кесте.
i базис c b 5 6 0 0 Q итерация нөмірі
P1 P2 P3 P4
1 ←P3 0 250 2 5
1 0 50
0
2 P4 0 240 3 4 0 1 60
3 Δ j = zj — cj 0 -5 -6 0 0
1 →P2 6 50 2/5 1 1/5 0 125
1
2 ←P4 0 40 7/5
0 -4/5 1 200/7
3 Δ j – 300 -13/5 0 6/5 0
1 P2 6 270/7 0 1 3/7 -2/7 2
2 →P1 5 200/7 1 0 -4/7 5/7
3 Δ j – 1580/7 0 0 -2/7 13/7
Келесі тіректі жоспарға P2 базисін енгізу арқылы көшеміз, бірақ (0,50,0,40) екінші тіректі жоспары оптималды емес. Сондықтан келесі тіректі көшу үшін P2 базисын енгіземіз. Нәтижесінде (200/7,270/7,0,0) оптималды жоспарын аламыз, яғни кәсіпорын 1580/7 мың тг. көлемінде максимум пайда табады, егер А1 тауарын 200/7 дана, А2 тауарын 270/7 дана шығаратын болса.
3-МЫСАЛ.
Фирма төрт (I, II, III және IV) сортты тыңайтқыш шығару үшін азот, фосфор және калий тыңайтқыштарын пайдаланады. Шарттар туралы мәліметтер 6-кестеде көрсетілген.
6-кесте.
Тыңайтқыштар Тыңайтқыш данасын өндіруге кеткен шығын, фунт/дана Шикізат саны, фунт
I сорт II сорт III сорт IV сорт
Азот
Фосфор
Калий 3
2
1 2
1
3 1
4
3 4
3
2 20
16
15
Тыңайтқыш данасын сатудан түскен пайда, мың тг./дана
10
14
15
8
–
«Максимум пайда» критерийі бойынша өндіріс жоспарын құру керек.
Осы есептің математикалық моделін құрайық.
Мына шектемелерді қанағаттандыратын:
3×1 + 2×2 + x3 + 4×4 = 20
2×1 + x2 + 4×3 + 3×4 = 16 (3.2)
x1 + 3×2 + 3×3 + 2×4 = 15
xj ≥ 0, j = 1, 2, 3, 4 (3.3)
және
f(x) = 10×1 + 14×2 + 15×3 + 8×4 → max (3.1)
Берілген есептің (3.2) теңдеулер жүйесінде бірлік базис болмағандықтан, (3.1) – (3.3) есепке сәйкес келетін кеңейтілген есепті қарастырамыз. Ол үшін әрбір шектемеге сәйкес x5, x6, x7 қосымша айнымалыларын енгіземіз. Сонда мынадай есеп қойылады:
Мына шектемелерді қанағаттандыратын:
3×1 + 2×2 + x3 + 4×4 + x5 = 20
2×1 + x2 + 4×3 + 3×4 + x6 = 16 (3.5)
x1 + 3×2 + 3×3 + 2×4 + x7 = 15
xj ≥ 0, j = 1, 2, …, 7 (3.6)
және
F(x) = f(x) – M(x5 + x6 + x7) =
= 10×1 + 14×2 + 15×3 + 8×4 – M(x5 + x6 + x7) (3.4)
Енді осы есепті жасанды базисті симплекс әдісімен шешейік (7-кесте).
7-кесте.
i базис c b 10 14 15 8 -M -M -M итерация нөмірі
P1 P2 P3 P4 P5 P6 P7
1 ←P5 -M 20 3 2 1 4
1 0 0
0
2 P6 -M 16 2 1 4 3 0 1 0
3 P7 -M 15 1 3 3 2 0 0 1
4 Δ j 1 0 -10 -14 -15 -8 0 0 0
5 M -51 -6 -6 -8 -9 0 0 0
1 →P4 8 5 3/4 1/2 1/4 1 1/4 0 0
1
2 ←P6 -M 1 -1/4 -1/2 13/4
0 -3/4 1 0
3 P7 -M 5 -1/2 2 5/2 0 -1/2 0 1
4 Δ j 1 40 -4 10 -13 0 2 0 0
5 M -6 3/4 -3/2 -23/4 0 9/4 0 0
1 P4 8 4/13 10/13 7/13 0 1 4/13 -1/13 0
2
2 →P3 15 4/13 -1/13 -2/13 1 0 -3/13 4/13 0
3 ←P7 -M 5/13 -4/13 31/13
0 0 1/13 -10/13 1
4 Δ j 1 44 -5 -12 0 0 -1 4 0
5 55/13 4/13 31/13 0 0 0 23/13 0 0
1 ←P4 8 123/31 26/31
0 0 1 9/31 -9/31 -7/31
3
2 P3 15 234/403 -3/31 0 1 0 -7/31 8/31 2/31
3 P2 14 55/31 -4/31 1 0 0 1/31 -10/13 13/31
4 Δ j 1 234/403 -203/31 0 0 0 1 1 1
5 M 0 0 0 0 0 1 1 1
1 ←P4 8 123/31 26/31
0 0 1
31
2 P3 15 234/403 -3/31 0 1 0
3 P2 14 55/31 -4/31 1 0 0
4 Δ j 1 234/403 -203/31 0 0 0
1 →P1 10 123/36 1 0 0 31/26
4
2 P3 15 27/26 0 0 1 3/26
3 P2 14 31/13 0 1 0 2/13
4
1 2503/26 0 0 0 203/26
Жоғарыдағы кесте бойынша төрт жолдан тұратын симплекс кестесі бойынша оптималдық шешім ізделінеді. Сонда төртінші итерацияда алынған оптималдық шешім мынадай: . — мақсат функциясының оптималды шешімге сәйкес келетін оптималды (максимум) мәні.
ҚОРЫТЫНДЫ
Сонымен, қорыта келгенде, мынадай тұжырым жасауға болады: «Оптимизациялау теориясында мүмкін болатын шешімдердің ішінен мақсат функциясы деп аталатын функцияға ең үлкен немесе ең кіші мән беретін ең жақсы шешімді табу әдістерін зерттеу мәселелері қарастырылады, және кез келген өндіріс фирмасының негізгі мақсаты – көбірек пайда табу.»
Практикалық бөлімде қарастырылған есептерден мынадай нәтижелер алынды:
1-мысал бойынша:
мақсат функциясы өз максимумына нүктесінде ие болады, яғни .
2-мысал бойынша:
Кәсіпорын үшін ең оптималды жоспар – (200/7,270/7,0,0), яғни кәсіпорын 1580/7 мың тг. көлемінде максимум пайда табады, егер А1 тауарын 200/7 дана, А2 тауарын 270/7 дана шығаратын болса.
3-мысал бойынша:
Фирма үшін ең оптималды жоспар – , яғни фирма 2503/26 мың тг. көлемінде максимум пайда табады, егер І сортты тыңайтқышты 123/26 дана, ІІ сортты тыңайтқышты 31/13 дана, ІІІ сортты тыңайтқышты 27/26 дана шығарып, ал ІV сортты тыңайтқышты шығармай-ақ қойса.
ПАЙДАЛАНЫЛҒАН ӘДЕБИЕТТЕР
1. Федосеев В. В. и др. Экономико-математические методы и прикладные модели. – М., 1999.
2. Оспанов С.С. Экономикадағы сызықтық оптимизациялық модельдер. – Алматы: Қазақ университеті, 1999.
3. Кантарович Л.В., Горстко А.Б. Оптимальные решения в экономике. – М., 1972.
4. Гасс С.Н. Линейное программирование. – М., 1961.