Você está na página 1de 21

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 15

CONSTRUINDO MODELOS DE PROGRAMAÇÃO INTEIRA I

Prof.: Dr. Leonardo Henrique Faria Macedo Possagnolo


Ilha Solteira, 22 de novembro de 2021
Conjuntos ordenados especiais de
variáveis

• Conjunto ordenado especial tipo 1 (SOS1)


• É um conjunto de variáveis (contínuas ou inteiras) no qual exatamente uma variável deve ser não nula
• Conjunto ordenado especial tipo 2 (SOS2)
• É um conjunto de variáveis no qual no máximo duas variáveis podem ser não nulas
• As duas variáveis não nulas devem ser adjacentes na ordem atribuída à elas no conjunto
• Esses requisitos podem ser modelados utilizando programação inteira
• Por outro lado pode ser vantajoso lidar com estas restrições dentro do algoritmo de otimização
• Alguns solvers de otimização podem lidar com conjuntos ordenados especiais tipo 1 e 2 diretamente

2
Exemplo: localização de depósito

• Um depósito pode ser construído em qualquer uma das posições A, B, C, D ou E


• Apenas um depósito pode ser construído
• Variável binária: 𝛿𝛿𝑖𝑖 = 1 indica que um depósito é instalado no local 𝑖𝑖 (A, B, C, D ou E)
• O conjunto de variáveis 𝛿𝛿1 , 𝛿𝛿2 , 𝛿𝛿3 , 𝛿𝛿4 , 𝛿𝛿5 pode ser considerado como um SOS1
• A condição SOS1 junto com a restrição

• garante a integralidade da solução (não é necessário estipular que 𝛿𝛿𝑖𝑖 seja binário)
• Somente se os locais tem um ordenamento natural (e.g., custo) existe vantagem em utilizar SOS1 ao
invés da restrição com as variáveis binárias

3
Exemplo: ampliação de capacidade
• A capacidade 𝐶𝐶 de uma planta pode ser ampliada em quantidades discretas aumentando-se os
níveis de investimento 𝐼𝐼
• Se o conjunto de variáveis 𝛿𝛿0 , 𝛿𝛿1 , 𝛿𝛿2 , 𝛿𝛿3 , 𝛿𝛿4 , 𝛿𝛿5 é considerado como um conjunto SOS1, então
podemos modelar

• Não é necessário tratar 𝛿𝛿𝑖𝑖 como variável binária, pois a condição SOS1 junto com a última restrição
garante a integralidade
• Conceitualmente, é importante considerar um conjunto SOS como uma entidade
• Podemos então considerar 𝐶𝐶 como uma quantidade que é uma função discreta de 𝐼𝐼
• Isso pode ser considerado como uma generalização de uma variável binária para mais de dois
valores discretos
• Essa generalização é geralmente mais útil que uma variável inteira convencional 4
Exemplo: linearização por partes
• A curva entre 0 e C foi dividida em 3 linhas 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 variáveis novas 𝜆𝜆𝑖𝑖 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 5
Exemplo: linearização por partes
• O conceito de conjunto separável foi introduzido com o objetivo de fazer a aproximação linear por
partes para a função não linear de uma única variável
• Usando a convenção 𝜆𝜆 para essa formulação, obtemos a seguinte restrição de convexidade

• Adicionalmente, de forma que as coordenadas 𝑥𝑥 e 𝑦𝑦 ficassem sobre a curva da linearização por


partes, era necessário impor a seguinte restrição
No máximo, dois 𝝀𝝀𝒊𝒊 adjacentes podem ser não nulos
• Ao invés de abordar essa restrição através de programação separável, com o risco de se atingir um
ótimo local, podemos usar um SOS2
• A restrição de no máximo dois 𝜆𝜆𝑖𝑖 adjacentes poderem ser não nulos não precisa ser modelada
explicitamente
• Em vez disso podemos definir as variáveis 𝜆𝜆1 , 𝜆𝜆2 , ⋯ , 𝜆𝜆𝑛𝑛 como um SOS2
6
Exemplo: funções não lineares de duas ou
mais variáveis
• Suponha que 𝑧𝑧 = 𝑔𝑔 𝑥𝑥, 𝑦𝑦 seja uma função de 𝑥𝑥 e 𝑦𝑦
• Definimos uma grade de valores 𝑥𝑥, 𝑦𝑦 (não necessariamente equidistantes)
e associamos pesos não negativos 𝜆𝜆𝑖𝑖,𝑗𝑗 com cada ponto na grade
• Os valores de 𝑥𝑥, 𝑦𝑦 nos pontos da grade são denotados por 𝑋𝑋𝑠𝑠 , 𝑌𝑌𝑘𝑘 , e
podemos aproximar 𝑧𝑧 = 𝑔𝑔 𝑥𝑥, 𝑦𝑦 por:

• Sendo que:
No máximo, quatro 𝝀𝝀 vizinhos podem ser não nulos
7
Exemplo: funções não lineares de duas ou
mais variáveis
• Essa última condição é uma generalização de um conjunto SOS2
• Pode-se impor essa condição da seguinte forma. Sejam:

