• Nenhum resultado encontrado

Hibridização de Algoritmos Exatos e Meta-heurísticas para o Problema da Árvore Geradora Quadrática em Adjacência de Arestas Biobjetivo

N/A
N/A
Protected

Academic year: 2021

Share "Hibridização de Algoritmos Exatos e Meta-heurísticas para o Problema da Árvore Geradora Quadrática em Adjacência de Arestas Biobjetivo"

Copied!
86
0
0

Texto

(1)

Departamento de Informática e Matemática Aplicada Bacharelado em Ciência da Computação

Hibridização de Algoritmos Exatos e

Meta-heurísticas para o Problema da Árvore

Geradora Quadrática em Adjacência de

Arestas Biobjetivo

Thiago Soares Marques

Natal-RN Junho de 2017

(2)

Hibridização de Algoritmos Exatos e Meta-heurísticas

para o Problema da Árvore Geradora Quadrática em

Adjacência de Arestas Biobjetivo

Monografia de Graduação apresentada ao Departamento de Informática e Matemática Aplicada do Centro de Ciências Exatas e da Terra da Universidade Federal do Rio Grande do Norte como requisito parcial para a ob-tenção do grau de bacharel em Ciência da Computação.

Orientador(a)

Prof

a

. Dr

a

. Elizabeth Ferreira Gouvêa Goldbarg

Universidade Federal do Rio Grande do Norte – UFRN Departamento de Informática e Matemática Aplicada – DIMAp

Natal-RN Junho de 2017

(3)

Catalogação da Publicação na Fonte. UFRN / SISBI / Biblioteca Setorial Centro de Ciências Exatas e da Terra – CCET.

Marques, Thiago Soares.

Hibridização de algoritmos exatos e meta-heurísticas para o problema da árvore geradora quadrática em adjacência de arestas biobjetivo / Thiago Soares Marques. - Natal, 2017.

84 f.: il.

Orientadora: Profa. Dra. Elizabeth Ferreira Gouvêa Goldbarg.

Monografia (Graduação) – Universidade Federal do Rio Grande do Norte. Centro de Ciências Exatas e da Terra. Departamento de Informática e Matemática Aplicada. Bacharelado em Ciência da Computação.

1. Computação – Monografia. 2. Árvore geradora quadrática em adjacência de arestas biobjetivo – Monografia. 3. Metaheurísticas – Monografia. 4. Algoritmos exatos – Monografia. 5. Hibridização. 6. Otimização multiobjetivo. I. Goldbarg, Elizabeth Ferreira Gouvêa. II. Título.

(4)

cas para o Problema da Árvore Geradora Quadrática em Adjacência de Arestas Biobjetivo apresentada por Thiago Soares Marques e aceita pelo Departamento de Informática e Matemática Aplicada do Centro de Ciências Exatas e da Terra da Universidade Federal do Rio Grande do Norte, sendo aprovada por todos os membros da banca examinadora abaixo especificada:

Profa. Dra. Elizabeth Ferreira Gouvêa Goldbarg

Orientador(a) DIMAp UFRN

Profa. Dra. Silvia Maria Diniz Monteiro Maia

DIMAp UFRN

Prof. Dr. Marco Cesar Goldbarg

DIMAp UFRN

(5)

Carlos Antônio e Maria do Carmo: pelos ensinamentos, fé, e por todo apoio e amor. Aos meus irmãos, Maria de Fátima, Bruna e Gabriel: por fazerem parte da minha vida. A minha esposa, Julliana: pela dedicação, apoio e amor.

(6)

A Deus, primeiramente, por me iluminar, animar e fortalecer nos momentos mais difíceis.

Aos meus pais Carlos Antônio Marques e Maria do Carmo Genésio Soares, por todo incentivo e apoio em todos os momentos.

A minha querida esposa, Julliana Caroline Gonçalves de Araújo Silva Marques. A professora Dra. Elizabeth Ferreira Gouvêa Goldbarg, por toda a paciência, empe-nho, compreensão e conselhos valiosos a mim oferecidos de bom grado.

Aos professores Dra. Silvia Maria Diniz Monteiro Maia e Dr. Marco César Goldbarg, por aceitarem fazer parte da banca examinadora deste trabalho.

A todos os professores do Departamento de Informática e Matemática Aplicada e do Instituto Metrópole Digital.

Aos meus colegas Sidemar Fideles, Hiago Mayk, Jean, José e todos os demais colegas que contribuíram com ideias e conselhos, ou mesmo com boas e prazerosas conversas.

(7)

o mar seria menor se lhe faltasse uma gota Madre Teresa de Calcuta

(8)

para o Problema da Árvore Geradora Quadrática em

Adjacência de Arestas Biobjetivo

Autor: Thiago Soares Marques Orientador(a): Profa. Dra. Elizabeth Ferreira Gouvêa Goldbarg

Resumo

O problema da Árvore Geradora Mínima (AGM) consiste em, dado um grafo finito não direcionado G = (V, E) com |V | = n e |E| = m, ponderado em arestas, encontrar um subgrafo gerador acíclico e conexo de modo que a soma dos pesos das arestas seja mínima. Esse é um problema clássico de otimização combinatória que pode ser resolvido de ma-neira ótima em tempo polinomial. O problema da Árvore Geradora Mínima Quadrática (AGMQ) é uma generalização da AGM na qual custos quadráticos associados à interação de cada par de arestas estão presentes. Os custos lineares e quadráticos são somados de modo a compor o custo total da árvore geradora resultante. Uma vez que apenas intera-ções de arestas adjacentes são consideradas, o problema é denominado Árvore Geradora Mínima Quadrática em Adjacência de Arestas (AGMQA). Ambos AGMQ e AGMQA são problemas NP-Difíceis que procuram modelar problemas reais envolvendo projeto de re-des de transporte e distribuição. Por exemplo, no transporte de petróleo e seus derivados. O transporte acontece através de dutos, os quais possuem interfaces de conexão entre eles. Assim, o custo de transportar petróleo e seus derivados de um duto para outro, pode depender da natureza das suas interfaces. Embora na versão mono-objetivo os custos line-ares e quadráticos são somados, em aplicações reais tais custos podem ser conflitantes, o que torna mais interessante considerá-los independentemente. Neste sentido, a otimização multiobjetivo parece proporcionar um modelo mais realista para os problemas da AGMQ e AGMQA, dando origem ao problema da AGQA Biobjetivo (AGQA-bi). Na formulação sob a perspectiva biobjetivo é considerado o fato de que os custos lineares e quadráticos podem assumir situações conflitantes. Em geral, pode-se resolver AGQA-bi a partir de estratégias exatas e (meta) heurísticas, todavia ambas as abordagens possuem desvan-tagens. O exato pode tomar um tempo computacional não admissível, enquanto que as

(9)

foque é combinar esses métodos a fim de minimizar as desvantagens de cada abordagem, sendo este o estudo realizado neste trabalho.

Palavras-chave: Árvore Geradora Quadrática em Adjacência de Arestas Biobjetivo, Meta-heurísticas, Algoritmos Exatos, Hibridização, Otimização Multiobjetivo.

(10)

for The Biobjective Adjacent Only Quadratic Spanning

Tree Problem

Author: Thiago Soares Marques Advisor: Prof. D.Sc. Elizabeth Ferreira Gouvêa Goldbarg

Abstract

The Minimum Spanning Tree Problem (MST) consists of, given a finite non-directed graph G = (V, E) with |V | = n and |E| = m, weighted by edges, find an acyclic and connected spanning subgraph so that the sum of the weights of the edges is minimal. This is a classic problem of combinatorial optimization that can be solved optimally in polynomial time. The Quadratic Minimum Spanning Tree Problem (QMST) is a generalization of MST in which quadratic costs associated with the interaction of each pair of edges are present. The linear and quadratic costs are summed to make up the total cost of the resulting spanning tree. Since only adjacent edge interactions are considered, the problem is called the Adjacency-Only Quadratic Minimum Spanning Tree (AQMST). Both QMST and AQMST are NP-Hard problems that attempt to model real problems involving the design of transport and distribution networks. For example, in the transportation of petroleum and its derivatives. Transportation takes place through pipes, which have connection interfaces between them. Thus, the cost of transporting oil and its derivatives from one pipeline to another may depend on the nature of their interfaces. Although in the mono-objective version, linear and quadratic costs are summed up, but in real applications such costs can be conflicting, which makes it more interesting to consider them independently. In this sense, multiobjective optimization seems to provide a more realistic model for the problems of QMST and AQMST, giving rise to the Biobjective Adjacency-Only Quadratic Spanning Tree Problem (bi-AQST). In the formulation by the biobjective perspective it is considered the fact that linear and quadratic costs can assume conflicting situations. In general, bi-AQST can be solved from exact strategies and (meta) heuristics, but both approaches have drawbacks. The exact one can take an inadmissible computational time,

(11)

third approach is to combine these methods in order to minimize the disadvantages of each approach, this being the study carried out in this work.

Keywords: Biobjective Adjacency-Only Quadratic Minimum Spanning Tree, Metaheuris-tics, Exact Algorithms, Hybridization, Multiobjective Optimization.

(12)

1 Modelagem usando o problema da AGM . . . p. 17 2 Árvore do exemplo de modelagem . . . p. 18 3 Exemplo de Grafo . . . p. 24 4 Hiper-volume para os conjuntos A e B, referente ao ponto Zref (Souza,

2006) . . . p. 30 5 Evolução das publicações sobre hibridização de métodos exatos e

