решаване на задача за назначенията с ms excel solver
решаване на задача за назначенията с ms excel solver
решаване на задача за назначенията с ms excel solver
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
РЕШАВАНЕ НА ЗАДАЧА ЗА НАЗНАЧЕНИЯТА С MS EXCEL SOLVER<br />
SOLVING THE ASSIGNMENT PROBLEM USING MS EXCEL SOLVER<br />
РЕШЕНИЕ ЗАДАЧА О НАЗНАЧЕНИЯХ ЧЕРЕЗ MS EXCEL SOLVER<br />
assist. prof. dr. eng. Dimitrov S.<br />
Faculty of Transport Management, Higher School of Transport “Todor Kableshkov”, Sofia, Bulgaria<br />
Abstract: This paper presents an example for MS Excel Solver application in solving assignment problem defined as linear programming<br />
task. To achieve optimal solution for the task an objective function, constraints and network model have been described and used.<br />
KEYWORDS: ASSIGNMENT PROBLEM, OPTIMAL SOLUTION, OPTIMIZATION, LINEAR PROGRAMMING, NETWORK, SOLVER<br />
1. Увод.<br />
В хода <strong>на</strong> провежданите <strong>на</strong>учни из<strong>с</strong>ледвания учени и<br />
из<strong>с</strong>ледователи по<strong>с</strong>тоянно <strong>с</strong>е <strong>с</strong>блъ<strong>с</strong>кват <strong>с</strong> проблеми от различно<br />
е<strong>с</strong>те<strong>с</strong>тво <strong>за</strong> раз<strong>решаване</strong>то <strong>на</strong> които е необходимо вземане <strong>на</strong><br />
адекватни мерки и тър<strong>с</strong>ене <strong>на</strong> оптимални решения. Наличието<br />
<strong>на</strong> <strong>с</strong>ложни в<strong>за</strong>имовръзки между възникващите <strong>с</strong>ъбития, които<br />
<strong>с</strong>ъпът<strong>с</strong>тват протичащите проце<strong>с</strong>и, изи<strong>с</strong>ква при по<strong>с</strong>трояване <strong>на</strong><br />
математични модели да <strong>с</strong>е изберат подходящи управляващи<br />
параметри и вземат в предвид <strong>с</strong>ъще<strong>с</strong>твуващите ограничения. С<br />
оглед <strong>на</strong> това при извършване <strong>на</strong> математично опи<strong>с</strong>ание <strong>на</strong><br />
дефинираните <strong>за</strong>дачи е необходимо <strong>на</strong>вли<strong>за</strong>не в детайли, което<br />
от ед<strong>на</strong> <strong>с</strong>тра<strong>на</strong> <strong>с</strong>помага <strong>за</strong> повишаване <strong>на</strong> точно<strong>с</strong>тта <strong>на</strong><br />
получаваните от моделите резултати, а от друга - в изве<strong>с</strong>т<strong>на</strong><br />
<strong>с</strong>тепен у<strong>с</strong>ложнява по<strong>с</strong>троените модели. Сложно<strong>с</strong>тта <strong>на</strong><br />
математичните модели и големия брой <strong>на</strong>ложени ограничения<br />
пораждат нуждата от приложение <strong>на</strong> използваните в обла<strong>с</strong>тта<br />
<strong>на</strong> из<strong>с</strong>ледването <strong>на</strong> операции оптими<strong>за</strong>ционни техники.<br />
Неудоб<strong>с</strong>твото при <strong>решаване</strong>то <strong>на</strong> големи по размерно<strong>с</strong>т<br />
оптими<strong>за</strong>ционни <strong>за</strong>дачи <strong>с</strong>е изразява предимно в изразходването<br />
<strong>на</strong> з<strong>на</strong>чително изчи<strong>с</strong>лително време.<br />
2. Предпо<strong>с</strong>тавки и <strong>на</strong>чини <strong>за</strong> раз<strong>решаване</strong> <strong>на</strong><br />
проблема.<br />
Решаването <strong>на</strong> дефинираните оптими<strong>за</strong>ционни <strong>за</strong>дачи <strong>с</strong><br />
компютри чрез ползване <strong>на</strong> <strong>с</strong>офтуер е не <strong>с</strong>амо препоръчително,<br />
а в някои <strong>с</strong>лучаи поради лип<strong>с</strong>а <strong>на</strong> време и <strong>на</strong>ложително.<br />
Съще<strong>с</strong>твуващите оптими<strong>за</strong>ционни техники [1,2,3] <strong>на</strong>мират<br />
приложение и при <strong>решаване</strong> <strong>на</strong> <strong>за</strong>дачи в тран<strong>с</strong>портните<br />
из<strong>с</strong>ледвания. За у<strong>с</strong>ъвършен<strong>с</strong>тване <strong>на</strong> тран<strong>с</strong>портните проце<strong>с</strong>и,<br />
<strong>на</strong>пример може да <strong>с</strong>е използва т. <strong>на</strong>р. тран<strong>с</strong>портен модел [3].<br />
Тран<strong>с</strong>портните модели <strong>с</strong>а <strong>с</strong>пециален кла<strong>с</strong> <strong>за</strong>дачи <strong>на</strong><br />
линейното програмиране [1], които опи<strong>с</strong>ват преме<strong>с</strong>тването <strong>на</strong><br />
товари от пунктовете <strong>на</strong> отправяне (изходни пунктове) до<br />
пунктовете <strong>на</strong> <strong>на</strong>з<strong>на</strong>чение (<strong>с</strong>кладове, магазини и др.) [3].<br />
Тран<strong>с</strong>портният модел може да <strong>с</strong>е ползва още при <strong>решаване</strong> <strong>на</strong><br />
<strong>за</strong>дачи, <strong>с</strong>вър<strong>за</strong>ни <strong>с</strong> управление <strong>на</strong> <strong>за</strong>па<strong>с</strong>ите, управление <strong>на</strong><br />
движението <strong>на</strong> капиталите, <strong>с</strong>ъ<strong>с</strong>тавяне <strong>на</strong> разпи<strong>с</strong>ания,<br />
<strong>на</strong>з<strong>на</strong>чение <strong>на</strong> пер<strong>с</strong>о<strong>на</strong>ла и др. Пример <strong>за</strong> необходимо<strong>с</strong>тта от<br />
използване <strong>на</strong> тран<strong>с</strong>портния модел в обла<strong>с</strong>тта <strong>на</strong> тран<strong>с</strong>порта е<br />
оптимизиране <strong>на</strong> разпи<strong>с</strong>анието <strong>на</strong> движение <strong>на</strong> превозните<br />
<strong>с</strong>ред<strong>с</strong>тва, оптимизиране <strong>на</strong> работния график <strong>на</strong> пер<strong>с</strong>о<strong>на</strong>ла,<br />
възлагане <strong>на</strong> <strong>с</strong>лужителите <strong>на</strong> конкретни <strong>за</strong>дачи и др.<br />
За оптимално разпределяне <strong>на</strong> <strong>с</strong>лужители по <strong>за</strong>дачи би<br />
могъл да <strong>с</strong>е използва тран<strong>с</strong>портния модел <strong>на</strong> <strong><strong>за</strong>дача</strong>та <strong>за</strong><br />
<strong>на</strong>з<strong>на</strong>ченията [1,3]. Задачата <strong>за</strong> <strong>на</strong>з<strong>на</strong>ченията (ЗН), която <strong>с</strong>е<br />
<strong>с</strong>ъ<strong>с</strong>тои във възлагането <strong>на</strong> m <strong>на</strong> брой работи <strong>на</strong> n <strong>на</strong> брой<br />
машини, може да <strong>с</strong>е разглежда като ча<strong>с</strong>тен <strong>с</strong>лучай <strong>на</strong><br />
тран<strong>с</strong>порт<strong>на</strong>та <strong><strong>за</strong>дача</strong>. Специфичното <strong>за</strong> нея е, че работите<br />
могат да <strong>с</strong>е пред<strong>с</strong>тавят като отправни пунктове (ОП), а<br />
машините – като пунктове <strong>на</strong> <strong>на</strong>з<strong>на</strong>чение (ПН). Броят <strong>на</strong><br />
отправните пунктове, <strong>на</strong>ричани още производители е равен <strong>на</strong><br />
броят <strong>на</strong> пунктовете <strong>на</strong> <strong>на</strong>з<strong>на</strong>чение, обоз<strong>на</strong>чавани още като<br />
потребители. Задачата <strong>с</strong>е решава в <strong>с</strong>лучаите, когато във в<strong>с</strong>еки<br />
един от в<strong>с</strong>ички n пункта <strong>на</strong> <strong>на</strong>з<strong>на</strong>чение е необходимо да <strong>с</strong>е<br />
до<strong>с</strong>тави 1 единица продукт от един от в<strong>с</strong>ички m производители,<br />
т.е. когато от в<strong>с</strong>еки източник към в<strong>с</strong>еки потребител трябва да<br />
<strong>с</strong>е изпрати <strong>с</strong>амо ед<strong>на</strong> единица продукт. Тогава предлагането в<br />
65<br />
ОП е ai = 1 <strong>за</strong> i = 1,…,m, а тър<strong>с</strong>енето в ПН – bj = 1, <strong>за</strong> j = 1,…,n.<br />
Ако броят <strong>на</strong> отправните пунктове <strong>с</strong>е различава от броят <strong>на</strong><br />
пунктовете <strong>на</strong> <strong>на</strong>з<strong>на</strong>чение, т.е. ако mn,<br />
<strong>с</strong>ъще<strong>с</strong>твуващият ди<strong>с</strong>балан<strong>с</strong> <strong>с</strong>е преодолява, чрез въвеждане <strong>на</strong><br />
т.<strong>на</strong>р. фиктивни работи или машини. В общия <strong>с</strong>лучай <strong>с</strong>е<br />
приема, че m = n. При това <strong>за</strong> изпълнението <strong>на</strong> работа i <strong>на</strong><br />
маши<strong>на</strong> j <strong>с</strong>е извършват разходи Ci,j. Ако <strong>с</strong>а дадени разходите<br />
Ci,j <strong>за</strong> “тран<strong>с</strong>портиране” <strong>на</strong> единица продукт от в<strong>с</strong>еки ОП към<br />
в<strong>с</strong>еки ПН, <strong><strong>за</strong>дача</strong>та <strong>с</strong>е <strong>с</strong>вежда до <strong>на</strong>миране <strong>на</strong> това<br />
разпределение <strong>на</strong> работите между машините, при което<br />
<strong>с</strong>умарните разходи имат минимал<strong>на</strong> <strong>с</strong>тойно<strong>с</strong>т.<br />
Най-изве<strong>с</strong>тният метод <strong>за</strong> <strong>решаване</strong> <strong>на</strong> <strong><strong>за</strong>дача</strong>та <strong>за</strong><br />
<strong>на</strong>з<strong>на</strong>ченията е унгар<strong>с</strong>кият метод, подробно разгледан в [1].<br />
По<strong>на</strong><strong>с</strong>тоящем, използването <strong>на</strong> методи като унгар<strong>с</strong>кия,<br />
<strong>с</strong>падащи към групата <strong>на</strong> ръчните изчи<strong>с</strong>лителни алгоритми <strong>за</strong><br />
<strong>решаване</strong> <strong>на</strong> <strong>за</strong>дачи от този вид, не е един<strong>с</strong>тве<strong>на</strong>та алтер<strong>на</strong>тива.<br />
Задачи като тран<strong>с</strong>порт<strong>на</strong>та <strong><strong>за</strong>дача</strong> и <strong><strong>за</strong>дача</strong>та <strong>за</strong> <strong>на</strong>з<strong>на</strong>ченията<br />
могат да <strong>с</strong>е дефинират като <strong>за</strong>дачи <strong>на</strong> линейното програмиране<br />
и решават <strong>с</strong> помощта <strong>на</strong> <strong>с</strong>ъздадени <strong>за</strong> целта компютърни<br />
приложения [4] и компютърни програми.<br />
Графично, моделът <strong>на</strong> <strong><strong>за</strong>дача</strong>та <strong>за</strong> <strong>на</strong>з<strong>на</strong>ченията може да <strong>с</strong>е<br />
пред<strong>с</strong>тави във вид <strong>на</strong> графова <strong>с</strong>труктура (мрежа),<br />
пред<strong>с</strong>тавляваща множе<strong>с</strong>тво от върхове и дъги, които ги<br />
<strong>с</strong>вързват (фиг. 1). С върховете в мрежата <strong>с</strong>е обоз<strong>на</strong>чават ОП и<br />
ПН, а <strong>с</strong> дъгите – връзките между тях.<br />
ОП<br />
ПН<br />
П<br />
р<br />
е<br />
д<br />
л<br />
а<br />
г<br />
а<br />
н<br />
е<br />
a 1<br />
a 2<br />
a m<br />
1<br />
2<br />
c2,1<br />
cm,1<br />
c1,n<br />
c2,n<br />
c1,2<br />
c2,2<br />
c1,1<br />
cm,2<br />
cm,n<br />
m n<br />
Фиг. 1. Общ вид <strong>на</strong> мрежовия модел <strong>на</strong> <strong><strong>за</strong>дача</strong>та <strong>за</strong> <strong>на</strong>з<strong>на</strong>ченията<br />
Математиче<strong>с</strong>кото опи<strong>с</strong>ание <strong>на</strong> <strong><strong>за</strong>дача</strong>та <strong>с</strong>е извършва чрез<br />
дефиниране <strong>на</strong> целева функция и ограничения, както <strong>с</strong>ледва:<br />
Целева функция:<br />
m n<br />
J = ∑∑Ci,<br />
j.<br />
X i,<br />
j → min<br />
( 1),<br />
i=<br />
1j= 1<br />
където:<br />
Xi,j – тър<strong>с</strong>еното количе<strong>с</strong>тво продукция, “тран<strong>с</strong>портирано”<br />
от i -ти ОП до j -ти ПН.<br />
Ограничения:<br />
n<br />
∑ X<br />
j = 1<br />
m<br />
∑ X<br />
i=<br />
1<br />
i,<br />
j = 1 <strong>за</strong> i = 1,...,<br />
m<br />
i,<br />
j = 1 j = 1,...,<br />
n<br />
( 2)<br />
( 3)<br />
1<br />
2<br />
b 1<br />
b 2<br />
b n<br />
Т<br />
ъ<br />
р<br />
<strong>с</strong><br />
е<br />
н<br />
е
3. Решение <strong>на</strong> проучения проблем.<br />
Решение <strong>на</strong> <strong><strong>за</strong>дача</strong>та <strong>за</strong> <strong>на</strong>з<strong>на</strong>ченията, чрез използване <strong>на</strong><br />
Microsoft® Excel [4], можем да опишем <strong>с</strong>ъ<strong>с</strong> <strong>с</strong>ледния пример.<br />
В автотран<strong>с</strong>портно предприятие <strong>на</strong> длъжно<strong>с</strong>т „водач <strong>на</strong><br />
автобу<strong>с</strong>” <strong>с</strong>а <strong>на</strong>з<strong>на</strong>чени 5 <strong>на</strong> брой <strong>с</strong>лужители. На територията <strong>на</strong><br />
<strong>на</strong><strong>с</strong>еленото мя<strong>с</strong>то (фиг. 2) предприятието разполага <strong>с</strong> 5 <strong>на</strong> брой<br />
гаражи, в които <strong>с</strong>а паркирани превозните <strong>с</strong>ред<strong>с</strong>тва <strong>на</strong> ма<strong>с</strong>овия<br />
град<strong>с</strong>ки тран<strong>с</strong>порт, които в разглеждания <strong>с</strong>лучай <strong>с</strong>а автобу<strong>с</strong>и.<br />
В<strong>с</strong>еки от 5 -те нови <strong>с</strong>лужители живее в район <strong>на</strong> града, различен<br />
от тези, в които живеят о<strong>с</strong>та<strong>на</strong>лите <strong>с</strong>лужители. При у<strong>с</strong>ловие, че<br />
раз<strong>с</strong>тоянията Li,j от районите <strong>на</strong> живеене <strong>на</strong> автобу<strong>с</strong>ните водачи<br />
до в<strong>с</strong>еки от гаражите <strong>с</strong>а предварително <strong>за</strong>дадени (табл. 1), е<br />
необходимо към в<strong>с</strong>еки гараж да <strong>с</strong>е прикрепи по един водач <strong>на</strong><br />
автобу<strong>с</strong>. Прикрепването трябва да <strong>с</strong>е извърши по такъв <strong>на</strong>чин,<br />
че <strong>на</strong> в<strong>с</strong>еки от водачите да е <strong>за</strong>чи<strong>с</strong>лен <strong>с</strong>амо по един автобу<strong>с</strong> и<br />
в<strong>с</strong>еки автобу<strong>с</strong> да <strong>с</strong>е управлява от един един<strong>с</strong>твен водач, при<br />
което <strong>с</strong>умата от раз<strong>с</strong>тоянията <strong>на</strong> в<strong>с</strong>ички водачи от<br />
ме<strong>с</strong>тоживеене до ме<strong>с</strong>торабота да е минимал<strong>на</strong>.<br />
Автобу<strong>с</strong> 4<br />
Водач 1<br />
Водач 4<br />
Фиг. 2. Схема <strong>на</strong> <strong>на</strong><strong>с</strong>еленото мя<strong>с</strong>то<br />
Табл. 1. Раз<strong>с</strong>тояния между райони <strong>на</strong> живеене и автобу<strong>с</strong>ни гаражи<br />
col C D E F G H I J K<br />
row<br />
от 1 2<br />
Автобу<strong>с</strong><br />
3 4 5<br />
15 1 6,0 12,0 11,0 4,0 2,4 1<br />
16 2 2,8 6,4 10,0 11,2 2,4 1<br />
17 3 5,6 3,6 3,2 6,8 3,8 1<br />
18 4 18,0 13,0 3,6 3,5 11,0 1<br />
19 5 4,0 4,0 3,5 3,5 3,2 1<br />
1 1 1 1 1<br />
до<br />
Водач<br />
Автобу<strong>с</strong> 5<br />
Водач 5<br />
Водач 2<br />
Автобу<strong>с</strong> 3<br />
Водач 3<br />
По<strong>с</strong>троеният мрежови модел <strong>за</strong> конкретно решава<strong>на</strong>та<br />
пример<strong>на</strong> <strong><strong>за</strong>дача</strong> е пока<strong>за</strong>н <strong>на</strong> фиг. 3.<br />
ОП ПН<br />
водач 1<br />
водач 2<br />
водач 3<br />
водач 4<br />
водач 5<br />
1<br />
2<br />
3<br />
4<br />
5<br />
2,4<br />
6<br />
2,8<br />
2,4<br />
5,6<br />
18<br />
4<br />
J<br />
5 5<br />
= ∑∑<br />
i= 1 j=<br />
1<br />
12<br />
11<br />
4<br />
6,4<br />
10<br />
11,2<br />
3,6<br />
3,2<br />
6,8<br />
3,8<br />
13<br />
3,6<br />
3,5<br />
11<br />
4 3,5<br />
3,5<br />
3,2<br />
Фиг. 3. Мрежови модел <strong>на</strong> <strong><strong>за</strong>дача</strong>та <strong>за</strong> <strong>на</strong>з<strong>на</strong>ченията<br />
L<br />
Автобу<strong>с</strong> 1<br />
i, j.<br />
X i,<br />
j → min<br />
1<br />
2<br />
3<br />
4<br />
5<br />
Автобу<strong>с</strong> 2<br />
Автобу<strong>с</strong> 1<br />
Автобу<strong>с</strong> 2<br />
Автобу<strong>с</strong> 3<br />
Автобу<strong>с</strong> 4<br />
Автобу<strong>с</strong> 5<br />
66<br />
Дефинираните целева функция и ограничения имат вида:<br />
Целева функция:<br />
J<br />
5 5<br />
= ∑∑<br />
i= 1 j=<br />
1<br />
L<br />
Ограничения:<br />
5<br />
∑ X<br />
j = 1<br />
5<br />
∑ X<br />
i=<br />
1<br />
i, j.<br />
X i,<br />
j → min<br />
i,<br />
j = 1 <strong>за</strong> i = 1,..,<br />
5<br />
i,<br />
j = 1 <strong>за</strong> j = 1,..,<br />
5<br />
След разпи<strong>с</strong>ване <strong>на</strong> формули (4), (5) и (6) получаваме:<br />
( 4)<br />
J = L1,1.X1,1+L1,2.X1,2+L1,3.X1,3+L1,4.X1,4+L1,5.X 1,5+<br />
L2,1.X2,1+L2,2.X2,2+L2,3.X2,3+L2,4.X2,4+L2,5.X2,5+<br />
L3,1.X3,1+L3,2.X3,2+L3,3.X3,3+L3,4.X3,4+L3,5.X3,5+<br />
L4,1.X4,1+L4,2.X4,2+L4,3.X4,3+L4,4.X4,4+L4,5.X4,5+<br />
L5,1.X5,1+L5,2.X5,2+L5,3.X5,3+L5,4.X5,4+L5,5.X5,5=<br />
= 6,0.X1,1+12,0.X1,2+11,0.X1,3+ 4,0.X1,4+ 2,4.X 1,5+<br />
2,8.X2,1+ 6,4.X2,2+10,0.X2,3+11,2.X2,4+ 2,4.X2,5+<br />
5,6.X3,1+ 3,6.X3,2+ 3,2.X3,3+ 6,8.X3,4+ 3,8.X3,5+<br />
18,0.X4,1+13,0.X4,2+ 3,6.X4,3+ 3,5.X4,4+11,0.X4,5+<br />
4,0.X5,1+ 4,0.X5,2+ 3,5.X5,3+ 3,5.X5,4+ 3,2.X5,5 -> min<br />
X1,1+X1,2+X1,3+X1,4+X1,5=1<br />
X2,1+X2,2+X2,3+X2,4+X2,5=1<br />
X3,1+X3,2+X3,3+X3,4+X3,5=1<br />
X4,1+X4,2+X4,3+X4,4+X4,5=1<br />
X5,1+X5,2+X5,3+X5,4+X5,5=1<br />
X1,1+X2,1+X3,1+X4,1+X5,1=1<br />
X1,2+X2,2+X3,2+X4,2+X5,2=1<br />
X1,3+X2,3+X3,3+X4,3+X5,3=1<br />
X1,4+X2,4+X3,4+X4,4+X5,4=1<br />
X1,5+X2,5+X3,5+X4,5+X5,5=1<br />
Решаването <strong>на</strong> <strong><strong>за</strong>дача</strong>та <strong>за</strong> <strong>на</strong>з<strong>на</strong>ченията по<strong>с</strong>ред<strong>с</strong>твом<br />
предложе<strong>на</strong>та в офи<strong>с</strong> приложението MS Excel функцио<strong>на</strong>лно<strong>с</strong>т<br />
“Solver”, до<strong>с</strong>тъп<strong>на</strong> от меню “Tools”, <strong>с</strong>е извършва чрез <strong>с</strong>пазване<br />
<strong>на</strong> <strong>с</strong>лед<strong>на</strong>та по<strong>с</strong>ледователно<strong>с</strong>т от дей<strong>с</strong>твия:<br />
Попълва <strong>с</strong>е табл. 2, имаща <strong>с</strong>труктурата като тази <strong>на</strong><br />
таблицата <strong>с</strong> раз<strong>с</strong>тоянията (табл. 1). За изчи<strong>с</strong>ляване <strong>на</strong> <strong>с</strong>умите по<br />
редове и колони в таблицата <strong>с</strong>е ползва функцията “SUM”, а <strong>за</strong><br />
изчи<strong>с</strong>ляване <strong>на</strong> <strong>с</strong>тойно<strong>с</strong>тта <strong>на</strong> целевата функция J – функцията<br />
“SUMPRODUCT” (фиг. 4):<br />
Табл. 2<br />
Фиг. 4. Функция, изчи<strong>с</strong>ляваща <strong>с</strong>тойно<strong>с</strong>тта в целевата клетка $K$31<br />
( 5)<br />
( 6)
От меню “Tools” <strong>с</strong>е избира “Solver…” в резултат, <strong>на</strong> което<br />
<strong>с</strong>е отваря прозореца „Solver Parameters” (Фиг. 5), в който <strong>с</strong>е<br />
избира целева клетка $K$31, в която предварително е въведе<strong>на</strong><br />
формулата <strong>за</strong> изчи<strong>с</strong>ляване <strong>на</strong> <strong>с</strong>тойно<strong>с</strong>тта <strong>на</strong> целевата функция.<br />
Чрез избиране <strong>на</strong> радио бутон “Min” <strong>с</strong>е указва, че <strong>с</strong>е тър<strong>с</strong>и<br />
минимум <strong>на</strong> целевата функция.<br />
Фиг. 5. Прозорец “Solver параметри”<br />
В тек<strong>с</strong>товото поле под етикета “By Changing Cells:”(фиг. 6)<br />
<strong>с</strong>е по<strong>с</strong>очва по<strong>с</strong>ред<strong>с</strong>твом промя<strong>на</strong>та <strong>на</strong> <strong>с</strong>тойно<strong>с</strong>тите в кой обхват<br />
от клетки (табл. 2, обхват $F$26:$J$30) <strong>с</strong>е минимизира целевата<br />
функция.<br />
Фиг. 6. Обхват от клетки <strong>с</strong> променящи <strong>с</strong>е <strong>с</strong>тойно<strong>с</strong>ти<br />
С <strong>на</strong>ти<strong>с</strong>кане <strong>на</strong> бутон “Add” по<strong>с</strong>ледователно <strong>с</strong>е добавят<br />
ограниченията в модела (фиг. 7 и фиг. 8).<br />
Фиг. 7. Ограничителни у<strong>с</strong>ловия<br />
Фиг. 8. Прозорец “Solver параметри” <strong>с</strong> въведени ограничения<br />
Следва <strong>на</strong>ти<strong>с</strong>кане <strong>на</strong> буто<strong>на</strong> „Options”. Отваря <strong>с</strong>е прозореца<br />
„Solver Options” (фиг. 9), в който вляво от етикета “Assume<br />
Linear Model” <strong>с</strong>е по<strong>с</strong>тавя отметка, <strong>с</strong> което <strong>с</strong>е обоз<strong>на</strong>чава, че<br />
модела е линеен, както <strong>с</strong>е по<strong>с</strong>тавя отметка и <strong>с</strong>рещу етикета<br />
“Assume Non-Negative”, <strong>за</strong> да <strong>с</strong>е укаже, че тър<strong>с</strong>еният минимум<br />
трябва да е неотрицателен. За връщане в предходния прозорец<br />
<strong>с</strong>е <strong>на</strong>ти<strong>с</strong>ка бутон “OK”. За извършване <strong>на</strong> изчи<strong>с</strong>ленията и<br />
<strong>на</strong>миране <strong>на</strong> оптимално решение <strong>с</strong>е <strong>на</strong>ти<strong>с</strong>ка бутон “Solve”.<br />
67<br />
Фиг. 9. Прозорец “Solver <strong>на</strong><strong>с</strong>тройки”<br />
След <strong>за</strong>вършване <strong>на</strong> изчи<strong>с</strong>ленията, в потвърждение, че е<br />
<strong>на</strong>мерено оптимално решение, удовлетворяващо <strong>за</strong>дадените<br />
ограничения, “Solver” извежда подходящо <strong>с</strong>ъобщение (фиг. 10).<br />
Фиг. 10. Прозорец “Solver резултати”<br />
С <strong>на</strong>ти<strong>с</strong>кане <strong>на</strong> бутон “OK” при положение, че е о<strong>с</strong>тавен<br />
избраният по подразбиране радио бутон “Keep Solver Solution”,<br />
<strong>с</strong>е <strong>за</strong>пазват резултатите <strong>за</strong> <strong>на</strong>мереното оптимално решение.<br />
Таблично и графично пред<strong>с</strong>тавяне <strong>на</strong> резултатите от<br />
решението <strong>на</strong> <strong><strong>за</strong>дача</strong>та <strong>за</strong> <strong>на</strong>з<strong>на</strong>ченията е извършено<br />
по<strong>с</strong>ледователно в табл. 3 и <strong>на</strong> фиг. 11.<br />
Табл. 3. Оптимално <strong>на</strong>з<strong>на</strong>чение<br />
col C D E F G H I J K<br />
row<br />
от 1 2<br />
Автобу<strong>с</strong><br />
3 4 5<br />
26 1 0 0 0 0 1 1<br />
27 2 1 0 0 0 0 1<br />
28 3 0 1 0 0 0 1<br />
29 4 0 0 0 1 0 1<br />
30 5 0 0 1 0 0 1<br />
1 1 1 1 1 15,8<br />
до<br />
водач 1<br />
водач 2<br />
водач 3<br />
водач 4<br />
водач 5<br />
Водач<br />
1<br />
2<br />
3<br />
4<br />
5<br />
Фиг. 11. Оптимално <strong>на</strong>з<strong>на</strong>чение<br />
1<br />
2<br />
3<br />
4<br />
5<br />
Автобу<strong>с</strong> 1<br />
Автобу<strong>с</strong> 2<br />
Автобу<strong>с</strong> 3<br />
Автобу<strong>с</strong> 4<br />
Автобу<strong>с</strong> 5
4. Резултати и ди<strong>с</strong>ку<strong>с</strong>ия.<br />
Получените от решението <strong>на</strong> <strong><strong>за</strong>дача</strong>та <strong>за</strong> <strong>на</strong>з<strong>на</strong>ченията<br />
резултати (табл. 3 и фиг. 11) показват, че:<br />
1. Оптималното <strong>на</strong>з<strong>на</strong>чение <strong>на</strong> 5 -мата водачи към 5 -те<br />
автобу<strong>с</strong>и, минимизиращо <strong>с</strong>умарното изми<strong>на</strong>вано раз<strong>с</strong>тояние от<br />
ме<strong>с</strong>тоживеене към ме<strong>с</strong>торабота е (1,5), (2,1), (3,2), (4,4) и (5,3),<br />
т.е.:<br />
X1,5 = X2,1 = X3,2 = X4,4 = X5,3 = 1, като в <strong>с</strong>ъщото време<br />
в<strong>с</strong>ички о<strong>с</strong>та<strong>на</strong>ли <strong>с</strong>тойно<strong>с</strong>ти <strong>за</strong> Xi,j <strong>с</strong>а равни <strong>на</strong> 0.<br />
Съгла<strong>с</strong>но полученото оптимално <strong>на</strong>з<strong>на</strong>чение (фиг. 12):<br />
- водач 1 <strong>с</strong>е прикрепва към автобу<strong>с</strong> 5;<br />
- водач 2 <strong>с</strong>е прикрепва към автобу<strong>с</strong> 1;<br />
- водач 3 <strong>с</strong>е прикрепва към автобу<strong>с</strong> 2;<br />
- водач 4 <strong>с</strong>е прикрепва към автобу<strong>с</strong> 4;<br />
- водач 5 <strong>с</strong>е прикрепва към автобу<strong>с</strong> 3.<br />
Автобу<strong>с</strong> 4<br />
Водач 1<br />
Водач 4<br />
Автобу<strong>с</strong> 5<br />
J<br />
5 5<br />
= ∑∑<br />
i= 1 j=<br />
1<br />
Водач 5<br />
L<br />
Водач 2<br />
. X<br />
Автобу<strong>с</strong> 3<br />
Автобу<strong>с</strong> 1<br />
i,<br />
j =<br />
Водач 3<br />
km<br />
Автобу<strong>с</strong> 2<br />
Фиг. 12. Схема “оптимално <strong>на</strong>з<strong>на</strong>чение”<br />
2. След <strong>за</strong>ме<strong>с</strong>тване във формула (4) <strong>с</strong>амо <strong>с</strong> ненулевите<br />
елементи, <strong>за</strong> <strong>с</strong>умарното минимално раз<strong>с</strong>тояние J (табл. 3,<br />
клетка K31), изми<strong>на</strong>вано при придвижване <strong>на</strong> водачите <strong>на</strong><br />
автобу<strong>с</strong>и от вкъщи до работа, получаваме:<br />
J = L1,5.X 1,5+L2,1.X2,1+L3,2.X3,2+L4,4.X4,4+L5,3.X5,3=<br />
= 2,4.1+ 2,8.1 + 3,6.1 + 3,5.1 + 3,5.1 = 15,8 км<br />
5. Заключение.<br />
На ба<strong>за</strong>та <strong>на</strong> извършеното опи<strong>с</strong>ание и пред<strong>с</strong>тавеното<br />
решение <strong>на</strong> <strong><strong>за</strong>дача</strong>та <strong>за</strong> <strong>на</strong>з<strong>на</strong>ченията в <strong>с</strong>редата <strong>на</strong> MS Excel,<br />
чрез ползване <strong>на</strong> възможно<strong>с</strong>тите <strong>на</strong> MS Excel Solver, могат да<br />
<strong>с</strong>е <strong>на</strong>правят <strong>с</strong>ледните <strong>за</strong>ключения:<br />
1. Предложеният подход <strong>за</strong> опи<strong>с</strong>ание <strong>на</strong> разнообразни<br />
<strong>за</strong>дачи и тяхното по<strong>с</strong>ледващо решение, чрез ползване <strong>на</strong> MS<br />
Excel Solver, е ле<strong>с</strong>но приложим;<br />
2. Ползването <strong>на</strong> изчи<strong>с</strong>лител<strong>на</strong> техника и <strong>с</strong>офтуерни<br />
приложения з<strong>на</strong>чително у<strong>с</strong>корява изчи<strong>с</strong>лителните процедури;<br />
3. В <strong>за</strong>ви<strong>с</strong>имо<strong>с</strong>т от целите, <strong><strong>за</strong>дача</strong>та <strong>за</strong> <strong>на</strong>з<strong>на</strong>ченията би<br />
могла да <strong>с</strong>е реши не <strong>с</strong>амо <strong>за</strong> минимизиране <strong>на</strong> <strong>с</strong>умарното<br />
раз<strong>с</strong>тояние от ме<strong>с</strong>тоживеене към ме<strong>с</strong>торабота, а и от глед<strong>на</strong><br />
точка <strong>на</strong> минимално <strong>с</strong>умарно време или минимални <strong>с</strong>умарни<br />
разходи <strong>за</strong> до<strong>с</strong>тигане от жилищни райони до автобу<strong>с</strong>ни гаражи;<br />
4. Разгледа<strong>на</strong>та функцио<strong>на</strong>лно<strong>с</strong>т “Solver”, може да <strong>с</strong>е<br />
използва, както <strong>за</strong> <strong>решаване</strong> <strong>на</strong> <strong>за</strong>дачи от тран<strong>с</strong>портен тип, така<br />
и <strong>за</strong> <strong>решаване</strong> <strong>на</strong> <strong>за</strong>дачи и в други обла<strong>с</strong>ти.<br />
i,<br />
j<br />
15,<br />
8<br />
68<br />
6. Литература.<br />
ЛИТЕРАТУРА<br />
[1] Гатев, Г., “Из<strong>с</strong>ледване <strong>на</strong> операции – избор <strong>на</strong> решения<br />
при определено<strong>с</strong>т”, книга 1, издател<strong>с</strong>тво <strong>на</strong> ТУ – София, 2003г.<br />
[2] Качаунов, Т. Т., “Моделиране и оптими<strong>за</strong>ция <strong>на</strong><br />
тран<strong>с</strong>портните проце<strong>с</strong>и”, второ преработено издание,<br />
Печатница при ВТУ “Тодор Каблешков”, София, 2005 г.<br />
[3] Таха, Х. А., “Введение в и<strong>с</strong><strong>с</strong>ледование операций”, 7-е<br />
издание.: Пер. <strong>с</strong> англ.– М.: Издатель<strong>с</strong>кий дом „Вильям<strong>с</strong>”, 2005г.<br />
[4] Microsoft Excel 2003 Help, Microsoft Corporation