Git Product home page Git Product logo

scs's Introduction

R interface to the Splitting Conic Solver (SCS)

Control Arguments

Parameter Default Value Type Description
max_iters 100000 integer maximum number of iterations
eps_rel 1e-04 numeric relative feasibility tolerance
eps_abs 1e-04 numeric absolute feasibility tolerance
eps_infeas 1e-07 numeric Infeasibility tolerance (primal and dual)
alpha 1.5 numeric Douglas-Rachford relaxation parameter
rho_x 1e-06 numeric Primal scale factor
scale 0.1 numeric Initial dual scale factor, updated if adaptive_scale is True
verbose FALSE boolean Write out progress
normalize TRUE boolean Whether to perform heuristic data rescaling
warm_start FALSE boolean Whether to warm start
acceleration_lookback 0 integer How much memory to use for Anderson acceleration
acceleration_interval 1 integer Run Anderson acceleration every this number of iterations
adaptive_scale TRUE boolean Whether to heuristically adapt dual scale through the solve
log_csv_filename string If non NULL SCS will write logs of quantities through the solver (ignored)
time_limit_secs 0 numeric Time limit for solve run in seconds (can be fractional, 0 implies no limit
write_data_filename string If non NULLset the problem data is dumped to this filename (ignored)

Reference

  • O'Donoghue Brendan, Chu Eric, Parikh Neal, Boyd Stephen (2016). Operator Splitting for Conic Optimization via Homogeneous Self-Dual Embedding. Journal of Optimization Theory and Applications 169(3), 1042-1068. URL https://doi.org/10.1007/s10957-016-0892-3.

scs's People

Contributors

bnaras avatar florianschwendinger avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

scs's Issues

no output from verbose option. Scs problem or cvxr ? or else?

Hello, thank you for the great work!
(first GitHub post of my life :)

  • Under plain R, when I call scs like this solut2 = psolve( prob1,verbose=FALSE,solver="SCS",max_iters=20000,warm_start=FALSE)

I do not get any output such as (from an Rstudio session) ….

----------------------------------------------------------------------------
	SCS v2.1.1 - Splitting Conic Solver
	(c) Brendan O'Donoghue, Stanford University, 2012
----------------------------------------------------------------------------
Lin-sys: sparse-direct, nnz in A = 6015
eps = 1.00e-005, alpha = 1.50, max_iters = 20000, normalize = 1, scale = 1.00
acceleration_lookback = 10, rho_x = 1.00e-003
Variables n = 505, constraints m = 1011
Cones:	linear vars: 1011
Setup time: 1.22e-003s
----------------------------------------------------------------------------
 Iter | pri res | dua res | rel gap | pri obj | dua obj | kap/tau | time (s)
----------------------------------------------------------------------------
     0|3.82e+020 2.01e+020 1.00e+000 -1.74e+023 1.52e+020 3.51e+023 9.52e-005 
   100|6.81e-003 1.52e-002 2.25e-003 8.29e+001 8.25e+001 9.14e-014 4.24e-002 
   200|1.08e-003 3.81e-003 6.66e-004 8.28e+001 8.27e+001 1.01e-013 8.31e-002 
….

  • and especially not error metrics such as
----------------------------------------------------------------------------
Status: Solved
Timing: Solve time: 1.24e+000s
	Lin-sys: nnz in L factor: 10041, avg solve time: 1.85e-005s
	Cones: avg projection time: 5.81e-007s
	Acceleration: avg step time: 3.90e-004s
----------------------------------------------------------------------------
Error metrics:
dist(s, K) = 1.5322e-015, dist(y, K*) = 0.0000e+000, s'y/|s||y| = 2.7636e-016
primal res: |Ax + s - b|_2 / (1 + |b|_2) = 1.4158e-006
dual res:   |A'y + c|_2 / (1 + |c|_2) = 7.6361e-006
rel gap:    |c'x + b'y| / (1 + |c'x| + |b'y|) = 1.0912e-006
----------------------------------------------------------------------------
c'x = 82.6803, -b'y = 82.6805
============================================================================
  • Under Rstudio the printout hangs in the middle. But I can get it (eventually) by calling the solver again (such as see below, from Rstudio console):
  2100|2.22e-005 1.94e-005 5.30e-006 8.27e+001 8.27e+001 1.33e-013 8.69e-001 
  2200|2.11e-005 1.54e-005 8.72e-007 8.27e+001 8.27e+001 3.67e-014 9.17e-001 
  2300|2.05e-005 1.29e-005 5.29e-007 8.27e+001 8.27e+001 5.05e-014 9.64e-001 
  
> solut2	=	psolve( prob1,verbose=FALSE,solver="SCS",max_iters=20000,warm_start=FALSE)	
> 
> solut2	=	psolve( prob1,verbose=FALSE,solver="SCS",max_iters=20000,warm_start=FALSE)	
> 
> solut2	=	psolve( prob1,verbose=TRUE,solver="SCS",max_iters=20000,warm_start=FALSE)	
2400|2.30e-002 1.72e-002 2.69e-004 8.26e+001 8.27e+001 2.33e-014 1.01e+000 
  2500|1.82e-005 1.50e-005 6.01e-006 8.27e+001 8.27e+001 1.65e-014 1.06e+000 
  2600|2.20e-005 1.80e-005 3.31e-007 8.27e+001 8.27e+001 7.10e-014 1.12e+000 
  2700|2.71e-005 1.34e-004 3.20e-006 8.27e+001 8.27e+001 1.36e-014 1.16e+000 
  2800|6.47e-006 1.41e-005 5.42e-007 8.27e+001 8.27e+001 5.70e-014 1.20e+000 
  2900|1.42e-006 7.64e-006 1.09e-006 8.27e+001 8.27e+001 7.07e-014 1.24e+000 
----------------------------------------------------------------------------
Status: Solved
Timing: Solve time: 1.24e+000s
	Lin-sys: nnz in L factor: 10041, avg solve time: 1.85e-005s
	Cones: avg projection time: 5.81e-007s
	Acceleration: avg step time: 3.90e-004s
----------------------------------------------------------------------------
Error metrics:
dist(s, K) = 1.5322e-015, dist(y, K*) = 0.0000e+000, s'y/|s||y| = 2.7636e-016
primal res: |Ax + s - b|_2 / (1 + |b|_2) = 1.4158e-006
dual res:   |A'y + c|_2 / (1 + |c|_2) = 7.6361e-006
rel gap:    |c'x + b'y| / (1 + |c'x| + |b'y|) = 1.0912e-006
----------------------------------------------------------------------------
c'x = 82.6803, -b'y = 82.6805
============================================================================
  • Session info for the plain R session.
> sessionInfo()
R version 3.6.1 (2019-07-05)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 17763)
….
other attached packages:
 [1] scs_1.3-2         CVXR_0.99-7       tidyr_1.0.0       dplyr_0.8.3       tibble_2.1.3      R.utils_2.9.0     R.oo_1.23.0       R.methodsS3_1.7.1 stringr_1.4.0     Matrix_1.2-17    

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.3       magrittr_1.5     bit_1.1-14       tidyselect_0.2.5 lattice_0.20-38  R6_2.4.1         rlang_0.4.2      tools_3.6.1      grid_3.6.1       bit64_0.9-7      assertthat_0.2.1 lifecycle_0.1.0 
[13] crayon_1.3.4     gmp_0.5-13.5     ECOSolveR_0.5.3  purrr_0.3.3      vctrs_0.2.0      zeallot_0.1.0    glue_1.3.1       stringi_1.4.3    Rmpfr_0.7-2      compiler_3.6.1   pillar_1.4.2     backports_1.1.5 
[25] pkgconfig_2.0.3 
> 

