Initializing help system before first use

Loading a problem


Type: Programming
Rating: 2 (easy-medium)
Description: Shows how directly load a problem and solve it in Python
File(s): example_loadlp.py, example_loadqp.py, example_loadqcqp.py, example_loadmiqcqp.py, example_loadmiqcqp_sos.py


example_loadlp.py
#!/bin/env python

import xpress as xp

p = xp.problem ()

# fill in a problem with three variables and four constraints

p.loadproblem ("",                                            # probname
               ['G','G','E', 'L'],                            # qrtypes
               [-2.4, -3, 4, 5],                              # rhs
               None,                                          # range
               [3,4,5],                                       # obj
               [0,2,4,8],                                     # mstart
               None,                                          # mnel
               [0,1,2,3,0,1,2,3],                             # mrwind
               [1,1,1,1,1,1,1,1],                             # dmatval
               [-1,-1,-1],                                    # lb
               [3,5,8],                                       # ub
               colnames = ['x1','x2','x3'],                   # column names
               rownames = ['row1','row2','row3','constr_04']) # row    names

p.write ("loadlp", "lp")
p.solve ()

# Create another variable and add it, then modify the objective
# function. Note that the objective function is replaced by, not
# amended with, the new objective

x = xp.var()
p.addVariable (x)
p.setObjective (x**2 + 2*x + 444)
p.solve()
p.write ("updated", "lp")

example_loadqp.py
#!/bin/env python

# example of loadproblem() that adds a quadratic objective

import xpress as xp

p = xp.problem ()

# fill in a problem with three variables and four constraints

p.loadproblem ("",                 # probname
               ['G','G','E', 'L'], # qrtypes
               [-2.4, -3, 4, 5],   # rhs
               None,               # range
               [3,4,5],            # obj
               [0,2,4,8],          # mstart
               None,               # mnel
               [0,1,2,3,0,1,2,3],  # mrwind
               [1,1,1,1,1,1,1,1],  # dmatval
               [-1,-1,-1],         # lb
               [3,5,8],            # ub
               [0,0,0,1,1,2],      # mqobj1
               [0,1,2,1,2,2],      # mqobj1
               [2,1,1,2,1,2])      # dqe

p.write ("loadedq", "lp")
p.solve ()


example_loadqcqp.py
#!/bin/env python

# example using loadproblem to create a quadratically constrained
# quadratic problem.

import xpress as xp

p = xp.problem ()

# fill in a problem with three variables and four constraints

p.loadproblem ("",                 # probname
               ['G','G','L', 'L'], # qrtypes
               [-2.4, -3, 4, 5],   # rhs
               None,               # range
               [3,4,5],            # obj
               [0,2,4,8],          # mstart
               None,               # mnel
               [0,1,2,3,0,1,2,3],  # mrwind
               [1,1,1,1,1,1,1,1],  # dmatval
               [-1,-1,-1],         # lb
               [3,5,8],            # ub
               [0,0,0,1,1,2],      # mqobj1
               [0,1,2,1,2,2],      # mqobj1
               [2,1,1,2,1,2],      # dqe
               [2,3],              # qcrows
               [2,3],              # qcnquads
               [1,2,0,0,2],        # qcmqcol1
               [1,2,0,2,2],        # qcmqcol2
               [3,4,1,1,1])        # qcdqval

p.write ("loadedqc", "lp")
p.solve ()

example_loadmiqcqp.py
#!/bin/env python

# Example: create a MIQCQP using the loadproblem() function

import xpress as xp

p = xp.problem ()

# fill in a problem with three variables and four constraints

p.loadproblem ("",                 # probname
               ['G','G','L', 'L'], # qrtypes
               [-2.4, -3, 4, 5],   # rhs
               None,               # range
               [3,4,5],            # obj
               [0,2,4,8],          # mstart
               None,               # mnel
               [0,1,2,3,0,1,2,3],  # mrwind
               [1,1,1,1,1,1,1,1],  # dmatval
               [-1,-1,-1],         # lb
               [3,5,8],            # ub
               [0,0,0,1,1,2],      # mqobj1
               [0,1,2,1,2,2],      # mqobj1
               [2,1,1,2,1,2],      # dqe
               [2,3],              # qcrows
               [2,3],              # qcnquads
               [1,2,0,0,2],        # qcmqcol1
               [1,2,0,2,2],        # qcmqcol2
               [3,4,1,1,1],        # qcdqval
               ['I','B'],          # qgtype
               [0,1],              # mgcols
               [0,2],              # dlim
               colnames = ['y01','y02','y03'],               # column names
               rownames = ['row01','row02','row03','row04']) # row    names

p.write ("loadedqcg", "lp")
p.solve ()

example_loadmiqcqp_sos.py
#!/bin/env python

# Example that uses loadproblem() to create a Mixed Integer
# Quadratically Constrained Quadratic Programming problem with two
# Special Ordered Sets

import xpress as xp

p = xp.problem ()

p.loadproblem ("",                 # probname
               ['G','G','L', 'L'], # qrtypes
               [-2.4, -3, 4, 5],   # rhs
               None,               # range
               [3,4,5],            # obj
               [0,2,4,8],          # mstart
               None,               # mnel
               [0,1,2,3,0,1,2,3],  # mrwind
               [1,1,1,1,1,1,1,1],  # dmatval
               [-1,-1,-1],         # lb
               [3,5,8],            # ub
               [0,0,0,1,1,2],      # mqobj1
               [0,1,2,1,2,2],      # mqobj1
               [2,1,1,2,1,2],      # dqe
               [2,3],              # qcrows
               [2,3],              # qcnquads
               [1,2,0,0,2],        # qcmqcol1
               [1,2,0,2,2],        # qcmqcol2
               [3,4,1,1,1],        # qcdqval
               ['I','S'],          # qgtype
               [0,1],              # mgcols
               [0,2],              # dlim
               ['1','1'],          # qstype
               [0,2,4],            # msstart
               [0,1,0,2],          # mscols
               [1.1,1.2,1.3,1.4])  # dref

p.write ("loadedqcgs", "lp")
p.solve ()