es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El bloque “selectblock” de AnyLogic, cuando se le indica que es “true”, devuelve el mismo agente.

Estoy simulando la entrega de última milla y quiero evaluar de forma iterativa las emisiones de CO2 entre paradas. Los números de la primera evaluación de la ruta se suman, es decir, cuenta/remueve correctamente cada parada incrustada dentro de la ruta. El problema es que cuando se completa la primera ruta, el modelo debería considerar la siguiente ruta incrustada en un nuevo agente de tipo ‘Pedido’, en ‘Hacia el consumidor’, pero no lo hace. Según lo que puedo ver, el agente del pedido no se actualiza después de que se cumpla la condición en el bloque de selección. Sin embargo, no estoy seguro de por qué hace esto. Cuando se satisface la condición, el agente continúa hacia el destino. ¿Alguien sabe cómo puedo asegurar esta actualización del agente?

El modelo de AnyLogic se ve de la siguiente manera:
enter image description here

En el bloque de origen, creo agentes siguiendo los resultados de optimización mediante:

int r = 0;
agent.routeVeh = (int) parVehicle.get(r);
agent.route = (List) parRoute.get(r);
agent.routeDep = (int) parDepot.get(r); 
r++;

Y en el bloque de selección tengo:

enter image description here

enter image description here

El bloque ‘Hacia el consumidor’:

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está relacionado con el hecho de que el agente Order no se está actualizando después de que se cumple la condición en el bloque select. Una posible solución podría ser agregar un método al agente Order que actualice su estado una vez que se cumpla la condición. Esto podría ser disparado en el bloque toConsumer antes de enviar el agente al destino. Otra posible solución podría ser modificar el bloque selectpara actualizar el estado del agente Order directamente antes de enviarlo al bloque toConsumer. Además, podría ser útil verificar si el agente Order se está inicializando correctamente antes de ingresar al bloque select.

Comments are closed.