Min*_*Kao 7 algorithm optimization scheduling
从大体上讲,这个问题很简单:安排工作人员组成的军队一个人每一天的覆盖,在任何一天的工作人员被分成3个游泳池,每个员工放假的规定,每个员工最多有2每周轮班等
我不喜欢手动这样做,因为它在我的组织已经完成了几个世纪.我喜欢像遗传算法那样做一些很酷的事情(例如[1] http://www.sersc.org/journals/IJAST/vol14/1.pdf).
那里有可靠的开源/免费替代品吗?这听起来像是一个优化问题,我可以启动C++,R等插入一些优化库吗?
谢谢
这是一个优化问题.奇怪的是,它被称为调度问题.:-D根据数据的大小,您可能需要进行Metaheuristics,如遗传算法,蚂蚁群优化等,但我会从这里开始,通过滚动您自己的规则为基础的启发式.
基本上,将规则定义为事物之间的关联(人A不能同时在度假和工作中)或时间表上的条件(在任何给定时间只有三个人).然后创建一个计划,并逐个插入所有员工.如果插入规则被破坏,则不要插入并选择其他人员.
如果你这样做,这应该是一个有效但不太理想的时间表,你可以做一些很酷的事情,比如定义操作符(交换,移动,3交换),它会给你一个邻域(应用运营商可以达到的所有有效时间表).然后,您可以选择附近的最佳时间表,并重复.这是邻里血统.但是有很多基于社区的方法可供选择.我相信模拟退火在应用于调度问题时很好.