• Nenhum resultado encontrado

Revisitando o Método de Ranking de Pontos Extremos para o Problema da Mochila Linear.

N/A
N/A
Protected

Academic year: 2021

Share "Revisitando o Método de Ranking de Pontos Extremos para o Problema da Mochila Linear."

Copied!
65
0
0

Texto

(1)

UNIVERSIDADE FEDERAL DE ITAJUBÁ

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

DE PRODUÇÃO

Revisitando o Método de Ranking de Pontos Extremos para o

Problema da Mochila Linear

Julio Cesar Mosquera Gutierres

(2)

PROGRAMA DE PÓS-GRADUAÇÃO EM

ENGENHARIA DE PRODUÇÃO

Julio Cesar Mosquera Gutierres

Revisitando o Método de Ranking de Pontos Extremos para o

Problema da Mochila Linear

Dissertaçãosubmetida ao Programa de

Pós-Graduação em Engenharia de Produção

como parte dos requisitos para obtenção do

Título de Mestre em Ciências em Engenharia

de Produção.

Área de Concentração: Otimização

Orientador: Prof. Dr. Rafael Coradi Leme

Dezembro de 2015

Itajubá

(3)

UNIVERSIDADE FEDERAL DE ITAJUBÁ

PROGRAMA DE PÓS-GRADUAÇÃO EM

ENGENHARIA DE PRODUÇÃO

Julio Cesar Mosquera Gutierres

Revisitando o Método de Ranking de Pontos Extremos para o

Problema da Mochila Linear

Dissertaçãoaprovada por banca examinadora em

11 de dezembro de 2015, conferindo ao autor o

título de Mestre em Ciências em Engenharia de

Produção.

Banca Examinadora:

Prof. Dr. Rafael Coradi Leme (Orientador)

Prof. Dr. Heitor Silvério Lopes

Prof. Dr. Antonio Carlos Zambroni de Souza

Itajubá

2015

(4)

meus pais Julio e Ligia, pelo apoio constante sem importar a

distância; Meus irmãos: Juan José, María Caridad e María Paz,

pelas constantes palavras de motivação; Minha avó Eduviges,

pela preocupação que sempre teve por mim; E para Pamela por

(5)

AGRADECIMENTOS

Quero iniciar agradecendo ao meu orientador Prof. Dr. Rafael Coradi Leme por todos os conhecimentos ensinados e por sempre ficar pendente da pesquisa e ter feito que o resultado dessa dissertação seja ótimo. Além de ter se transformado em um bom amigo.

Agradecer também aos pesquisadores Heitor Silvério Lopes e Antonio Carlos Zambroni de Souza, por terem aceitado fazer parte da banca avaliadora, o que acrescentará, e muito, o conteúdo dessa dissertação.

Quero fazer um agradecimento a todos os professores da UNIFEI que ajudaram a enriquecer os meus conhecimentos.

É importante fazer um agradecimento especial à FAPEMIG por ter fornecido a bolsa que me permitiu fazer essa pesquisa.

Não posso deixar de agradecer aos amigos/amigas que fiz durante esses mais de dois anos, especialmente a: Patricia, Taynara, Elisa, Diogo, David e Harlenn por sempre terem mostrado boa vontade na hora de me ajudar com problemas.

Quero agradecer também a Guilherme Augusto Barucke Marcondes, por sempre me salvar quando tinha algum problema com o documento da dissertação.

Um agradecimento especial a todos os membros da República V8: Marcelo, LuÃs Gustavo (Léo), José Eduardo, Edgar, Lucas (Vinte), Luis Eduardo (Tropica) e Francisca (Chiquinha) por terem sido minha família no tempo que morei em Itajubá.

E Ã c⃝ impossível não agradecer aos membros do F-O-C: David, Harlenn, Ibrahim e Rashid,

(6)

O problema da mochila linear visa encontrar um subconjunto de itens que otimize uma função objetivo sem exceder uma capacidade de mochila dada. É um dos problemas mais es-tudados em otimização combinatória e que nas últimas décadas vem sendo muito utilizado nas áreas de produção e administração. Na literatura existem vários métodos para resolver efeti-vamente esse problema. Porém, o método de ranking de pontos extremos busca a solução do problema analisando os vértices adjacentes ao vértice que resolve o problema relaxado para encontrar soluções alternativas. Quando foi apresentado em 1973, mostrou resultados inte-ressantes, mas não tem sido mais utilizado pelos pesquisadores há aproximadamente 40 anos. Nessa dissertação será retomado o conceito de ranking de pontos extremos com o objetivo de determinar se foi acertada a decisão dos pesquisadores de não utilizar mais esse método. Para tal propósito o desempenho do ranking de pontos extremos foi comparado com o desempenho de dois métodos branch-and-bound. Um utiliza o método simplex para resolver os problemas,

branch-and-bound-simplex(BBS), enquanto o segundo utiliza o método proposto por Danztig

para achar a solução do problema da mochila contínuo, branch-and-bound-Dantzig(BBD). Os resultados obtidos mostraram que o método BBD é o melhor dos três tanto em eficácia como em rapidez, já o ranking de pontos extremos se apresentou competitivo ao BBD em problemas com até 500 variáveis, piorando rapidamente à medida que o tamanho dos problemas aumentava. Os métodos BBD e de ranking de pontos extremos obtiveram sempre as respostas ótimas. O BBS, dependendo das características de alguns problemas, não atingiu o ótimo, sendo por esse fato considerado como o pior de todos. O que faz concluir que sim, é justificado ter deixado de usar o método de ranking de pontos extremos para resolver o problema da mochila linear já que existem outros métodos com desempenho melhor.

(7)

ABSTRACT

The knapsack problem aims at finding a subset of items that maximize (minimize) an ob-jective function without exceeding a given knapsack capacity. This is one of the most studied problems in combinatorial optimization and has been widely used in the areas of production and business and operation research in decades. There are various methods to solve effectively this problem in the literature. One of such methods is to the ranking of extreme points. In this approach, the problem is solved by analyzing the vertices adjacent to the vertex that optimize the relaxed problems as to find alternative solutions. When this method was proposed, in 1973, it showed promissing results. However, it has not been used by researchers for approximately 40 years. This dissertation will revisit the concept of ranking of extreme points in order to determine whether or not was valid the decision of researchers to abandon this method. For this purpose, the performance of ranking of extreme points was compared with the performance of two branch-and-bound approaches. One of them uses the simplex method to solve the pro-blems, branch-and-bound-simplex (BBS); while the other solves the relaxed subproblems of branch-and-bound by the method proposed by Danztig, branch-and-bound-Dantzig (BBD). Re-sults showed that the BBD method is the best of the three in both efficiency and speed. The ranking of extreme points was competitive to BBD in problems with up to 500 variables, wor-sening quickly as the size of the problems increased. The BBD and ranking of extreme points methods always obtained good solutions, while the BBS, depending on the characteristics of some problems, did not reach the optimum. Thus, BBS is considered as the worst of all methods. We conclude that it was justified to stop using the method of ranking of extreme points to solve the knapsack problem since there are other methods with better performance.

(8)

Figura 3.1 – Exemplo 3.2 resolvido pelo método de Dantzig . . . 26

Figura 3.2 – Um corte da região de solução do problema original . . . 27

Figura 3.3 – Árvore completa para o exemplo 3.2 . . . 33

Figura 3.4 – Ranking completo para o exemplo 3.2 . . . 37

Figura 3.5 – Posição das partículas após N iterações . . . . 42

Figura 4.1 – Box-plot para cada caso . . . 49

Figura 4.2 – Melhor regressão para cada caso . . . 51

(9)

LISTA DE TABELAS

Tabela 3.1 – Exemplo resolvido por PD . . . 24

Tabela 4.1 – Medidas de desempenho de cada método . . . 47

Tabela 4.2 – Tempos máximos e mínimos gasto por cada método . . . 48

Tabela 4.3 – Índice de assimetria para cada método . . . 48

Tabela 4.4 – Dados da regressão de cada método . . . 52

(10)
(11)

SUMÁRIO

Agradecimentos . . . v

Resumo . . . vi

Abstract . . . vii

Lista de ilustrações . . . viii

Lista de tabelas . . . ix Lista de quadros . . . x Sumário . . . xi 1 INTRODUÇÃO . . . 14 1.1 Objetivo . . . 16 1.2 Organização da Dissertação . . . 16 2 O PROBLEMA DA MOCHILA (PM) . . . 18

2.1 Problema da Mochila Linear (PML) . . . 18

3 MÉTODOS DE SOLUÇÃO PARA O PROBLEMA DA MOCHILA . . 22

3.1 Programação Dinâmica (PD) . . . 22

3.2 Método de Dantzig para o PML . . . 24

