最近公司在与客户交流业务的过程中了解到这样一个需求,生产车间要生产指定材质、规格(截面存在正方形和圆形两种,边长和直径也会不同)、长度的硅棒,仓库中存储着各种格式材质、规格、长度的硅棒,需要按照需求到仓库中去取对应的原料,有符合条件的直接满足需求,若材质和规格相同,但是长度不同的话就需要将多个较短的硅棒进行拼接以满足需求。倘若每次只有一个需求,按照现有库存的原料情况,人还是比较容易去获取相应的原料去拼接满足需求。如果每次有一批这样的需求,不但要满足在材质、规格、长度上的要求,而且在拼接次数上,拼接后超出长度的限制上有要求,人员就很难通过简单的观察比较去处理了。
举个例子,有50 个需求,仓库中有1000个原料,要在材质,规格,长度需求上满足需求,可拼接,但是每个硅棒需求最多允许拼接2次,可以超长,但是超长的部分不可超过50mm,超长的部分越少越好。
当人员面对这样的需求,就比较棘手,无从下手了。原因如下 ,一、人员很难给出可行性规划方案;二、可行性方案众多,时间有限,不能穷举的情况下,不能比对获取最优方案,假设可行方案相对较少,人力范围可穷举,但是比对获取最优解也将耗费人员大量的时间和精力,得不偿失,不可行。
面对这样的难题,就需要借助程序按照目标需求计算出最优解了。人工智能约束求解器,可以利用运筹学模型与机器学习将实际问题转化为数学模型求解。它可以优化规划和调度问题,将复杂的AI优化算法(如禁忌搜索,模拟退火,延迟接受和其他元启发式算法)与一些非常有效的约束评分计算技术,还有其他*********的约束求解技术相结合起来,量化规划问题的硬性约束条件和软性约束条件,对每个规划方案进行硬性条件和软性条件评分,根据评分反馈优化方案的规划,不断的比对获取更佳方案,在有限的时间内,方案不可穷举的情况下,推荐出满足硬性条件,软性条件极大的满足,人力所不能触及的优质方案。
我们可以使用编程方式依赖调用约束型求解器的相关方法,编程语言描述清楚想要什么,必须满足什么条件,什么条件不用必须满足,但是用户的取向是什么,比如说越大越好... ... ,最后运行程序,获取在给定的资源条件下,满足需求的优质方案。
根据客户的这个业务场景和解决思路,公司研发人员部建立了一个业务Demo。创建 5个需求,30个硅棒作为现有仓库存储,需求的长度必须满足,可超长,但超长的长度不可超过10,超长部分越少越好,可拼接,但是不能超过3个,拼接的个数越少越好。(在这里为了演示的可阅读性,假设硅棒的原料相同,硅棒的截面规格也相同,只有长度不同,长度单位为毫米,下文在描述时对单位做了省略。)
5个硅棒需求,所需求的长度分别为 800、805、900、905、910。
30个硅棒资源,长度分别为:500、501、502、503、504、505、506、507、508、600、601、602、603、604、605、606、607、608、619、300、301、302、303、304、305、306、307、308、309、310。
求解后订单与资源的分配对应关系如下:
观察分析下运算后的推荐结果,完全满足在长度、拼接次数、超长限制这样的硬性需求;在超长越少越好,拼接次数越小越好方面也是最大程度上满足了需求。通过编程建立业务模型,使用约束型求解模式对规划问题求解,使得原本难以入手解决的问题迎刃而解。在订单资源分配上给出最优建议指导,极大的提高了资源的利用率,节省成本,创造收益。
现仅仅是针对当前的业务场景做了一个简单的Demo,其实基于约束型求解模式,可以解决 员工轮班安排、议程安排、教育时间表、车辆路线规划、装箱、作业车间计划、切割原料、运动计划、财务优化 等业务领域的规划问题,在提供可行性方案,节省成本,提高收益上给出强有力的建议和指导。