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.

Anylogic: ¿Cómo crear múltiples órdenes al mismo tiempo?

He creado un horario en Anylogic dentro de la población de agentes “customer”, donde los clientes deben crear pedidos y enviarlos a “terminales”. Cada día, la cantidad de pedidos que deben enviarse a los terminales es diferente para cada cliente. Quiero crear múltiples pedidos a la vez (todos los días, es decir, en la columna “start” del horario), y la cantidad que quiero crear está en la columna “value” del horario. ¿Cómo puedo hacer esto?

Como puedes ver a continuación, ahora se crea solo un pedido cada día (con la cantidad como parámetro), pero quiero crear esa cantidad de pedidos en ese mismo día/momento. ¡Gracias por la ayuda!

El aspecto de los datos del horario es el siguiente:

Imagen del horario: Schedule

Los datos del horario se ven así:

Imagen de los datos del horario: schedule data

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para crear múltiples pedidos a la vez basados en el horario, puedes utilizar una función de bucle en Anylogic. Primero, crea un parámetro en el agente cliente llamado ‘orderQuantity’. Luego, agrega una función de bucle al bloque ‘On startup’ del agente cliente, que creará los pedidos basados en los datos del horario. La función de bucle debe iterar a través de cada día en el horario, y para cada día en el que el cliente tenga pedidos, crear el número especificado de pedidos.

    Aquí tienes un ejemplo de cómo podría verse el código para la función de bucle:

    int day = 1;
    for (Object[] row : schedule) {
        int quantity = (int) row[1];
        if (quantity > 0) {
            for (int i = 1; i <= quantity; i++) {
                Order order = new Order();
                order.setTerminal(terminal);
                order.setDay(day);
                customer.addOrder(order);
            }
        }
        day++;
    }
    

    Este código asume que los datos del horario se almacenan en un arreglo llamado ‘schedule’, donde cada fila es un arreglo que contiene el número del día y la cantidad de pedidos. También asume que el cliente tiene un método llamado ‘addOrder’ que agrega un nuevo pedido a la lista de pedidos del cliente.

    Con este código, cuando la simulación comienza, la función de bucle iterará a través de cada día en el horario y creará el número especificado de pedidos para cada día en el que el cliente tenga pedidos. La variable ‘day’ se utiliza para llevar un seguimiento del número de día actual, que se utiliza al crear los pedidos.

    Asegúrate de establecer el parámetro ‘orderQuantity’ para cada cliente basado en los datos del horario antes de que comience la simulación. Puedes hacer esto manualmente o con código, según tus necesidades.

    ¡Espero que esto te sea de ayuda! Avísame si tienes alguna pregunta adicional.

Comments are closed.