Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Navch._posibnuk_Ivaschyk

.pdf
Скачиваний:
106
Добавлен:
12.02.2016
Размер:
4.89 Mб
Скачать

3.Далі необхідно представити результати розв’язків.

3.1.Сервис, Сценарии...

На екрані появляється діалогове вікно «Диспетчер сценариев». 3.2. Отчет...

На екрані появляється діалогове вікно «Отчет по сценарию».

3.3.Структура.

3.4.ОК.

На екрані появляється звіт «Структура сценария» (табл. 3.6): Таблиця 3.6

B

C

D

E

F

G

H

I

 

 

 

 

 

 

 

 

Структура

сценария

 

 

 

 

 

 

 

Текущие

фінанси=10000

фінанси=10500

фінанси=11000

фінанси=11500

фінанси=120

 

 

значения:

 

 

 

 

00

 

 

 

Модельпоиска

Модельпоиска

Модельпоиска

Модельпоиска

Модель

 

 

 

решения

решения

решения

решения

поиска

 

 

 

 

 

 

 

решения

Изменяемые ячейки:

 

 

 

 

 

 

$B$3

500

500

500

500

500

500

 

$C$3

0

0

0

0

0

0

 

$D$3

1100

600

725

850

975

1100

 

$E$3

800

800

800

800

800

800

Ячейки

результата:

 

 

 

 

 

 

$F$6

10000

7000

7750

8500

9250

10000

 

$F$9

102

77

83,25

89,5

95,75

102

 

$F$10

4420

3420

3670

3920

4170

4420

 

$F$11

12000

10000

10500

11000

11500

12000

 

 

 

 

 

 

 

 

Примечания: столбец «Текущие значения» представляет значения изменяемых ячеек в

 

момент создания Итогового отчета по Сценарию. Изменяемые ячейки для каждого

 

сценария выделены серым цветом.

 

 

 

 

В звіті представлені результати розв’язку задачі для всіх значень фінансів по всіх п’яти варіантах. Для зручності представлення результатів у вигляді діаграм виконаємо редагування звіту за таким алгоритмом:

1.У випадку, коли весь звіт «Структура сценария» не вміщується на екрані, то зменшуємо вікно масштабу.

2.Викидаємо стовпці А, B і D.

3.Викидаємо рядки 4,5 і 10

4.Вводимо слова: Прод1 ... Прод4 в комірки С6:С9, Прибуток в С11, види ресурсів: трудові, сировина, фінанси в комірки С12:С14.

5.Збільшити ширину стовпця С.

6.У випадку отримання дробових результатів, заокруглюємо їх.

7.Забрати зауваження.

Після такого редагування звіт матиме вигляд:

131

 

 

 

 

 

 

Таблиця 3.7

 

 

 

 

 

 

 

 

 

C

E

F

G

H

I

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3

 

фінанси=1000

фінанси=10500

фінанси=11000

фінанси=11500

фінанси=12000

 

 

 

 

 

 

 

 

 

6

Прод1

500

500

500

500

500

 

 

 

 

 

 

 

 

 

7

Прод2

0

0

0

0

0

 

 

 

 

 

 

 

 

 

8

Прод3

600

725

850

975

1100

 

 

 

 

 

 

 

 

 

9

Прод4

800

800

800

800

800

 

 

 

 

 

 

 

 

 

11

Прибуток

7000

7750

8500

9250

10000

 

 

 

 

 

 

 

 

 

12

Трудові

77

83,25

89,5

95,75

102

 

 

 

 

 

 

 

 

 

13

Сировина

3420

3670

3920

4170

4420

 

 

 

 

 

 

 

 

 

14

Фінанси

10000

10500

11000

11500

12000

 

 

 

 

 

 

 

 

 

3.5.Питання для самоконтролю

1.Сформулюйте правила побудови двоїстої задачі.

2.В чому полягає різниця між симетричною та несиметричною парою взаємоспряжених задач?

3.Скільки змінних та обмежень має двоїста задача відповідно до прямої?

4.Сформулюйте основні теореми двоїстості.

5.Запишіть всі можливі види прямих та двоїстих задач.

6.Як за розв’язком прямої задачі знайти розв’язок двоїстої?

7.Яка суть двоїстого симплекс-методу?

8.Дайте економічну інтерпретацію двоїстих оцінок.

9.Як визначити дефіцитність (недефіцитність) ресурсу?

