public override bool Equals(object obj)
        {
            if (!(obj is LearningProcess))
            {
                return(false);
            }
            var tmp = (LearningProcess)obj;

            return(obj.GetType() == GetType() &&
                   Population.SequenceEqual(tmp.Population) &&
                   Generation == tmp.Generation &&
                   PopulationCount == tmp.PopulationCount &&
                   BestIndex == tmp.BestIndex &&
                   HistoricalData.SequenceEqual(tmp.HistoricalData) &&
                   LearningAlgorithm.Equals(tmp.LearningAlgorithm));
        }