예제 #1
0
        public List <IAgent> CreateAgents(IGraph graph)
        {
            int numOfAgents;

            do
            {
                Console.WriteLine("Please specify: <numOfAgents>");
            } while (!int.TryParse(Console.ReadLine(), out numOfAgents));

            Console.WriteLine(factory.MapToString());

            Console.WriteLine("Please specify: <agentType>;<vertexId> (also add ';<initialDelay>' for vandal agents or ';<maximumExpands> for RTA* agents)");
            var agents = new List <IAgent>();

            for (var agentId = 0; agentId < numOfAgents;)
            {
                var parts    = Console.ReadLine()?.Split(';');
                var optional = 0;
                if (parts == null || parts.Length < 2 ||
                    !int.TryParse(parts[0], out var agentType) || !int.TryParse(parts[1], out var vertexId) ||
                    ((agentType == 2 || agentType == 5) && parts.Length > 2 && !int.TryParse(parts[2], out optional)))
                {
                    Console.WriteLine("Wrong parameters.");
                    continue;
                }

                var agent = factory.CreateAgent(agentType, vertexId, optional);

                agents.Add(agent);
                agentId++;
            }

            return(agents);
        }
예제 #2
0
 protected override InvestAgent getFallBackAgent()
 {
     if (_fallBackAgent == null)
     {
         AgentsFactory factory = new AgentsFactory();
         _fallBackAgent = factory.CreateAgent(ConfigurationManager.AppSettings["RegressionFallBackAgent"], _gm, _comm, _isTrain);
     }
     return(_fallBackAgent);
 }