public override Structuring BuildStructuring() { try { int _current = 1; int _max = IterationsCount; if (IContainerProgressBar != null) { IContainerProgressBar.ResetProgressBar(1, _max, true); IContainerProgressBar.UpdateProgressBar(1, "Running HCE algorithm...", true); } int n = StructuringsCount * (StructuringsCount - 1) / 2; HeapArrayMax <Pair> _pairs = new HeapArrayMax <Pair>(n); for (int i = 0; i < StructuringsCount; i++) { for (int j = i + 1; j < StructuringsCount; j++) { Pair _temp = Fitness(Structurings[i], Structurings[j]); _pairs.Add(_temp); } } for (int i = 0; i < IterationsCount; i++) { Pair parents = _pairs.First; _pairs.RemoveFirst(); Crossover(parents); //calcular nuevo fitness//////////////***********////////////// _pairs.Add(Fitness(parents.P1, parents.P2)); if (IContainerProgressBar != null) { IContainerProgressBar.UpdateProgressBar(_current++, "Running HCE algorithm...", false); } } if (IContainerProgressBar != null) { IContainerProgressBar.FinishProgressBar(); } return(_pairs.First.P2); } catch { if (IContainerProgressBar != null) { IContainerProgressBar.ShowError("Error occurred in HCE algorithm."); } return(null); } }
public override Structuring BuildStructuring() { try { int _current = 1; int _max = IterationsCount; if (IContainerProgressBar != null) { IContainerProgressBar.ResetProgressBar(1, _max, true); IContainerProgressBar.UpdateProgressBar(1, "Running HCE algorithm...", true); } int n = StructuringsCount * (StructuringsCount - 1) / 2; HeapArrayMax<Pair> _pairs = new HeapArrayMax<Pair>(n); for (int i = 0; i < StructuringsCount; i++) { for (int j = i + 1; j < StructuringsCount; j++) { Pair _temp = Fitness(Structurings[i], Structurings[j]); _pairs.Add(_temp); } } for (int i = 0; i < IterationsCount; i++) { Pair parents = _pairs.First; _pairs.RemoveFirst(); Crossover(parents); //calcular nuevo fitness//////////////***********////////////// _pairs.Add(Fitness(parents.P1, parents.P2)); if (IContainerProgressBar != null) IContainerProgressBar.UpdateProgressBar(_current++, "Running HCE algorithm...", false); } if (IContainerProgressBar != null) IContainerProgressBar.FinishProgressBar(); return _pairs.First.P2; } catch { if (IContainerProgressBar != null) IContainerProgressBar.ShowError("Error occurred in HCE algorithm."); return null; } }