• para todo 𝑠𝑠, 𝑘𝑘, sendo que 𝜉𝜉1 , 𝜉𝜉2 , 𝜉𝜉3 , ⋯ e 𝜂𝜂1 , 𝜂𝜂2 , 𝜂𝜂3 , ⋯ são conjuntos SOS2
• A primeira condição SOS2 permite que os 𝜆𝜆 sejam não nulos em no máximo duas linhas vizinhas
• A segunda condição SOS2 permite que os 𝜆𝜆 sejam não nulos em no máximo duas colunas vizinhas
• Pode-se restringir os 𝜆𝜆 não nulos aos vértices de um triângulo para evitar ambiguidades usando a seguinte restrição

• Sendo que 𝜁𝜁1 , 𝜁𝜁2 , 𝜁𝜁3 , ⋯ também sejam conjuntos SOS2

8
Restrições para conjuntos SOS1
• Apesar dos conjuntos SOS poderem ser tratados pelos solvers, podemos obter restrições lineares
com variáveis binárias para representá-los
• Suponha que 𝑥𝑥1 , 𝑥𝑥2 , ⋯ , 𝑥𝑥𝑛𝑛 seja um SOS1
• Se as variáveis não forem binárias, introduzimos as variáveis indicadoras 𝛿𝛿1 , 𝛿𝛿2 , ⋯ , 𝛿𝛿𝑛𝑛 e conectamos
elas às variáveis 𝑥𝑥𝑖𝑖 :

• Em que 𝑀𝑀𝑖𝑖 e 𝑚𝑚𝑖𝑖 são coeficientes que representam os limites superior e inferior de 𝑥𝑥𝑖𝑖
• A seguinte restrição é imposta a 𝛿𝛿𝑖𝑖

• Se 𝑥𝑥𝑖𝑖 é binária, podemos considera-las como sendo 𝛿𝛿𝑖𝑖 e utilizar apenas a última restrição
9
Restrições para conjuntos SOS2
• Suponha que 𝜆𝜆1 , 𝜆𝜆2 , ⋯ , 𝜆𝜆𝑛𝑛 seja um SOS2 e 0 ≤ 𝜆𝜆𝑖𝑖 ≤ 1
• Introduzimos as variáveis binárias 𝛿𝛿1 , 𝛿𝛿2 , ⋯ , 𝛿𝛿𝑛𝑛−1 junto com as restrições

• Relação entre conjuntos SOS1 e SOS2: a última restrição pode ser dispensada se considerarmos que
𝛿𝛿𝑖𝑖 ≤ 1 pertence a um SOS1
10
Exemplo: funções descontínuas
• Associa-se as variáveis (pesos) 𝜆𝜆𝐿𝐿 e 𝜆𝜆𝑅𝑅 , cuja
soma deve ser igual a 1, aos terminais de cada
seção
• Estipulamos que exatamente um par de pesos
seja positivo, exigindo-se que a função esteja
em exatamente uma das seções

11
Restrições disjuntivas
• Suponha que em um problema de PL não seja exigido que todas as restrições sejam satisfeitas
simultaneamente
• Exige-se apenas que um subconjunto de restrições seja satisfeito:

• Em que 𝑅𝑅𝑖𝑖 é a proposição “As restrições no subconjunto 𝑖𝑖 são satisfeitas”


• Introduz-se 𝑁𝑁 variáveis indicadoras 𝛿𝛿𝑖𝑖 para indicar se 𝑅𝑅𝑖𝑖 são satisfeitas
• Nesse caso deve-se impor apenas que:

• Que pode ser tratada como discutido anteriormente: ∑𝑗𝑗 𝑎𝑎𝑗𝑗 𝑥𝑥𝑗𝑗 − 𝑏𝑏 ≤ 𝑀𝑀 1 − 𝛿𝛿
• Pode-se impor que pelo menos um subconjunto seja satisfeito:

• Ou pelo menos 𝑘𝑘 de 𝑅𝑅1 , 𝑅𝑅2 , ⋯ , 𝑅𝑅𝑛𝑛 sejam satisfeitos

• O conectivo ‘e’ (conjunção) pode ser representado usando PL, já que em PL as restrições devem ser satisfeitas
simultaneamente 12
Regiões não convexas
• Aplicação de restrições disjuntivas
• A região factível de um PL é convexa
• Existem casos em PNL que temos regiões não convexas
• Considere a região ABCDEFG0
• Pode representar uma região factível de um problema ou a linearização por partes de curvas
• ABCDEFG0 é a união de 3 regiões convexas:
• ABJ0

• 0DH

• KFG0

13
Regiões não convexas
• Introduzimos as variáveis 𝛿𝛿1 , 𝛿𝛿2 e 𝛿𝛿3 para usar as seguintes condições

• Que podem ser escritas como:

14
Regiões não convexas
• Deve-se impor a condição de que pelo menos um conjunto de restrições deve ser atendido:

• Pode-se lidar com regiões desconexas da mesma maneira


