Dualidade (otimização)

Fonte: testwiki
Revisão em 18h47min de 17 de janeiro de 2020 por imported>ChristianH (adicionou Categoria:Teorias matemáticas; removeu {{sem cat}} usando HotCat)
(dif) ← Revisão anterior | Revisão atual (dif) | Revisão seguinte → (dif)
Saltar para a navegação Saltar para a pesquisa


Na teoria da otimização matemática, a dualidade, ou princípio da dualidade, é o princípio de que os problemas de otimização podem ser vistos a partir de duas perspectivas: o problema primordial (primal) ou o problema dual. A solução para o problema dual fornece um limite inferior para a solução do problema primal (minimização). No entanto, em geral, os valores ótimos dos problemas primários e duais não precisam ser iguais. Sua diferença é chamada de diferença de dualidade. Para problemas de otimização convexa, a diferença de dualidade é zero sob uma condição de qualificação de restrição.

Problema dual

Geralmente, o termo "problema dual" refere-se ao problema dual de Lagrange, mas outros problemas duais são usados ​​- por exemplo, o problema dual de Wolfe e o problema dual de Fenchel. O problema dual de Lagrange é obtido pela formação do Lagrangeano de um problema de minimização usando multiplicadores de Lagrange não-negativos para adicionar as restrições à função objetivo e, em seguida, resolvendo os valores primários das variáveis ​​que minimizam a função objetivo original. Essa solução fornece as variáveis ​​primárias como funções dos multiplicadores de Lagrange, que são chamadas de variáveis ​​duais, de modo que o novo problema é maximizar a função objetivo com relação às variáveis ​​duais sob as restrições derivadas nas variáveis ​​duais (incluindo pelo menos a não-negatividade restrições).

Em geral, dados dois pares duplos de espaços locais convexos separados (X,X*)e (Y,Y*)e a função f:X{+}, podemos definir o problema primordial como encontrar x^de tal modo que f(x^)=infxϵXf(x). Em outras palavras, se x^ existe, f(x^) é o mínimo da função f e o ínfimo (maior limite inferior) da função é atingido.

Se houver condições de restrição, elas podem ser incorporadas na função f deixando f~=f+Irestrico~es onde Irestricoˇes é uma função adequada em Xque tem um mínimo de 0 sobre as restrições, e para o qual se pode provar que infxϵXfˇ(x)=infxrestricoˇesf(x). Esta última condição é trivial, mas nem sempre convenientemente satisfeita para a função característica (ou seja, Irestricoˇes(x)=0para x satisfazendo as restrições e Irestricoˇes(x)=de outra forma). Então estenda f~ para uma função de perturbação F:X×Y{+}, de tal modo que F(x,0)=f~(x).

A diferença de dualidade é a diferença dos lados direito e esquerdo da desigualdade

supy*ϵY*F*(0,y*)infxϵXF(x,0),

onde F* é o conjugado convexo nas duas variáveis e sup denota o supremo (menor limite superior).

Diferença de dualidade

Artigo principal: diferença de dualidade

O gap (ou diferença) de dualidade é a diferença entre os valores de quaisquer soluções primárias e quaisquer soluções duplas. Se d* é o valor dual ideal e p* é o valor primal ótimo, então o gap de dualidade é igual a p*d*. Este valor é sempre maior que ou igual a 0. O gap de dualidade é zero se e somente se a dualidade forte for válida. Caso contrário, a lacuna é estritamente positiva e a dualidade é fraca.

Na otimização computacional, outro "gap de dualidade" é frequentemente relatado, que é a diferença de valor entre qualquer solução dual e o valor de uma iteração factível, mas sub-ótima, para o problema primordial. Essa alternativa "gap de dualidade" quantifica a discrepância entre o valor de uma iteração factível, mas sub ótima, para o problema primordial e o valor do problema dual; o valor do problema duplo é, sob condições de regularidade, igual ao valor do relaxamento convexo do problema primário: o relaxamento convexo é o problema que surge substituindo um conjunto viável não convexo por seu casco convexo fechado e com a substituição de uma função não-convexa com o seu fechamento convexo, que é a função que tem a epígrafe que é o casco convexo fechado da função objetivo primitiva original.

Caso linear

Artigo principal: dual linear program

Problemas de programação linear são problemas de otimização nos quais a função objetivo e as restrições são todas lineares. No problema primal, a função objetivo é uma combinação linear de n variáveis. Existem m restrições, cada uma das quais coloca um limite superior em uma combinação linear das n variáveis. O objetivo é maximizar o valor da função objetiva sujeita às restrições. Uma solução é um vetor (uma lista) de n valores que alcança o valor máximo para a função objetivo.

