YimingYAN / pipm-lp

Perturbed Interior Point Method for LP

Home Page:www.yimingyan.net/pipm-lp/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Perturbed Interior Point Method (PIPM)

An infeasible primal-dual path-following Interior Point Method (IPM) with controlled perturbations for Linear Programming (LP). The use of controlled perturbations improves active-set prediction capabilities of IPMs for LP.

!!!Before Start!!!

In Unix, add the /path/to/thirdParty/lp_solve/src to LD_LIBRARY_PATH

In Windows, add the \path\to\thirdParty\lp_solve\bin\win64 to system environment variable PATH

The main solver PIPM (/src/pipm.m) only accepts LP problems in the standard form, i,e,

        min c'*x s.t. Ax = b, x>=0.        

The future version may also accept QP problems, but currently it has not been implemented.

Syntax:

        p = pipm( A, b, c);             p.solve;
        p = pipm( A, b, c, options);    p.solve;

Input:

        (A,b,c) - problem data
        options - struct, optional input, controlling all parameters
        	.maxIter        Maximum number of iterations allowed
                            Default value 100
        	                
        	.tol            Convergence tolerance
                            Default value 1e-06
        	                
        	.mu_cap         Threshold value for mu
        	                Default value 1e-03
        	                
        	.cutoff         Threshold value for cutoff
        	                Default value 1e-05
        	                
        	.iPer           Initial perturbations
                            Default value 1e-02
                                
        	.actvPredStrtgy Active-set prediction strategy
                            Default value 'conservCutoff'
                     		'conservCutoff' - cutoff
                     		'conservIdFunc' - identification function
                     		'conservIndica' - indicators

        	.doCrossOver 	Controls whether or not perform crossover to
                    		simplex after ipm iterations.
                    		Default value 1
                          	0 - No
                          	1 - Yes

        	.verbose        Controls how much information to display.
                            Default value 2
                 	        0   - Nothing
                          	1   - Only optimal information
                          	2   - Iterative information
                          	>=3 - All information

PIPM as normal infeasible primal-dual path-following IPM:

        options.iPer = 0;               % No perturbations
        options.doCrossOver = 0;        % Disable crossover to simplex
        options.mu_cap = 1e-09;         % Push duality gap to sufficiently small
        
        p = pipm( A, b, c, options);
        p.solve;

Example:

Please see examples.m in folder Examples

Author:

Yiming Yan @ University of Edinburgh

Reference:

Coralia Cartis and Yiming Yan, Active-set prediction for interior point methods using controlled perturbations, submitted, April 2014


Have Fun! :)

Yiming Yan, University of Edinburgh

April 15, 2014

About

Perturbed Interior Point Method for LP

www.yimingyan.net/pipm-lp/

License:BSD 2-Clause "Simplified" License


Languages

Language:MATLAB 61.1%Language:C 36.6%Language:HTML 2.3%