Discrete constrained search (DCS) is a software package for finding constrained global minima (CGM) in the discrete variable space of a single-objective discrete constrained nonlinear programming problem (NLP), with no assumptions on the differentiability and continuity of the objective and constraint functions. NLPs with continuous variable are also solvable using discretized variables.
The method is based on the necessary and sufficient condition for constrained local minima (CLM) in the theory of discrete constrained optimization using Lagrange multipliers developed in our group. The theory proves a one-to-one correspondence between CLM and points satisfying the saddle-point condition in discrete variable space, leading to the first-order necessary and sufficient condition for CLM. Using the theory, a search for CLM is greatly simplified by looking for points that satisfy the saddle-point condition in discrete space, rather than solving the original constrained optimization problem. More information on the theory and applications can be found at our Web site
The current implementation calls a basic solver, using a small amount of allocated time. If the search succeeds to find a CGM, then the process terminates. Otherwise, the time allocated is doubled, and the basic solver is repeated using the extended allocated time. By using iterative deepening, it can be proved that the time to find a CGM is no more than twice the best time to find such a solution.
Each basic solver looks for saddle points in discrete space in the time allocated and differs only in its mechanism of generating and selecting candidate probes. There are three basic solvers available:
Prepare your inputs according to the following instructions and submit your job.
Step 1: Prepare your problem in AMPL format
DCS supports AMPL, A Modeling Language for Mathematical Programming, as the problem input format. Check AMPL homepage for a detailed description of this modeling language. A problem is typically specified by a model file (.mod) and a data file (.dat). Alternatively, you can specify a problem using only a single model file.
Due to limitations in AMPL in modeling arbitrary discrete variables, our current implementation can only solve problems with continuous variables (by discretizing them), without assuming the differentiability and continuity of functions. We are trying to find a work-around in AMPL to model discrete variables at this time.
Here are some sample problems with continuous variables in AMPL you can copy and input:
Problem ID | Model File | Data File | Problem Description | Best Solution Found | Tcsa | Tcga | Tcsaga |
ODFIT | odfits.mod | N/A | from CUTE benchmark suite | -2380.0 | 102.63 | >400 | 32.92 |
S232 | s232.mod | N/A | from Schittkowski's suite | -1.0 | 0.89 | 1.09 | 16.89 |
P2.1 | 2.1.mod | 2.1.dat | from Floudas and Pardalos' suite | -17.0 | 0.50 | 5.92 | 0.50 |
P2.7.1 | 2.7.1.mod | 2.7.1.dat | from Floudas and Pardalos' suite | -394.75 | 27.06 | 155.38 | 8.23 |
G1 | G1.mod | G1.dat | from EA programming | -15.0 | 0.56 | 5.04 | 0.59 |
NET2 | net2.mod | net2.dat | a transportation networking problem | -1819.0 | 0.25 | 3.67 | 0.18 |
Please input your constrained single-objective NLP in AMPL below: