CONOPT
Loading...
Searching...
No Matches
ChangeLog

Version 4.37

  • added C++, Python, and Java interfaces and documentation to release builds (for Windows 32bit only C++).
  • made the choice between conjugate gradients and scaled conjugate gradients in the SQPs dynamic based on costs and benefits. costs and benefits are measured. Relevant for models with very many superbasics.

Version 4.36

  • added a C++ interface.
  • added a Python interface.
  • added a Java interface.
  • changed threads default from 1 to 4.
  • changed default of Mtd_Step_Phase0 to -1 (auto).
  • fixed an error where post-triangular variables could go outside their bounds because very small bounds were not transferred to the internal model.
  • fixed system error 10100. Derived bound interval was outside (-inf;+inf) and model is considered infeasible.
  • fixed demo license.

Version 4.35

  • added debugging test: Row copy of U factor must be consistent with column copy. The numerical values were not tested before.
  • A numerical cancellation while updating the row copy of the U factor was not copied correctly to the column copy.
  • reactivated license check.
  • change to GAMS branding.
  • fixed potential crash with multi-threading.

Version 4.34 - May 2024

  • fixed error: If the objective did not appear in a constraint it was not optimized.
  • added option Flg_ForDefC to overwrite default behavior of AttemptCNS.
  • fixed error in preprocessor: a derived bound was lost causing a post-triangular variable to exceed its bound.
  • fixed some multi-threading errors, mainly when the number of threads was large.
  • fixed some errors when CONOPT was called inside a multi-threaded loop.
  • objective was not always defined after function evaluation errors.
  • fixed memory leak in COEAI.
  • fixed harmless case of using uninitialized value.
  • fixed some missing variable initializations.
  • removed option RTMNS2 / Tol_Scale2D_Min.
  • removed some unused code, revise if defined preprocessor switches, added doc/preprocessor_defines.md.

Version 4.33 - March 2024

  • Added missing initialization of Rgfr in MaximalBasis.
  • Fixed upper bound of option Tol_Obj_Acc and parsing of crcells.txt.

Version 4.32 - ???

Revision 1797, 1798, and 1800 to ????

  • Corrections based on CUTEst test models: Classification of linear/nonlinear is done more carefully in preprocessor and IdenticalConstraints are turned off if FVForAll is on. An error in LUFactor when basis is completely dense and all elements are less than pivot tolerance has been fixed; and Dense_Pivot is also used for smaller blocks if very dense.
  • Reset bounds to (-)inf if larger than Lim_Variable.
  • Apply AttemptCNS on preprocessed user model rather than internal model.
  • Extended stopping criteria for AdjustInitialPoint procedure: added checks for number of function/derivative and nonlinear nonzero evaluations, added possibility to take progress in infeasibility reduction into account, added hidden parameters LFAIPH, LFAIPD, LFAIPM, LFAIPR, LFAIPN to control stopping criteria; however, the default behavior has not been changed so far. (see also devel/products!2264)
  • Fixed projection of initial point into bounded interval after linear infeasibility model.
  • Fixed multithreaded Hessian Evaluation when Thread2D < NumThread.
  • Added new API function coiFinalize(). Calling this function will shutdown OpenMP (omp_pause_resource_all()) on Linux. It currently has no effect on other operating systems.

Version 4.31 - September 2023

Start at revision 1753 and ends at 1796 + 1799.

  • Fixed a problem in SQP when a critical bound was infinite. Could give huge steps and domain errors.
  • Changed the logic for improving the conditioning of the basis to fix problems with superbasic slacks: FindMaxPivot is now only working with structural variables, and we added a RemoveBadSuperbasicSlacks to be used after an SLP or SQP iteration without a full step.
  • Added option Flg_AdjIniP to bypass AdjustinitialPoint if too expensive.
  • Function evaluation errors are made silent after ill-conditioned steps.
  • Fixed an error in the pre-processor where minimax constraints could be converted into an incorrest equality.
  • Reduced Hessian and superbasis reset after singularities or numerical problems.
  • Added evaluation of post-triangular constraints if a CNS model was interrupted.
  • Improved AttemptCNS.

Version 4.30 - February 2023

  • Error fix for models with dummy objective. If the model had problems with tolerances then it could stop without a termination message.

Version 4.29 - Oktober 2022

