87
Programação não linear

Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

  • Upload
    dangque

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Programação não linear

Page 2: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

max ou min z= f(x1, x2,..., xn) s.a: g1(x1,x2,...,xn) <=, =, >= b1

• ..

gn(x1,x2,...,xn) <=, =, >= b1

x1, x2, ..., xn <=0

Page 3: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis de decisão.

Page 4: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• PNL são difíceis de serem resolvidos, porém, são muito comuns na prática

• Os algoritmos de PNL são mais diversos e mais complexos, comparados aos de programação linear ou programação binária e/ou inteira.

Page 5: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• PNL podem ser classificados como:• PNL irrestrita (com uma única variável ou

com múltiplas variáveis)• PNL com restrição (programação

côncava, convexa, quadrática e separável)

Page 6: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Programação Não LinearAplicaçõ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.

●Seleção de Portfolio com Risco

Page 7: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• Geometria da programação não linear

Page 8: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• Solução ótima na fronteira das restrições

Page 9: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• Solução ótima no interior das restrições

Page 10: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• Ótimo local devido à função objetivo

Page 11: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• Ótimo local devido às restrições

Page 12: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Problema com uma restrição não linear

Page 13: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Problema com a Função Objetivo não linear

Page 14: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis
Page 15: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

●Considere o Problema de Programação Linear e sua solução gráfica

1

Max Z x x = +3 51 2

1

2x ≤ 122

3x x + ≤2 18 1 2

s r x ≤ 4. .

x x≥ ≥0 01 2,

Programação Não LinearSolução Gráfica

x2

x1

(0;6)(2;6)

(0;0) (4;0)

(4;3)SoluçãoViável

Page 16: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

●Considere o Problema e sua solução gráfica.

Max Z x x = +3 51 2

1s.t. x ≤ 4

x x≥ ≥0 01 2,

9 5 21612

22x x+ ≤

Programação Não LinearSolução Gráfica

0

x2

1 2 3 4

4

2

6

0 x1

SoluçãoViável

(2;6)

Page 17: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

●A solução ótima:● é a mesma do problema

linear.● continua na fronteira do

conjunto de soluções viáveis.

● não é mais um extremo do conjunto de soluções viáveis, mas poderia ainda ocorrer em um ponto extremo.

Programação Não LinearSolução Gráfica

0

x2

1 2 3 4

4

2

6

0 x1

SoluçãoViável

(2;6)

Page 18: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

1

2x ≤ 122

3x x + ≤2 18 1 2

s r x ≤ 4. .

x x≥ ≥0 01 2,

MaxZ= x x x x 126 9 182 131 12

2 22− + −

Programação Não LinearSolução Gráfica

x2

x1

(0;6)(2;6)

(0;0) (4;0)

(4;3)SoluçãoViável

Page 19: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

●A função objetivo é uma equação quadrática.

Programação Não LinearSolução Gráfica

( )[ ] ( )[ ]( )[ ] ( )[ ]

Z= x x x x

Z x x x x

Z x x

Para x x

Para

126 9 182 13

912618

1318226

9126

912618

1318213

18226

441 637 9 7 13 7

9 7 13 7

1 12

2 22

2 2

12

1

2

22

2

2

1

2

2

2

1

2

2

2

− + −

= − −

+

− −

+

− − = − − − −

⇒ − + − Z = 907 171 =

Z = 857 ( )[ ] ( )[ ]( )[ ] ( )[ ]

⇒ − + −

⇒ − + −

221=

Z = 807 =

9 7 13 7

271 9 7 13 7

1

2

2

2

1

2

2

2

x x

Para x x

Page 20: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Max Z = x x x x = 857 126 9 182 131 12

2 22− + −

2

4

4

6

2 x 1

x2

SoluçãoViável

Z = 907

Z = 807Z = 857

Programação Não LinearSolução Gráfica

Page 21: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

1

2x ≤ 122

3x x + ≤2 18 1 2

s r x ≤ 4. .

x x≥ ≥0 01 2,

Max Z= x x x x 54 9 78 131 12

2 22− + −

Programação Não LinearSolução Gráfica

x2

x1