3.3 Planos de Corte (PC) . . . 26

3.4 Método de Branch-and-Bound (B&B) . . . 29

3.5 Ranking de pontos extremos (vértices) . . . 33

3.6 Meta Heurísticas . . . 37

3.6.1 Inteligência Artificial (IA) . . . 38

3.6.2 Algoritmos Genéticos (AG) . . . 39

3.6.3 Particle Swarm Optimization (otimização por enxame de partículas) . . . . . 41

3.6.4 Busca Tabu . . . 42

3.6.5 Simulated Annealing (Recozimento Simulado (RS)) . . . . 44

(12)

A APÊNDICES . . . 55

A.1 Programação Linear (PL) e métodos de solução . . . 55

A.2 Método Simplex (MS) . . . 55

A.3 Método Simplex Revisado (MSR) . . . 57

A.4 Teorema para problemas inteiros . . . 59

A.4.1 Teorema Taha . . . 59

(13)

1 INTRODUÇÃO

O problema da mochila clássico (PM) pode ser definido da seguinte maneira: dados n ele-mentos, cada elemento tem um lucro p e um peso w, e uma capacidade da mochila c; o objetivo é escolher um subconjunto de elementos que serão colocados na mochila para gerar o maior lucro/menor custo (para problemas de maximização/minimização) sem exceder c.

Este problema é um problema de decisão bem conhecido em que a probabilidade de uma seleção particular de alternativas pode ser avaliada por uma combinação linear de coeficientes para cada decisão contínua, inteira ou binária (ISLAM et al., 2009).

O PM é uma boa maneira de representar decisões que têm o foco sobre uma única restrição. Porém, na vida real não existem muitas decisões com uma única restrição mas, sim, muitas onde uma restrição tem mais importância do que as outras. Por isso o modelo de mochila pode ser mais amplamente aplicado do que na simples ideia de ter uma única restrição. Esta é a razão pela qual muitos dos métodos de solução dos problemas mais complexos empregam o problema da mochila como um subproblema. Por isso o problema da mochila vem sendo muito estudado nas últimas décadas (BARTHOLDI, 2008). Esses problemas mais complexos podem, às vezes, ser resolvidos mediante a resolução de uma sequência de PM. Uma abordagem geral para esses problemas é identificar a restrição que mais limita, ignorar as outras, resolver o PM, e ajustar a solução para satisfazer as restrições ignoradas (KELLERER et al., 2004).

Em um modelo de programação linear o resultado de um processo de decisão é avaliado por uma combinação linear dos valores associados a cada uma das decisões contínuas, inteiras ou binárias (dependendo das caraterísticas do problema) (KELLERER et al., 2004). Por isso o

problema da mochila é um dos problemas mais estudados em otimização combinatória.

Exis-tem diversas variantes do problema (GAO et al., 2014), entre elas: Problema da mochila 0− 1,

Problema da mochila quadrático, Problema da mochila de múltipla escolha, etc.1. O problema

da mochila, além de ser fundamental é amplamente estudado nos modelos de pesquisa operaci-onal que fornecem informações sobre as soluções dos problemas mais complexos de atribuição de capacidade de recursos discretos (JACKO, 2013).

Entre os diferentes tipos de problemas da mochila, o problema da mochila linear binário (0− 1) é, talvez, o mais importante e um dos mais estudados de programação discreta. A razão para tal interesse está basicamente ligada a três fatores: a) pode ser visto como o problema mais simples de programação linear inteira; b) aparece como um subproblema em muitos outros problemas mais complexos; c) pode representar uma gama muito grande de situações práticas

(14)

(com várias aplicações na vida cotidiana) (MARQUES, 2000).

A diferença entre o problema da mochila clássico e o problema da mochila 0− 1 é que

no problema da mochila 0− 1 somente pode ser escolhido um elemento de cada classe para

ser colocado dentro da mochila (MARTELLO et al., 1999). Contudo, qualquer problema da mochila clássico pode ser reescrito como um problema da mochila 0-1.

Outro problema muito importante e estudado é o Problema da Mochila Quadrático (PMQ) que visa maximizar a função objetivo quadrática sujeita a uma restrição de mochila onde todos os coeficientes são considerados não negativos e todas as variáveis de decisão são binárias e/ou inteiras (CAPRARA et al., 1999) e (PISINGER et al., 2007). O PMQ é um problema no qual um item tem um lucro correspondente e um lucro adicional é resgatado se o item é selecionado junto a outro item (KELLERER et al., 2004).

É bem conhecido que os problemas da mochila são NP-difícil. Um problema é dito poli-nomial (pertencente à classe P) se existe um algoritmo conhecido capaz de resolver o mesmo, cuja complexidade, no pior dos casos, seja polinomial em relação ao tamanho do problema. Um problema pertence à classe NP quando é possível verificar se uma solução candidata é de fato uma solução do problema. Já o problema é dito NP-difícil se ele for tão difícil quanto qualquer problema em NP. Um problema C é NP-difícil se: C está em NP (problema de tempo polinomial); e se todo problema em NP-difícil é redutível para C em tempo polino-mial (MATHUR; VENKATESHAN, 2007), (ZHAO; LI, 2013). Por isso para resolvê-los, os pesquisadores têm utilizado diversas técnicas de otimização das quais algumas serão abordadas nos próximos capítulos.

Em geral, os algoritmos de solução utilizados para resolver o problema da mochila (em todas suas formas) são baseados em técnicas de otimização combinatória e/ou inteira. Sendo assim, as técnicas de otimização combinatória se mostram como as melhores para resolver este tipo de problemas, pois exigem frequentemente resolver uma sequência de subproblemas ou relaxamentos de programação linear (PL)(mais simples) (ENGAU et al., 2010). Esses subpro-blemas normalmente surgem de novas formulações de programação inteira, podendo serem resolvidos através de diversos métodos de otimização que têm sido apresentados ao longo do tempo (MUNARI et al., 2011). Entre os mais utilizados estão: Métodos simplex e simplex re-visado, método de pontos interiores, método de branch-and-bound, método de planos de corte, método de inteligência artificial.

Métodos simplex e simplex revisado, são utilizados para resolver problemas lineares. Ana-lisam somente a fronteira do espaço de solução e fornecem uma resposta contínua. Método de pontos interiores, são geralmente utilizados para resolver problemas lineares de grande porte e, fornecem uma resposta contínua após analisar a parte central do espaço de solução. Método de

(15)

16

branch-and-bound é utilizado para resolver problemas inteiros ou mistos dividindo o problema

original em subproblemas lineares mais fáceis de resolver até encontrar a resposta inteira ótima. Métodos de planos de corte permitem encontrar uma resposta contínua estreitando o espaço de solução do problema. Meta-heurísticas que permitem resolver problemas difíceis mais rapida-mente, geralmente utilizando algoritmos evolutivos. A motivação por trás desta dissertação está em retomar uma técnica que não tem sido utilizada pelos pesquisadores faz 40 anos o método de ranking de pontos extremos. O método é enumerativo e examina os vértices adjacentes ao vértice que está minimizando a função objetivo a fim de encontrar soluções alternativas para o problema original. Quando Taha (1972) apresentou o método, este se mostrou muito efetivo para resolver o problema da mochila clássico. Segundo os resultados apresentados pelo autor, o ranking de pontos extremos foi mais eficiente do que o método de branch-and-bound tradici-onal. Taha também observou que quando se analisavam novos pontos no método de ranking de pontos extremos o tempo de convergência incrementava de uma maneira quase que linear, já no método de branch-and-bound o fazia de maneira exponencial. Desde então, o método de ran-king de pontos extremos não tem mais sido explorada na literatura. No trabalho de Taha foram avaliados somente problemas com até 100 variáveis (neste trabalho serão analisados problemas com até 30.000 variáveis).

1.1

Objetivo

O objetivo dessa dissertação é determinar a eficiência do método de ranking de pontos ex-tremos para resolver o problema da mochila linear, para poder responder a seguinte pergunta: justifica não utilizar mais o método de ranking de pontos extremos? Além de determinar se o método oferece melhores resultados do que o método de branch-and-bound (tradicional) para problemas com instâncias maiores.

1.2

Organização da Dissertação

Para alcançar o objetivo planejado, esta dissertação será dividida da seguinte forma:

No capítulo 2 será apresentado o Problema da Mochila Linear, tomando em consideração a formulação contínua, inteira e binária.

No capítulo 3 serão apresentadas as metodologias mais utilizadas na literatura para a resolu-ção do problema da mochila. Além de analisar o método de ranking de pontos extremos de Taha para resolver o problema da mochila linear, bem como apresentar uma proposta para melhorar a sua performance na hora de procurar uma solução para problemas de instâncias maiores.

(16)

Finalmente o capítulo 5 apresentará as conclusões da dissertação, além de indicar algumas recomendações.

(17)

2 O PROBLEMA DA MOCHILA (PM)

O "problema da mochila"aparece em muitas formas na economia, engenharia, e administra-ção: qualquer local onde tenha que ser atribuído um único recurso escasso entre vários candida-tos para esse recurso. Tem adquirido o nome de "problema da mochila" porque a experiência de embalar bagagem dá uma noção do problema: O que deve ser escolhido quando o espaço é limitado? (BARTHOLDI, 2008).

A maioria dos eventos são consequências de decisões, e é por isso que o PM vem sendo muito estudado nas últimas décadas já que tem várias aplicações em diversas áreas (ZHONG; YOUNG, 2010). Encontrar o valor ótimo pode ser difícil, pois o conjunto de opções disponíveis pode ser extremamente grande e/ou não explicitamente conhecido. Este problema é bem conhecido como uma decisão onde a escolha particular de alternativas pode ser avaliada por uma combi-nação linear de coeficientes para cada decisão contínua, inteira ou binária. Uma decisão pode incluir um item ou excluir o item da seleção (ISLAM et al., 2009).

2.1

Problema da Mochila Linear (PML)

Em um modelo de decisão linear o resultado de um processo de decisão completa é avaliado por uma combinação linear dos valores associados a cada uma das decisões binárias (inteiras ou contínuas) (KELLERER et al., 2004). Por isso é bem conhecido que o problema da mochila li-near é NP-difícil (MATHUR; VENKATESHAN, 2007), (ZHAO; LI, 2013). Segundo Zhao e Li (2013) o PML pode ser facilmente entendido da seguinte forma: Dados n itens e uma mochila com capacidade c, cada item tem um peso wie um valor pi, o objetivo é encontrar um

subcon-junto S de todos os itens de forma que o peso total dos itens em S é no máximo c, e o valor total é o máximo. Já Islam et al. (2009) indicam que para um problema de minimização dados

n itens com um custo pie um peso wie uma demanda D, o objetivo é encontrar um subconjunto

S de itens para os quais o tamanho total seja pelo menos a demanda D e que o custo total de

todos os itens seja o mínimo possível.

A estrutura comum do PML é sintetizada da seguinte maneira: 1. Depara-se com um número de decisões sim/não.

2. As decisões são independentes, exceto que cada decisão "sim"consome uma quantidade conhecida de um único recurso escasso comum.

(18)

Baseados na interpretação prévia, o PML "contínuo" no qual busca-se minimizar a função obje-tivo, pode ser formulado da seguinte maneira:

maximizar n

j=1 pjxj (2.1) sujeito a n

j=1 wjxj≤ c xj≥ 0

Kellerer et al. (2004) e Pisinger (2005) indicam que o PML é um simples modelo de pro-gramação inteira com uma restrição única e com coeficientes positivos. Desta maneira os PML frequentemente são resolvidos por um relaxamento de vários programas inteiros (PISINGER, 1995). Por isso geralmente as quantidades dos itens escolhidos precisam ser inteiras e o PML

pode ser reformulado como um problema inteiro, como se mostra a seguir:

maximizar n

j=1 pjxj (2.2) sujeito a n

j=1 wjxj≤ c xj∈ Z,∀jewj, D∈ Z∗,∀j

Para Bartholdi (2008), o PML é uma boa maneira de representar decisões que têm o foco sobre uma única restrição. Porém, na vida real, não existem muitas decisões com uma única restrição, mas muitas onde uma restrição tem maior importância do que as outras. Por isso o modelo de mochila pode ser amplamente aplicado do que na simples ideia de ter uma única restrição, sendo essa a razão de que muitos dos métodos de solução dos problemas mais com-plexos empregam o PML como um subproblema. Esses problemas mais comcom-plexos podem, às vezes, ser resolvidos mediante à resolução de uma sequência de PML. Uma abordagem geral para esses problemas é identificar a restrição que mais limita, ignorar as outras, resolver o PML, e ajustar a solução para satisfazer as restrições ignoradas (KELLERER et al., 2004).

O PML é estático e determinístico pois todos os itens são considerados em um ponto no tempo, e seus tamanhos e valores são conhecidos a priori (KLEYWEGT; PAPASTAVROU, 1998), motivo pelo qual é bem conhecido que pode ser resolvido exatamente por meio de progra-mação dinâmica: decompõe-se um problema complexo em subproblemas mais simples; em um tempo O(nc) onde n é o número de itens e c é a capacidade da mochila (FOMENI; LETCHFORD,

(19)

20

2013). O PML varia quando novas restrições são adicionadas ou as restrições existentes são mo-dificadas (ZHONG; YOUNG, 2010).

Marques (2000) indica que o PML, pelo fato de ser considerado um problema NP-difícil, tem sido exaustivamente estudado nas últimas décadas e vários algoritmos exatos de solução podem ser encontrados na literatura, o que fez considerar ao PML como um dos problemas

"fáceis" dentre os problemas NP-difícil. Mas Pisinger (2005) faz uma revisão das

caracte-rísticas de todas as soluções exatas recentes e mostra que o PML ainda continua sendo difí-cil de se resolver com esses algoritmos para uma variedade de novos problemas testados. A maioria dos algoritmos utilizados para tratar o PML encontrados na literatura utilizam as se-guintes técnicas: branch-and-bound, programação dinâmica, relaxamento do estado espacial e

pré-processamento1. Existem outras técnicas que também ajudam a resolver o PML, por

exem-plo: balanceamento (PISINGER, 1999), particionamento (HOROWITZ; SAHNI, 1974), o que indica que existem várias técnicas que resolvem efetivamente o PM (MARTELLO et al., 2000).

Existem casos em que as decisões precisam da escolha de uma, entre duas alternativas, onde

x = 1 indica que a alternativa analisada foi escolhida para ser colocada dentro da mochila. Por

outro lado, se x = 0, indica que a alternativa analisada foi rejeitada como uma opção para ser colocada na mochila. Quando isso ocorre o problema é conhecido como: Problema da Mochila

Binário ou também conhecido como Problema da Mochila 0-1 (PM 0-1) (pode ser linear ou

quadrático). Esse problema é considerado como um dos problemas clássicos em otimização combinatória (GORSKI et al., 2012) e pode ser formulado como se segue:

maximizar n

j=1 pjxj (2.3) sujeito a n

j=1 wjxj≤ c xj∈ {0,1} j ∈ {1,...,n}

Martello et al. (1999) indicam que nos casos em que existe pouca ou nenhuma correlação entre o custo c e o peso s de cada item i dos problemas podem ser facilmente resolvidos com otimalidade, inclusive para grandes valores de n. Por outro lado, nos casos onde existe uma

forte correlação, bem como casos envolvendo quantidades muito grandes de valor pi e de peso

wi, pode ser muito difícil encontrar a solução ótima.

Tanto o PML quanto o PML 0-1 são usualmente utilizados para modelar situações da indús-tria ou decisões financeiras (GAIVORONSKI et al., 2011). Exemplos podem ser encontrados

1 para entender melhor estas técnicas e alguns dos algoritmos que as utilizam para resolver o PML revisar (PISINGER, 1995).

(20)

em problemas de investimento, programação de dieta para pessoas, problemas de corte de esto-que, problemas de orçamento (PISINGER, 1995), problemas na indústria do transporte, progra-mação de lotes de produção, área de vendas, investimentos, etc., (KLEYWEGT; PAPASTAVROU, 1998). O PML e o PML 0-1 também são muito utilizados em problemas de carregamento de

contêineres em navios de carga; problemas de otimização de portfólio são comumente abor-dados como problemas de mochila onde o orçamento é a restrição mais importante; inclusive problemas de programação de produção podem ser resolvidos por um enfoque do problema da mochila, especialmente quando as máquinas representam um grande investimento e elas pos-suem o tempo como o recurso escasso mais importante (LINHARES, 2009). Nessa dissertação a análise de algoritmos de solução será aplicada exclusivamente para o PML 0-1.

(21)

3 MÉTODOS DE SOLUÇÃO PARA O

PROBLEMA DA MOCHILA

Os algoritmos de solução utilizados para resolver o PM são, em geral, baseados em técni-cas de otimização combinatória e/ou inteira. Estas técnitécni-cas são as melhores para resolver este tipo de problemas, já que exige frequentemente resolver uma sequência de subproblemas ou relaxamentos de programação linear (PL) sucessivos (ENGAU et al., 2010). Esses subproble-mas surgem de novas formulações de programação inteira e podem ser resolvidos com diversos métodos de otimização que têm sido apresentadas ao longo do tempo (MUNARI et al., 2011). Neste capítulo será realizada uma pequena introdução de alguns dos métodos mais utilizados para resolver o PML 0-1.

