首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当时间用作纸浆变量中的索引时,如何向LP添加优先级约束?

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

Stack Overflow用户
提问于 2022-02-02 23:00:15
回答 1查看 155关注 0票数 0

亲爱的程序员们,

我想知道如何根据可用性来安排活动(参见输入)。在可用时间超过零的日子里,也有可用的人。我们希望我们的时间表尽可能接近于零(有效的计划)。这意味着,当我们为一个需要五个活动的客户安排一个新项目时,我们需要我们的算法,以便在该特定项目日的活动持续时间内减少可用时间。有些活动需要0,5小时才能完成,有些则需要1小时才能完成。我试图用变量A、B、C、D和E作为活动的初始版本,并且只有一个雇员(称为'0‘,因为我将来会添加更多的员工,但我不想从一开始就太复杂的情况开始)和活动排定的日期。对于第一次和第五次活动,病人可以优先考虑。对于第二次、第三次和第四次活动,可以随时安排活动。可用性变量在这里是员工AW可用时间的列表(请参见输入)。

代码语言:javascript
复制
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()

该模型为我提供了以下输出:

代码语言:javascript
复制
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配方的完整版本。

致以亲切的问候,

汤姆

代码语言:javascript
复制
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
EN

回答 1

Stack Overflow用户

发布于 2022-02-03 07:08:28

对于时间索引变量x[t], y[t] ∈ {0,1},我还经常保留标量变量xt, yt ≥ 0,其中包含x,y的时间。

代码语言:javascript
复制
 xt = sum{ t*x[t] }
 yt = sum{ t*y[t] }

当然,这假设我们有:

代码语言:javascript
复制
 sum{ x[t] } = 1
 sum{ y[t] } = 1

也就是说,x,y恰好发生在一个时间(只要第一个t大于零,它也与“最多一次”一起工作)。

有了这个,您可以很容易地强加一个优先级约束:

代码语言:javascript
复制
 xt ≤ yt-1
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70963976

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档