我如何使用线性规划优化我的落叶策略

从周末的琐事到有价值的运筹学原理的有趣应用我如何使用线性编程优化我的叶子收集策略一文首先出现在走向数据科学上。

来源:走向数据科学

,现在是正式的扫叶季节。当我从事这项繁琐的任务时,我意识到这基本上是一个大的优化问题。

耙树叶时,我堆了四堆:一堆在树的两侧,一堆靠近前面,一堆在院子的远端,以收集风吹来的稀疏分布的树叶。

当我工作时,我开始想:这离最佳状态还有多远?因为我会一次性把所有东西都装进袋子里,所以堆越少会不会更快?或者更多的堆,这样我就不用耙那么远了?也许一次从后到前的传递可以最大限度地减少总时间?

为了尽量减少我花在耙子上的时间,我的大脑停止了耙子并开始建模。

为什么优化仍然很重要

在目前由机器学习主导的数据科学领域,优化是一个强大但经常被忽视的工具。不要误会我的意思,机器学习很棒,但有时我认为很容易错过有效的解决方案(优化算法)并直接跳到有趣的解决方案(机器学习技术)。

希望读完本文后,您会认为优化也可以很有趣。我知道当我第一次学习它时,我开始到处都能看到它。它确实改变了我感知周围世界的方式。

在本文中,我将展示如何将简单的庭院杂务建模为线性规划问题。一路上,我们将:

1) 分解线性规划 (LP) 背后的公式,

2) 将最优计划与直观的人类策略进行比较,并且

3) 看看相同的推理如何扩展到其他现实世界的问题。

定义问题

在定义任何优化问题时,有几个关键要素:

目标函数:确定目标函数就是确定问题的目标。目标函数始终旨在最大化或最小化某些值。在这个问题中,我们最大限度地减少了耙树叶和装袋所花费的时间。

就像这样,我们就有了线性程序的基本元素。

参数和假设

快速概念实验

完整模型

集:

xᵢⱼ ∈ {0, 1}