Você está na página 1de 23

CÂMPUS DE ILHA SOLTEIRA

PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

TÓPICOS ESPECIAIS EM SISTEMAS DE ENERGIA ELÉTRICA:


OTIMIZAÇÃO MATEMÁTICA COM APLICAÇÕES EM SISTEMAS DE ENERGIA ELÉTRICA

AULA 12

MODELOS NÃO LINEARES

Prof.: Dr. Leonardo Henrique Faria Macedo Possagnolo


Ilha Solteira, 27 de outubro de 2022
11. Modelos não lineares

2
Suposições de um modelo de PL

1. Retornos constantes com a escala


2. O uso de um recurso por uma atividade é proporcional ao nível da atividade
3. O uso total de um recurso por várias atividades é a soma dos usos das atividades individuais

3
Exemplo: Mix de produtos
• Uma fábrica pode produzir 5 tipos de produtos: PROD1, PROD2,...,PROD5
• Dois processos são utilizados para produzir esses produtos: esmerilhamento e perfuração
• Após deduzir os custos das matérias primas, cada unidade de cada produto fornece as seguintes
contribuições ao lucro:
PROD1 PROD2 PROD3 PROD4 PROD5
£550 £600 £350 £400 £200

• Cada unidade requer um certo tempo em cada processo. Esses tempos são dados a seguir em horas.
Um traço indica que o processo não é necessário:
PROD1 PROD2 PROD3 PROD4 PROD5
Esmerilhamento 12 20 - 25 15
Perfuração 10 8 16 - -
• Adicionalmente, a montagem final de cada unidade de cada produto usa 20 horas de trabalho de um
empregado
• A fábrica possui 3 máquinas de esmerilhamento e 2 máquinas de perfuração e opera 6 dias por
semana em 2 turnos de 8 hora em cada dia. 8 trabalhadores estão empregados na montagem, cada
um trabalhando em um turno por dia
• O problema é encontrar o quanto de cada produto deve ser fabricado de maneira a se maximizar o
lucro total
4
Exemplo: Mix de produtos
• Variáveis: 𝑥𝑥1 , 𝑥𝑥2 , ⋯ , 𝑥𝑥5 representam os números de PROD1, PROD2,...,PROD5 que devem ser produzidos em uma semana

• Função objetivo:
maximizar 550𝑥𝑥1 + 600𝑥𝑥2 + 350𝑥𝑥3 + 400𝑥𝑥4 + 200𝑥𝑥5

• Restrições:

• 3 máquinas de esmerilhamento trabalhando um total de 96h por semana fornece uma capacidade de esmerilhamento de 288h
(não é possível usar mais de 288h semanais de esmerilhamento):
12𝑥𝑥1 + 20𝑥𝑥2 + 25𝑥𝑥4 + 15𝑥𝑥5 ≤ 288

• A capacidade de perfuração é de 192h por semana:


10𝑥𝑥1 + 8𝑥𝑥2 + 16𝑥𝑥3 ≤ 192

• 8 trabalhadores na montagem trabalhando 48h por semana dá um total de capacidade laboral de 384h:
20𝑥𝑥1 + 20𝑥𝑥2 + 20𝑥𝑥3 + 20𝑥𝑥4 + 20𝑥𝑥5 ≤ 384

• Não é possível produzir números negativos de produtos:

𝑥𝑥1 , 𝑥𝑥2, 𝑥𝑥3, 𝑥𝑥4, 𝑥𝑥5 ≥ 0


5
Modelos de PNL
• O modelo é linear, pois não existem expressões como 𝑥𝑥12 , 𝑥𝑥1 𝑥𝑥2 , sen 𝑥𝑥1
• Suponha agora que a primeira condição não se aplique
• Em vez de cada unidade de PROD1 contribuir com £550 no lucro, cada unidade dependa da quantidade de PROD1
produzida
• Se esse lucro unitário aumenta com a quantidade produzida: retornos de escala crescentes. Ex.: 550 + 2𝑥𝑥1 por unidade
• Se esse lucro unitário diminui com a quantidade produzida: retornos de escala decrescentes. Ex.: 550/ 1 + 𝑥𝑥1 por
unidade
Retornos de escala crescentes Retornos de escala decrescentes Retornos de escala constantes

