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文件,其中包含以下列:
時間表將嘗試最大程度地減少約束違規行為,但是由於這些限制可能會發生衝突,因此時間表並不是完美的。如果您直接使用此時間表,我們建議允許替換。
此外,該程序將向控制台打印一些調試輸出。對於每個實體,它將共享其約束的限制,並在不同時代的轉變分佈。
如果您有興趣,以下是有關該程序的工作原理的一些詳細信息。
該程序不能確保所有約束得到完美滿足,因為這將要求輸入完全非矛盾。取而代之的是,它優先考慮提供的約束類型,並嘗試最大程度地減少和均勻地分配對計劃實體的這些約束的違規行為。
按優先順序:
所需的數據結構: