一些大型船厂在生产过程会产生大量的钢材余料,这些钢材余料都是长方体型材,这些 工厂对余料管理比较规范,对每个余料都有编号及该余料规格信息(比如余料长、宽、高等 数据)。由于大型船厂的余料有些比较成型,适合一些小型企业用来生产有关产品,为此这 些客户(小型企业的简称)对大型船厂余料的有很多需求,各种客户根据自己的要求会提出 不同的需求,以往都是人工来查找出与客户要求相匹配的钢材材料。 问题 1: 某船厂有 100 种余料,客户提出 5 种型材的要求,数据见附件 1,试从 100 种余料 中找出与客户要求相匹配的余料,使得该余料切割成客户要求的型材后,所剩下的废料最少, 试建立数学模型来解决余料匹配方式(不考虑切割损耗和切割费用)。
时间: 2023-06-19 15:05:08 浏览: 68
假设客户提出的 5 种型材为 A, B, C, D, E,对应的要求为:
| 型号 | 长度(mm) | 宽度(mm) | 高度(mm) |
| --- | --- | --- | --- |
| A | 2000 | 1000 | 50 |
| B | 2000 | 600 | 50 |
| C | 2000 | 400 | 50 |
| D | 1000 | 1000 | 50 |
| E | 600 | 600 | 50 |
对于每个余料,我们可以用一个三元组 $(l, w, h)$ 来表示其长、宽、高。假设第 $i$ 种余料的长、宽、高分别为 $l_i, w_i, h_i$,则该余料可以切割出的型材数量为:
$$
n_i = \min\left\{\left\lfloor\frac{l_i}{2000}\right\rfloor\times\left\lfloor\frac{w_i}{1000}\right\rfloor, \left\lfloor\frac{l_i}{2000}\right\rfloor\times\left\lfloor\frac{h_i}{50}\right\rfloor, \left\lfloor\frac{w_i}{1000}\right\rfloor\times\left\lfloor\frac{h_i}{50}\right\rfloor\right\} \\
+ \min\left\{\left\lfloor\frac{l_i}{2000}\right\rfloor\times\left\lfloor\frac{w_i}{600}\right\rfloor, \left\lfloor\frac{l_i}{2000}\right\rfloor\times\left\lfloor\frac{h_i}{50}\right\rfloor, \left\lfloor\frac{w_i}{600}\right\rfloor\times\left\lfloor\frac{h_i}{50}\right\rfloor\right\} \\
+ \min\left\{\left\lfloor\frac{l_i}{2000}\right\rfloor\times\left\lfloor\frac{w_i}{400}\right\rfloor, \left\lfloor\frac{l_i}{2000}\right\rfloor\times\left\lfloor\frac{h_i}{50}\right\rfloor, \left\lfloor\frac{w_i}{400}\right\rfloor\times\left\lfloor\frac{h_i}{50}\right\rfloor\right\} \\
+ \min\left\{\left\lfloor\frac{l_i}{1000}\right\rfloor\times\left\lfloor\frac{w_i}{1000}\right\rfloor, \left\lfloor\frac{l_i}{1000}\right\rfloor\times\left\lfloor\frac{h_i}{50}\right\rfloor, \left\lfloor\frac{w_i}{1000}\right\rfloor\times\left\lfloor\frac{h_i}{50}\right\rfloor\right\} \\
+ \min\left\{\left\lfloor\frac{l_i}{600}\right\rfloor\times\left\lfloor\frac{w_i}{600}\right\rfloor, \left\lfloor\frac{l_i}{600}\right\rfloor\times\left\lfloor\frac{h_i}{50}\right\rfloor, \left\lfloor\frac{w_i}{600}\right\rfloor\times\left\lfloor\frac{h_i}{50}\right\rfloor\right\}
$$
其中 $\lfloor x \rfloor$ 表示对 $x$ 向下取整,表示只取余料长度、宽度、高度中整数倍的部分。例如,如果余料的长为 3000mm,则可以切割出 1 根长度为 2000mm 的 A 型材,如果余料的宽为 800mm,则可以切割出 1 根宽度为 600mm 的 B 型材。
设 $x_{i,j}$ 表示将第 $i$ 种余料切割为第 $j$ 种型材的数量,$w_i$ 表示余料 $i$ 切割后剩余的废料体积,则我们的目标是最小化所有余料的废料体积和:
$$
\min \sum_{i=1}^{100} w_i
$$
并且需要满足以下限制条件:
1. 对于每种型材 $j$,需满足切割后得到的数量不小于客户的需求量:
$$
\sum_{i=1}^{100} x_{i,j} \geq n_j, \quad j = A, B, C, D, E
$$
2. 对于每种余料 $i$,需满足切割后得到的型材数量不超出余料可切割的范围:
$$
\sum_{j=A}^E x_{i,j} \leq n_i, \quad i = 1,2,\ldots,100
$$
3. 切割后得到的型材必须全部使用完:
$$
\sum_{j=A}^E x_{i,j} = \sum_{j=A}^E n_{i,j} - \lfloor \frac{l_i}{2000} \rfloor \times \lfloor \frac{w_i}{1000} \rfloor \times \lfloor \frac{h_i}{50} \rfloor - \lfloor \frac{l_i}{2000} \rfloor \times \lfloor \frac{w_i}{600} \rfloor \times \lfloor \frac{h_i}{50} \rfloor - \lfloor \frac{l_i}{2000} \rfloor \times \lfloor \frac{w_i}{400} \rfloor \times \lfloor \frac{h_i}{50} \rfloor - \lfloor \frac{l_i}{1000} \rfloor \times \lfloor \frac{w_i}{1000} \rfloor \times \lfloor \frac{h_i}{50} \rfloor - \lfloor \frac{l_i}{600} \rfloor \times \lfloor \frac{w_i}{600} \rfloor \times \lfloor \frac{h_i}{50} \rfloor, \quad i = 1,2,\ldots,100
$$
其中 $n_{i,j}$ 表示余料 $i$ 切割后得到的第 $j$ 种型材数量,可以通过 $x_{i,j}$ 计算得到。
综上,我们的优化模型为:
$$
\begin{aligned}
\min \quad & \sum_{i=1}^{100} w_i \\
\text{s.t.} \quad & \sum_{i=1}^{100} x_{i,j} \geq n_j, \quad j = A,B,C,D,E \\
& \sum_{j=A}^E x_{i,j} \leq n_i, \quad i = 1,2,\ldots,100 \\
& \sum_{j=A}^E x_{i,j} = \sum_{j=A}^E n_{i,j} - \lfloor \frac{l_i}{2000} \rfloor \times \lfloor \frac{w_i}{1000} \rfloor \times \lfloor \frac{h_i}{50} \rfloor - \lfloor \frac{l_i}{2000} \rfloor \times \lfloor \frac{w_i}{600} \rfloor \times \lfloor \frac{h_i}{50} \rfloor - \lfloor \frac{l_i}{2000} \rfloor \times \lfloor \frac{w_i}{400} \rfloor \times \lfloor \frac{h_i}{50} \rfloor - \lfloor \frac{l_i}{1000} \rfloor \times \lfloor \frac{w_i}{1000} \rfloor \times \lfloor \frac{h_i}{50} \rfloor - \lfloor \frac{l_i}{600} \rfloor \times \lfloor \frac{w_i}{600} \rfloor \times \lfloor \frac{h_i}{50} \rfloor, \quad i = 1,2,\ldots,100 \\
& x_{i,j} \geq 0, \quad i = 1,2,\ldots,100, j = A,B,C,D,E \\
& w_i \geq 0, \quad i = 1,2,\ldots,100
\end{aligned}
$$
其中第一个限制条件保证了客户的需求量得到满足,第二个限制条件保证了余料切割后不会超出其可切割的范围,第三个限制条件保证了切割后得到的型材必须全部使用完。