Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ММДО тема5.doc
Скачиваний:
4
Добавлен:
18.08.2019
Размер:
897.02 Кб
Скачать
    1. Модифікований симплекс-метод

В варіантах симплекс-методу, що розглядалися раніше, при реалізації послідовних ітерацій — переході від попередньої до наступної симплекс-таблиці — використовувався метод Ґауса-Жордана, при застосуванні якого для автоматизації розрахунків необхідний великий об’єм пам’яті. З метою усунення такого недоліку застосовується модифікований симплекс-метод, що являє собою різновид симплекс-методу, який крім того дозволяє в багатьох випадках зменшити ще й загальну кількість арифметичних операцій. Суттєвою в цьому методі є реалізація процедури обчислення оберненої матриці .

Основні кроки модифікованого симплекс-методу не відрізняються від класичного (різниця полягає в деталях реалізації) і утворюють наступну послідовність:

  1. Знаходження початкового базового розв’язку.

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

  3. Розрахунок компонент вектору .

  4. Обчислення значень критеріїв оптимальності досягнутого текучого розв’язку задачі ЛП . Якщо то знайдений біжучий розв’язок є оптимальним — робота алґоритму зупиняється. В іншому випадку обирається — найбільше за абсолютним значенням від’ємне число.

  5. Обчислення компонент вектору у вихідній базі. Якщо серед цих компонент немає додатніх, то функція мети не обмежена на множині припустимих розв’язків — стоп. Якщо ж серед компонент вектору є додатні, то перехід до наступного базового розв’язку.

  6. Знаходження ведучого рядка за відомими правилами симплекс-методу та обчислення компонент нового базового розв’язку і матриці , що є тепер матрицею, оберненою до матриці компонент векторів нового базового розв’язку.

  7. Перевірка нового розв’язку на оптимальність. Якщо розв’язок неоптимальний, то перехід до кроку 3.

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

xb

cb

P0

c1

c2

...

cn

...

P1

P2

...

Pn

x1

c1

b1

x11

x12

...

x1n

...

x2

c2

b2

x21

x22

...

x2n

...

.

.

.

.

.

...

.

...

...

...

xi

ci

bi

xi1

xi2

...

xin

...

.

.

.

.

.

...

.

...

...

...

xm

сm

bm

xm1

xm2

...

xmn

...

...

...

...

...

...

...

...

...

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

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

замість стовпчиків векторів Рj з відповідними значеннями сj записуються стовпчики векторів Aj, координатами яких є відповідні стовпчики матриці B-1 ;

в (m+1)- му рядку записуються компоненти вектору , а не знгачення ;

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

xb

cb

P0

А1

А2

...

Аn

Ps

x1

c1

b1

a11

a12

...

a1n

x1s

x2

c2

b2

a21

a22

...

a2n

x2s

.

.

.

.

.

...

.

xi

ci

bi

ai1

ai2

...

ain

xis

.

.

.

.

.

...

.

xm

сm

bm

am1

am2

...

amn

xms

...

Для того, щоб знайти вектор Рs , спочатку знаходимо вектор компоненти якого визначаються як скалярний добуток вектору на відповідні вектори (знайдені значення записуємо в останньому рядку основної таблиці та у відповідному стовпчику додаткової таблиці). Після цього розраховуємо елементи відповідного -рядка допоміжної таблиці. Якщо всі компоненти цього рядка невід’ємні, то знайдено оптимальний розв’язок. В іншому випадку , якщо задача має розв’язок, здійснюється перехід до наступного. В останньому стовпчику основної таблиці записуємо компоненти вектора , розкладені за векторами біжучої бази. Ці значення отримуємо в результаті множення матриці основної таблиці на вектор допоміжної таблиці. Далі знаходимо ведучий рядок і за відомими правилами переходимо до наступної основної таблиці.

Приклад.

Розв’яжемо за допомогою модифікованого симплекс-методу задачу, яку ми вже розв’язали звичайним симплекс-методом.

Q= 3x1+2x2  Max,

x1+2x23 =6

2x1+x2 4 =8

-x1+x2 5 =1

x2 6 =2

x1 >=0 x2 >=0

Ця задача має початковий базовий розв’язок x=(0; 0; 6; 8; 1; 2), що визначається векторами P3, P4, P5, P6. Складовім цих векторів визначають одиничну матрицю , обернена до якої теж є одиничною.

Складаємо основну та допоміжну таблиці. В допоміжній таблиці заповнюємо 4 рядки стовпчиків векторів, а в основній — перші 4 рядки, враховуючи що обернена до одиничної матриці є одиничною матрицею.

Допоміжна таблиця

c1

c2

c3

c4

c5

c6

xb

cb

P0

3

2

0

0

0

0

P1

P2

P3

P4

P5

P6

x3

0

6

1

2

1

0

0

0

0

0

1/3

x4

0

8

2

1

0

1

0

0

0

3/2

4/3

x5

0

1

-1

1

0

0

1

0

0

0

0

x6

0

2

0

1

0

0

0

1

0

0

0

-3

-2

0

0

0

0

0

-1/2

0

3/2

0

0

0

0

1/3

4/3

0

0

Визначаємо вектор , записуючи його в основну таблицю:

Розрахуємо також значення функції мети та запишемо його в 1-у основну таблицю. Після заповнення 1-го додаткового рядка основної таблиці значення компонент перепишемо в 1-й додатковий стовпчик додаткової таблиці.

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

В базу необхідно ввести вектор Р1. Тому цей стовпчик з додаткової таблиці, розкладений за векторами наявної бази (для цього множимо обернену матрицю, наявну в стовпчиках А 1-ї основної таблиці, на вектор Р1 в додатковій таблиці ) дописуємо в 1-у основну таблицю.

1-а основна таблиця

xb

cb

P0

А1

А2

А3

А4

P1

x3

0

6

1

0

0

0

1

6/1=6

x4

0

8

0

1

0

0

2

8/2=4

x5

0

1

0

0

1

0

-1

x6

0

2

0

0

0

1

0

0

0

0

0

0

-3

З бази за правилами звичайного симплекс-методу виводимо х4. Число 2 є ведучим елементом. Виконуємо перехід до нової основної таблиці симплекс-методу.

2-а основна таблиця

xb

cb

P0

А1

А2

А3

А4

P2

x3

0

2

1

-1/2

0

0

3/2

4/3

x1

3

4

0

1/2

0

0

1/2

8

x5

0

5

0

1/2

1

0

3/2

10/3

x6

0

2

0

0

0

1

1/2

4

12

0

3/2

0

0

-1/2

Визначаємо вектор , записуючи його в основну таблицю:

.

Обчислюємо в основній таблиці. До бази вводимо Р2 , записуємо в 2-гу основну таблицю його представлення за векторами нової бази:

З бази виводимо х3 , а вводимо Р2 . Переходимо до наступної основної симплекс-таблиці.

3-я основна таблиця.

xb

cb

P0

А1

А2

А3

А4

x2

2

4/3

2/3

-1/3

0

0

x1

3

10/3

-1/3

2/3

0

0

x5

0

3

-1

1

1

0

x6

0

2/3

-2/3

1/3

0

1

38/3

1/3

4/3

0

0

Розраховуємо значення . Оскільки всі його компоненти невід’ємні, то знайдений оптимальний розв’язок.

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