Start at revision 1740 and ends at 1749.

  • Fixed an error 99999 in pre-processor (inconsistent parallel constraints).
  • Updated some tolerance specifically for TraceCNS.
  • Fixed two different cases of error 987 (poorly defined basis change).
  • Insufficient memory was not recognized and reported correctly.
  • More tests for time limit in the earlier parts of the optimization. Relevant for huge model or models with a very small time limit.
  • Fixed a problem recovering properly after NaN.
  • Improved some test output, documentation, and debugging code.

Version 4.28 - June 2022

Starts at revision 1727 and ends at 1737:

  • Fixed some errors in the inversion routine.
  • Fixed an error in Check2ndOrder where superbasic disappeared (system error 44344).

Version 4.27 - April 2022

Starts at revision 1659 and ends at 1726:

  • Added an initial TraceCNS option.
  • Function and derivative errors were not registered when running in parallel and not used correctly with CNS models.
  • The preprocessor had problems with models with very small coefficients and models with constant nonlinear Jacobian elements.
  • Improved the detection of post-triangular parts in CNS models.
  • Improved the speed of analyzing the numerical stability of definitional constraints using better datastructures.
  • Improved the speed of analysing the density of definitional constraints using better datastructures.
  • Improved the numerical stability of creating and testing the initial basis.
  • Fixed memory allocation error in the inversion of dense matrices.
  • Fixed some cases of uninitialized variables.
  • Dynamic filter for flagging infeasibilities in the solution listing based on the largest infeasibility.
  • Fixed some errors in the inversion routine.
  • Fixed an error for models with Objective fixed in the pre-triangle.

Version 4.26 - February 2022

Starts at revision 1616 and ends at 1658.

  • Minor update: Cleanup of inversion routine.
  • Fix of some systems error reported by users.

Version 4.25 - December 2021

Ends at revision 1615.

  • General improvements in the construction of the initial basis and in the startup of the optimization process, especially for very large models.
  • Many small improvements and corrections of errors found by users.

Version 4.24 - February 2021

Probably ends at revision 1522.

  • If the pre-processor proved the model to be infeasible but could not give a traceback then we did not return a solution. Now we return a solution without duals.
  • A lot of cleanup and reorganization without changes in execution.
  • Removed some OpenMP loops that were considered useless.

Version 4.23 - January 2021

  • Removed ObjNzNorm and the scaling associated with this variable. Could give premature termination for some models with large objective terms.
  • Removed OnlyObj variable: Forced use of SQP was not correct.
  • Fixed an error in parallel calls of function and derivative values.

Version 4.22 - November/December 2020

  • Fixed an error in the preprocessor. sqr(x-1) = 0 returned infeasible solution because the interval for feasible solutions was very small and a feasible solution was not yet found.
  • Perturbation of the Jacobian used for H*v is now done using safe points inside bounds.
  • If the objective is fixed in the pre-triangular part of the model then we bypass some of the initializations in the optimization in phase 2.

Version 4.21 - October 2020

  • Logic for Definition constraints updated:
    • Infeasibilities are handled with a forward push routine and a backward pull routine.
    • The way dense fill-in is removed is updated and the runtime is improved.
  • Removed some errors:
    • Model hda: there was a conflict between monotonicity and a tolerance
    • Model traffic:
    • System Error 12371 and 12372 reported by Wolfgang Britz
    • Problem with a very small pivot (non-default tolerance) that created an incorrect penalty constraint (Wolfgang Britz)
    • Addressing error that could appear in models with very long constraints (Wolfgang Britz).
  • Changed a tolerance in the Derivative debugger.

Version 4.20 - July 2020

  • Added a warning if the unscaled residuals in a feasible model are large due to very large scale factors.
  • Fixed an error in onedimensional search when there are large 2nd derivatives or discontinuous 1st derivates. Tried to recover a point that did not exits (traffic.gms).
  • Fixed an 88120 systems error.
  • Updated the selection of definitional constraints and improved the numerical behavior.
  • Changed tolerances in the Derivative Debugger related to very large derivatives.

Version 4.19 - April 2020

This version corresponds to SVN revision 1449 plus an update to preproc stored as revision 1452 (1450 and 1451 are not included at GAMS).

