public CoverageFitness()
        {
			dist_trav=0.0;
			coll_count=0;			
			grid=null;
            accum = 0.0;
			stop_accum=0.0;
        }
Exemple #2
0
 public CoverageFitness()
 {
     dist_trav  = 0.0;
     coll_count = 0;
     grid       = null;
     accum      = 0.0;
     stop_accum = 0.0;
 }
Exemple #3
0
        void IBehaviorCharacterization.update(SimulatorExperiment exp)
		{
			grid = ((GridCollision)((MultiAgentExperiment)exp).collisionManager).grid;
            dim = grid.coarseness;
            if (exp.timeSteps <=1)
            {
                for (int x = 0; x < dim; x++)
                {
                    for (int y = 0; y < dim; y++)
                    {
                        int gx = (int)((double)x * grid.gridx) + (int)(grid.gridx / 2.0);
                        int gy = (int)((double)y * grid.gridy) + (int)(grid.gridy / 2.0);
                        grid.grid[x, y].viewed = 0.0f;
                        grid.grid[x, y].idleness = 0.0f;  
						grid.grid[x, y].avg_idle=0.0f;
					}
                }
            }

            //if(!(Experiment.timeSteps % 5 ==0))
            //{
            //    grid.decay_viewed(0.3);
            //    return;
            //}

            for (int x = 0; x < dim; x++)
            {
                for (int y = 0; y < dim; y++)
                {
                    int gx = (int)((double)x * grid.gridx) + (int)(grid.gridx / 2.0);
                    int gy = (int)((double)y * grid.gridy) + (int)(grid.gridy / 2.0);
                    if ((exp.environment.AOIRectangle.Contains(gx, gy)))
                    {
                        if (grid.grid[x, y].viewed>=0.95f)
                        {
                            grid.grid[x, y].idleness = 0.0f;
                        }
                        else
                        {
                            if (grid.grid[x, y].idleness<255)
                                grid.grid[x, y].idleness += 1.0f;
                            
                            grid.grid[x,y].avg_idle += grid.grid[x, y].idleness;
                        }
                        //accum +=
                    }
                }
            }
			
            
        	
		}
Exemple #4
0
        void IBehaviorCharacterization.update(SimulatorExperiment exp)
        {
            grid = ((GridCollision)((MultiAgentExperiment)exp).collisionManager).grid;
            dim  = grid.coarseness;
            if (exp.timeSteps <= 1)
            {
                for (int x = 0; x < dim; x++)
                {
                    for (int y = 0; y < dim; y++)
                    {
                        int gx = (int)((double)x * grid.gridx) + (int)(grid.gridx / 2.0);
                        int gy = (int)((double)y * grid.gridy) + (int)(grid.gridy / 2.0);
                        grid.grid[x, y].viewed   = 0.0f;
                        grid.grid[x, y].idleness = 0.0f;
                        grid.grid[x, y].avg_idle = 0.0f;
                    }
                }
            }

            //if(!(Experiment.timeSteps % 5 ==0))
            //{
            //    grid.decay_viewed(0.3);
            //    return;
            //}

            for (int x = 0; x < dim; x++)
            {
                for (int y = 0; y < dim; y++)
                {
                    int gx = (int)((double)x * grid.gridx) + (int)(grid.gridx / 2.0);
                    int gy = (int)((double)y * grid.gridy) + (int)(grid.gridy / 2.0);
                    if ((exp.environment.AOIRectangle.Contains(gx, gy)))
                    {
                        if (grid.grid[x, y].viewed >= 0.95f)
                        {
                            grid.grid[x, y].idleness = 0.0f;
                        }
                        else
                        {
                            if (grid.grid[x, y].idleness < 255)
                            {
                                grid.grid[x, y].idleness += 1.0f;
                            }

                            grid.grid[x, y].avg_idle += grid.grid[x, y].idleness;
                        }
                        //accum +=
                    }
                }
            }
        }
