线性编程:通过目标编程管理多个目标

第6部分:使用权重和先发制人的目标编程方法来平衡多个目标,线性编程:管理多个目标与目标编程首先出现在数据科学方面。

来源:走向数据科学

这是我一直在写的线性编程系列的(可能是最后的)部分。借助先前文章涵盖的核心概念,本文着重于目标编程,这是一个不太频繁的线性编程(LP)用例。目标编程是一种特定的线性编程设置,可以处理单个LP问题中多个目标的优化。

线性编程

在本文结尾处,您将了解:1。目标编程的定义以及应使用何时使用2。加权目标编程方法 - 用示例3进行了说明。先发制人的目标编程方法 - 用示例

1。 2。 3。

目标编程的定义和用例

目标编程是线性编程的一种特殊情况,可以使多个(通常是冲突的目标)保持平衡。在常规的LP问题下,您选择一个指标以优化(最小化或最大化)并设置约束,以确保最佳解决方案是可行的。目标编程是一种允许同时针对多个目标指标的技术。

目标编程的“心态”与普通的香草LP问题根本不同。基本LP搜索获得尽可能少或尽可能多的单一度量的方法,例如,最大化利润或最小化浪费 - 受到约束。通常会在目标函数或约束中找到相互矛盾的优先级。例如,最大化利润(客观)受到最大浪费(约束)。借助目标编程,我们可以将重要的约束指标移至目标函数中,以便我们对它们进行优化,而不仅仅是限制它们。我们可以同时最大化利润并最大程度地减少废物!

单人

现在是建立我们将在本文其余部分探索的示例的好时机:

目标编程的真正价值是,当常规线性编程产生不可行的解决方案时,它可以在冲突目标之间构成折衷。
优化