Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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);
        }
Beispiel #3
0
        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) { }
            }
        }