Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 8

Настава за линеарно програмирање со

помош на Microsoft Excel Solver


Зиги Мекдоналд
Универзитетот во Лестер

Линеарното програмирање (ЛП) е една од најраспространетите ИЛИ техники и


својата популарност ја должи главно на методот симплекс на Џорџ Данциг (Данзиг
1963) и револуцијата во компјутерите. Тоа е многу моќна техника за решавање на
проблемите со распределба и стана стандардна алатка за многу бизниси и
организации. Иако симплекс методот на Данциг дозволува решенијата да се
генерираат рачно, итеративната природа на производството на решенија е толку
мачна што доколку компјутерот никогаш не бил измислен, тогаш линеарното
програмирање би останало интересна академска идеја, пренесена во училницата по
математика. За среќа, компјутерите беа измислени и бидејќи станаа толку моќни за
толку мала цена, линеарното програмирање стана веројатно една од
најраспространетите употреби за персонален компјутер.

Се разбира, постојат бројни софтверски пакети кои се посветени на решавање на


линеарни програми (и други видови математички програми), од кои можеби
најпопуларни се LINDO, GAMS и XPRESS-MP. Сите овие пакети имаат тенденција
да бидат базирани на DOS и се наменети за специјализиран пазар кој бара алатки
посветени на решавање на LP. Меѓутоа, во последниве години, неколку стандардни
деловни пакети, како што се табеларни пресметки, почнаа да вклучуваат опција за
решавање на LP, а Microsoft Excel не е исклучок. Вклучувањето на способност за
решавање на LP во апликации како што е Excel е привлечно од најмалку две
причини. Прво, Excel е можеби најпопуларната табела што се користи и во
бизнисот и на универзитетите и како таква е многу достапна. Второ по ова,
табеларната табела нуди многу погодни функции за внесување и уредување
податоци што му овозможува на ученикот да стекне подобро разбирање за тоа како
да конструира линеарни програми.

За да користите Excel за решавање на проблемите со LP, мора да биде вклучен


додатокот за Solver. Вообичаено, оваа функција не е стандардно инсталирана кога
Excel за прв пат се поставува на вашиот хард диск. За да ја додадете оваа можност
во вашето мени Алатки, треба да ги извршите следните чекори (само еднаш):

1. Изберете ја опцијата од менито Алатки | Add_Ins (ова ќе потрае неколку


моменти за да се вчита потребната датотека).
2. Од прикажаното поле за дијалог, проверете го полето за додаток за
решавање.
3. Со кликнување на ОК, тогаш ќе можете да пристапите до опцијата Решавач
од новата опција од менито Алатки | Решавач (кој се појавува под Алатки |
Сценарија ...)
За да го илустрирам Excel Solver, ќе го разгледам разумно добро познатиот пример
на Hillier & Lieberman, проблемот Wyndor Glass Co. (Hillier & Lieberman, 1995).
Проблемот се однесува на производителот на стакло кој користи три
производствени погони за да ги состави своите производи, главно стаклени врати
(x1) и прозорци од дрвени рамки (x2). Секој производ бара различно време во трите
погони и постојат одредени ограничувања за достапното време на производство во
секоја фабрика. Со овие информации и знаење за придонесите во профитот на
двата производи, менаџментот на компанијата сака да одреди колкави количини од
секој производ треба да произведува за да го максимизира профитот. Со други
зборови, проблемот Wyndor Glass Co. е класичен, иако многу едноставен проблем
со мешање на производи.

Проблемот е формулиран како следнава линеарна програма:

max z = 3x1 + 2x2 (цел)

предмет на x1 <= 4 (Прво растение)


2x2 <= 12 (Растенија втора)
3x1 + 2x2 <= 18 (растение трета)

x1, x2 >= 0 (барања за негативност)

каде z = вкупен профит неделно


x1 = број на серии на врати произведени неделно
x2 = број на серии произведени прозорци неделно.

Откако го формулиравте проблемот, а вашиот може да има значително повеќе


променливи за одлучување и ограничувања, потоа можете да продолжите да го
внесувате во Excel. Најдобар пристап за внесување на проблемот во Excel е прво да
се наведат во колона имињата на целната функција, променливите за одлучување и
ограничувањата. Потоа можете да внесете некои произволни почетни вредности во
ќелиите за променливите за одлучување, обично нула, прикажани на Слика 1. Excel
ќе ги менува вредностите на ќелиите бидејќи ги одредува оптималните решенија.
Откако ги доделивте променливите за одлука со некои произволни почетни
вредности, можете да ги користите овие референци на ќелиите експлицитно при
пишување на формулите за целната функција и ограничувањата, не заборавајте да
ја започнете секоја формула со '='.
Слика еден: Поставување на проблемот во Excel

