Question: Issue in Determining Optimal KKT Multiplier (μ₁) in Constrained Maximization Problem

I am attempting to solve an optimization problem using the Karush–Kuhn–Tucker (KKT) conditions, where the objective function is to be maximized subject to a constraint that may or may not be binding. However, when solving the system, the KKT multiplier (μ1​) consistently evaluates to zero, even when the constraint appears to be active. I am unable to determine the optimal value of μ1​ and seek guidance on how to obtain the optimal values of Pn, Pr, and w, as well as the correct condition for μ1​.


 

``

restart

with(Optimization); with(plots); with(LinearAlgebra)

_local(Pi)

Pi

(1)

``

`π_m` := proc (Pn, Pr, w) options operator, arrow; (Pn-Cn)*(1-(Pn-Pr)/(1-delta))+(Pr-w-Crm)*alpha*(1/2+(1/2)*((Cr*Pn*i2-Cr*Pn*tau-Cr*Pr*i2+Cr*Pr*tau+Cr*delta*i2-Cr*delta*tau+2*delta*i2*tau-2*delta*tau^2+2*w*tau*delta-Cr*i2+Cr*tau-2*i2*tau+2*tau^2-2*w*tau)/(Cr*Pn-Cr*Pr+Cr*delta+4*tau*delta-Cr-4*tau)-i2)/tau)*(1-(Pn-Pr)/(1-delta))-Ce*rho0*(1-(Pn-Pr)/(1-delta)) end proc

proc (Pn, Pr, w) options operator, arrow; (Pn-Cn)*(1-(Pn-Pr)/(1-delta))+(Pr-w-Crm)*alpha*(1/2+(1/2)*((Cr*Pn*i2-Cr*Pn*tau-Cr*Pr*i2+Cr*Pr*tau+Cr*delta*i2-Cr*delta*tau+2*delta*i2*tau-2*delta*tau^2+2*w*tau*delta-Cr*i2+Cr*tau-2*i2*tau+2*tau^2-2*w*tau)/(Cr*Pn-Cr*Pr+Cr*delta+4*tau*delta-Cr-4*tau)-i2)/tau)*(1-(Pn-Pr)/(1-delta))-Ce*rho0*(1-(Pn-Pr)/(1-delta)) end proc

(2)

``

``

NULL

C1 := (((Cr+4*tau)*delta-4*tau+(Pn-Pr-1)*Cr)*rho0+(delta-1)*(i2-tau))/(delta-1) <= w

(((Cr+4*tau)*delta-4*tau+(Pn-Pr-1)*Cr)*rho0+(delta-1)*(i2-tau))/(delta-1) <= w

(3)

NULL

# No equality constraints
 
      f[1] := (Pn,Pr,w) -> (((Cr + 4*tau)*delta - 4*tau + (Pn - Pr - 1)*Cr)*rho0 + (delta - 1)*(i2 - tau))/(delta - 1)-w:

 

# Lagrangian (we want to maximize `&pi;_m` so to minimize -`&pi;_m`

L := -`&pi;_m`(Pn,Pr,w) + add(f[i](Pn,Pr,w)*mu[i], i=1):

dLdPn := collect(diff(L, Pn), [Pn]):
dLdPr := collect(diff(L, w), [Pr]):
dLdw := collect(diff(L, w), [w]):

KKT_conditions := [
                    seq(mu[i] >= 0, i=1),         # Dual feasibility conditions
                    dLdPn = 0,  
dLdPr = 0,
dLdw = 0,                     # Stationarity condition
                    seq(``(f[i](Pn,Pr,w)) <= 0, i=1),  # Primal feasibility conditions
                    add(mu[i]*f[i](Pn,Pr,w) = 0, i=1)  # Complementary slackness
                  ]:

 print~(KKT_conditions):

0 <= mu[1]

 

-1+(Pn-Pr)/(1-delta)+(Pn-Cn)/(1-delta)-(1/2)*(Pr-w-Crm)*alpha*((Cr*i2-Cr*tau)/(Cr*Pn-Cr*Pr+Cr*delta+4*delta*tau-Cr-4*tau)-(Cr*Pn*i2-Cr*Pn*tau-Cr*Pr*i2+Cr*Pr*tau+Cr*delta*i2-Cr*delta*tau+2*delta*i2*tau-2*delta*tau^2+2*delta*tau*w-Cr*i2+Cr*tau-2*i2*tau+2*tau^2-2*tau*w)*Cr/(Cr*Pn-Cr*Pr+Cr*delta+4*delta*tau-Cr-4*tau)^2)*(1-(Pn-Pr)/(1-delta))/tau+(Pr-w-Crm)*alpha*(1/2+(1/2)*((Cr*Pn*i2-Cr*Pn*tau-Cr*Pr*i2+Cr*Pr*tau+Cr*delta*i2-Cr*delta*tau+2*delta*i2*tau-2*delta*tau^2+2*delta*tau*w-Cr*i2+Cr*tau-2*i2*tau+2*tau^2-2*tau*w)/(Cr*Pn-Cr*Pr+Cr*delta+4*delta*tau-Cr-4*tau)-i2)/tau)/(1-delta)-Ce*rho0/(1-delta)+Cr*rho0*mu[1]/(delta-1) = 0

 

alpha*(1/2+(1/2)*((Cr*Pn*i2-Cr*Pn*tau-Cr*Pr*i2+Cr*Pr*tau+Cr*delta*i2-Cr*delta*tau+2*delta*i2*tau-2*delta*tau^2+2*delta*tau*w-Cr*i2+Cr*tau-2*i2*tau+2*tau^2-2*tau*w)/(Cr*Pn-Cr*Pr+Cr*delta+4*delta*tau-Cr-4*tau)-i2)/tau)*(1-(Pn-Pr)/(1-delta))-(1/2)*(Pr-w-Crm)*alpha*(2*delta*tau-2*tau)*(1-(Pn-Pr)/(1-delta))/((Cr*Pn-Cr*Pr+Cr*delta+4*delta*tau-Cr-4*tau)*tau)-mu[1] = 0

 

alpha*(2*delta*tau-2*tau)*(1-(Pn-Pr)/(1-delta))*w/((Cr*Pn-Cr*Pr+Cr*delta+4*delta*tau-Cr-4*tau)*tau)+alpha*(1/2+(1/2)*((Cr*Pn*i2-Cr*Pn*tau-Cr*Pr*i2+Cr*Pr*tau+Cr*delta*i2-Cr*delta*tau+2*delta*i2*tau-2*delta*tau^2-Cr*i2+Cr*tau-2*i2*tau+2*tau^2)/(Cr*Pn-Cr*Pr+Cr*delta+4*delta*tau-Cr-4*tau)-i2)/tau)*(1-(Pn-Pr)/(1-delta))-(1/2)*(Pr-Crm)*alpha*(2*delta*tau-2*tau)*(1-(Pn-Pr)/(1-delta))/((Cr*Pn-Cr*Pr+Cr*delta+4*delta*tau-Cr-4*tau)*tau)-mu[1] = 0

 

``((((Cr+4*tau)*delta-4*tau+(Pn-Pr-1)*Cr)*rho0+(delta-1)*(i2-tau))/(delta-1)-w) <= 0

 

((((Cr+4*tau)*delta-4*tau+(Pn-Pr-1)*Cr)*rho0+(delta-1)*(i2-tau))/(delta-1)-w)*mu[1] = 0

(4)

 

NULL


 

Download Solve_mu1.mw

Please Wait...