#import module
import mosek
#import numpy arrays or mosek arraystry: from numpy import array,zeros,ones
except ImportError:
from mosek.array import array, zeros, ones
# stream for collect data from MOSEKdef streamprinter(text): sys.stdout.flush() #main functiondef main (bkc,blc,buc,bkx,blx,bux,csub, cval,asub,acof,ptrb,ptre,niv, ntc): # create mosek environment env = mosek.Env () # add stream to environment env.set_Stream (mosek.streamtype.log, streamprinter) # create task task = env.Task(0,0) # add output-data stream to task task.set_Stream (mosek.streamtype.log, streamprinter)
#there are examples of creation right part of constraints and variable constraints# bkc = [ mosek.boundkey.up, mosek.boundkey.lo ]# blc = [ -inf, -4.0 ]
# buc = [ 250.0, inf ]
# bkx = [ mosek.boundkey.lo, mosek.boundkey.lo ]
# blx = [ 0.0, 0.0 ]
# bux = [ inf, inf ]
#coefficients of goal function# c = [ 1.0, 0.64 ]
#coeff numbers in constraints
# asub = [ array([0, 1]), array([0, 1]) ]
#...and this values
# aval = [ array([50.0, 3.0]), array([31.0, -2.0]) ]
#number of variables numvar = len(bkx)
#number of constraints numcon = len(bkc)
# create constraints
task.append(mosek.accmode.con, numcon)
# create variables
task.append(mosek.accmode.var, numvar)
# The goal function adding (csub - numbers of variables, cval - coefficients of variables)
task.putcfix(0.0) task.putclist(csub,cval)
# add constraints task.putboundslice(mosek. accmode.con, 0, numcon,
bkc, blc, buc)
# add variable constraints task.putboundslice(mosek. accmode.var, 0, numvar,
bkx, blx, bux)
# Input non-zero elements of matrix A (by column) for j in range(numcon):
aptrb,aptre = ptrb[j],ptre[j]
task.putavec(mosek.accmode. con,j,
asub[aptrb:aptre],
acof[aptrb:aptre])
# input optimize criterion (minimize/maximize) task.putobjsense(mosek. objsense.minimize) # integer variables numlist=list()
typelist=list()
for i in range(niv,numvar):
numlist.append(i)
typelist.append(mosek. variabletype.type_int)
task.putvartypelist(numlist, typelist)
# constants of begin solve task.putintparam(mosek.iparam. mio_construct_sol, mosek.onoffkey.on);
# all variable are unknown in begin of solve task. makesolutionstatusunknown( mosek.soltype.itg);
#we can save task in some file #task.writedata("test.lp") # solve task task.optimize()
# output solution
if task.solutiondef(mosek. soltype.itg):
...
#import numpy arrays or mosek arraystry: from numpy import array,zeros,ones
except ImportError:
from mosek.array import array, zeros, ones
# stream for collect data from MOSEKdef streamprinter(text): sys.stdout.flush() #main functiondef main (bkc,blc,buc,bkx,blx,bux,csub,
#there are examples of creation right part of constraints and variable constraints# bkc = [ mosek.boundkey.up, mosek.boundkey.lo ]# blc = [ -inf, -4.0 ]
# buc = [ 250.0, inf ]
# bkx = [ mosek.boundkey.lo, mosek.boundkey.lo ]
# blx = [ 0.0, 0.0 ]
# bux = [ inf, inf ]
#coefficients of goal function# c = [ 1.0, 0.64 ]
#coeff numbers in constraints
# asub = [ array([0, 1]), array([0, 1]) ]
#...and this values
# aval = [ array([50.0, 3.0]), array([31.0, -2.0]) ]
#number of variables numvar = len(bkx)
#number of constraints numcon = len(bkc)
# create constraints
task.append(mosek.accmode.con,
# create variables
task.append(mosek.accmode.var,
# The goal function adding (csub - numbers of variables, cval - coefficients of variables)
task.putcfix(0.0) task.putclist(csub,cval)
# add constraints task.putboundslice(mosek.
bkc, blc, buc)
# add variable constraints task.putboundslice(mosek.
bkx, blx, bux)
# Input non-zero elements of matrix A (by column) for j in range(numcon):
aptrb,aptre = ptrb[j],ptre[j]
task.putavec(mosek.accmode.
asub[aptrb:aptre],
acof[aptrb:aptre])
# input optimize criterion (minimize/maximize) task.putobjsense(mosek.
typelist=list()
for i in range(niv,numvar):
numlist.append(i)
typelist.append(mosek.
task.putvartypelist(numlist,
# constants of begin solve task.putintparam(mosek.iparam.
# all variable are unknown in begin of solve task.
#we can save task in some file #task.writedata("test.lp") # solve task task.optimize()
# output solution
if task.solutiondef(mosek.
...