Внесувајќи ги формулите за целта и ограничувањата, функцијата за цел во Б5 ќе


биде дадена со:

=3*B9+2*B10

Ограничувањата ќе бидат дадени со (ставање на вредностите на десната страна


{RHS} во соседните ќелии):

Фабрика Еден (Б14) = Б9


Фабрика два (Б15) =2*Б10
Растение Три (Б16) =3*Б9+2*Б10
Не-нег 1 (B17) =B9
Non neg 2 (B19) =B10

Сега сте подготвени да го користите Solver.

При изборот на опцијата од менито Алатки | Решавач, полето за дијалог прикажан


на Слика 2 се открива и ако ја изберете целната ќелија пред да го повикате Solver,
ќе се идентификува точната целна ќелија. Ова е вредноста што Solver ќе се обиде
или да ја максимизира или минимизира.
Слика 2: Поле за дијалог за решавање

Изберете дали сакате да го минимизирате ова или да го максимизирате проблемот,


во овој случај би сакале да ја поставите целната ќелија (целта) на Max. Забележете
дека можете да го користите Solver за да го пронајдете резултатот што ќе постигне
одредена вредност за целната ќелија со кликнување на „Вредност на:“. Притоа,
можете да го користите Solver како прославен барател на цели. Следно, го
внесувате опсегот на ќелии што сакате Solver да варира, променливите за одлука.
Кликнете на белото поле и изберете ќелии B9 и B10, или алтернативно внесете ги.
Забележете дека може да се обидете да го натерате Solver да погоди кои ќелии
сакате да се разликуваат со кликнување на копчето „Погоди“. Ако сте го
дефинирале вашиот проблем на логичен начин, Решавачот обично треба да ги
исправи овие работи.

Сега можете да ги внесете ограничувањата со прво кликнување на копчето


„Додај ..“. Ова го открива полето за дијалог прикажан на Слика три.

Слика три: Внесување ограничувања

Референцата на ќелијата е до ќелијата што ја содржи формулата за ограничување,


така што за ограничувањето Plant One внесете B14. Стандардно <= е избрано, но
можете да го промените ова со кликнување на паѓачката стрелка за да се открие
список со други типови на ограничувања. Во белото поле од десната страна ја
внесувате референцата на ќелијата до ќелијата што ја содржи вредноста на RHS,
што за ограничувањето Plant One е ќелијата C14. Потоа кликнете на „Додај“ за да
ги додадете останатите ограничувања, не заборавајте да ги вклучите
ограничувањата што не се негативни.

Откако ги додадовте сите ограничувања, кликнете 'OK' и полето за дијалог Solver


треба да изгледа како што е прикажано на Слика четири.

Слика четири: Поле за дијалог за завршено решение

Пред да кликнете на „Реши“, добра практика е кога правите ЛП да одите во Опции


и да го штиклирате полето „Претпостави линеарен модел“, освен ако, се разбира,
вашиот модел не е линеарен (Решавачот може да се справи со повеќето
математички типови програми, вклучително и не- линеарни и целобројни задачи).
Со ова може да се забрза времето потребно за Solver да најде решение за проблемот
и всушност, исто така ќе обезбеди точен резултат и многу важно, ќе обезбеди
релевантен извештај за чувствителност. Откако ја избравте оваа опција, сега сте
подготвени да кликнете на „Реши“ и да видите „Решавач“ ги наоѓа оптималните
вредности за вратите и прозорците. Кога ќе го направите ова, Excel ќе ве
информира на дното на екранот за напредокот на Solver, а потоа при наоѓање на
оптимално решение ќе се појави полето за дијалог прикажан на Слика пет. Исто
така, ќе забележите дека Solver ги променил сите вредности во вашата табела,
заменувајќи ги со оптимални резултати.

Можете да го користите полето за дијалог „Резултати за решавање“ за да


генерирате три извештаи. За да ги изберете сите три одеднаш, или држете го CTRL
и кликнете на секој по ред или повлечете го глувчето над сите три.
Слика пет: Резултати од решавачот

Во исто време, често е добра идеја да го натерате Solver да ги врати вашите


оригинални вредности во табелата за да можете да се вратите на оригиналната
формулација на проблемот и да направите прилагодувања на моделот, како што е
промена на достапноста на ресурсите. Трите извештаи се генерирани во нови
листови во тековната работна книга на Excel.

