Лінійне програмування 3 лютого

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

Завдання 1 (16.88)

Мінімізувати функцію f (x) на всій числовій осі методом Ньютона. Критерієм досягнення необхідної точності вважати виконання нерівності .

Рішення:

Знайдемо першу і другу похідні вихідної функції:

Виберемо початкове наближення . І здійснимо обчислення за формулою

Результати запишемо в таблиці

n

0

0

2

1

1

-0,2

1,91

-0,1649

2

-0,175697

1,908525

-0,0032

3

-0,17520305

1,908524

-0,0000013

n = 1

n = 2

n = 3

n = 4

Далі ми закінчуємо обчислення, тому що дана точність досягнута. У результаті ми отримуємо: і .

Здійснимо перевірку за допомогою вбудованої функції Minimize:

,

Відповідь:

і

Задача 2 (16.115)

Виписати матрицю Q квадратичної функції f (x), знайти її градієнт в точці і переконатися в опуклості f (x) у .

,

Рішення:

Запишемо вихідну функцію в наступному вигляді:

,

де

Тоді матриця Q прийме вигляд:

Знайдемо градієнт в точці за формулою , Де r - вектор-стовпець і дорівнює :

Підставляючи в отриману матрицю , Ми отримуємо таке значення градієнта в даній точці:

Тепер переконаємося в опуклості f (x) у . Для того, щоб вихідна функція була опуклою в , Достатньо, щоб матриця Q була позитивно визначена. Для цього знайдемо кутові мінори матриці Q і якщо вони будуть більше нуля, то функція f (x) буде опуклою в .

,

Так як , , То функція f (x) опукла в .

Перевірка в Mathcad:

Перевірка на опуклість і знаходження градієнта в точці x 0

Відповідь: градієнт дорівнює і функція f (x) буде опуклою в .

Завдання 3 (16.136)

Мінімізувати квадратичну функцію методом найшвидшого спуску, закінчуючи обчислення при , .

Рішення:

Тоді похідні вихідної функції будуть мати вигляд:

Виберемо початкове наближення . Тоді

Для знаходження точки мінімуму функції знайдемо нулі її похідної:

Знаючи , Ми визначимо наступним чином:

І так далі по вище описаній ланцюжку.

Реалізуємо рішення даної задачі в математичному пакеті Mathcad.

Функція має вигляд:

Тоді коефіцієнти будуть рівні

Візьмемо такі початкове наближення і :


Далі пишемо програму

У результаті отримуємо шукане рішення і функцію :

Відповідь:

і

Завдання 4 (16.155)

Мінімізувати функцію f (x) методом спряжених напрямків, закінчуючи обчислення при , .

Рішення:

Тоді приватні похідні вихідної функції будуть мати вигляд:

Рішення будемо шукати за наступним алгоритмом:

Крок 1.

Вибравши початкове наближення

,

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

=>> , Звідки

Крок 2.

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

=>> ,

звідки

Крок 3.

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

=>> , Звідки

Крок 4.

отже необхідна точність досягнута і

Відповідь:

Завдання 5 (16.193)

Вирішити задачу лінійного програмування графічним методом.

Рішення:

Зобразимо на площині наш багатокутник ABCDE (червоного кольору) і одну з ліній рівня (Рожевого кольору).

Лінії AB відповідає рівняння , BC відповідає , CD відповідає , DE відповідає і EA відповідає

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

Відповідь: і

Завдання 6 (16.205)

Вирішити задачу лінійного програмування в канонічному вигляді графічним методом.

Рішення:

Матриця системи буде мати наступний вигляд:

Ранг цієї матриці дорівнює . Тоді число вільних змінних дорівнює , Тому для вирішення завдання можна використовувати графічний метод. Вирішивши систему обмежень - рівностей щодо базисних змінних , , Отримаємо:

Виключаючи за допомогою отриманої системи змінні , з виразу для цільової функції, одержуємо:

З урахуванням умови неотрицательности , , І останніх рівностей отримуємо таку задачу:

Зобразимо на площині наш багатокутник ABCDEJ (червоного кольору) і одну з ліній рівня (Рожевого кольору).

Лінії AB відповідає рівняння , BC відповідає , CD відповідає , DE відповідає , EJ відповідає і JA відповідає .

Напрямок спадання функції вказує вектор . Здійснюючи паралельний перенесення лінії рівня вздовж напрямку , Ми бачимо, що цільова функція містить бік AB багатокутника ABCDEJ. Таким чином, всі крапки відрізка AB є точками мінімуму функції . Так як кінці A і B мають координати і відповідно, то знайдемо звідси координати і :