6
Modelos de PNL
• Os casos de não linearidade anteriores surgiram devido a margens de lucro sendo afetadas por custos
unitários crescentes ou decrescentes devido à produção
• De uma maneira similar as margens de lucro unitárias serão alteradas se o preço unitário de venda for
afetado pelo volume de produção
• Geralmente o preço unitário cresce com a demanda pelo produto
• Por exemplo, se a quantidade a ser produzida é 𝑥𝑥, o custo unitário é 𝑐𝑐 e o preço unitário de venda é
𝑝𝑝 𝑥𝑥 , que depende de 𝑥𝑥, obtemos:
Contribuição ao lucro = 𝑝𝑝 𝑥𝑥 − 𝑐𝑐 𝑥𝑥 = 𝑝𝑝 𝑥𝑥 𝑥𝑥 − 𝑐𝑐𝑐𝑐
• O termo 𝑝𝑝 𝑥𝑥 𝑥𝑥 introduz uma não linearidade na função objetivo
• Uma aproximação é considerar 𝑝𝑝 𝑥𝑥 como uma função linear de 𝑥𝑥
• Neste caso, termos quadráticos são introduzidos na função objetivo, resultando em um modelo de
programação quadrática

7
Modelos de PNL

• Termos não lineares também podem aparecer em restrições

• Exemplo: no problema de mistura, a qualidade (viscosidade) pode não depender linearmente das
proporções dos ingredientes

• Um tipo de modelo que apresenta não linearidades nas restrições é o de programação geométrica,
em que os termos das restrições são polinômios:

𝑥𝑥1 𝑥𝑥2 𝑥𝑥3 + 2𝑥𝑥22 𝑥𝑥3 ≤ 32

• Problemas de programação não linear são geralmente mais difíceis de serem resolvidos que modelos
de programação linear de tamanhos correspondentes

8
Ótimos locais e globais
• Classificação importante de PNL:
• Programação convexa
• Programação não convexa
• Uma região do espaço é dita ser convexa se o segmento de reta entre quaisquer dois pontos na região
também fica dentro da região
Região não convexa
Região convexa no espaço bidimensional

9
Ótimos locais e globais
• Uma função 𝑓𝑓 𝑥𝑥 é dita convexa se o conjunto de pontos 𝑥𝑥, 𝑦𝑦 onde 𝑦𝑦 ≥ 𝑓𝑓 𝑥𝑥 (epígrafo) forma uma região convexa
• Por exemplo, a função 𝑥𝑥 2 é convexa, enquanto 2 − 𝑥𝑥 2 é não convexa (côncava). Para 2 − 𝑥𝑥 2 , o conjunto de pontos 𝑥𝑥, 𝑦𝑦
onde 𝑦𝑦 ≤ 𝑓𝑓 𝑥𝑥 (hipógrafo) forma uma região convexa
• Os conceitos de regiões e funções convexas e não convexas são aplicáveis para qualquer dimensão

𝑓𝑓 𝑥𝑥 = 𝑥𝑥 2 𝑓𝑓 𝑥𝑥 = 2 − 𝑥𝑥 2

10
Ótimos locais e globais
• Outras classificações para funções

11
Ótimos locais e globais
• Um modelo de programação matemática é dito ser convexo se ele envolve a minimização de uma função
convexa em uma região factível convexa
• Minimizar uma função convexa é equivalente a − maximizar o negativo da função convexa. Portanto, um
modelo de programação matemática que maximiza uma função côncava em uma região factível convexa
também é convexo
• Solvers para problemas de PNL (CONOPT, KNITRO, LOQO, MINOS, SNOPT) encontram a solução ótima de problemas de PNL
convexos
• Para problemas de PNL não convexos, geralmente, a solução encontrada por esses solvers é um ótimo local
• Solvers para PL, como o CPLEX, GUROBI e XPRESS, são capazes de resolver (garantem encontrar o ótimo global) problemas
de:
• Programação linear
• Programação quadrática
• Programação quadrática com restrições quadráticas
• Programação cônica de segunda ordem
12
Um modelo de programação convexa
• Considere o problema abaixo de programação quadrática. Pode-se observar facilmente que a função objetivo é
convexa
• O modelo é representado geometricamente na terceira figura, com diferentes curvas de nível da função objetivo
• A solução ótima é o ponto A
• Um problema de PL é um caso especial de programação convexa
• A FO é convexa e pode-se sempre transforma-la em minimização
• A região factível definida por um conjunto de restrições lineares é convexa

13
Um modelo de programação não convexa
• Pode-se verificar que a função objetivo (FO) do problema abaixo é não convexa, apesar da região factível do
problema ser convexa
• As curvas de nível do problema são mostradas na terceira figura, e podem sair e reentrar na região factível
• A solução ótima é o ponto C
• Para vários algoritmos de otimização, os pontos A e B também seriam ótimos. Nesse caso são ótimos locais
• Vários algoritmos de otimização somente podem garantir encontrar ótimos locais nesse tipo de problema
• Note que estando em A ou B e movendo-se em qualquer direção, a FO não melhora

