public void InsertCompletedRunsAndClearTasks(List <TaskCompleted> completed) { if (completed == null || completed.Count == 0) { return; } var dao = new DAO(); try { dao.OpenTransaction(Server.JARRUS); foreach (var complete in completed) { dao.AddSqlStatementToTransaction(GetDeleteTaskSql(complete.Config.TaskUUID)); dao.AddSqlStatementToTransaction(GetCompletedRunSql(complete)); } dao.ExecuteTransaction(); } catch (Exception ex) { ErrorHandlingSystem.HandleError(ex); throw ex; } finally { dao.CloseConnection(); } }
public List <GATask> CheckoutTasks(int numberOfTasks) { var sql = GetCheckoutTaskSQL(numberOfTasks); var dao = new DAO(); var list = new List <GATask>(); try { dao.OpenConnection(Server.JARRUS, GetCheckoutTaskSQL(numberOfTasks)); dao.Execute(); while (dao.HasNextRow()) { var solution = dao.GetString("SolutionStrategy"); var task = new GATask((JarrusSolution)Reflection.GetObjectFromType(solution)); task.UUID = dao.GetGuid("UUID"); task.Session = dao.GetString("Session"); task.ComputerName = dao.GetString("ComputerName"); task.PopulationSize = dao.GetInt("PopulationSize"); task.MaxGenerations = dao.GetInt("MaxGenerations"); task.CrossoverRate = (double)dao.GetDecimal("CrossoverRate"); task.MutationRate = (double)dao.GetDecimal("MutationRate"); task.ElitismRate = (double)dao.GetDecimal("ElitismRate"); task.ImmigrationRate = (double)dao.GetDecimal("ImmigrationRate"); task.MaxRetirement = dao.GetInt("MaxRetirement"); task.ChildrenPerParents = dao.GetInt("ChildrenPerParents"); task.RandomSeed = dao.GetInt("RandomSeed"); task.RandomPoolGenerationSeed = dao.GetInt("RandomPoolGenerationSeed"); task.DuplicationStrategy = (DuplicationStrategy)Enum.Parse(typeof(DuplicationStrategy), dao.GetString("DuplicationStrategy")); task.ScoringStrategy = (ScoringStrategy)Enum.Parse(typeof(ScoringStrategy), dao.GetString("ScoringStrategy")); task.ImmigrationStrategy = (ImmigrationStrategy)Enum.Parse(typeof(ImmigrationStrategy), dao.GetString("ImmigrationStrategy")); task.RetirementStrategy = (RetirementStrategy)Enum.Parse(typeof(RetirementStrategy), dao.GetString("RetirementStrategy")); task.CrossoverStrategy = (CrossoverStrategy)Enum.Parse(typeof(CrossoverStrategy), dao.GetString("CrossoverStrategy")); task.MutationStrategy = (MutationStrategy)Enum.Parse(typeof(MutationStrategy), dao.GetString("MutationStrategy")); task.ParentSelectionStrategy = (ParentSelectionStrategy)Enum.Parse(typeof(ParentSelectionStrategy), dao.GetString("ParentSelectionStrategy")); list.Add(task); } } catch (Exception ex) { ErrorHandlingSystem.HandleError(ex); } finally { dao.CloseConnection(); } return(list); }
private void RunUnorderedConfiguration(GAConfiguration config) { if (!config.IsUnorderedConfiguration()) { return; } var solution = (JarrusUnorderedSolution)config.Solution; var ga = new UnorderedGeneticAlgorithm(config, solution.GetNewGene(new Random()).GetType()); try { Config = config; GARun = ga.GARun; RunConfiguration(ga); } catch (Exception ex) { try { ErrorHandlingSystem.HandleError(ex, "Something failed in the process."); } catch (Exception) { } } }