Skip to content

Commit dd3c51b

Browse files
committed
Using just exact algorithm: best now with expanded hessian.
1 parent 8b78c7c commit dd3c51b

1 file changed

Lines changed: 8 additions & 18 deletions

File tree

src/models/solve_allocation_by_duality_cgc.jl

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,6 @@ function hessian_duality_cgc(
141141
graph = auxdata.graph
142142
nodes = graph.nodes
143143
kappa = auxdata.kappa
144-
inexact_algo = param.duality == true # param.duality == 2 for exact algorithm
145144
beta = param.beta
146145
m1dbeta = -1 / beta
147146
sigma = param.sigma
@@ -160,12 +159,9 @@ function hessian_duality_cgc(
160159
# Constant term: first part of Bprime
161160
cons = m1dbeta * n1dnum1 * numbetam1
162161
## Constant in T'
163-
if inexact_algo
164-
cons2 = numbetam1 / (numbetam1+nu*beta)
165-
else
166-
# New: constant in T' -> More accurate!
167-
cons3 = m1dbeta * n1dnum1 * (numbetam1+nu*beta) / (1+beta)
168-
end
162+
# cons2 = numbetam1 / (numbetam1+nu*beta)
163+
# New: constant in T' -> More accurate!
164+
cons3 = m1dbeta * n1dnum1 * (numbetam1+nu*beta) / (1+beta)
169165

170166
# Precompute elements
171167
res = recover_allocation_duality_cgc(x, auxdata)
@@ -219,19 +215,13 @@ function hessian_duality_cgc(
219215
if jd == j
220216
KPprimeAB1 = m1dbeta * Pjn[j, nd]^(-sigma) * PCj[j]^(sigma-1)
221217
term += Qjkn[j, k, n] * (KPprimeAB1 - KPAprimeB1 + KPABprime1) # Derivative of Qjkn
222-
if inexact_algo
223-
term += T * (((1+beta) * KPprimeAB1 + cons2 * KPABprime1) * G + Gprime) # T'G + TG'
224-
else
225-
term += T * ((1+beta) * KPprimeAB1 * G + Gprime) # T'G (first part) + TG'
226-
term += cons3 * Qjkn[j, k, nd] / PCj[j] * G # Second part of T'G
227-
end
218+
# term += T * (((1+beta) * KPprimeAB1 + cons2 * KPABprime1) * G + Gprime) # T'G + TG'
219+
term += T * ((1+beta) * KPprimeAB1 * G + Gprime) # T'G (first part) + TG'
220+
term += cons3 * Qjkn[j, k, nd] / PCj[j] * G # Second part of T'G
228221
elseif jd == k
229222
term += Qjkn[j, k, n] * (KPAprimeB1 - KPABprime1) # Derivative of Qjkn
230-
if inexact_algo
231-
term -= T * cons2 * KPABprime1 * G # T'G: second part [B'(k) has opposite sign]
232-
else
233-
term -= cons3 * Qjkn[j, k, nd] / PCj[j] * G # Second part of T'G
234-
end
223+
# term -= T * cons2 * KPABprime1 * G # T'G: second part [B'(k) has opposite sign]
224+
term -= cons3 * Qjkn[j, k, nd] / PCj[j] * G # Second part of T'G
235225
end
236226
end
237227
if Qjkn[k, j, n] > 0 # Flows in the direction of j

0 commit comments

Comments
 (0)