14
Um modelo de programação não convexa
• Casos discutidos no início da aula
• Deseconomias de escala: custos unitários crescem com a produção – convexo (quando for minimizado)
• Economias de escala: custos unitários decrescem com a produção – não convexo (quando for minimizado)

Deseconomias de escala Economias de escala

15
Programação separável
• Uma função separável é uma função que pode ser expressa como uma soma de funções de uma única variável
• Por exemplo, a função:

• É separável, pois cada termo 𝑥𝑥12 , 2𝑥𝑥2 e 𝑒𝑒 𝑥𝑥3 são funções de uma única variável
• Por outro lado, a função:

• É não separável devido aos termos 𝑥𝑥1 𝑥𝑥2 e 𝑥𝑥2 ⁄ 1 + 𝑥𝑥1 que são funções de mais de uma variável
• Funções separáveis podem ser aproximadas por funções lineares por partes
• Então é possível utilizar programação separável para obter a solução ótima global para um problema convexo
ou um ótimo local para um problema não convexo
• Cada termo de uma função separável é aproximado por uma função linear por partes
• Não importa se as não linearidades ocorrem na FO ou nas restrições, a abordagem é a mesma
16
Linearização por partes: formulação 𝜆𝜆
• Considere o problema convexo

• O único termo não linear no modelo aparece na FO: 𝑥𝑥12


• Pela segunda restrição, pode-se verificar que 𝑥𝑥1 não pode exceder o valor de 2,5
• A linearização por partes é então considerada para valores de 𝑥𝑥1 entre 0 e 2,5

17
Linearização por partes: formulação 𝜆𝜆
• A curva entre 0 e C foi dividida em 3 segmentos de retas
• Isso introduz imprecisão no modelo
• Mais divisões = maior precisão
• O objetivo é eliminar 𝑥𝑥12 do modelo
• Substituir 𝑥𝑥12 pelo termo linear 𝑦𝑦 e relacionar 𝑦𝑦 com 𝑥𝑥1 :

• As novas variáveis 𝜆𝜆𝑖𝑖 são introduzidas no modelo


• Podem ser interpretadas como pesos associados aos vértices 0, A, B, C
• Deve-se também considerar a seguinte restrição para 𝜆𝜆𝑖𝑖
No máximo, dois 𝝀𝝀𝒊𝒊 adjacentes podem ser não nulos
• Que garante que os valores de 𝑥𝑥1 e 𝑦𝑦 estejam nos segmentos 0A, AB ou BC
• Se 𝜆𝜆2 = 0,5 e 𝜆𝜆3 = 0,5, com os outros 𝜆𝜆𝑖𝑖 = 0, obtém-se 𝑥𝑥1 = 1,5 e 𝑦𝑦 = 2,5
• Ignorar a condição anterior pode permitir que 𝑥𝑥1 e 𝑦𝑦 fiquem fora da
linearização 18
Linearização por partes: formulação 𝜆𝜆
• O modelo anterior se torna (substituindo-se 𝑥𝑥12 por 𝑦𝑦 e considerando as equações da linearização por partes):

• A condição dos 𝜆𝜆𝑖𝑖 adjacentes também deve ser considerada


• Isso pode ser feito usando programação inteira
• Em modelos convexos, como esse, essa restrição pode ser relaxada
• Suponha que 𝜆𝜆1 = 0,5; 𝜆𝜆2 = 0,25; 𝜆𝜆3 = 0,25 e 𝜆𝜆4 = 0. Isso viola a condição de no máximo dois 𝜆𝜆𝑖𝑖 adjacentes serem não nulos,
levando ao ponto 𝑥𝑥1 = 0,75 e 𝑦𝑦 = 1,25 (está acima da linearização por partes)
• Como a FO envolve a minimização de 𝑦𝑦 𝑥𝑥12 , esperamos uma solução melhor considerando 𝑥𝑥1 = 0,75 e 𝑦𝑦 = 0,75, na linha da
linearização por partes
• Devido a forma convexa da gráfico, não é possível obter valores para 𝜆𝜆𝑖𝑖 que forneçam pontos abaixo da linearização
• Nesse caso (modelos convexos) a restrição de no máximo dois 𝜆𝜆𝑖𝑖 adjacentes serem não nulos pode ser relaxada pois sempre será
garantida
• Portanto, basta resolver o PL resultante 19
Linearização por partes: formulação 𝜆𝜆
• Para problemas não convexos, a restrição de no máximo
dois 𝜆𝜆𝑖𝑖 serem não nulos deve ser considerada
• Considere a aproximação do termo 𝑥𝑥13 do modelo não
convexo do exemplo anterior:

