Error message

  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Notice: Trying to access array offset on value of type int in element_children() (line 6595 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of /home3/memec59d/public_html/lescas/includes/common.inc).
  • Deprecated function: The each() function is deprecated. This message will be suppressed on further calls in menu_set_active_trail() (line 2405 of /home3/memec59d/public_html/lescas/includes/menu.inc).

Evaluation Rule Engine

LesCaS contains an evaluation rule engine for the LesCaS operation simulation as shown in Figure.

Evaluation Rule Engine

The evaluation rule engine allows user to:

  • Distance measure: this is the distance measure between any two markers and is used to configure to calculate the shortest path traveled in the optimization engine. The distance can be a Cartesian distance or the actual route distance.
  • Choose rules that must be abide by the vehicles during routing, the current rules for the routing priority include:
    • AllSupplyPointPrecedeDemandPoints: all supply points assigned to a vehicle must be visited first by the vehicle before the vehicle can go to any demand point
    • OneOrMoreSupplyPointPrecedeDemandPoints: the vehicle must go and load resource from one or more supply points first before go and unload the resource at the demand point
    • Don't care: vehicle can carry resource in whatever manner it sees fit
  • Choose rules on how the vehicle will perform its resource loading, the current rules for resource loading include:
    • FirstFoundFirstLoad: the most important/high-priority resource should be loaded first to the vehicle before the less important resource
    • RoundRobin: the more important resource will be allocated a larger compartment with the vehicle so that more of the high-priority resource will be carried by the vehicle compared to the low-priority resource
    • Proportional: the resource will be carried proportional the amount required by the demand points and also by its weight and priority
  • Choose the rule by which the vehicle should dynamically modifies its route during the simulation:
    • PerformUntilFulfill: when a vehicle visits a demand point and finds that the demand point still not fulfilled after unloading, the vehicle will go around the surroundings of the current demand point to search for supply points, it will continually transport resources from these supply points to the demand point it is currently serving, until the demand point appears fulfilled
    • PerformOnce: when a vehicle visits a demand point and finds that the demand point still not fulfilled after unloading, the vehicle will go search the demand points' surrounding and transport resources to the demand point again once more before it moves to its next routing point
    • FollowRoute: the vehicle will go visit each routing point in order of its preplanned route and in multiple iteration of that preplanned route until all the demand points it serves appear fulfilled
  • Choose the target end time at which the operation should terminate or the optimizer must come up with a solution that meets this target end time for the entire operation