Тоді будь-яка точка мінімуму бути подана в вигляді

де . Мінімальне значення цільової функції

Відповідь: нескінченна безліч рішень

, Де і .

Задача 7 (16.216)

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

Рішення:

Матриця системи має вигляд

.

Її ранг дорівнює 3. Введемо додаткові змінні і запишемо умову допоміжної задачі лінійного програмування для розглянутого випадку:

Вважаючи додаткові змінні базисними, запишемо симплекс таблицю цього завдання, відповідну кутовий точці :



3

-2

3

2

9

1

2

-1

1

0

-1

-1

2

1

6


-3

1

-4

-4

-15

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

  1. дивимося на нижній рядок - вибираємо той стовпець, в якому нижній елемент негативний, якщо таких стовпців кілька, то вибираємо будь-який (у нашому випадку вибираємо перший стовпець );

  2. далі дивимося на останній і вибраний стовпці - порівнюємо відносини елементів останнього і вибраного стовпців (у вибраному стовпці беремо тільки позитивні числа), і вибираємо той елемент вибраного стовпця, де ставлення елементів буде найменшим (в нашому випадку 9 / 3 і 0 / 1, так як друге ставлення найменше, отже, опорним елементом буде 1);

  3. міняємо місцями змінні і , Інші змінні залишаємо на своїх місцях;

  4. на місце опорного елемента ставимо ставлення 1 / (опорний елемент);

  5. на решті місць роздільної рядка записуємо відповідні елементи вихідної таблиці, поділені на опорний елемент;

  6. на вільні місця дозволяє стовпця ставимо зі знаком мінус відповідні елементи вихідної таблиці, поділені на опорний елемент;

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

Виробляючи перетворення симплекс-методу, отримаємо таку послідовність симплекс-таблиць:



- 3

- 8

6

-1

9

1

2

-1

1

0

1

1

1

2

6


3

7

- 7

- 1

-15



-2

- 6

5

1

9

1

2

-1

1

0

-1

- 3

3

-2

6


4

9

- 8

1

-15



-2 / 5

-6 / 5

1 / 5

1 / 5

9 / 5

3 / 5

4 / 5

1 / 5

6 / 5

9 / 5

1 / 5

3 / 5

-3 / 5

-13 / 5

3 / 5


4 / 5

-3 / 5

8 / 5

13 / 5

-3 / 5



0

2

-1

-5

3

1 / 3

-4 / 3

1

14 / 3

1

1 / 3

5 / 3

-1

-13 / 3

1


1

1

1

0

0

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

Відповідь: і .

Завдання 8 (16.237)

Вирішити повністю цілочисельну задачу лінійного програмування методом Гоморі.

Рішення:

Введемо додаткові змінні і запишемо умову допоміжної задачі лінійного програмування для розглянутого випадку:

Вважаючи додаткові змінні базисними, запишемо симплекс таблицю цього завдання, відповідну кутовий точці :



1

0

2

1

8

1

1

0

-1

4

-1

2

1

3

6


-1

-3

-3

-3

-18

Зробимо перетворення вихідної симплекс-таблиці симплекс-методом наступним чином: дивимося на нижній рядок - вибираємо той стовпець, в якому нижній елемент негативний, якщо таких стовпців кілька, то вибираємо будь-який (у нашому випадку вибираємо перший стовпець ), Далі дивимося на останній і вибраний стовпці - порівнюємо відносини елементів останнього і вибраного стовпців (у вибраному стовпці беремо тільки позитивні числа), і вибираємо той елемент вибраного стовпця, де ставлення елементів буде найменшим (в нашому випадку 9 / 3 і 0 / 1 , так як друге ставлення найменше, отже, опорним елементом буде 1); міняємо місцями змінні і , Інші змінні залишаємо на своїх місцях; на місце опорного елемента ставимо ставлення 1 / (опорний елемент); а інших місцях роздільної рядка записуємо відповідні елементи вихідної таблиці, поділені на опорний елемент; на вільні місця дозволяє стовпця ставимо зі знаком мінус відповідні елементи вихідної таблиці , поділені на опорний елемент; залишилися вільні місця в новій симплекс-таблиці заповнюємо порядково наступним чином: з рядка елементів вихідної таблиці віднімаємо твір її елемента з дозволяючого стовпця на вже заповнену роздільну рядок нової таблиці. Виробляючи перетворення симплекс-методу, отримаємо таку послідовність симплекс-таблиць:



4 / 3

-2 / 3

5 / 3

-1 / 3

6

2 / 3

5 / 3

1 / 3

1 / 3

6

-1 / 3

2 / 3

