Setting constraints in constrOptim

后端 未结 1 789
名媛妹妹
名媛妹妹 2020-12-28 09:41

Is there an easy method to set theta, ui, ci for the following constraints in the constrOptim function?

c1

        
相关标签:
1条回答
  • 2020-12-28 10:39

    Just rewrite the constraints in the desired form, ui %*% theta >= ci.

    # Initial formulation of the constraints
    c1   <= x1
            x1 <= c2
    x1+1 <= x2
            x2 <= c2+1
    x2+1 <= x3
            x3 <= c2+2
    x3+1 <= x4
            x4 <= c2+3
    
    # Rewrite them
      x1                >= c1
    - x1                >= -c2
    - x1 + x2           >= 1
         - x2           >= -c2 - 1
         - x2 + x3      >= 1
              - x3      >= -c2 - 2
              - x3 + x4 >= 1
                   - x4 >= -c2 - 3
    
    # In matrix form
    ui <- matrix(c(
        1,  0,  0,  0,
       -1,  0,  0,  0,
       -1,  1,  0,  0,
        0, -1,  0,  0,
        0, -1,  1,  0,
        0,  0, -1,  0,
        0,  0, -1,  1,
        0,  0,  0, -1 
      ),
      ncol  = 4,
      byrow = TRUE
    )
    ci <- c( c1, -c2, 1, -c2-1, 1, -c2-2, 1, -c2-3 )
    
    0 讨论(0)
提交回复
热议问题