No problema dual, a função objetivo é uma combinação linear dos valores m que são os limites nas restrições m do problema primal. Existem n restrições duplas, cada uma das quais coloca um limite inferior em uma combinação linear de m variáveis duplas.

Relações primais-duais

No caso linear, no problema primal, de cada ponto sub-ótimo que satisfaz todas as restrições, existe uma direção ou subespaço de direções para mover que aumenta a função objetivo. Movendo-se em tal direção é dito para remover a folga entre a solução candidata e uma ou mais restrições. Um valor inviável da solução candidata é aquele que excede uma ou mais das restrições.

No problema dual, o vetor dual multiplica as restrições que determinam as posições das restrições no primal. Variar o vetor dual no problema dual é equivalente a revisar os limites superiores no problema primal. O limite superior mais baixo é procurado. Ou seja, o vetor dual é minimizado para remover a folga entre as posições candidatas das restrições e o ótimo real. Um valor inviável do vetor dual é aquele que é muito baixo. Define as posições candidatas de uma ou mais das restrições em uma posição que exclui o ótimo real.

Esta intuição é formalizada pelas equações em Programação Linear: Dualidade.

Caso não linear

Na programação não linear, as restrições não são necessariamente lineares. No entanto, muitos dos mesmos princípios se aplicam.

Para garantir que o máximo global de um problema não linear possa ser identificado facilmente, a formulação do problema frequentemente requer que as funções sejam convexas e tenham conjuntos de nível mais baixo compactos.

Este é o significado das condições de Karush-Kuhn-Tucker. Eles fornecem condições necessárias para identificar ótimos locais de problemas de programação não linear. Existem condições adicionais (qualificações de restrição) que são necessárias para que seja possível definir a direção para uma solução ótima. Uma solução ótima é aquela que é um ótimo local, mas possivelmente não é um ótimo global.

O princípio Lagrangeano forte: dualidade de Lagrange

Dado um problema de programação não linear na forma padrão

minimize f0(x)

sujeito a fi(x)≤0, i∈ {1,...,m}

hi(x)=0,i∈ {1,...,p}

com o domínio DRn tendo interior não vazio, a função Lagrangiana Λ:n×m×p

Λ(x,λ,ν)=f0(x)+i=1mλifi(x)+i=1pνihi(x)

Os vetores λ e ν são chamados de variáveis dual ou vetores multiplicadores de Lagrange associados ao problema. A função dual de Lagrange g:m×p é definida como

g(λ,ν)=infxϵ𝒟Λ(x,λ,ν)=infxϵ𝒟(f0(x)+i=1mλifi(x)+i=1mνihi(x))

A função dual g é côncava, mesmo quando o problema inicial não é convexo, porque é um ponto mínimo de funções afins. A função dupla produz limites inferiores no valor ideal p*do problema inicial; para qualquer λ0 e qualquer ν temos g(λ,ν)p*.

Se uma qualificação de restrição, como a condição de Slater, e o problema original é convexo, então temos uma forte dualidade, ou seja,
d*=maxλ0,νg(λ,ν)=inff0=p*.

Problemas convexos

Para um problema de minimização convexa com restrições de desigualdade,

minimizex f(x)

sujeito a g(x)0,i=1,...,m

o problema Lagrangiano dual é

maximizeu infx(f(x)+j=1mujgj(x))

sujeito a ui0,u=1,...,m

onde a função objetivo é a função Lagrange dual. Desde que as funções f e g1,...,gm são continuamente diferenciáveis, o ínfimo ocorre onde o gradiente é igual a zero. O problema

maximizex,u f(x)+j=1mujgj(x)

sujeito a f(x)+j=1mujgj(x)=0

ui0,i=1,...,m

é chamado o problema dual de Wolfe. Este problema pode ser difícil de lidar computacionalmente, porque a função objetivo não é côncava nas variáveis ​​conjuntas (u,x). Além disso, a restrição de igualdade f(x)+j=1mujgj(x)=0é não-linear em geral, então o problema dual de Wolfe é tipicamente um problema de otimização não-convexo. Em todo caso, a dualidade fraca se mantém.

História

De acordo com George Dantzig, o teorema da dualidade para otimização linear foi conjecturado por John von Neumann, imediatamente após Dantzig apresentar o problema de programação linear. Von Neumann notou que ele estava usando informações de sua teoria dos jogos e conjeturou que o jogo de duas pessoas com soma zero era equivalente a programação linear. Provas rigorosas foram publicadas pela primeira vez em 1948 por Albert W. Tucker e seu grupo. (Prefácio de Dantzig para Nering e Tucker, 1993)

Ver também