10.Як визначити рентабельність (нерентабельність) продукції, що виготовляється?

132

Розділ 4. Транспортна задача

4.1.Постановка транспортної задачі та її математична модель

Транспортна задача полягає у пошуку найбільш вигідного плану перевезення однорідного продукту з пунктів виробництва (чи зберігання) до пунктів споживання, тобто від постачальників до споживачів, ефективність якого будемо оцінювати за критерієм найменшої вартості перевезення. Транспортна задача – це специфічна задача лінійного програмування.

Сформулюємо визначення транспортної задачі. Деяку однорідну продукцію, яка знаходиться в m постачальників A1, A2, , Am кількістю a1, a2, …, am одиниць відповідно, потрібно перевезти n споживачам B1, B2, …, Bn в кількостях b1, b2, , bn одиниць. Відома матриця вартостей перевезення одиниці продукції від i-го постачальника до j-го споживача:

c11

c21

...

cm1

c

...

c

 

12

 

1n

c22

...

c2n

...

...

...

.

 

cm2

...

 

 

cmn

Необхідно скласти такий план перевезення, щоб вивезти всю продукцію від постачальників, задовольнити потреби всіх споживачів і сумарна вартість перевезення при цьому має бути мінімальною.

Окреслена постановка задачі вимагає виконання рівності загальної суми запасу вантажу загальній сумі потреб в ньому, тобто

m

ai

i=1

n

= bj . (4.1)

j=1

Якщо в транспортній задачі умова (4.1) виконується, то таку транспортну задачу називають закритою (з правильним балансом). Якщо ж рівність (4.1) не виконується, то транспортну задачу називають відкритою (з неправильним балансом).

Побудуємо математичну модель транспортної задачі. Оскільки наперед невідомо, скільки вантажу потрібно перевезти з пункту Аi до пункту Вj, щоб план перевезень був оптимальним, то позначимо його через xij. Вартість перевезення всього вантажу від постачальників до споживачів позначимо Z.

133

Умову транспортної задачі можна записати у вигляді таблиці:

Постачальники

A1

A2

Am

Споживачі

B1

B2

Bn

Потреби

b1

b2

bn

Запаси

 

 

 

 

a1

c11

c12

c1n

x11

x12

 

x1n

 

 

a2

c21

c22

c2n

x21

x22

 

x2n

 

 

am

cm1

cm2

cmn

xm1

xm2

 

xmn

 

 

Тоді цільова функція матиме вигляд:

Z = c11x11 + c12 x12 +... + c1n x1n + c21x21 + c22 x22 +... + c2n x2n +... + cm1xm1 +

+ cm2 xm2 +... + cmn xmn

(min)

 

m

n

 

 

або Z = ∑∑cij xij

(min)

(4.2)

i=1

j=1

 

 

Для складання обмежень транспортної задачі скористаємося такими міркуваннями:

1)кількість вантажу, який потрібно перевезти до пункту Вj з усіх пунктів постачання, рівна х1j +х2j +... + xmj, а споживачеві Вj потрібно bj одиниць вантажу, тому, враховуючи те, що всі потреби повинні бути задоволеними, можемо записати обмеження стосовно потреб:

x1 j + x2 j +... + xmj = bj ,

j =

 

;

1, n

2)кількість вантажу, який треба вивезти з пункту постачання Аi до всіх споживачів, дорівнює хi1 +хi2 +... + xin, а постачальник має аi одиниць вантажу і всі вантажі мають бути вивезені, тому обмеження стосовно запасів матимуть вигляд:

xi1 + xi2 +... + xin = ai , i =1, m.

В загальному випадку систему обмежень запишемо таким чином:

134

x

 

+ x

21

+... + x

m1

= b

,

 

 

11

 

 

 

1

 

 

 

x12 + x22 +... + xm2

= b2 ,

.................................

 

 

 

 

 

 

+ x

 

+... + x

 

 

= b

,

 

x

 

2n

mn

 

1n

 

 

 

 

 

n

x11 + x12 +... + x1n

= a1 ,

 

 

 

x

21

+ x

22

+... + x

2n

= a

2

,

 

 

 

 

 

 

 

 

 

 

.................................

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

xm1 + xm2 +... + xmn = am ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0, i =1, m,

j =1, n,

xij

 

 

 

 

 

або

 

 

m

 

 

 

 

 

 

 

 

 

 

 

 

