Exemplo n.º 1
0
        private void importTasksFromArchive(Archive archive)
        {
            List <Entity>      tasks     = models.Task.all(typeof(models.Task));
            List <ArchiveTask> archTasks = archive.Tasks;

            foreach (ArchiveTask archTask in archTasks)
            {
                var task = tasks.FirstOrDefault(x => archTask.equalsEntity(x));
                if (task != null)
                {
                    List <TaskTemplate>    templates = TaskTemplate.templatesOfTaskId(task.ID);
                    List <ArchiveTemplate> archTemps = archTask.Templates;
                    foreach (ArchiveTemplate archTemp in archTemps)
                    {
                        var template = templates.FirstOrDefault(x => archTemp.equalsEntity(x));
                        if (template != null)
                        {
                            List <Selection>        selections = Selection.selectionsOfTaskTemplateId(template.ID);
                            List <ArchiveSelection> archSels   = archTemp.Selections;
                            foreach (ArchiveSelection archSel in archSels)
                            {
                                var selection = selections.FirstOrDefault(x => archSel.equalsEntity(x));
                                if (selection == null)
                                {
                                    importSelection(archSel, template.ID);
                                }
                                else
                                {
                                    archSel.ID = selection.ID;
                                }
                            }
                        }
                        else
                        {
                            importTemplate(archTemp, task.ID);
                        }
                    }

                    List <TaskSolver>        solvers   = TaskSolver.solversOfTaskId(task.ID);
                    List <ArchiveTaskSolver> archSolvs = archTask.Solvers;
                    foreach (ArchiveTaskSolver archSolver in archSolvs)
                    {
                        var solver = solvers.FirstOrDefault(x => archSolver.equalsEntity(x));
                        if (solver == null)
                        {
                            importTaskSolver(archSolver, task.ID);
                        }
                        else
                        {
                            archSolver.ID = solver.ID;
                        }
                    }
                }
                else
                {
                    importTask(archTask);
                }
            }
        }
Exemplo n.º 2
0
        public void UpdateTaskTree()
        {
            for (int i = Tasks.Count - 1; i >= 0; i--)
            {
                Tasks.RemoveAt(i);
            }
            List <Entity> tasks = models.Task.all(typeof(models.Task));

            foreach (models.Task task in tasks)
            {
                List <TaskSolver> solvers    = TaskSolver.solversOfTaskId(task.ID);
                List <Selection>  selections = Selection.selectionsOfDefaultTemplateWithTaskId(task.ID);

                var pers     = new List <TaskSolver>();
                var wards    = new List <TaskSolver>();
                var convnets = new List <TaskSolver>();
                var dectrees = new List <TaskSolver>();
                var kohnets  = new List <TaskSolver>();

                foreach (TaskSolver solver in solvers)
                {
                    if (solver.TypeName.Equals("Perceptron"))
                    {
                        pers.Add(solver);
                    }
                    else if (solver.TypeName.Equals("WardNN"))
                    {
                        wards.Add(solver);
                    }
                    else if (solver.TypeName.Equals("ConvNN"))
                    {
                        convnets.Add(solver);
                    }
                    else if (solver.TypeName.Equals("DecisionTree"))
                    {
                        dectrees.Add(solver);
                    }
                    else if (solver.TypeName.Equals("KohonenNet"))
                    {
                        kohnets.Add(solver);
                    }
                }

                Tasks.Add(new TaskTree
                              (task,
                              selections.ToArray(),
                              pers.ToArray(),
                              dectrees.ToArray(),
                              wards.ToArray(),
                              convnets.ToArray(),
                              kohnets.ToArray(),
                              new string[] { },
                              this));
            }
        }
        public Archive generateArchiveSystem()
        {
            scenarioRelations.Clear();
            selectionRelations.Clear();
            taskSolverRelations.Clear();
            Archive       archive = new Archive();
            List <Entity> tasks   = models.Task.all(typeof(models.Task));

            foreach (models.Task task in tasks)
            {
                ArchiveTask         archTask  = new ArchiveTask(task);
                List <TaskTemplate> templates = TaskTemplate.templatesOfTaskId(task.ID);
                foreach (TaskTemplate template in templates)
                {
                    ArchiveTemplate  archTemp   = new ArchiveTemplate(template);
                    List <Selection> selections = Selection.selectionsOfTaskTemplateId(template.ID);
                    foreach (Selection sel in selections)
                    {
                        ArchiveSelection archSel = new ArchiveSelection(sel);
                        selectionRelations.Add(new RelationExport(sel.ID, archSel));
                        archTemp.Selections.Add(archSel);
                    }
                    List <Parameter> parameters = Parameter.parametersOfTaskTemplateId(template.ID);
                    foreach (Parameter par in parameters)
                    {
                        ArchiveParameter archPar = new ArchiveParameter(par);
                        archTemp.Parameters.Add(archPar);
                    }
                    archTask.Templates.Add(archTemp);
                }
                List <TaskSolver> solvers = TaskSolver.solversOfTaskId(task.ID);
                foreach (TaskSolver solver in solvers)
                {
                    ArchiveTaskSolver archSol = new ArchiveTaskSolver(solver);
                    taskSolverRelations.Add(new RelationExport(solver.ID, archSol));
                    archTask.Solvers.Add(archSol);
                }
                archive.Tasks.Add(archTask);
            }
            List <Entity> scenarios = LearningScenario.all(typeof(LearningScenario));

            foreach (LearningScenario scenario in scenarios)
            {
                ArchiveScenario archScenario = new ArchiveScenario(scenario);
                scenarioRelations.Add(new RelationExport(scenario.ID, archScenario));
                archive.Scenarios.Add(archScenario);
            }
            List <Entity> lSolvers = LearnedSolver.all(typeof(LearnedSolver));

            foreach (LearnedSolver solver in lSolvers)
            {
                ArchiveLearnedSolver   archSol   = new ArchiveLearnedSolver(solver);
                List <LearningQuality> quailties = LearningQuality.qualitiesOfSolverId(solver.ID);
                foreach (LearningQuality quality in quailties)
                {
                    ArchiveLearningQuality archQ = new ArchiveLearningQuality(quality);
                    archSol.Qualities.Add(archQ);
                }
                var find = taskSolverRelations.Find(x => x.ID == solver.TaskSolverID);
                archSol.TaskSolver = (find != null) ? (ArchiveTaskSolver)find.model : null;
                find = selectionRelations.Find(x => x.ID == solver.SelectionID);
                archSol.Selection = (find != null) ? (ArchiveSelection)find.model : null;
                find             = scenarioRelations.Find(x => x.ID == solver.LearningScenarioID);
                archSol.Scenario = (find != null) ? (ArchiveScenario)find.model : null;
                archive.LearnedSolvers.Add(archSol);
            }
            return(archive);
        }