25.11.2015 Views

The MOSEK Python optimizer API manual Version 7.0 (Revision 141)

Optimizer API for Python - Documentation - Mosek

Optimizer API for Python - Documentation - Mosek

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

8.1. PORTFOLIO OPTIMIZATION 115<br />

56 for i in range(0,n):<br />

57 task.putconname(1+2*n+i,"zabs2[%d]" % (1+i))<br />

58<br />

59 task.putconboundlist(range(1+3*n,1+3*n+3*n),3*n*[mosek.boundkey.fx],3*n*[0.],3*n*[0.0])<br />

60 for i in range(0,n):<br />

61 for k in range(0,n):<br />

62 task.putconname(1+3*n+3*i+k,"f[%d,%d]" % (1+i,1+k))<br />

63<br />

64 task.putconboundlist(range(1+6*n,1+9*n),3*n*[mosek.boundkey.fx],<br />

65 3*[0.0, -1.0/8.0, 0.0],3*[0.0, -1.0/8.0, 0.0])<br />

66 for i in range(0,n) :<br />

67 for k in range(0,n):<br />

68 task.putconname(1+6*n+3*i+k,"g[%d,%d]" % (1+i,1+k))<br />

69<br />

70 # Offset of variables into the <strong>API</strong> variable.<br />

71 offsetx = 0<br />

72 offsets = n<br />

73 offsett = n+1<br />

74 offsetc = 2*n+1<br />

75 offsetv = 3*n+1<br />

76 offsetz = 4*n+1<br />

77 offsetf = 5*n+1<br />

78 offsetg = 8*n+1<br />

79<br />

80 # Variables.<br />

81 task.appendvars(1+11*n)<br />

82<br />

83 # x variables.<br />

84 task.putclist(range(offsetx+0,offsetx+n),mu)<br />

85 task.putaijlist(n*[0],range(offsetx+0,offsetx+n),n*[1.0])<br />

86 for j in range(0,n):<br />

87 task.putaijlist(n*[1+j],range(offsetx+0,offsetx+n),GT[j])<br />

88 task.putaij(1+n+j,offsetx+j,-1.0)<br />

89 task.putaij(1+2*n+j,offsetx+j,1.0)<br />

90<br />

91 task.putvarboundlist(range(offsetx+0,offsetx+n),n*[mosek.boundkey.lo],n*[0.0],n*[inf])<br />

92 for j in range(0,n):<br />

93 task.putvarname(offsetx+j,"x[%d]" % (1+j))<br />

94<br />

95 # s variable.<br />

96 task.putvarbound(offsets+0,mosek.boundkey.fx,gamma,gamma)<br />

97 task.putvarname(offsets+0,"s")<br />

98<br />

99 # t variables.<br />

100 task.putaijlist(range(1,n+1),range(offsett+0,offsett+n),n*[-1.0])<br />

101 task.putvarboundlist(range(offsett+0,offsett+n),n*[mosek.boundkey.fr],n*[-inf],n*[inf])<br />

102 for j in range(0,n):<br />

103 task.putvarname(offsett+j,"t[%d]" % (1+j))<br />

104<br />

105 # c variables.<br />

106 task.putaijlist(n*[0],range(offsetc,offsetc+n),m)<br />

107 task.putaijlist(range(1+3*n+1,1+6*n+1,3),range(offsetc,offsetc+n),n*[1.0])<br />

108 task.putvarboundlist(range(offsetc,offsetc+n),n*[mosek.boundkey.fr],n*[-inf],n*[inf])<br />

109 for j in range(0,n):<br />

110 task.putvarname(offsetc+j,"c[%d]" % (1+j))<br />

111<br />

112 # v variables.<br />

113 task.putaijlist(range(1+3*n+0,1+6*n+0,3),range(offsetv,offsetv+n),n*[1.0])

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!