x

= b

,

 

j =1, n;

 

 

 

ij

j

 

 

 

 

 

 

 

 

 

 

i =1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i =1, m;

(4.3)

 

xij = ai ,

 

j =1

 

 

 

 

 

 

 

 

 

 

 

 

x

0, i

=

 

, j =

 

.

 

1, m

1, n

 

 

ij

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ми отримали математичну модель транспортної задачі (4.2)-(4.3), де хij – кількість продукції, що перевозиться від i-го постачальника до j-го споживача; сij – вартість перевезення одиниці продукції від і-го постачальника до j-гo споживача; аі – запаси продукції і-го постачальника; bj – попит на продукцію j-го споживача.

Тепер, виходячи з економічної постановки транспортної задачі, можемо cформулювати її математичну задачу: серед всіх невід’ємних розв’язків системи рівнянь (4.3) знайти такий, при якому оптимізуюча форма (4.2) набуде найменшого значення.

Транспортна задача є задачею лінійного програмування, яку можна розв’язати симплекс-методом, але при розв’язуванні транспортної задачі симплексним методом ми б отримали симплекстаблиці великих розмірів, оскільки число невідомих дорівнює m n . Специфічна структура цієї задачі дозволяє використати для її розв’язання ефективніший метод – метод потенціалів, який ми розглянемо в п. 4.3.

135

4.2. Методи побудови початкового опорного плану

Як і в симплексному методі розв’язування задач лінійного програмування, при розв’язуванні транспортної задачі потрібно мати початковий опорний план.

Розглянемо методи знаходження цього плану:

1. Діагональний метод (північно-західного кута).

Побудову початкового опорного плану за методом північнозахідного кута починають із заповнення лівої верхньої клітинки таблиці A1B1 (х11), в яку записують менше з двох чисел а1 та b1. Далі переходять до наступної клітинки в рядку або стовпчику і заповнюють її і т.д., закінчуючи останньою правою клітинкою

таблиці AmBn (хmn).

Розглянемо алгоритм побудови початкового опорного плану транспортної задачі методом північно-західного кута:

1.Перевірка транспортної задачі на закритість. Якщо вона відкрита, то приводимо її до задачі закритого типу (п. 4.4).

2.Першою заповнюємо верхню ліву клітинку.

Заповнення клітинки AiBj таблиці здійснюємо за такими правилами:

а) якщо аi<bj, тобто запаси менші від потреб, то в цю клітинку записуємо весь об’єм запасу вантажу аi, перераховуємо потреби споживача Bj, постачальника Ai вилучаємо з розгляду (наприклад, поставивши у всіх клітинках рядочка, крім заповненої, прочерки) і переходимо до заповнення наступної клітинки Ai+1Bj;

б) якщо аi>bj, тобто запаси більші від потреб, то в цю клітинку записуємо весь об’єм потреб вантажу bj, перераховуємо запаси постачальника Ai, вилучаємо з розгляду споживача Bj (ставимо у всіх клітинках стовпчика, крім заповненої, прочерки) і переходимо до заповнення наступної клітинки AiBj+1;

в) якщо аi=bj, тобто запаси рівні потребам, то в цю клітинку записуємо весь об’єм потреб чи запасів, вилучаємо з розгляду постачальника Ai і споживача Bj (ставимо в усіх клітинках стовпчика і рядка, крім заповненої, прочерки) і переходимо до заповнення наступної клітинки Ai+1Bj+1.

3. Серед незаповнених клітинок (без обсягу вантажу і прочерків) знову вибираємо верхню ліву клітинку таблиці і заповнюємо її за правилами, поданими в п. 2. Так продовжуємо до тих пір, доки не заповнимо всі клітинки таблиці.

136

4. З одержаної таблиці виписуємо початковий опорний план транспортної задачі та обчислюємо значення цільової функції при цьому плані.

Розглянемо алгоритм побудови початкового опорного плану транспортної задачі діагональним методом на прикладі.

Приклад 4.1. Методом північно-західного кута (діагональним) знайти початковий опорний план перевезення однорідного вантажу від постачальників А1, А2, A3 з запасами а1=200, a2=150, а3=175 до споживачів В1, B2, В3, В4 з потребами в цьому вантажі b1=140, b2=125, b3=90, b4=170, якщо відома вартість перевезення одиниці вантажу від постачальників до споживачів:

 

