0

I am currently trying to implement a bigger simulation exercise but i'm stuck with this bit. The aim is to find the vector p* (2x1) that maximizes this function (p* = argmax of h): Equation Also Y and q are given and all other quantities in the function are defined using them.

P_priority_i <- function(unknown, arg1, arg2, i){ 
mu = 2
delta = 0.00001
c <- c(pbar[i,] + rep(delta,m))
e <- rep(0,2)
s <- rep(0,2)
for (j in 1:m){ 
    e[j] <- x[i,j] + sum(A[[j]][i,]*min(pbar[i,j],arg1[i,j]))
}
if(y[i,'countries'] != 'IT'){ 
   s[1] <- min(pbar[i,1],(max(0,sum(arg2*e)))/arg2[1])
   s[2] <- min(pbar[i,2],(max(0,sum(arg2*e)-arg2[1]*s[1]))/arg2[2])
   value <- -0.5*t(c-unknown)%*%diag(arg2/(c-s))%*%(c-unknown)
return(value)
} else { 
   s[2] <- min(pbar[i,2],(max(0,sum(arg2*e)))/arg2[2])
   s[1] <- min(pbar[i,1],(max(0,sum(arg2*e)-arg2[2]*s[2]))/arg2[1])
   value <- -0.5*t(c-unknown)%*%diag(arg2/(c-s))%*%(c-unknown)
   return(value)
   }}

I've checked the formulation of the function, whose output is a scalar, and it is correct.

I also have 3 constraints on p*:

Constraints where \bar{p} and x are given quantities.

I've found quadprog package but I don't know how to solve this particular problem using solve.QP function () which supposes an objective function as (− d^T b + 0.5 b^T D b). The problem is that the argument of my maximization should be p and not (c-p) (also the constrains are formulated w.r.t p).

How can i set up this in R?

ank13
  • 1
  • 1

0 Answers0