Предмет: Математика (Исследование операций)
Раздел: Задача о раскрое (линейное программирование)
Задача относится к задаче о раскрое, где нужно минимизировать количество используемых стальных прутьев (жестких материалов), разрезая их на заготовки различной длины.
Для решения задачи нужно построить математическую модель.
Информация:
- Длина заготовок:
- Тип 1: 52
- Тип 2: 60
- Тип 3: 35
- Количество необходимых заготовок:
- Тип 1: 50
- Тип 2: 20
- Тип 3: 10
- Длина прутьев: 150
- Способы разреза одного прута:
- Способ 1: 2 заготовки длиной 52 и ничего больше. (2x52 = 104)
- Способ 2: 1 заготовка длиной 52, 1 заготовка длиной 35 и одна заготовка длиной 35. (52+35+35 = 122)
- Способ 3: 1 заготовка длиной 52 и 2 заготовки длиной 35. (52+2x35 = 122)
- Способ 4: 2 заготовки длиной 60 и ничего больше. (2x60 = 120)
- Способ 5: 1 заготовка длиной 60, 2 заготовки длиной 35. (60+2x35 = 130)
- Способ 6: 4 заготовки длиной 35. (4x35 = 140)
Необходимо определить, сколько прутьев потребуется разрезать по каждому из вариантов, чтобы получить необходимое количество заготовок каждого типа с минимальными отходами.
Построение математической модели.
- Определим переменные:
Пусть:
- X_1 — количество прутьев, разрезаемых по способу 1.
- X_2 — количество прутьев, разрезаемых по способу 2.
- X_3 — количество прутьев, разрезаемых по способу 3.
- X_4 — количество прутьев, разрезаемых по способу 4.
- X_5 — количество прутьев, разрезаемых по способу 5.
- X_6 — количество прутьев, разрезаемых по способу 6.
- Ограничения:
Для того, чтобы выполнить требуемое количество заготовок:
- Для заготовок типа 1 (длина 52): 2X_1 + X_2 + X_3 \geq 50.
- Для заготовок типа 2 (длина 60): 2X_4 + X_5 \geq 20.
- Для заготовок типа 3 (длина 35): 2X_2 + 2X_3 + 2X_5 + 4X_6 \geq 10.
- Целевая функция:
Необходимо минимизировать количество прутьев, которые будут разрезаны. То есть целевая функция будет:
Z = X_1 + X_2 + X_3 + X_4 + X_5 + X_6 \rightarrow \min.
Решение задачи:
Для нахождения решения можно воспользоваться методами решения задач линейного программирования, такими как симплекс-метод или использовать специализированное программное обеспечение или пакеты в Python, такие как SciPy или PuLP. Вручную решение очень ресурсозатратное, поэтому компьютерные методы будут намного удобнее и точнее для задачи такого масштаба.