This is a meta-package designed to support the installation of Rmosek (>= 6.0) and bring the optimization facilities of MOSEK (>= 6.0) to the R-language. The interface supports large-scale optimization of many kinds: Mixed-integer and continuous linear, second-order cone, exponential cone and power cone optimization, as well as continuous semidefinite optimization. Rmosek and the R-language are open-source projects. MOSEK is a proprietary product, but unrestricted trial and academic licenses are available.
CHANGES IN Rmosek VERSION 1.3.4:
Improvements in documentation.
CHANGES IN Rmosek VERSION 1.3.3:
Simplified configuration of the MOSEK library name in 'install.rmosek' and 'update.rmosek'.
CHANGES IN Rmosek VERSION 1.3.2:
Added warning when restarts of the R session is necessary. Small updates in the documentation of exported objects.
CHANGES IN Rmosek VERSION 1.3.1:
Added exported objects: 'mosek', 'mosek_clean', 'mosek_version', 'mosek_read' and 'mosek_write'. This allows derived works, depending on Rmosek functionality, to pass the CRAN tests.
CHANGES IN Rmosek VERSION 1.3.0:
Changed the 'Rmosek' package on CRAN to a generic metapackage that can help users setup an appropriate interface for the installed version of MOSEK. This replaces the previous package that only worked with MOSEK 6.0 (obsolete since 2015), which will remain available via install.packages using:
repos = "download.mosek.com/R/6.0"
CHANGES IN Rmosek VERSION 1.2.5:
Fixed unintended compilation warnings on windows.. Small updates in userguide and function manual..
CHANGES IN Rmosek VERSION 1.2.4:
* Quadratic optimization. Added problem item 'qobj' to allow the input of a symmetric matrix Q, adding 1/2 x^T Q x to the objective function. Dimensions known from x, so only triplets 'i', 'j' and 'v' for the lower triangular part of the symmetric matrix are set. E.g. prob$qobj <- list(i=c(1,2,2), j=c(1,1,2), v=c(2,1,2))
CHANGES IN Rmosek VERSION 1.2.3: Based on rev.107.
Bug and portability fixing release..
CHANGES IN Rmosek VERSION 1.2.2: Based on rev.98.
* Linear optimization. Far more matrices from package 'Matrix' are now allowed as input variable 'A'. Only compressed column sparse (CSC) and coordinate/triplet (COO) formats are supported in C/C++; others will be converted with warning indicating bad performace. * Separable convex optimization. Added validation of variable bounds. Warnings are now issued for each non-safe bound which could cause unexpected termination. * Separable convex optimization. Added simple check for disciplined convexity. Information items are issued for each violation, followed by a single warning message. Note that a problem can easily be convex and solvable, even if it is not disciplined convex.
CHANGES IN Rmosek VERSION 1.2.1: Based on rev.92.
* Optimizer summary added to function mosek. Solution and optimizer summaries are now only shown when option 'verbose' is >=4.
* Solution item 'skn' holding conic constraint status keys, added to conic optimization problems. * Option 'soldetail' added to function mosek. = 0 is default. = 1 adds solution items 'pobjval' + 'dobjval' to ITR and BAS, and 'pobjval' + 'pobjbound' to INT. Note that 'pobjbound' may be NA if no relaxation have been used to solve the problem. = 2 adds solution item 'maxinfeas' with maximal infeasibilities. * Option 'getinfo' added to functions mosek, mosek_read and mosek_write. = FALSE is default. = TRUE adds 'dinfo' and 'iinfo' structures to returned value list. dinfo items are extracted from MSK_DINF_*. iinfo items are extracted from MSK_IINF_* and MSK_LIINF_*.
CHANGES IN Rmosek VERSION 1.2: Based on rev.86.
SIGNIFICANT USER-VISIBLE CHANGES:
* Linear optimization. The arguments prob$blx and prob$bux have been replaced by prob$bx. This new argument is a numeric-typed matrix with two rows, and can be transformed from previous format with: rBind(blx=prob$blx, bux=prob$bux); * Linear optimization. The arguments prob$blc and prob$buc have been replaced by prob$bc. This new argument is a numeric-typed matrix with two rows, and can be transformed from previous format with: rBind(blc=prob$blc, buc=prob$buc); * Second-order cone optimization. The type of prob$cones have changed from a list to a list-typed matrix. The new format can be pre-allocated as: matrix(list(), nrow=2, ncol=NUMCONES, dimnames=list(c("type","sub"),c())) The old format can be transformed to the new format with: matrix(unlist(prob$cones, recursive=FALSE), nrow=2, dimnames=list(c("type","sub"),c()))
* Separable convex optimization. Adding the field prob$scopt in the problem description, separable convex operators can be added to the objective using prob$scopt$opro and to the constraints using prob$scopt$oprc. - The 'opro' is a LIST MATRIX and can be pre-allocated as: matrix(list(), nrow=5, ncol=NUMOPRO, dimnames=list(c("type","j","f","g","h"),c())) - The 'oprc' is a LIST MATRIX and can be pre-allocated as: matrix(list(), nrow=6, ncol=NUMOPRC, dimnames=list(c("type","i","j","f","g","h"),c())) * Separable convex optimization. The option 'scofile' have been added to input the filepath to a file holding separable convex operators in a format supported by 'mskscopt' executable in MOSEK. This option is supported by 'mosek_write' and 'mosek_read'. * Linear optimization. Adding the function 'mosek_lptoprob', it is now easy to move from a set of definitions similar to those used by the MATLAB function 'linprog', to a problem description solvable by the 'mosek' function. * Quadratic optimization. Adding the function 'mosek_qptoprob', it is now easy to move from a set of definitions similar to those used by the MATLAB function 'quadprog', to a problem description solvable by the 'mosek' function.
* Chapter "Advanced topics" has been added under which topics that are interesting only to a smaller subset of users, hard to use correctly, or not supported natively by MOSEK will be explained. * Bookmarks and reference-links have been added to ease navigation through the userguide. Most pdf-readers have a shortcut to return focus prior to the click on a link. In Adobe Reader and SumatraPDF: <ALT> + <LEFT>.
CHANGES IN Rmosek VERSION 1.0.2: Based on rev.79.
* With the files COPYING and COPYING.LGPL, we have made it even more explicit that the package is an open source project licensed under the GNU Lesser GPL. This makes it possible to use the package in commercial as well as academic contexts.
* Linear constraint matrix. The 'mosek' function now allows sparse matrices to be specified as a list with fields 'nrow', 'ncol', 'i', 'j' and 'v' (coordinate/triplet format). This format can be used directly and independently of the package 'Matrix'. Furthermore, this format is consistent with sparse matrices from package 'slam'. * Linear constraint matrix. The option 'matrixformat' have been added to allow the 'mosek_read' function to construct sparse matrices in a user-specific fashion. - Value "pkgMatrix:COO" or just "COO". A sparse matrix in coordinate / triplet format from the package 'Matrix'. - Value "pkgMatrix:CSC" or just "CSC". A sparse matrix in compressed sparse column format from the package 'Matrix'. - Value "simple:COO". A sparse matrix in coordinate / triplet format written as a list with fields 'nrow', 'ncol', 'i', 'j' and 'v'.
* Section "Complete Best Practice example" added which explains a proper way to handle errors, response codes and status keys. The focus is on scripts and functions working with Rmosek in a non-interactive way (i.e. without a user validating each step).