Free cookie consent management tool by TermsFeed Policy Generator

Changes between Version 1 and Version 2 of Ticket #2931, comment 15


Ignore:
Timestamp:
01/18/19 11:22:54 (5 years ago)
Author:
abeham
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #2931, comment 15

    v1 v2  
    11=== Review ===
    22
    3  * The file-based problem definition should contain "MPS" in the item name: "Problem Definition File (MPS, OR-Tools Proto Files)"
    4  * The programmable based definition should have the item name: "Programmable Linear Problem Definition (LP, MILP)"
    5   * The description should not contain "and evaluates the solution"
    6  * I general I would support item names using some publicly agreed form such as "Mixed-Integer Linear Programming" (potentially add "(LP, MILP)" for the creatable in order to have the abbreviated forms) instead of "Linear/Mixed Integer Programming", because that term is not known in this form. Neither is 100% correct, but one is at least more widely known.
     3 * Naming things
     4  * The namespace and plugin should be renamed to "HeuristicLab.ExactOptimization" instead of "HeuristicLab.MathematicalOptimization"
     5  * The ItemName of the file-based problem definition should be: "Problem Definition File (MPS, OR-Tools Proto Files)"
     6  * The ItemName of the programmable based definition should be: "Programmable Linear Problem Definition (LP, MIP)"
     7   * The description should not contain "and evaluates the solution"
     8  * The ItemName of the algorithm should be "Mixed-Integer Linear Programming (LP, MIP)"
     9  * The ItemName of the problem should be "Mixed-Integer Linear Programming Problem (LP, MIP)"
    710
    8 I want to get feedback from other architects on this also. Review is to be continued.
     11 * Usage
     12  * MixedIntegerProgramming should be the default "ProblemType" for ILinearSolvers (if supported)
     13   * The only use case to set this to LinearProgramming is if you explicitly want to solve the LP relaxation instead of the ILP. This should not be the default case.
     14  * The ModelType is not shown in the run under Parameters, it should show which model type was used
     15   * In the case of the MPS model type it should also show the path to the file
     16   * In the case of the Programmable model type it should also show the name
     17  * Advanced parameters like "PrimalTolerance", "DualTolerance", "Scaling" should be hidden by default (Hidden = true)
     18  * A default timelimit of 1 minute should be set
     19  * Isn't LpAlgorithm a parameter of the solver, are these provided by all solvers? Same question regarding the presolve option (which should be true by default)
     20  * Export Model should be implemented as a button. The parameter should be removed. Please derive a custom algorithm view and add a button next to the prepare button, labeled "Export model to file". When this button is pressed a SaveFileDialog() should be opened where the user can choose the filename. After closing the dialog only the export should be performed.
     21   * Why is the option called "CPLEX LP File"? It also worked to export in combination with CBC
     22  * Can we offer an option to automatically include decision variables in the results (false by default)?
     23   * For instance when MPS files are solved, there's no way to get the actual solution
     24  * In the Problem type when selecting file-based model can we exclude Name and Data Type fields? They're readonly and are only confusing
     25  * We should not offer GPLK as option if it creates problems or crashes the application (does it still?)
     26
     27 * Code
     28  * The BasisStatus, DoubleParam, IncrementalityValues, IntegerParam enum are not referenced
     29  * ResultStatus: Do OR-Tools provide something similar to "OptimalWithinTolerance"? I hesitate to say "Optimal" when the BestObjectiveValue and the BestObjectiveBound are not equal
     30  * LinearProgrammingProblem.cs
     31   * ProblemDefinitionChanged event is not invoked from OnProblemDefinitionChanged, which in turn is not called from anywhere
     32   * The problem definition is not cloned in the cloning constructor (necessary to derive ILinearProgrammingProblemDefinition from IDeepCloneable)
     33  * LinearProgrammingAlgorithm.cs
     34   *