(0;6)(2;6)

(0;0) (4;0)

(4;3)SoluçãoViável

Page 22: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

●A função objetivo é uma equação quadrática

( )[ ] ( )[ ]( )[ ] ( )[ ]

Z= x x x x

Z x x x x

Z x x

Para x x

Para

54 9 78 13

95418

137826

9549

5418

137813

7826

81 117 9 3 13 3

9 3 13 3

1 12

2 22

2 2

12

1

2

22

2

2

1

2

2

2

1

2

2

2

− + −

= − −

+

− −

+

− − = − − − −

⇒ − + −

Z = 198 0 =

Z = 189 ( )[ ] ( )[ ]( )[ ] ( )[ ]

9 9 3 13 3

36 9 3 13 3

1

2

2

2

1

2

2

2

=

Z = 162 =

x x

Para x x

− + −

⇒ − + −

Programação Não LinearSolução Gráfica

Page 23: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Solução no interior doconjunto de soluçõesviáveis e não mais na fronteira do conjunto

4

2

6

2 4 x1

x2

SoluçãoViável

3

3

Z = 162Z = 189

Z = 198

222

211 1378954198 xxxx=ZMax −+−=

Programação Não LinearSolução Gráfica

Page 24: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Programação Não Linear●A solução ótima de um problema de programação não linear(NLP), diferentemente de um problema de LP, pode ser qualquer ponto do conjunto de soluções viáveis.

●Isso torna os problemas de NLP muito mais complexos, obrigando os algoritmos de solução a pesquisar todas as soluções viáveis.

Page 25: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Função Côncava e Função Convexa

Page 26: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Função Côncava e Função Convexa

• Uma função f(x) é convexa se um segmento de reta que une dois pontos dessa função está na superfície ou acima dela.

Page 27: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Função Côncava e Função Convexa

• Uma função f(x) é côncava se um segmento de reta que une dois pontos dessa função está na superfície ou abaixo dela.

Page 28: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Função Côncava e Função Convexa

• E se um segmento de reta une mais do que dois pontos de uma função?

Page 29: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Função Côncava e Função Convexa

• Na PNL sem restrições e uma função objetivo côncava, o máximo local é o máximo global.

• Na PNL sem restrições e uma função objetivo convexa, o mínimo local é o mínimo global.

• Isto também se verifica na presença de restrições, se a “região factível” for um conjunto convexo.

Page 30: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Função Côncava e Função Convexa

• Por meio do cálculo da segunda derivada de uma função f(x), representada por: f''(x) ou

pode-se determinar se esta é uma função convexa ou côncava em um conjunto conxexo S.

Page 31: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Função Côncava e Função Convexa

• Se d²f(x)/dx² >=0 (f''(x) >= 0), f(x) é uma função conexa em S

• Se d²f(x)/dx² >0 (f''(x) > 0 ), f(x) é uma função estritamente conexa em S

• Se d²f(x)/dx² <=0 (f''(x) <= 0), f(x) é uma função côncava em S

• Se d²f(x)/dx² < 0 ( f''(x) < 0 ), f(x) é uma função estritamente côncava em S

Page 32: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Função Côncava e Função Convexa

• Se f(x) é uma função linear e, consequantemente d²f(x)/dx² =0 ( f''(x)=0), f(x) é simultaneamente convexa e côncava em S

• Se d²f(x)/dx² (f''(x)) for positivo para alguns valores e negativo para outros, a função não é nem convexa nem côncava.

Page 33: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

f''(x)=0

Page 34: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exercícios• Determinar se as funções a seguir são convexas

(ou estritamente convexas), côncaas (u estritamente côncavas), convexas e côncavas simultaneamente ou nenhuma delas, em um conjunto convexo S.

• f(x)= 2x² + 4x• f(x)= -x² +6• f(x)= 8x + 3• f(x)=x³ + 4x - 10•

Page 35: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Funções convexas e côncavas com duas variáveis

• Para uma função f(x1, x

2) com 2 variáveis,

determina-se se ela é convexa ou côncava em um conjunto convexo S or meio da matriz Hessiana H que corresponde a uma matriz quadrada 2x2 das derivadas parciais de segunda ordem da função .

