Differentiation of problems with Almost Locally Solved termination status
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Esegui prima l'esempio minimo funzionante di Julia, quindi traccia DiffOpt.forward_differentiate! e la gestione dello stato di terminazione Almost Locally Solved. Il lavoro è completato quando l'esempio completa con successo la differenziazione in avanti per quello stato.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
DiffOpt seems to not suppoer problems with the termination status Almost Locally Solved. Below is a minimum working example.
using JuMP
using Ipopt
using DiffOpt
# Create differentiable model with loose tolerances
diff_optimizer = optimizer_with_attributes(
Ipopt.Optimizer,
"print_level" => 3,
"tol" => 1e-2,
"acceptable_tol" => 1e-1,
"max_iter" => 5,
"acceptable_iter" => 2
)
model = Model(() -> DiffOpt.diff_optimizer(diff_optimizer))
# Decision variables
@variable(model, x >= 0)
@variable(model, y >= 0)
# Parameters (weights in objective)
w = [0.1, 0.1] # Initial parameter values
weight = w
weight = JuMP.@variable(
model,
[j in keys(w)] in MOI.Parameter(w[j]),
base_name = "weight")
@constraint(model, x + y >= 10)
@constraint(model, 2x + y >= 15)
@objective(model, Min, weight[1]*x + weight[2]*y)
optimize!(model)
println("\nStatus: $(termination_status(model))")
for (i, key) in enumerate(keys(weight))
perturbation = i
DiffOpt.set_forward_parameter(model, weight[key], perturbation)
end
# Solve perturbed problem
optimize!(model)
# Compute forward derivatives
DiffOpt.forward_differentiate!(model)
- Lingua principale
- Julia
- Stelle
- 146
- Fork
- 21
- Merge medio
- 1h 25m
- PR unite (30g)
- 2
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di jump-dev/DiffOpt.jl
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
jump-dev/DiffOpt.jl#362 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
jump-dev/DiffOpt.jl#358 · 2 commenti ·
-
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
jump-dev/DiffOpt.jl#348 ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
jump-dev/DiffOpt.jl#331 · 1 commento ·
-
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
jump-dev/DiffOpt.jl#318 · 1 commento ·
Tutte le issue di jump-dev/DiffOpt.jl
Issue simili
-
View of a view is brokenForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 85/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 67/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
JuliaPy/pyjuliapkg#102 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
JuliaMath/Polynomials.jl#641 ·