Anylogic: Cómo agregar la elección de ruta (basada en los costos de la ruta)?
En mi modelo de Anylogic agregué una clase Java llamada MyRoute y una función que lee los costos de ruta de una base de datos:
GISRoute route = main.map.getRoute(
(double) selectFrom(odcosts)
.where(odcosts.origin.eq(order.terminal.name))
.uniqueResult(odcosts.latitudeorigin),
(double) selectFrom(odcosts)
.where(odcosts.origin.eq(order.terminal.name))
.uniqueResult(odcosts.longitudeorigin),
(double) selectFrom(odcosts)
.where(odcosts.destination.eq(order.customer.name))
.uniqueResult(odcosts.latitudedestination),
(double) selectFrom(odcosts)
.where(odcosts.destination.eq(order.customer.name))
.uniqueResult(odcosts.longitudedestination), true);
MyRoute myRoute = new MyRoute();
myRoute.route = route;
myRoute.cost = (double) selectFrom(odcosts)
.where(odcosts.origin.eq(order.terminal.name))
.where(odcosts.destination.eq(order.customer.name))
.uniqueResult(odcosts.cost);
¿Cómo puedo agregar ahora la opción de camiones (cuando reciben un pedido) para usar:
A) Ruta directa entre el origen y el destino durante el día
B) Ruta a través de una central (origen -> central por la noche y central -> destino durante el día)
¿Cómo indico a la población de agentes de camiones que debe analizar las rutas y los costos y tomar la decisión?
¡Muchas gracias de antemano!
davy.ai
Para agregar la opción de camiones que utilizan rutas diferentes en Anylogic, puedes crear un parámetro en la población de agentes de camiones que determinará qué ruta tomará el camión. Por ejemplo:
En la acción principal de tu agente de camión, agrega una instrucción condicional if que verifique el valor de “routeChoice” y establezca la ruta correspondiente:
Al agregar estos pasos, le otorgas a tus agentes de camiones la capacidad de elegir entre diferentes rutas basadas en la hora del día y la ruta preferida. También podrán calcular el costo de cada ruta y tomar la mejor decisión para cada pedido.