Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Chiselni_metodi_za_dopomogoyu_Excel.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
8.81 Mб
Скачать

§8. Пошук початкового опорного розв’язку. Метод штучного базису

Для того, щоби застосувати симплекс – метод до задачі лінійного програмування у канонічній формі, необхідно спочатку знайти деякий початковий допустимий опорний розв’язок. У попередньому прикладі це було досягнуто завдяки безпосередньому розповсюдженню симплекс – метода (метода жорданових перетворень). Розглянемо це більш докладно на прикладі задачі про раціон, математична модель якої отримана у §1:

f = 20х1 + 30х2 (min)

.

Ввівши нові змінні х3, х4 і змінивши знаки коефіцієнтів у цільової функції, зведемо цю модель до канонічної:

f ´ = – 20х1 – 30х2 (mах)

.

Запишемо її у електронну симплекс – таблицю:

А

B

C

D

E

F

1

х1

х2

х3

х4

d

d/aij

2

2

5

-1

0

8

3

3

2

0

-1

9

4

-20

-30

0

0

0

 

Ця симплекс – таблиця не приведена до початкового опорного розв’язку. Проте будемо діяти у відповідності з симплекс – методом. Змінні x3, x4 не можна безпосередньо використати у якості основних, оскільки тоді їх значення будуть від’ємними, а відповідні розв’язки не допустимими. Спробуємо x1 у якості основної. Щоби знайти ведучий елемент у стовпці А перевіримо умову допустимості.

А

B

C

D

E

F

1

х1

х2

х3

х4

b

b/aij

2

2

5

-1

0

8

4

3

3

2

0

-1

9

3

4

-20

-30

0

0

0

 

Отже, виокремимо нову симплекс – таблицю в діапазоні А6: F8. Надамо чарункам електронної таблиці таких значень:

А

B

C

D

E

F

6

=А2 – А7*$А$2

7

=А3/$А$3

8

=А4 – А7*$А$4

Звичайно, спочатку діємо у рядку 7, а потім у решті. В результаті дістанемо:

А

B

C

D

E

F

х1

х2

х3

х4

b

b/aij

6

0

3,666667

-1

0,666667

2

7

1

0,666667

0

-0,33333

3

8

0

-16,6667

0

-6,66667

60

 

У якості другої основної змінної спробуємо x2. Щоби знайти ведучий елемент у стовпці В перевіримо умову допустимості.

А

B

C

D

E

F

х1

х2

х3

х4

b

b/aij

6

0

3,666667

-1

0,666667

2

0,545455

7

1

0,666667

0

-0,33333

3

4,5

8

0

-16,6667

0

-6,66667

60

 

Нам пощастило: ведучий елемент виявився саме на необхідному місці. Якщо б замість 3,666667 значення у чарунці В6 дорівнювало скажімо 0,1 , то нам залишилося б замість x2 спробувати якусь іншу змінну. Тепер виконаємо чергове жорданове перетворення з ведучим елементом у В6:

А

B

C

D

E

F

х1

х2

х3

х4

b

b/aij

10

0

1

-0,27273

0,181818

0,545455

 

11

1

0

0,181818

-0,45455

2,636364

 

12

0

0

0

-5,45455

27,27273

 

Нарешті симплекс – таблиця виявляється приведеною до базису А1 , А2 опорного розв’язку. Всі оцінки не додатні. Згідно з теоремою 1 це означає, що розв’язок є оптимальним, на цьому симплекс – метод припиняє роботу. Значення цільової функції із зміненими коефіцієнтами f ´ = – 27,27273, отже f = 27,27273. Разом з тим зауважимо, що оцінка δ3 = 0, отже цільова функція, виражена через вільні змінні х4, х3 має вигляд f ´ = 27,27 – 5,45х4. Тому, якщо обрати за нову основну змінну х3, то хоча її значення і стане додатним замість нульового, але значення цільової функції f ´ не зміниться і ми дістанемо новий оптимальний опорний розв’язок. Отже, виконаємо жорданове перетворення ще раз. У стовпці С додатним є лише значення у чарунці С11, тому вона і є ведучим елементом. В результаті дістанемо:

А

B

C

D

E

F

14

1,5

1

0

-0,5

4,5

 

15

5,5

0

1

-2,5

14,5

 

16

0

0

0

-5,45455

27,27273

 

Отже, існують принаймні два різних оптимальних опорних розв’язка, а тому існує нескінченна множина оптимальних розв’язків даної задачі – всі точки на відрізку між цими опорними розв’язками. Загалом процес перетворень виглядає так:

А

B

C

D

E

F

1

х1

х2

х3

х4

d

d/aij

2

2

5

-1

0

8

4

3

3

2

0

-1

9

3

4

-20

-30

0

0

0

 

5

6

0

3,666667

-1

0,666667

2

0,545455

7

1

0,666667

0

-0,33333

3

4,5

8

0

-16,6667

0

-6,66667

60

 

9

10

0

1

-0,27273

0,181818

0,545455

 

11

1

0

0,181818

-0,45455

2,636364

 

12

0

0

0

-5,45455

27,27273

 

13

14

1,5

1

0

-0,5

4,5

 

15

5,5

0

1

-2,5

14,5

 

16

0

0

0

-5,45455

27,27273

 

Звичайно, застосований тут метод не є ефективним алгоритмом пошуку початкового опорного розв’язку. Фактично ми просто пробували деякі пари змінних у якості основних і такий процес перебору може тривати дуже довго. Справжнім ефективним алгоритмом є наступний метод штучного базису.

Розглянемо задачу лінійного програмування у канонічній формі (3):

f = (max)

= bi (i = 1, 2, …, m)

xj ≥ 0 (j = 1, 2, …, n) .

Як і завжди, вважаємо, що всі bi ≥ 0. Для пошуку початкового опорного розв’язку побудуємо допоміжну задачу

g = (min)

+ yi = bi (i = 1, 2, …, m)

xj ≥ 0 (j = 1, 2, …, n) , yi ≥ 0 (i = 1, 2, …, m). (4)

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