[Minotaur-dev] [minotaur-solver/minotaur] cd23a5: Avoid recursion in TreeManager

Ashutosh Mahajan noreply at github.com
Wed Dec 18 05:32:29 CST 2019


  Branch: refs/heads/master
  Home:   https://github.com/minotaur-solver/minotaur
  Commit: cd23a506cb42ca6285a9d78a97bb4caa29f8ef4d
      https://github.com/minotaur-solver/minotaur/commit/cd23a506cb42ca6285a9d78a97bb4caa29f8ef4d
  Author: Ashutosh Mahajan <amahajan at iitb.ac.in>
  Date:   2019-12-18 (Wed, 18 Dec 2019)

  Changed paths:
    M src/base/TreeManager.cpp
    M src/base/TreeManager.h

  Log Message:
  -----------
  Avoid recursion in TreeManager

While removing a node from the tree, we check if its parent and parent's
parent and so on can also be removed. It was done recursively --  and
hit stack size limits when the tree is just too deep. Replaced recursion
by a while loop.


  Commit: 91af4fee4665eca6d20d0bbf77d4c5862f05e8dd
      https://github.com/minotaur-solver/minotaur/commit/91af4fee4665eca6d20d0bbf77d4c5862f05e8dd
  Author: Ashutosh Mahajan <amahajan at iitb.ac.in>
  Date:   2019-12-18 (Wed, 18 Dec 2019)

  Changed paths:
    M CMakeLists.txt
    M Makefile.manual
    M README.md
    M scripts/daily-lnx-iit-test.sh
    M src/algorithms/Bnb.cpp
    M src/algorithms/Bnc.cpp
    M src/algorithms/CMakeLists.txt
    M src/algorithms/Glob.cpp
    M src/algorithms/LSTOA.cpp
    M src/algorithms/McBnb.cpp
    M src/algorithms/McQG.cpp
    M src/algorithms/MiDfo.cpp
    M src/algorithms/MsBnb.cpp
    M src/algorithms/OA.cpp
    M src/algorithms/QG.cpp
    M src/algorithms/QGAdv.cpp
    M src/algorithms/QPDive.cpp
    M src/base/Branch.cpp
    M src/base/BranchAndBound.cpp
    M src/base/CMakeLists.txt
    M src/base/Constraint.cpp
    M src/base/Engine.h
    M src/base/Environment.cpp
    M src/base/Function.cpp
    M src/base/Function.h
    M src/base/IntVarHandler.cpp
    M src/base/LPRelaxation.cpp
    M src/base/LinConMod.cpp
    M src/base/LinearFunction.cpp
    M src/base/LinearHandler.cpp
    M src/base/LinearHandler.h
    A src/base/Linearizations.cpp
    A src/base/Linearizations.h
    M src/base/MaxVioBrancher.cpp
    M src/base/Modification.h
    M src/base/MultilinearTermsHandler.cpp
    M src/base/NLPRelaxation.cpp
    M src/base/NlPresHandler.cpp
    M src/base/NlPresHandler.h
    M src/base/NlWriter.cpp
    M src/base/Node.cpp
    M src/base/Node.h
    M src/base/NodeHeap.cpp
    M src/base/NodeHeap.h
    M src/base/NodeIncRelaxer.cpp
    M src/base/OAHandler.cpp
    M src/base/OAHandler.h
    M src/base/Objective.cpp
    M src/base/Objective.h
    M src/base/Option.cpp
    M src/base/PCBProcessor.cpp
    M src/base/PCBProcessor.h
    M src/base/ParBranchAndBound.cpp
    M src/base/ParBranchAndBound.h
    M src/base/ParCutMan.cpp
    M src/base/ParNodeIncRelaxer.cpp
    M src/base/ParPCBProcessor.cpp
    M src/base/ParPCBProcessor.h
    M src/base/ParQGBranchAndBound.cpp
    M src/base/ParQGBranchAndBound.h
    M src/base/ParQGHandler.cpp
    M src/base/ParQGHandler.h
    M src/base/ParReliabilityBrancher.cpp
    M src/base/ParReliabilityBrancher.h
    M src/base/ParTreeManager.cpp
    M src/base/ParTreeManager.h
    M src/base/PerspCon.cpp
    M src/base/PerspCutHandler.cpp
    M src/base/PolynomialFunction.cpp
    M src/base/Presolver.cpp
    M src/base/Problem.cpp
    M src/base/Problem.h
    A src/base/QGHandler.MotivationStats.cpp
    A src/base/QGHandler.MotivationStats.h
    M src/base/QGHandler.cpp
    M src/base/QGHandler.h
    A src/base/QGHandlerAdvance.cpp
    A src/base/QGHandlerAdvance.h
    M src/base/QPDProcessor.cpp
    M src/base/QuadHandler.cpp
    M src/base/QuadraticFunction.cpp
    M src/base/RCHandler.cpp
    M src/base/RandomBrancher.cpp
    M src/base/Relaxation.cpp
    M src/base/ReliabilityBrancher.cpp
    M src/base/SOS1Handler.cpp
    M src/base/SOS2Handler.cpp
    M src/base/STOAHandler.cpp
    M src/base/STOAHandler.h
    M src/base/SimpleTransformer.cpp
    M src/base/SimpleTransformer.h
    M src/base/SolutionPool.cpp
    M src/base/SolutionPool.h
    M src/base/TransPoly.cpp
    M src/base/TreeManager.cpp
    M src/base/TreeManager.h
    M src/base/Types.h
    M src/base/Variable.cpp
    M src/base/Variable.h
    M src/base/WarmStart.h
    A src/base/YEqQfBil.cpp
    A src/base/YEqQfBil.h
    M src/engines/Bqpd/BqpdEngine.cpp
    M src/engines/Bqpd/BqpdEngine.h
    M src/engines/Cbc/CbcEngine.cpp
    M src/engines/Cbc/CbcEngine.h
    M src/engines/Cplex/CplexLPEngine.cpp
    M src/engines/Cplex/CplexLPEngine.h
    M src/engines/Cplex/CplexMILPEngine.cpp
    M src/engines/Cplex/CplexMILPEngine.h
    M src/engines/FilterSQP/FilterSQPEngine.cpp
    M src/engines/FilterSQP/FilterSQPEngine.h
    M src/engines/Ipopt/IpoptEngine.cpp
    M src/engines/Ipopt/IpoptEngine.h
    M src/engines/Ipopt/IpoptEngineTnlp.h
    M src/engines/OsiLP/OsiLPEngine.cpp
    M src/engines/OsiLP/OsiLPEngine.h
    M src/engines/qpOASES/qpOASESEngine.h
    M src/interfaces/ampl/AMPLInterface.cpp
    M src/testing/AMPLBqpdUT.cpp
    M src/testing/AMPLCGraphUT.cpp
    M src/testing/AMPLCbcUT.cpp
    M src/testing/AMPLCbcUT.h
    M src/testing/AMPLFilterSQPUT.cpp
    M src/testing/AMPLFilterSQPUT.h
    M src/testing/AMPLInstanceUT.cpp
    M src/testing/AMPLIpoptUT.cpp
    M src/testing/AMPLOsiUT.cpp
    M src/testing/AMPLOsiUT.h
    M src/testing/CGraphUT.cpp
    M src/testing/FunctionUT.cpp
    M src/testing/FunctionUT.h
    M src/testing/HessianOfLagUT.cpp
    M src/testing/IpoptEngineUT.cpp
    M src/testing/JacobianUT.cpp
    M src/testing/LinearFunctionUT.cpp
    M src/testing/NLPBnbUT.cpp
    M src/testing/NLPBnbUT.h
    M src/testing/OperationsUT.cpp
    M src/testing/PerspRefUT.cpp
    M src/testing/PolySolverUT.cpp
    M src/testing/PolySolverUT.h
    M src/testing/PolyUT.cpp
    M src/testing/ProblemUT.cpp
    M src/testing/QuadraticFunctionUT.cpp
    M src/testing/TimerUT.cpp
    M src/testing/TransformerUT.cpp
    M third-party/build_third_party

  Log Message:
  -----------
  Merge branch 'master' of github:minotaur-solver/minotaur


Compare: https://github.com/minotaur-solver/minotaur/compare/76d9cae4d6ed...91af4fee4665


More information about the Minotaur-dev mailing list