优化模型

优化模型

为了将其表述为一个优化问题,我们需要做三件事。

  • 首先,我们需要定义决策变量。优化的目标是为这些变量选择值。
  • 其次,我们将定义一个线性目标函数。这是我们想要最小化(或最大化)的函数。
  • 第三,我们将定义线性约束。

Gurobi Optimizer将考虑所有赋值给满足指定线性约束的决策变量,并返回一个优化所述目标函数的变量。

这个问题中的变量很简单。求解器需手机万博登录要决定每枚硬币产生多少枚。为决策变量指定有意义的名称是很方便的。在这种情况下,我们调用变量便士尼克尔斯季度,美元.我们还将引入变量,以获取解决方案实际使用的各种矿物质的数量。我们叫他们,

回想一下,我们优化问题的目标是最大化硬币的总价值。生产的每一便士价值0.01美元,每一镍价值0.05美元,以此类推。这给出了以下线性目标:

最大化:0.01便士+ 0.05 nickel + 0.1 dime + 0.25 Quarters + 1 Dollars

这个模型的限制来自于这样一个事实:生产一枚硬币需要消耗一定数量的可用矿物质,而这些矿物质的供应是有限的。我们将分两部分讨论这些关系。首先,我们要为每种矿物质创建一个方程式,来记录这种矿物质的消耗量。对于铜,这个方程是:

铜= 0.06枚便士+ 3.8枚镍币+ 2.1枚一角币+ 5.2枚25美分硬币+ 7.2美元
这个方程的系数来自早期的硬币规格表:一便士用0.06克铜,一镍用3.8克,等等。

该模型还必须获取每种矿物的可用数量。如果我们有1000克铜,那么约束条件是:

铜< = 1000
举个例子,我们假设有1000克铜和50克其他矿物。

实际上,为了使我们的模型准确地反映问题的物理现实,还必须捕获另一组约束。一毛钱值10美分,半毛钱不值5美分。获取每枚硬币数量的变量必须取整数值。