Quais valores cada variável pode assumir?
x₁, x₂ ∈ [0, 10]FUNDAMENTOS DE OTIMIZAÇÃO · SUBTÓPICO 03
O espaço de busca contém as alternativas que o algoritmo pode representar. As restrições recortam esse espaço e determinam quais candidatos são realmente viáveis.
01 · DO TODO AO PERMITIDO
Cada camada acrescenta informação até separar os candidatos que podem ser aceitos pelo problema.
x₁, x₂ ∈ [0, 10]S = [0,10] × [0,10]F = {x ∈ S | gᵢ(x) ≤ 0}A região viável está contida no espaço de busca. Todo ponto viável pode ser representado, mas nem todo ponto representável é permitido.
02 · TIPOS DE RESTRIÇÃO
Define o menor e o maior valor permitido para uma escolha.
0 ≤ x₁ ≤ 10
Permite valores de um lado da fronteira e rejeita os demais.
2x₁ + x₂ ≤ 14
Exige que uma relação seja atendida exatamente ou dentro de uma tolerância.
h(x) = 0
Uma escolha pode exigir, impedir ou limitar outra escolha.
x₁ = 1 ⇒ x₂ = 1
03 · LEITURA GEOMÉTRICA
Com duas variáveis, podemos enxergar as restrições como retas e a região viável como a interseção dos lados permitidos.
x₁ + x₂ ≤ 10Mantemos o lado abaixo da reta.
2x₁ + x₂ ≤ 14Mantemos novamente o lado permitido.
F = g₁ ∩ g₂A sobreposição forma a região viável.
04 · LABORATÓRIO INTERATIVO
Mova o candidato pelo plano. O melhor valor só é válido quando todas as restrições são respeitadas.
Arraste o ponto. A área verde satisfaz simultaneamente as duas restrições.
8,0 + 7,0 = 15,0 ≤ 10violada por 5,02(8,0) + 7,0 = 23,0 ≤ 14violada por 9,005 · COMO O ALGORITMO LIDA COM VIOLAÇÕES
Metaheurísticas usam diferentes estratégias para impedir que soluções inviáveis dominem a busca.
Descarta o candidato e gera outro até encontrar uma solução viável.
Modifica o candidato para trazê-lo de volta à região permitida.
Reduz a qualidade conforme a intensidade da violação.
Constrói a codificação para que ela produza apenas soluções permitidas.
Quanto maior a violação, maior o desconto aplicado à qualidade do candidato.
06 · ARMADILHAS COMUNS
≤ em vez de ≥Pode eliminar exatamente o lado que deveria permanecer permitido.
horas + minutosAs grandezas precisam ser convertidas antes de participar da mesma expressão.
F = ∅Restrições incompatíveis tornam impossível encontrar qualquer solução.
x < 0?Sem limites básicos, o algoritmo pode descobrir valores sem significado real.
07 · NO CÓDIGO
function avaliarRestricoes([x1, x2]) {
const restricao1 = x1 + x2 <= 10;
const restricao2 = 2 * x1 + x2 <= 14;
const limites = x1 >= 0 && x2 >= 0;
return {
restricao1,
restricao2,
viavel: restricao1 && restricao2 && limites
};
}
avaliarRestricoes([4, 6]); // viável
avaliarRestricoes([8, 7]); // inviávelCada regra gera seu próprio resultado verdadeiro ou falso.
O operador lógico exige que todas as condições sejam verdadeiras.
Além do booleano, podemos calcular quanto o limite foi excedido.
O algoritmo decide rejeitar, reparar ou penalizar o candidato.
PRÓXIMO SUBTÓPICO
Com objetivo e região viável definidos, podemos estudar onde os melhores valores aparecem na paisagem.
Continuar estudo →