To release notes: "Some errors related to the duals and basic/nonbasic flags for some definitional constraints and forcing constraints have been corrected."

  • Removed a system error 88120 reported by Florian Humpenöder.
  • Removed a system error 62234/62236 reported by Wolfgang Britz.
  • Removed a system error 9556 related to infeasible penalty constraints. Reported by Wolfgang Britz.
  • Fixed an error in the duals if the objective is a defined variable.
  • Infeasible models cannot report correct duals if a derived bound is active. Duals turned off.
  • Some unused options removed and new default for Rtdefm.

Version 4.18 - February 2020

This version corresponds to SVN revision 1432. It is included in GAMS 30.3.0.

To release notes: "The degeneracy-breaking logic has been improved for numerically difficult models and the interaction between defined variables and initialized variables has been improved."

  • The logic behind the Tol_Piv_Deg scalar has been revised and there are extra safety stop several places to prevent infinite loops when degeneracy and numerical difficulties fight against each other.
  • mkdata: the order of the options in the optconopt4.gms output file has been changed so the internal names and the GAMS-defined names come before the 'official' option names. This will prevent that GAMS options overwrite option values in an options file.
  • defcon: Improved the way defined variables that also are initialized, can be used to initialize some control variables.

Version 4.17 - January 2020

This version corresponds to SVN revision 1423. It is included in GAMS 30.2.0.

To release notes: "The flagging of infeasibilities was sometimes missing due to incorrect use of scale factors."

  • Fixed an error in superbasis_select when MaxAdd is 1 e.g. after a degenerate iteration.
  • Increased the use of MCur_Rat in Conedm when Newton does not converge.
  • Added a forced SLP2Steep if SLP is doing badly.
  • A lot of cleanup of $if defined that are not used.
  • The tolerance used for flagging infeasibilities was scaled twice resulting in loss of feasibility flags on some models.
  • Improved the stop-criteria in Phase 0.

Version 4.16 - November/December 2019

This version corresponds to SVN revision 1415. It is included in GAMS 30.1.0

To release notes: "Improvement in the transition from Phase 0 to Phase 1 and in the one-dimensional search close to optimality."

  • Added the option Flg_Range. There is a potential problem with the duals of ranged constraints and if CONOPT encounter it it will issue a message and explain how ranges can be turned off.
  • Bypassed some unnecessary code if it is clear that definitional constraints are not going to be used. May give a different permutation of the variables and therefore a different solution path, but there is no systematic difference.
  • Added special code in preprocessor to handle constant nonlinear terms like x = c*y**eps.
  • Adjusted mkdata.f90 and crcells.txt to create the proper GAMS documentation file (received from GAMS).
  • Changed the tolerances in coffs to minimal value to get smoother transition from Phase 0 to Phase 1.
  • Adjusted the onedimensional search: the adjustment of the objective using the scalar product of duals and residuals is now also applied to the base point.
  • The tangent direction from COSQP is usually computed from Xsol-Xbase, but if the movement is small we used the vector Delx for accuracy.
  • The use of DO_Tighten and the Tighten routine updated to avoid cycling in models that do not have a KKT point.

Version 4.15 - October 2019

This version corresponds to SVN revision 1399.

  • Fixed an error in the preprocessor where a pair of parallel linear constraints incorrectly could be declared infeasible.
  • Fixed cases of error 2017, 2033 and 88111 in Lufactor.
  • Added option Tol_Def_Ini to control the interaction between initialized variables and infeasible definitional constraints.
  • Added option Tol_Def_Mult to control the numerical growth inside the block of definitional constraints.
  • These last two new options are not yet in use because many old models did not benefit from them. More work will follow.

Version 4.14 - September 2019

This version corresponds to SVN revision 1393.

Initially send to Wolfgang Britz and Dream to fix error reported at:

  • c:\gamstest\britz\britz36\dnlp.gms – infinite loop inside SLP due to bad degeneracy breaking
  • c:\gamstest\dream\error_2019_09_04 – fatal 2027 system error

Version 4.13 - June 2019

This version corresponds to SVN revision 1386.

Has so far only been send to Wolfgang Britz and Holger ??? to fix errors they have reported.

Version 4.12 - May 2019

This version corresponds to SVN revision 1382.

Is included in GAMS 27.2.0. Send to AIMMS on May 9, 2019.