Пример #1
0
        public JsonResult GetNextStepPassengers(Passenger[][] passengers)
        {
            PassengersHelper.SetNeighborsPassengers(passengers, passengerBehaviour);
            MainAlgorithm.Run(passengers);
            PassengersHelper.ClearNeighborsPassengers(passengers);

            return(new JsonResult(new { passengers }));
        }
Пример #2
0
        public static TransportType GetBestNextTransportWithEpsilonMush(QFuncInfo qFuncInfo)
        {
            var bestTransportType = qFuncInfo.BusReward > qFuncInfo.CarReward ? TransportType.Bus : TransportType.Car;

            if (rnd.NextDouble() > Epsilon)
            {
                return(bestTransportType);
            }
            return(PassengersHelper.GetOtherRandomTransportType(bestTransportType));
        }
Пример #3
0
        public IActionResult CreateSandboxPassengers(int rowCount, int columnCount, int transmissionType)
        {
            var passengers = new List <List <Passenger> >();

            for (var i = 0; i < rowCount; i++)
            {
                passengers.Add(new List <Passenger>());
                for (var j = 0; j < columnCount; j++)
                {
                    passengers[i]
                    .Add(PassengersHelper.CreatePassenger(passengerBehaviour, i * 10 + j, (TransmissionType)transmissionType));
                }
            }

            return(PartialView(passengers));
        }
Пример #4
0
        public TransportType GetBestNextTransport(string currentAgentState)
        {
            var findFluent = collection.Find(x => x.State == currentAgentState).FirstOrDefault();

            if (findFluent == null)
            {
                return(PassengersHelper.GetRandomtransportType());
            }

            var best = findFluent.AgentActions.First();

            foreach (var action in findFluent.AgentActions)
            {
                if (action.AverageReward >= best.AverageReward)
                {
                    best = action;
                }
            }

            return(best.Transport.ToEnum <TransportType>());
        }