2

8

6

1

 

 

3

7

5

2

 

cij =

.

 

4

9

3

6

 

 

 

Розв’язування.

Перевіримо, чи транспортна задача є закритою. Обчислимо:

3

 

 

4

 

ai

= 200

+150 +175 = 525;

bj

=140 +125 +90 +170 = 525.

i=1

 

 

j=1

 

 

4

3

 

 

Оскільки ai

= bj , то окреслена транспортна задача закритого типу.

 

i=1

j=1

 

 

Першою заповнюємо клітинку А1В1 числом 140, як min(200;140). В результаті такої дії потреби споживача В1 задовольнилися, а у постачальника А1 залишилось ще 60 одиниць вантажу (200–140). Оскільки споживачеві В1 більше не потрібно вантажу, то ставимо прочерки в усіх інших клітинках стовпчика, зокрема в клітинках А2В1 та А3В1. Далі переходимо до сусідньої клітинки в рядку чи стовпчику, але оскільки в клітинці А2В1 вже стоїть прочерк, то наступною будемо заповнювати клітинку А1В2. У постачальника А1 ще залишилось 60 одиниць вантажу, а споживачеві В2 потрібно 125, тому в клітинку А1В2 записуємо менше з цих чисел – 60. Оскільки постачальник А1 більше вантажу не має, то ставимо прочерки в незаповнених клітинках рядочка А1В3 та А1В4. Переходимо до сусідньої клітинки по стовпчику – А2В2 (оскільки в сусідній клітинці рядочка А1В3 стоїть прочерк) і заповнюємо її. Постачальник А2 має 150 одиниць вантажу, а споживачеві В2 ще потрібно 65 (60 одиниць вантажу він вже отримав від постачальника A1), тому в клітинку А2В2 записуємо менше з цих чисел – 65. Оскільки споживачу В2 більше вантажу не

137

треба, то ставимо прочерки в клітинках стовпця, що залишились незаповненими, зокрема в клітинці А3В2. Переходимо до сусідньої клітинки по рядочку – А2В3. У постачальника А2 ще залишилось 85 одиниць вантажу (65 одиниць він віддав споживачеві В2), а споживачеві В3 потрібно 90, тому в клітинку А2В3 заносимо менше з цих чисел – 85. Оскільки постачальник А2 вантажу більше не має, то ставимо прочерки в незаповнених клітинках рядочка – в клітинці А2В4. Незаповненими залишилися ще дві клітинки – А3В3 та А3В4. Оскільки в сусідній з А2В3 клітинці по рядочку – прочерк, то заповнюємо сусідню клітинку по стовпчику – А3В3. Постачальник А3 має 175 одиниць вантажу, а споживачеві В3 ще потрібно 5 (85 одиниць вантажу він вже отримав від постачальника А2), тому в клітинку А2В2 записуємо 5. Залишилась незаповненою одна клітинка

А3В4. У постачальника А3 залишилось 170 одиниць вантажу (5 одиниць він віддав споживачеві В3), споживачеві В4 потрібно 170, тому в клітинку А3В4 записуємо 170. Наша таблиця матиме вигляд:

Постачальники

A1

A2

A3

Споживачі

 

B1

 

B2

 

B3

B4

Потреби

 

140

 

125

 

90

170

Запаси

 

 

 

 

 

 

 

 

 

 

200

2

 

8

 

6

 

1

 

140

 

60

 

 

 

 

 

150

3

 

7

 

5

 

2

 

 

65

 

85

 

4

 

 

175

 

9

 

3

 

6

 

 

 

5

170

 

 

 

 

Ми отримали початковий опорний план:

140

60

0

0

 

xопорн. =

0

65

85

0

.

 

0

0

5

170

 

Щоб дізнатись, якою буде вартість перевезення вантажу за таким планом, потрібно перемножити вартість перевезення одиниці вантажу на кількість вантажу, що перевозиться, для всіх заповнених (де немає прочерків) клітинок таблиці і знайти їхню суму, а саме:

Z=2·140+8·60+7·65+5·85+3·5+6·170=280+480+455+425+15+1020=2675.

138

2. Метод найменшої вартості.

