Skip to content

Parallel C implementation of a mixing-method variant solving the basic SDP relaxation of semi-supervised support vector machine (S3VM) models, plus variable-bound tightening.

License

Notifications You must be signed in to change notification settings

jschwiddessen/s3vm-mixing-c

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Solving large-scale semi-supervised support vector machine (S3VM) models

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

DOI (journal) arXiv

Idea

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.

Features

  • Applicable to very large-scale S3VM models
  • Efficient, robust, and parallel computation of variable bound constraints
  • Exploitation of low-rank SDP solutions

How to run the code

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
make

To then run the code, do the following:

cd ../bin
./s3vm_mixing parameters.txt

All parameters of the S3VM model, the instance file, and the number of threads for OpenMP must be set in the file "parameters.txt".

About

Parallel C implementation of a mixing-method variant solving the basic SDP relaxation of semi-supervised support vector machine (S3VM) models, plus variable-bound tightening.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published