Intersection of convex sets¶
We apply relaxed PRS to find the intersection of two convex sets. The problem can be modeled as the following optimization problem
\[\min_x \iota_{\|x\|_2 \leq 1}(x) + \iota_{\|x\|_\infty \leq 0.1} (x)\]
where \(\iota_S (x)\) is the indicator function of the set S. We apply the TMAC with the Peaceman-Rachford splitting operator. To ensure coordinate friendly, We first apply the projection operator to the \(\ell_2\) ball, then we apply the projection to the \(\ell_{\infty}\) ball.
Usage¶
In the bin folder, the executable file tmac_prs_demo
solves the above problem.
The usage for tmac_prs_demo is:
./tmac_prs_demo [options] -nthread < total number of threads, default: 1. > -epoch < total number of epochs, default: 10. > -problem_size < the dimension of the problem, default: 0 >
Example¶
You can run the following command in the test directory to solve the l1 regularized least square problem for the large dense dataset:
./bin/tmac_prs_demo -epoch 100 -nthread 2 -problem_size 100
You can expect to get output similar to the following:
Parameter settings:
---------------------------------
Problem size: 100
TMAC step size: 0.9
Operator step size: 0
Use controller: false
---------------------------------
Computing time is: 0.00682497
---------------------------------
||x||_2 =: 0.590442
||x||_inf =: 0.0994609
---------------------------------