python约束函数 约束unique( 二 )


这是您如何可视化问题的方法:
红线代表的功能2 X + Y = 20,和它上面的红色区域示出了红色不等式不满足 。同样 , 蓝线是函数 4 x + 5 y = 10,蓝色区域被禁止,因为它违反了蓝色不等式 。黄线是x + 2 y =2,其下方的黄色区域是黄色不等式无效的地方 。
如果您忽略红色、蓝色和黄色区域,则仅保留灰色区域 。灰色区域的每个点都满足所有约束,是问题的潜在解决方案 。该区域称为可行域,其点为可行解。在这种情况下,有无数可行的解决方案 。
您想最大化z 。对应于最大z的可行解是最优解。如果您尝试最小化目标函数 , 那么最佳解决方案将对应于其可行的最小值 。
请注意,z是线性的 。你可以把它想象成一个三维空间中的平面 。这就是为什么最优解必须在可行区域的顶点或角上的原因 。在这种情况下,最佳解决方案是红线和蓝线相交的点,稍后您将看到 。
有时,可行区域的整个边缘,甚至整个区域 , 都可以对应相同的z值 。在这种情况下,您有许多最佳解决方案 。
您现在已准备好使用绿色显示的附加等式约束来扩展问题:
方程式x + 5 y = 15,以绿色书写,是新的 。这是一个等式约束 。您可以通过向上一张图像添加相应的绿线来将其可视化:
现在的解决方案必须满足绿色等式,因此可行区域不再是整个灰色区域 。它是绿线从与蓝线的交点到与红线的交点穿过灰色区域的部分 。后一点是解决方案 。
如果插入x的所有值都必须是整数的要求,那么就会得到一个混合整数线性规划问题,可行解的集合又会发生变化:
您不再有绿线,只有沿线的x值为整数的点 。可行解是灰色背景上的绿点,此时最优解离红线最近 。
这三个例子说明了可行的线性规划问题,因为它们具有有界可行区域和有限解 。
如果没有解 , 线性规划问题是不可行的。当没有解决方案可以同时满足所有约束时,通常会发生这种情况 。
例如,考虑如果添加约束x + y1会发生什么 。那么至少有一个决策变量(x或y)必须是负数 。这与给定的约束x0 和y0相冲突 。这样的系统没有可行的解决方案,因此称为不可行的 。
另一个示例是添加与绿线平行的第二个等式约束 。这两行没有共同点 , 因此不会有满足这两个约束的解决方案 。
一个线性规划问题是无界的,如果它的可行区域是无界,将溶液不是有限 。这意味着您的变量中至少有一个不受约束 , 可以达到正无穷大或负无穷大,从而使目标也无限大 。
例如,假设您采用上面的初始问题并删除红色和黄色约束 。从问题中删除约束称为放松问题 。在这种情况下,x和y不会在正侧有界 。您可以将它们增加到正无穷大,从而产生无限大的z值 。
在前面的部分中,您研究了一个与任何实际应用程序无关的抽象线性规划问题 。在本小节中,您将找到与制造业资源分配相关的更具体和实用的优化问题 。
假设一家工厂生产四种不同的产品 , 第一种产品的日产量为x ?,第二种产品的产量为x 2,依此类推 。目标是确定每种产品的利润最大化日产量,同时牢记以下条件:
数学模型可以这样定义:
目标函数(利润)在条件 1 中定义 。人力约束遵循条件 2 。对原材料 A 和 B 的约束可以从条件 3 和条件 4 中通过对每种产品的原材料需求求和得出 。
最后,产品数量不能为负,因此所有决策变量必须大于或等于零 。
与前面的示例不同,您无法方便地将其可视化,因为它有四个决策变量 。但是,无论问题的维度如何,原理都是相同的 。

推荐阅读