Differentiation of problems with Almost Locally Solved termination status
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 48/100
Piste de recherche
Exécutez d'abord l'exemple minimal fonctionnel de Julia, puis suivez DiffOpt.forward_differentiate! et la gestion de l'état de terminaison Almost Locally Solved. C'est terminé lorsque l'exemple termine avec succès la différentiation directe pour cet état.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
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)
- Langage dominant
- Julia
- Étoiles
- 146
- Forks
- 21
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Préparer son environnement
Ce projet ne fournit ni conteneur de développement, ni Dockerfile, ni guide de contribution : l'installation est à votre charge. Commencez par son README, et consultez notre guide de la première contribution pour les étapes générales.
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de jump-dev/DiffOpt.jl
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
jump-dev/DiffOpt.jl#362 · 1 commentaire ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 25/100
jump-dev/DiffOpt.jl#358 · 2 commentaires ·
-
Difficulté 3/5 1-2 jours Accessibilité débutants 55/100
jump-dev/DiffOpt.jl#348 ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
jump-dev/DiffOpt.jl#331 · 1 commentaire ·
-
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
jump-dev/DiffOpt.jl#318 · 1 commentaire ·
Toutes les issues de jump-dev/DiffOpt.jl
Issues similaires
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
legend-exp/LegendDataManagement.jl#232 ·
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 73/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 76/100
-
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
SciML/OrdinaryDiffEq.jl#4907 ·
Les mainteneurs répondent en général sous 4 jours
-
documentation model-weights
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
FluxML/Metalhead.jl#311 ·
Les mainteneurs répondent en général sous 1 jour