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.

¿Cómo configuro una restricción JuMP igual al valor en un arreglo?

Tengo dificultades para agregar una restricción a mi modelo.

La suma desde i = 1 hasta N de Xijk = Wjk para todos los valores de j, k.

Esto es lo que he intentado:

N = 10
W = [11 12 13 14 15 16 17;
9 14 21 21 12 15 16;
14 21 15 13 12 17 17]

para i desde 1 hasta N

@constraint(m, sum(x[i, j, k] para j en 1:3, k en 1:7) >= W[j, k])

fin

Pero siempre me sale un error que me dice que j y k no están definidos.
Agradecería ayuda con la sintaxis correcta.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que el problema está con el alcance de j y k. Están definidos dentro del bucle for y no fuera de él, por lo que no se pueden utilizar en la declaración de restricción. Para solucionarlo, puede definir j y k fuera del bucle y hacer referencia a ellos dentro del bucle:

    N = 10
    W = [11 12 13 14 15 16 17;
         9 14 21 21 12 15 16;
         14 21 15 13 12 17 17]
    
    # Define j and k outside of the loop
    j_vals = 1:3
    k_vals = 1:7
    
    for i in 1:N
        # Reference j and k within the loop
        @constraint(m, sum(x[i, j, k] for j in j_vals, k in k_vals) == W[j, k])
    end
    

    Esto debería agregar correctamente la restricción especificada para su modelo.

Comments are closed.