Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
40-1-05.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
3.8 Mб
Скачать

2.3. Метод симплекс-таблиць

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

,

де C – максимально можлива кількість ітерацій (умова перевірки на зацикленість);

n – кількість рівнянь;

m – кількість змінних у канонічному вигляді.

Симплекс-метод базується на постійних перетвореннях таблиці:

Cx

Bx

A0

A1

Am

1

2

3

n

Δ

0

1

m

Frame15

Розглянемо приклад.

Фірма рекламує продукцію на радіо та телебаченні з обмеженням витрат на рекламу – 1500$ на тиждень. Хвилина реклами на радіо коштує 5$, на телебаченні – 100$. Фірма хоче використовувати радіо в два і більше разів частіше, ніж телебачення. Досвід минулих років показав, що обсяг збуту, забезпечений хвилиною реклами на телебаченні, в 25 разів вищий, ніж хвилиною на радіо. Визначити розподіл коштів на рекламу.

х1 – пошукові хвилини реклами на радіо, х2 – на телебаченні.

2*5 (розмірність)

1

25

0

0

-250

5

100

1

0

0

1500

1

-2

0

-1

1

0

1-а ітерація:

1

25

0

0

-

Cимплекс різниця Δj:

250

Cx

Bx

A0

A1

A2

A3

A4

A5

0

x3

1500

5

100

1

0

0

-250

x5

0

1

-2

0

-1

1

Δ

0

-251

475

0

250

0

Кожна ітерація полягає в заміні (перерахунку) базисної змінної.

  1. Визначення спрямовуючого стовпчика j*

Якщо Δj відсутнє, то розв’язок знайдено: базисні змінні дорівнюють А0, а небазисні – 0.

  1. Визначення спрямовуючого рядка i*

Якщо i* відсутнє, тобто в стовпчику знаходиться значення не більше 0, то розв’язок відсутній (ОДР не обмежена зверху), інакше фіксуємо спрямовуючий елемент: (21) = 1.

  1. Перерахунок таблиці (власне заміна базисних змінних):

 ділення значень спрямовуючого рядка на спрямовуючий елемент:

 обнулення значень спрямовуючого стовпця, крім спрямовуючого елемента:

 перерахунок решти значень за формулою прямокутників:

  1. Перевірка ітерації:

 цільова функція має не зменшуватися;

 номер ітерації має не перевищувати їхню максимальну кількість:

;

 базисні змінні мають мати одиничний вектор;

 розрахунок Δj має співпадати як за формулою спрямовуючого стовпчика, так і за формулою «прямокутника».

2-а ітерація:

1

25

0

0

-250

Cx

Bx

A0

A1

A2

A3

A4

A5

0

x3

1500

0

110

1

5

-5

1

x1

0

1

-2

0

-1

1

Δ

0

0

-27

0

-1

251

3-а ітерація:

1

25

0

0

-250

Cx

Bx

A0

A1

A2

A3

A4

A5

25

x2

13.64

0

1

0.009

0.045

-0.009

1

x1

27.27

1

0

0.018

-0.9

0.909

Δ

368.2

0

0

0.245

0.227

249.8

Розв’язок знайдено, тому що всі Δ  0. Після розрахунку потрібно виконати наступну перевірку:

  • чи всі M-змінні дорівнюють 0: якщо ні, то розв’язок відсутній або ж вибрано занадто малий коефіцієнт m;

  • значення Z має дорівнювати значенню CiXi.

Для програмування методу мовою Pascal потрібна така пам’ять:

C: array 1..M of real; A: array 1..N, 0..M of real;

D: array 0..M of real; B: array 1..N of byte,

де С – файл коефіцієнтів цільової функції;

А – файл коефіцієнтів обмежень лівої і правої частин;

D – файл значень симплекс різниці;

B – файл номерів базисних змінних.

Програмування СМ виконується на базі наведеного алгоритму, який має циклічний обчислювальний процес «while», доки значення файла D не стане позитивним. Алгоритм має процедури розрахунку в симплекс-таблиці спрямовуючого елемента, перерахунку значень симплекс-таблиці та друку потрібних ітерацій для контролю на екран.

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