mata-heurísticos (JOURDAN; BASSEUR; TALBI, 2009) . . . p. 33 6 Classificação de combinações exatas/meta-heurísticas. (PUCHINGER; RAIDL,

(13)

1 Tempos médios dos algoritmos PLS, ONP e GRASP para as instâncias

CP . . . p. 68 2 Comparação do ONP versus PLS, GRASP, PSO . . . p. 69 3 Tempos médios dos algoritmos B&B + GRASP e B&B + ON P para as

instâncias CP . . . p. 70 4 Tempos médios dos algoritmos B&B + GRASP e B&B + ON P para as

instâncias OP1 . . . p. 71 5 Resultado do B&B + GRASP para as instâncias CP . . . p. 73 6 Resultado do B&B + GRASP para as instâncias OP1 . . . p. 74 7 Resultado do B&B + ON P para as instâncias CP . . . p. 75 8 Resultado do B&B + ON P para as instâncias OP1 . . . p. 77 9 Resultado do B&B + ON P (heurístico) para as instâncias CP . . . p. 79 10 Resultado do B&B + ON P (heurístico) para as instâncias OP1 . . . . p. 80

(14)

1 Backtracking – Maia 2013 . . . . p. 38 2 Branch-and-Bound – Maia 2013 . . . . p. 41 3 Pareto Local Search – Maia 2013 . . . . p. 43 4 Busca Tabu - Maia 2013 . . . p. 44 5 Backtracking - Pinheiro 2016 . . . . p. 45 6 Branch-and-Bound - Pinheiro 2016 . . . . p. 47 7 PLS - Pinheiro 2016 . . . . p. 49 8 GRASP - Pinheiro 2016 . . . . p. 51

9 Anytime Pareto Local Search . . . . p. 59 10 Nuvem de Partículas . . . p. 62

(15)

1 Introdução p. 17 1.1 Objetivos . . . p. 20 1.2 Metodologia . . . p. 21 1.3 Contribuições . . . p. 21 1.4 Organização do trabalho . . . p. 21 2 Fundamentação Teórica p. 23 2.1 Grafos . . . p. 23 2.1.1 Definições . . . p. 23 2.2 Otimização Multiobjetivo . . . p. 25 2.2.1 Problema de Otimização Multiobjetivo . . . p. 25 2.2.2 Relações de Dominância de Pareto . . . p. 26 2.2.3 Soluções suportadas e não-suportadas . . . p. 28 2.2.4 Qualidade de Soluções . . . p. 29 2.2.4.1 A métrica hiper-volume . . . p. 29 2.3 O Problema da Árvore Geradora Quadrática em Adjacência de Arestas

Biobjetivo . . . p. 31 2.3.1 Definição do Problema da Árvore Geradora Miníma Quadrática p. 31 2.3.2 Definição do Problema da Árvore Geradora Miníma Quadrática

em Adjacência de Arestas . . . p. 32 2.3.3 Definição do Problema da Árvore Geradora Quadrática em

Ad-jacência de Arestas Biobjetivo . . . p. 32 2.4 Hibridização de Algoritmos Exatos e Meta-Heurísticas . . . p. 33

(16)

2.5.1 Maia (2013) . . . p. 36 2.5.1.1 Backtracking . . . p. 36 2.5.1.2 Branch-and-Bound . . . p. 39 2.5.1.3 Pareto Local Search . . . p. 42 2.5.1.4 Busca Tabu . . . p. 43 2.5.2 Pinheiro (2016) . . . p. 44 2.5.2.1 Backtracking . . . p. 44 2.5.2.2 Branch-and-Bound . . . p. 45 2.5.2.3 Pareto Local Search . . . p. 47 2.5.2.4 GRASP . . . p. 50 2.5.2.5 Simulated Anneling . . . p. 52 2.5.2.6 NSGA II . . . p. 52 2.5.2.7 Algoritmo Transgenético . . . p. 53 2.5.2.8 MOTA-D . . . p. 54 2.5.2.9 Otimização por Nuvem de Partículas . . . p. 54

3 Algoritmos p. 56

3.1 Anytime Pareto Local Search . . . p. 56 3.2 Otimização de Nuvem de Partículas . . . p. 60 3.3 Branch-and-Bound com Nuvem de Partículas (exato) . . . p. 63 3.4 Branch-and-Bound com GRASP (exato) . . . p. 64 3.5 Branch-and-Bound com Nuvem de Partículas (heurístico) . . . p. 64

4 Experimentos Computacionais p. 66 4.1 Instâncias . . . p. 66 4.2 Metodologia . . . p. 67

(17)

5 Considerações finais p. 82

(18)

1

Introdução

Com o desenvolvimento da sociedade moderna e das tecnologias, se torna imprescin-dível que as cidades desenvolvam maneiras de distribuir sua energia de modo eficiente. Assim, pois, não é muito difícil que a seguinte situação ocorra. Imagine que um grupo de engenheiros esteja planejando interligar um conjunto de bairros de uma determinada cidade. Para isso eles precisam encontrar uma estrutura de conexão de rede para interli-gar cada bairro com os demais, contudo existe uma restrição de que essa estrutura use o menor valor possível. Isso implica que não poderá existir caminhos redundantes na rede projetada, uma vez que o custo da rede deve ser o menor possível, o que resulta na não existência de ciclos. Os engenheiros precisam então organizar uma planilha com cada par de cidades e o valor de investimento necessário para conectá-las. Tal situação pode ser modelada com o Problema da Árvore Geradora Mínima (AGM), no qual, a cidade é um grafo, cada bairro é representado por um vértice desse grafo e o valor que deve ser inves-tido para conectar qualquer par de bairros é representado por uma aresta ponderada. A Figura 1 abaixo representa essa modelagem.

(a) Uma cidade com 4 bairros cada um identificado por um número de 1 à 4.

(b) Grafo que modela a cidade com 4 bairros e seus respectivos custos de interligação.

Figura 1: Modelagem usando o problema da AGM

Nesse sentido resolver esse problema seria encontrar uma árvore geradora de peso mínimo. Essa árvore é apresentada a seguir na Figura 2. As arestas que fazem parte da árvore estão coloridas de verde, ou seja, as arestas (1, 4), (2, 3) e (2, 4), e o custo total da

(19)

árvore é portanto 198.

Figura 2: Árvore do exemplo de modelagem

Esse modelo parece atender ao problema desejado, todavia varias outras caracterís-ticas/restrições podem ser consideradas no projeto de redes de energia, muitas vezes até mesmo outros objetivos para se otimizar.

Imagine agora a seguinte situação. A mesma equipe de engenheiros, procura agora pro-jetar uma rede de transporte (rodoviária) para uma determinada cidade. Nesse sentido, os engenheiros consideram o custo de instalação da rede, de modo análogo ao exemplo ante-rior, isto é, considerando o investimento necessário para interligar dois pontos quaisquer da cidade. Mas nesse caso, os engenheiros devem levar em conta o impacto ocasionado pelo tráfego, mais especificamente no que diz respeito às conversões que os veículos pre-cisarão fazer. Com conversões os engenheiros querem considerar o caso em que, ao se aproximar de uma esquina, um veículo pode ter sua velocidade reduzida, caso o mesmo precise fazer uma conversão à direita ou à esquerda, e anda mais um tempo de espera a ser considerado dependendo do tráfego na via em que o veículo se encontra. Esse tempo de espera associado a cada conversão, pode ser modelado como uma penalidade, onde cada penalidade é diretamente proporcional ao tempo de espera estimado que o veículo precisará.

Como no caso anterior, tal situação pode ser modelada da seguinte maneira. A cidade é um grafo, cada ponto da cidade é representado por um vértice desse grafo, o valor que deve ser investido para conectar qualquer par de pontos é representado por uma aresta ponderada, e as penalidades são modeladas como uma matriz de custos. Desse modo, essa modelagem considera uma estrutura de custos quadráticos associados a cada par de arestas adjacentes. Se for considerado que os custos lineares (valor do investimento) e os custos quadráticos (penalidades) são independentes, então pode-se considerá-los como objetivos independentes a serem otimizados simultaneamente. Desse modo, o Problema da Árvore Geradora Quadrática em Adjacência de Arestas Biobjetivo (AGQA-bi), provê um modelo adequado para resolver o problema dos engenheiros.

(20)

Assim como destacado no exemplo anterior, não é raro que um problema requeira a otimização de mais de um objetivo e por vezes até mesmo que esses objetivos sejam conflitantes. Nesse sentido, uma solução que seja muita boa em um objetivo mas ruim em outro não é muito interessante. Sendo assim, deve-se procurar soluções que sejam balanceadas em termos de valor objetivo, ou seja, soluções que tenham um compromisso de serem boas em todos os objetivos.

Uma grande dificuldade que acontece nesse tipo de problema, com mais de um ob-jetivo, é o fato que as soluções dificilmente podem ser ordenadas totalmente, em outras palavras encontrar uma relação que induza uma ordem total sobre o conjunto de soluções é algo bastante difícil de se obter. Isso ocorre pelo fato de existirem soluções que são indiferentes entre si, isto é, pode acontecer que uma solução tenha o valor do primeiro objetivo melhor, comparado a outra solução, mas essa outra tem o valor do segundo ob-jetivo melhor que o da primeira, neste caso não é possível dizer qual solução é melhor. Desse modo, não existe somente uma solução ótima, mas sim, um conjunto de soluções, que é denominado pela literatura de conjunto de soluções ótimas de Pareto. Esse e outros conceitos da otimização multiobjetivo serão abordados mais profundamente na seção 2.2. Como mencionado, o problema da AGQA-bi pode ser utilizado para modelar diversos problemas reais, sendo assim alguns trabalhos vêm sendo desenvolvidos com intuito de resolver o problema, dentre os quais encontram-se os seguintes trabalhos (MAIA, 2013) e

(PINHEIRO, 2016), nos quais foram propostos algoritmos exatos e heurísticos.

Em geral, pode-se resolver AGQA-bi a partir de estratégias exatas e (meta) heurísti-cas, todavia ambas as abordagens possuem desvantagens. O exato pode tomar um tempo computacional não admissível, enquanto que as heurísticas nem sempre encontrarão a solução ótima do problema. Assim, um terceiro enfoque é combinar esses métodos a fim de minimizar as desvantagens de cada um.

Segundo (JOURDAN; BASSEUR; TALBI, 2009), os métodos de hibridização de

algorit-mos exatos e meta-heurísticos, podem ser classificados em duas categorias: combinações de colaboração e integração. Sendo que a categoria de colaboração se subdivide em duas classes: execução sequencial e paralela. No que segue, as de integração são subcategoriza-das também em duas classes, que são: incorporar algoritmos exatos em meta-heurísticas e incorporar meta-heurísticas em algoritmos exatos. Desse modo, pretende-se adotar neste trabalho essa abordagem híbrida com objetivo de desenvolver algoritmos que explorem as vantagens de ambas as abordagem, exatas e heurísticas.

(21)

Pareto Local Search (Anytime PLS) e um algoritmo de Otimização por Nuvem de Par-tículas (ONP). Ambos foram hibridizados com o branch-and-bound proposto por (MAIA, 2013) de modo a verificar o comportamento de tais algoritmos híbridos frente aos seus respectivos algoritmos isolados.

1.1

Objetivos

Pelo fato dos trabalhos relacionados ao problema da AGQA-bi encontrados na litera-tura ainda serem poucos, podendo ressaltar os trabalhos de (MAIA, 2013) e (PINHEIRO, 2016). Nos quais foram desenvolvidos algoritmos exatos e meta heurísticos para o pro-blema estudado, ainda assim nenhum trabalho relacionado a hibridização de algoritmos meta heurísticos e abordagens exatas foi publicado até o momento. Neste sentido, o pre-sente trabalho tem por objetivo desenvolver e estudar o comportamento de tais algoritmos. Portanto, para o desenvolvimento deste trabalho foi necessário estudar métodos exatos, heurísticos e meta-heurísticos que possam ser aplicados na resolução do problema, bem como investigar técnicas de hibridização de algoritmos exatos e meta-heurísticas. Ade-mais, visto que o problema estudado se encontra no cenário multiobjetivo a compreensão dos conceitos relacionados a otimização multiobjetivo é de fundamental importância.

De modo geral, pode-se destacar os seguintes objetivos específicos abaixo:

• Estudar métodos exatos, heurísticos e meta-heurísticos que possam ser aplicados na resolução do problema.

• Investigar técnicas de hibridização de algoritmos exatos e meta-heurísticas.

• Elucidar os conceitos no que se refere a otimização multiobjetivo.

• Projetar algoritmos de solução para o problema da AGQA-bi, utilizando as técnicas estudadas.

• Comparar os algoritmos desenvolvidos e os presentes na literatura.

• Apresentar os resultados obtidos, analisando quais das técnicas propostas são mais apropriadas para a resolução do problema.

(22)

1.2

Metodologia

Neste trabalho, foram desenvolvidos algoritmos híbridos para resolução do problema da AGQA-bi, a saber: Bound com Nuvem de Partículas (exato), Branch-and-Bound com GRASP e Branch-and-Branch-and-Bound com Nuvem de Partículas (heurístico). Para o desenvolvimento desses algoritmos híbridos, foram ainda implementados dois algoritmos (meta)heurísticos: Anytime Pareto Local Search e Otimização em Nuvem de Partículas.

Para avaliar o desempenho dos algoritmos, foram realizados experimentos com ins-tâncias de tamanho 6 à 15, para os algoritmos exatos. E de tamanho 10 até 100, para os algoritmos (meta)heurísticos.

Todos os algoritmos que continham algum elemento não-determinístico foram exe-cutados 30 vezes para cada instância de testes, e suas respectivas médias são os valores reportados nesse trabalho. Para os algoritmos exatos foi estabelecido um limite de tempo de execução 1800 segundos, e os resultados exibidos nesse documento são os casos de testes para os quais foi possível obter a solução ótima dentro do limite de tempo esta-belecido, obviamente para o caso dos algoritmos exatos. No que se refere aos algoritmos (meta)heurísticos, o limite de tempo estabelecido foi de 150 segundos.

1.3

Contribuições

De modo geral, o trabalho realizado contribuiu para a expansão da literatura do problema da AGQA-bi por meio do estudo de técnicas de hibridização de algoritmos para o problema, e pelo desenvolvimento de novos algoritmos.

O trabalho também apresenta uma revisão da literatura para o problema da AGQA-bi, bem como aborda os conceitos básicos relacionados a otimização multiobjetivo e hibridi-zação de algoritmos exatos e meta-heurísticos. Sendo assim, este trabalho poderá servir de fundamentação teórica tanto para novos estudos na área de otimização multiobjetivo como no estudo de hibridizações de algoritmos.

1.4

Organização do trabalho

O documento está organizado da seguinte maneira. No capítulo de Introdução será explicado o contexto do problema estudado bem como as dificuldades inerentes da oti-mização multiobjetivo. Posteriormente será apresentado a metodologia utilizada neste

(23)

trabalho.

No Capítulo 2 são apresentados os conceitos referentes à Teoria dos Grafos, Otimização Multiobjetivo, hibridização de algoritmos exatos e meta-heurísticas bem como a definição do problema estudado, isto nas seções 2.1 à 2.4, respectivamente. Na seção 2.5 é relatada uma revisão da literatura sobre o problema da AGQA-bi.

O Capítulo 3 aborda os algoritmos desenvolvidos. No Capítulo 4 são abordados os experimentos computacionais e conclusões sobre os mesmos. Por fim, o Capítulo 5 apre-senta as considerações finais sobre o trabalho realizado. As referências utilizadas podem ser encontradas no final deste documento.

(24)

2

Fundamentação Teórica

O capítulo 2 deste trabalho aborda a definição do problema estudado, ou seja, do Problema da Árvore Geradora Quadrática em Adjacência de Arestas Biobjetivo. Dessa maneira, nas seções 2.1, 2.2 e 2.3.1 são apresentados o arcabouço teórico sobre grafos e otimização multiobjetivo, sendo esses, necessários para a compreensão desse capítulo, bem como a definição do problema estudado, respectivamente.

Mais adiante, na seção 2.5, é apresentada uma revisão da literatura para o problema da AGMQA-bi.

2.1

Grafos

Esta seção tem por objetivo introduzir os conceitos, notações e definições fundamentais sobre grafos. As definições e conceitos aqui descritos são abordados na seguinte obra (GOLDBARG; GOLDBARG, 2012).

2.1.1

Definições

Definição 1 (Grafo) Um grafo é uma abstração de uma estrutura composta por dois conjuntos, nomeados vértices e arestas, sendo esse último o conjunto que representa as relações entre os pares de vértices. Ademais, o conjunto de vértices deve ser não vazio enquanto que o conjunto de arestas pode ser vazio. Desse modo, uma representação ma-temática de um grafo pode ser definida como a seguinte tupla G = (V, E), sendo V o conjunto de vértices e E o conjunto de arestas.

Notação 1 (Vértices e Arestas) Por convenção será utilizado a letra V para indicar o conjunto de vértices de um grafo, e seus elementos serão descritos como vi, onde i =

1, . . . , n em que a quantidade de elementos em V será denotada por n, ou seja, |V | = n. De modo semelhante, o conjunto de arestas de um grafo será denotado por E e seus

(25)

elementos serão ek= (vi, vj) onde |E| = m com k = 1, . . . , m e i, j = 1, . . . , n.

Notação 2 (Representação Gráfica de um Grafo) Um grafo pode ser representado graficamente de um modo bastante natural. Nesse sentido, dado um grafo G = (V, E) os elementos vi de V , ou seja, os vértices podem ser representados por círculos, e os

elementos ek = (vi, vj) de E podem ser representados por traços que ligam os círculos dos

vértices vi e vj.

Exemplo: Seja o grafo G = (V, E) com V = {1, 2, 3, 4} e E = {(1, 2), (1, 3), (1, 4), (2, 3), (2, 4), (3, 4)}. A representação gráfica desse grafo é dada abaixo na Figura 3.

Figura 3: Exemplo de Grafo

Definição 2 (Grafo Finito) Um grafo finito é aquele tal que seus conjuntos de vértices e arestas são finitos.

Definição 3 (Vértices Adjacentes) Quanto dois vértices, vi e vj, compartilham uma

mesma aresta, eles são ditos adjacentes.

Definição 4 (Arestas Adjacentes) Quanto duas arestas, ei e ej, compartilham um

mesmo vértice, elas são ditas adjacentes.

Definição 5 (Grafo Ponderado em Arestas) Um grafo é dito ponderado se para cada aresta, desse grafo, existe um valor numérico associado, em geral denominado wi, ou peso

da aresta ei.

Definição 6 (Grafo Completo) Um grafo G é completo quando sempre existe uma aresta relacionando cada par de diferentes vértices de G.

Definição 7 (Subgrafo) Dado um grafo G = (V, E), o grafo Gs = (Vs, Es) tal que

(26)

Definição 8 (Subgrafo Gerador) Um subgrafo gerador é aquele cujo conjunto de vér-tices é igual ao do grafo original, ou seja, dado G = (V, E), um subgrafo gerador de G é um grafo Gs= (V, Es) com Es ⊆ E.

Definição 9 (Caminho) Caminho é uma sequência finita que alterna entre vértices e arestas distintos, da seguinte forma v1, e1, v2, . . . , vk−1, ek−1, vk, que tem inicio e termino

em vértices da forma vi−1 e vi, respectivamente, sendo esses, vértices terminais da aresta

ei−1 com i = 1, . . . , k.

Definição 10 (Grafo Conexo) Um grafo G = (V, E) é dito conexo se para qualquer par de vértice vi e vj pertencentes a V , existe um caminho.

Definição 11 (Grafo Acíclico) Um grafo G = (V, E) é dito acíclico se não existe ca-minho, iniciando em vi e terminando em vk, de G tal que vi = vk, com vi, vk∈ V .

Definição 12 (Árvore) Quando um grafo G é acíclico e conexo, este grafo recebe o nome de árvore.

Definição 13 (Árvore Geradora) Seja Gs = (V, Es) um subgrafo gerador de G =

(V, E), se Gs for acíclico e conexo, então Gs é uma árvore geradora de G.

2.2

Otimização Multiobjetivo

Esta seção tem por objetivo introduzir os conceitos, notações e definições fundamentais sobre otimização multiobjetivo. As definições e conceitos aqui descritos são abordados na seguinte obra (ANDREA et al., 2008).

2.2.1

Problema de Otimização Multiobjetivo

Segundo (SOUZA, 2006) maximizar ou minimizar um vetor de funções objetivo, de um Problema de Otimização Multiobjetivo (POMO), consiste em encontrar os valores das variáveis, de fato um vetor de variáveis de decisão, que satisfazem o conjunto de restrições do problema e maximizam/minimizam as funções objetivo.

Uma vez que os POMO procuram modelar problemas reais com várias restrições e funções objetivo, não é raro que seus objetivos encontrem-se em situações conflitantes.

(27)

Isso implica que, de modo geral, não basta otimizar cada objetivo individualmente, uma vez que nem sempre essa estratégia levará a uma solução viável.

Segundo (ANDREA et al., 2008) um Problema de Otimização Multiobjetivo pode ser formulado como se segue:

min {z(x) = (z1(x), . . . , zp(x)) : x ∈ X} (2.1)

Na Equação 2.1, X ⊂ Rn denota o conjunto de soluções viáveis, ou seja, todas as configurações possíveis de valores que podem ser atribuídos as vareáveis de decisão, que satisfazem as restrições, caso elas existam, e z : Rn → Rp é uma função-vetor objetivo que

associa cada solução x = hx1, . . . , xni a um vetor-valor objetivo y = hy1, . . . , ypi. Pode-se

ainda definir o conjunto Y = z(X) como {z(x) : x ∈ X} ⊂ Rp e denotado por imagem do conjunto de soluções viáveis no espaço objetivo.

Em problemas mono-objetivo, como constata (MAIA, 2013), pode-se de maneira muito natural, ordenar cada solução por seu valor objetivo, utilizando, por exemplo, a relação menor ou igual ≤, nesse caso a solução ótima z∗ é a primeira solução disposta nessa ordenação, considerando um problema de minimização.

O fato é que, em Problemas de Otimização Multiobjetivo encontrar tal ordenação natural, em geral, é uma tarefa impossível (MONTEIRO, 2011), (DRUMOND, 2012). Sendo assim, a literatura considera, para POMO, a Otimização de Pareto. Desse modo, alguns conceitos precisam ser introduzidos como: soluções eficientes, relações de dominância, entre outros. Esses conceitos serão abordados nas seções a seguir.

2.2.2

Relações de Dominância de Pareto

Nesta seção serão introduzidos os conceitos, notações e definições fundamentais sobre relações de dominância de Pareto. As definições e conceitos aqui descritos são abordados no seguinte trabalho (MAIA, 2013).

Para as definições a seguir considere duas soluções x, y ∈ X e uma função z : Rn → Rp

tal como descrito na Equação 2.1.

Definição 14 (Dominância ) Seja  ⊂ Rp×Rp, uma relação binária sobre o conjunto

dos vetores objetivo, Rp. Diz-se que um vetor objetivo z(x) domina outro vetor objetivo z(y), quando a seguinte proposição é satisfeita ∀i : i ∈ {1, . . . , p} vale zi(x) ≤ zi(y) e

(28)

∃k : k ∈ {1, . . . , p}, de modo que zk(x) < zk(y). Tal relação é expressa com a seguinte

notação x  y, e embora a relação esteja definida sobre o conjunto dos vetores objetivo, tal relação normalmente é utilizada para denotar que a solução x “domina” a solução y.

Definição 15 (Dominância Fraca ) Seja  ⊂ Rp× Rp, uma relação binária sobre o

conjunto dos vetores objetivo, Rp. Diz-se que um vetor objetivo z(x) domina fracamente outro vetor objetivo z(y), quando a seguinte proposição é satisfeita ∀i : i ∈ {1, . . . , p} vale zi(x) ≤ zi(y). Tal relação é expressa com a seguinte notação x  y, e embora a relação

esteja definida sobre o conjunto dos vetores objetivo, tal relação normalmente é utilizada para denotar que a solução x “domina fracamente” a solução y.

Definição 16 (Dominância Estrita ) Seja  ⊂ Rp × Rp, uma relação binária

sobre o conjunto dos vetores objetivo, Rp. Diz-se que um vetor objetivo z(x) domina estritamente (ou fortemente) outro vetor objetivo z(y), quando a seguinte proposição é satisfeita ∀i : i ∈ {1, . . . , p} vale zi(x) < zi(y). Tal relação é expressa com a seguinte

notação x  y, e embora a relação esteja definida sobre o conjunto dos vetores objetivo, tal relação normalmente é utilizada para denotar que a solução x “domina estritamente” a solução y.

Como observado por (MAIA, 2013), se um um par (x, y) ∈  com x, y ∈ X, então tal par pertence à  e à , em outras palavras, se a solução x domina estritamente y, então ela domina y, e domina fracamente y. Todavia a reciproca não é verdadeira.

Definição 17 (Incomparabilidade) Dado pois que, não é verdade que x domina fra-camente y, nem o oposto, isto é, não é verdade que y domina frafra-camente x. Tais soluções são ditas incomparáveis, ou ainda, que x e y são soluções não-dominadas.

A situação de incomparabilidade ou não-dominância decorre do fato que, ao passar de uma solução x para y, ou o inverso, a melhoria de um objetivo implica necessariamente na piora de outro.

Definição 18 (Pareto Ótimo) Seja X∗ ⊆ X o conjunto de soluções ótimas {x ∈ X | 6 ∃y : y ∈ X de modo que y  x}, X∗ é denominado conjunto de Pareto Ótimo.

Definição 19 (Fronteira de Pareto) Seja Y∗ = z(X∗) o conjunto {z(x∗) | x∗ ∈ X∗} ⊂

(29)

Sendo assim, a tarefa da otimização multiobjetivo é, pois, encontrar o conjunto de Pareto Ótimo ou boas aproximações do mesmo. Deixando por conta do tomador de deci-sões escolher a melhor solução relativa a um contexto específico, como observou (MAIA, 2013).

2.2.3

Soluções suportadas e não-suportadas

Assim como no trabalho de (MAIA, 2013), o presente estudo considera a diferenciação

entre soluções ditas não-dominadas e soluções eficientes. Soluções eficientes, pertencem necessariamente ao conjunto de Pareto Ótimo, enquanto que, ao utilizar puramente o termo "soluções não-dominadas", a relação de inclusão relativa ao Pareto Ótimo não é comprovada (ou considerada).

Segundo (ANDREA et al., 2008) um Problema de Otimização Combinatória Multiob-jetivo (POCMO) pode ser formulado como se segue:

min {Cx : Ax ≥ b, x ∈ Zn} (2.2) Note que, na Equação 2.2, C é uma função-matriz objetivo p × n, na qual ck denota

a k-ésima linha de C, isto é, os coeficientes da k-ésima função objetivo. A matriz m × n, A, contém os coeficientes das restrições do problema, e b ∈ Rm é o vetor de termos independentes das restrições do problema.

De modo geral, os termos das matrizes C, A e b não números inteiros, dado a natureza dos problemas de otimização combinatória. Desse modo, pode-se definir o conjunto de soluções viáveis X, como sendo {x : Ax ≥ b} ⊆ Zn. Defini-se ainda, a imagem de X sobre C em Rp, como o conjunto Y = CX = {Cx : x ∈ X}

Ainda segundo (ANDREA et al., 2008), um dos grandes desafios na resolução de POCMO em comparação aos Problemas de Programação Linear Multiobjetivo (PPLMO), ou seja, problemas do tipo min {Cx : Ax ≥ b, x ≥ 0}, reside no fato que existem soluções eficientes que não são ótimas para qualquer agregação por meio de somas ponderadas. Tais soluções são chamadas de soluções eficientes não-suportadas e, como notado por (MAIA, 2013), encontrar o conjunto de todas as soluções não-suportadas representa um desafio adicional para problemas multiobjetivo, uma vez que essa tarefa contribui de modo significativo para a dificuldade da resolução computacional do problema.

(30)

min ( p X k=1 λkzk(x) : x ∈ X ) (2.3)

Já as que são ótimas para alguma soma ponderada, ou seja, para problemas que podem ser descritos como a Equação 2.3, são denominadas soluções eficientes suportadas.

2.2.4

Qualidade de Soluções

Realizar uma comparação entre algoritmos (meta)heurísticos que tratam problemas mono-objetivo, em geral, pode ser feita considerando algumas métricas naturais, como tempo de processamento, afastamento da solução encontrada para a solução ótima, tam-bém denominado gap, entre outras. Todavia mensurar a qualidade de uma solução dada por um algoritmo meta-heurístico que trata um problema multiobjetivo não é uma tarefa trivial (ARROYO et al., 2002), uma vez que, de fato, tem-se um conjunto de soluções não dominadas.

Desse modo, vários tipos de métricas foram propostas no sentido de auxiliar a com-paração de algoritmos para problemas multiobjetivos. Viena e Pinho de Souza (VIANA; SOUSA, 2000) propuseram métricas baseadas em distancias e aspectos geométricos para problemas biobjetivos. Collette e Siarry (COLLETTE; SIARRY, 2005) apresentam métricas baseadas em velocidade de convergência. Zitzler (1999) propõe, em sua tese de doutorado, um indicador baseado em hiper-volume, que se tornou um dos métodos mais utilizados atualmente para comparação entre conjuntos de soluções não-dominadas. Os autores de (ZITZLER et al., 2003) apresentam ainda os indicadores de qualidade -binário aditivo e multiplicativo.

Tendo em vista a grande adoção da métrica hiper-volume (ZITZLER, 1999) nos traba-lhos relatados na literatura, para problemas multiobjetivo, optou-se por utilizá-la neste trabalho.

2.2.4.1 A métrica hiper-volume

Como comentado anteriormente, a métrica hiper-volume foi introduzida por Zitzler em 1999. Essa métrica é utilizada para concluir quando um conjunto de aproximação de um conjunto Pareto Ótimo, apresenta uma qualidade superior que um outro conjunto de aproximação.

(31)

conjunto de aproximação analisado. Para essa analise é considerado um ponto de referên-cia, Zref, sendo ele, geralmente, composto pelos piores valores para cada objetivo, dentre

todos os conjuntos de aproximação que serão analisados. No que segue, um conjunto de aproximação, A é dito melhor que um outro conjunto de aproximação B quando o hiper-volume de A for maior que o hiper-hiper-volume de B. Na Figura 4 (SOUZA, 2006) é apresentado um exemplo no qual tal situação ocorre, isto é, o conjunto A é preferível a um conjunto B.

Figura 4: Hiper-volume para os conjuntos A e B, referente ao ponto Zref (Souza, 2006)

Segundo (SOUZA, 2006) para confrontar a qualidade de um conjunto A frente a outro conjunto B, basta computar:

S = h(A) − h(B)

h(B) (2.4)

Onde, na Equação 2.4, h(A) e h(B) denotam, respectivamente, o hiper-volume do conjunto A e do conjunto B.

Nesse caso, quando ambos os conjuntos apresentam o mesmo hiper-volume, S deve ser igual a zero. Quando A for preferível a B, S > 0. E de modo análogo, quando B for preferível que A, S < 0.

(32)

2.3

O Problema da Árvore Geradora Quadrática em

Adjacência de Arestas Biobjetivo

Esse seção apresenta a formulação do problema estudado e assim como em (ASSAD; XU, 1992), (MAIA, 2013) e (PINHEIRO, 2016) o problema será definido a partir da AGM acrescentando as restrições necessárias.

2.3.1

Definição do Problema da Árvore Geradora Miníma

Qua-drática

O problema da Árvore Geradora Mínima consiste em, dado um grafo finito não direci-onado G = (V, E) com |V | = n e |E| = m, ponderado em arestas, encontrar um subgrafo gerador acíclico e conexo de modo que a soma dos pesos das arestas seja mínima.

Matematicamente, seja xi a variável de decisão definida como se segue:

xi ≡    1 , se a aresta ei é selecionada, 0 , caso contrário. (2.5)

As arestas correspondentes as componentes valoradas com 1 de x = hx1. . . . , xmi

definem um subgrafo de G. Se x tem exatamente n − 1 variáveis valoradas com 1, então o grafo correspondente a essa configuração é uma árvore geradora de G. Seja T o conjunto de todos os vetores que correspondem a árvores. Assad e Xu (1992) formulam o problema da Árvore Geradora Mínima como

min ( z(x) = m X i=1 cixi | x ∈ T ) (2.6)

em que ci é o custo associado a aresta ei.

Para a formulação do problema da AGMQ, os autores substituem a função objetivo linear (2.6) pela seguinte função quadrática

min        z(x) = m X i=1 m X j=1 j6=i aijxixj+ m X i=1 bixi | x ∈ T        . (2.7)

(33)

par de arestas (ei, ej), também denominados intercustos. Vale destacar que nessa

formu-lação ambos os custos aij e aji são considerados, permitindo a construção de instâncias

simétricas e assimétricas. Assad e Xu (1992) demonstram a pertinência do problema da AGMQ à classe dos problemas NP-Difíceis.

2.3.2

Definição do Problema da Árvore Geradora Miníma

Qua-drática em Adjacência de Arestas

Assad e Xu (1992) ainda definem um caso particular da AGMQ, o problema da AGMQA, no qual apenas arestas adjacentes possuem intercustos positivos, as demais arestas tem intercustos iguais a zero. Formalmente tem-se que

min ( z(x) = m X i=1 m X j∈Ai aijxixj + m X i=1 bixi | x ∈ T ) (2.8)

em que Ai denota o conjunto de identificadores das arestas adjacentes à aresta ei. Os

autores demonstram que o problema da AGMQA é NP-Difícil por meio de uma redução polinomial do problema do Caminho Hamiltoniano para o problema da AGMQA.

2.3.3

Definição do Problema da Árvore Geradora Quadrática em

Adjacência de Arestas Biobjetivo

Na formulação sob a perspectiva biobjetivo é considerado o fato de que os custos lineares e quadráticos podem assumir situações conflitantes. Desse modo, como definido em (MAIA, 2013), pode-se considerar cada componente de custo como um critério de otimização independente. Essa abordagem leva a seguinte definição.

min {z(x) = (z1(x), z2(x)) | x ∈ T } (2.9) na qual, z1(x) = m X i=1 m X j∈Ai aijxixj (2.10) z2(x) = m X i=1 bixi (2.11)

Maia (2013) argumenta à pertinência do problema da AGQA-bi à classe dos problemas NP-Difíceis.

(34)

2.4

Hibridização de Algoritmos Exatos e Meta-Heurísticas

Nós últimos anos o interesse em hibridizações de técnicas de otimização vem crescendo amplamente. Isso é devido, entre outras coisas, ao fato do rápido desenvolvimento da capacidade computacional existente, permitindo a exploração de técnicas que antigamente seriam impraticáveis. Em (JOURDAN; BASSEUR; TALBI, 2009) é apresentado um gráfico (Figura 5) que mostra a quantidade de publicações envolvendo hibridizações de métodos exatos e meta-heurísticos.

Figura 5: Evolução das publicações sobre hibridização de métodos exatos e mata-heurísticos (JOURDAN; BASSEUR; TALBI, 2009)

No mesmo trabalho de (JOURDAN; BASSEUR; TALBI, 2009), os autores ampliam o trabalho de (TALBI, 2002) apresentando uma revisão da literatura das técnicas de hibri-dização de métodos exatos e meta-heurísticos bem como apresentando uma proposta de classificação das mesmas, por meio de uma taxonomia.

A taxonomia de (JOURDAN; BASSEUR; TALBI, 2009) abrange três grandes categorias, o projeto de métodos de cooperação, projetos de metodologias, e as decisões de pro-jeto. Como comentado, o autor faz uma revisão da literatura dos métodos existentes de hibridização de métodos exatos e meta-heurísticas. O primeiro trabalho citado é o de (DUMITRESCU; STÜTZLE, 2003), no qual os autores propõem uma classificação para as diferentes abordagens de combinação entre métodos exatos e de busca local, a saber:

(35)

algoritmos de busca local.

• Realizar diversas execuções de algum procedimento de busca local, a fim de obter in-formações de soluções de alta qualidade, de modo que seja possível definir problemas menores que possam ser resolvidos por algoritmos exatos.

• Utilizar informações de limites inferiores e/ou superiores em heurísticas construtivas.

• Usar informação de soluções relaxadas de problemas de programação inteira para guiar procedimentos de busca local, ou em algoritmos construtivos.

• Empregar algoritmos exatos em procedimentos específicos de meta-heurísticas hi-bridas.

Outro trabalho que propõe uma classificação para métodos de hibridização é ( PU-CHINGER; RAIDL, 2005), no qual são consideradas duas categorias, que são as abordagens de combinação colaborativa e as combinações de integração.

Cada uma dessas categorias se subdivide em duas outras. Para a categoria de combina-ções colaborativas, os autores apontam as seguintes ramificacombina-ções: algoritmos de execução sequencial e algoritmos de execução paralela. No que se refere a categoria de combinações de integração, duas possibilidades são possíveis, a saber: incorporar algoritmos exatos em meta-heurísticas e incorporar meta-heurísticas em algoritmos exatos. Essa classificação pode ser resumida na Figura 6 (PUCHINGER; RAIDL, 2005).

Figura 6: Classificação de combinações exatas/meta-heurísticas. (PUCHINGER; RAIDL, 2005)

Os autores abordam diversos exemplos para cada categoria. Na categoria de execução sequencial são brevemente comentados os trabalho de (APPLEGATE et al., 1998) e (KLAU et

(36)

al., 2004), nos quais os autores utilizam técnicas semelhantes, o primeiro é aplicado ao Pro-blema do Caixeiro Viajante (PCV) e o outro ao ProPro-blema de Árvore Steiner com Coleta de Prêmios (PASCP). Ambos os trabalhos citados utilizam uma fase de pré-processamento, na qual um conjunto de diferentes soluções é encontrado por meio de múltiplas execuções de uma busca local. O conjunto de arestas dessas soluções, forma um subgrafo da instân-cia original, esse subgrafo é então resolvido de maneira ótima. Os autores defendem que essa estratégia, em geral, encontra melhores soluções que a melhor solução encontrada pelo procedimento de busca local utilizado.

Para a categoria de execução paralela os autores destacam os seguintes trabalhos (JENNINGS; SYCARA, 1998) e (DENZINGER; OFFERMANN, 1999), nos quais são propostos arquiteturas multi-agentes que cooperam de modo a resolver um problema de otimização. Para a categoria de incorporação de algoritmos exatos em meta-heurísticas são relata-dos os seguintes trabalhos (CHU; BEASLEY, 1998), (CONGRAM, 2000) e (COTTA; TROYA, 2003), nos quais são abordados técnicas de resolução de problemas relaxados, buscas exatas em vizinhanças largas e utilização de técnicas de branch-and-bound juntamente com algoritmos evolucionários, respectivamente. Referente a última categoria, incorporar meta-heurísticas em algoritmos exatos, o autor comenta brevemente alguns trabalhos, dos quais pode-se destacar (WOODRUFF, 1999) e (KOSTIKAS; FRAGAKIS, 2004), onde no pri-meiro trabalho é utilizado uma Busca Tabu para auxiliar na decisão de qual nó do grafo implícito de um branch-and-bound deve ser explorado primeiro, de modo semelhante o segundo trabalho utiliza um algoritmo Genético para auxiliar na seleção dos nós a serem explorados em um algoritmo de branch-and-bound.

2.5

Revisão da Literatura

Nessa seção serão explorados os trabalhos relacionados ao problema da AGQA-bi, destacando os algoritmos apresentados. Os trabalhos descritos compreendem abordagens (meta)heurísticas e exatas. Todavia, dado que o problema da AGQA-bi ainda não foi exaustivamente explorado, nenhum trabalho envolvendo hibridização de algoritmos exatos e meta-heurísticos foi encontrado na revisão da literatura.

(37)

2.5.1

Maia (2013)

2.5.1.1 Backtracking

Monteiro apresentou no ano de 2013, em sua tese de doutorado, o primeiro algoritmo exato, um backtracking, para o problema da AGQA-bi. O algoritmo proposto agrupa as arestas do grafo dado como entrada em três grupos I, O e L que definem as arestas que pertencem a solução corrente, as arestas que estão proibidas de entrar na solução corrente e as arestas que podem entrar na solução, respectivamente. Desse modo, realizar uma busca no grafo implícito do backtracking nada mais é do que realizar operações (inserção e remoção) sobre os grupos I, O e L. No algoritmo, cada bifurcação realizada na busca, considera a inserção de uma determinada aresta em I, configurando um caminho possível, e inserindo em O, configurando o outro caminho. As estruturas de dados utilizadas foram, lista de arestas para representar o grafo e as soluções do problema, bem como as arestas que podem estar na solução corrente, ou seja, listaL e listaI. Também é utilizado uma pilha, denominada pilhaO, para representar as arestas que estão proibidas de entrar na solução. No entanto, na pilhaO cada elemento além de armazenar uma aresta armazena também o nível do grafo implícito no qual a aresta foi inserida ou removida da solução.

O algoritmo inicializa listaL e pilhaO vazios, e todas as arestas do grafo são inseridas em listaL. Posteriormente são geradas soluções iniciais para o conjunto de soluções não-dominadas usando uma escalarização da heurística H2 apresentada por (ASSAD; XU, 1992). A cada iteração do algoritmo uma aresta de listaL é avaliada para entrar em listaI, ou seja, compor a solução parcial. Caso essa aresta não induza um ciclo ela é então removida de listaL e inserida em listaI, e em pilhaO, uma vez que ela já faz parte da solução e não pode mais fazer parte das arestas que podem entrar. A autora utiliza a estrutura de dados Union Find (CORMEN, 2009) para verificar a ocorrência de ciclo. Esse procedimento continua até que listaI tenha n − 1 arestas, quando isso ocorre a solução e então adicionada ao conjunto de soluções não-dominadas. Caso a solução gerada já for dominada por alguma outra solução, então ela é excluída e se a solução gerada dominar alguma outra solução no conjunto de soluções não-dominadas, tal solução dominada deve ser removida do conjunto.

Ademais, cada vez que uma aresta é inserida na solução parcial verifica-se se a própria solução parcial já é dominada por alguma solução no conjunto de soluções não-dominadas. Se esse for o caso, essa aresta deve ser removida da solução parcial e a busca no ramo do grafo implícito, que tem raiz na solução parcial anterior, deve ser abandonada.

(38)

O algoritmo encerra quando nenhuma nova árvore pode ser gerada, ou seja, quando listaL está vazia e todas as outras possibilidades de árvores já foram verificadas. No que segue, o backtracking proposto é apresentado abaixo no Algoritmo 1.

(39)

Algoritmo 1: Backtracking – Maia 2013 Entrada: G = (V, E)

1 início

2 Adicione todas as arestas de G à ListaL 3 Inicie sol com uma árvore vazia

4 Inicie pilhaO também vazia

5 Inicie P aretoF ront com soluções da heurística H2 escalarizada 6 end ← f also e tamSolAtual ← 0

7 enquanto !end faça

8 e ← listaL.primeiroElemento()

9 se e não existe porque ListaL está vazia então 10 se tamSolAtual = 0 então

11 end ← verdadeiro 12 senão

13 Retire de pilhaO os elementos associados com tamSolAtual 14 Reinsira tais elementos em listaL

15 tamSolAtual ← tamSolAtual − 1

16 Atualize o valor função-objetivo (parcial) de sol 17 fim

18 senão se a inserção de e em sol não gerar ciclo então 19 sol[tamSolAtual] ← e

20 Adicione (e, tamSolAtual) à pilhaO 21 Remova e de listaL

22 Atualize o valor da função-objetivo (parcial) para sol 23 se sol corresponde a uma árvore completa então 24 Atualize P aretoF ront de acordo com sol

25 senão se a função-objetivo parcial de sol já é dominada por alguma

solução em ParetoSet então

26 Não atualize tamSolAtual

27 Atualize o valor da função-objetivo (parcial) de sol de forma a

excluir e

28 senão

29 tamSolAtual ← tamSolAtual + 1 30 fim

31 senão

32 Adicione (e, tamSolAtual) a pilhaO 33 Remova e de listaL

34 fim 35 fim 36 fim

(40)

2.5.1.2 Branch-and-Bound

Em 2013 a autora de (MAIA, 2013) apresentou um algoritmo exato utilizando a técnica de branch-and-Bound para o problema da AGQA-bi. O algoritmo teve como base o algo-ritmo de backtracking, desenvolvido pela autora no mesmo trabalho, todavia adicionando podas no grafo implícito, por meio de limites superiores e inferiores, reduzindo assim o espeço de busca e informando quais ramos tem prioridade na exploração da busca.

No cenário multiobjetivo, os limites superiores e inferiores são, respectivamente, a melhor solução (conjunto de soluções não-dominadas) encontrada durante a execução do algoritmo, e uma estimativa da melhor solução que pode ser encontrada considerando as arestas que já fazem parte da solução parcial. Vale ressaltar que o limite inferior deve ser, garantidamente, melhor ou no máximo igual a real melhor solução que pode ser encontrada.

Sendo assim, no algoritmo proposto, a poda do grafo implícito ocorre quando o valor do limite inferior já é dominado pelo limite superior, em outras palavras, não é possível encontrar uma solução melhor, a partir do ramo analisado, que a melhor solução já en-contrada, por conseguinte a busca nesse ramo deve ser abandonada, fazendo com que esse ramo não seja mais explorado desnecessariamente.

O limite inferior adotado pela autora é uma adaptação do limite apresentado por (ASSAD; XU, 1992) para o problema da AGMQA. O limite que a autora propôs, é pois, um par ordenado, no qual a primeira componente diz respeito aos custos lineares das arestas, que é calculado utilizando uma adaptação do algoritmo de Kruskal para a AGM, no qual as arestas que já compõem a solução parcial são mandatórias. No que diz respeito a segunda componente, ou seja, os custos quadráticos esse valor também é calculado utilizando o algoritmo de Kruskal adaptado considerando as arestas que já fazem parte da solução. Todavia, os custos considerados pelo algoritmo para montar a árvore são dados pela seguinte Equação 2.12.

lbi =    min{cij|j ∈ Li} , se I ∩ Ai = ∅ P

j∈I(cij + cji) , outros casos

(2.12)

Como dito anteriormente o algoritmo desenvolvido é baseado no backtracking da mesma autora, sendo assim ele utiliza as mesmas estruturas para realizar a busca no grafo implícito, ou seja, nas listas listaL e listaI bem como pilhaO. Tais estruturas fun-cionam de acordo como é descrito no algoritmo backtracking. A diferença fundamental

(41)

acontece quando se insere uma nova aresta na solução parcial e a mesma não se torna completa, nesse caso o valor do limite inferior é calculado, e caso ele seja dominado pelo limite superior esse ramo também é descartado da busca. O Algoritmo 2 apresenta o branch-and-bound desenvolvido.

(42)

Algoritmo 2: Branch-and-Bound – Maia 2013 Entrada: G = (V, E)

1 início

2 Adicione todas as arestas de G à ListaL 3 Inicie sol com uma árvore vazia

4 Inicie pilhaO também vazia

5 Inicie P aretoF ront com soluções da heurística H2 escalarizada 6 end ← f also e tamSolAtual ← 0

7 lb ← CalculeLimiteInferior (sol) 8 enquanto !end faça

9 e ← Aresta de listaL com menor valor de lbi 10 se e não existe porque ListaL está vazia então 11 se tamSolAtual = 0 então

12 end ← verdadeiro 13 senão

14 Retire de pilhaO os elementos associados com tamSolAtual 15 Reinsira tais elementos em listaL

16 tamSolAtual ← tamSolAtual − 1 17 fim

18 senão se a inserção de e em sol não gerar ciclo então 19 sol[tamSolAtual] ← e

20 Adicione (e, tamSolAtual) à pilhaO 21 Remova e de listaL

22 se sol corresponde a uma árvore completa então 23 Calcule o valor da função-objetivo para sol 24 Atualize P aretoF ront de acordo com sol 25 senão

26 lb ← CalculeLimiteInferior (sol) 27 Não atualize tamSolAtual

28 se ParetoFront.Domina(lb) for falso então 29 tamSolAtual ← tamSolAtual + 1 30 fim

31 Atualize o valor da função-objetivo (parcial) de sol de forma a

excluir e

32 senão

33 tamSolAtual ← tamSolAtual + 1 34 fim

35 senão

36 Adicione (e, tamSolAtual) a pilhaO 37 Remova e de listaL

38 fim 39 fim 40 fim

(43)

2.5.1.3 Pareto Local Search

Em (MAIA, 2013), a autora apresenta um algoritmo de Busca Local de Pareto (Pareto Local Search, em inglês) (PLS) para o problema da AGQ-bi. Tal algoritmo funciona da seguinte forma. Inicialmente é gerada uma solução, sol, escolhendo cada aresta que irá compor a solução de maneira aleatória.

Uma vez que a solução inicial tenha sido construída, tal solução é incluída no conjunto de soluções não dominadas, conjSN D, e marcada como não explorada. Um procedimento iterativo é então iniciado. A cada iteração, uma solução pertencente a conjSN D é esco-lhida para ser explorada. A partir daí a vizinhança da solução escoesco-lhida é gerada como uma busca ejection chain.

Esse procedimento funciona em dois laços, o mais externo é executado um número maxT ent vezes. A cada iteração desse laço, a solução escolhida no passo anterior é sub-metida a um vetor de escalarização escolhido aleatoriamente. No que segue, no laço mais interno, a aresta com maior contribuição para o custo total da árvore é removida, então tenta-se inserir a aresta, que ainda não faz parte da solução, que tiver menor contribuição para o custo da árvore, e que obviamente, não gere um ciclo.

A nova solução é submetida ao conjSN D, caso ela não seja dominada por alguma solução então ela deve ser inserida em conjSN D, e caso ela domine alguma solução de conjSN D tal solução dominada deve ser removida.

Quando todas soluções de conjSN D estiverem marcadas como exploradas o algoritmo termina. O pseudo-código do algoritmo proposto segue abaixo (Algoritmo 3).

(44)

Algoritmo 3: Pareto Local Search – Maia 2013

1 início

2 π ← Solução gerada aleatoriamente 3 visitado (solπ) ← f also

4 listaSN D ← solπ

5 enquanto ∃u ∈ listaSN D | visitado (u) = falso faça

6 Escolher uma solução qualquer u ∈ listaSN D | visitado (u) = f also 7 para todo α ∈ V izinhos(u) faça

8 se não existe solução em listaSN D que domine α então 9 visitado(α) ← f also

listaSN D ← {listaSN D − {β ∈ listaSN D | α domina β}} ∪ α

10 fim 11 fim 12 visitado(u) ← verdadeiro 13 fim 14 fim 15 retorna listaSND 2.5.1.4 Busca Tabu

Em 2013, a autora de (MAIA, 2013) apresentou um algoritmo Busca Tabu para o problema da AGQA-bi. Tal algoritmo funciona da seguinte maneira.

A primeira etapa, a geração da população inicial, acontece por meio da heurística H1 de (ASSAD; XU, 1992), escalarizada, auxiliada por um pré-processamento.

Uma vez que as soluções iniciais tenham sido criadas, o algoritmo segue, a cada iteração, visitando uma solução em busca de algum vizinho que minimize a função objetivo do problema, sujeita a um vetor de escalarização previamente selecionado, e que não configure um movimento tabu.

O critério de aspiração utilizado é referente a não-dominância, isto é, caso a solução vi-zinha encontrada seja não-dominada com relação ao conjunto de aproximação arquivado, a mesmo deve ser inserida no conjunto, mesma que configure um movimento Tabu. O mé-todo de geração da vizinhaça adotado pela autora é semelhante ao utilizado no algoritmo PLS com ejection chain apresentado no mesmo trabalho. Segue abaixo, no Algoritmo 4, o pseudo-código da Busca Tabu proposta.

(45)

Algoritmo 4: Busca Tabu - Maia 2013

1 CriarConjuntoInicial(conj[TAMCONJ]) 2 para itr ← até NUMITER faça

3 para i ← 1 até TAMCONJ faça

4 gerarVizinhosEjectionChain(pop[i],i,itr)

5 se critério de diversficação for satisfeito então 6 conj[i] ← Solução aleatória pertence listaSND 7 fim

8 fim 9 fim

2.5.2

Pinheiro (2016)

2.5.2.1 Backtracking

O algoritmo de backtracking proposto por (PINHEIRO, 2016) é bastante simples e tem o propósito de demonstrar a aplicação da técnica de backtracking no problema da AGQA-bi. A estrutura de dados utilizada neste trabalho para representar o grafo, foi uma lista de arestas, no entanto o autor sempre as mantinha ordenadas pelo custo linear. A técnica empregada visa identificar quais combinações de arestas geram uma árvore sem, no entanto, explicitamente gerar todas as árvores possíveis para o grafo dado como entrada do algoritmo. O autor também mantém uma lista com os índices das arestas que já fazem parte da solução parcialmente construída, denominada sol, bem como uma variável, currEdge, que informa a última aresta analisada no grafo de entrada. O algoritmo então, recursivamente, verifica se a inserção da aresta indicada por currEdge induz um ciclo na solução parcial construída até então. Se a aresta não gerar um ciclo, o processo se repete até que a árvore esteja completa, ou seja, assim que a solução tenha n − 1 arestas, onde n é o número de vértices do grafo. Nesse ponto é verificado se a solução construída já é dominada por alguma outra árvore armazenada no conjunto de soluções não-dominadas, isto é, na aproximação da Fronteira de Pareto e saída do algoritmo. Se esse for o caso, esse ramo do grafo implícito é descartado da busca e acontece o processo de backtracking. Caso contrário continua-se a exploração no grafo implícito por novas soluções, considerando também a não inserção da aresta indicada por currEdge. O autor utiliza a estrutura de dados Union-Find para verificar a existência de ciclos. A seguir o Algoritmo 5 exibe o funcionamento do backtracking proposto.

(46)

Algoritmo 5: Backtracking - Pinheiro 2016 Entrada: edges, pos, sol, n, m, U nionF ind

Saída: Um conjunto de soluções não-dominadas, P aretoF ront

1 início

2 se | sol | = n-1 então

3 se sol não for dominada por alguém em ParetoFront então 4 P aretoF ront ← P aretoF ront ∪ {sol}

5 se sol domina alguém em ParetoFront então 6 exclua as solução dominadas por sol. 7 fim

8 senão 9 encerre 10 fim

11 senão

12 para i = pos até m - | sol | faça

13 se UnionFind.busca(edges[ i ].v1) != UnionFind.busca(edges[ i ].v2)

então

14 U nionF ind.uniao(edges[ i ] ) 15 sol ← sol ∪ {edges[i]}

16 Backtracking(edges, i + 1, sol, n, m, U nionF ind) 17 sol ← sol / {edges[i]}

18 fim 19 fim 20 fim 21 fim

22 retorna P aretoF ront

2.5.2.2 Branch-and-Bound

O algoritmo de branch-and-bound proposto por (PINHEIRO, 2016) tem como base o backtracking proposto no mesmo trabalho. Neste algoritmo são adicionados cálculos de limites inferiores e superiores. Tais cálculos visam estimar o custo, tanto do objetivo linear quanto do quadrático, considerando que algumas arestas são mandatórias, ou seja, as que já fazem parte da solução parcial. Esses limites servem para estimar qual a melhor solução possível a ser encontrada considerando as arestas mandatórias. Vale ressaltar que

(47)

os valores obtidos a partir do cálculo dos limites inferiores podem resultar em soluções que de fato não existem. Todavia qualquer solução viável que pode ser encontrada a partir daquele nó do grafo implícito deve necessariamente ser dominada por esses valores. No contexto multiobjetivo o limite superior é simplesmente o conjunto de soluções não-dominadas encontradas pelo algoritmo até o momento.

Os limites têm papel fundamental na redução do espaço de busca, podando o grafo implícito, indicando quais ramos não podem levar a uma solução ótima. A utilização dos limites dar-se-á da seguinte maneira. Uma vez calculado ambos os limites, os mesmos são comparados. Se o limite inferior for dominado por alguma solução do limite superior, então esse ramo não deve mais ser explorado, pois nenhuma solução com melhor valor que o limite inferior pode ser encontrada, e qualquer solução encontrada já será dominada pelo limite superior. Desse modo, quanto melhor for a estimativa do limite inferior mais podas serão realizadas e por consequência menor será o espaço de busca a ser explorado. Para calcular o limite inferior o autor usou a seguinte estratégia. Para a estimativa linear calcula-se a árvore geradora mínima ponderando o custo quadrático por zero e mantendo as arestas da solução parcial como mandatórias. Para a estimativa do custo quadrático insere-se as arestas que menos contribuem para o custo total, ponderando o custo linear por zero assim como na estimativa linear. E também como na estimativa linear, as arestas que se encontram na solução parcial são mandatórias. Ambos os cálculos consideram que a lista de arestas está inicialmente ordenada pelo custo linear. O autor faz ainda uma ressalva para quando não é possível construir uma árvore a partir do nó explorado, nesse caso o custo das estimativas terá um valor negativo. Quando essa situação acontece esse ramo também deve ser descartado da busca uma vez que não será possível obter uma solução a partir dele. O algoritmo de branch-and-bound desenvolvido segue abaixo, Algoritmo 6.

(48)

Algoritmo 6: Branch-and-Bound - Pinheiro 2016 Entrada: edges, pos, sol, n, m, U nionF ind

Saída: Um conjunto de soluções não-dominadas, P aretoF ront

1 início

2 se | sol | = n-1 então

3 se sol não for dominada por alguém em ParetoFront então 4 P aretoF ront ← P aretoF ront ∪ {sol}

5 se sol domina alguém em ParetoFront então 6 exclua as solução dominadas por sol. 7 fim

8 senão 9 encerre 10 fim

11 senão

12 para i = pos até m - | sol | faça

13 se UnionFind.busca(edges[ i ].v1) != UnionFind.busca(edges[ i ].v2)

então

14 U nionF ind.uniao(edges[ i ] ) 15 sol ← sol ∪ {edges[i]}

16 limite ← {estimativaLinear(), estimativaQuadratica} 17 se limite não for diminado por alguém de ParetoFront então 18 Branch-and-Bound(edges, i + 1, sol, n, m, U nionF ind) 19 fim

20 sol ← sol / {edges[i]} 21 fim

22 fim 23 fim 24 fim

25 retorna P aretoF ront

2.5.2.3 Pareto Local Search

O algoritmo de Pareto Local Search (PLS) proposto por (PINHEIRO, 2016) é uma variante do apresentado por (MAIA, 2013) diferindo essencialmente na estrutura de vi-zinhança utilizada e no método de inicialização do algoritmo, ou seja, na geração das

(49)

soluções não-dominadas iniciais. No começo, gera-se apenas uma solução da seguinte ma-neira. Embaralha-se as arestas do grafo dado como entrada, representado neste trabalho como uma lista de arestas, a partir daí utiliza-se uma estratégia semelhante ao algoritmo de Kruskal (KRUSKAL, 1956), selecionando arestas que não induzem um ciclo até que a solução esteja completa. Essa solução é então marcada como não explorada e incluída no conjunto de soluções não-dominadas.

O processo seguinte constitui-se em sistematicamente verificar cada solução não ex-plorada do conjunto de aproximação da Fronteira de Pareto. Sendo assim, uma solução é selecionada e sua vizinhança é então gerada. No que segue, a estrutura de vizinhança adotada consiste em todas as árvores formadas pela inserção de uma aresta que não faz parte da solução corrente e pela retirada de cada aresta que faz parte do ciclo gerado pela inclusão da aresta selecionada.

Em seguida, de posse da vizinhança da solução selecionada, cada solução da vizinhança que é não-dominada com relação a solução selecionada se torna candidata a fazer parte do conjunto de soluções não-dominadas. É verificado então, para cada solução da vizinhança, se a mesma já é dominada por alguma solução do conjunto de soluções não-dominadas, se isso de fato for o caso então essa solução é descartada. Caso contrário, remove-se do conjunto de soluções não-dominadas todas as soluções que porventura sejam dominadas pela solução avaliada e por fim adiciona-se a solução candidata ao conjunto. Ao final desse passo a solução escolhida para gerar a vizinhança é marcada como explorada. O algoritmo encerra quando todas as soluções forem exploradas. Abaixo o Algoritmo 7 resume o procedimento proposto.

Ainda foram propostas algumas variações da PLS no mesmo trabalho de (PINHEIRO, 2016) que se diferenciam fundamentalmente no método de geração das soluções não-dominadas iniciais. Os métodos utilizados foram: heurística H2 de (ASSAD; XU, 1992) com tamanho do conjunto de soluções iniciais fixo e heurística H2 com tamanho aleatório do conjunto. Foi também proposta uma variante na qual a solução a ser explorada é escolhida de forma aleatória. Foi apresentado também um algoritmo que o autor denominou de PLS-GRASP no qual difere na geração da vizinhança utilizada nos demais algoritmos apresentados da seguinte maneira: dado que uma solução foi escolhida para ser explorada, um subconjunto das arestas que não fazem parte da solução visitada é tomado e para cada aresta desse subconjunto é aplicada a mesma estratégia já descrita para os demais algoritmos.

(50)

Algoritmo 7: PLS - Pinheiro 2016 Entrada: edges, n, m 1 ConjuntoDisjunto tree; 2 Conjunto Fronteira; 3 Solução atual; 4 embaralhar(edges);

5 para i variando de 0 até m-1 faça

6 se tree.find(edges[i].v1)!= tree.find(edges[i].v2 então 7 tree.uniao(edges[i]); 8 atual.adicionar(edges[i]); 9 fim 10 fim 11 atual.visitado = falso; 12 fronteira.adicionar(atual);

13 enquanto Não houver soluções visitadas na fronteira faça

14 Solução sol = solução não visitada em fronteira; para i de 0 até m-1 faça 15 se edges[i] não faz parte de sol então

16 vectorharestai ars ← arestasNoCaminho(edges[i].v1, edges[i].v2); 17 para j de 0 até ars.tamanho()-1 faça

18 Solução aux ← sol ars[j] ∪ edges[i];

19 se aux não for dominada por outra solução em fronteira então 20 aux.visitada = falso;

21 fronteira.adicionar(aux);

22 remover soluções dominadas por aux de fronteira; 23 fim

24 fim 25 fim

26 se ainda fizer parte da fronteira então 27 sol.visitada = verdadeiro;

28 fim 29 fim

(51)

2.5.2.4 GRASP

Na sua dissertação de mestrado (PINHEIRO, 2016) descreve um algoritmo Greedy Ran-domized Adaptive Search Procedure (GRASP) para o problema da AGQA-bi. O algoritmo descrito é composto de duas fases uma de construção da solução, a partir de um procedi-mento semi-guloso adaptativo, e uma outra fase de busca local.

O procedimento de construção da solução funciona como se segue. Primeiramente ordenam-se as arestas do grafo dado como entrada de acordo com o custo linear de cada aresta. Em seguida um rank é atribuído a cada aresta, que nada mais é do que a sua posição na lista arestas ordenadas, ou seja, a aresta com menor custo linear associado terá rank 1, a que tiver segundo menor custo receberá o rank 2 e assim por diante.

Posteriormente as arestas são novamente ordenadas, todavia considerando o custo quadrático dessa vez. Um esquema de ranking é aplicado de maneira análoga ao passo anterior do algoritmo. No que segue, o rank final de cada aresta será constituído pela média dos outros dois ranks. No passo final desse procedimento uma nova ordenação é realizada sobre as arestas, agora, porém, considerando o rank final de cada aresta. Uma sublista de tamanho aleatório é tomada como a lista restrita de possíveis arestas que deveram compor a solução que está sendo construída. As arestas da lista restrita são sorteadas até que se tenha uma solução completa.

Na segunda fase do algoritmo uma busca local é realizada utilizando uma variação do PLS com inicialização por meio da heurística H2. O procedimento segue abaixo no Algoritmo 11.

Referências

Documentos relacionados

Os documentos legais de cobrança deverão conter as especificações e as quantidades dos itens fornecidos, de acordo com a solicitação do BRDE formalizada através

Nessa situação temos claramente a relação de tecnovívio apresentado por Dubatti (2012) operando, visto que nessa experiência ambos os atores tra- çam um diálogo que não se dá

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

O 6º ano do Mestrado Integrado em Medicina (MIM) é um estágio profissionalizante (EP) que inclui os estágios parcelares de Medicina Interna, Cirurgia Geral,

Realizar a manipulação, o armazenamento e o processamento dessa massa enorme de dados utilizando os bancos de dados relacionais se mostrou ineficiente, pois o

Para devolver quantidade óssea na região posterior de maxila desenvolveu-se a técnica de eleva- ção do assoalho do seio maxilar, este procedimento envolve a colocação de

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento

To demonstrate that SeLFIES can cater to even the lowest income and least financially trained individuals in Brazil, consider the following SeLFIES design as first articulated