亲爱的程序员们,
我想知道如何根据可用性来安排活动(参见输入)。在可用时间超过零的日子里,也有可用的人。我们希望我们的时间表尽可能接近于零(有效的计划)。这意味着,当我们为一个需要五个活动的客户安排一个新项目时,我们需要我们的算法,以便在该特定项目日的活动持续时间内减少可用时间。有些活动需要0,5小时才能完成,有些则需要1小时才能完成。我试图用变量A、B、C、D和E作为活动的初始版本,并且只有一个雇员(称为'0‘,因为我将来会添加更多的员工,但我不想从一开始就太复杂的情况开始)和活动排定的日期。对于第一次和第五次活动,病人可以优先考虑。对于第二次、第三次和第四次活动,可以随时安排活动。可用性变量在这里是员工AW可用时间的列表(请参见输入)。
days = range(1,32)
preferences = [4,11,18,25]
A = LpVariable.dicts(name = "Intake", indexs = [(0, v) for v in preferences], lowBound = 0, upBound = 1, cat = "Continuous")
B = LpVariable.dicts(name = "Write a transcript of intake", indexs = [(0, d) for d in days], lowBound = 0, upBound = 1, cat = "Continuous")
C = LpVariable.dicts(name = "Create treatment plan", indexs = [(0, d) for d in days], lowBound = 0, upBound = 0.5, cat = "Continuous")
D = LpVariable.dicts(name = "Schedule a meeting", indexs = [(0, d) for d in days], lowBound = 0, upBound = 0.5, cat = "Continuous")
E = LpVariable.dicts(name = "Discuss treatment plan with patiënt", indexs = [(0, v) for v in preferences], lowBound = 0, upBound = 1, cat = "Continuous")
############################## OBJECTIVE ##############################################
# define the model to maximize the workday
schedule = LpProblem(name="Maximize_Schedule", sense=LpMaximize)
schedule += lpSum(A[(0,v)] for v in preferences) + lpSum(B[(0,d)] for d in days) + lpSum(C[(0,d)] for d in days) + lpSum(D[(0,d)] for d in days) + lpSum(E[(0,v)] for v in preferences)
############################## CONSTRAINTS ############################################
# Less than available hours
for v in preferences:
schedule += A[0,v] + B[0,v] + C[0,v] + D[0,v] + E[0,v] <= availability[v-1]
for d in days:
schedule += B[0,d] + C[0,d] + D[0,d] <= availability[d-1]
# There is no more than 4 hours to divide
schedule += lpSum(A[(0,v)] for v in preferences) + lpSum(B[(0,d)] for d in days) + lpSum(C[(0,d)] for d in days) + lpSum(D[(0,d)] for d in days) + lpSum(E[(0,v)] for v in preferences) <= 4
# Every activity must be in the solution
schedule += lpSum(A[(0,v)] for v in preferences) == 1
schedule += lpSum(B[(0,d)] for d in days) == 1
schedule += lpSum(C[(0,d)] for d in days) == 0.5
schedule += lpSum(D[(0,d)] for d in days) == 0.5
schedule += lpSum(E[(0,v)] for v in preferences) == 1
# An activity cannot be less than zero
for v in preferences:
schedule += A[(0,v)] >= 0
schedule += E[(0,v)] >= 0
for d in days:
schedule += B[(0,d)] >= 0
schedule += C[(0,d)] >= 0
schedule += D[(0,d)] >= 0
status = schedule.solve()该模型为我提供了以下输出:
Create_treatment_plan_(0,_4) 0.5
Discuss_treatment_plan_with_patiënt_(0,_11) 1.0
Intake_(0,_11) 1.0
Schedule_a_meeting_(0,_4) 0.5
Write_a_transcript_of_intake_(0,_4) 1.0我们已经满足了很多限制条件,但我们可以看到,在结果中没有优先权(“摄入量”是在“写一份录取记录”之前计划好的)。我不知道如何在我的LP中实现优先约束,因为我不是在处理开始时间和结束时间,而是使用可用性。你能帮我找个解决办法吗?在本页的底部,您可以在纸浆中找到my LP配方的完整版本。
致以亲切的问候,
汤姆
Maximize_Schedule:
MAXIMIZE
1*Create_treatment_plan_(0,_1) + 1*Create_treatment_plan_(0,_10) + 1*Create_treatment_plan_(0,_11) + 1*Create_treatment_plan_(0,_12) + 1*Create_treatment_plan_(0,_13) + 1*Create_treatment_plan_(0,_14) + 1*Create_treatment_plan_(0,_15) + 1*Create_treatment_plan_(0,_16) + 1*Create_treatment_plan_(0,_17) + 1*Create_treatment_plan_(0,_18) + 1*Create_treatment_plan_(0,_19) + 1*Create_treatment_plan_(0,_2) + 1*Create_treatment_plan_(0,_20) + 1*Create_treatment_plan_(0,_21) + 1*Create_treatment_plan_(0,_22) + 1*Create_treatment_plan_(0,_23) + 1*Create_treatment_plan_(0,_24) + 1*Create_treatment_plan_(0,_25) + 1*Create_treatment_plan_(0,_26) + 1*Create_treatment_plan_(0,_27) + 1*Create_treatment_plan_(0,_28) + 1*Create_treatment_plan_(0,_29) + 1*Create_treatment_plan_(0,_3) + 1*Create_treatment_plan_(0,_30) + 1*Create_treatment_plan_(0,_31) + 1*Create_treatment_plan_(0,_4) + 1*Create_treatment_plan_(0,_5) + 1*Create_treatment_plan_(0,_6) + 1*Create_treatment_plan_(0,_7) + 1*Create_treatment_plan_(0,_8) + 1*Create_treatment_plan_(0,_9) + 1*Discuss_treatment_plan_with_patiënt_(0,_11) + 1*Discuss_treatment_plan_with_patiënt_(0,_18) + 1*Discuss_treatment_plan_with_patiënt_(0,_25) + 1*Discuss_treatment_plan_with_patiënt_(0,_4) + 1*Intake_(0,_11) + 1*Intake_(0,_18) + 1*Intake_(0,_25) + 1*Intake_(0,_4) + 1*Schedule_a_meeting_(0,_1) + 1*Schedule_a_meeting_(0,_10) + 1*Schedule_a_meeting_(0,_11) + 1*Schedule_a_meeting_(0,_12) + 1*Schedule_a_meeting_(0,_13) + 1*Schedule_a_meeting_(0,_14) + 1*Schedule_a_meeting_(0,_15) + 1*Schedule_a_meeting_(0,_16) + 1*Schedule_a_meeting_(0,_17) + 1*Schedule_a_meeting_(0,_18) + 1*Schedule_a_meeting_(0,_19) + 1*Schedule_a_meeting_(0,_2) + 1*Schedule_a_meeting_(0,_20) + 1*Schedule_a_meeting_(0,_21) + 1*Schedule_a_meeting_(0,_22) + 1*Schedule_a_meeting_(0,_23) + 1*Schedule_a_meeting_(0,_24) + 1*Schedule_a_meeting_(0,_25) + 1*Schedule_a_meeting_(0,_26) + 1*Schedule_a_meeting_(0,_27) + 1*Schedule_a_meeting_(0,_28) + 1*Schedule_a_meeting_(0,_29) + 1*Schedule_a_meeting_(0,_3) + 1*Schedule_a_meeting_(0,_30) + 1*Schedule_a_meeting_(0,_31) + 1*Schedule_a_meeting_(0,_4) + 1*Schedule_a_meeting_(0,_5) + 1*Schedule_a_meeting_(0,_6) + 1*Schedule_a_meeting_(0,_7) + 1*Schedule_a_meeting_(0,_8) + 1*Schedule_a_meeting_(0,_9) + 1*Write_a_transcript_of_intake_(0,_1) + 1*Write_a_transcript_of_intake_(0,_10) + 1*Write_a_transcript_of_intake_(0,_11) + 1*Write_a_transcript_of_intake_(0,_12) + 1*Write_a_transcript_of_intake_(0,_13) + 1*Write_a_transcript_of_intake_(0,_14) + 1*Write_a_transcript_of_intake_(0,_15) + 1*Write_a_transcript_of_intake_(0,_16) + 1*Write_a_transcript_of_intake_(0,_17) + 1*Write_a_transcript_of_intake_(0,_18) + 1*Write_a_transcript_of_intake_(0,_19) + 1*Write_a_transcript_of_intake_(0,_2) + 1*Write_a_transcript_of_intake_(0,_20) + 1*Write_a_transcript_of_intake_(0,_21) + 1*Write_a_transcript_of_intake_(0,_22) + 1*Write_a_transcript_of_intake_(0,_23) + 1*Write_a_transcript_of_intake_(0,_24) + 1*Write_a_transcript_of_intake_(0,_25) + 1*Write_a_transcript_of_intake_(0,_26) + 1*Write_a_transcript_of_intake_(0,_27) + 1*Write_a_transcript_of_intake_(0,_28) + 1*Write_a_transcript_of_intake_(0,_29) + 1*Write_a_transcript_of_intake_(0,_3) + 1*Write_a_transcript_of_intake_(0,_30) + 1*Write_a_transcript_of_intake_(0,_31) + 1*Write_a_transcript_of_intake_(0,_4) + 1*Write_a_transcript_of_intake_(0,_5) + 1*Write_a_transcript_of_intake_(0,_6) + 1*Write_a_transcript_of_intake_(0,_7) + 1*Write_a_transcript_of_intake_(0,_8) + 1*Write_a_transcript_of_intake_(0,_9) + 0
SUBJECT TO
_C1: Create_treatment_plan_(0,_4) + Discuss_treatment_plan_with_patiënt_(0,_4)
+ Intake_(0,_4) + Schedule_a_meeting_(0,_4)
+ Write_a_transcript_of_intake_(0,_4) <= 3
_C2: Create_treatment_plan_(0,_11)
+ Discuss_treatment_plan_with_patiënt_(0,_11) + Intake_(0,_11)
+ Schedule_a_meeting_(0,_11) + Write_a_transcript_of_intake_(0,_11) <= 4
_C3: Create_treatment_plan_(0,_18)
+ Discuss_treatment_plan_with_patiënt_(0,_18) + Intake_(0,_18)
+ Schedule_a_meeting_(0,_18) + Write_a_transcript_of_intake_(0,_18) <= 5
_C4: Create_treatment_plan_(0,_25)
+ Discuss_treatment_plan_with_patiënt_(0,_25) + Intake_(0,_25)
+ Schedule_a_meeting_(0,_25) + Write_a_transcript_of_intake_(0,_25) <= 6
_C5: Create_treatment_plan_(0,_1) + Schedule_a_meeting_(0,_1)
+ Write_a_transcript_of_intake_(0,_1) <= 0
_C6: Create_treatment_plan_(0,_2) + Schedule_a_meeting_(0,_2)
+ Write_a_transcript_of_intake_(0,_2) <= 5
_C7: Create_treatment_plan_(0,_3) + Schedule_a_meeting_(0,_3)
+ Write_a_transcript_of_intake_(0,_3) <= 7
_C8: Create_treatment_plan_(0,_4) + Schedule_a_meeting_(0,_4)
+ Write_a_transcript_of_intake_(0,_4) <= 3
_C9: Create_treatment_plan_(0,_5) + Schedule_a_meeting_(0,_5)
+ Write_a_transcript_of_intake_(0,_5) <= 0
_C10: Create_treatment_plan_(0,_6) + Schedule_a_meeting_(0,_6)
+ Write_a_transcript_of_intake_(0,_6) <= 0
_C11: Create_treatment_plan_(0,_7) + Schedule_a_meeting_(0,_7)
+ Write_a_transcript_of_intake_(0,_7) <= 6
_C12: Create_treatment_plan_(0,_8) + Schedule_a_meeting_(0,_8)
+ Write_a_transcript_of_intake_(0,_8) <= 0
_C13: Create_treatment_plan_(0,_9) + Schedule_a_meeting_(0,_9)
+ Write_a_transcript_of_intake_(0,_9) <= 6
_C14: Create_treatment_plan_(0,_10) + Schedule_a_meeting_(0,_10)
+ Write_a_transcript_of_intake_(0,_10) <= 1
_C15: Create_treatment_plan_(0,_11) + Schedule_a_meeting_(0,_11)
+ Write_a_transcript_of_intake_(0,_11) <= 4
_C16: Create_treatment_plan_(0,_12) + Schedule_a_meeting_(0,_12)
+ Write_a_transcript_of_intake_(0,_12) <= 0
_C17: Create_treatment_plan_(0,_13) + Schedule_a_meeting_(0,_13)
+ Write_a_transcript_of_intake_(0,_13) <= 0
_C18: Create_treatment_plan_(0,_14) + Schedule_a_meeting_(0,_14)
+ Write_a_transcript_of_intake_(0,_14) <= 4
_C19: Create_treatment_plan_(0,_15) + Schedule_a_meeting_(0,_15)
+ Write_a_transcript_of_intake_(0,_15) <= 0
_C20: Create_treatment_plan_(0,_16) + Schedule_a_meeting_(0,_16)
+ Write_a_transcript_of_intake_(0,_16) <= 4
_C21: Create_treatment_plan_(0,_17) + Schedule_a_meeting_(0,_17)
+ Write_a_transcript_of_intake_(0,_17) <= 7
_C22: Create_treatment_plan_(0,_18) + Schedule_a_meeting_(0,_18)
+ Write_a_transcript_of_intake_(0,_18) <= 5
_C23: Create_treatment_plan_(0,_19) + Schedule_a_meeting_(0,_19)
+ Write_a_transcript_of_intake_(0,_19) <= 0
_C24: Create_treatment_plan_(0,_20) + Schedule_a_meeting_(0,_20)
+ Write_a_transcript_of_intake_(0,_20) <= 0
_C25: Create_treatment_plan_(0,_21) + Schedule_a_meeting_(0,_21)
+ Write_a_transcript_of_intake_(0,_21) <= 4
_C26: Create_treatment_plan_(0,_22) + Schedule_a_meeting_(0,_22)
+ Write_a_transcript_of_intake_(0,_22) <= 0
_C27: Create_treatment_plan_(0,_23) + Schedule_a_meeting_(0,_23)
+ Write_a_transcript_of_intake_(0,_23) <= 4
_C28: Create_treatment_plan_(0,_24) + Schedule_a_meeting_(0,_24)
+ Write_a_transcript_of_intake_(0,_24) <= 7
_C29: Create_treatment_plan_(0,_25) + Schedule_a_meeting_(0,_25)
+ Write_a_transcript_of_intake_(0,_25) <= 6
_C30: Create_treatment_plan_(0,_26) + Schedule_a_meeting_(0,_26)
+ Write_a_transcript_of_intake_(0,_26) <= 0
_C31: Create_treatment_plan_(0,_27) + Schedule_a_meeting_(0,_27)
+ Write_a_transcript_of_intake_(0,_27) <= 0
_C32: Create_treatment_plan_(0,_28) + Schedule_a_meeting_(0,_28)
+ Write_a_transcript_of_intake_(0,_28) <= 4
_C33: Create_treatment_plan_(0,_29) + Schedule_a_meeting_(0,_29)
+ Write_a_transcript_of_intake_(0,_29) <= 0
_C34: Create_treatment_plan_(0,_30) + Schedule_a_meeting_(0,_30)
+ Write_a_transcript_of_intake_(0,_30) <= 5
_C35: Create_treatment_plan_(0,_31) + Schedule_a_meeting_(0,_31)
+ Write_a_transcript_of_intake_(0,_31) <= 7
_C36: Create_treatment_plan_(0,_1) + Create_treatment_plan_(0,_10)
+ Create_treatment_plan_(0,_11) + Create_treatment_plan_(0,_12)
+ Create_treatment_plan_(0,_13) + Create_treatment_plan_(0,_14)
+ Create_treatment_plan_(0,_15) + Create_treatment_plan_(0,_16)
+ Create_treatment_plan_(0,_17) + Create_treatment_plan_(0,_18)
+ Create_treatment_plan_(0,_19) + Create_treatment_plan_(0,_2)
+ Create_treatment_plan_(0,_20) + Create_treatment_plan_(0,_21)
+ Create_treatment_plan_(0,_22) + Create_treatment_plan_(0,_23)
+ Create_treatment_plan_(0,_24) + Create_treatment_plan_(0,_25)
+ Create_treatment_plan_(0,_26) + Create_treatment_plan_(0,_27)
+ Create_treatment_plan_(0,_28) + Create_treatment_plan_(0,_29)
+ Create_treatment_plan_(0,_3) + Create_treatment_plan_(0,_30)
+ Create_treatment_plan_(0,_31) + Create_treatment_plan_(0,_4)
+ Create_treatment_plan_(0,_5) + Create_treatment_plan_(0,_6)
+ Create_treatment_plan_(0,_7) + Create_treatment_plan_(0,_8)
+ Create_treatment_plan_(0,_9) + Discuss_treatment_plan_with_patiënt_(0,_11)
+ Discuss_treatment_plan_with_patiënt_(0,_18)
+ Discuss_treatment_plan_with_patiënt_(0,_25)
+ Discuss_treatment_plan_with_patiënt_(0,_4) + Intake_(0,_11)
+ Intake_(0,_18) + Intake_(0,_25) + Intake_(0,_4) + Schedule_a_meeting_(0,_1)
+ Schedule_a_meeting_(0,_10) + Schedule_a_meeting_(0,_11)
+ Schedule_a_meeting_(0,_12) + Schedule_a_meeting_(0,_13)
+ Schedule_a_meeting_(0,_14) + Schedule_a_meeting_(0,_15)
+ Schedule_a_meeting_(0,_16) + Schedule_a_meeting_(0,_17)
+ Schedule_a_meeting_(0,_18) + Schedule_a_meeting_(0,_19)
+ Schedule_a_meeting_(0,_2) + Schedule_a_meeting_(0,_20)
+ Schedule_a_meeting_(0,_21) + Schedule_a_meeting_(0,_22)
+ Schedule_a_meeting_(0,_23) + Schedule_a_meeting_(0,_24)
+ Schedule_a_meeting_(0,_25) + Schedule_a_meeting_(0,_26)
+ Schedule_a_meeting_(0,_27) + Schedule_a_meeting_(0,_28)
+ Schedule_a_meeting_(0,_29) + Schedule_a_meeting_(0,_3)
+ Schedule_a_meeting_(0,_30) + Schedule_a_meeting_(0,_31)
+ Schedule_a_meeting_(0,_4) + Schedule_a_meeting_(0,_5)
+ Schedule_a_meeting_(0,_6) + Schedule_a_meeting_(0,_7)
+ Schedule_a_meeting_(0,_8) + Schedule_a_meeting_(0,_9)
+ Write_a_transcript_of_intake_(0,_1) + Write_a_transcript_of_intake_(0,_10)
+ Write_a_transcript_of_intake_(0,_11) + Write_a_transcript_of_intake_(0,_12)
+ Write_a_transcript_of_intake_(0,_13) + Write_a_transcript_of_intake_(0,_14)
+ Write_a_transcript_of_intake_(0,_15) + Write_a_transcript_of_intake_(0,_16)
+ Write_a_transcript_of_intake_(0,_17) + Write_a_transcript_of_intake_(0,_18)
+ Write_a_transcript_of_intake_(0,_19) + Write_a_transcript_of_intake_(0,_2)
+ Write_a_transcript_of_intake_(0,_20) + Write_a_transcript_of_intake_(0,_21)
+ Write_a_transcript_of_intake_(0,_22) + Write_a_transcript_of_intake_(0,_23)
+ Write_a_transcript_of_intake_(0,_24) + Write_a_transcript_of_intake_(0,_25)
+ Write_a_transcript_of_intake_(0,_26) + Write_a_transcript_of_intake_(0,_27)
+ Write_a_transcript_of_intake_(0,_28) + Write_a_transcript_of_intake_(0,_29)
+ Write_a_transcript_of_intake_(0,_3) + Write_a_transcript_of_intake_(0,_30)
+ Write_a_transcript_of_intake_(0,_31) + Write_a_transcript_of_intake_(0,_4)
+ Write_a_transcript_of_intake_(0,_5) + Write_a_transcript_of_intake_(0,_6)
+ Write_a_transcript_of_intake_(0,_7) + Write_a_transcript_of_intake_(0,_8)
+ Write_a_transcript_of_intake_(0,_9) <= 4
_C37: Intake_(0,_11) + Intake_(0,_18) + Intake_(0,_25) + Intake_(0,_4) = 1
_C38: Write_a_transcript_of_intake_(0,_1)
+ Write_a_transcript_of_intake_(0,_10) + Write_a_transcript_of_intake_(0,_11)
+ Write_a_transcript_of_intake_(0,_12) + Write_a_transcript_of_intake_(0,_13)
+ Write_a_transcript_of_intake_(0,_14) + Write_a_transcript_of_intake_(0,_15)
+ Write_a_transcript_of_intake_(0,_16) + Write_a_transcript_of_intake_(0,_17)
+ Write_a_transcript_of_intake_(0,_18) + Write_a_transcript_of_intake_(0,_19)
+ Write_a_transcript_of_intake_(0,_2) + Write_a_transcript_of_intake_(0,_20)
+ Write_a_transcript_of_intake_(0,_21) + Write_a_transcript_of_intake_(0,_22)
+ Write_a_transcript_of_intake_(0,_23) + Write_a_transcript_of_intake_(0,_24)
+ Write_a_transcript_of_intake_(0,_25) + Write_a_transcript_of_intake_(0,_26)
+ Write_a_transcript_of_intake_(0,_27) + Write_a_transcript_of_intake_(0,_28)
+ Write_a_transcript_of_intake_(0,_29) + Write_a_transcript_of_intake_(0,_3)
+ Write_a_transcript_of_intake_(0,_30) + Write_a_transcript_of_intake_(0,_31)
+ Write_a_transcript_of_intake_(0,_4) + Write_a_transcript_of_intake_(0,_5)
+ Write_a_transcript_of_intake_(0,_6) + Write_a_transcript_of_intake_(0,_7)
+ Write_a_transcript_of_intake_(0,_8) + Write_a_transcript_of_intake_(0,_9)
= 1
_C39: Create_treatment_plan_(0,_1) + Create_treatment_plan_(0,_10)
+ Create_treatment_plan_(0,_11) + Create_treatment_plan_(0,_12)
+ Create_treatment_plan_(0,_13) + Create_treatment_plan_(0,_14)
+ Create_treatment_plan_(0,_15) + Create_treatment_plan_(0,_16)
+ Create_treatment_plan_(0,_17) + Create_treatment_plan_(0,_18)
+ Create_treatment_plan_(0,_19) + Create_treatment_plan_(0,_2)
+ Create_treatment_plan_(0,_20) + Create_treatment_plan_(0,_21)
+ Create_treatment_plan_(0,_22) + Create_treatment_plan_(0,_23)
+ Create_treatment_plan_(0,_24) + Create_treatment_plan_(0,_25)
+ Create_treatment_plan_(0,_26) + Create_treatment_plan_(0,_27)
+ Create_treatment_plan_(0,_28) + Create_treatment_plan_(0,_29)
+ Create_treatment_plan_(0,_3) + Create_treatment_plan_(0,_30)
+ Create_treatment_plan_(0,_31) + Create_treatment_plan_(0,_4)
+ Create_treatment_plan_(0,_5) + Create_treatment_plan_(0,_6)
+ Create_treatment_plan_(0,_7) + Create_treatment_plan_(0,_8)
+ Create_treatment_plan_(0,_9) = 0.5
_C40: Schedule_a_meeting_(0,_1) + Schedule_a_meeting_(0,_10)
+ Schedule_a_meeting_(0,_11) + Schedule_a_meeting_(0,_12)
+ Schedule_a_meeting_(0,_13) + Schedule_a_meeting_(0,_14)
+ Schedule_a_meeting_(0,_15) + Schedule_a_meeting_(0,_16)
+ Schedule_a_meeting_(0,_17) + Schedule_a_meeting_(0,_18)
+ Schedule_a_meeting_(0,_19) + Schedule_a_meeting_(0,_2)
+ Schedule_a_meeting_(0,_20) + Schedule_a_meeting_(0,_21)
+ Schedule_a_meeting_(0,_22) + Schedule_a_meeting_(0,_23)
+ Schedule_a_meeting_(0,_24) + Schedule_a_meeting_(0,_25)
+ Schedule_a_meeting_(0,_26) + Schedule_a_meeting_(0,_27)
+ Schedule_a_meeting_(0,_28) + Schedule_a_meeting_(0,_29)
+ Schedule_a_meeting_(0,_3) + Schedule_a_meeting_(0,_30)
+ Schedule_a_meeting_(0,_31) + Schedule_a_meeting_(0,_4)
+ Schedule_a_meeting_(0,_5) + Schedule_a_meeting_(0,_6)
+ Schedule_a_meeting_(0,_7) + Schedule_a_meeting_(0,_8)
+ Schedule_a_meeting_(0,_9) = 0.5
_C41: Discuss_treatment_plan_with_patiënt_(0,_11)
+ Discuss_treatment_plan_with_patiënt_(0,_18)
+ Discuss_treatment_plan_with_patiënt_(0,_25)
+ Discuss_treatment_plan_with_patiënt_(0,_4) = 1
_C42: Intake_(0,_4) >= 0
_C43: Discuss_treatment_plan_with_patiënt_(0,_4) >= 0
_C44: Intake_(0,_11) >= 0
_C45: Discuss_treatment_plan_with_patiënt_(0,_11) >= 0
_C46: Intake_(0,_18) >= 0
_C47: Discuss_treatment_plan_with_patiënt_(0,_18) >= 0
_C48: Intake_(0,_25) >= 0
_C49: Discuss_treatment_plan_with_patiënt_(0,_25) >= 0
_C50: Write_a_transcript_of_intake_(0,_1) >= 0
_C51: Create_treatment_plan_(0,_1) >= 0
_C52: Schedule_a_meeting_(0,_1) >= 0
_C53: Write_a_transcript_of_intake_(0,_2) >= 0
_C54: Create_treatment_plan_(0,_2) >= 0
_C55: Schedule_a_meeting_(0,_2) >= 0
_C56: Write_a_transcript_of_intake_(0,_3) >= 0
_C57: Create_treatment_plan_(0,_3) >= 0
_C58: Schedule_a_meeting_(0,_3) >= 0
_C59: Write_a_transcript_of_intake_(0,_4) >= 0
_C60: Create_treatment_plan_(0,_4) >= 0
_C61: Schedule_a_meeting_(0,_4) >= 0
_C62: Write_a_transcript_of_intake_(0,_5) >= 0
_C63: Create_treatment_plan_(0,_5) >= 0
_C64: Schedule_a_meeting_(0,_5) >= 0
_C65: Write_a_transcript_of_intake_(0,_6) >= 0
_C66: Create_treatment_plan_(0,_6) >= 0
_C67: Schedule_a_meeting_(0,_6) >= 0
_C68: Write_a_transcript_of_intake_(0,_7) >= 0
_C69: Create_treatment_plan_(0,_7) >= 0
_C70: Schedule_a_meeting_(0,_7) >= 0
_C71: Write_a_transcript_of_intake_(0,_8) >= 0
_C72: Create_treatment_plan_(0,_8) >= 0
_C73: Schedule_a_meeting_(0,_8) >= 0
_C74: Write_a_transcript_of_intake_(0,_9) >= 0
_C75: Create_treatment_plan_(0,_9) >= 0
_C76: Schedule_a_meeting_(0,_9) >= 0
_C77: Write_a_transcript_of_intake_(0,_10) >= 0
_C78: Create_treatment_plan_(0,_10) >= 0
_C79: Schedule_a_meeting_(0,_10) >= 0
_C80: Write_a_transcript_of_intake_(0,_11) >= 0
_C81: Create_treatment_plan_(0,_11) >= 0
_C82: Schedule_a_meeting_(0,_11) >= 0
_C83: Write_a_transcript_of_intake_(0,_12) >= 0
_C84: Create_treatment_plan_(0,_12) >= 0
_C85: Schedule_a_meeting_(0,_12) >= 0
_C86: Write_a_transcript_of_intake_(0,_13) >= 0
_C87: Create_treatment_plan_(0,_13) >= 0
_C88: Schedule_a_meeting_(0,_13) >= 0
_C89: Write_a_transcript_of_intake_(0,_14) >= 0
_C90: Create_treatment_plan_(0,_14) >= 0
_C91: Schedule_a_meeting_(0,_14) >= 0
_C92: Write_a_transcript_of_intake_(0,_15) >= 0
_C93: Create_treatment_plan_(0,_15) >= 0
_C94: Schedule_a_meeting_(0,_15) >= 0
_C95: Write_a_transcript_of_intake_(0,_16) >= 0
_C96: Create_treatment_plan_(0,_16) >= 0
_C97: Schedule_a_meeting_(0,_16) >= 0
_C98: Write_a_transcript_of_intake_(0,_17) >= 0
_C99: Create_treatment_plan_(0,_17) >= 0
_C100: Schedule_a_meeting_(0,_17) >= 0
_C101: Write_a_transcript_of_intake_(0,_18) >= 0
_C102: Create_treatment_plan_(0,_18) >= 0
_C103: Schedule_a_meeting_(0,_18) >= 0
_C104: Write_a_transcript_of_intake_(0,_19) >= 0
_C105: Create_treatment_plan_(0,_19) >= 0
_C106: Schedule_a_meeting_(0,_19) >= 0
_C107: Write_a_transcript_of_intake_(0,_20) >= 0
_C108: Create_treatment_plan_(0,_20) >= 0
_C109: Schedule_a_meeting_(0,_20) >= 0
_C110: Write_a_transcript_of_intake_(0,_21) >= 0
_C111: Create_treatment_plan_(0,_21) >= 0
_C112: Schedule_a_meeting_(0,_21) >= 0
_C113: Write_a_transcript_of_intake_(0,_22) >= 0
_C114: Create_treatment_plan_(0,_22) >= 0
_C115: Schedule_a_meeting_(0,_22) >= 0
_C116: Write_a_transcript_of_intake_(0,_23) >= 0
_C117: Create_treatment_plan_(0,_23) >= 0
_C118: Schedule_a_meeting_(0,_23) >= 0
_C119: Write_a_transcript_of_intake_(0,_24) >= 0
_C120: Create_treatment_plan_(0,_24) >= 0
_C121: Schedule_a_meeting_(0,_24) >= 0
_C122: Write_a_transcript_of_intake_(0,_25) >= 0
_C123: Create_treatment_plan_(0,_25) >= 0
_C124: Schedule_a_meeting_(0,_25) >= 0
_C125: Write_a_transcript_of_intake_(0,_26) >= 0
_C126: Create_treatment_plan_(0,_26) >= 0
_C127: Schedule_a_meeting_(0,_26) >= 0
_C128: Write_a_transcript_of_intake_(0,_27) >= 0
_C129: Create_treatment_plan_(0,_27) >= 0
_C130: Schedule_a_meeting_(0,_27) >= 0
_C131: Write_a_transcript_of_intake_(0,_28) >= 0
_C132: Create_treatment_plan_(0,_28) >= 0
_C133: Schedule_a_meeting_(0,_28) >= 0
_C134: Write_a_transcript_of_intake_(0,_29) >= 0
_C135: Create_treatment_plan_(0,_29) >= 0
_C136: Schedule_a_meeting_(0,_29) >= 0
_C137: Write_a_transcript_of_intake_(0,_30) >= 0
_C138: Create_treatment_plan_(0,_30) >= 0
_C139: Schedule_a_meeting_(0,_30) >= 0
_C140: Write_a_transcript_of_intake_(0,_31) >= 0
_C141: Create_treatment_plan_(0,_31) >= 0
_C142: Schedule_a_meeting_(0,_31) >= 0
VARIABLES
Create_treatment_plan_(0,_1) <= 0.5 Continuous
Create_treatment_plan_(0,_10) <= 0.5 Continuous
Create_treatment_plan_(0,_11) <= 0.5 Continuous
Create_treatment_plan_(0,_12) <= 0.5 Continuous
Create_treatment_plan_(0,_13) <= 0.5 Continuous
Create_treatment_plan_(0,_14) <= 0.5 Continuous
Create_treatment_plan_(0,_15) <= 0.5 Continuous
Create_treatment_plan_(0,_16) <= 0.5 Continuous
Create_treatment_plan_(0,_17) <= 0.5 Continuous
Create_treatment_plan_(0,_18) <= 0.5 Continuous
Create_treatment_plan_(0,_19) <= 0.5 Continuous
Create_treatment_plan_(0,_2) <= 0.5 Continuous
Create_treatment_plan_(0,_20) <= 0.5 Continuous
Create_treatment_plan_(0,_21) <= 0.5 Continuous
Create_treatment_plan_(0,_22) <= 0.5 Continuous
Create_treatment_plan_(0,_23) <= 0.5 Continuous
Create_treatment_plan_(0,_24) <= 0.5 Continuous
Create_treatment_plan_(0,_25) <= 0.5 Continuous
Create_treatment_plan_(0,_26) <= 0.5 Continuous
Create_treatment_plan_(0,_27) <= 0.5 Continuous
Create_treatment_plan_(0,_28) <= 0.5 Continuous
Create_treatment_plan_(0,_29) <= 0.5 Continuous
Create_treatment_plan_(0,_3) <= 0.5 Continuous
Create_treatment_plan_(0,_30) <= 0.5 Continuous
Create_treatment_plan_(0,_31) <= 0.5 Continuous
Create_treatment_plan_(0,_4) <= 0.5 Continuous
Create_treatment_plan_(0,_5) <= 0.5 Continuous
Create_treatment_plan_(0,_6) <= 0.5 Continuous
Create_treatment_plan_(0,_7) <= 0.5 Continuous
Create_treatment_plan_(0,_8) <= 0.5 Continuous
Create_treatment_plan_(0,_9) <= 0.5 Continuous
Discuss_treatment_plan_with_patiënt_(0,_11) <= 1 Continuous
Discuss_treatment_plan_with_patiënt_(0,_18) <= 1 Continuous
Discuss_treatment_plan_with_patiënt_(0,_25) <= 1 Continuous
Discuss_treatment_plan_with_patiënt_(0,_4) <= 1 Continuous
Intake_(0,_11) <= 1 Continuous
Intake_(0,_18) <= 1 Continuous
Intake_(0,_25) <= 1 Continuous
Intake_(0,_4) <= 1 Continuous
Schedule_a_meeting_(0,_1) <= 0.5 Continuous
Schedule_a_meeting_(0,_10) <= 0.5 Continuous
Schedule_a_meeting_(0,_11) <= 0.5 Continuous
Schedule_a_meeting_(0,_12) <= 0.5 Continuous
Schedule_a_meeting_(0,_13) <= 0.5 Continuous
Schedule_a_meeting_(0,_14) <= 0.5 Continuous
Schedule_a_meeting_(0,_15) <= 0.5 Continuous
Schedule_a_meeting_(0,_16) <= 0.5 Continuous
Schedule_a_meeting_(0,_17) <= 0.5 Continuous
Schedule_a_meeting_(0,_18) <= 0.5 Continuous
Schedule_a_meeting_(0,_19) <= 0.5 Continuous
Schedule_a_meeting_(0,_2) <= 0.5 Continuous
Schedule_a_meeting_(0,_20) <= 0.5 Continuous
Schedule_a_meeting_(0,_21) <= 0.5 Continuous
Schedule_a_meeting_(0,_22) <= 0.5 Continuous
Schedule_a_meeting_(0,_23) <= 0.5 Continuous
Schedule_a_meeting_(0,_24) <= 0.5 Continuous
Schedule_a_meeting_(0,_25) <= 0.5 Continuous
Schedule_a_meeting_(0,_26) <= 0.5 Continuous
Schedule_a_meeting_(0,_27) <= 0.5 Continuous
Schedule_a_meeting_(0,_28) <= 0.5 Continuous
Schedule_a_meeting_(0,_29) <= 0.5 Continuous
Schedule_a_meeting_(0,_3) <= 0.5 Continuous
Schedule_a_meeting_(0,_30) <= 0.5 Continuous
Schedule_a_meeting_(0,_31) <= 0.5 Continuous
Schedule_a_meeting_(0,_4) <= 0.5 Continuous
Schedule_a_meeting_(0,_5) <= 0.5 Continuous
Schedule_a_meeting_(0,_6) <= 0.5 Continuous
Schedule_a_meeting_(0,_7) <= 0.5 Continuous
Schedule_a_meeting_(0,_8) <= 0.5 Continuous
Schedule_a_meeting_(0,_9) <= 0.5 Continuous
Write_a_transcript_of_intake_(0,_1) <= 1 Continuous
Write_a_transcript_of_intake_(0,_10) <= 1 Continuous
Write_a_transcript_of_intake_(0,_11) <= 1 Continuous
Write_a_transcript_of_intake_(0,_12) <= 1 Continuous
Write_a_transcript_of_intake_(0,_13) <= 1 Continuous
Write_a_transcript_of_intake_(0,_14) <= 1 Continuous
Write_a_transcript_of_intake_(0,_15) <= 1 Continuous
Write_a_transcript_of_intake_(0,_16) <= 1 Continuous
Write_a_transcript_of_intake_(0,_17) <= 1 Continuous
Write_a_transcript_of_intake_(0,_18) <= 1 Continuous
Write_a_transcript_of_intake_(0,_19) <= 1 Continuous
Write_a_transcript_of_intake_(0,_2) <= 1 Continuous
Write_a_transcript_of_intake_(0,_20) <= 1 Continuous
Write_a_transcript_of_intake_(0,_21) <= 1 Continuous
Write_a_transcript_of_intake_(0,_22) <= 1 Continuous
Write_a_transcript_of_intake_(0,_23) <= 1 Continuous
Write_a_transcript_of_intake_(0,_24) <= 1 Continuous
Write_a_transcript_of_intake_(0,_25) <= 1 Continuous
Write_a_transcript_of_intake_(0,_26) <= 1 Continuous
Write_a_transcript_of_intake_(0,_27) <= 1 Continuous
Write_a_transcript_of_intake_(0,_28) <= 1 Continuous
Write_a_transcript_of_intake_(0,_29) <= 1 Continuous
Write_a_transcript_of_intake_(0,_3) <= 1 Continuous
Write_a_transcript_of_intake_(0,_30) <= 1 Continuous
Write_a_transcript_of_intake_(0,_31) <= 1 Continuous
Write_a_transcript_of_intake_(0,_4) <= 1 Continuous
Write_a_transcript_of_intake_(0,_5) <= 1 Continuous
Write_a_transcript_of_intake_(0,_6) <= 1 Continuous
Write_a_transcript_of_intake_(0,_7) <= 1 Continuous
Write_a_transcript_of_intake_(0,_8) <= 1 Continuous
Write_a_transcript_of_intake_(0,_9) <= 1 Continuous发布于 2022-02-03 07:08:28
对于时间索引变量x[t], y[t] ∈ {0,1},我还经常保留标量变量xt, yt ≥ 0,其中包含x,y的时间。
xt = sum{ t*x[t] }
yt = sum{ t*y[t] }当然,这假设我们有:
sum{ x[t] } = 1
sum{ y[t] } = 1也就是说,x,y恰好发生在一个时间(只要第一个t大于零,它也与“最多一次”一起工作)。
有了这个,您可以很容易地强加一个优先级约束:
xt ≤ yt-1https://stackoverflow.com/questions/70963976
复制相似问题