Skip to content Skip to sidebar Skip to footer

Maximize Revenue With Deadline

Given three interval variables say a = mdl.interval_var(name='a',start=(0,10),end=(0,10),size=5) #have revenue of 10 b = mdl.interval_var(name='b',start=(0,10),end=(0,10),size=5) #

Solution 1:

from docplex.cp.model import CpoModel
mdl = CpoModel()
deadline=5
a = mdl.interval_var(name='a',start=(0,10),end=(0,10),size=5) #have revenue of 10
b = mdl.interval_var(name='b',start=(0,10),end=(0,10),size=5) #have revenue of 5
c = mdl.interval_var(name='c',start=(0,10),end=(0,10),size=5) #have revenue of 4

mdl.add(mdl.start_of(a)==1)

mdl.add(mdl.maximize(mdl.presence_of(a)*(mdl.end_of(a)<=deadline)*10+
                     mdl.presence_of(b)*(mdl.end_of(b)<=deadline)*5+
                     mdl.presence_of(c)*(mdl.end_of(c)<=deadline)*4))
        
msol = mdl.solve(FailLimit=100000, TimeLimit=10)
msol.print_solution()

gives objective 9 since 9=5+4


Post a Comment for "Maximize Revenue With Deadline"