Exemple #5
0
        void IFitnessFunction.update(SimulatorExperiment Experiment, Environment environment, instance_pack ip)
        {
            grid = ((GridCollision)(ip.collisionManager)).grid;

            if (!(ip.timeSteps % (int)(1 / Experiment.timestep) == 0))
            {
                return;
            }

            int dim = grid.coarseness;

            for (int x = 0; x < dim; x++)
            {
                for (int y = 0; y < dim; y++)
                {
                    int gx = (int)((double)x * grid.gridx) + (int)(grid.gridx / 2.0);
                    int gy = (int)((double)y * grid.gridy) + (int)(grid.gridy / 2.0);
                    if ((environment.AOIRectangle.Contains(gx, gy)))
                    {
                        accum      += grid.grid[x, y].viewed;
                        stop_accum += grid.grid[x, y].viewed2;
                    }
                }
            }

            foreach (Robot r in ip.robots)
            {
                if (!r.autopilot)
                {
                    foreach (ISensor s in r.sensors)
                    {
                        if (s is SignalSensor)
                        {
                            SignalSensor ss  = (SignalSensor)s;
                            double       val = ss.get_value();
                            val += 0.05;
                            if (val > 1.0)
                            {
                                val = 1.0;
                            }
                            ss.setSignal(val);
                        }
                    }
                }
            }


            grid.decay_viewed(0);
            //grid.decay_viewed(.95);
        }
 public override void Initialize(Environment e, SimulatorExperiment _exp, List <Robot> _rbts)
 {
     rbts = _rbts;
     env  = e;
     exp  = _exp;
     if (_exp is MultiAgentExperiment)
     {
         agentCollide = ((MultiAgentExperiment)_exp).agentsCollide;
         agentVisible = ((MultiAgentExperiment)_exp).agentsVisible;
     }
     grid = new collision_grid(e, coarseness);
     foreach (Wall w in env.walls)
     {
         grid.insert_into_grid(w);
     }
 }
		public override void Initialize (Environment e,SimulatorExperiment _exp,List<Robot> _rbts)
		{
			rbts=_rbts;
			env=e;
			exp=_exp;
            if (_exp is MultiAgentExperiment)
            {
                agentCollide = ((MultiAgentExperiment)_exp).agentsCollide;
                agentVisible = ((MultiAgentExperiment)_exp).agentsVisible;
            }
                grid = new collision_grid(e,coarseness);
			foreach (Wall w in env.walls)
			{
				grid.insert_into_grid(w);
			}
		}
        void IFitnessFunction.update(SimulatorExperiment Experiment, Environment environment)
        {
            if (!(Experiment.timeSteps % (int)(1 / Experiment.timestep) == 0))
            {
                //grid.decay_viewed(0);
                return;
            }

            if (!allLeft)
            {
                bool allOut = true;
                for (int j = 0; j < Experiment.robots.Count; j++)
                {
                    if (!environment.AOIRectangle.Contains((int)Experiment.robots[j].location.x, (int)Experiment.robots[j].location.y))
                    {
                        allOut = false;
                        break;
                    }
                }
                if (allOut)
                {
                    allLeft = true;
                }
            }

            grid = ((GridCollision)((MultiAgentExperiment)Experiment).collisionManager).grid;


            int dim = grid.coarseness;

            for (int x = 0; x < dim; x++)
            {
                for (int y = 0; y < dim; y++)
                {
                    int gx = (int)((double)x * grid.gridx) + (int)(grid.gridx / 2.0);
                    int gy = (int)((double)y * grid.gridy) + (int)(grid.gridy / 2.0);
                    if ((environment.AOIRectangle.Contains(gx, gy)))
                    {
                        accum += grid.grid[x, y].viewed;
                    }
                }
            }

            //grid.decay_viewed(.9);
        }
        void IFitnessFunction.update(SimulatorExperiment Experiment, Environment environment,instance_pack ip)
        {
			
            grid = ((GridCollision)(ip.collisionManager)).grid;
			
            if (!(ip.timeSteps % (int)(1 / Experiment.timestep) == 0))
            {
                return;
            }

            int dim = grid.coarseness;
            for (int x = 0; x < dim; x++)
            {
                for (int y = 0; y < dim; y++)
                {
                    int gx = (int)((double)x * grid.gridx) + (int)(grid.gridx / 2.0);
                    int gy = (int)((double)y * grid.gridy) + (int)(grid.gridy / 2.0);
                    if ((environment.AOIRectangle.Contains(gx, gy)))
                    {
                        accum += grid.grid[x, y].viewed;
						stop_accum+= grid.grid[x,y].viewed2;
                    }

                }
            }

			foreach(Robot r in ip.robots) {
				if (!r.autopilot) {
					foreach(ISensor s in r.sensors) 
						if(s is SignalSensor) {
						 SignalSensor ss = (SignalSensor)s;
						 double val = ss.get_value();
						 val+=0.05;
						 if(val>1.0) val=1.0;
						 ss.setSignal(val);
						}
				}
			}
			

            grid.decay_viewed(0);
            //grid.decay_viewed(.95);
        }
 public EscapeAndCoverageFitness()
 {
     grid  = null;
     accum = 0.0;
 }
        void IFitnessFunction.update(SimulatorExperiment Experiment, Environment environment)
        {
			
            if (!(Experiment.timeSteps % (int)(1 / Experiment.timestep) == 0))
            {
                //grid.decay_viewed(0);
                return;
            }

            if(!allLeft)
            {
                bool allOut = true;
            for (int j = 0; j < Experiment.robots.Count; j++)
            {
                if(!environment.AOIRectangle.Contains((int)Experiment.robots[j].location.x,(int)Experiment.robots[j].location.y))
                {
                    allOut = false;
                    break;
                }
            }
                if(allOut)
                    allLeft = true;
            }
			 
			grid = ((GridCollision)((MultiAgentExperiment)Experiment).collisionManager).grid;
			
            
            int dim = grid.coarseness;
            for (int x = 0; x < dim; x++)
            {
                for (int y = 0; y < dim; y++)
                {
                    int gx = (int)((double)x * grid.gridx) + (int)(grid.gridx / 2.0);
                    int gy = (int)((double)y * grid.gridy) + (int)(grid.gridy / 2.0);
                    if ((environment.AOIRectangle.Contains(gx, gy)))
                        accum += grid.grid[x, y].viewed;
                }
            }

            //grid.decay_viewed(.9);
        }
        public EscapeAndCoverageFitness()
        {
			grid=null;
            accum = 0.0;
        }