shift calculator
v1.0
给定一组具有约束的实体,为他们计算最大尊重这些约束的班次时间表。
确保您的计算机通过在命令行上运行python --version
进行python安装。
如果没有,您可以在此处下载Python:https://www.python.org/downloads
安装Python时:
运行程序:
calculateShifts.py
文件(您也可能会找到sampleEntities.csv
有用)。calculateShifts.py
的文件夹。该程序是从命令行运行的。它获取输入文件,并记录输出文件中生成的时间表。需要以下参数:
例如:
python calculateShifts.py sampleEntities.csv 2021-08-01 10 "fri;sat;sun" 6
实体文件应为带有以下列的逗号分隔值(CSV)文件:
请参阅samementities.csv获取示例!
该程序将输出一个输出。CSV文件,其中包含以下列:
时间表将尝试最大程度地减少约束违规行为,但是由于这些限制可能会发生冲突,因此时间表并不是完美的。如果您直接使用此时间表,我们建议允许替换。
此外,该程序将向控制台打印一些调试输出。对于每个实体,它将共享其约束的限制,并在不同时代的转变分布。
如果您有兴趣,以下是有关该程序的工作原理的一些详细信息。
该程序不能确保所有约束得到完美满足,因为这将要求输入完全非矛盾。取而代之的是,它优先考虑提供的约束类型,并尝试最大程度地减少和均匀地分配对计划实体的这些约束的违规行为。
按优先顺序:
所需的数据结构: