gpt4 book ai didi

c# - 根据员工排类生成最接近的团队 C#

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:59:29 25 4
gpt4 key购买 nike

我得到了一个包含列的员工时间表的 csv:

employee ID, first last name, sunday schedule, monday schedule, ... , saturday schedule

每个员工 1 周的时间表。我附上了 csv 文件的一部分的屏幕截图。整个文件大约有 300 行。

schedules.csv

我需要根据员工的日程安排(位置无关紧要)生成 15 人的团队,以便每个团队中的员工的日程安排彼此最接近。我尝试过的伪代码:

  • 将 csv 文件解析为时间表数组(我自己的结构定义)

  • 将日程安排完全相同的员工匹配到团队中(创建约 5 个完整的团队,20 - 25 个半满的团队,留下约 50 个与任何人都不匹配的日程安排)

  • 对于 i = 1 到 14,对于规模为 i 的团队中的每个成员,找到日程安排最接近的团队(作为一个整体)并将该成员添加到该团队。团队人数达到 15 人后,将其标记为“完成”。

这有点奏效,但绝对没有给我最好的团队。我的问题是有人知道更好的方法吗?伪代码或一般想法会有所帮助,谢谢。

编辑:这是比较公式的一个例子比较基于代理时间表之间的半小时差异。 Agent 25 的分数为 16,因为他与 Agent 23 和 24 相差 8 个半小时。根据每个人的分数相加,该团队的总分是 32。

Comparison

并非所有代理人每天工作 8 小时,而且许多人有不同的休息日,这对他们的“亲近度”分数影响最大。此外,一些代理在某一天的日程安排与正常日程安排不同。例如,一位代理可能在周一早上 7 点到下午 3 点工作,但在周二到周五早上 8 点到下午 4 点工作。

最佳答案

除非你找到一个能给你一个准确的最佳答案的方法,否则我会在最后添加一个爬山阶段,反复检查以查看在团队之间交换任何一对代理是否会改进事情,如果是的话就交换它们这种情况下,只有当它重新检查了每一对智能体并且没有更多的改进需要进行时才停止。

我这样做有两个原因:

1) 这种爬山法经常能找到相当不错的解决方案。

2) 人们善于发现这样的改进。如果您制定了计算机生成的日程安排并且人们可以找到简单的改进(也许是因为他们注意到他们经常与其他团队的某人同时安排日程)那么您看起来会很傻。

考虑 (2) 另一种找到局部改进的方法是寻找同时安排来自不同团队的少数人的情况,看看是否可以将他们全部调换到同一个团队。

关于c# - 根据员工排类生成最接近的团队 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44423255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com