繁体   English   中英

当时间用作 Pulp 变量中的索引时,如何向 LP 添加优先约束?

[英]How to add precedence constraints to LP when time is used as an index in a Pulp variable?

亲爱的程序员,

我想知道如何根据可用性安排活动(请参阅输入)。 有些人在可用小时数大于零的日子有空。 我们希望我们的日程安排尽可能接近于零(高效计划)。 这意味着当我们为一个需要五项活动的客户安排一个新项目时,我们需要我们的算法通过该特定项目日的活动持续时间来减少可用小时数。 一些活动需要 0.5 小时才能完成,而另一些活动需要 1 小时才能完成。 我试图用变量 A、B、C、D 和 E 制定 model 的初始版本,作为正确顺序的活动(但),只有一名员工(称为“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()

model 为我提供了以下 output:

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 中实施优先约束,因为我没有使用开始时间和结束时间,而是使用可用性。 你能帮我寻找解决方案吗? 在此页面的底部,您可以找到我的纸浆中的 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

使用时间索引变量x[t], y[t] ∈ {0,1} ,我经常还保留一个变量xt, yt ≥ 0来保存x,y的时间:

 xt = sum{ t*x[t] }
 yt = sum{ t*y[t] }

有了这个,您可以轻松地施加优先约束:

 xt ≤ yt-1

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM