• Nenhum resultado encontrado

A ideia básica dos algoritmos de suavização na solução de problemas de otimiza- ção não diferenciáveis é transformá-los em um problema diferenciável equivalente. Isto é feito adicionando alguns valores pequenos em pontos não suaves, tornando a função original diferenciável. Uma vez que podem haver muitas funções não diferenciáveis no modelo de otimização restrita, pode ser necessária a introdução de uma grande quantidade de valores pequenos no modelo. Com isso, o modelo torna-se mais fácil de resolver por métodos de otimização não-linear (como métodos de gradiente ou de Newton), porém a estimativa destes parâmetros adicionais e a forma como tendem a zero, torna esta ideia computacionalmente complexa.

O problema MSSC na sua formulação original é diferenciável e não convexo. Nos al- goritmos de suavização hiperbólica de Xavier (2010) e Xavier & Xavier (2011), o MSSC é transformado em formulações não diferenciáveis, mas convexas, adicionando novos pa- râmetros (representados como números pequenos) que devem tender a zero no intuito de obter formulações equivalentes. Então, o problema é solucionado pelo método do gradi- ente para um conjunto inicial de valores para os parâmetros. Em cada iteração dos pro- cedimentos de suavização, um problema de otimização de suavização é resolvido. Estes, diferem apenas nos valores dos parâmetros que tendem a zero.

A última variante do algoritmo de suavização, chamada de algoritmo de suavização de agrupamento de dados incremental (do inglês, Smooth Incremental Clustering Algo- rithm- (SCA)) foi proposta por Bagirov et al. (2015). Algoritmos incrementais tem como objetivo, adicionar um novo cluster, otimamente, de cada vez até atingir o número dese- jado de clusters no problema. Como exemplo de algoritmos que trabalham desta forma, é possível citar os algoritmos K-means global, Likas et al. (2003), e o K-means global modificado, Ordin & Bagirov (2015).

Como exemplo de suavização, pode-se observar a Figura 2.3. Na Figura 2.3a, é apre- sentado um exemplo de uma função não convexa com vários mínimos locais. Na Figura 2.3b, é apresentado um exemplo ilustrativo do que poderia ser uma função suavizada convexa da função na Figura 2.3a.

2.7. ALGORITMO DE SUAVIZAÇÃO 25

(a) Exemplo do função não convexa com muitos

mínimos locais. (b) Ilustração de uma possível suavização.

Capítulo 3

Método Proposto

Neste capítulo é feita uma breve introdução a respeito da estratégia reformulação de descida juntamente com o seu uso aplicado ao problema MSSC na Seção 3.1. Em seguida na Seção 3.2 é apresentada a estratégia pontos de injeção, que é utilizada nesta pesquisa para tentar melhorar as soluções dos algoritmos propostos. Nas Seções 3.3 e 3.4 são apresentados os dois algoritmos de VND adotado neste trabalho. Por fim, na Seção 3.5 são apresentadas as variantes GVNS propostas.

3.1

Reformulação de Descida

A Reformulação de descida, do inglês, Reformulation Descent (RD), foi apresentada por Mladenovi´c et al. (2005) primeiramente aplicada ao problema de empacotamento de círculos e depois apresentada por Brimberg et al. (2014) aplicada ao problema planar das p-medianas.

A RD parte da ideia que, em problemas não convexos, as soluções encontradas por heurísticas podem não ser ótimos globais, e sim ótimos locais. Em Mladenovi´c et al. (2005), foi observado que formulações diferentes, porém equivalentes, do mesmo pro- blema podem ter características diferentes, que podem ajudar a evitar pontos estacionários e encontrar melhores soluções. Pontos estacionários são pontos no espaço de solução em que o gradiente apresenta valor zero, porém não obrigatoriamente são mínimos locais. Em seu trabalho Mladenovi´c et al. (2005) aplicaram o RD ao problema de empacotamento de círculos abordando-o com duas formulações diferentes, enxergando o problema através de coordenadas cartesianas e polares. Quando um ponto estacionário é atingido em uma formulação, a busca através de outra formulação se inicia. Desta forma, o objetivo prin- cipal do RD baseia-se na ideia de troca de formulações do problema no intuito de evitar tais pontos estacionários na busca de um ótimo global. No Algoritmo 13 é apresentado a proposta genérica do RD.

28 CAPÍTULO 3. MÉTODO PROPOSTO

Algoritmo 13 Algoritmo genérico da RD.

1. Construa pelo menos duas formulações do problema.

2. Escolha uma solução inicial S.

3. Repita entre as formulações.

• Utilizando um método não linear para resolver uma formulação, encontre um ótimo local S0partindo de S.

• Se S0 é melhor que S, então faça S ← S0e reinicie a repetição do passo 3, isto é, recomece pela primeira formulação.

• Caso contrário, mude de formulação e repita.

4. Após passar por todas as formulações sem melhoria, pare. Um ótimo local para todas as formulações foi encontrado.

Nesta pesquisa foi feito uso do RD para resolver o problema do MSSC. Adaptando para o problema, escolhemos três diferentes heurísticas, K-means, H-means e 1-interchange. O objetivo desejado foi abordar dois problemas, o MSSC e o problema das p-medianas. Apesar de divergir, de início, um pouco da ideia principal da reformulação de descida o algoritmo desenvolvido faz uso de duas heurísticas de exploração do espaço contínuo, K-means e H-means para resolver o problema MSSC e, em seguida a solução deste pro- blema passa a ser a solução inicial do problema das p-medianas, que é resolvido com a heurísticas 1-interchange.

Uma característica explorada entre estes dois problemas abordados é que pelo fato de serem problemas bastante semelhantes, ao adicionar os centroides de solução do pro- blema MSSC como possíveis centroides para a solução do problema das p-medianas estes dois problemas passam a ter ótimos locais em comum porém ótimos globais divergentes. Utilizando deste artefato, ao adicionar continuamente pontos de solução do problema MSSC ao problema das p-medianas estes dois problemas passam a serem equivalentes no infinito.

Devido a sua composição, a busca local RD pode também ser classificada como uma VND. O RD adaptado para o problema MSSC pode ser descrito pelo Algoritmo 14:

Para melhor ilustrar a estrutura da nova heurística apresentada, segue o fluxograma da Figura 3.1. Inicialmente uma solução inicial é produzida pelo método Ward. Em seguida procura-se melhorar a solução inicial utilizando as duas heurísticas de busca local contínuas para o problema MSSC. Os centroides de seu resultado são então armazenados em uma estrutura de dados a ser explicada a seguir. Seguindo o fluxo, é executado o

3.1. REFORMULAÇÃO DE DESCIDA 29

Algoritmo 14 Busca Local baseada na RD.

1. Partindo de uma solução inicial S e seu valor da função objetivo f (S).

2. Defina S0← S.

3. Para resolver o problema MSSC, aplique a heurística K-means para encontrar uma solução S00 partindo da solução S0. Se f (S00) < f (S0), então S0← S00.

4. Aplique a heurística H-means para encontrar uma solução S00 partindo da solução S0. Se f (S00) < f (S0), então S0← S00.

5. Armazene os centroides da nova solução S0encontrada na estrutura de dados.

6. Considere S00 como a solução resultante da aplicação da heurística 1-interchange, na solução S0, para resolver o problema das p-medianas juntamente com os centroides armazenados na estrutura de dados.

7. Se f (S00) < f (S0), então S0← S00.

8. Se f (S) ≤ f (S0) então pare com a solução resultado S. Senão, S ← S0e retorne para o passo 2.

Figura 3.1: Nova busca local baseada na Reformulação de Descida.

algoritmo 1-interchange, com adição de pontos armazenados na estrutura de dados, com a finalidade de melhorar a solução encontrada anteriormente resolvendo o problema das p- medianas. Caso o critério de parada tenha sido satisfeito, o algoritmo para, caso contrário, a solução passa pela interface entre o problema contínuo e discreto e retorna para a parte

30 CAPÍTULO 3. MÉTODO PROPOSTO

contínua da busca local.

Para esta pesquisa, a interface entre o problema discreto e contínuo recalcula a posição dos centroides encontrados na solução do algoritmo 1-interchange. Dessa forma a solução pode ser trabalhada pelos algoritmos contínuos.

