1
- ********************************
2
- * *
3
- * Using KNITRO 7.0 with CUTEst *
4
- * *
5
- ********************************
1
+ ****************************
2
+ * *
3
+ * Using KNITRO with CUTEst *
4
+ * *
5
+ ****************************
6
6
7
- ( Last modified on 19 Jan 2013 at 12:50 :00 )
7
+ ( Last modified on 10 May 2023 at 23:25 :00 )
8
8
9
- WHAT IS KNITRO 7.0 ?
9
+ WHAT IS KNITRO?
10
10
-------------------
11
11
12
- KNITRO 7.0 is a code for solving large-scale nonlinear programming
12
+ KNITRO is a code for solving large-scale nonlinear programming
13
13
problems of the form
14
14
15
15
Min f(x)
@@ -27,47 +27,47 @@ HOW DO I GET KNITRO?
27
27
28
28
See
29
29
30
- http ://www.ziena .com/knitro.htm
30
+ https ://www.artelys .com/solvers/ knitro/
31
31
32
32
33
- USING KNITRO 7.0 WITH CUTEst
33
+ USING KNITRO WITH CUTEst
34
34
----------------------------
35
35
36
36
Create an environment variable KNITRODIR pointing to the directory
37
- where your KNITRO 7.0 package is stored. You should have the
37
+ where your KNITRO package is stored. You should have the
38
38
subdirectories and files
39
39
40
40
$KNITRODIR/include/knitro.h
41
- $KNITRODIR/lib/libknitro700.a
41
+ $KNITRODIR/lib/libknitro.so
42
42
43
43
Copy $KNITRODIR/include/knitro.h to the $CUTEST/include directory;
44
44
the latest version we know about will already be in $CUTEST/include.
45
45
46
46
The file knitro.opt should be present in the directory from which you
47
47
launch CUTEst. Alternatively, there can be a symbolic link pointing to it.
48
48
49
- KNITRO 7.0 is not available in single precision.
49
+ KNITRO is not available in single precision.
50
50
51
- USING THE KNITRO 7.0 INTERFACE TOOL
51
+ USING THE KNITRO INTERFACE TOOL
52
52
-----------------------------------
53
53
54
54
Suppose you wish to solve the problem written in SIF format contained
55
55
in the file probname.SIF.
56
56
57
- The KNITRO 7.0 interface tools require two input files:
57
+ The KNITRO interface tools require two input files:
58
58
59
59
probname.SIF specifies the problem in SIF format
60
60
knitro.opt sets values for Knitro parameters
61
61
62
62
The opt file should be present in the current directory, in
63
63
$CUTEST/src/knitro or there should be a symbolic link pointing to it.
64
64
The file is self-documented so the purpose of each parameter should be clear
65
- from the file. Please refer to the KNITRO 7.0 documentation for more details.
65
+ from the file. Please refer to the KNITRO documentation for more details.
66
66
67
67
To run with CUTEst, use the runcutest command with the -p knitro option.
68
68
See the man page for runcutest for more details of other options.
69
69
70
- THE KNITRO 7.0 SPECIFICATIONS FILE
70
+ THE KNITRO SPECIFICATIONS FILE
71
71
----------------------------------
72
72
73
73
The file knitro.opt may be used to set various Knitro parameters.
@@ -109,145 +109,3 @@ REFERENCES
109
109
Evanston, Illinois, USA, 1999
110
110
Note: this paper describes a number of enhancements that
111
111
are implemented in the current version of the code
112
-
113
-
114
- DESCRIPTION OF THE VARIABLES IN KNITRO 7.0
115
- ------------------------------------------
116
-
117
-
118
- n is an INTEGER variable denoting the number of variables.
119
-
120
- m is an INTEGER variable denoting the number of general
121
- constraints.
122
-
123
- f is a DOUBLE PRECISION variable which holds the value of the
124
- objective function.
125
-
126
- x is a DOUBLE PRECISION array of length n. It is the solution
127
- vector.
128
-
129
- bl is a DOUBLE PRECISION array of length n. bl(i) is the lower
130
- bound of the i-th variable x(i). If there is no such bound,
131
- set it to be the large negative number -1.0d+20.
132
-
133
- bu is a DOUBLE PRECISION array of length n. bu(i) is the upper
134
- bound of the i-th variable x(i). If there is no such bound,
135
- set it to be the large positive number 1.0d+20.
136
-
137
- c is a DOUBLE PRECISION array of length m. It contains the
138
- general equality and inequality constraint values (it
139
- excludes fixed variables and bound constraints).
140
-
141
- cl is a DOUBLE PRECISION array of length m. cl(i) is
142
- the lower bound of the i-th constraint c(i). If there
143
- is no such bound, set it to be the large negative
144
- number -1.0d+20.
145
-
146
- cu is a DOUBLE PRECISION array of length m. cu(i) is
147
- the upper bound of the i-th constraint c(i). If there
148
- is no such bound, set it to be the large positive
149
- number 1.0d+20.
150
-
151
- equatn is a LOGICAL variable of length m, with equatn(i)
152
- indicating whether the i-th constraint is an equality
153
- constraint or not.
154
-
155
- linear is a LOGICAL variable of length m, with linear(i)
156
- indicating whether the i-th constraint is a linear
157
- constraint or not.
158
-
159
- nnzj is an INTEGER. It is the number of nonzeros in the Jacobian
160
- matrix cjac which contains the gradient of the objective
161
- function f and the constraint gradients in sparse form.
162
-
163
- cjac is a DOUBLE PRECISION array of length nnzj. The first part
164
- contains the nonzero elements of the gradient of the objective
165
- function; the second part contains the nonzero elements of the
166
- Jacobian of the constraints.
167
-
168
- indvar is an INTEGER array of length nnzj. It is the index of the
169
- variables.
170
-
171
- indfun is an INTEGER array of length nnzj. It is the indicator
172
- for the functions. If indfun(i)=0, it refers to the objective
173
- function. If indfun(i)=j, it refers to the j-th constraint.
174
-
175
- indfun(i) and indvar(i) determine the row number
176
- and the column number respectively of nonzero Jacobian
177
- element cjac(i).
178
-
179
- lambda is a DOUBLE PRECISION array of length m+n containing the
180
- Lagrange multiplier estimates. The first m components hold
181
- the multipliers for the general constraints and the last
182
- n components hold the multipliers for the bounds.
183
- The Lagrangian function (excluding bounds) is
184
-
185
- L(x, lambda) = f(x) + lambda*c(x).
186
-
187
- nnz_W is an INTEGER variable denoting the number of nonzero
188
- elements in the upper triangle of the Hessian of the
189
- Lagrangian function.
190
-
191
- W is a DOUBLE PRECISION array of dimension nnz_W containing the
192
- Hessian of the Lagrangian in sparse form:
193
-
194
- W = nabla^2_{xx} f(x) + lambda*nabla^2_{xx} c(x)
195
-
196
- Only the upper triangle is stored.
197
-
198
- W_row is an INTEGER array of length nnz_W. W_row(i) stores
199
- the row number of the nonzero element W(i).
200
-
201
- W_col is an INTEGER array of length nnz_W. W_col(i) stores the
202
- column number of the nonzero element W(i).
203
-
204
- vector is a DOUBLE PRECISION array of dimension n which is only
205
- used if the user is providing a subroutine for computing
206
- exact Hessian-vector products (option ispecs(4)=5). In
207
- this case, on return from subroutine knitros vector holds
208
- the vector which will be multiplied by the Hessian and on
209
- re-entry vector must hold the desired Hessian-vector product.
210
-
211
- ispecs is an INTEGER array of length 10 which holds the integer
212
- user options.
213
- See the User's Manual for more detail.
214
-
215
- dspecs is a DOUBLE PRECISION array of length 10 which holds the
216
- double precision user options.
217
- See the User's Manual for more detail.
218
-
219
- lspecs is a LOGICAL array of length 10 which holds the
220
- logical user options.
221
- See the User's Manual for more detail.
222
-
223
- info is an INTEGER variable which indicates the exit status.
224
- info = 0: termination without error
225
- < 0: termination with an error
226
-
227
- liwork is an INTEGER variable which gives the length of the
228
- integer work array, iwork.
229
-
230
- iwork is an INTEGER array of length liwork which is used
231
- as an integer work vector.
232
-
233
- lwork is an INTEGER variable which gives the length of the
234
- real work array, work.
235
-
236
- work is an DOUBLE PRECISION array of length lwork which is used
237
- as a real work vector.
238
-
239
- minwork is an INTEGER variable which gives some information
240
- about the minimum work array sizes needed when these
241
- arrays are too small.
242
-
243
- info = -48: minwork gives minimum value for liwork
244
- info = -49: minwork gives minimum value for lwork
245
-
246
- status is an INTEGER which keeps track of the reverse
247
- communication status. On initial entry status must
248
- be set to 0.
249
-
250
- --------------------------------------------------------------
251
- END OF THE DESCRIPTION OF THE VARIABLES IN KNITRO
252
- --------------------------------------------------------------
253
-
0 commit comments