混合模型:石油生产

Blending Model: Oil Production

混合油

一家石油公司生产三种品牌的油:普通油、多级油和 最高。每个牌子的油都由四种原油中的一种或多种组成,每种原油具有不同的润滑指数。原油库存相关数据如下

+-------------+-------------------+------------------+--------------------------+
| Crude Stock | Lubrication Index | Cost (€/barrell) | Supply per day (barrels) |
+-------------+-------------------+------------------+--------------------------+
| 1           | 20                | 7,10             | 1000                     |
+-------------+-------------------+------------------+--------------------------+
| 2           | 40                | 8,50             | 1100                     |
+-------------+-------------------+------------------+--------------------------+
| 3           | 30                | 7,70             | 1200                     |
+-------------+-------------------+------------------+--------------------------+
| 4           | 55                | 9,00             | 1100                     |
+-------------+-------------------+------------------+--------------------------+  

每个牌子的机油都必须满足一个润滑指标的最低标准,每个牌子的机油 因此以不同的价格出售。三个品牌机油的相关数据如下 如下。

+------------+---------------------------+---------------+--------------+
| Brand      | Minimum Lubrication index | Selling price | Daily demand |
+------------+---------------------------+---------------+--------------+
| Regular    | 25                        | 8,50          | 2000         |
+------------+---------------------------+---------------+--------------+
| Multigrade | 35                        | 9,00          | 1500         |
+------------+---------------------------+---------------+--------------+
| Supreme    | 50                        | 10,00         | 750          |
+------------+---------------------------+---------------+--------------+   

确定一天的最佳产出计划,假设生产可以是 以微不足道的成本出售或储存。 每日需求数据可能有不同的解释。调查 以下:
(a) 每日需求代表潜在销售额。换句话说,模型应该包含需求上限(上限)。最佳利润是多少?
(b) 日常要求是严格的义务。换句话说,模型应该包含精确满足的需求约束。最佳利润是多少?
(c) 每日需求代表最低销售承诺,但所有产出都可以出售。换句话说,该模型应该允许生产超过每日承诺。最佳利润是多少?

问题

我已经能够在 Excel 中构建以下模型并通过 OpenSolver 解决它,但我只能整合普通油的混合物。 我正在尝试通过 Kenneth R. Baker 的 Optimization Modeling with Spreadsheets 这本书来工作,但我坚持这个练习。虽然我可以从另一个混合问题转移逻辑,但我不确定如何一次构建多个混合的模型。 我将问题建模为不同原油库存成本的最小化问题。使用润滑指数数据,我将 R-Lub 指数的约束构建为线性约束。到目前为止,普通油的答案似乎是正确的。但是使用这种方法我不知道如何包括第二种多级油。

+--------------------+--------+--------+--------+--------+--+-------------+----+------+
| Decision Variables |        |        |        |        |  |             |    |      |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
|                    | C1     | C2     | C3     | C4     |  |             |    |      |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
| Inputs             | 1000   | 0      | 1000   | 0      |  |             |    |      |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
|                    |        |        |        |        |  |             |    |      |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
| Objective Function |        |        |        |        |  | Total       |    |      |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
| Cost               | 7,10 € | 8,50 € | 7,70 € | 9,00 € |  | 14.800,00 € |    |      |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
|                    |        |        |        |        |  |             |    |      |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
| Constraints        |        |        |        |        |  | LHS         |    | RHS  |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
| C1 supply          | 1      |        |        |        |  | 1000        | <= | 1000 |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
| C2 supply          |        | 1      |        |        |  | 0           | <= | 1100 |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
| C3 supply          |        |        | 1      |        |  | 1000        | <= | 1200 |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
| C4 supply          |        |        |        | 1      |  | 0           | <= | 1100 |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
| R- Lub Index       | -5     | 15     | 5      | 30     |  | 0           | >= | 0    |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
| R- Output          | 1      | 1      | 1      | 1      |  | 2000        | =  | 2000 |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
|                    |        |        |        |        |  |             |    |      |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
| Blending Data      |        |        |        |        |  |             |    |      |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+
| R- Lub             | 20     | 40     | 30     | 55     |  | 25          | >= | 25   |
+--------------------+--------+--------+--------+--------+--+-------------+----+------+  

这是具有 Excel 公式的模型:

+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| Decision Variables |      |     |      |    |  |                                                    |    |      |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
|                    | C1   | C2  | C3   | C4 |  |                                                    |    |      |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| Inputs             | 1000 | 0   | 1000 | 0  |  |                                                    |    |      |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
|                    |      |     |      |    |  |                                                    |    |      |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| Objective Function |      |     |      |    |  | Total                                              |    |      |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| Cost               | 7,1  | 8,5 | 7,7  | 9  |  | =SUMMENPRODUKT(B5:E5;B8:E8)                        |    |      |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
|                    |      |     |      |    |  |                                                    |    |      |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| Constraints        |      |     |      |    |  | LHS                                                |    | RHS  |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| C1 supply          | 1    |     |      |    |  | =SUMMENPRODUKT($B:$E;B11:E11)                  | <= | 1000 |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| C2 supply          |      | 1   |      |    |  | =SUMMENPRODUKT($B:$E;B12:E12)                  | <= | 1100 |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| C3 supply          |      |     | 1    |    |  | =SUMMENPRODUKT($B:$E;B13:E13)                  | <= | 1200 |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| C4 supply          |      |     |      | 1  |  | =SUMMENPRODUKT($B:$E;B14:E14)                  | <= | 1100 |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| R- Lub Index       | -5   | 15  | 5    | 30 |  | =SUMMENPRODUKT($B:$E;B15:E15)                  | >= | 0    |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| R- Output          | 1    | 1   | 1    | 1  |  | =SUMMENPRODUKT($B:$E;B16:E16)                  | =  | 2000 |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
|                    |      |     |      |    |  |                                                    |    |      |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| Blending Data      |      |     |      |    |  |                                                    |    |      |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| R- Lub             | 20   | 40  | 30   | 55 |  | =SUMMENPRODUKT($B:$E;B19:E19)/SUMME($B:$E) | >= | 25   |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+  

在正确的方向上推动将是一个巨大的帮助。

我想我想出了一个解决方案,但我不确定这是否正确。

| Decision Variables |         |        |        |        |             |        |        |        |        |        |        |        |   |                                |    |      |
|--------------------|---------|--------|--------|--------|-------------|--------|--------|--------|--------|--------|--------|--------|---|--------------------------------|----|------|
|                    | C1R     | C1M    | C1S    | C2R    | C2M         | C2S    | C3R    | C3M    | C3S    | C4R    | C4M    | C4S    |   |                                |    |      |
| Inputs             | 1000    | 0      | 0      | 800    | 0           | 300    | 0      | 1200   | 0      | 200    | 300    | 600    |   |                                |    |      |
|                    |         |        |        |        |             |        |        |        |        |        |        |        |   |                                |    |      |
| Objective Function |         |        |        |        |             |        |        |        |        |        |        |        |   | Total Profit (Selling  - Cost) |    |      |
| Cost               | 7,10 €  | 7,10 € | 7,10 € | 8,50 € | 8,50 €      | 8,50 € | 7,70 € | 7,70 € | 7,70 € | 9,00 € | 9,00 € | 9,00 € |   | 3.910,00 €                     |    |      |
|                    |         |        |        |        |             |        |        |        |        |        |        |        |   |                                |    |      |
| Constraints        |         |        |        |        |             |        |        |        |        |        |        |        |   | LHS                            |    | RHS  |
| Regular            | -5      |        |        | 15     |             |        | 5      |        |        | 30     |        |        |   | 13000                          | >= | 0    |
| Multi              |         | -15    |        |        | 5           |        |        | -5     |        |        | 20     |        |   | 0                              | >= | 0    |
| Supreme            |         |        | -30    |        |             | -10    |        |        | -20    |        |        | 5      |   | 0                              | >= | 0    |
| C1 Supply          | 1       | 1      | 1      |        |             |        |        |        |        |        |        |        |   | 1000                           | <= | 1000 |
| C2 Supply          |         |        |        | 1      | 1           | 1      |        |        |        |        |        |        |   | 1100                           | <= | 1100 |
| C3 Supply          |         |        |        |        |             |        | 1      | 1      | 1      |        |        |        |   | 1200                           | <= | 1200 |
| C4 Supply          |         |        |        |        |             |        |        |        |        | 1      | 1      | 1      |   | 1100                           | <= | 1100 |
| Regular Demand     | 1       |        |        | 1      |             |        | 1      |        |        | 1      |        |        |   | 2000                           | >= | 2000 |
| Multi Demand       |         | 1      |        |        | 1           |        |        | 1      |        |        | 1      |        |   | 1500                           | >= | 1500 |
| Supreme Demand     |         |        | 1      |        |             | 1      |        |        | 1      |        |        | 1      |   | 900                            | >= | 750  |
|                    |         |        |        |        |             |        |        |        |        |        |        |        |   |                                |    |      |
|                    |         |        |        |        |             |        |        |        |        |        |        |        |   |                                |    |      |
| Selling            |         |        |        |        |             |        |        |        |        |        |        |        |   |                                |    |      |
| Regular            | 8,50 €  | x      | 2000   | =      | 17.000,00 € |        |        |        |        |        |        |        |   |                                |    |      |
| Multi              | 9,00 €  | x      | 1500   | =      | 13.500,00 € |        |        |        |        |        |        |        |   |                                |    |      |
| Supreme            | 10,00 € | x      | 900    | =      | 9.000,00 €  |        |        |        |        |        |        |        |   |                                |    |      |
|                    |         |        |        |        | 39.500,00 € |        |        |        |        |        |        |        |   |                                |    |      |

我认为您希望 objective 为利润,我将其定义为销售额总和 - 成本总和。

要包括所有混合物,请计算每种混合物的产量、润滑油指数、成本和价值。对使用的库存量、生产量和润滑油指数应用约束,并针对利润进行优化。

我整理的模型如下...

  1. A 到 D 列是您提供的信息。
  2. G2:J5 中的 10 是每个混合中使用的库存量的种子值。求解器将操纵这些。
  3. K 列包含生产的总产品量。根据您的调查 (a)、(b) 和 (c),这些将以不同的方式受到限制。 =SUM(G3:J3) 向下填充。
  4. L 列是产品的润滑油指数。正如您所指出的,它是线性混合 - 对于混合问题通常不是这样。这些值将在规划求解中受到限制。它是 {=SUMPRODUCT(G3:J3,TRANSPOSE($B:$B))/$K3} 向下填充的。请注意,这是一个 Control-Shift-Enter (CSE) 公式,因为 TRANSPOSE.
  5. M 列是用于创建产品的库存成本。这用于利润计算。是{=SUMPRODUCT(G3:J3,TRANSPOSE($C:$C))},往下填。这也是一个CSE公式。
  6. N 列是所生产产品的价值。这用于利润计算。 =K3*C8 向下填充。
  7. 第 7 行是用于生成所有混合的总库存量。这些值将在规划求解中受到限制。它是=SUM(G3:G5),向右填充。
  8. 利润计算为=SUM(N3:N5)-SUM(M3:M5)

下面是“规划求解”对话框的快照...

它执行以下操作...

  1. objective是利润最大化
  2. 它将通过控制每次混合的存货量来实现。
  3. 前四个约束 ($G through $J) 确保不违反可用库存量。
  4. 接下来的三个约束条件 ($K through $K) 适用于情况 (a) - 生产的产品不超过需求。
  5. 最后三个约束条件 ($L through $L) 确保润滑油指数满足最低规格。
  6. 未显示 - 我为 GRG 非线性选择了选项并选择了 "Use Multistart" 并取消选择了 "Require Bounds on Variables"。

下面是案例 (a) 的结果...

对于情况 (b),将列 K 的约束更改为“=”而不是“<=”。下面是结果...

对于情况 (c),将列 K 的约束更改为“>=”。下面是结果...