= [wiki:Reviews Reviews] - [wiki:ReviewHeuristicLab3.3.0Application HeuristicLab 3.3.0 Application Review] - Implemented Review Comments = == Reviewer: abeham == === Priority: HIGH === * Creating a new TSP problem and viewing the parameter "Coordinates": The view can be switched to an "!OptionalValueParameterView" which adds a button to delete the value. However when clicked an exception is thrown that the value cannot be null. The !OptionalValueParameterView should not be selectable (Coordinates is not an optional parameter). This also holds for other parameters like the !SolutionCreator. * swagner: Changed in r2948. * When one creates a new user defined algorithm, the user finds a button called "Create User Defined Algorithm" button on the form. This feels strange. * swagner: Set the button to be invisible in r2947. * In the user defined algorithm: * On the parameter tab: I press "+" to add a new Parameter. I select a !ValueParameter, term it "!MutationRate" and select !DoubleData as type I get a !MissingMethodException (Constructor on type !ValueParameter not found). * swagner: Fixed in r2948. * The operator graph view is a bit confusing: * Selecting an operator in "Operator Graph" does not bring up the details in the details view. * swagner: Fixed in r2949. * Should there really be a view host in the operator graph group box? It's confusing being able to switch views there (also because these are always just views on the initial operator which can be viewed with view host in the details group box as well). * swagner: Removed view host in r2947. * Creating a user defined algorithm from the SGA doesn't reconfigure the SGA operator with the parameters set in the SGA interface. * swagner: Fixed as described in ticket #898. * The successor parameter reads "Successor: !ResultsCollector", "Successor: !SubScopesSorter", ... It's more readable if "Successor" was not present all the time (in the operator graph group box). * swagner: "Successor" is required to identify an operator parameter. Of course, in the case of `ResultsCollector`, `SubScopesSorter`, etc. there is only one operator parameter, but there are other operators which have multiple operator parameters (e.g. branches). If we skip the parameter name, the user will not be able to tell which operator parameter is shown in the tree view. * abeham: After some while I got used to it * All Parameters have the same icon, can we have different ones for values and operators? * abeham: implemented this in r3106, fixed a related bug in r3105 * There is a bug in the implementation of `SimulatedBinaryCrossover` * abeham: fixed in r3172 * `EvolutionStrategy`: * Prevent self adaptive mutation with non-selfadaptive crossover * abeham: fixed in r3185 * !BoundsChecking after Crossover and Mutation with optional attribute * abeham: added in r3182 * Implement `SelfAdaptiveCrossover` on the algorithm side with two `ICrossover` parameters * abeham: implemented in r3183 (the interface thing got killed, since it's ES specific) * Disable start button in prewired algorithm (`LocalSearch`, ... ) that expect a problem, when no problem has been loaded. * Also prevent start in trajectory based algorithms when e.g. `MoveGenerator`, etc. is null. * abeham: done in r3189 * swagner: Implemented in SGA in r3188. * Tabu search should abort when no feasible move found in the neighborhood * abeham: fixed in r3195 * Hide choosing of different views when there is only one type of view to select. * swagner: Done in r3210. === Priority: MEDIUM === * The TSP problem view: * How do I set the (allowed) evaluation operator? * swagner: Enabled changing values of value parameters in r2948. * Why do I want to change e.g. "TSPRoundedEuclideanPathEvaluator" in the textbox "Name" when viewing Parameter "Evaluator"? * swagner: In a discussion with abeham it was decided to allow name changes for all operators except for selection, crossover and manipulation operators (or any other operators which can be selected in a standard algorithm or problem view). This was implemented in r3034. * `BestKnownTour` is missing as parameter. * swagner: Added import of optimal TSP solutions in r3151. * Would be nice to be able to view a "scatter plot" of the coordinates. * swagner: Added visualization of the TSP instance in r3153. * The TSP path visualization seems to be flipped upside down. * swagner: Fixed in r3213. * When clicking "start" to start the engine disabling of the user interface elements has similar problems to what we fixed a few revisions ago (ticket #887). * swagner: This has been fixed in r3149 and r3177. * The `ViewHost` menu contains a lot of views which are quite similar. `ItemView` doesn't display anything, should it be selectable? `ParameterView` and `NamedItemView` are very similar. Sometimes there are only very fine differences between the views (e.g. a `ParameterView` and a `NamedItemView`). * mkommend: Changed in r2992 as described in ticket #902. * In my user defined algorithm: * After selecting !CurrentScope, all further parameters will be displayed as !ParameterView and appear as if they cannot be changed. I had to change the view manually in the view host. Sometimes it seems to select the "wrong" default views. It reverts back to !ParameterView as default as soon as !CurrentScope is clicked again. * swagner: Fixed in r2949. * !InversionManipulator has the "correct" actual name set already (Permutation), however in !OrderCrossover the default names are "Parents" and "Child" which have to be changed to Permutation. This isn't obvious right away when the string description of the parameter says: "Child: Child (Permutation)". * swagner: Set the actual name of the parents and child parameter to "Permutation" by default in r2947. * My initial expectations probably weren't correct regarding the user defined algorithm. The SGA operator is not a complete SGA, but just the main loop (yes we discussed this). * swagner: Renamed `SGAOperator` to `SGAMainLoop` in r3020. * `LeftSelector` and `RightSelector` should not be displayed as selection operators in an SGA (there is a related ticket #673). * swagner: Replaced `LeftSelector` and `RightSelector` by `BestSelector` and `WorstSelector` as described in ticket #926. * I'd wish there was just a value view as well. Sometimes I want to hide name, description, type, set, remove, ... elements and just display the value (e.g. when viewing the quality chart) (we discussed this) * swagner: Added `VariableValueView` in r2989. * In the operator graph chart view: * Long operator names require higher shapes as the operator name breaks into the next line. * mkommend: implemented with r3169. * Scrolling using the mouse wheel looks very odd, if this can't be fixed it better should be disabled. * mkommend: disabled the scrolling using the mouse wheel with r3167. * !OpenView should be default double click behavior in operator graph chart. * mkommend: implemented with r3184. * Sometimes arrows cannot be selected (e.g. when they're pointing directly east). * mkommend: corrected selection of connections with r3175. * Operators with a breakpoint set should be in some way highlighted * abeham: this actually works, maybe there's some case where this doesn't work? * Just single clicking the successor port with the connector tool connects the box with itself, I don't think this is a desired behavior. * mkommend: fixed with r3181. * I would be nice if: As long the space keyboard is pressed the selection mode switches to panning * mkommend: implemented with r3173. * The vertical scroll bar allows scrolling way past the graph. * abeham: On second review, this isn't actually an issue. * Sometimes one of the ports (in port) remains selected even if clicked somewhere in the white space. * mkommend: This is only a minor repainting issue and won't be fixed right now. * You can select a connector by drawing a selection rectangle that doesn't cover the connector, but covers the bounding rectangle of the connector. * mkommend: This is the default behavior. `DiagramEntities` are selected if the bounding boxes intersect the selection rectangle. * A selected box should change the mouse cursor to the move cursor when hovering over it. * mkommend: implemented with r3186. === Priority: LOW === * Sequential engine should probably not be createable. At least currently there's nothing one could do with just an engine. * swagner: Removed `Creatable` attribute in r2924. * When creating e.g. a new TSP in the parameter collection view the tool tip doesn't really display the description of the parameter but just a very generic one. * swagner: Changed to more specific tool tips in r2947. * There is a typo in the description of the parameters (tooltips), it says "it" instead of "in". * swagner: Fixed in r2947. * "Breakpoint" doesn't explain if it breaks before or after executing the operator. * swagner: Added tool tip in r2949. * The available parameters view lists just one namespace which is collapsed by default (should be expanded if it's just this one). * swagner: Changed in r2953. * When you remove the value of the results (such as "!BestQuality") the text in the box does not update. * swagner: Fixed updating in r2989. * The quality chart looks great! * "!BestKnownQuality" is not displayed currently. * swagner: Implemented tracking of best and best known quality values as described in ticket #920. * Does it make sense to select no engine in an user defined algorithm? * swagner: Disabled that the engine can be set to null in r3214. * Does it make sense to change the name of result variables or to remove their values? * swagner: Disabled in r3226. ---- == Reviewer: gkronber == === Priority: HIGH === === Priority: MEDIUM === * `HeuristicLab.Algorithms.TS` and `HeuristicLab.Algorithms.LS` should be renamed to `HeuristicLab.Algorithms.TabuSearch` and `HeuristicLab.Algorithms.LocalSearch`. * abeham: Resolved. * `HeuristicLab.Algorithms.SGA` should be renamed to `HeuristicLab.Algorithms.StandardGeneticAlgorithm`. * swagner: Renamed `HeuristicLab.Algorithms.SGA` to `HeuristicLab.Algorithms.GeneticAlgorithm` as described in #945. * Loading the "New Item" dialog takes a long time the first time the "New" action is activated. Probably an issue in the plugin infrastructure. * swagner: When opening the new dialog for the first time, all creatable items are instantiated which might take some time (although I do not really notice a long loading time of the new dialog on my machine). At the moment many items are shown in the new dialog for testing purposes (category "Test"). After these items have been removed, the loading time of the new dialog will be much faster. I will remove all `[Creatable("Test")]` attributes on items in the next version. * swagner: Removed all `[Creatable("Test")]` attributes in r3160. * The execution state of an engine (e.g. Execution Time, Log...) is not persisted or restored correctly. * swagner: Fixed storing and loading of an engine's execution time and state in r2933. The log is not stored and loaded at the moment, as it is not persisted in an engine but is only generated and shown in the view. * Dropdown-boxes for crossover and mutation operator selection are empty. * swagner: They are empty as long as no problem has been selected as an algorithm cannot know a priori which crossover and mutation operators are allowed. === Priority: LOW === * Are keyboard shortcuts for groupboxes necessary? E.g. __D__etails groupbox and __D__escription shortcuts are conflicting. __V__alue groupbox and __V__alue textbox are conflicting. * swagner: Removed keyboard shortcuts for all groupboxes in r2924. * Description of !RandomCreator should contain a hint about the type of PRNG that is created. * swagner: Done in r2924. * `ProgrammableOperator`: 'Compile' is a normal button but 'Show Generated Code' looks like a label. I think the style should be unified. * epitzer: Fixed in r3008 ---- == Reviewer: swinkler == === Priority: HIGH === * After starting an SGA the user is able to add a new problem; the OK button in the following dialog is initially enabled, clicking it causes no (?) action. * swagner: Fixed in r2924. * Adding a new parameter, for example a `ValueParameter`, leads to an exception. * swagner: Fixed in r2948. * After starting a SGA with 130 cities TSP and population size 100 the memory consumption is 1.2 GB after approx. 6500 generations. * swagner: Memory and runtime performance has been drastically improved in r2932. * Adding a paramter to a `ProgrammableOperator`, for example a `ValueParameter`, leads to a null-pointer-exception. * epitzer: fixed in r3008 * (...) As a follow-up, after aborting adding a parameter to a `ProgrammableOperator`, a `PersistenceException` is thrown. * epitzer: fixed in r3008 === Priority: MEDIUM === * After starting the SGA the current generation index is not displayed; I have to switch to the qualities chart to see the current generation. * swagner: Added generations counter to results in r2924. * During the run of an algorithm the values displayed for the variables `BestQuality`, `AverageQuality`, and `WorstQuality` flicker. * swagner: Fixed in r2924. === Priority: LOW === * Regarding the description of operators: * I would prefer to not to capitalize names of algorithms, i.e., for example I would prefer "... the standard genetic algorithm ..." over "... the Standard Genetic Algorithm ...". * swagner: Changed capitalization of algorithm names in r3026. * The name of an imported TSP instance is not stored / displayed. * swagner: Stored name of TSP instances imported from TSPLIB in r3147. ---- == Reviewer: maffenze == === Priority: HIGH === * When no crossover is selected an error message is thrown which gives no hint about the reason. * swagner: Changed in r2924 that a selection and a crossover operator are automatically selected if available to avoid the cryptic error message. === Priority: MEDIUM === === Priority: LOW === * It is not obvious what is meant with the breakpoint option in an operator. * swagner: Added tool tip in r2949. ---- == Reviewer: vdorfer == === Priority: HIGH === === Priority: MEDIUM === * I would change the stop sign to a pause sign, as it actually pauses the run (maybe also change the tooltip of the start button to "Start/Resume Algorithm"). A stop sign signalizes for me: better not click it, or else I have to start all over again. * mkommend: I would also recommend a pause icon instead of the stop icon. * abeham: Count me in on that too. * swinkler: Me too! * swagner: Ok, ok, I got it. Changed in r3225. === Priority: LOW === ---- == Reviewer: mkommend == === Priority: HIGH === === Priority: MEDIUM === === Priority: LOW === * The new dialog should also react on double clicks on the description column, if this is possible. * swagner: Implemented in r3202. ---- == Reviewer: epitzer == === Priority: HIGH === === Priority: MEDIUM === * Remove "-" entry from list of available engines if an engine is available or maybe rename to e.g. "no engine". * swagner: Changed in r3214. === Priority: LOW === * Value of Items from the Results pane can be added/changed and deleted. * swagner: Disabled in r3226. * Engine has to be stopped to be able to click and view results. * swagner: Changed in r3275. ----