library(solvers)

Well Conditioned Problems

p = 10

set.seed(34)
d <- randomProblem(100, 10, response="gaussian", density = 1, rho=0)
f <- getBenchmarks(d$x, d$y, family="gaussian", path_length = 20)
#> [1] "Time taken by FISTA        :  0.0390623"
#> [1] "Time taken by ADMM(NR)     :  0.010360748"
#> [1] "Time taken by ADMM(BFGS)   :  0.054717748"
#> [1] "Time taken by ADMM(L-BFGS) :  0.024164405"
#> [1] "Time taken by PN           :  0.038913219"
d <- randomProblem(1000, 10, response="gaussian", density = 1, rho=0)
f <- getBenchmarks(d$x, d$y, family="gaussian", path_length = 20)
#> [1] "Time taken by FISTA        :  0.626514011"
#> [1] "Time taken by ADMM(NR)     :  0.068973266"
#> [1] "Time taken by ADMM(BFGS)   :  0.328811031"
#> [1] "Time taken by ADMM(L-BFGS) :  0.242466001"
#> [1] "Time taken by PN           :  0.122689705"

p = 20

d <- randomProblem(1000, 20, response="gaussian", density = 1, rho=0)
f <- getBenchmarks(d$x, d$y, family="gaussian", path_length = 20)
#> [1] "Time taken by FISTA        :  3.297820426"
#> [1] "Time taken by ADMM(NR)     :  0.23418935"
#> [1] "Time taken by ADMM(BFGS)   :  0.823408494"
#> [1] "Time taken by ADMM(L-BFGS) :  0.477179239"
#> [1] "Time taken by PN           :  0.356981569"

p = 50

d <- randomProblem(1000, 50, response="gaussian", density = 1, rho=0)
f <- getBenchmarks(d$x, d$y, family="gaussian", path_length = 20)
#> [1] "Time taken by FISTA        :  12.69413927"
#> [1] "Time taken by ADMM(NR)     :  1.387236521"
#> [1] "Time taken by ADMM(BFGS)   :  3.739330278"
#> [1] "Time taken by ADMM(L-BFGS) :  1.544153468"
#> [1] "Time taken by PN           :  1.396404148"

Badly Conditioned Problems

p = 10

d <- randomProblem(100, 10, response="gaussian", density = 1, rho=0.95)
f <- getBenchmarks(d$x, d$y, family="gaussian", path_length = 20)
#> [1] "Time taken by FISTA        :  0.418168151"
#> [1] "Time taken by ADMM(NR)     :  0.1232496"
#> [1] "Time taken by ADMM(BFGS)   :  0.33958594"
#> [1] "Time taken by ADMM(L-BFGS) :  0.334840953"
#> [1] "Time taken by PN           :  0.057593422"
d <- randomProblem(1000, 10, response="gaussian", density = 1, rho=0.95)
f <- getBenchmarks(d$x, d$y, family="gaussian", path_length = 20)
#> [1] "Time taken by FISTA        :  10.038454837"
#> [1] "Time taken by ADMM(NR)     :  0.780515271"
#> [1] "Time taken by ADMM(BFGS)   :  2.232755155"
#> [1] "Time taken by ADMM(L-BFGS) :  2.782838243"
#> [1] "Time taken by PN           :  0.081672767"

p = 20

d <- randomProblem(1000, 20, response="gaussian", density = 1, rho=0.95)
f <- getBenchmarks(d$x, d$y, family="gaussian", path_length = 20)
#> [1] "Time taken by FISTA        :  17.749941796"
#> [1] "Time taken by ADMM(NR)     :  2.321580425"
#> [1] "Time taken by ADMM(BFGS)   :  4.503585435"
#> [1] "Time taken by ADMM(L-BFGS) :  5.902091478"
#> [1] "Time taken by PN           :  0.307897772"

p = 50

d <- randomProblem(1000, 50, response="gaussian", density = 1, rho=0.95)
f <- getBenchmarks(d$x, d$y, family="gaussian", path_length = 20)
#> [1] "Time taken by FISTA        :  49.862108574"
#> [1] "Time taken by ADMM(NR)     :  14.136379629"
#> [1] "Time taken by ADMM(BFGS)   :  16.907867092"
#> [1] "Time taken by ADMM(L-BFGS) :  24.617191667"
#> [1] "Time taken by PN           :  1.156759619"