问题描述如下,有什么好的算法可以解决这个任务分配问题吗? 20C

现有N个任务,可以由M个人来完成,每个任务由于技术需求,不是每个人都可以做.

  • 假设现有任务:task1,task2,task3。和人员A,B,C,D,E,F。
  • 任务和可执行的人员之间的关系:
    • task1 只能由{A,C,F}来完成
    • task2 只能由{B,D,F,E}来完成
    • task3 只能由{A,E,C}来完成 现在要求使用最少的人员,来完成工作task1,task2,task3。列出所有的方案?

10个回答

一个思路,供参考。
可以建任务数组,记录内容为以人员长度的二进制数,将允许人员位置为1
然后进行与操作,得到结果。

ljx7758258
ljx7758258 单独开个窗口创建分组
2 年多之前 回复
lxy923
lxy923 统计人员出现次数,最大的如等于任务数,直接得结果,不然则加入第二大人员,计算能否完成所有任务,依次计算
2 年多之前 回复
mouse_with_cat
mouse_with_cat 我目前使用的也是这种方法。提问是为了看有没有更好的方法。
2 年多之前 回复

问题补充,一个人可以同时完成多个做个工作

一个人可以做多项,,

可以建一个数组来存储

可以用群体智能算法~

遗传算法,TSP的思路都可以借鉴

一个人可以做多项。,,,

最近看了些遗传算法的东西,觉得这个问题可以考虑一下用遗传算法来解决

这个问题属于非平衡指派问题,可以看看整数规划的东西,用匈牙利算法和遗传算法都可以图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