Inicialização Para evitar um grande número de iterações da nova busca local, um mé- todo de agrupamento de dados hierárquico foi adotado para produzir a solução inicial. O método hierárquico selecionado foi o método Ward, utilizando as fórmulas de Lance- Williams [Wishart 1969], que no trabalho não publicado de Hansen et al. foi apresentado como o melhor método para gerar uma solução inicial.

Apesar de apresentar boa solução inicial, o método Ward, que utiliza as fórmulas de Lance-Williams, requer o uso de uma matriz de distâncias de dimensões (2 ∗ N) − M × (2 ∗ N) − M, o que leva a um elevado uso de memória para instâncias grandes. Para exemplificar o problema, considerando uma instância de tamanho N = 20000 seriam ne- cessários 12.7Gb de memória, utilizando a linguagem C++, apenas para armazenar esta matriz. Assim, foi escolhido o uso de soluções aleatórias para instâncias cujo N > 10000. Para uma solução inicial aleatória, M entidades são selecionadas aleatoriamente para que os centroides sejam localizados em suas posições. Após este passo, cada entidade xi

é designada para o cluster de centroide mais próximo. Ao final, a posição dos centroides é atualizada e o custo da solução calculado.

Estrutura de Dados. Para que a heurística proposta não perca eficiência, é necessário cuidado com as estruturas de dados utilizadas para armazenar os centroides encontrados pelos algoritmos da parte contínua. Além de estruturas de armazenamento de centroides, foi também aplicada uma estrutura para armazenar as distâncias entre as entidades, com o intuito de acelerar alguns passos do algoritmo 1-interchange.

• Estrutura de dados dos centroides

Para serem inseridos pontos discretos extras na heurística 1-interchange, foi decidido que os centroides da parte contínua da busca local fossem armazenados. Isto significa que em cada iteração da busca local RD, no máximo M novos centroides são armazenados na estrutura de dados. Este número de novos centroides pode ser variável, não sendo sempre M. Isto acontece devido a possibilidade de já existirem centroides armazenados na estrutura de dados com a mesma localização de alguns novos. Dessa forma não há necessidade de seu armazenamento repetido.

3.1. REFORMULAÇÃO DE DESCIDA 31

Com a finalidade de armazenar, obter e checar a existência de centroides na estrutura de dados, foi decidido que seria feito o uso de estruturas de dados vetor e hash map. Desta forma, com a estrutura hash map é possível checar de forma rápida se um centroide que será inserido, já pertence ou não a estrutura de dados. Com a estrutura de vetor, torna-se possível o acesso e a obtenção dos centroides em tempo constante.

Na estrutura de dados hash map, para obter o código hash de um centroide a ser inserido, é feita a somatória de todos seus atributos e é gerado o código hash a partir do arredondamento da resultante. Em casos de colisão, i.e., quando dois centroides diferentes tem o mesmo código hash, é feita a comparação para saber se os centroides são iguais, caso não, os dois são armazenados no hash map. Porém, se forem iguais, apenas um é armazenado.

• Matriz de Distâncias

Em casos como os algoritmos J-means e 1-interchange, onde há passos que necessitam calcular a distância entre entidades, fazer o uso de matriz de distâncias pode melhorar o desempenho. Desta forma o cálculo de distâncias é feito somente uma vez.

Para instâncias pequenas, como um passo de pré-processamento, são calculadas as distâncias entre todas as entidades xie armazenadas na matriz.

Uma desvantagem do uso dessa matriz é a quantidade de espaço na memória exigido para seu armazenamento. Em instâncias grandes, isto é, N > 10000, armazenar uma matriz N × N demanda muita memória. Partindo desta observação, foi decidido que para instâncias grandes o cálculo de distâncias será realizado toda vez que requisitado.

Além da matriz de distância entre todas as entidades, também foi criada uma matriz que armazena as distâncias entre as entidades e os novos centroides, a serem armazenados na estrutura de dados dos centroides. Esta matriz tem tamanho N × 10000. A quantidade 10000 serve como um limitante para o número de centroides a serem armazenados. Este número foi obtido através de testes empíricos com as instâncias de teste desta pesquisa. Nos experimentos, foi observado que para todas as ocasiões, o número de centroides armazenados na estrutura de dados foi sempre menor que 10000.