Правила знаходження початкового опорного плану транспортної задачі методом найменшої вартості відрізняються від правил знаходження такого плану діагональним методом тільки послідовністю вибору клітинки, яку потрібно заповнювати. Згідно з методом найменшої вартості першою вибирається клітинка з найменшою вартістю перевезення одиниці вантажу від постачальника до споживача. Якщо таких клітинок декілька, то вибираємо ту, для якої кількість вантажу, що можна перевезти, найбільша.

Алгоритм методу найменшої вартості побудови початкового опорного плану транспортної задачі розглянемо на прикладі.

Приклад 4.2. Методом найменшої вартості знайти початковий опорний план перевезення однорідного вантажу від постачальників А1, А2, A3 з запасами а1=200, a2=150, а3=175 до споживачів В1, B2, В3, В4 з потребами в цьому вантажі b1=140, b2=125, b3=90, b4=170, якщо відома вартість перевезення одиниці вантажу від постачальників до споживачів:

 

2

8

6

1

cij =

3

7

5

2 .

4

9

3

6

Розв’язування.

Зприкладу 4.1 ми знаємо, що описана транспортна задача закритого типу. Знайдемо початковий опорний план цієї транспортної задачі методом найменшої вартості. Вибираємо клітинку з найменшою вартістю перевезень одиниці вантажу. В нашому випадку

це клітинка A1B4 з вартістю перевезення 1. Перший постачальник має 200 одиниць вантажу, а споживачеві В4 треба 170, тому записуємо в цій клітинці менше з цих чисел – 170. Оскільки споживачеві більше не потрібно вантажу, то в усіх решту клітинках

зазначеного стовпця ставимо прочерки, зокрема в клітинках A2B4 та А3В4. Тоді вибираємо клітинку з найменшою вартістю перевезень одиниці вантажу серед тих, які залишились (крім заповненої A1B4 і тих клітинок, в яких стоять прочерки). Це клітинка A1B1, вартість перевезення в якій 2. Постачальник А1 ще має 30 одиниць вантажу (він мав 200, з яких 170 віддав споживачу В4), а споживачеві В1 потрібно 140, тому записуємо в цій клітинці 30, а в усіх клітинках

описуваного рядка ставимо прочерки (в клітинках A1B2 та A1B3), тому що перший постачальник більше не має вантажу. З тих клітинок, які залишились незаповненими, знову беремо клітинку A2B1 з

139

найменшою вартістю – 3. Постачальник А2 має 150 одиниць вантажу, а споживачеві ще треба 110 (30 одиниць вантажу він вже отримав від першого постачальника). Забираємо в постачальника А2 цих 110 одиниць вантажу і записуємо в окресленій клітинці, а в усіх незаповнених клітинках стовпця ставимо прочерки (в цьому стовпчику незаповненою залишилась тільки клітинка A3B1, тому прочерк ставимо в ній). В постачальника А2 ще залишилось 40 одиниць вантажу (150–110). Наступна клітинка серед незаповнених з найменшою вартістю перевезення 3 – це клітинка А3В3. Споживачеві В3 потрібно 90 одиниць вантажу, а постачальник А3 ще має 175, тому пишемо в клітинці А3В3 менше з цих чисел, тобто 90, і оскільки споживачеві більше не потрібно вантажу, а в стовпчику, що йому відповідає, залишилась єдина незаповнена клітинка А2В3, то ставимо в цій клітинці прочерк. Залишилося дві незаповнених клітинки А2В2 та А3В2. Менша вартість перевезення одиниці вантажу в клітинці А2В2, тому заповнюємо спочатку її. В постачальника А2 ще є 40 одиниць вантажу, а споживачеві В2 треба 125, тому пишемо в цій клітинці 40 і переходимо до останньої незаповненої клітинки нашої таблиці А3В2. Постачальник має 85 одиниць вантажу (він мав 175, але 90 одиниць віддав споживачеві В3) і споживачеві В2 треба стільки ж (йому було потрібно 125 одиниць вантажу, але 40 одиниць він взяв у постачальника А2), тому записуємо в цій клітинці 85. Наша таблиця має вигляд:

-Постачальники

A1

A2

A3

Споживачі

 

B1

 

B2

 

B3

B4

Потреби

 

140

 

125

 

90

170

Запаси

2

 

8

 

6

 

1

200

 

 

 

 

30

 

 

170

 

3

 

 

150

 

7

 

5

 

2

 

110

 

40

 

 

 

 

 

175

4

 

9

 

3

 

6

 

 

85

 

90

 

 

 

 

Ми отримали початковий опорний план:

140

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]