public override string SerializeIndividual(IndividualBase individual)
        {
            StringBuilder SB = new StringBuilder();

            SB.AppendLine("Individual:");
            SB.AppendLine("\t" + "Value: " + individual.GetValueForObjective(MonoObjectiveGoal));
            CryptArithmeticSolution cryptoSolution = (individual as CryptArithmeticSolution);
            int charValue = -1;

            for (int idx = 0; idx < charArray.Length; ++idx)
            {
                charValue = cryptoSolution.LettersValues[idx];
                SB.AppendLine("\t" + charArray[idx] + ": " + charValue);
            }
            return(SB.ToString());
        }
        public override string SerializeIndividual(IndividualBase individual)
        {
            TaskSchedulingSolution schedulingSolution = (individual as TaskSchedulingSolution);

            List <List <TaskIndexingNode> > tasksGroupedByProcessor = GroupTasksByProcessor(schedulingSolution);

            StringBuilder sb = new StringBuilder();

            sb.AppendLine("Individual:");
            sb.AppendLine("\t" + "Value: " + individual.GetValueForObjective(MonoObjectiveGoal));
            for (int processorIdx = 0; processorIdx < ProcessorCount; ++processorIdx)
            {
                sb.Append("\t" + "P" + processorIdx + ": " + "[");
                foreach (int task in tasksGroupedByProcessor[processorIdx].Select(TIN => TIN.Task))
                {
                    sb.Append(" " + task + " |");
                }
                sb.Append("| " + schedulingSolution.ProcessorStatus[processorIdx] + " ]");
                sb.Append(Environment.NewLine);
            }
            return(sb.ToString());
        }
        public override string SerializeIndividual(IndividualBase individual)
        {
            TaskSchedulingSolution schedulingSolution = (individual as TaskSchedulingSolution);

            List<List<TaskIndexingNode>> tasksGroupedByProcessor = GroupTasksByProcessor(schedulingSolution);

            StringBuilder sb = new StringBuilder();
            sb.AppendLine("Individual:");
            sb.AppendLine("\t" + "Value: " + individual.GetValueForObjective(MonoObjectiveGoal));
            for (int processorIdx = 0; processorIdx < ProcessorCount; ++processorIdx) {
                sb.Append("\t" + "P" + processorIdx + ": " + "[");
                foreach (int task in tasksGroupedByProcessor[processorIdx].Select(TIN => TIN.Task)) {
                    sb.Append(" " + task + " |");
                }
                sb.Append("| " + schedulingSolution.ProcessorStatus[processorIdx] + " ]");
                sb.Append(Environment.NewLine);
            }
            return sb.ToString();
        }
        public override string NewSerializeIndividual(IndividualBase individual)
        {
            TaskSchedulingSolution schedulingSolution = (individual as TaskSchedulingSolution);

            List<List<TaskIndexingNode>> tasksGroupedByProcessor = GroupTasksByProcessor(schedulingSolution);

            StringBuilder sb = new StringBuilder();
            sb.Append("MakeSpan: " + individual.GetValueForObjective(MultiObjectiveGoal.First()) + " _ ");
            sb.Append("Potencia: " + individual.GetValueForObjective(MultiObjectiveGoal.Last()) + " _ ");

            for (int idx = 0; idx < TaskCount - 1; ++idx)
                sb.Append(" " + schedulingSolution.GeneticMaterial[0, idx] + " (" + schedulingSolution.GeneticMaterial[1, idx] + ") -");
            sb.Append(" " + schedulingSolution.GeneticMaterial[0, TaskCount - 1] + " (" + schedulingSolution.GeneticMaterial[1, TaskCount - 1] + ")");
            return sb.ToString();
        }
 public override string SerializeIndividual(IndividualBase individual)
 {
     StringBuilder SB = new StringBuilder();
     SB.AppendLine("Individual:");
     SB.AppendLine("\t" + "Value: " + individual.GetValueForObjective(MonoObjectiveGoal));
     CryptArithmeticSolution cryptoSolution = (individual as CryptArithmeticSolution);
     int charValue = -1;
     for (int idx = 0; idx < charArray.Length; ++idx) {
         charValue = cryptoSolution.LettersValues[idx];
         SB.AppendLine("\t" + charArray[idx] + ": " + charValue);
     }
     return SB.ToString();
 }