public JsonResult GetNextStepPassengers(Passenger[][] passengers) { PassengersHelper.SetNeighborsPassengers(passengers, passengerBehaviour); MainAlgorithm.Run(passengers); PassengersHelper.ClearNeighborsPassengers(passengers); return(new JsonResult(new { passengers })); }
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)); }
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)); }
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>()); }