Optprob/Производство металлических прутков — различия между версиями
StasFomin (обсуждение | вклад) |
StasFomin (обсуждение | вклад) |
||
| (не показано 9 промежуточных версий 2 участников) | |||
| Строка 1: | Строка 1: | ||
<!-- p36 --> | <!-- p36 --> | ||
{{checked|}} | {{checked|}} | ||
| + | |||
| + | [[File:Производство металлических прутков_2023-12-23_04-55-31_image0.png|right]] | ||
Есть металлургическая фабрика, на которой производятся металлические пруты, на складе их ( j = 1 … n), n=50. | Есть металлургическая фабрика, на которой производятся металлические пруты, на складе их ( j = 1 … n), n=50. | ||
| − | Каждый прут ''j'' имеет длину LA_j. | + | Каждый прут ''j'' имеет длину LA_j (в сантиметрах, запятая там для красоты). |
{{WikiCutBegin|Металлические пруты на складе}} | {{WikiCutBegin|Металлические пруты на складе}} | ||
| Строка 76: | Строка 78: | ||
</table> | </table> | ||
| − | На рынке не востребованы бруски длиной менее | + | На рынке не востребованы бруски длиной менее 200 см, поэтому мы хотим минимизировать |
общую длину избыточных кусков менее 2 м, т.е. минимизировать отходы. | общую длину избыточных кусков менее 2 м, т.е. минимизировать отходы. | ||
| + | Мы также добавим «стоимость» (размерность в сантиметрах прута) C=200 для каждого используемого складского бруса, чтобы не использовать слишком много складских брусьев. | ||
| − | + | Т.е. пусть целевая функция | |
| + | <math> | ||
| + | \sum_j d_j + C \times \alpha_j | ||
| + | </math> | ||
| + | * где d_j — остаток прута j меньше 200см | ||
| + | * <math>\alpha_j</math> — индикатор, что прут j вообще использовали. | ||
| − | |||
| − | |||
рассмотреть вариант | рассмотреть вариант | ||
* минимизировать количество используемых складских брусьев | * минимизировать количество используемых складских брусьев | ||
* запрет на использование кусков размером менее 2 м | * запрет на использование кусков размером менее 2 м | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | {{ | + | Есть не совсем корректное решение (которое можно доделать): |
| + | {{Optsolv|incorrect/Производство_металлических_прутков.ipynb}} | ||
| + | * [[Участник:Robohant/Производство металлических прутков]] | ||
{{enddiv}} | {{enddiv}} | ||
| − | + | {{Cat4Term2|{{FULLPAGENAME}}|OptimizationProblems}} | |
Текущая версия на 22:58, 4 октября 2024
Есть металлургическая фабрика, на которой производятся металлические пруты, на складе их ( j = 1 … n), n=50. Каждый прут j имеет длину LA_j (в сантиметрах, запятая там для красоты).
| Warehousebars | |
|---|---|
| Id | Length |
| 1 | 3,000 |
| 2 | 3,000 |
| 3 | 3,000 |
| 4 | 3,000 |
| 5 | 3,000 |
| 6 | 3,000 |
| 7 | 3,000 |
| 8 | 3,000 |
| 9 | 3,000 |
| 10 | 3,000 |
| 11 | 2,500 |
| 12 | 2,500 |
| 13 | 2,500 |
| 14 | 2,500 |
| 15 | 2,500 |
| 16 | 2,500 |
| 17 | 2,500 |
| 18 | 2,500 |
| 19 | 2,500 |
| 20 | 2,500 |
| 21 | 2,000 |
| 22 | 2,000 |
| 23 | 2,000 |
| 24 | 2,000 |
| 25 | 2,000 |
| 26 | 2,000 |
| 27 | 2,000 |
| 28 | 2,000 |
| 29 | 2,000 |
| 30 | 2,000 |
| 31 | 1,500 |
| 32 | 1,500 |
| 33 | 1,500 |
| 34 | 1,500 |
| 35 | 1,500 |
| 36 | 1,500 |
| 37 | 1,500 |
| 38 | 1,500 |
| 39 | 1,500 |
| 40 | 1,500 |
| 101 | 1,500 |
| 102 | 1,500 |
| 103 | 1,500 |
| 104 | 1,500 |
| 105 | 1,500 |
| 106 | 1,500 |
| 107 | 1,500 |
| 108 | 1,500 |
| 109 | 1,500 |
| 110 | 1,500 |
Получен заказ на набора запрошенных прутков десяти типов (i = 1...m, m=10).
Каждый тип i имеет длину ld_i и количество брусков D_i.
| DemandedBars | ||
|---|---|---|
| Id | Length | Number |
| 1 | 1,200 | 4 |
| 2 | 600 | 20 |
| 3 | 500 | 13 |
| 4 | 1,500 | 2 |
| 5 | 2,000 | 5 |
| 6 | 700 | 5 |
| 7 | 900 | 5 |
| 8 | 400 | 5 |
| 9 | 1,000 | 16 |
| 10 | 1,100 | 14 |
На рынке не востребованы бруски длиной менее 200 см, поэтому мы хотим минимизировать общую длину избыточных кусков менее 2 м, т.е. минимизировать отходы. Мы также добавим «стоимость» (размерность в сантиметрах прута) C=200 для каждого используемого складского бруса, чтобы не использовать слишком много складских брусьев.
Т.е. пусть целевая функция
- где d_j — остаток прута j меньше 200см
- — индикатор, что прут j вообще использовали.
рассмотреть вариант
- минимизировать количество используемых складских брусьев
- запрет на использование кусков размером менее 2 м
Есть не совсем корректное решение (которое можно доделать):
- Код решения в проекте «adv2022-course-pyomo-business-optimization» в «optprob/incorrect/Производство_металлических_прутков.ipynb.ipynb»
- Участник:Robohant/Производство металлических прутков