3.1

Programação Dinâmica (PD)

Na maioria dos problemas práticos, as decisões têm que ser feitas sequencialmente em dife-rentes pontos no tempo, em difedife-rentes pontos no espaço e em difedife-rentes níveis, por um compo-nente, um subsistema ou por um sistema. A PD é uma abordagem de otimização que decompõe um problema complexo em uma sequência de subproblemas mais simples. Isso pode ser con-siderado como um processo recursivo que interpreta um problema de otimização como um processo de decisão multiestágio. Associado a cada estágio existem estados do processo, cada estado é uma maneira de descrever a solução do subproblema mesmo que contenha suficiente informação para fazer futuras decisões sobre o problema original (RONG; FIGUEIRA, 2014). Também é sabido que a PD é uma técnica matemática bem estudada na otimização de problemas de decisão multiestágio, que quando aplicada, representa ou decompõe um problema de decisão multiestágio como uma sequência de problemas de decisão de estágio único. Desse modo, um

problema de N−variáveis é representado como uma sequência de problemas de N−variáveis

únicas que são resolvidas sucessivamente e, na maioria dos casos. Esses N subproblemas são mais fáceis de resolver do que o problema original (RAO, 2009).

Segundo Dasgupta et al. (2006), a PD é um poderoso paradigma algorítmico no qual um problema é resolvido mediante a identificação de uma coleção de subproblemas e combatendo eles um de cada vez, os menores primeiro, para depois utilizar as respostas desses problemas como ajuda na resolução dos maiores, se repetindo até todos os problemas sejam resolvidos. Já para Huang e Sagae (2010) a principal observação para a PD é misturar "estados

(22)

custos. Zhang et al. (2011) utilizaram técnicas de PD para desenvolver um método computa-cional simples para buscar um modelo de ramificação-específica ótimo em um tempo prático; Kraft e Steffensen (2013) utilizaram a PD para resolver o problema de portfólio restrito, já que a PD dá fácil acesso à função de valor e os controles do problema e, portanto, desempe-nha um papel importante para a resolução de problemas de controle estocásticos em finanças. Rong e Figueira (2014) utilizaram algoritmos de PD para encontrar a fronteira de Pareto exata para o problema da mochila inteira bi-objetivo. Schuetz e Kolisch (2012) utilizaram uma apro-ximação da PD para determinar um modelo que permita achar soluções ótimas no problema de alocação de capacidade na indústria de serviços.

O PML 0-1 pode ser resolvido através de PD da seguinte maneira:

Algoritmo 3.1:Programação Dinâmica

Dados: p, w, c, n

Resultado:Solução do problema

1 Inicio; k = 0 ;

2 para k =0 até k = n faça

3 fk(c) = Max fk−1(c), pk+ fk−1(c− wk) 4 fim 5 se fk(c) = fk−1(c) então 6 Pk(c) = 0; 7 senão 8 Pk(c) = 1; 9 fim 10 se Pk(c) = 0 então 11 xk= 0; 12 fk(c) = fk−1(c− wk); 13 senão 14 xk= 1; 15 fk(c) = pk+ fk−1(c− wk); 16 fim 17 retorna x

Onde pk representa o valor do item k, wk representa o peso do item k, c representa a

capa-cidade da mochila. A seguir será resolvido um exemplo para ilustrar a maneira que a PD atua. Seja:

(23)

24

maximizar 3x1+ x2+ 2x3 (3.1)

sujeito a 2x1+ 4x2+ 3x3≤ 8

x∈ {0,1}

A Tabela 3.1 mostra a resolução usando PD.

Tabela 3.1 – Exemplo resolvido por PD

c f0 f1 f2 f3 P1 P2 P3 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 2 0 3 3 3 1 0 0 3 0 3 3 3 1 0 0 4 0 3 3 3 1 0 0 5 0 3 3 5 1 0 1 6 0 3 4 5 1 1 1 7 0 3 4 5 1 1 1 8 0 3 4 5 1 1 1 P3(8) = 1→ x∗3= 1 P2(8− 3) = P2(5) = 0→ x∗2= 0 P− 1(5) = 1 → x∗1= 1 A solução ótima é x∗(1, 0, 1) e f (x∗) = 5.

3.2

Método de Dantzig para o PML

O método apresentado por Dantzig (1957) permite encontrar um bom limite superior (infe-rior) inicial e boas soluções iniciais, porém não necessariamente soluções ótimas. Além disso, esse método também produz rapidamente a solução do PML contínuo.

O método de Dantzig indica que, todos os valores dos pesos aje dos custos cjsão positivos

e, assumindo que os índices das variáveis xjsão arranjadas de modo que c1/a1≥ c2/a2≥ ... ≥

cn/an, é possível definir p como o menor inteiro (0≤ p ≤ n) tal que ∑j≤paj ≥ b (p indica o

índice da variável limite que pode ser selecionada para ser colocada dentro da mochila). Dessa maneira a solução fracional ótima para o PM é dada como:

(24)

xj=          1 se j < p (b− ∑ j<k ak)/ap se j = p 0 se j > p (3.2)

Se não existe nenhuma variável p, então todas as variáveis xj = 1. E se xp= 0, então a

solução inteira resultante é ótima para o PM.

O método de Dantzig enxerga o PM como um programa linear com variáveis limitadas, 0≤ xj≤ 1, j = 1,2,...n onde uma única variável aparece na base enquanto as variáveis restantes

são não base em nível 0 ou nível 1. Deixando xr ser a variável básica, os custos reduzidos zj−cj

para xj, j̸= r devem satisfazer as seguintes condições para alcançar a solução ótima:

zj− cj=

