Decision Optimization

Decision Optimization

Delivers prescriptive analytics capabilities and decision intelligence to improve decision-making.

 View Only
Expand all | Collapse all

doCplex Syntax

  • 1.  doCplex Syntax

    Posted Mon September 24, 2018 09:04 PM

    Originally posted by: AndyHam


    The following doCplex Py code generates an error "list index out of range" at this line. 
        o_completedJOB = mdl.sum([mdl.presence_of(itvJobs[(j)]) for j in J])
    I could not figure out why it is incorrect syntax.
    Please help me. Thanks!

     

    ##################################

    from docplex.cp.model import CpoModel
    from collections import namedtuple

    nbJob=4
    J = range(1,nbJob)

    mdl = CpoModel()

    itvJobs = [mdl.interval_var(optional=True, name="itvJobs {}".format(j)) for j in J]

    o_completedJOB = mdl.sum([mdl.presence_of(itvJobs[(j)]) for j in J])

    mdl.add(mdl.maximize(o_completedJOB))

     

    # Solve model
    print("Solving model....")
    msol = mdl.solve(TimeLimit=10)
    print("Solution: ")
    msol.print_solution()

    ##################################


    #CPOptimizer
    #DecisionOptimization


  • 2.  Re: doCplex Syntax

    Posted Tue September 25, 2018 03:26 AM

    Hi,

    instead of

    o_completedJOB = mdl.sum([mdl.presence_of(itvJobs[(j)]) for j in J])

    you should write

    o_completedJOB = mdl.sum([mdl.presence_of(itvJobs[j-1]) for j in J])

    and then it will work fine.

    regards


    #CPOptimizer
    #DecisionOptimization