Changeset 7438 for branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/Analyzers/GQAPSolutionArchiveAnalyzer.cs
- Timestamp:
- 02/01/12 13:28:54 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GeneralizedQAP/HeuristicLab.Problems.GeneralizedQuadraticAssignment/3.3/Analyzers/GQAPSolutionArchiveAnalyzer.cs
r7437 r7438 20 20 #endregion 21 21 22 using System.Linq; 22 23 using HeuristicLab.Common; 23 24 using HeuristicLab.Core; … … 163 164 } 164 165 165 ItemList<GQAPSolution> front = new ItemList<GQAPSolution>(archive.Solutions); 166 for (int i = 0; i < assignments.Length; i++) { 167 if (overbookedCapacities[i].Value <= 0.0) 168 front.Add(new GQAPSolution(assignments[i], qualities[i], flowDistanceQualities[i], installationQualities[i], overbookedCapacities[i])); 169 } 170 171 for (int i = 0; i < front.Count - 1; i++) { 172 for (int j = i + 1; j < front.Count; j++) { 173 if (front[i].FlowDistanceQuality.Value < front[j].FlowDistanceQuality.Value 174 && front[i].InstallationQuality.Value < front[j].InstallationQuality.Value) { 175 front.RemoveAt(j); 176 j--; 177 } else if (front[i].FlowDistanceQuality.Value > front[j].FlowDistanceQuality.Value 178 && front[i].InstallationQuality.Value > front[j].InstallationQuality.Value) { 179 front.RemoveAt(i); 180 j = i; 181 } 182 } 183 } 184 185 archive.Solutions = front; 166 var solutions = Enumerable.Range(0, assignments.Length) 167 .Select(i => new GQAPSolution(assignments[i], qualities[i], flowDistanceQualities[i], installationQualities[i], overbookedCapacities[i])) 168 .Concat(archive.Solutions); 169 archive.Solutions = GQAPSolutionArchiveUpdater.GetFeasibleParetoFront(solutions); 186 170 187 171 return base.Apply();
Note: See TracChangeset
for help on using the changeset viewer.