I cannot be sure this is due to scs as opposed to CVXR.. what do you think?
Best regards, let me know if I can help.

non-portable flag "-Wwrite-strings"

Dear maintainer,

package scs_3.2.3.tar.gz does not pass the incoming checks automatically, please see the following pre-tests:
Windows: https://win-builder.r-project.org/incoming_pretest/scs_3.2.3_20230411_110315/Windows/00check.log
Status: OK
Debian: https://win-builder.r-project.org/incoming_pretest/scs_3.2.3_20230411_110315/Debian/00check.log
Status: 1 NOTE

Last released version's CRAN status: NOTE: 12, WARNING: 2
See: https://CRAN.R-project.org/web/checks/check_results_scs.html

CRAN Web: https://cran.r-project.org/package=scs

Please fix all problems and resubmit a fixed version via the webform.
If you are not sure how to fix the problems shown, please ask for help on the R-package-devel mailing list:
https://stat.ethz.ch/mailman/listinfo/r-package-devel
If you are fairly certain the rejection is a false positive, please reply-all to this message and explain.

More details are given in the directory:
https://win-builder.r-project.org/incoming_pretest/scs_3.2.3_20230411_110315/
The files will be removed after roughly 7 days.

*** Strong rev. depends ***: CVXR ROI.plugin.scs

Best regards,
CRAN teams' auto-check service

Flavor: r-devel-linux-x86_64-debian-gcc, r-devel-windows-x86_64
Check: CRAN incoming feasibility, Result: Note_to_CRAN_maintainers
Maintainer: 'Florian Schwendinger [email protected]'

Flavor: r-devel-linux-x86_64-debian-gcc
Check: compilation flags used, Result: NOTE
Compilation used the following non-portable flag(s):
'-Wwrite-strings'

Update to support SCS 3.0

Hi Florian,

The new version of SCS I'm about to release is overall much faster and more reliable, as well as supporting quadratics in the objective natively (and other new features).

The SCS 3.0 PR is here: cvxgrp/scs#169

If you have any spare cycles it also would be great to have your input on the website, in particular the R API, install instructions, and an example or two. The website would name you as the maintainer of the API of course.

Current API page here: https://www.cvxgrp.org/scs/api/index.html#interfaces

Here is the website source: https://github.com/cvxgrp/scs/tree/3.0.0/docs/src

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.