Durante a execução do algoritmo, esta matriz armazena a distância entre todas as entidades e os centroides que vão sendo armazenados na estrutura de dados. Para cada novo centroide inserido, as distâncias quadráticas entre todas as entidades xi e os novos

centroides são calculadas e armazenadas na matriz.

Partindo do princípio que o número máximo de novos centroides a serem armazenados na estrutura de dados por iteração é M, é possível afirmar que a complexidade de calcular

32 CAPÍTULO 3. MÉTODO PROPOSTO

as distâncias dos novos centroides é, no pior caso, O(M ∗ N ∗ d), onde d é o número de atributos das entidades x.

3.2

Pontos de Injeção

Para investigar possíveis melhorias no RD, foi desenvolvida uma variante que faz uso de pontos de injeção.

Pontos de injeção são pontos adicionados a um problema no intuito de melhorar a busca da solução ótima. Sua geração e inserção podem ter várias abordagens dependendo do problema e suas características. Estes pontos foram primeiramente apresentados em Brimberg et al. (2016). Em sua pesquisa foi percebido que o RD pode apresentar uma possível fraqueza: um ótimo local entre as formulações utilizadas pode ser facilmente encontrado com apenas algumas trocas entre formulações contínuas e discretas. Como uma possível maneira de melhorar a solução, foi sugerido o uso de pontos de injeção na fase discreta do algoritmo.

Nesta pesquisa, os pontos de injeção são utilizados na heurística 1-interchange para serem avaliados como possíveis centroides para a solução. A obtenção dos pontos de injeção foi feita através do método Ward. Cada centroide de um cluster gerado pelo método é considerado um ponto de injeção, desde que o centroide tenha a ele associado duas ou mais entidades atribuídas. Estes pontos quando obtidos são então armazenados na estrutura de dados de centroides para serem posteriormente utilizados na heurística discreta. Para melhor separação, o RD com pontos de injeção do método Ward, nesta pesquisa foi chamado de RD+.

3.3

VND misto

Outro procedimento de melhoria abordado por este trabalho é o VND misto. Este aborda tanto as estruturas de vizinhanças de forma aninhada como estruturas de vizinhan- ças de forma sequencial. Para resolver o problema do MSSC, foi feito uso das heurísticas J-means, K-means e H-means. Para cada solução na vizinhança da heurística J-means, é explorada a vizinhança da heurística K-means e em seguida é feita a exploração da vizi- nhança da heurística H-means. A ordem K-means seguida de H-means ocorre devido a solução da heurística H-means não poder ser melhorada pela heurística K-means [Hansen & Mladenovi´c 2001]. Esta abordagem torna-se semelhante a apresentada em Hansen & Mladenovi´c (2001), porém à época de sua publicação, ainda não existiam denominações

3.4. VND SEQUENCIAL 33

e tipos de VND.

3.4

VND sequencial

O terceiro procedimento de melhoria abordado nesta pesquisa é o VND sequencial. Como apresentado na Seção 2.6, o VND sequencial faz uso de múltiplas estruturas de vizinhanças a serem visitadas de forma sequencial. Para o problema do MSSC, esta pes- quisa fez o uso de três heurísticas conhecidas com estruturas de vizinhanças diferentes. Estas são, K-means, H-means e J-means. Inicialmente o algoritmo K-means é executado até que um mínimo local em sua estrutura de vizinhança seja encontrado, em seguida o H-means é executado da mesma forma até que um mínimo local seja atingido, e por fim, o J-means é executado partindo da solução do H-means até encontrar um mínimo local. Desta forma, o processo se repete até que não ocorram melhorias após a execução das três heurísticas utilizadas.

Pela forma específica que foi implementado, o VND sequencial tem sua nomencla- tura mudada para VND pipe, de acordo com Hansen et al. (2016). Isto é, as vizinhanças são exploradas de forma sequencial, porém diferentemente do VND sequencial tradicio- nal, ao acontecer uma melhoria a sequência de vizinhanças continua a ser explorada sem recomeçar do início.

Documentos relacionados