Escolar Documentos
Profissional Documentos
Cultura Documentos
Aplicações:
● Problemas de Mix de Produtos em que o “lucro” obtido por produto varia com a
quantidade vendida.
● Problemas de Transporte com custos variáveis de transporte em relação à
quantidade enviada.
A solução ótima numa PNL pode ser qualquer valor de conjunto das soluções viáveis, ao
invés de ser apenas aqueles conjuntos de interseção.
O principal conceito envolvido em Programação Não-Linear é o de taxa de variação ⇒
derivadas e gradientes. O grande problema que dificulta a obtenção da solução ótima nos
problemas de Programação Não-Linear são os mínimos e máximos (extremos) locais da
função objetivo.
Os métodos para resolução de problemas de Programação Não-Linear podem ser divididos
em 2 grupos:
Importante saber!
• Na programação não linear sem restrições e uma função objetivo côncava, o
máximo local é o máximo global.
Função Côncava: A f(x) é côncava se e só se o segmento unindo dois pontos
quaisquer da curva nunca está acima dela. PROBLEMA DE MAXIMIZAÇÃO
•Na programação não linear sem restrições e uma função objetivo convexa, o
mínimo local é o mínimo global.
Função Convexa: A f(x) é convexa se e só se o segmento unindo dois pontos
quaisquer da curva nunca está abaixo dela. PROBLEMA DE MINIMIZAÇÃO
maximizar f é equivalente a Minimizar (-f)
Um conjunto é convexo se, dados dois pontos quaisquer x1 e x2 do conjunto, o segmento
que os une também pertence ao conjunto.
Um conjunto convexo é simplesmente um conjunto de pontos de modo que, para cada par de
pontos no conjunto, o segmento de reta inteiro que une esses dois pontos também se encontra
nesse conjunto.
Métodos de Resolução
Exemplo:
Método da Bissecção:
Esse procedimento de busca sempre pode ser aplicado quando f(x) for côncava (de modo
que a segunda derivada seja negativa ou zero para todo x).
A idéia por trás do método da bissecção é muito intuitiva, isto é, seja a inclinação (derivada)
positiva ou negativa em uma solução experimental indica definitivamente se a melhoria se
encontra imediatamente à direita ou à esquerda, respectivamente.
Logo, se a derivada calculada em dado valor de x for positiva, então x* deve ser maior que
esse x e, portanto, esse x se toma um limite inferior para as soluções experimentais que
precisam ser consideradas daí em diante. Ao contrário, se a derivada for negativa, então x*
tem de ser menor que esse x e, por isso, x se tomaria um limite superior. Por essa razão,
após ambos os tipos de limites terem sido identificados, cada nova solução experimental
selecionada entre os limites atuais fornece um novo limite mais
apertado de um tipo e, assim, limitando mais a busca. É
normalmente usada a regra do ponto médio (tradicionalmente
conhecida como plano de busca de Bolzano ), que diz
simplesmente para selecionar o ponto médio entre os dois limites
atuais .
Método de Newton:
O conceito básico do método de Newton é aproximar f(x) dentro das vizinhanças da solução
experimental atual por meio de uma função quadrática e depois maximizar (ou minimizar) a
função aproximada exatamente para obter a nova solução experimental para iniciar a iteração
seguinte.
- OTIMIZAÇÃO IRRESTRITA COM VÁRIAS VARIÁVEIS
Considere agora o problema de maximização de uma função côncava .f(x) com variáveis
múltiplas x = (xi. xi, ... , xn) quando não existe nenhuma restrição sobre os valores viáveis.
Método do gradiente
Uma metodologia natural seria usar os valores das derivadas parciais para selecionar a direção
específica na qual se movimentar.
Otimiza funções que são duas vezes diferenciais continuamente. A ideia é gerar pontos
sucessivos na direção do gradiente da função. O gradiente em um ponto específico x = x' é o
vetor cujos elementos são as respectivas derivadas parciais calculadas em x = x'. Portanto,
pode-se dizer que a taxa na qual f(x) aumenta é maximizada se mudanças (infinitesimais) em x
estiverem na direção do gradiente de f(x). O término do método se dá no ponto em que o vetor
gradiente se torna nulo.
Já que o problema atual não possui nenhuma restrição, essa interpretação do gradiente
sugere que um procedimento de busca eficiente seria continuar movimentando-se na
direção do gradiente até que ele atinja (essencialmente) uma solução ótima x*, em que
Vf(x*) = O.
Se, ao contrário, o objetivo fosse o de minimizar f (x), uma alteração no procedimento
seria mover-se na direção oposta do gradiente a cada iteração. Em outras palavras, a regra
para obter o ponto seguinte seria
Matriz Hessiana:
A "Matriz Hessiana" de uma função de
várias variáveis f(x,y,z,…) organiza
todas as derivadas parciais de
segunda ordem em uma matriz:
O algoritmo termina quando o gradiente de f(x’) for nulo.
Os pontos estacionários de uma superfície são geralmente classificados como:
I Máximo - que pode ser interpretado como o topo de uma montanha; I Mínimo - que pode ser
interpretado como o fundo de um vale; I Ponto de Sela - que pode ser interpretado como uma
passagem entre montanhas.
Teorema de Hessiana:
Se todos os auto-valores de H(a) são positivos, f tem um mínimo relativo em a.
Se todos os auto-valores de H(a) são negativos, f tem um máximo relativo em a.
Se H(a) tem auto-valores positivos e negativos, a é um ponto de sela de f.
Condição de achar candidatos a pontos mínimos da função, ou seja, encontrar funções que estão
dentro dessas condições de otimalidade.
Programação Convexa
- Restrição de igualdade
Considere agora o problema de se encontrar o mínimo ou máximo de uma função f(x), sujeita à
restrição que x deve satisfazer todas as equações
Método de Lagrange
Exemplo:
Consiste em pegar a modelagem com a FO e suas restrições (que são igualadas aos bi) e
substituir na função de Lagrange. Utilizado quando se tem restrições de igualdade e há mais
variáveis que restrições. Depois, é feito o gradiente (vetor das derivadas parciais) de cada
função, da FO que é chamada de f(x) e das restrições que são os gi(x). Você iguala o gradiente
da f(x) com a multiplicação do vi (multiplicador de lagrange) com o gradiente de cada restrição
feito no passo anterior: grad f(x) = v1 . grad g1(x); grad f(x) = v2 . grad g2(x). É como se estivesse
criando mais restrições ao problema, mantendo-se as restrições dadas inicialmente, ou seja,
temos restrições de apenas x e outras com v. Assim, é possível criar relações entre elas, em
forma de sistema, e assim, resolver cada x e cada v. Os valores encontrados para cada um é
chamado de ótimo.
Interpretação:
Limitações
–condições de estacionariedade difíceis de resolver
– restrições de desigualdade aumenta a complexidade
– soluções ótimas globais somente para modelos tratáveis
Em relação às variáveis de folga complementares:
O Excel utiliza o algoritmo GRG (generalized reduced gradient) para chegar à solução para
um dado problema.
O Solver às vezes tem dificuldades de achar soluções para problemas que tenham
condições iniciais para as variáveis iguais a zero. Uma boa medida é começar a otimização
com valores diferentes de zero para as variáveis de decisão.
Uma maneira prática para tentar minorar o problema de máximos e mínimos locais é
começar a otimização de diversos pontos iniciais, gerados aleatoriamente.
Se todas as otimizações gerarem o mesmo resultado, você pode ter maior confiança, não a
certeza, de ter atingido um ponto global.
1. calcular ∇f (xk)
Gradiente da função objetivo: vetor composto por n equações (linhas), onde cada linha
responde por uma variável. São derivadas parciais.
2. associar à xk as restrições ativas (planos que passam) em xk
3. projetar –∇f (xk) na intersecção dos planos que passam em xk se xk é um ponto interior,
então a projeção é o própio –∇f (xk)
4. se a projeção não é nula, então minimizar ao longo da projeção, sujeitas às restrições;
fazer k = k + 1 e ir para o passo 1
5. Se a projeção é nula, então ∇f (xk) pode ser escrito como ∇f (xk) = ∑i uiai
5.1 se ui ≥ 0 ∀i, então é solução ótima (satisfaz KKT); senão
Condições de KKT • necessárias problemas convexos e não convexos • supõem
função objetivo e restrições diferenciáveis
5.2 definir novo conjunto de planos associado à xk, removendo do conjunto corrente
de planos aqueles com ui < 0; ir para passo 3.
-> Univariacional
Estratégia de caminhar morro acima. Consiste em escolher um ponto (x1,x2) aleatório e
definir um sentido inicial de busca. Dessa forma, sendo univariacional, o sentido vai manter
constante uma das variáveis, enquanto a outra vai variando de acordo com a busca. Se o
sentido arbitrado não encontrar uma função objetivo melhor, ele vai voltar ao ponto anterior
e mudar de sentido. Pode começar indo para cima ou para baixo e, depois de perceber que
nenhum deles dará mais uma FO melhor, vai para os lados direito e esquerdo, até encontrar
a FO otimizada. Esse é o ponto de máximo ou mínimo.
1- Início: determinar um ponto de coordenadas aleatórias com x1 (entre a e b) e x2 (entre
c e d)
2- Escolher um sentido para o próximo ponto de coordenadas:
2.1 – Fazer o calculo da FO e verificar se ela melhorou ou não.
Se melhorou, continua o processo no mesmo sentido.
Senão, muda o sentido da busca.
Exemplo: Use o método univariacional para encontrar o máximo da função abaixo, a partir
do ponto inicial: x1 = -10, x2 = -10
f(x1,x2) = x1² + 8 (x1-x2) +x1.x2 + x2²
Penalização:
Se
1. se interior conjunto restrição não vazio
2. funções f e gi são 2×continuamente diferenciáveis
3. conjunto ponto no conjunto restrição tal que f (x) ≤ k é limitado ∀k < ∞
4. f (x) limitada inferiormente para x no conjunto restrição
5. f (x) convexa
6. gi côncavas
7. P(x, r) estritamente convexa no interior do conjunto restrição ∀r > 0 então:
Vo: P-mínimo
{(x(rk), u(rk))} converge para a solução dual (x, u)