1 / 3

1 / 3

2


-2

-1

-2

1

-12



1

1

2

0

8

3 / 2

-5 / 2

-1 / 2

-1 / 2

1

-1 / 2

3 / 2

1 / 2

1 / 2

3


-5 / 2

3 / 2

-3 / 2

3 / 2

-9



1 / 2

1 / 2

1 / 2

0

4

7 / 4

-9 / 4

1 / 4

-1 / 2

3

-3 / 4

5 / 4

-1 / 4

1 / 2

1


-7 / 4

9 / 4

3 / 4

3 / 2

-3



-2 / 7

8 / 7

3 / 7

1 / 7

22 / 7

4 / 7

-9 / 7

1 / 7

-2 / 7

12 / 7

3 / 7

2 / 7

-1 / 7

2 / 7

16 / 7


1

0

1

1

0

Як бачимо, в останньому рядку таблиці всі елементи позитивні, тобто отримуємо рішення і . Але це рішення не задовольняє умові цілочисельності, тому доповнюємо останню симплекс-таблицю рядком, використовуючи наступні правила: серед нецілих елементів вибирається довільний елемент , По r-ої рядку симплекс-таблиці складається додаткове обмеження виду (Тут ми вважаємо, що вільні змінні мають номери m +1, ..., n). За допомогою допоміжної змінної це обмеження представляється у вигляді рівності і вводиться в симплекс-таблицю додаткової рядком

Де

,

де фігурні дужки означають дробову частину.

Таким чином, ми отримуємо таку таблицю:



-2 / 7

8 / 7

3 / 7

1 / 7

22 / 7

4 / 7

-9 / 7

1 / 7

-2 / 7

12 / 7

3 / 7

2 / 7

-1 / 7

2 / 7

16 / 7

2 / 7

-1 / 7

-3 / 7

-1 / 7

-1 / 7


1

0

1

1

0

Так як , То після доповнення рядком симплекс-таблиця перестає відповідати допустимому базисного вирішення завдання лінійного програмування, яку вона описує.

Для переходу до допустимого базисного рішенням проводяться наступні операції:

а) рядок з негативним вільним членом вважається роздільної;

б) якщо всі коефіцієнти , То задача не має рішення, у противному випадку номер l дозволяє стовпця знаходиться з умови:

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

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

Застосовуючи ці правила до нашої симплекс-таблиці, ми отримуємо такі перетворення:



-2 / 7

8 / 7

3 / 7

1 / 7

22 / 7

4 / 7

-9 / 7

1 / 7

-2 / 7

12 / 7

3 / 7

2 / 7

-1 / 7

2 / 7

16 / 7

2 / 7

-1 / 7

-3 / 7

-1 / 7

-1 / 7


1

0

1

1

0



2

8

-3

-1

2

-2

-9

4

1

3

1

2

-1

0

2

-2

-7

3

1

1


1

0

1

1

0

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

і

Відповідь: і

Задача 9 (16.258)

Вирішити завдання дробово - лінійного програмування.

Знаменник цільової функції позитивний попри всі x з допустимого безлічі U, так як .

Вводимо нові змінні

, ,

і отримуємо таку завдання лінійного програмування:

Невідомі параметри ми можемо вже з цих висловів знайти:

,

Відповідь: ,

Завдання 10 (16.268)

Вирішити завдання квадратичного програмування.

,

Рішення:

Матриця нашої квадратичної функції позитивно визначена. Наша вихідна задача має вигляд:

(1)

, , (2)

, . (3)

На підставі теореми Куна-Таккера точка мінімуму цільової функції з (1) на допустимому безлічі (2) і (3) може бути знайдена як рішення наступної системи рівнянь з додатковими змінними ; :

, ,

, ,

, ,

, ,

задовольняє умові неотрицательности:

, , ,

, .

Застосовуючи вище описані умови, ми перетворимо вихідну задачу в такий вигляд:

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

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

Послідовність симплекс-таблиць, що призводять до вирішення завдання, наведена нижче. Рамками обведені опорні елементи, а ті вільні змінні, які на даному кроці можна переносити в базисні через умови , Обведені гуртками.

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

Відповідь: і

Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Контрольна робота
120.9кб. | скачати


Схожі роботи:
Лінійне програмування 2 лютого
Лінійне програмування
Лінійне програмування 2
Лінійне програмування
Лінійне та нелінійне програмування
Динамічне і лінійне програмування
Лінійне програмування симплекс-методом Данцига
Лінійне програмування симплекс методом Данцига
Основні поняття математичного програмування Побудова моделі задачі лінійного програмування
© Усі права захищені
написати до нас