library(solvers)

Well Conditioned Problems

p = 5

set.seed(34)
d <- randomProblem(100, 5, response="multinomial", density = 1, rho=0)
f <- getBenchmarks(d$x, d$y, family="multinomial", path_length = 20)
#> [1] "Time taken by FISTA        :  1.853665006"
#> [1] "Time taken by ADMM(NR)     :  3.745016574"
#> [1] "Time taken by ADMM(BFGS)   :  5.837229721"
#> [1] "Time taken by ADMM(L-BFGS) :  4.553515084"
#> [1] "Time taken by PN           :  1.57089659"
d <- randomProblem(500, 5, response="multinomial", density = 1, rho=0)
f <- getBenchmarks(d$x, d$y, family="multinomial", path_length = 20)
#> [1] "Time taken by FISTA        :  13.346932571"
#> [1] "Time taken by ADMM(NR)     :  27.263230018"
#> [1] "Time taken by ADMM(BFGS)   :  44.336538346"
#> [1] "Time taken by ADMM(L-BFGS) :  41.30133094"
#> [1] "Time taken by PN           :  2.096327075"

p = 10

d <- randomProblem(100, 10, response="multinomial", density = 1, rho=0)
f <- getBenchmarks(d$x, d$y, family="multinomial", path_length = 20)
#> [1] "Time taken by FISTA        :  106.103993092"
#> [1] "Time taken by ADMM(NR)     :  802.431320217"
#> [1] "Time taken by ADMM(BFGS)   :  737.292240096"
#> [1] "Time taken by ADMM(L-BFGS) :  338.086450761"
#> [1] "Time taken by PN           :  325.333275858"
d <- randomProblem(500, 10, response="multinomial", density = 1, rho=0)
f <- getBenchmarks(d$x, d$y, family="multinomial", path_length = 20)
#> [1] "Time taken by FISTA        :  18.987893191"
#> [1] "Time taken by ADMM(NR)     :  36.866257499"
#> [1] "Time taken by ADMM(BFGS)   :  52.435430753"
#> [1] "Time taken by ADMM(L-BFGS) :  45.571310023"
#> [1] "Time taken by PN           :  3.609712363"

Badly Conditioned Problems

p = 5

d <- randomProblem(100, 5, response="multinomial", density = 1, rho=0.95)
f <- getBenchmarks(d$x, d$y, family="multinomial", path_length = 20)
#> [1] "Time taken by FISTA        :  5.287242492"
#> [1] "Time taken by ADMM(NR)     :  26.50097234"
#> [1] "Time taken by ADMM(BFGS)   :  35.139391136"
#> [1] "Time taken by ADMM(L-BFGS) :  28.082348132"
#> [1] "Time taken by PN           :  12.03612657"
d <- randomProblem(500, 5, response="multinomial", density = 1, rho=0.95)
f <- getBenchmarks(d$x, d$y, family="multinomial", path_length = 20)
#> [1] "Time taken by FISTA        :  22.216985921"
#> [1] "Time taken by ADMM(NR)     :  20.878476109"
#> [1] "Time taken by ADMM(BFGS)   :  48.156532954"
#> [1] "Time taken by ADMM(L-BFGS) :  50.155626149"
#> [1] "Time taken by PN           :  1.86129113"

p = 10

d <- randomProblem(100, 10, response="multinomial", density = 1, rho=0.95)
f <- getBenchmarks(d$x, d$y, family="multinomial", path_length = 20)
#> [1] "Time taken by FISTA        :  9.460831656"
#> [1] "Time taken by ADMM(NR)     :  55.589471775"
#> [1] "Time taken by ADMM(BFGS)   :  86.200082589"
#> [1] "Time taken by ADMM(L-BFGS) :  49.227784736"
#> [1] "Time taken by PN           :  26.935635683"
d <- randomProblem(500, 10, response="multinomial", density = 1, rho=0.95)
f <- getBenchmarks(d$x, d$y, family="multinomial", path_length = 20)
#> [1] "Time taken by FISTA        :  45.56121687"
#> [1] "Time taken by ADMM(NR)     :  73.630136322"
#> [1] "Time taken by ADMM(BFGS)   :  122.729248304"
#> [1] "Time taken by ADMM(L-BFGS) :  139.571450222"
#> [1] "Time taken by PN           :  7.102045254"