Ejemplo n.º 1
0
        /// <summary>
        /// Initializes a new instance of the <see cref="DrayageOptimizer"/> class.
        /// </summary>
        /// <param name="probabilityMatrix">The probability matrix.</param>
        /// <param name="routeService">The route service.</param>
        /// <param name="routeExitFunction">The route exit function.</param>
        /// <param name="logger">The logger.</param>
        /// <param name="pheromoneMatrix">The pheromone matrix.</param>
        /// <param name="nodeService">The node service.</param>
        /// <param name="randomNumberGenerator">The random number generator.</param>
        /// <param name="nodeFactory">The node factory.</param>
        /// <param name="jobNodeService">The job Node Service.</param>
        /// <param name="routeStopService">The route stop service.</param>
        public DrayageOptimizer(IProbabilityMatrix probabilityMatrix,
                                IRouteService routeService,
                                IRouteExitFunction routeExitFunction,
                                ILogger logger,
                                IPheromoneMatrix pheromoneMatrix,
                                IRandomNumberGenerator randomNumberGenerator,
                                IRouteStatisticsService routeStatisticsService,
                                IJobNodeService jobNodeService,
                                IRouteStopService routeStopService)
        {
            _probabilityMatrix      = probabilityMatrix;
            _routeExitFunction      = routeExitFunction;
            _logger                 = logger;
            _pheromoneMatrix        = pheromoneMatrix;
            _randomNumberGenerator  = randomNumberGenerator;
            _routeStatisticsService = routeStatisticsService;
            _jobNodeService         = jobNodeService;
            _routeStopService       = routeStopService;
            _routeService           = routeService;

            // default values
            EnableParallelism           = true;
            PheromoneUpdateFrequency    = 5;
            MaxIterations               = 20000;
            MaxIterationSinceBestResult = 1500;
            MaxExecutionTime            = 100;
        }
Ejemplo n.º 2
0
 public ProbabilityMatrix(IPheromoneMatrix pheromoneMatrix, IRouteService routeService, IObjectiveFunction objectiveFunction, IRandomNumberGenerator randomNumberGenerator, IRouteStatisticsService routeStatisticsService)
 {
     _routeService           = routeService;
     _objectiveFunction      = objectiveFunction;
     _randomNumberGenerator  = randomNumberGenerator;
     _routeStatisticsService = routeStatisticsService;
     PheromoneMatrix         = pheromoneMatrix;
 }
Ejemplo n.º 3
0
 public RouteService(IRouteExitFunction routeExitFunction,
                     INodeService nodeService,
                     IRouteStatisticsComparer routeStatisticsComparer,
                     IRouteStatisticsService routeStatisticsService,
                     INodeConnectionFactory nodeConnectionFactory)
 {
     _routeExitFunction       = routeExitFunction;
     _nodeService             = nodeService;
     _routeStatisticsComparer = routeStatisticsComparer;
     _routeStatisticsService  = routeStatisticsService;
     _nodeConnectionFactory   = nodeConnectionFactory;
 }