Optprob/Производство металлических прутков — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
 
(не показано 10 промежуточных версий 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|Металлические пруты на складе}}
 
<table class=wikitable>
 
<table class=wikitable>
 
<tr><th colspan="2">Warehousebars</th></tr><tr><th>Id</th><th>Length</th></tr><tr class="odd"><td>1</td><td>3,000</td></tr>
 
<tr><th colspan="2">Warehousebars</th></tr><tr><th>Id</th><th>Length</th></tr><tr class="odd"><td>1</td><td>3,000</td></tr>
Строка 76: Строка 78:
 
</table>
 
</table>
  
На рынке не востребованы бруски длиной менее 2 м, поэтому мы хотим минимизировать
+
На рынке не востребованы бруски длиной менее 200 см, поэтому мы хотим минимизировать
 
общую длину избыточных кусков менее 2 м, т.е. минимизировать отходы.
 
общую длину избыточных кусков менее 2 м, т.е. минимизировать отходы.
 +
Мы также добавим «стоимость» (размерность в сантиметрах прута) C=200 для каждого используемого складского бруса, чтобы не использовать слишком много складских брусьев.
  
Мы также добавим стоимость 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}}
  
[[Категория:OptimizationProblems]]
+
{{Cat4Term2|{{FULLPAGENAME}}|OptimizationProblems}}

Текущая версия на 22:58, 4 октября 2024

Производство металлических прутков 2023-12-23 04-55-31 image0.png

Есть металлургическая фабрика, на которой производятся металлические пруты, на складе их ( j = 1 … n), n=50. Каждый прут j имеет длину LA_j (в сантиметрах, запятая там для красоты).


Получен заказ на набора запрошенных прутков десяти типов (i = 1...m, m=10). Каждый тип i имеет длину ld_i и количество брусков D_i.

DemandedBars
IdLengthNumber
11,2004
260020
350013
41,5002
52,0005
67005
79005
84005
91,00016
101,10014

На рынке не востребованы бруски длиной менее 200 см, поэтому мы хотим минимизировать общую длину избыточных кусков менее 2 м, т.е. минимизировать отходы. Мы также добавим «стоимость» (размерность в сантиметрах прута) C=200 для каждого используемого складского бруса, чтобы не использовать слишком много складских брусьев.

Т.е. пусть целевая функция

  • где d_j — остаток прута j меньше 200см
  • — индикатор, что прут j вообще использовали.

рассмотреть вариант

  • минимизировать количество используемых складских брусьев
  • запрет на использование кусков размером менее 2 м

Есть не совсем корректное решение (которое можно доделать):