excel 判断如果条件不匹配则平移一格,如果条件匹配则返回值?

看到赛题B是典型的运筹优化问题,感觉有点意思。作为运筹优化博士尝试着做一个硬核点的解题方案。本人早已博士毕业因此也不会参加本次比赛,公开一下我的想法只是为了科普运筹学。运筹优化在实际问题中有着很多有价值的应用,希望能通过我的科普回答让更多的同学们认识到运筹学的魅力。

参赛文档里边有的就不废话多介绍了。首先采用有向图直观分析一下这个问题:

我们把AGV小车,托盘和拣选工位分为三类节点,如上图所示。节点1和节点4连接表示1号小车从初始位置去4号托盘处拿托盘,然后1号小车再将4号托盘送到9号拣选工位,整个路径就是图中红色的线。

在图中1号小车的路线就是1-4-9-7-8

2号小车的路线就是2-6-8

3号小车的路线就是3-5-9

我们要做的就是给出一个连接的方案,让总的耗时最短。通过有向图的建模可以非常方便的让我们对这个问题有了一个初步的认识,接下来就是把这个感性的直观认识转化为严谨的数学模型。

从上图中分析出,只要知道小车经过哪些边就可以得到完整的一个解决方案,因此定义

注意我们采用的是有向图建模,只有有向图才能描述是从哪里到哪里,所以 表示从节点 到节点 , 表示从节点 到节点

约束1:每个AGV小车节点有且仅有一个后继节点,并且后继节点必然是托盘节点 而不是 非托盘节点

约束2:每个托盘节点有且仅有一个前继节点和一个后继节点,并且前继节点只能为AGV小车节点或拣选工位节点,后继节点只能为拣选工位节点

约束3:来到所有拣选任务节点的车次是等于离开所有拣选任务节点的车次,并且等于托盘数。

其中 为订单商品数。此处为了建模的方便,我们引入了一个虚拟节点 我们假设小车在完成所有配送任务之后,会从最后一个拣选任务节点去往这个虚拟节点 。这样做的好处就是保证了最后小车不会停留在拣选任务节点,也就保证了来到所有拣选任务节点的车次是等于离开所有拣选任务节点的车次,并且等于订单商品数量,也就是我们上面约束描述的情况。

其中 表示从节点 到节点 所花费的时间。目标函数就表示要让总的时间最小。按照参赛文档所示如果想替换成其它的目标函数也不难,这里就不再赘述了。

因为在问题1中我们无需考虑避障和避免堵车等情况, 可以通过最短路径获得,可以提前就全部计算好所有的 存储起来,在建模过程中 实际上就已经是常数了。

至此,我们已经基本完成了问题1的数学模型搭建(可能有些小细节需要进一步完善)。需要注意的是我们只考虑了AGV小车出库的行为,暂未考虑回库和回收的行为。另外每个拣选工位最多只能存放 个托盘的约束也没有考虑。这两个问题就留个参赛的同学去完成吧,相信通过我前面的建模过程多少会给你一些启发。

有了问题1的基础,问题2并不困难。在问题2中增加了1个目标和1个约束,约束是仓库内储位上的每个托盘,都指定一个默认拣选工位。也就是说每个托盘的后继节点原来在问题1约束2中是 (也就是可以随便选择拣选工位),现在加入这个新约束后就不是 了,而是 也就是每个托盘都有自己定制化的一个后继节点集合,显然有 。我们用 改写原来问题1约束2得到新的约束为:

新加入的目标是使得每个拣选工位对应托盘的商品总量尽可能地平均。本来这是一个目标,但是要用数学模型描述尽可能的平均这个含义会对求解造成很大的困难(必然要引入绝对值或者平方之类的非线性因素),因此我们建议把它转化到约束处理,即规定每个拣选工位处理商品的总量受到一个上下限的限制。

参数 和 需要自己根据经验来确定,太紧或者太送可能都不太好。

问题3主要在于是要解决避障的问题。前面问题1和问题2解决了AGV小车完成哪些订单任务以及完成的顺序。但是从一个节点到另外一个节点的具体路径是怎么样的,在问题1和问题2中还没有涉及到。若是考虑避障的问题实际上就是要进一步给出两个节点之间的路径规划。

因此可以将问题3避障问题看做是一个两阶段的问题,首先在第一个阶段就是问题1和问题2,求解问题1或者问题2我们已经知道了每个AGV小车该完成哪些任务以及完成任务的顺序。接下来就用路径规划算法给出具体的路径规划方案即可,在这个路径规划方案里边既要考虑最短路径(即时间成本最小),也要考虑避障和避免堵车情况发生的问题。因为很大概率会出现大家都为了走近路导致堵车情况发生反而让总的时间成本增大了的情况。

求解这块其实想要说的可能不多。如果熟悉Gurobi/Cplex这两个求解器的同学就不用我再废话该怎么求解了。如果还不熟悉这两个工具,建议先熟悉这两个工具。我们可以直接将上面的数学模型导入到求解器中就可以完成求解了。至于如果说问题规模太大,是否需要进一步对模型做分解和简化那又是另外一个故事了,这里就不再赘述了。

运筹学在实际生产生活中有着非常大的用处,很多互联网公司都会高薪招聘运筹优化算法工程师。如果通过此次竞赛你对这样的问题感兴趣并且愿意付出努力的话,欢迎点赞支持我 关注我。

欢迎各位把我的回答加入到参考文献中去,转载这篇回答需获得我个人授权。

}

EXCEL常用函数技巧实例

试读结束,下载后可查阅

[版权声明] 本站所有资料由用户提供并上传,若内容存在侵权,请联系邮箱。资料中的图片、字体、音乐等需版权方额外授权,请谨慎使用。网站中党政主题相关内容(国旗、国徽、党徽)仅限个人学习分享使用,禁止广告使用和商用。

开通VIP可收藏更多资料哦

未注册手机验证后自动登录

登录即代表您已阅读并同意 和

未注册用户验证后自动登录,登录即代表已阅读并同意与

}

我要回帖

更多关于 同时匹配两个条件返回一个值 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信