Parallel C implementation of a mixing-method variant solving the basic SDP relaxation of semi-supervised support vector machine (S3VM) models, including variable bound computations.
This repository contains (uncensored) research code and is a follow-up project of the following paper:
“Optimization meets machine learning: an exact algorithm for semi-supervised support vector machines”
Veronica Piccialli, Jan Schwiddessen, Antonio M. Sudoso
Journal: Mathematical Programming (Series B), 2024 - DOI: 10.1007/s10107-024-02175-z
The main idea is to solve the basic SDP relaxation of S3VM models by using a variant of the mixing method. The algorithm and further details will be discussed in my upcoming PhD thesis.
- Applicable to very large-scale S3VM models
- Efficient, robust, and parallel computation of variable bound constraints
- Exploitation of low-rank SDP solutions
Make sure that OpenBLAS is installed on your system. It is recommended to use a single-threaded version of OpenBLAS since the variable bound computation already is parallelized using OpenMP.
To compile the code, do the following:
mkdir obj
cd src
makeTo then run the code, do the following:
cd ../bin
./s3vm_mixing parameters.txtAll parameters of the S3VM model, the instance file, and the number of threads for OpenMP must be set in the file "parameters.txt".