Python 尝试完成简单的间隔调度
尝试使用Python代码和数据帧来完成间隔调度将是最简单的 说我有Python 尝试完成简单的间隔调度,python,dataframe,permutation,Python,Dataframe,Permutation,尝试使用Python代码和数据帧来完成间隔调度将是最简单的 说我有 1 = Available 0 = !Available Person Day1 Day2 --------------------- 1 1 0 2 1 1 3 0 1 4 1 1 及 I一些可用的明细表是((P1,J1)(P2,J2))或((P2,J1)、(P3,J2))等。 我最初的想法是3个循环
1 = Available
0 = !Available
Person Day1 Day2
---------------------
1 1 0
2 1 1
3 0 1
4 1 1
及
I一些可用的明细表是((P1,J1)(P2,J2))或((P2,J1)、(P3,J2))等。
我最初的想法是3个循环
Collect_df = pd.dataframe()
iter = 0
For iter < Person_DF.shape[0]
For p_row in Person_DF
For J in Jobsite_DF
For p_col in p_row
For j_col in J
If p_col == 1 AND j_col == 1
Collect_df = Collect_df.append(pair_one = [p_col,j_col]
p_col = 0
j_col = 0
some code to check if at the end and loop back around Person_DF
If collect_df != 'Sum of all jobsite days'
not a full Schedule, delete it
else
Keep this as a possible complete schedule
Collect_df=pd.dataframe()
iter=0
国际热核实验堆
这感觉是错误的和笨拙的。而且我每次都必须重新迭代(并循环,所以如果我在第三次迭代中从P3开始,我必须进行P4、P1、P2,以使每一个可能的配对)
是否有人有更好的解决方案或能够帮助我?提前感谢您能更清楚地了解您想要的输出吗?您需要所有可用的组合吗?(因此需要工作和人员吗?)是否需要全面,因为我在任何一天都不能使用person_X超过1次?请更正“我不能在任何一天使用person_X超过1次?”只要返回有效的计划表。我认为在每次迭代结束时汇总所有行就足够容易了。如果作业的任何总和大于1,计划表就不起作用了?
Collect_df = pd.dataframe()
iter = 0
For iter < Person_DF.shape[0]
For p_row in Person_DF
For J in Jobsite_DF
For p_col in p_row
For j_col in J
If p_col == 1 AND j_col == 1
Collect_df = Collect_df.append(pair_one = [p_col,j_col]
p_col = 0
j_col = 0
some code to check if at the end and loop back around Person_DF
If collect_df != 'Sum of all jobsite days'
not a full Schedule, delete it
else
Keep this as a possible complete schedule