混合模型:石油生产

时间:2017-02-08 13:50:20

标签: excel optimization modeling linear-programming solver

油混合

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

+-------------+-------------------+------------------+--------------------------+
| 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的“使用电子表格进行优化建模”一书来解决这个问题,但我仍然坚持这个练习。虽然我可以从另一个混合问题转移逻辑,但我不确定如何一次构建多个混合的模型。 我把这个问题建模为不同原油库存成本的最小化问题。使用润滑指数数据,我将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$5:$E$5;B11:E11)                  | <= | 1000 |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| C2 supply          |      | 1   |      |    |  | =SUMMENPRODUKT($B$5:$E$5;B12:E12)                  | <= | 1100 |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| C3 supply          |      |     | 1    |    |  | =SUMMENPRODUKT($B$5:$E$5;B13:E13)                  | <= | 1200 |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| C4 supply          |      |     |      | 1  |  | =SUMMENPRODUKT($B$5:$E$5;B14:E14)                  | <= | 1100 |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| R- Lub Index       | -5   | 15  | 5    | 30 |  | =SUMMENPRODUKT($B$5:$E$5;B15:E15)                  | >= | 0    |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| R- Output          | 1    | 1   | 1    | 1  |  | =SUMMENPRODUKT($B$5:$E$5;B16:E16)                  | =  | 2000 |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
|                    |      |     |      |    |  |                                                    |    |      |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| Blending Data      |      |     |      |    |  |                                                    |    |      |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+
| R- Lub             | 20   | 40  | 30   | 55 |  | =SUMMENPRODUKT($B$5:$E$5;B19:E19)/SUMME($B$5:$E$5) | >= | 25   |
+--------------------+------+-----+------+----+--+----------------------------------------------------+----+------+  

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

2 个答案:

答案 0 :(得分:2)

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

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

我将模型放在一起如下......

enter image description here

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

    enter image description here

    它做了以下......

    1. 目标是最大化利润。
    2. 它将通过操纵进入每种混合物的库存量来实现。
    3. 前四个约束($G$7 through $J$7)确保不会违反可用库存量。
    4. 接下来的三个约束($K$3 through $K$5)适用于案例(a) - 不超过产品而不是需求。
    5. 最后三个约束($L$3 through $L$5)确保润滑油指数符合最低规格。
    6. 未显示 - 我为GRG Nonlinear选择了选项并选择了“Use Multistart”并取消选择“Require of Bounds on Variables”。
    7. 以下是案例(a)的结果......

      enter image description here

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

      enter image description here

      对于情况(c),将列K上的约束更改为“&gt; =”。以下是结果......

      enter image description here

答案 1 :(得分:0)

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

| 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 € |        |        |        |        |        |        |        |   |                                |    |      |