Извештајот за одговори дава детали за решенијата (во овој случај, профитот е


максимизиран на 36 кога се произведуваат 2 врати неделно и 6 прозорци неделно -
не е особено зафатена фирма!) и информации за статусот на секое ограничување со
придружното олабавување/ се обезбедуваат вишок вредности. Извештајот за
чувствителност за проблемот Wyndor, кој дава информации за тоа колку вашето
решение е чувствително на промените во ограничувањата, е прикажано на Слика
шест.

Слика шест: Извештај за чувствителност за Wyndor


Како што можете да видите од Слика шест, извештајот е прилично стандарден,
обезбедувајќи информации за вредностите на сенка, намалените трошоци и горните
и долните граници за променливите и ограничувањата за одлучување. Извештајот
за ограничувања обезбедува и информации за чувствителноста на вредностите на
RHS. Сите извештаи може едноставно да се копираат и залепат во Word и ова е
можеби една од големите предности на користењето на Excel во однос на
решавачот на LP базиран на DOS. Иако извештаите се вметнуваат во Word како
табели, тие лесно се претвораат во текст и потоа може да се манипулираат ако
некој прави писмен извештај за вашиот наод.

Конечно, постојат неколку опции за Solver кои можат да ви овозможат да


измените/интервенирате во процесот на генерирање решенија. Копчето „Опции“ во
полето за дијалог „Решавач“ го открива полето за дијалог прикажано на Слика
седум. Можете да го користите ова за да влијаете на тоа колку е точно вашето
решение, колку „напор“ вложува Solver за да го пронајде решението и дали сакате
да ги видите резултатите од секое повторување.

Слика седма: Опции за решавање

Опцијата Толеранција е потребна само за програми со цели броеви (IP) и му


овозможува на Solver да користи вредности „близу цел број“, во рамките на
толеранцијата што ја одредувате, а тоа помага да се забрзаат пресметките на IP.
Обележувањето на полето Прикажи резултати од повторување ви овозможува да го
видите секој чекор од пресметката, но бидете предупредени, ако вашиот модел е
сложен, ова може да потрае невообичаено време. Употребата на автоматско
скалирање е корисна ако има огромна разлика во големината помеѓу вашите
променливи за одлучување и целната вредност.

Долните три опции, Проценки, Изводи и Пребарување влијаат на начинот на кој


Solver пристапува кон изнаоѓање основно изводливо решение, како Solver наоѓа
делумни диференцијали на целта и ограничувањата и како Solver одлучува на кој
начин да го бара следното повторување. Во суштина, опциите влијаат на тоа како
решавачот ја користи меморијата и бројот на пресметки што ги прави. За повеќето
проблеми со LP, тие најдобро се оставаат како стандардни вредности.

Копчето „Зачувај модел“ е многу корисно, особено ако го зачувате вашиот модел
како именувано сценарио. Со кликнување на ова копче ви овозможува да доделите
име на тековните вредности на вашите променливи ќелии. Оваа опција потоа ви
овозможува да извршите понатамошна анализа „што-ако“ за различни можни
алтернативни исходи - многу корисно за подетално истражување на вашиот модел.

Како заклучок, Excel Solver обезбедува едноставен, но ефикасен медиум за да им


овозможи на корисниците да истражуваат линеарни програми. Може да се користи
за големи проблеми кои содржат стотици променливи и ограничувања, и тоа ги
прави релативно брзо, но како наставна алатка која користи мали илустративни
проблеми е многу моќна, особено затоа што студентот мора да ја цени структурата
на ЛП кога ја внесува во табела.

Негативно, не можете да го гледате Табелата како што се генерира при секое


повторување и затоа оние наставници кои би сакале нивните ученици да бидат
умешни во мануелните методи на ЛП би го сметале Solver помалку супериорен од,
на пример, Линдо, што дозволува ова. Меѓутоа, тој произведува супериорен сет на
резултати и извештаи за чувствителност во споредба со Линдо и, поради природата
на табеларни пресметки, му овозможува на ученикот многу брзо да ги набљудува
ефектите од какви било промени направени на ограничувањата или целната
функција.

Ова е особено забележливо бидејќи формулацијата на моделот е лесно достапна во


исто време со резултатите од моделот, тие едноставно се ставаат во соседните
работни листови, достапни со едноставен клик на глувчето. Севкупно, користењето
на Excel, кој е познат на голем број студенти, обезбедува богата средина за
предавање линеарно програмирање и им овозможува на студентите да ги
истражуваат своите модели на структуриран, но сепак флексибилен начин.

You might also like