Page 36: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Funções convexas e côncavas com duas variáveis

• A classificação, se convexa (esritamente convexa) ou côncava (estritamente côncova), depende dos elementos da diagonal principal de H, além do cálculo do determinante.

Page 37: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exemplo

Page 38: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Classificação das funções com duas variáveis a partir da matriz H

• Se f(x0 é linear e det (H)=0, a derivada parcial de segunda ordem em relação a x

1 = 0 e em relação a x

2 = 0, a função é

simultaneamente convexa e côncava em S.

• Se Det(H) <0 para alguns valores de x1 e x

2 pertencentes a S,

a função não é nem convexa nem côncava

Page 39: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exemplo

• f(x1,x

2)=-2x

1²+4x

1x

2+ 3x

1-5x

2- 2x

Page 40: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exemplo

• f(x1,x

2)=-2x

1²+4x

1x

2+ 3x

1-5x

2- 2x

-4 4= 4 -4

Page 41: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exemplo• f(x

1,x

2)=-2x

1²+4x

1x

2+ 3x

1-5x

2- 2x

-4 4= 4 -4

Verificar se todos os elementos da diagonal principal de H são todos negativos

det(H)= -4(-4) -(4)(4) =0

Função côncava

Page 42: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exemplo• f(x

1,x

2)= - 3x

1² + 2x

2² + 2x

1x

2

Page 43: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exemplo• f(x

1,x

2)= - 3x

1² + 2x

2² + 2x

1x

2

-6 2= 2 4

Page 44: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exemplo• f(x

1,x

2)= - 3x

1² + 2x

2² + 2x

1x

2

-6 2= 2 4

Verificar se todos os elementos da diagonal principal de H são todos negativos

det(H)= -6(-4) -(2)(2) = -28

A função não é nem convexa nem côncava

Page 45: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Funções Convexas e Côncavas com Múltiplas Variáveis

Page 46: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Funções Convexas e Côncavas com Múltiplas Variáveis

• Para uma função f(x1, x

2, ..., x

n) com n

variáveias, determina-se se ela é convexa ou côncava por meio do cálculo dos determinantes dos menores principais da matriz Hessiana (Det 1x1, 2x2, ..., nxn de H)

Page 47: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Determinante dos menores principais

Page 48: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Determinante dos menores principais

Page 49: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Classificação das funções com mais de duas variávis a partir do cálculo dos determinantes dos

menores principais de H

• Se f(x) é linear e determinantes (H)=0, a função é simultaneamente convexa e côncava em S.

• Se nenhuma das condições foi atendida, a função não é nem convexa nem côncava

Page 50: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exemplo• f(x

1,x

2,x

3)= 2x

1² + x

2² + 4x

3² - x

1x

2- x

1x

3– x

2x

3

Page 51: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exemplo• f(x

1,x

2,x

3)= 2x

1² + x

2² + 4x

3² - x

1x

2- x

1x

3– x

2x

3

4 -1 -1= -1 2 -1 -1 -1 8

Page 52: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exemplo• f(x

1,x

2,x

3)= 2x

1² + x

2² + 4x

3² - x

1x

2- x

1x

3– x

2x

3

4 -1 -1= -1 2 -1 -1 -1 8

Det1=4

Det2=(4)(2)-(-10(-1)=7

Det3=(64-1-1)-(2+2+4)=54

Estritamente convexa

Page 53: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Programação não linear Irrestrita

• Com uma única variável• Com múltiplas variáveis

Page 54: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Programação não linear Irrestrita

• Com uma única variável– Modelo escrito em termos da fnção objetivo– max ou min f(x)

• Seja f(x) uma função diferenciável ou derivável (que tem derivada). Para que uma determinada solução de f(x0 seja ótima (x=x), ela deve satisfazer a seguinte condição df(x*)/dx =0

• x* é també conhecido como ponto estacionário

Page 55: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Programação não linear Irrestrita

• Com uma única variável– para determinar se a solução ótima é um

ponto de máximo, mínimo ou inflexão (quando uma função côncava torna-se convexa ou vice-versa), calcula-se a derivada de primeira ordem, segunda ordem e assim por diante, até a ordem n seja uma constante com sinal positivo, negativo ou nulo.

Page 56: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Programação não linear Irrestrita

• Com uma única variável– Se n é par e f''(x*)>0, x* é um ponto de

mínimo;– Se n é par e f''(x*)<0, x* é um ponto de

máximo;– Se n é ímpar, x* é um ponto de inflexão.

Page 57: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exemplo

Page 58: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exemplo

Page 59: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Exemplo

Page 60: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

f''(x) <> 0

Page 61: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Ótimo Global

Page 62: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Métodos de solução PNL irrestrita com uma única variável

• Método da bisseção– Método numérico bastante simples – Busca determinar a raiz da função não linear

(f(x)=0)– Convergência muito lenta

Page 63: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Métodos de solução PNL irrestrita com uma única variável

• Método de Newton (ou Newton-Raphson)– Método numérico – Determinar uma função iteração que acelere

a convergência na estimação das raízes de uma função não linear f(x).

– Geralmente mais rápido que o método da bisseção

– Para que a convergência seja satisfatória, o valor inicial estimado deve ser adequado (próximo da raiz)

Page 64: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Métodos de solução PNL irrestrita com múltiplas variáveis

• Métodos de Busca Direta– min ou max uma função com múltiplas

variáveis sem o uso da derivada da função – Convergem mais lentamente que os métodos

que usam derivadas– Método de busca aleatória, método de busca

seccionada, método de Hooke e Jeeves com busca linear, método de rosenbrock e método simplex.

Page 65: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Métodos de solução PNL irrestrita com múltiplas variáveis

• Métodos de Descida ou Métodos Indiretos– Utilizam a primeira e/ou a segunda derivada

da função objetivo para definir as direções de busca.

– Método de Newton, método do quase-Newton, método do Gradiente, método do gradiente conjugado

Page 66: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

PNL com restrição

• Dentre os problemas de PNL com restrição, destacam-se: programação côncava, convexa, quadrática e separável

• Multiplicadores de Lagrange• Condições de Karush-Kuhn-Tucker

Page 67: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Programação Dinâmica

Page 68: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• Paradigmas de projeto de algoritmos:– Tentativa e erro– Divisão e conquista– Algoritmos gulosos– Algoritmos aproximados– Recursividade– Programação dinâmica

Page 69: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• Paradigmas de projeto de algoritmos:– Tentativa e erro (ou busca completa – backtracking)

– Testar de maneira exaustiva todas as possíveis soluções de um determinado problema, até que a solução desejada seja obtida.

Page 70: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• Paradigmas de projeto de algoritmos:– Quando não for possível percorrer toda a

árvore de soluções em razão da complexidade do problema, uma alternativa é utilizar algoritmos aproximados ou metaheurísticas.

– Objetivo: encontrar soluções de boa qualidade, muitas vezes, próximas da ótima, com esforço computacional muito menor.

Page 71: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• Paradigmas de projeto de algoritmos:– Algoritmos Gulosos (ou míopes) – Escolhem, em cada passo, a melhor decisão

local. Uma vez feitas uma decisão, não tem como ser modificada, independente da qualidade da solução.

Page 72: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• Paradigmas de projeto de algoritmos:– Divisão e conquista busca dividir o problema

principal em subproblemas menores e independentes.

– Resolve-se o problema para os subproblemas menores, e as soluções dos subproblemas são combinadas até que se obtenha a solução ótima.

Page 73: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• Paradigmas de projeto de algoritmos:– Considerando um determinado procedimento

constituído de diversos estágios. A recursividade ocorre quando um dos passos chama novamente a execução do procedimento, de forma que o processo de repetição acontece a partir desse passo.

–  é a definição de uma subrotina (função ou método) que pode invocar a si mesma.

Page 74: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Introdução

• Paradigmas de projeto de algoritmos:– A programação dinâmica é uma técnica

bastante usada para resolver diversos problemas de otimização, incluindo modelos probabilísticos, problemas lineares ou não lineares, com variáveis discretas ou contínuas.

Page 75: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Programação Dinâmica• Baseada no princípio da otimalidade.• Busca dividir o problema principal em subproblemas

utilizando uma equação recursiva.• Os subproblemas são resolvidos uma única vez e seus

resultados são armazenados em uma tabela, consultando-a cada vez que o subproblema for requerido.

• Em cada passo, considera-se somente as soluções ótimas.

• Diferente da estratégia de divisão e conquista, os subproblemas não são independentes e compartilham informações entre si.

Page 76: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Características de um Problema de Programação Dinâmica

• Estágios: – o problema é dividido em diversos estágios e

um plano de decisões é estabelecido para cada estágio.

Page 77: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Características de um Problema de Programação Dinâmica

• Estados: – cada estágio está associado a um

determinado número de estados. – os estados representam as diversas

condições possíveis que um sistema pode apresentar em um determinado estágio.

– são as informações contidas em cada estágio, necessárias para a tomada de decisões.

Page 78: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Características de um Problema de Programação Dinâmica

• Decisões:– Em cada estágio, a partir das informações

contidas inicialmente, escolhem-se as melhores decisões. As decisões buscam transformar o estado atual em outro estado associado ao estágio seguinte.

Page 79: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Características de um Problema de Programação Dinâmica

• Princípio de Otimalidade de Bellman:– Dado um estado atual, a decisão ótima para cada

estágio seguinte depende somente do estado atual, não importando o que aconteceu anteriormente.

– Exemplo: suponha que o caminho mais curto entre São Paulo e Ubatuba seja conhecido e esse caminho passa necessariamente por São José dos Campos. Consequentemente, o caminho mais curto entre São Paul e Ubatuba deve incluir o caminho mais curto entre São José dos Campos e Ubatuba.

Page 80: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Características de um Problema de Programação Dinâmica

• Processo de solução do tipo backward ou forward:– backward - inicia pelo último estado até

encontrar a solução ótima do estado inicial.– forward –– os dois procedimentos chegam á mesma

solução– Backward – mais eficiente

computacionalmente

Page 81: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Características de um Problema de Programação Dinâmica

• Recursividade:• Utiliza uma equação recursiva ou de

recorrência que identifica a solução ótima para cada estado de um estágio t qualquer, dada a solução ótima para cada estado de estágio seguinte t+1 (backward), ou dada a solução ótima para cada estado do estágio anterior t-1 (forward)

Page 82: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Estado: Um estado é uma configuração do sistema, e é identificado por um rótulo que indica suas propriedades. No problema apresentado na figura, um estado é uma cidade

Page 83: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Estágio: Programação dinâmica diz respeito a sistemas que evoluem de um estado para outro. Um estágio é um passo singular, e corresponde à transição do sistema de um estado para o próximo adjacente. Na figura, o movimento do viajante, de uma cidade para a próxima, corresponde ao estágio. Cada caminho de A para J tem quatro estágios.

Page 84: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Ação: Em cada estado existe um conjunto de ações viáveis, das quais uma deverá ser escolhida e executada. No exemplo da figura 2.1, no estado C existem três ações viáveis: ir para a cidade E, ir para a cidade F ou ir para a cidade G. Resolver o problema de programação dinâmica significa, dado um objetivo, achar a melhor seqüência de ações

Page 85: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Plano: é um conjunto de ações, no qual para cada estado é especificada uma ação. Um plano ótimo é o melhor conjunto de ações considerando o objetivo fixado.

Page 86: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Retorno: é algo que o sistema gera, sobre um estágio ou processo. No problema da figura acima, o retorno é a distância percorrida entre uma cidade e a próxima. O retorno é usualmente, algo do tipo: lucro, custo, distância, consumo de recursos, etc.

Page 87: Programação não linear · Introdução • Em um problema de PNL, pelo menos a função objetivo ou uma das restrições será representada por uma função não linear das variáveis

Valor do Estado: é uma função dos retornos gerados, quando o sistema evolui de um estado inicial para um estado final, através de um plano dado. No caso do problema da viagem, o valor do estado, para um determinado plano, corresponde à distância desta cidade até a cidade terminal.

O valor de um estado sob um plano ótimo é o valor ótimo.