Знаходження оптимального числа листів фанери і вирізання потрібного числа заготовок при мінімальних відходах
Нехай серед координат отриманого оптимального рішення є не цілі числа. Оберемо серед цих змінних ту, яка має найбільшу дробову частину: xs=bs. Цій змінній відповідає якийсь рядок. Для цього рядка справедлива рівність: Mathcad має простий і інтуїтивний для використання інтерфейс користувача. Для введення формул і даних можна використовувати як клавіатуру, так і спеціальні панелі інструментів. Буде… Читати ще >
Знаходження оптимального числа листів фанери і вирізання потрібного числа заготовок при мінімальних відходах (реферат, курсова, диплом, контрольна)
Знаходження оптимального числа листів фанери і вирізання потрібного числа заготовок при мінімальних відходах
Вступ Завдання на виконання:
Зі стандартних листів фанери необхідно вирізати заготовки трьох типів у кількості, що відповідно дорівнює 24, 31 і 18 штук. Кожен лист фанери може бути розрізаний двома способами. Кількість заготовок і величина відходів матеріалу, які можна отримати при даному способі розкрою, наведені в табл. 1.
Таблиця 1:
Тип заготовки | Кількість заготовок, шт. | ||
Перший спосіб розкрою | Другий спосіб розкрою | ||
А | |||
В | |||
С | |||
Величина відходів, см2 | |||
1. Математична модель задачі
12Х1+ 16X2 -> min
2Х1+6Х2 >= 24
5Х1+ 4Х2 >= 31
2Х1+ 3Х2 >=18
Хі >= 0 (i=1,2)
Хі — ціле.
2. Обґрунтування вибору методу розв’язання задачі
Оскільки в поставленій задачі цільова функція прямує до мінімуму (мінімізація величини відходів) і вона лінійно залежить від елементів рішення та є обмеження, які представляють собою лінійні нерівності, тоді поставлена задача є задачею лінійного програмування. Та оскільки є вимога, що змінні є цілими числами (кількість заготовок — ціле число), тоді відповідно задача являється задачею цілочисельного лінійного програмування. Математична модель поставленої задачі відповідає математичній моделі задачі цілочисельного лінійного програмування:
Існує два методи рішення задач цілочисельного лінійного програмування:
1. Метод відсікання (алгоритм Гоморі): суть методу полягає в тому, що при отриманні нецілочисельного рішення необхідно побудувати рівняння, яке відсіче отриманий оптимальний результат і залишить всі інші значення ОДР. Після цього задача знову вирішується. Таким чином задача вирішується до тих пір, поки не буде отримано цілочисельне рішення задачі.
2. Метод гілок і границь: метод являє собою комбінаторний метод, який передбачає побудову розгалуження простору рішень і відкидання областей, які не вміщують допустимі цілочисельні рішення. В методі вирішується послідовність релаксованих задач і на кожній ітерації виконується оцінка верхньої границі оптимального рішення. Процес рішення задачі є процесом породження гілок і побудови границь цільової функції.
Для вирішення цієї задачі в рамках курсового проекту використаємо алгоритм Гоморі.
3. Алгоритм розв’язання задачі (Алгоритм Гоморі)
1. Симплекс методом вирішуємо задачу:
— визначаємо індексний рядок:
— вибір розв’язального стовпчика:
При ц.ф. max, якщо всі, то рішення пункту знайдено;
При ц.ф. min, якщо всі, то рішення пункту знайдено;
— вибір розв’язального рядка і визначення розв’язального елемента:
Якщо всі, то задача не має рішення і є необмеженою;
У розв’язальному рядку записується:
У розв’язальному стовпчику записується:, для всіх r, крім r=i,
Для всіх інших елементів, крім r=i та k=j, використовується правило прямокутника:
l — номер ітерації;
— перераховуємо таблиці.
Якщо отриманий оптимальний результат є цілочисельним, тоді рішення задачі знайдено.
2. Нехай серед координат отриманого оптимального рішення є не цілі числа. Оберемо серед цих змінних ту, яка має найбільшу дробову частину: xs=bs. Цій змінній відповідає якийсь рядок. Для цього рядка справедлива рівність:
.
Рівняння:
буде додаватись в останню симплекс таблицю для продовження рішення. Змінна Ui буде (n+1) змінною і буде братися в якості базисної, для неї буде вводитись додатковий стовпчик.
3. Двоїстим симплекс методом вирішується отримана задача:
— від'ємне дробове число визначає вектор, який виводиться з базису. Вектор, який вводиться в базис обчислюється за формулою:
— відносно розв’язального елементу перераховується симплекс таблиця.
Якщо в результаті рішення отримаємо цілі значення, то рішення задачі знайдено. В противному випадку робимо 2 та 3 пункти.
Для розв’язання задачі використовуємо комп’ютерний математичний пакет: MathCAD та табличний процесор MS Exel.
4. Розв’язання задачі вручну
За умовою задачі ми склали математичну модель задачі. Приводимо задачу до канонічного виду:
12×1+ 16×2+ x3+ x4+ x5 -> min
2x1 + 6x2-1x3 + 0x4 + 0x5 = 24
5x1 + 4x2 + 0x3-1x4 + 0x5 = 31
2x1 + 3x2 + 0x3 + 0x4-1x5 = 18
Хі >= 0 (i=1,3) Хі — ціле.
Зведемо завдання до знаходження максимуму. Для цього помножимо всі рядки на (-1) і шукатимемо опорний план.
— 2x1-6x2 + 1x3 + 0x4 + 0x5 = -24
— 5x1-4x2 + 0x3 + 1x4 + 0x5 = -31
— 2x1-3x2 + 0x3 + 0x4 + 1x5 = -18
Опорний план:
X1 = (0,0,-24,-31,-18)
Базис | БР | x1 | x2 | x3 | x4 | x5 | |
x3 | — 24 | — 2 | — 6 | ||||
x4 | — 31 | — 5 | — 4 | ||||
x5 | — 18 | — 2 | — 3 | ||||
F (X0) | |||||||
Визначаємо роз’вязальні рядок і стовпець.
На перетині роз’вязальних рядка і стовпця знаходиться роз’вязальний елемент, рівний (-4)
Базис | БР | x1 | x2 | x3 | x4 | x5 | |
x3 | — 24 | — 2 | — 6 | ||||
x4 | — 31 | — 5 | — 4 | ||||
x5 | — 18 | — 2 | — 3 | ||||
F (X) | |||||||
и | 12: (-5) = -22/5 | 16: (-4) = -4 | |||||
Базис | БР | x1 | x2 | x3 | x4 | x5 | |
x3 | 221/2 | 51/2 | — 11/2 | ||||
x2 | 73/4 | 11/4 | -1/4 | ||||
x5 | 51/4 | 13/4 | -3/4 | ||||
F (X0) | — 124 | — 8 | |||||
У базисному стовпці всі елементи додатні.
Переходимо до основного алгоритму симплекс-методу.
Поточний опорний план неоптимальний, оскільки в індексному рядку знаходяться від'ємні коефіцієнти.
Як роз’вязальний виберемо стовпець, відповідний змінній x1, оскільки це найбільший коефіцієнт по модулю.
Обчислимо значення Di по рядках як частку від ділення: bi / ai1
і з них выберемо найменше:
min (221/2: 51/2, 73/4: 11/4, 51/4: 13/4) = 3
Отже, 3-тій рядок є роз’вязальний .
Роз’вязальний елемент рівний (13/4) знаходиться на пересіченні роз’вязального стовпця і роз’вязального рядка.
Базис | B | x1 | x2 | x3 | x4 | x5 | min | |
x3 | 221/2 | 51/2 | — 11/2 | 41/11 | ||||
x2 | 73/4 | 11/4 | -1/4 | 61/5 | ||||
x5 | 51/4 | 13/4 | -3/4 | |||||
F (X1) | — 8 | |||||||
Отримуємо нову симплекс-таблицю:
Базис | B | x1 | x2 | x3 | x4 | x5 | |
x3 | 6/7 | — 31/7 | |||||
x2 | 2/7 | -5/7 | |||||
x1 | -3/7 | 4/7 | |||||
F (X1) | 4/7 | 44/7 | |||||
Кінець ітерацій: індексний рядок не містить від'ємних елементів — знайдений оптимальний план Остаточний варіант симплекс-таблиці:
Базис | B | x1 | x2 | x3 | x4 | x5 | |
x3 | 6/7 | — 31/7 | |||||
x2 | 2/7 | -5/7 | |||||
x1 | -3/7 | 4/7 | |||||
F (X2) | 4/7 | 44/7 | |||||
Оптимальний план можна записати так:
x3 = 6
x2 = 4
x1 = 3
F (X) = 0*6 + 16*4 + 12*3 = 100
5. Аналіз результатів роботи в програмі MathCAD
Для свого вирішення задачі використаємо функцію:
Minimize (f, var1, var2, …) повертає значення var1, var2, які задовольняють обмеження вирішують блок і, які змушують function f набути його найменшого значення.
Аргументи: var1, var2 … прості змінні
f — функція, визначена вище, вирішують блок. Наприклад, г аргументу міг послатися на function г (x, y) :=x/y.
Використання функціЇ:
1. Визначте функцію, щоб мінімізувати.
2. Визначте значення припущення для змінних, що вирішуються.
3. Надрукуйте слово Given, що означає умова завдання.
4. Внизу Given, type рівності і нерівності, які служать обмеженнями, використовуючи логічні оператори.
5. Введіть функцію Мінімізувати з відповідними аргументами.
Примітки:
· Ці функції повертають скаляр, коли лише одна змінна включена. Інакше вони повертають вектор.
· Якщо немає жодних обмежень слово Given не необхідне.
Вводимо вхідні дані та отримаємо наступний результат:
Вектор Р відображає значення шуканих мінних. Отже, х1=3, х2=4.
Знайдений результат відповідає результату, обчисленому вручну. Задача вирішена
Висновок
Mathcad — система комп’ютерної алгебри з класу систем автоматизованого проектування, орієнтована на підготовку інтерактивних документів з обчисленнями і візуальним супроводженням, відрізняється легкістю використання.
Mathcad має простий і інтуїтивний для використання інтерфейс користувача. Для введення формул і даних можна використовувати як клавіатуру, так і спеціальні панелі інструментів.
Робота здійснюється в межах робочого аркуша, на якому рівняння і вирази відображаються графічно, на противагу текстовому запису в мовах програмування.
Незважаючи на те, що ця програма здебільшого орієнтована на користувачів-непрограмістів, Mathcad також використовується в складніших проектах, щоб візуалізувати результати математичного моделювання, шляхом використання поширених обчислень і традиційних мов програмування.
Список використаної літератури
mathcad математичний комп’ютерний
1. Методи оптимізації. Методичні вказівки до виконання лабораторних робіт / Уклад. Г. А. Гайна, Н. Л. Попович. — К.: КНУБА, 2011.
2. Методичні вказівки до виконання курсової роботи з дисципліни «Методи оптимізації» / Уклад. Г. А. Гайна. — К.: КНУБА, 2009.
3. Гайна Г. А. Методи оптимізації: алгоритми, приклади, задачі: Навчальний посібник. — К.: КНУБА, 2008. — 144с.