Hacktoberfest 2026: as issues que os mantenedores marcaram para outubro, abertas e boas para iniciantes. Ver issues do Hacktoberfest

ScalarAffine sensitivity on a VectorAffine constraint

Aberta
#290 1 comentário 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
38/100
Tipo de issue
Bug
Clareza
Precisa de esclarecimento
Status de atividade
Pouca atividade
Stack de tecnologia
julia

Direção de pesquisa

Reproduza o exemplo em Julia na issue, começando com MOI.set e DiffOpt.forward_differentiate!. Leia o contexto posterior em #287 e o comentário vinculado para entender a falha de sensibilidade de ScalarAffine na restrição VectorAffine. Está concluído quando a sequência de diferenciação mostrada tratar esse caso com sucesso.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

Followup of #287

model = Model(() -> DiffOpt.diff_optimizer(SCS.Optimizer))
@variable(model, x[1:7])
@test num_variables(model) == 7
c1 = @constraint(model, -sum(x[i] for i in 1:6) + 10 ≥ 0)
c2 = [
    @constraint(model, x[i] ≥ 0)
    for i in 1:6
]
α = 0.8
δ = 0.9
c3 = @constraint(
    model,
    LinearAlgebra.Symmetric(hcat(
        [((δ/2)*x[1] + α*x[2] + δ*x[3] + (δ/4)*x[4] + (δ/8)*x[5] - 1.0*x[7])   # a11
        ((-(δ/(2*√2)))*x[1] - (δ/4)*x[2] - (δ/(8*√2))*x[5])],
        [((-(δ/(2*√2)))*x[1] - (δ/4)*x[2] - (δ/(8*√2))*x[5])
        ((δ/2)*x[1] + (δ - α)*x[2] + 0.0*x[3] + (δ/8)*x[5] + (δ/4)*x[6] - x[7])])
    ) in PSDCone()
)
@objective(model, Max, x[7])
optimize!(model)
MOI.set.(
    model,
    DiffOpt.ForwardConstraintFunction(),
    c3,
    sum(x) + 1,
)
DiffOpt.forward_differentiate!(model)

The issue is a ScalarAffine sensitivity on a VectorAffine constraint: https://github.com/jump-dev/DiffOpt.jl/pull/287#issuecomment-2816109383

Linguagem predominante
Julia
Estrelas
146
Forks
21
Métricas de merge de PRs
Nenhum PR com merge em 30d

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

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de jump-dev/DiffOpt.jl

Todas as issues de jump-dev/DiffOpt.jl

Issues semelhantes

Mais issues de Julia

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.