• As variáveis 𝜆𝜆𝑖𝑖 devem respeitar a restrição de no máximo dois 𝜆𝜆𝑖𝑖


adjacentes serem não nulos
• Essa restrição não é garantida automaticamente pela otimalidade
• Suponha 𝜆𝜆2 = 0,4; 𝜆𝜆3 = 0,5 e 𝜆𝜆4 = 0,1; que fornece o ponto
𝑥𝑥1 = 0,85 e 𝑦𝑦 = 1,3375
• O ponto está acima da linearização por partes
• Como a FO, a ser minimizada, é dominada pelo termo −4𝑥𝑥13 , o
modelo irá maximizar 𝑦𝑦
• Isso leva a solução para cima da linearização em vez de para baixo
• Nesse caso (não convexo) é necessário garantir a restrição para 𝜆𝜆𝑖𝑖 20
Linearização por partes: formulação 𝛿𝛿
• Existe uma formulação alternativa conhecida como forma 𝛿𝛿
• Considere a função 𝑦𝑦 = 𝑥𝑥12 do exemplo convexo
• As variáveis 𝛿𝛿1 , 𝛿𝛿2 e 𝛿𝛿3 são introduzidas para representar as proporções dos
intervalos 0P, PQ e QR usados para formar o valor de 𝑥𝑥1 . Obtém-se:

• Como os comprimentos de 0P e PQ são 1, os coeficientes de 𝛿𝛿1 e 𝛿𝛿2 são 1. O


coeficiente de 𝛿𝛿3 é 0,5 devido ao comprimento do intervalo QR
• Similarmente:
• EM que os coeficientes de 𝛿𝛿1 , 𝛿𝛿2 e 𝛿𝛿3 são os comprimentos dos intervalos 0S,
ST e TU
• Para garantir que 𝑥𝑥1 e 𝑦𝑦 sejam coordenadas dos pontos sobre a aproximação
linear por partes, deve-se garantir que:
Se qualquer 𝜹𝜹𝒊𝒊 for não zero, todos os 𝜹𝜹𝒊𝒊 precedentes devem assumir o valor de 1
e todos os seguintes devem valer zero
• Essa restrição garante que 𝑥𝑥1 e 𝑦𝑦 representem distâncias ao longo dos
respectivos eixos
• A relaxação associada com a formulação 𝜆𝜆 (retirando as condições lógicas) é
mais restrita que a 𝛿𝛿 21
Convertendo um problema em um modelo
de programação separável
• Quando funções não separáveis aparecem em um modelo, pode ser possível transformar o modelo em um que
contenha apenas funções separáveis
• Exemplo comum: se o termo 𝑥𝑥1 𝑥𝑥2 ocorre, o modelo não é imediatamente separável
• Esse modelo pode ser facilmente convertido em uma forma separável utilizando-se a seguinte transformação:
1. Introduza duas novas variáveis 𝑢𝑢1 e 𝑢𝑢2 no modelo
2. Relacione 𝑢𝑢1 e 𝑢𝑢2 com 𝑥𝑥1 e 𝑥𝑥2 com as seguintes relações:
1
𝑢𝑢1 = 𝑥𝑥1 + 𝑥𝑥2
2
1
𝑢𝑢2 = 𝑥𝑥1 − 𝑥𝑥2
2
3. Substitua o termo 𝑥𝑥1 𝑥𝑥2 no modelo por:
𝑢𝑢12 − 𝑢𝑢22
22
Convertendo um problema em um modelo
de programação separável
• Os termos não lineares podem ser tratados usando linearizações por partes
• 𝑢𝑢2 pode assumir valores negativos
• Quando forem considerados os intervalos de 𝑢𝑢1 e 𝑢𝑢2 , pode ser necessário transladar 𝑢𝑢2 por uma quantidade apropriada, ou
tratá-lo como uma variável livre (que pode assumir valores negativos)
• Se aparecer o produto de mais de duas variáveis (ex.: problema de programação geométrica), o procedimento anterior pode
ser repetido sucessivamente até reduzir o problema à forma separável
• Funções não lineares com mais de uma variável também podem ser tratadas com linearizações por partes em mais
dimensões
• As relações entre os 𝜆𝜆𝑖𝑖 será mais complexa → programação inteira
• Existem várias outras abordagens para fazer a transformação em funções separáveis, que necessitam a adição de variáveis e
restrições adicionais
• Aumentam o tamanho do modelo e o tempo computacional para resolvê-lo

23

Você também pode gostar