Differentiation of conic programs with nonlinear parametric expressions
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 35/100
Direção de pesquisa
Comece executando o MWE do Julia com Clarabel e compare-o com a versão do Ipopt; em seguida, leia o caminho de diferenciação de parâmetros do DiffOpt alcançado por meio de diff_model e optimize!. O trabalho estará concluído quando expressões de parâmetros não lineares, como sin(θ) * x, forem compatíveis com programas cônicos e o exemplo fornecido for diferenciado com sucesso.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
DiffOpt does not support differentiating a conic program if the problem's data depends nonlinearly from the parameters (e.g. if A(theta) x <= b(theta) with A(.) and b(.) given by nonlinear expressions).
Here is a simple MWE:
using JuMP
using Clarabel
using DiffOpt
model = DiffOpt.diff_model(Clarabel.Optimizer)
@variable(model, x >= 0)
@variable(model, θ ∈ MOI.Parameter(1.0))
@objective(model, Min, x)
@constraint(model, sin(θ) * x >= 1.0)
JuMP.optimize!(model)
If we replace Clarabel by Ipopt, the code works like a charm. But Clarabel works much better than Ipopt if the problem is conic.
We can use the chain-rule to differentiate the problem w.r.t. A instead of theta. However, I think it would be more intuitive to support nonlinear expressions depending on the parameters in DiffOpt. What do you think?
- Linguagem predominante
- Julia
- Estrelas
- 146
- Forks
- 21
- Merge médio
- 1h 25min
- PRs com merge (30d)
- 2
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de jump-dev/DiffOpt.jl
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
jump-dev/DiffOpt.jl#362 · 1 comentário ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 25/100
jump-dev/DiffOpt.jl#358 · 2 comentários ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 55/100
jump-dev/DiffOpt.jl#348 ·
-
good first issue
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 48/100
jump-dev/DiffOpt.jl#336 · 4 comentários ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 35/100
jump-dev/DiffOpt.jl#318 · 1 comentário ·
Todas as issues de jump-dev/DiffOpt.jl
Issues semelhantes
-
CI: two jobs fail on the new ubuntu-latest (Ubuntu 26.04) runner imageTalvez já em andamento @bjarthur assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 63/100
mojaie/MolecularGraph.jl#151 ·
-
View of a view is brokenTalvez já em andamento Um pull request vinculado a esta issue está aberto ou já foi mesclado. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 67/100
Mantenedores costumam responder em até 1 dia