Ejemplo n.º 1
0
        public ISolution GetSolution(IParticleSwarmProblem problem)
        {
            var wms = problem.GetWorkerMans();
            var wtd = problem.GetWorkToDos();

            Solution solution = new Solution()
            {
                SolutionPairs = new List <ISolutionPair>()
            };
            PositionPS pos = (this.Position as PositionPS);

            int[] positions = pos.GetPosition();
            for (int i = 0; i < positions.Length; i++)
            {
                solution.SolutionPairs.Add(new SolutionPair()
                {
                    WorkerMan = wms.ElementAt(positions[i]), WorkToDo = wtd.ElementAt(i)
                });
            }

            return(solution);


            //Solution solution = new Solution() { SolutionPairs = new List<ISolutionPair>() };
            //int workers = problem.GetWorkerMans().Count;
            //int work = problem.GetWorkToDos().Count;

            //for (int i = 0; i < work; i++)
            //{
            //    int cu = this.Position.GetCurrent() / (i+1);
            //    cu += this.Position.GetCurrent();
            //    if (cu < 0)
            //    {
            //        cu = -1 * cu;
            //    }
            //    while (cu >= workers)
            //    {
            //        cu -= workers;
            //    }
            //    int index = cu;
            //    WorkerMan wm = problem.GetWorkerMans().ElementAt(index);
            //    WorkToDo wtd = problem.GetWorkToDos().ElementAt(i);
            //    solution.SolutionPairs.Add(new SolutionPair() { WorkerMan = wm, WorkToDo = wtd });
            //}

            //return solution;
        }
Ejemplo n.º 2
0
 public ParticleSwarmOptimaziation(IParticleSwarmProblem problem)
 {
     this.problem = problem;
 }