{

(−cr)(1/ar)/aj− (−cj) se xj= 0

−(−cr)(1/ar)/aj− (−cj) se xj= 1

(3.3)

Isso significa que cr/ar ≥ cj/aj para toda j tal que, xj= 0 e não básica pelo limite inferior,

e cr/ar ≤ cj/aj para todo j tal que, xj = 1 e não básica pelo limite superior. A escolha de

r = p resulta na viabilidade da restrição. Isso resulta em uma aproximação que permite obter

uma solução inteira inicial e, consequentemente, um bom limite superior inicial. A ideia da aproximação é adicionar a maior quantidade de novas variáveis que for possível ao nível 1 provando que a viabilidade é mantida enquanto vai chegando até o menor limite superior. Isso faz com que mais variáveis se mostrem atrativas para serem elevadas ao nível um antes de ocorrer a inviabilidade. A solução aproximada é dada por

xj∗=

{

1 se j < p

0 caso contrário (3.4)

E o limite superior inicial é definido por

z =

n

j=1

(−cj)xj∗ (3.5)

A seguir, a Figura 3.1 mostra o exemplo 3.2 sendo resolvido através do método proposto por Dantzig.

(25)

26

Figura 3.1 – Exemplo 3.2 resolvido pelo método de Dantzig Coincidentemente a solução ótima é x∗(1, 0, 1) e f (x∗) = 5 igual que na PD.

3.3

Planos de Corte (PC)

Os planos de corte são uma parte integral da programação inteira. Por anos, vários tipos de planos de corte para problemas inteiros e misto-inteiros têm sido apresentados e estudados na literatura (DUNKEL; SCHULZ, 2012).

Em geometria, uma equação com duas variáveis é chamada de plano, uma equação em n variáveis é chamada de hiperplano e uma restrição de desigualdade com n variáveis é chamada de semi-espaço. O termo plano de corte é, às vezes, usado para designar uma restrição de igualdade ou de desigualdade que pode cortar uma parte fracionária de uma região factível de um problema de PL, sem excluir nenhuma solução inteira factível. Os métodos de planos de corte restringem o problema relaxado de PL para aproximá-lo a um problema de programação inteira (PI) (MITCHELL, 2002).

Na aproximação pelo plano de corte, um ou mais cortes são adicionados à tabela simplex do problema PL atual que por sua vez são resolvidos por um novo problema de PL ótimo, este processo se repete até satisfazer os requerimentos de integralidade prescritos (CHEN et al., 2010). O procedimento para resolver iterativamente programas lineares e adicionar restrições violadas é comumente chamado como algoritmo de plano de corte (FERREIRA et al., 1996).

A ideia principal dos algoritmos de planos de corte é eliminar a necessidade das restri-ções de integridade através da introdução de mais e novas desigualdades. Também se chama

(26)

plano de corte uma restrição linear adicionada a um problema inteiro para remover uma so-lução linear, uma vez que a soso-lução do problema linear é cortada a partir da região viável (JUKNA; SCHNITGER, 2012). As técnicas de planos de corte permitem que o modelo utilize

cálculos realizados por iterações anteriores para resolver o próximo problema inteiro (ALVES; CLÃMACO, 1999). A Figura 3.2 indica como o plano de corte faz o corte no espaço de solução.

Figura 3.2 – Um corte da região de solução do problema original

Nota-se que a região viável para o relaxamento linear será um politopo convexo e a solução do problema linear será o vértice desse politopo (adicionando um plano de corte "recortamos" este vértice)(CUSSENS, 2012).

A questão fundamental é como encontrar rapidamente bons planos de corte. Para isso Achterberg (2007) indica três critérios de qualidade para escolher uma coleção de planos de corte: a eficácia dos cortes (a distância dos seus hiperplanos correspondentes à solução de PL atual); a ortogonalidade dos cortes com respeito aos outros; e o paralelismo dos cortes com respeito à função objetivo.

Com tudo que foi discutido anteriormente, pode-se concluir que o método de planos de corte é adequado para resolver problemas lineares inteiros através de derivadas das restrições até que o problema seja reduzido a um programa linear geral (DANTCHEV; MARTIN, 2012).

(27)

28

será utilizado o algoritmo a seguir:

Algoritmo 3.2:Plano de Corte

Dados: p,W, c

Resultado:Solução do problema

1 Inicio; 2 k = 0 ; 3 cond = 0;

4 enquanto cond =0 faça

5 [Prelax, x] = p′x,Wx≤ c,0 ≤ x ≤ 1; 6 se x = inteiro então 7 cond = 1; 8 parar; 9 senão 10 R = R + 1 [Prelax, x] = p′x,Wx≤ c,Rr, 0≤ x ≤ 1; 11 fim 12 fim 13 retorna x

Onde p equivale a matriz dos valores dos itens, W representa a matriz dos pesos dos itens,

c é a capacidade da mochila, Rr representa a restrição que deve ser acrescentada. Ao resolver

o problema relaxado, a resposta obtida é x(1, 0.75, 1) com z = 5, 75. Como x2 não é inteiro,

isso indica que podem ser selecionados unicamente dois itens para ser colocados na mochila. O seguinte plano de corte é gerado

x1+ x2+ x3≤ 2 (3.6)

Adiciona-se o plano de corte ao problema relaxado e resolve-se o novo problema gerado:

maximizar 3x1+ x2+ 2x3

sujeito a 2x1+ 4x2+ 3x3≤ 8

x1+ x2+ x3≤ 2

0≤ x ≤ 1

(3.7)

(28)

3.4

Método de Branch-and-Bound (B&B)

O método de branch-and-bound (ramificação e poda) é uma abordagem de uso geral ca-paz de resolver Problemas Inteiros (PI) puros, mistos (somente para a parte inteira), binários (CHEN et al., 2010) e problemas de programação não- linear (RAO, 2009).

Kellerer et al. (2004) indicam que o método de B&B está baseado em dois princípios fun-damentais: branching (ramificar), que divide o problema original em subproblemas menores, repetindo o processo até cada subproblema conter somente uma solução simples factível; e

bounding (limitar ou podar), que deriva tanto o limite superior quanto o limite inferior para

diminuir o espaço de solução. Dessa forma toda resposta encontrada que não estiver dentro dos novos espaços achados será retirada (podada) da árvore.

Outra estratégia para utilizar o método de B&B, similar à indicada por Kellerer et al. (2004), é a estratégia conhecida como "dividir e conquistar"que para Chen et al. (2010) basicamente divide o problema dado em uma série de subproblemas mais fáceis de se resolver que são sistematicamente gerados e resolvidos (conquistados).

Considerando que o método mais simples para resolver um problema de otimização inteira envolve enumerar todos os pontos inteiros, eliminando os inviáveis. O método de B&B pode ser considerado como um método de enumeração refinado no qual a maioria dos pontos inteiros não promissórios são descartados sem testar (RAO, 2009).

Uma forma comum de representar o método é mediante uma árvore conhecida como a ár-vore branch-and-bound que é uma árár-vore de enumeração especializada para fazer o seguimento de como os subproblemas de programação linear são resolvidos. A árvore se desenha de cima para abaixo com o nó raiz (representa o PL relaxado) no topo. Para escolher o próximo nó a ser analisado existem duas opções: depth-first, resolve-se primeiro o subproblema mais recente gerado; e o best-bound-first, minimiza o número total de nós avaliados ramificando o nó ativo com melhor valor objetivo (CHEN et al., 2010). Para entender melhor o método B&B, a conti-nuação será indicado mostrado o algoritmo apresentado por (CHEN et al., 2010) que facilitará seu entendimento. A seguinte notação ajudara no entendimento do algoritmo.

S = problema dado de PI SLP= relaxamento linear de S

xLP= solução de S(LP)

¯z = menor (melhor) limite superior em z∗do problema dado

z = maior (melhor) limite superior em z∗do problema dado

Sk= subproblema k do problema S

(29)

30

zk= valor objetivo ótimo de Sk

¯zk= melhor (menor) limite superior do subproblema Sk(mostrado sobre o nó k)

zk= melhor (maior) limite inferior do subproblema Sk(mostrado sobre o nó k)

xkLP= solução ótima do subproblema SLPk ¯

xj= valor não inteiro da variável inteira xj (valor numérico atual de xj)

⌊a⌋ = o maior inteiro ≤ a (ou arredondado para abaixo de a) ⌈a⌉ = o maior inteiro ≥ a (ou arredondado para abaixo de a) Ln= lista de nós ativos

(30)

O algoritmo será descrito a seguir:

Algoritmo 3.3:Branch-and-Bound

Dados: S

Resultado:Solução do problema

1 Inicio;

2 k = 0; cond1 = 0; cond2 = 0;

3 enquanto cond1 = 0 faça

4 [ fSL, xLP] = resolver (S);

5 se xLP= inteira então

6 cond1 = 1; parar;

7 fim

8 se xLP= não viável então

9 cond1 = 1; parar;

10 fim

11 ¯zk= fSL; zk=−inf ; 12 colocar SkLPem Ln;

13 enquanto cond2 = 0 faça

14 se Ln= vazia então

15 cond2 = 1; cond1 = 1; parar;

16 senão

17 escolher um Sk com SkLPpor deph-first ou best-bound-first;

18 fim 19 [ fSk LP, x k LP] = resolver (SkLP); 20 ¯zk= fSk LP; x = xk LP; 21 se xkLPou ¯zk= z então 22 podar nó; 23 senão 24 zk= xLPk ; 25 se zk> z então 26 z = zk; podar nó; 27 gerar Sk1= Sk{y : yj≤ ⌊ ¯yj⌋} e Sks = Sk{y : yj≥ ⌈ ¯yj⌉}; 28 fim 29 fim 30 fim 31 fim 32 retorna x∗

(31)

32

Uma parte importante no método B&B é a maneira como determinar qual o próximo nó a ser explorado. As estratégias mais comumente utilizadas são: depth-first e best-bound-first (CHEN et al., 2010).

A estratégia depth-first resolve primeiro o subproblema gerado mais recente. O objetivo dessa estratégia é obter rapidamente uma solução inteira viável cuja função objetivo tenha um valor zkmenor do que o limite inferior dado pelo problema inteiro e que pode ser utilizado para podar nós por otimalidade. Já a estratégia best-bound-first analisa o nó que possua o maior valor de z. O objetivo é minimizar o número total de nós avaliados na árvore de B&B. Essa estratégia demanda uma estrutura de dados explícita para armazenar os subproblemas considerados, e o espaço consumido pode ser exponencialmente grande.

A seguir será resolvido o exemplo 3.2 pelo método B&B. Não será utilizado nenhum critério de parada, ou seja, a árvore inteira será elaborada para melhor compreensão do método.

A árvore indica a quantidade total de nós que teriam que ser analisados se o método B&B não podasse nenhum deles enquanto procura a melhor solução. A árvore também mostra quais nós são viáveis e podem ser analisados (nós em cor azul) e os nós que não são viáveis (nós vermelhos) que consequentemente serão descartados pelo método sem ser analisados; além de mostrar o nó que contém a melhor solução.

Já que o método B&B pede para resolver o problema original como um problema linear relaxado, a alternativa mais comum para realizar isso é utilizar os métodos simplex e simplex revisado (esses métodos são abordados no apêndice da dissertação). No entanto, para o caso do PML 0-1 contínuo, o método proposto por Dantzig e discutido na seção 3.2 é uma alternativa bastante atrativa. O método de Dantzig é mais rápido e simples comparado com os métodos simplex e simplex revisado.

(32)

Figura 3.3 – Árvore completa para o exemplo 3.2

3.5

Ranking de pontos extremos (vértices)

Esta dissertação aborda o conceito de ranking de vértices para problemas binários apresen-tado no livro de Taha (1974) (baseado no trabalho original de (TAHA, 1972)), o qual é utilizado

(33)

34

para resolver o problema da mochila linear binário.

A primeira abordagem enumerativa foi desenvolvida por (MURTY, 1968), que elaborou uma ideia criativa para enumerar sistematicamente os pontos extremos do espaço de solução

E até que o mínimo global da função seja encontrado. Essa ideia é chamada como ranking de pontos extremos(vértices). A ideia do método de ranking de pontos extremos é a de examinar

os vértices adjacentes ao vértice que está minimizando a função objetivo a fim de encontrar soluções alternativas.

Os passos do ranking de pontos extremos podem ser executados de várias maneiras, mas a forma mais comum assume que, através de algum método avaliado é possível encontrar uma função linear l : Rn→ R tal que l(x) ≤ f (x) para todo x ∈ E. Dada a função l, o passo inicial

começa definindo qualquer solução ótima x0 (nos pontos extremos) para o programa linear

que visa minimizar l através de E. Então l(x)≤ v ≤ UB, onde v é o valor ótimo do problema

original, e U B = f (x0) é o limite superior de v. O vetor x0é então armazenado para ser atribuído a y∈ Rn. O vetor x sempre representa o melhor ponto extremo encontrado até então no processo de ranking e é chamada de resposta incumbente (HORST; PARDALOS, 1995).

É sabido que os problemas lineares zero-um (binários) têm uma única propriedade que in-dica que a solução ótima para esses problemas ocorre em um dos pontos extremos do espaço de solução. A demonstração para essa afirmação pode ser encontrada em (TAHA, 1974) e está transcrita no apêndice.

O procedimento utilizado por Taha é inspirado no trabalho de Murty (1968), no qual foi utili-zado o conceito de ranking de vértices como uma extensão do método simplex para desenvolver um algoritmo ótimo que serve para resolver diferentes modelos do problema de carga fixa na área de transporte. Comparado com o método B&B tradicional o método apresentado por Murty determina a sequência dos próximos vértices mediante uma simples mudança nas bases. Isto permite evitar a análise de ótimos alternativos que não estiverem nos pontos extremos do espaço de solução reduzindo, dessa maneira, o tempo computacional requerido. Outros procedimentos e algoritmos de ranking de pontos extremos são bem discutidos em (TAHA, 1972).

O algoritmo apresentado por Taha é simples. Para entender melhor o algoritmo a seguinte notação sera utilizada:

• xi. Ponto extremo na posição i.

• z. Valor da função objetivo.

(34)

O algoritmo é apresentado a seguir:

Algoritmo 3.4:Ranking de Pontos Extremos

Dados: p, w, c, n

Resultado:Solução do problema

1 Inicio; 2 [z, x] = resolver{p′x, wx≤ c,0 ≤ x ≤ 1}; 3 se x = binario então 4 para; 5 senão 6 i = 1; 7 fim

8 para k =0 até k = n faça

9 xi= pontoextremoquegeraomelhorz;

10 zi= limitein f erior;

11 se i = n então

12 parar, resposta não viável;

13 senão 14 se zi> z− ∆ então 15 se ei= binario então 16 e∗= ei; 17 z = zi; 18 fim 19 fim 20 fim 21 fim 22 retorna x

Para que o método seja efetivo, Taha indica que o algoritmo depende de duas ideias bási-cas: (i) determinar um bom limite superior inicial, e (ii) determinar qual será o próximo ponto extremo a ser ranqueado eidado ei−1.

A ideia para obter um bom limite superior inicial é a de estreitar o espaço de busca para poder, dessa maneira, obter melhores respostas. Já para determinar o próximo vértice a ser ran-queado se procura aquele ponto que proporcione em problemas de minimização o menor valor objetivo entre os pontos extremos adjacentes. Cada ponto adjacente escolhido será armazenado em ordem ascendente. Em outras palavras, o método de ranking olha todos os vértices adjacen-tes do politopo do espaço de resposta e guarda aqueles que geram um melhor valor objetivo do

(35)

36

que a solução incumbente, e coloca todos os vértices achados de forma ascendente. Na iteração seguinte o método repete o procedimento, mas desta vez deve-se evitar os vértices já visitados nas iterações prévias.

Taha indica que para utilizar o procedimento de ranking de vértices, uma variável inteira

tem que ser substituída em termos de variáveis 0− 1 equivalentes. Por isso no problema da

mochila com uma única restrição cada vértice deve necessariamente satisfazer pelo menos uma restrição binaria, o que indica que no procedimento de ranking. Todos os vértices adjacentes são numerados envolvendo um amplo campo de busca entre todos os vértices contidos no espaço de solução.

Um fato que deve ser considerado é quando as variáveis inteiras são substituídas em termos

de variáveis 0− 1 equivalentes. É que isso incrementará o número de variáveis, só que esse

incremento será unicamente um múltiplo de aproximadamente ln∏nj=1j− 1)/ln2, onde µj

é o limite superior da variável j. Isso mostra que a razão de incremento das variáveis não é exponencial, o que permite uma resolução mais rápida. O método de ranking de pontos extremos tem sido muito utilizado em problemas de programação de dois níveis.

O método de ranking de pontos extremos, pode ser facilmente interpretado como uma árvore de nós integrados sem ciclo onde um ponto não pode ser criado mais de uma única vez. Cada ponto extremo é representado por um único nó. A maneira de percorrer a árvore é analisar os nós pelo valor da função objetivo (o melhor primeiro). O processo se repete até encontrar uma resposta inteira que satisfaça a restrição e que forneça o melhor valor objetivo para o problema original. Para criar os novos pontos, são analisadas as variáveis básicas e as variáveis não básicas. Cada nó possui uma única variável básica, as outras variáveis que não são consideradas como básicas são chamadas de variáveis não básicas. Se ao trocar uma variável não básica pela variável básica o novo conjunto de variáveis não básicas é igual a algum conjunto anterior, Então, o ponto não pode ser criado a partir do nó analisado, caso contrário o novo ponto pode ser criado.

Uma vez que o primeiro passo do ranking de pontos extremos pede para resolver o problema original de forma relaxada, o método de Dantzig (??) será utilizado para tal propósito. Outras alternativas para resolver o problema relaxado são os métodos simplex e simplex revisado.

A Figura 3.4 mostra a árvore do ranking de todos os pontos extremos para o exemplo 3.2. A árvore indica a quantidade total de nós que teriam que ser analisados pelo método se todos os pontos extremos forem viáveis. A árvore também mostra quais nós são viáveis e podem ser analisados (nós em cor azul) e os nós que não são viáveis (nós vermelhos) que consequente-mente serão descartados pelo método sem ser analisados; além de mostrar o nó que contém a melhor solução (nó verde). As variáveis base B e não base N para cada nó (viável) também são

(36)

apresentadas.

Figura 3.4 – Ranking completo para o exemplo 3.2

Uma vantagem de utilizar o método de ranking de pontos extremos comparado com o método B&B é que na árvore do ranking de pontos extremos o número de nós a ser gerados geralmente poderá ser menor do que no B&B.

3.6

Meta Heurísticas

Os métodos apresentados anteriormente são conhecidos como métodos exatos, porque eles fornecem uma resposta exata do problema que está sendo resolvido. Porém, existem outros mé-todos que também são utilizados para trabalhar o PML 0-1, os conhecidos mémé-todos inexatos. Os métodos inexatos ou conhecidos também como meta-heurísticas são geralmente aplicados em problemas para os quais não existe um algoritmo que fornece uma solução exata do problema. As meta-heurísticas são comumente utilizadas como métodos de aproximação que utilizam a combinação de conhecimentos históricos dos resultados anteriores para realizar uma busca no espaço de solução para evitar paradas prematuras em ótimos locais. À medida que o tama-nho dos problemas aumenta as meta-heurísticas perdem qualidade no seu desempetama-nho, a seguir serão apresentadas algumas meta-heurísticas que tem sido utilizadas para trabalhar o PML 0-1.

(37)

38

3.6.1

Inteligência Artificial (IA)

A habilidade para aprender é geralmente considerada como um atributo fundamental da inteligência (GLOVER, 1986).

A IA começou na década de 1950 como um inquérito sobre a natureza da inteligência. Usando computadores como uma ferramenta revolucionária para simular de fato a utilização de inteligência. Proporcionando um meio para examiná-la com maiores detalhes. Sua funda-mentação foi a capacidade de construir sistemas que apresentem inteligência, simulações da teoria da inteligência humana, ou analise dos sistemas que poderiam executar tarefas práticas que exijam inteligência (SIMON, 1995).

Ibrahim e Morcos (2002) sugerem que uma boa definição da IA seria a automação de ativi-dades que estão associadas ao pensamento humano, tais como tomada de decisão, resolução de problemas, aprendizagem, percepção e raciocínio.

Segundo Neuhauser et al. (2013), a IA procura imitar ou melhorar as capacidades da inteli-gência humana e tem permitido o desenvolvimento de uma comunicação altamente sofisticada, como interfaces homem-máquina fáceis de usar. Para Luger (2005) a IA pode ser definida como um ramo da ciência da computação que se preocupa com a automação do comportamento inteli-gente e que tem prestado mais atenção em expandir as capacidades das ciências da computação do que definir seus limites.

Já para Negnevitsky (2005) a IA se foca no desenvolvimento de soluções de valor autônomas (sistemas inteligentes) para problemas que poderiam requerer o uso de inteligência se forem feitos por humanos. Para o que Alan et al. (2004) indicam que a IA é a parte computacional da capacidade de alcançar metas no mundo. Luger (2005) enfatiza que a IA, como toda ciência, é um esforço humano, sendo por isso melhor compreendida nesse contexto.

Pesquisadores de IA, há muito tempo, têm se interessado na construção de aplicações que analisam os dados não estruturados, e, de alguma forma, categorizam e estruturam os dados de modo que a informação resultante possa ser usada diretamente para ficar sob um processo ou na interface com outros aplicativos.

Luger (2005) assegura que as duas principais preocupações dos pesquisadores da IA são a

representação do conhecimento e a pesquisa. A primeira aborda o problema da captura em uma

linguagem adequada de todos os parâmetros do conhecimento para um comportamento inteli-gente na manipulação do computador, já a segunda é uma técnica de resolução de problemas que sistematicamente explora um espaço dos estados do problema, ou seja, etapas sucessivas e alternativas no processo de resolução de problemas.

Os programas de IA podem ser vistos como experimentos. Um projeto se concretiza em um programa e o programa é executado como um experimento, depois os designers do programa

(38)

observam os resultados, redesenham e executam de novo o programa (LUGER, 2005). Algu-mas áreas onde a IA são utilizadas são: Neuhauser et al. (2013) e Kreps e Neuhauser (2013) utilizam IA para melhorar os programas de comunicação na área da saúde; O’Leary (2013) utiliza a IA para tratar com dados de grande volume; Ibrahim e Morcos (2002) desenvolveram uma pesquisa para mostrar a aplicação de IA em problemas elétricos principalmente em proble-mas de qualidade da energia. Outras áreas em que a IA pode ser utilizada incluem: Pesquisa e Planejamento, Raciocínio probabilístico e Planejamento, Representação do Conhecimento e Planejamento, Aprendizado de Máquinas, Linguagem Natural de Processamento, Sistemas Multiagentes e Robótica (GEFFNER, 2014). O trabalho em muitas dessas áreas não é muito focado em escrever programas para problemas mal definidos, mas se preocupa em escrever so-lucionadores para modelos matemáticos perfeitamente bem definidos. Para observar mais áreas de aplicação da IA revisar (LUGER, 2005).

3.6.2

Algoritmos Genéticos (AG)

Os AG é técnica de otimização meta-heurísticas que imitam o processo evolutivo natural. Os AG foram desenvolvidos na década de 60 vem sendo muito utilizados devido a sua simplicidade, facilidade de operação, requerimentos mínimos e por terem uma perspectiva global (KUMAR, 2011).

Os AG foram inspirados na teoria evolutiva de Darwin que indica que a sobrevivência de um organismo é afetada pela regra "o indivíduo mais bem adaptado de uma espécie tem mais chances de sobreviver". A sobrevivência de um organismo também pode ser mantida através de reprodução, cruzamento e mutação. A teoria de Darwin pode ser adaptada em um algoritmo computacional para encontrar uma solução chamando a função objetivo de uma maneira natural. Uma solução é codificada em um ou mais cromossomos. Um indivíduo pode ser formado por um ou mais cromossomos. Uma população é um conjunto de indivíduos (HERMAWANTO, 2013).

Os AG codificam uma potencial solução para um problema específico em um ou mais cro-mossomos, como uma estrutura de dados, e aplica operadores genéticos nestas estruturas para gerar novos cromossomos. Uma implementação dos AG inicia com uma população (tipica-mente aleatória) de cromossomos. Então a estrutura é avaliada e são atribuídas mais oportu-nidades reprodutivas para cada um dos cromossomos que representam boas soluções para o problema alvo, obtendo mais chances de se "reproduzir"do que aqueles cromossomos que são soluções de pior qualidade (WHITLEY, 1994).

Para cada cromossomo, diferentes posições são codificadas como bits, caracteres ou núme-ros. Essas posições podem ser referenciadas como genes. Uma função de avaliação é usada

(39)

40

para calcular a qualidade de cada cromossomo de acordo com a solução desejada; esta fun-ção é conhecida como "funfun-ção de fitness". Durante o processo de avaliafun-ção, o "cruzamento"é usado para simular uma reprodução natural e a "mutação"é usado para a mutação de espécies (HOQUE et al., 2012).

Uma vez que o problema é codificado como um cromossomo e uma função de fitness é usada para discriminar boas soluções de ruins, pode-se começar a evoluir soluções para o problema de busca usando os seguintes passos. Tomado de (SASTRY et al., 2005).

1. Inicialização: A população inicial de soluções candidatas é usualmente gerada aleatoria-mente.

2. Avaliação: Uma vez a população é iniciada, ou uma população de descendência é criado, os valores de fitness das soluções candidatas são avaliadas.

3. Seleção: Atribui probabilisticamente mais cópias para as soluções com melhores valo-res de fitness e, dessa maneira, impõe o mecanismo de ajuste-de-sobrevivência sobre as soluções candidatas.

4. Recombinação: Combina partes de duas ou mais soluções parentes para criar uma nova. 5. Mutação: Enquanto a recombinação opera sobre dois ou mais cromossomos

paralela-mente, a mutação modifica a solução local, mas aleatoriamente.

6. Substituição: A população de descendência criada por seleção, recombinação e mutação substitui a população parente original.

7. Repetir os passos 2 a 6 até chegar num critério de parada.

Na literatura podem ser encontrados vários trabalhos nos quais o AG é utilizado para re-solver diferentes tipos de PM, por exemplo: Khuri et al. (1994) utilizam o AG para criar um algoritmo que resolva o problema da mochila 0-1 múltiplo mediante a reprodução e participa-ção de soluções não viáveis da populaparticipa-ção. Chu e Beasley (1998) desenvolveram uma heurística baseada no AG para resolver o problema da mochila multidimensional, incorporando um conhe-cimento especifico do problema. Raidl (1998) resolve o problema da mochila 0-1 multi-restrito utilizando um AG hibrido. Cotta e Troya (1998) também utilizaram uma versão hibrida do AG para resolver o problema da mochila 0-1 múltiplo.

(40)

3.6.3

Particle Swarm Optimization (otimização por enxame de partículas)

PSO é um método heurístico de otimização global, que tem por duas ideais fundamentais: psicologia social e evolução computacional (PARSOPOULOS; VRAHATIS, 2007). Introdu-zido por Kennedy e Eberhart em 1995 (KENNEDY; MENDES, 2002). Foi desenvolvido base-ado em inteligência coletiva (comportamento social), observando o comportamento do movi-mento de bandos de pássaros e cardumes de peixes à procura de alimovi-mento (BAI, 2010). O PSO vem ganhando popularidade devido a sua habilidade para resolver eficazmente e eficientemente uma grande variedade de problemas na ciência e na engenharia (PARSOPOULOS; VRAHATIS, 2007), especialmente pela sua velocidade de convergência e o fato de ser muito simples de se usar (MENDES et al., 2004). Além de se basear em um conceito muito simples, o paradigma é implementado em poucas linhas de código de programação e requer apenas operadores mate-máticos primitivos que são computacionalmente baratos em termos de capacidade de memória e velocidade (EBERCHART; KENNEDY, 1995).

O PSO é uma técnica de busca em paralelo multi-agente, na qual as partículas são entidades conceituai que viajam através do espaço de busca multi-dimensional. A cada instante particular, cada partícula tem uma posição e uma velocidade. O vetor de posição da partícula com res-peito à origem de busca representa uma solução candidata do problema de pesquisa (DAS et al., 2008).

Na implementação mais comum do PSO, as partículas se movimentam através do espaço de busca utilizando uma combinação de uma atração para a melhor solução que elas encontraram individualmente, e uma atração para a melhor solução que qualquer partícula em sua vizinhança tenha encontrado, e uma atração para a direção do vetor de velocidade (BRATTON; KENNEDY, 2007). Um exame de partículas é mais do que simplesmente uma coleção de partículas. Uma partícula por si só não tem o poder para resolver nenhum problema; progressos somente ocor-rem quando as partículas interagem entre si (POLI et al., 2007).

O procedimento dos algoritmos baseados de busca populacionais como o PSO envolve duas etapas principais: exploração, que é responsável pela detecção da região mais promissoras dentro do espaço de busca, e aproveitamento, que promove a convergência das partículas na vizinhança da melhor solução encontrada (PARSOPOULOS; VRAHATIS, 2007). A figura 3.5 mostra o comportamento das partículas após um número N de iterações.

(41)

42

Figura 3.5 – Posição das partículas após N iterações

As aplicações do PSO são tão numerosas e diversas que fica muito difícil mencioná-las já que segundo Poli et al. (2007) o PSO tem mostrado grandes resultados em problemas multimo-dais e problemas para os quais não existem métodos especializados de avaliação, ou ainda onde todos os métodos especializados têm dado resultados não satisfatórios. Por isso os mesmos autores analisaram ao redor de 1100 publicações sobre PSO e dividiram as aplicações dentro de 26 categorias, indicando a quantidade de artigos referentes a cada aplicação e a porcentagem que representa dentro da literatura pesquisada.

Deep e Bansal (2008) desenvolveram uma versão do PSO para resolver o problema da mo-chila multidimensional, introduzindo uma distância entre a o melhor ponto da vizinhança local e o melhor ponto da vizinhança global. Chih et al. () também resolveram o problema da mochila multidimensional utilizando o PSO, mas eles introduziram coeficientes de aceleração de tempo variável. Bansal e Deep (2012) apresentam uma modificação do PSO binário para resolver o problema da mochila 0-1, introduzindo uma nova função de probabilidade que permite maior exploração do enxame.

3.6.4

Busca Tabu

A busca Tabu tem suas origens em procedimentos combinatórios aplicados a problemas não lineares nos anos 70, e é uma estratégia para resolver problemas de otimização combinatória cujas aplicações vão desde teoria de grafos até problemas gerais de programação pura, inteira ou mista (GLOVER, 1989).

(42)

A busca Tabu consiste em um algoritmo iterativo que utiliza o conceito de memória para controlar a execução do algoritmo através de uma lista dinâmica de movimentos proibidos (HENDERSON et al., 2003). Inspirado nos princípios da IA que explora o espaço de solu-ção sem a necessidade de ser confinado a um ótimo local, para este propósito os movimentos que pioram a solução são permitidos e os últimos movimentos são armazenados em uma lista chamada "lista Tabu". Esses movimentos não podem ser aplicados na iteração seguinte para evitar ciclos durante o processo de otimização, desta maneira a busca Tabu é uma combinação de busca local com uma memória de curto prazo (NAVARRO; RUDNICK, 2009). A lista Tabu é uma das maneiras de utilizar a memória mediante o armazenamento das soluções exploradas através da busca ou, mais comumente, alguns atributos relevantes dessas soluções. A lista Tabu tem dois propósitos: prevenir o retorno à última solução visitada a fim de evitar ciclos; e con-duzir a busca até regiões ainda não exploradas que possam ter alto potencial de conter boas soluções (BRANDÃO, 2011).

Nos últimos 20 anos centenas de trabalhos têm apresentado diferentes aplicações da busca Tabu para vários problemas combinatórios encontrados na literatura. Em vários casos a busca Tabu fornece soluções muito próximas da solução ótima e está entre as técnicas mais eficazes para enfrentar alguns problemas difíceis. Esses sucessos tornaram a busca Tabu extremamente popular entre os pesquisadores interessados em encontrar boas soluções para os problemas com-binatórios de grande porte encontrados em várias definições práticas (GENDREAU; POTVIN, 2010).

Já procedimentos mais avançados incorporam estruturas adicionais de memória de curto e longo prazo, incluindo as estruturas baseadas em frequência e análise lógica. Esses autores utilizaram a busca Tabu para resolver o problema de atribuição quadrática.

Uma ótima aplicação da busca Tabu requer um bom balanço entre intensificação (explo-ração detalhada de alguma região do espaço de solução) e diversificação (dirigir a busca até regiões promissoras ainda não exploradas no espaço de solução e afastadas umas das outras) (BRANDÃO, 2011). A busca Tabu começa definindo a solução do espaço de trabalho para sua melhor solução inicial obtida a partir do conjunto de referências. Cada iteração examina todos os possíveis movimentos da vizinhança da permutação de trabalho escolhendo a melhor solução que ainda não se encontra na lista Tabu e que se mostra adequada para trocar uma das permuta-ções já realizadas. Esta troca é realizada e a permutação modificada se torna a nova solução de trabalho (JAMES et al., 2009). A vizinhança de uma solução é um conjunto de outras soluções que podem ser obtidas a partir de uma ou algumas mudanças simples. A melhor solução da vizinhança é escolhida como uma nova solução incumbente. Movimentos que não levaram a melhorias são aceitos para tentar fugir de um mínimo local (PEDERSEN et al., 2009).

(43)

44

Uma área importante na qual a busca Tabu é muito utilizada é a área de transporte, por exemplo: Brandão (2011) e Cordeau e Maischberger (2012) utilizam busca Tabu para tratar o problema de roteamento de veículos.

Exemplos de PM resolvidos utilizando Busca Tabu podem ser encontrados em: Hanafi e Freville (1998) que usaram a Busca Tabu baseada numa estratégia de oscilação e substituição da informa-ção das restrições para resolver o problema da mochila 0-1 multidimensional. Chocolaad (1998) utilizou a Busca Tabu para resolver o problema da mochila geométrica. Gandibleux e Freville (2000) basearam sua pesquisa na Busca Tabu para resolver o problema da mochila 0-1 multiob-jetivo através da redução da estrutura do espaço de decisão.

3.6.5

Simulated Annealing (Recozimento Simulado (RS))

Simulated Annealing ou em português Recozimento Simulado, surgiu de uma analogia com

certos processos termodinâmicos (CRAMA; SCHYNS, 2003) e pertence a uma classe de al-goritmos de busca local que são conhecidos como alal-goritmos limiar. Os alal-goritmos limiar desempenham um papel especial na busca local por duas razões: a primeira, eles parecem ser muito bem-sucedidos quando são aplicados a uma ampla gama de problemas práticos, o que lhes proporcionou uma boa reputação entre os profissionais. A segunda, alguns algoritmos limiares como o RS têm componentes estocásticos, o que facilita uma análise teórica de sua convergência assintótica, e isso tem feito deles muito populares em matemática (AARTS et al., 2005).

Henderson et al. (2003) indicam que RS é uma meta-heurística popular usada para resolver de uma maneira discreta e menos estendida problemas de otimização contínua. A capacidade de fugir de um ótimo local, a simplicidade de sua implementação e suas propriedades de con-vergência e a utilização de movimentos de subida para escapar de ótimos locais fizeram da RS uma técnica popular ao longo das últimas décadas.

O princípio básico da heurística RS pode ser descrito como: a partir uma solução inicial de

x, outra solução y é gerada após dar um passo estocástico em alguma vizinhança de x. Se a nova

resposta melhorar o valor da função objetivo, então y substitui x como a nova solução atual; caso contrário, a nova solução y é aceita com uma probabilidade que diminui com o decorrer das iterações. Para Crama e Schyns (2003), a maior vantagem do RS sobre os métodos de busca clássicos é sua capacidade de evitar ficar preso em mínimos locais enquanto procura um mínimo global.

O RS é particularmente bem adaptado para vários problemas de otimização combinatória, uma vez que pode evitar mínimos locais, aceitando melhorias no custo (JEON et al., 2002).

Referências

Documentos relacionados

Estamos contratando pessoas para diversas posições com experiência em administração de empresas: 1 vaga para marketing, 5 vagas para vendas, 2 vagas para gerenciamento de vendas e

Na detecção MuD, informações dos usuários ativos no sistema são utilizadas conjuntamente a fim de atenuar/eliminar a interferência provocada entre si para melhor detectar

Tese: Agronomia (Irrigação e Drenagem)-Universidade Federal de Lavras. Distribuição espacial e temporal do cloreto de potássio aplicado em uma linha de gotejadores por bomba

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

A tabela a seguir resume as frequências em que os pacientes apresentaram pelo menos uma reação adversa não solicitada, foi registrada dentro de 28 dias após a vacinação de

ensino superior como um todo e para o curso específico; desenho do projeto: a identidade da educação a distância; equipe profissional multidisciplinar;comunicação/interatividade

A partir do conteúdo e conceitos acessíveis aos estudantes de Ensino Médio, provou-se que, por serem raízes de polinômios de coeficientes racionais não