Computer Codes

Besides theoretical studies, Dr. Lan has a strong interest in computation and implementation. He had worked on the development of commercial firmware and SDK (software development kit) from 2000-2002 in Trident. He is currently developing codes for optimization and pursuing their applications in large-scale data analysis. Below is an incomplete list of computer programs written by Dr. Lan and/or his student co-authors, which can be downloaded for free for academic purposes. Please contact george.lan@nullisye.gatech.edu if there exist any problems.

1. SCPTool – an efficient algorithm for solving unicost and non-unicost set covering problems (SCP) (updated in 2004). 

2. StochApp – a set of codes implementing mirror-descent stochastic approximation for stochastic optimization (updated in 2007,2008).

  • Main programmer: Guanghui Lan.
  • Language and complier: C, Microsoft Visual Studio, and MATLAB.
  • Source code:
    • Click here to download the source code for the expected utility problem.
    • Click here to download the source code for the expected maximum flow problem.
    • Click here to download the source code for the conditional value at risk problem.
  • Publications: (1) A. Nemirovski, A.Juditsky, G. Lan, and A. Shapiro, “Robust stochastic approximation approach to stochasticprogramming“, SIAM Journal on Optimization 19 (2009), 1574-1609, and (2) G. Lan, A. Nemirovski, and A. Shapiro, “Validation analysis of mirror descent stochastic approximation method“, Mathematical Programming, 134 (2), 2012, 425-458.
  • Notes: In order to run the code, please compile the C code, save the binary file, and run it together with the Matlab interface in RunExp.m. Instances can be generated using the tool. Some sample instances can be downloaded here: (1) utility instances, (2) maximum flow instances, and (3) CVaR Instances.

3. PDFirst – a primal-dual first-order method for semidefinite programming (updated in 2007).

4. AC-SA – accelerated stochastic approximation for stochastic optimization (updated in 2010).

5. APL – a set of codes implementing the accelerated prox-level and uniform smoothing level methods (updated in 2012).

  • Main programmer: Guanghui Lan.
  • Language: MATLAB.
  • Source code:
    • Click here to download the code for solving the maximum eigenvalue problem.
    • Click here to download the code for solving the Lovasz capacity problem.
    • Click here to download the code for solving two-stage stochastic linear programming problems.
  • Publication: G. Lan, “Bundle-level type methods uniformly optimal for smooth and nonsmooth convex optimization“, Mathematical Programming, accepted for publication, Oct. 4, 2013.
  • Notes: You can run these programs by using the MATLAB interface in RunExp.m. Instances can be generated by using the tool. Some test instances are provided here: (1) Eigenvalue instances and (2) Lovasz instances. Observe that the stochastic programming instances are included in the source code.

6. Noncovex-SA – randomized stochastic gradient method for nonconvex stochastic optimization (Updated in 2012, 2013).

7. LCP – Linear-optimization-based convex programming methods (updated in 2013).

  • Main programmer: Guanghui Lan.
  • Language: MATLAB.
  • Source code: click here.
  • Publication: G. Lan, “The Complexity of Large-scale Convex Programming under a Linear Optimization Oracle“, technical report, Department of Industrial and Systems Engineering, University of Florida, June 2, 2013 (submitted for publication).
  • Notes: You can run these programs by using the MATLAB interface in RunExp.m. The instances can be generated using this tool and some test instances can be found here.

8. APD – Accelerated primal-dual method for saddle-point problems (updated in 2013).

  • Main programmer: Yuyuan Ouyang.
  • Language: MATLAB.
  • Source code: click here.
  • Publication: Y. Chen, G. Lan, and Y. Ouyang, “Optimal Primal-Dual Methods for a Class of Saddle Point Problems“, technical report, Department of Industrial and Systems Engineering, University of Florida, revision submitted to  SIAM Journal on Optimization, December 9th, 2013.

9. SBMD – Stochastic block mirror-descent methods (updated in 2014).

10. FAPL – Fast APL method (updated in 2014).