9 | | * line 51: move the event closer to the method that raises it |
10 | | * line 117: use permut instead of data.BestKnownPermutation |
11 | | * line 126: check if BestKnownQuality is double.NaN in which case set null |
12 | | * line 127: fix possible NullReferenceException when BestKnownSolution is null |
13 | | * line 136: the ToArray() call is a waste of time |
14 | | * line 146: change the signature of `Evaluate(int[], DoubleMatrix)` to `Evaluate(Permutation, DoubleMatrix)`, wrap in a Permutation during `Load(LOPData)` -> Load is not performance critical, but Evaluate is |
15 | | * line 146: move it closer to the actual Evaluate method and outside the "Helper Methods" region |
16 | | |
17 | | to be continued... |
| 12 | * The problem should implement the Analyze method to add a visual representation of the best solution to the results, respectively update the BestKnownQuality and BestKnownSolution |
| 13 | * line 53: move the event closer to the method that raises it, is this event really necessary? Nobody listens to it and one could easily subscribe to the BestKnownSolutionParameter's ValueChanged event. |
| 14 | * line 119: use permut instead of data.BestKnownPermutation |
| 15 | * line 128: check if BestKnownQuality is double.NaN in which case set null |
| 16 | * line 129: fix possible NullReferenceException when BestKnownSolution is null |
| 17 | * line 138: the ToArray() call is a waste of time |
| 18 | * line 148: change the signature of `Evaluate(int[], DoubleMatrix)` to `Evaluate(Permutation, DoubleMatrix)`, wrap in a Permutation during `Load(LOPData)` -> Load is not performance critical, but Evaluate is, move the method closer to the actual Evaluate method and outside the "Helper Methods" region |
| 19 | * PermutationFlowshopSchedulingProblem.cs |
| 20 | * The JobMatrix should not be an //Optional//ValueParameter, it's essential for the problem, it should not contain null |
| 21 | * several of the remarks mentioned for LOP also apply to the PFSP |
| 22 | * The problem should implement the Analyze method to add a visual representation of the best solution to the results, respectively update the BestKnownQuality and BestKnownSolution |
| 23 | * line 165-168: move variable declarations closer to reference |
| 24 | * line 182: Math.Max(..) should be used for clarity, except if it's significantly slower than the ternary operator |
| 25 | * I would suggest to make the Evaluate(int[], DoubleMatrix) method public (should change Permutation for int[]) and instead of double return the calculatedTime matrix (use a double[,] -> DoubleMatrix's setter is slow). |
| 26 | * JobShopSchedulingProblemView.cs |
| 27 | * Shouldn't the file as well as the class be called `PermutationFlowshopSchedulingProblemView`? |
| 28 | * Call the aforementioned public Evaluate instead of duplicating the code to generate the calculatedTime matrix |
| 29 | * line 74: the null check can be removed when the JobMatrix parameter has been changed to just ValueParameter |
| 30 | * LOPData.cs |
| 31 | * Remove ".Types" from the namespace |
| 32 | * FSSPData.cs |
| 33 | * License header |
| 34 | * API doc strings |
| 35 | * Problem instance plugin |
| 36 | * Plugin.cs.frame |
| 37 | * wrong namespace |
| 38 | * FSSPTAILIBInstanceProvider.cs |
| 39 | * The reference publication should be a citation of [[https://www.sciencedirect.com/science/article/pii/037722179390182M]] |
| 40 | * A base class for all LOP instance providers could probably avoid code duplication |
| 41 | * LOPXLOLIBInstanceProvider.cs |
| 42 | * The uri returns a 404, please check, maybe case-sensitive |
| 43 | * LOPSPECInstanceProvider.cs |
| 44 | * URI returns 404 |
| 45 | * LOPRANDBInstanceProvider.cs |
| 46 | * URI returns 404 |
| 47 | * LOPRANDA2InstanceProvider.cs |
| 48 | * URI returns 404 |
| 49 | * LOPRANDA1InstanceProvider.cs |
| 50 | * URI returns 404 |
| 51 | * AssemblyInfo.cs.frame |
| 52 | * Please check title, product and copyright |