Problema de Otimização Combinatória Otimização é o processo de encontrar e comparar soluções factíveis até que nenhuma solução melhor possa ser encontrada. Essas soluções são ditas boas ou ruins em termos de um objetivo (Deb, 2001). Conforme Krasnogor (2002), informalmente, problemas de otimização combinatória são problemas para os quais o espaço de soluções possíveis (viáveis, candidatas ou factíveis) é finito (embora extremamente grande) e discreto
Problema de Otimização Combinatória A versão de otimização de um problema NP-completo tem uma função e um conjunto de requisitos, ambos relacionados às variáveis de decisão, que dá um valor a uma solução específica. Essa função deve ser minimizada ou maximizada e pode ser chamada de função objetivo, função de avaliação, função de aptidão, função de estimação, etc. A resposta para o problema, ou seja, o ótimo global, será o menor (ou maior) valor possível para a função, para o qual o valor atribuído às variáveis não viole nenhuma restrição.
Problema de Otimização Combinatória Formalmente, um problema de otimização, para o caso de minimização, pode ser descrito como: Para resolver um problema de otimização combinatória, deve-se encontrar uma solução ótima, que atenda à relação,
Representação de ótimos locais e globais em um Problema de Otimização Combinatória
Conceito de Vizinhança Uma solução s 0 diz-se fazer parte da vizinhança da solução s se e somente se s 0 resultou de uma modificação em s, de tal maneira que continue a fazer parte do conjunto de soluções possíveis. A vizinhança, então, é dependente do modo adotado para gerar soluções viáveis. Não existem regras definidas e rígidas que sirvam para todos os problemas
Heurísticas Construtivas Partem de uma solução vazia, acrescentando elemento a elemento, seguindo um certo critério heurístico, até completar uma solução. Método aleatório - mais simples. Em muitos métodos gulosos, a cada passo da construção da solução é adicionado um único elemento candidato, sendo o candidato escolhido o melhor segundo um certo critério. O método termina após todos os candidatos serem analisados. Vantagem - soluções de qualidade muito superior à média das soluções aleatórias Desvantagem - uma decisão tomada na inserção de um elemento não pode ser alterada
Heurísticas de refinamento Técnicas de busca local Baseadas na noção de vizinhança Seja S o espaço de pesquisa de um problema de otimização e f a função objetivo a otimizar (minimizar ou maximizar) Seja s uma solução qualquer do problema, isto é, s S
Heurísticas de refinamento Seja N uma função que associa a cada solução s S, sua vizinhança N(S) S N depende do problema tratado Cada solução s N(s) é chamada vizinho de s Denomina-se movimento a uma modificação m que transforma uma solução s em outra, s, que esteja em sua vizinhança: s s m
Heurísticas de refinamento (Princípio de funcionamento) Partir de uma solução inicial qualquer Caminhar, a cada iteração, de vizinho para vizinho de acordo com a definição de vizinhança adotada, tentando melhorar a solução construída
Método da descida/subida (Descent/Uphill Method) Parte de uma solução inicial qualquer A cada passo analisa todos os possíveis vizinhos Move somente para o vizinho que representa uma melhora no valor atual da função de avaliação O método pára quando um ótimo local é encontrado
Método de descida (Descent Method)
Problema da mochila Como encher sua mochila com os itens mais valiosos de um tesouro, considerando que você não vai conseguir levar tudo?
Exemplo1 Um excursionista planeja fazer uma viagem acampando. Há 5 itens que ele deseja levar consigo, mas estes, juntos, excedem o limite de 23 quilos que ele supõe ser capaz de carregar. Para ajudar a si próprio no processo de seleção, ele deverá atribuir valores, por ordem crescente de importância a cada um dos itens. O objetivo é determinar o conjunto de objetos que devem ser colocados na mochila de forma a maximizar o valor de retorno respeitando a sua capacidade.
Problema da Mochila 0-1 Considere uma coleção de itens indexados pelo conjunto N={1, 2,..., n}. A cada item está associado um "valor de utilidade" u i Z + (i N) e um "peso" p i Z + (i N) que representa o quanto esse item utilizará da capacidade (um inteiro positivo) da mochila. Seja a i = 1 se o item i foi escolhido para compor a mochila, e a i = 0 no caso contrário. O problema pode ser escrito como: Uma solução é um vetor de uns e zeros s = (a 1,a 2,...,a n ), movimento=troca de um bit
Exemplo1 Seja uma mochila de capacidade c = 60 e os 5 itens da tabela a seguir, com os respectivos pesos e utilidade. item (i) 1 2 3 4 5 Peso (pi) 52 23 35 15 7 Utilidade (ui) 100 60 70 15 15
Exemplo1 item (i) 1 2 3 4 5 Peso (pi) 52 23 35 15 7 Utilidade (ui) 100 60 70 15 15 Solução: Objetos escolhidos: 2 e 3 0 1 1 0 0
Exemplo2 pasta cheia de arquivos; gravá-los em CD; Sabe-se que não vai caber tudo num CD só; Como proceder para encaixar o máximo de arquivos em cada CD desperdiçando o mínimo espaço em cada disco?
Exercício1 obj= 10; cap= 100; util = 5 7 6 10 8 3 4 1 7 3; peso = 15 18 13 23 9 10 11 5 14 5;
Exercício3 util = 5 7 6 10 8 3 4 1 7 3; Peso = 15 18 13 23 9 10 11 5 14 5; Solução: Objetos escolhidos: 1, 2, 3, 4, 5, 9 e 10 1 1 1 1 1 0 0 0 1 1
Exercício4 Problema da Mochila 0-1 Múltipla Resolva o problema anterior, supondo que existem várias mochilas, cujas capacidades estão representadas a seguir util = 5 7 6 10 8 3 4 1 7 3; Peso = 15 18 13 23 9 10 11 5 14 5; Mochila A 47 B 28 capacidade C 42
Exercício4 Problema da Mochila 0-1 Múltipla valor = 5 7 6 10 8 3 4 1 7 3; Peso = 15 18 13 23 9 10 11 5 14 5; Mochila capacidade A 47 B 28 C 42
Exercício4 Problema da Mochila 0-1 Múltipla util = 5 7 6 10 8 3 4 1 7 3; Peso = 15 18 13 23 9 10 11 5 14 5; Mochila capacidade A 47 B 28 C 42
Variações Problema da Mochila 0-1; Problema da Mochila Restrita; Problema da Mochila Irrestrita; Problema da Soma de Subconjuntos (uma particular Mochila 0-1); Problema da Mochila com Múltipla Escolha; Problema com Múltiplas Mochilas; Problema da Mochila com Coeficientes Variáveis. http://www.cc.ntut.edu.tw/~line/a%20bibliographical %20survey%20on%20some%20well-know%20nonstandard%20knapsack%20problems.pdf
Aplicações Práticas investimento de capital; corte e empacotamento; carregamento de veículos; orçamento; algoritmo de criptografia de chave pública, onde no contexto do problema da mochila a chave pública seria o peso total que a mochila pode carregar e a partir daí, por essa palavra a encriptação é gerada.