public BinPackingGenetics(int problemNum, MutationOperator mutationOperator, CrossoverMethod method, SelectionMethod selectionMethod) : base(method, selectionMethod) { _mutationOperator = mutationOperator; CrosMethod = method; string path = ""; _volumes = new List <int>(); switch (problemNum) { case 1: path = "Falkenauer_u120_00.txt"; break; case 2: path = "Falkenauer_u250_00.txt"; break; case 3: path = "Falkenauer_u500_00.txt"; break; case 4: path = "Falkenauer_u1000_00.txt"; break; } string[] inputArr = System.IO.File.ReadAllLines(path); var lines = inputArr.ToList(); lines.Remove(lines.First()); // first line is n. no need for it in a list _containerCapacity = Int32.Parse(lines.First()); lines.Remove(lines.First()); // foreach (var line in lines) { var volume = Int32.Parse(line); _volumes.Add(volume); } _lowerBound = (int)Math.Ceiling((decimal)(_volumes.Sum() / _containerCapacity)); MaxFitness = (uint)(_volumes.Count - _lowerBound); bpa = new BinPackingAlgorithm(_volumes, _containerCapacity); _resultBins = new ObservableCollection <List <int> >(); }
public BinPackingGenetics(List <int> volumes, int containerCapacity, MutationOperator mutationOperator, CrossoverMethod method, SelectionMethod selectionMethod) : base(method, selectionMethod) { _mutationOperator = mutationOperator; _volumes = new List <int>(volumes); _containerCapacity = containerCapacity; _lowerBound = (int)Math.Ceiling((decimal)(volumes.Sum() / _containerCapacity)); bpa = new BinPackingAlgorithm(_volumes, _containerCapacity); _resultBins = new ObservableCollection <List <int> >(); MaxFitness = (uint)(volumes.Count - _lowerBound); Alpha = (int)MaxFitness / 2; }