• Formulação alternativa: região não convexa como a anterior em que a linha conectando a origem a
qualquer ponto da região factível permanece inteiramente dentro da região factível
• Sete variáveis, 𝜆𝜆𝐴𝐴 , 𝜆𝜆𝐵𝐵 , ⋯, 𝜆𝜆𝐺𝐺 , representando pesos, são associadas com os vértices A, B, ⋯, G e
incorporadas nas seguintes restrições:

• Além disso, 𝜆𝜆𝐴𝐴 , 𝜆𝜆𝐵𝐵 , ⋯, 𝜆𝜆𝐺𝐺 são restringidas como um SOS2


• Generalização da linearização por partes de uma função, como a ABCDEFG
• No caso de uma função, a última restrição é de igualdade
15
Limitando o número de variáveis em uma
solução
• Outra aplicação de restrições disjuntivas
• Em PL, a solução ótima não terá mais variáveis com valores não nulos que o número de restrições no problema
• Em alguns casos deseja-se restringir ainda mais esse número a 𝑘𝑘 variáveis
• Variáveis indicadoras 𝛿𝛿𝑖𝑖 são introduzidas para conectar cada uma das 𝑛𝑛 variáveis contínuas 𝑥𝑥𝑖𝑖 do PL com a condição:

• Essa condição é imposta por:

• A condição de no máximo k das variáveis 𝑥𝑥𝑖𝑖 com valores não nulos é imposta por:

• Aplicações: problemas de mistura, mix de produtos


16
Decisões sequenciais dependentes
• Modelar casos em que decisões tomadas em um momento irão afetar decisões futuras
• Suponha que em um PL com 𝑛𝑛 períodos, introduzimos a variável de decisão 𝛾𝛾𝑡𝑡 em cada período para mostrar
como uma decisão deve ser tomada em cada período
• 𝛾𝛾𝑡𝑡 = 0 significa que o depósito deve ser fechado permanentemente
• 𝛾𝛾𝑡𝑡 = 1 significa que o depósito deve ser fechado temporariamente (somente neste período)
• 𝛾𝛾𝑡𝑡 = 2 significa que o depósito deve ser usado neste período
• Temos que impor a seguinte condição:

• O que pode ser feito usando as seguintes restrições:

17
Economias de escala
• Foi comentado anteriormente que economias de escala levam a um
PNL em que o objetivo é minimizar uma função não convexa
• Não é possível reduzir o problema a um PL usando linearização por
partes. Programação separável leva a ótimos locais
• Suponha que em um modelo o objetivo é minimizar o custo
• A quantidade produzida de um produto é representada por 𝑥𝑥
• Aumentando 𝑥𝑥, o custo marginal unitário decresce
• Os custos marginais unitários são

• Usando a formulação 𝜆𝜆 para linearização por partes, introduzimos 𝑛𝑛 +


1 variáveis 𝜆𝜆𝑖𝑖 (𝑖𝑖 = 0, 1, 2, ⋯ , 𝑛𝑛), como pesos dos vértices A, B, C, D
etc.:

• O conjunto de variáveis 𝜆𝜆0 , 𝜆𝜆1 , ⋯ , 𝜆𝜆𝑛𝑛 é tratado como um SOS2


• Se PI for utilizada, pode-se obter o ótimo local do problema 18
Capacidades discretas de expansão
• As vezes não é realista considerar uma restrição de um PL como sendo aplicável a qualquer
circunstância
• Na vida real é possível violar a restrição a um certo custo
• Uma restrição geralmente pode ser sucessivamente relaxada em passos inteiros, como quando
compramos novas máquinas ou novos tanques
• Suponha que os valor inicial do lado direito da restrição é 𝑏𝑏0 e que pode ser sucessivamente
aumentado para 𝑏𝑏1 , 𝑏𝑏2 ,⋯ , 𝑏𝑏𝑛𝑛 . Temos assim:

• em que 0 < 𝑐𝑐1 < 𝑐𝑐2 < ⋯ < 𝑐𝑐𝑛𝑛


19
Capacidades discretas de expansão
• Esta situação pode ser modelada introduzindo-se variáveis binárias ao problema
• Sejam 𝛿𝛿0 , 𝛿𝛿1 , 𝛿𝛿2 , etc. usadas para representar os valores sucessivos possíveis para o lado direito da
restrição. Então temos:

• A seguinte expressão é adicionada à função objetivo:

• O conjunto de variáveis 𝛿𝛿0 , 𝛿𝛿1 , ⋯ , 𝛿𝛿𝑛𝑛 pode ser tratado como um SOS1
• Se isso for feito, então 𝛿𝛿𝑖𝑖 pode ser considerada como uma variável contínua tendo limite superior
generalizado de 1
• A condição de integralidade pode ser ignorada
20
Objetivos maximax
• Suponha que tenhamos a seguinte situação:
maximizar max � 𝑎𝑎𝑖𝑖𝑖𝑖 𝑥𝑥𝑗𝑗
𝑖𝑖
𝑗𝑗

sujeito a: restrições lineares convencionais

• Caso análogo ao objetivo minimax discutido anteriormente, mas nesse caso não pode ser modelado
usando PL
• Nesse caso tratamos como um caso de restrições disjuntivas e usamos PI:

21

Você também pode gostar