失败优化项目的7种方法

当您将优化项目投入生产时,您的企业将减少开支,提高客户满意度,提高员工满意度和/或减少其生态足迹。 但是,如果最终用户拒绝您的实施,则不会发生任何事情。 让我们看看他们为什么会这样做。

使优化项目失败的常见方法有7种:

  1. 忽略用户的计划
  2. 忽略硬约束
  3. 预先确定所有得分权重
  4. 彻底改变暂定计划
  5. 假设总有可行的计划
  6. 平均输出公平性或负载平衡
  7. 仅关注1个利益相关者

让我们详细研究每个项目以及使项目成功的7种方法

1.控制用户

最初,没有人相信新的系统可以接受输入(计划问题)并通过非显而易见的转换产生输出(解决方案)。 为了建立这种信任,允许用户覆盖OptaPlanner的选择。

例如,在Cloud Balancing中,如果用户将绿色进程锁定到计算机Y,则计划引擎必须遵守以下规定:

失败优化项目的7种方法

这不是全有或全无的情况: 用户和OptaPlanner一起工作 (由用户负责)。 有关详细的用例,请参阅带有视频的博客

从技术上讲,这是通过不动的计划实体 (如OptaPlanner参考手册中所述 )实现的:这是一个简单的布尔方法,用于检查流程是否被锁定。

2.实施所有硬约束

仅考虑99%的硬约束的最佳解决方案是100%无用的。 因此,实施所有硬约束。

例如,在“车辆路线选择”中,让我们假设我们也需要提取核货物,但是忘记添加一个硬约束来使用特殊车辆来提取它们:

失败优化项目的7种方法

如您所见,考虑到额外的硬约束可以完全改变最佳解决方案。

从技术上讲,OptaPlanner支持任何类型的约束:与其他求解器不同,它不关心约束是线性的,二次的或更差的。 只要可以比较任何2个解决方案的分数,它就会找到最佳解决方案。 使您能够实施所有约束:没有任何约束是不可能的。

3.不要硬编码分数权重

大多数商务人员只有在看到这些权重对他们的日程安排的影响后,才能告诉我们最佳分数权重。 因此,允许用户在运行时更改得分权重,并快速查看其更改对解决方案的影响。

例如在Cloud Balancing中:我们应该专注于负载平衡还是降低成本?

失败优化项目的7种方法

有些约束共同起作用,而另一些则相互对抗。 特别是对于最后一种(如上所示), 同一企业内的不同利益相关者可能会在分数权重上存在分歧 通过直接更改用户界面中的权重,使项目所有者能够解决这些谈判问题。

从技术上讲,只需在数据集中添加具有得分权重的单例,然后在约束中使用这些权重。 在某些OptaPlanner示例中寻找*Parametrization类。

4.避免重新计划时中断

在某个时候,一个计划将成为暂定甚至是最终的。 此后发生的任何变化都可能对该计划中涉及的任何人造成破坏。 但是,临时更改(例如员工要求带病设备或发生故障的设备)将使您的计划不可行,并迫使您重新计划。

例如,在Cloud Balancing中,计算机可能发生故障:

失败优化项目的7种方法

中间解决方案的成本效益略高,但最后一个解决方案的破坏力则小得多。 尤其是在安排根据暂定时间表计划社交生活的人员时,将干扰降到最低很重要。

从技术上讲,我们也通过跟踪每个进程的旧暂定计算机分配来惩罚移动的进程数。

另一种简化方法是进行备份计划。 例如,在员工排班中,我们为3名员工分配3个备用班次作为备用:如果另一名员工请病假,其中一名备用员工将自动接任,而无需重新计划。 只有当三名以上的员工请病假时,我们才真正需要进行(无中断)重新计划。

5.考虑过度约束的计划

可能会发生没有足够的资源来解决计划问题而又没有打破硬约束的情况。 在这种情况下, 与其提供一个不可行的计划,不如将一些实体分配给其他人 (当然,尽可能少) 通常会更好

例如,在员工排班中,当我们需要在同一天分配4个晚班,而我们只有3名员工时,最好不要分配1个班,而要同时分配一个员工2个班。

更进一步,我们可以添加虚拟资源以指示要购买/租用多少额外资源。 例如,在相同的员工名册案例中,我们可以添加2个虚拟员工。 解决之后,它将使用其中之一来告诉我们,可以通过雇用1名额外的员工使时间表再次可行。

从技术上讲,我们需要在约束中以不同的方式对待未分配(或虚拟分配)的实体,并添加一个中等评分水平(介于硬和软之间)以惩罚未分配(或虚拟分配)的实体的数量。

6.公平(负载平衡)

在人(或机器)之间分配工作时,请勿使用平均值。 相反, 最糟糕的人(或机器)才是最重要的。

例如,在员工名册中,我们希望平均分配班次,但由于技能和其他严格限制,我们不能使其完全公平。 这并不是要平均减少加班,而是要减少最差员工的加班时间:

失败优化项目的7种方法

在最后一个解决方案中,更多的员工感到高兴,但最糟糕的员工情况更糟,因此它不如中间解决方案公平。

从技术上讲,请按照OptaPlanner参考手册说明进行实施:对每位员工轮班数量的平方进行惩罚。

7.为所有利益相关者创造双赢

在大型组织中,许多不同的团体将希望根据自己的喜好调整约束权重。 例如:管理层通常希望最大程度地降低成本,但是工会则希望最大程度地提高员工的满意度和工作安全性。 只要有可能,就寻求能够改善所有利益相关者现状的解决方案 他们以后总是可以协商分数权重的调整。

在我耳熟能详的战争故事中,我听说过一个针对视察员的VRP案例,该案例大大减少了前往视察地点的驾驶时间,从而可以在更短的时间内完成相同的工作。 由于原型只专注于使用更少的检查员,因此工会拒绝了它。 相反,如果原型专注于增加检查时间,它将提高检查质量,减轻工人压力,降低燃油费用并减少新员工的需求。 所有利益相关者都可以接受。

结论

项目的成功并不仅仅取决于解决方案的质量。 有很多因素可以影响或破坏一个项目。 在本文中,我重点介绍了一些更社交的内容。 幸运的是,您也可以使用OptaPlanner处理这些附加要求。 不要让他们措手不及!

翻译自: https://www.javacodegeeks.com/2016/04/7-ways-fail-optimization-project.html