• Nenhum resultado encontrado

Heuristics for Irregular Shape Cutting Problems

N/A
N/A
Protected

Academic year: 2021

Share "Heuristics for Irregular Shape Cutting Problems"

Copied!
80
0
0

Texto

(1)

F

ACULDADE DE

E

NGENHARIA DA

U

NIVERSIDADE DO

P

ORTO

Heurísticas para problemas de corte de

formas irregulares

Duarte

Nuno

de

Azevedo

Fonseca

Mestrado Integrado em Engenharia Eletrotécnica e de Computadores Orientador: Pedro Filipe de Monteiro Rocha

(2)

c

(3)

Resumo

Os problemas de corte e empacotamento são encontrados em várias indústrias, como a indús-tria têxtil, metalúrgica, entre outras. Esta dissertação foca-se num dos problemas englobados por este conjunto, os problemas de nesting. De todos os problemas de corte e empacotamento, os problemas de nesting diferenciam-se dos restantes por permitirem no seu processo a inclusão de peças com formas irregulares. O valor neste tipo de resolução está normalmente na minimização do espaço ocupado pelas peças, ou no tempo computacional gasto. A abordagem a este problema na vertente geométrica tem uma grande influência no desempenho da sua resolução. A represen-tação das peças a serem incluídas no padrão de corte poderá ser feita em represenrepresen-tação de grelha, representação poligonal ou em círculos, com cada uma das representações a ter as suas vantagens e desvantagens. Um dos problemas geométricos que advém da compactação das peças reside em garantir que as peças são completamente incluídas dentro do padrão de corte, e que não existem sobreposições entre as peças. Partindo de uma forma de representação existem várias metodo-logias para resolver o problema. A bibliografia disponível define normalmente dois aspetos de resolução, por um lado a componente geométrica (lidar com a geometria das peças) e a compo-nente combinatória (lidar com o sequenciamento das peças) a serem colocadas no "layout". Pela leitura da bibliografia disponível acerca da componente combinatória, decidiu-se adotar a divisão em dois métodos principais: algoritmos construtivos, que criam uma solução final definindo o me-lhor posicionamento peça a peça, ou algoritmos de meme-lhoria, que criam um primeiro "layout", que pode ser criado através de uma heurística, como por exemplo preencher aleatoriamente o padrão de corte com as peças, e depois melhoram esta solução através de heurísticas como a pesquisa local.

Um dos objetivos deste projeto foi utilizar uma representação das peças com elementos da representação em grelha e da representação poligonal. Também no método de colocação de peças foi introduzida uma variação da abordagem mais comum, em que em vez de utilizar apenas uma grelha para introduzir as peças, se utilizava uma grelha para cada tipo de peça. Daí tentou perceber-se perceber-se este método atingia bons resultados, comparando a metodologia com a abordagem mais comum.

(4)
(5)

Abstract

Cutting and packing problems are found in many industries, such as the textile, metal, among others. On this dissertation, we focused on one of the many problems encompassed by it, the nesting problems. One of the main differentiating factors of nesting problems among the cutting and packing problems is the fact of using irregular shapes, which adds on the geometric and combinatory challenges. Solving these problems aims to minimize the space taken by the shapes, or the computational time spent. The approach taken on these problems regarding geometry has a great impact on the solver’s computational time. Several shape representations are used on the layout such as grid representation, polygonal representation, or circle covering, each with its advantages and drawbacks. One of the geometric problems due to compacting shapes within a layout, is to ensure that the shapes are completely inside it, and no overlapping between shapes occurs. The approach taken to solve the nesting problem is intrinsically dependent of the chosen geometric representation. Once the shape representation is chosen, there are many known methods to solve the nesting problem. Usually, the literature divides into two different aspects, on one side the geometrical component (dealing with the geometry of the pieces) and the combinatorial component (dealing with the sequencing of pieces to be placed on the layout). After reading the available literature regarding the combinatorial component, the approach was divided into two main methods: constructive algorithms, where the final solution was obtained defining the best positioning piece by piece; and improvement algorithms, which create a first layout with a random inserting algorithm, that is improved using, among other methods, local search until it reaches the best solution possible.

One of the main objectives of this dissertation was using a shape representation that combined elements from grid and polygonal representation. It was introduced a piece positioning method that was a variation of the most common approach, whereas instead of using a single grid to insert the pieces, it was created a grid for each piece type. Afterwards this method was tested, comparing its results with the most common approach.

(6)
(7)

Agradecimentos

Este trabalho só se tornou possível graças à colaboração direta ou indireta de algumas pessoas a quem quero agradecer. Ao professor Pedro Rocha, pela orientação e coordenação desta disser-tação, pelas suas sugestões construtivas durante o trabalho prático, espírito crítico e rigor durante as revisões do texto, incentivo e disponibilidade demonstrada em todos os momentos até á sua concretização. Aos meus amigos que sempre me ajudaram nos momentos de maior aperto, com um apoio que não poderia ter com mais ninguém. Quero também deixar uma palavra de apreço á minha família, que esteve sempre comigo até ao último minuto do trabalho, em especial aos meus pais, e ás minhas irmãs.

Duarte Fonseca

(8)
(9)

“There is nothing noble in being superior to your fellow man. True nobility is being superior to your former self.”

Ernest Hemingway

(10)
(11)

Conteúdo

1 Introdução 1

1.1 O problema de Nesting . . . 2

1.2 Objectivos . . . 3

1.3 Estrutura da Dissertação . . . 3

2 Revisão Bibliográfica: Problemas de Nesting 5 2.1 Problemas de Corte e Empacotamento . . . 5

2.1.1 Nesting . . . 6

2.2 Componente Geométrica . . . 7

2.2.1 Representação em Grelha . . . 8

2.2.2 Representação Poligonal . . . 9

2.2.3 Representação em Cobertura por Círculos . . . 10

2.2.4 Representação função-phi . . . 11

2.2.5 No-Fit Polygon . . . 12

2.3 Componente Combinatória . . . 18

2.3.1 Modelos Matemáticos . . . 18

2.3.2 Heurísticas para posicionamento em superfícies irregulares . . . 21

2.3.3 Algoritmos Construtivos . . . 21 2.3.4 Algoritmos de Melhoramento . . . 25 2.4 Resumo . . . 29 3 Abordagem 31 3.1 Estrutura da Abordagem . . . 31 3.2 Abordagem Base . . . 31

3.2.1 Elementos Estruturais da Abordagem . . . 32

3.2.2 Inner-fit Polygon e grelha de posicionamento . . . 35

3.2.3 Adição de peças à grelha e criação da função de procura de nova posição de peça . . . 37

3.2.4 Sequência de peças e rotações . . . 38

3.2.5 Estrutura de armazenamento de NFP’s . . . 39

3.2.6 Método de criação de layout com várias grelhas . . . 40

3.2.7 Definição de parâmetros e construção de layouts parciais . . . 42

3.2.8 Ferramenta de visualização geométrica e output de solução . . . 45

4 Experiências Computacionais 47 4.1 Características do Ambiente de Desenvolvimento . . . 47

4.2 Características das Instâncias Utilizadas . . . 47

4.3 Testes Realizados, Desempenho e Análise de Resultados . . . 49

(12)

x CONTEÚDO

4.3.1 Qualidade da Grelha . . . 49

4.3.2 Qualidade da solução com o aumento de número de peças . . . 50

4.3.3 Análise do impacto da nova abordagem vs clássica . . . 51

5 Conclusões e Trabalho Futuro 55

5.1 Satisfação dos Objetivos . . . 56

5.2 Trabalho Futuro . . . 56

(13)

Lista de Figuras

1.1 Exemplo de padrão de corte . . . 1

2.1 Tipos de problemas C&P básicos (adaptado de Wäscher [1]) . . . 6

2.2 Exemplo de padrão de corte de vestuário (adaptado de Bennel e Oliveira [2]) . . . 7

2.3 A representação em grelha (adaptado de Bennel e Oliveira [2]) . . . 8

2.4 A função-D (adaptado de Bennel e Oliveira [2]) . . . 9

2.5 Cobertura por círculos de um retângulo (adaptado de Melissen e Schuur [3]) . . . 10

2.6 Cobertura segundo os limites de um polígono (adaptado de Zhang e Zhang [4] ) . 11 2.7 Deteção de posicionamento de peças pela função-phi (adaptado de Bennel e Oli-veira [2]) . . . 11

2.8 Exemplo de um No-Fit Polygon (NFPAB) (adaptado de Junior et al [5]) . . . 12

2.9 Sliding Algorithm de Whitwell [6] (adaptado de Bennel e Oliveira [2]) . . . 13

2.10 Slope Diagram (adaptado de Bennel[7]) . . . 14

2.11 Slope Diagram (adaptado de Bennel[7]) . . . 14

2.12 Representação de Ghosh para polígonos não-convexos (adaptado de Bennel[7]) . 15 2.13 Representação de Decomposição Convexa (adaptado de Bennel e Oliveira [2]) . . 16

2.14 IFR da peça B (adaptado de Bennel e Oliveira [2]) . . . 17

2.15 Limites de posicionamento entre duas peças (adaptado de Bennel e Oliveira [8]) . 19 2.16 Exemplo de funcionamento do modelo de compactação (adaptado de Gomes e Oliveira [9]) . . . 19

2.17 Exemplo de funcionamento do modelo de separação (adaptado de Gomes e Oli-veira [9]) . . . 20

2.18 Representação de uma superfície de corte adaptado de [10]) . . . 21

2.19 Iteração de seleção dinâmica (adaptado de Oliveira et al. [11]) . . . 23

2.20 Regra de Bottom-left (adaptado de Bennel e Oliveira [2]) . . . 24

2.21 Posições admissíveis considerando os NFP e IFR (adaptado de Gomes [12]) . . . 24

2.22 Alterações de Sequência (adaptado de Bennel e Oliveira [2]) . . . 26

2.23 Método jostle (adaptado de Bennel e Oliveira [2]) . . . 26

2.24 Posicionamentos de eliminação de sobreposições (adaptado de Bennel e Oliveira [2]) . . . 28

2.25 Resolução de sobreposições (adaptado de Bennel e Oliveira [2]) . . . 28

3.1 Exemplo de segmento . . . 32

3.2 Exemplo de polígono . . . 32

3.3 Exemplo de um Form . . . 33

3.4 Estrutura de ficheiro contendo a descrição da board e das peças . . . 33

3.5 Representação das três peças criadas . . . 34

3.6 Representação da board . . . 34

(14)

xii LISTA DE FIGURAS

3.7 Bounding Boxdo polígono a cinzento . . . 36

3.8 Criação do IFP . . . 37

3.9 Representação do layout em grelha . . . 38

3.10 Representação do layout em grelha com IFP . . . 39

3.11 Demonstração da resolução . . . 40

3.12 Adição de peça à grelha com bounding-box . . . 40

3.13 Modelação da criação de um layout . . . 41

3.14 Demonstração gráfica da rotação da peça verde em a) e a translação para o pri-meiro quadrante b) . . . 42

3.15 Layout de uma grelha . . . 43

3.16 Atualização de múltiplos layouts na adição da primeira peça . . . 44

3.17 Atualização de múltiplos layouts na adição da segunda peça . . . 44

3.18 Exemplo de um layout . . . 45

4.1 Exemplo de layout criado para o teste de qualidade da grelha . . . 48

4.2 Exemplo de layout criado para o teste de aumento de peças . . . 49

4.3 Gráfico de relação entre resolução da grelha e tempo de execução . . . 49

4.4 Gráfico de relação entre resolução da grelha e o comprimento do layout . . . 51

4.5 Gráfico do tempo de execução do programa com conjuntos de peças diferentes, com resolução 1:1 . . . 52

4.6 Gráficos do tempo de execução com o número de peças colocadas na abordagem "clássica"em a) e da eficiente em b) . . . 53

4.7 Gráficos do tempo de execução com o número de peças colocadas na em compa-ração em a) e as retas de tendência em b) . . . 53

(15)

Lista de Tabelas

3.1 NFP entre os polígonos A e B . . . 35

4.1 Características de cada teste efetuado . . . 48

4.2 Valores extraídos dos testes à resolução da grelha . . . 50

4.3 Valores extraídos dos testes ao tamanho do layout . . . 51

(16)
(17)

Abreviaturas e Símbolos

C&P Cutting & Packing GPU Graphics processing unit CPU Central processing unit NFP No-fit Polygon

IFP Inner-fit Polygon IFR Inner-fit Rectangle

MIP Modelos de Programação Inteira CLP Constraint Logic Programming

(18)
(19)

Capítulo 1

Introdução

O problema abordado nesta dissertação inclui-se num grupo maior de problemas, de corte e empacotamento (C&P). Estes têm em comum o facto de ser necessário colocar objetos de pe-quena dimensão (peças) em objetos de maior dimensão (padrão de corte). O grande interesse da resolução deste tipo de problemas reside nos aspetos geométrico e combinatório do encaixe de peças num espaço. A resolução pode ser feita tendo como objetivo, como é definido em Wäscher et al. [1], a maximização do número de peças empacotadas, ou, por outro lado, minimização do desperdício de espaço não utilizado. Para além desta diferenciação, existem outros parâmetros relevantes, inicialmente enumerados por Dyckhoff [13] na sua tipologia, e depois reestruturados e atualizados por Wäscher et al. [1]. Estes catalogam tipos de problemas de corte e empacotamento segundo o número de dimensões das peças, heterogeneidade das peças e geometrias das peças, que serão exploradas na revisão bibliográfica.

Figura 1.1: Exemplo de padrão de corte

Esta tipologia oferece alguma facilidade em catalogar o problema proposto, assim como serve como ponto de partida para qualquer pesquisa nesta área de investigação. Usando a tipologia de Wäscher et al. é possível pesquisar soluções já implementadas para problemas semelhantes e a partir destes perceber de que forma podem ser eficazes na resolução do problema em questão. O facto da tipologia trabalhar no sentido de estabelecer definições e notações únicas evita algum tipo

(20)

2 Introdução

de confusão desnecessária na pesquisa inicial da bibliografia disponível. É também importante porque permite, com o decorrer da utilização da tipologia, com a experiência documentada de-terminar a melhor aptidão de alguns métodos para certos tipos de problemas. Isto permite usar a tipologia para definir o tipo de problema, e quais as melhores metodologias para abordar os vários aspetos do problema.

Nesta dissertação apresenta-se o conceito de Nesting, que é descrito na tipologia de Wäscher et al. [1] como um Open Dimension Problem, que identifica o facto de ser um problema em que vários pequenos objetos (peças) são alojados num ou mais objetos maiores. Dentro deste grupo, os problemas de Nesting são catalogados como Irregular Strip Packing Problem, pelo facto de serem problemas a duas dimensões, onde se tentam inserir polígonos irregulares dentro de contentores. Neste caso, a strip é o contentor com largura constante e comprimento variável.

1.1

O problema de Nesting

A aplicação deste problema na situação real centra-se no corte das peças de uma certa ma-téria prima, como exemplo prático na indústria têxtil da utilização um método de resolução de um problema de Nesting pode ser observado em [12], onde usam um corte de padrão de calças. Devido às formas irregulares das peças, será um desafio implementar uma modelação geométrica computacionalmente eficaz. A representação mais aceite para este tipo de peças é a representação poligonal devido à sua eficácia a representar as peças com exatidão quando comparando com os outros métodos, para além da sua flexibilidade em complementar com métodos de pesquisa de solução. Sendo que estas peças podem ser sujeitas a rotações para facilitar o seu enquadramento, muitas vezes são limitadas pelo tipo de material a ser cortado (tecidos tendem a limitar os objetos a rotações de 180 graus), ou por necessidade de duas peças serem cortadas em posições próximas. A modelação deste problema centra-se na dificuldade de responder à seguinte pergunta:

“Dadas as posições de duas peças no padrão de corte estas sobrepõem-se, estão em contacto ou estão separadas?” [2, chap. Problem definition]

Neste contexto a grande parte das modelações usam como base o método geométrico de No-Fit Polygon(NFP). Isto deve-se à simplicidade e eficácia de detetar posicionamento entre duas peças. O NFP cria o conjunto de posicionamentos na qual uma peça se encontra em sobreposição sobre outra, o que garante que se essa mesma peça estiver fora desse conjunto de pontos não se sobrepõe à outra peça. Sendo que os problemas deste tipo são NP-completos [2] , isto implica, na maior parte dos casos, a utilização de heurísticas para a aproximação da solução ótima. Estas heurísticas são normalmente de dois tipos: construtiva, que cria uma solução de raiz para o problema; ou melhoramento, em que uma heurística cria uma solução inicial e a partir desta são feitas melhorias para chegar a uma solução final.

(21)

1.2 Objectivos 3

1.2

Objectivos

Nos problemas de Nesting, há um grande foco na otimização do tempo de execução, assim como o gasto computacional da criação de um layout admissível. Para esta dissertação recorreu-se a uma estratégia semelhante à documentada em [14], ou seja, utilizando a representação poligonal para guardar a informação de cada peça, e representação em grelha para as introduzir no layout. No entanto, estas são processadas pelo CPU ao invés do que é utilizado na tese anteriormente referida, que recorre ao GPU para este efeito. A solução é criada com base em representação das peças, com rotações discretas. É utilizado um conjunto de grelhas onde é pesquisada a melhor colocação da peça segundo o tipo de posicionamento escolhido. A ordem da colocação das peças é ditada pela sequência definida no estado inicial do programa. Este método pretende possibilitar a inclusão de peças não convexas, que é feito utilizando um processo de decomposição em peças convexas. O ponto em que esta dissertação diverge dos métodos utilizados nos artigos estudados é na utilização método de colocação das peças no layout diferente, em que para cada tipo de peça é utilizada uma grelha para a introduzir. A abordagem é testada para inferir a sua eficiência alterando as características das grelhas e das peças, usando como comparação a abordagem com o método habitual de utilizar apenas uma grelha para introduzir todas as peças.

1.3

Estrutura da Dissertação

A estrutura da dissertação inclui primeiramente uma introdução, onde é indicada uma pers-petiva global dos problemas de Corte e Empacotamento, detalhando o caso em estudo, com uma breve introdução aos problemas de Nesting. De seguida o Capítulo2apresenta o Estado da Arte. Neste é apresentada uma descrição do que são os problemas de Corte e Empacotamento, assim como é dada uma explicação da pertinência dos problemas de Nesting, a sua aplicação prática (secção2.1). Na secção2.2fala-se da componente geométrica do problema de Nesting, as prin-cipais representações geométricas das peças, as vantagens e desvantagens de cada. Nesta secção existe um foco na representação poligonal e consequente criação de No-Fit Polygon’s, ferramen-tas derivadas do método, devido à sua importância nesta dissertação. De seguida na secção2.3é considerada a componente combinatória dos problemas de Nesting, com a introdução dos modelos matemáticos e as suas propriedades, mas também das heurísticas utilizadas para criação de algorit-mos construtivos, criando uma solução segundo os parâmetros iniciais, ou algoritalgorit-mos de melhora-mento, que pretendem melhorar uma solução inicial. No Capítulo3é explicada a implementação do programa de criação de layouts, em que se descreve: os elementos base da representação de polígonos (em3.2.2e3.2.1); a criação de ferramentas de ajuda à colocação das peças no layout (em3.2.3e3.2.4); é detalhada a criação e armazenamento de NFPs(em3.2.6e3.2.5) e métodos de melhoria de layouts já criados (em 3.2.7). No Capítulo4 são feitos testes de validação das funcionalidades criadas, começando por ditar as características do ambiente de desenvolvimento na secção4.1, definir as características de cada um dos testes criados na secção4.2, detalhar esses mesmos testes e extrair conclusões desses testes na secção4.3. No Capítulo5é feito um balanço

(22)

4 Introdução

do trabalho que foi realizado, pesando na secção5.1se tudo o que foi planeado tinha sido atingido, referindo na secção5.2quais poderiam ser os próximos passos no desenvolvimento deste projeto.

(23)

Capítulo 2

Revisão Bibliográfica: Problemas de

Nesting

Para o desenvolvimento desta dissertação exploraram-se os principais conceitos relacionados com Nesting, dando inicialmente um contexto dentro do conjunto maior de problemas de corte e empacotamento, e de seguida explorando as vertentes geométricas e combinatórias dos problemas de Nesting. Segundo a componente geométrica fala-se dos principais tipos de representação das peças utilizados para resolver problemas de Nesting, como a representação em grelha, poligonal, entre outras, entrando em detalhe especificamente numa ferramenta essencial para algumas destas representações, o No-fit Polygon. Do mesmo modo, para a componente combinatória exploraram-se os diferentes métodos de criação de padrões de corte, falando de ferramentas utilizadas neste contexto, como modelos matemáticos, e as várias heurísticas de colocação de peças. Também se abordaram mecanismos de criação de padrões de corte com uma abordagem de melhor posicio-namento peça a peça (algoritmos construtivos), assim como as técnicas de procura de melhores resultados em padrões de corte criados (algoritmos de melhoramento).

2.1

Problemas de Corte e Empacotamento

Os problemas de Corte e Empacotamento são um conjunto de casos que frequentemente se encontram na área da indústria, em que é essencial encontrar soluções de minimização de custos e máxima utilização de recursos. Neste contexto estes problemas podem ser generalizados para o objetivo de incluir o maior número de pequenos objetos dentro de um objeto maior, sem so-breposições e otimizando o espaço. Um grande avanço foi feito quando Dyckhoff [13], em 1990 introduziu uma tipologia de catalogação das variações deste problema. No entanto, como Wäscher [1] indicou, esta tipologia era insuficiente. Não só de um ponto de vista de acessibilidade (alguns dos seus conceitos usavam nomenclaturas alemãs) mas também porque com a evolução das tec-nologias introduziu novos problemas que precisavam de ser catalogados. A tipologia de Wäscher definiu desta forma os parâmetros diferenciadores [1], como:

(24)

6 Revisão Bibliográfica: Problemas de Nesting

Figura 2.1: Tipos de problemas C&P básicos (adaptado de Wäscher [1])

• Objetivo — minimização (minimizar o espaço por utilizar), maximização (incluir o máximo de objetos pequenos no objeto maior);

• Dimensionalidade — 1D (Corte de troncos de madeira), 2D (corte de formas em tecidos), 3D (Carregamento de um contentor), nD (n>3);

• Geometria — que podem ser regulares (os objetos são triângulos, quadrados, cilindros, caixas) ou irregulares (contêm buracos, concavidades);

• Heterogeneidade — idênticas (as peças são tratadas na resolução do problema como ha-vendo apenas um tipo de objetos), minimamente heterogéneas (as peças são divididas por tipos de objetos), altamente heterogéneas (cada peça introduzida é diferente das restantes). Esta tipologia contém uma identificação dos problemas mais básicos, mas também indica vá-rios casos mais específicos, com pequenas alterações nas características do problema assinaláveis.

2.1.1 Nesting

Os problemas de Nesting inserem-se na tipologia de Wäscher, analisando a Figura2.1, em Open Dimension Problemspois são o caso em que várias pequenas peças irregulares de dimen-sões variáveis são inseridas no padrão de corte, de dimendimen-sões fixas. Para além desta configuração, é essencial que as peças não se sobreponham, e deve garantir-se que existe o mínimo de espaço por ocupar (minimização de desperdício). As aplicações práticas dos problemas de Nesting podem

(25)

2.2 Componente Geométrica 7

Figura 2.2: Exemplo de padrão de corte de vestuário (adaptado de Bennel e Oliveira [2])

ser observadas na manufatura de vestuário, corte de metal e criação de mobiliário. Nestas indús-trias evitar desperdícios é uma das formas de diminuir os custos de produção dos seus diferentes produtos. O problema de Nesting e a sua resolução ganham um propósito de atingir esses valores mínimos de desperdício.

Na abordagem dos problemas de Nesting é habitual falar da componente geométrica e combi-natória. Começando pela geometria, como as peças são irregulares, existe a possibilidade de estas terem buracos. Portanto é importante que na resolução destes problemas de Nesting o algoritmo seja capaz de preencher os buracos com peças de menores dimensões. Uma possível limitação imposta pela indústria do vestuário, causadas pelas características dos tecidos, são as orientações das peças, que estão limitadas a rotações de 180 graus [15]. Na tentativa de criar um layout com o mínimo de espaço por utilizar, é frequente criar situações de sobreposição, que o método de reso-lução tem de ser capaz de evitar, ou então resolver. Para além de ter estas considerações em conta, é importante que o método geométrico o faça no menor tempo possível. No entanto, reduzindo o detalhe da representação geométrica de modo a diminuir o tempo de execução, resulta numa re-presentação menos fidedigna dos objetos. A componente combinatória influencia principalmente a eficiência computacional da resolução, e a capacidade de otimizar o melhor possível o espaço ocupado pelas peças no padrão de corte.

2.2

Componente Geométrica

Nos problemas de Nesting são representados, com maior ou menor detalhe, polígonos irre-gulares. Bennel e Oliveira [2] indicam que apenas faz sentido falar de polígonos dentro deste problema se estes se tratarem de problemas não triviais na vertente geométrica, o que não é o caso com formas como o círculo, em que a deteção de sobreposições podia ser efetuada comparando o centro e raio de cada círculo. Também é pouco interessante porque as formas a representar na in-dústria muitas vezes são bem mais complexas e é importante ter um método que as represente com alguma exatidão. Estes polígonos podem conter ou não buracos, o que aumenta a complexidade da resolução geométrica. Também as concavidades são problemáticas em alguns dos mais utiliza-dos métoutiliza-dos de resolução geométrica. A representação geométrica é essencial para a criação de

(26)

8 Revisão Bibliográfica: Problemas de Nesting

Figura 2.3: A representação em grelha (adaptado de Bennel e Oliveira [2])

um método eficiente computacionalmente. Tendo em conta que uma representação fidedigna das peças influencia a mencionada eficiência, mas também aumenta a complexidade da abordagem, é preciso encontrar um equilíbrio entre estas componentes. Para esse efeito, nesta secção vão descrever-se as principais formas de representação de peças, e as suas características.

2.2.1 Representação em Grelha

A representação em grelha divide o padrão de corte em pontos discretos de posicionamento. Cada ponto identifica a presença ou ausência de uma peça, com métodos diferentes, que ajudam na identificação de posicionamentos admissíveis.

Oliveira e Ferreira [16] criaram um esquema de codificação simples de 0 para a ausência de peça e 1 para a presença da mesma, como se pode ver na Figura2.3. O posicionamento da peça é representado numa matriz que compõe o padrão de corte. A deteção de sobreposições é detetada por valores na matriz superiores a 1.

Burke et al [17] apresentou na sua solução uma variação da representação em grelha, que era constituída por linhas contínuas segundo o eixo dos Y, em vez de posições discretas como é habi-tual na representação em grelha. Esta característica permitiu a possibilidades de posicionamento infinitas segundo o eixo dos Y.

Segenreich e Braga [18] utilizou um modelo de representação semelhante, mas com distinção entre interior e exterior, com o valor 1 para a fronteira e 3 para o interior. Isto permitia identificar contacto entre peças, com o valor 2 a indica-lo, e superior ou igual a 4 identificava sobreposição.

Babu e Babu [19] utiliza um conceito de certa forma inverso aos dois apresentados anterior-mente, pois o interior da peça é representado por zeros. No entanto, o exterior é representado por 1 nas posições mais à direita, ou que têm à sua direita uma posição a zero. O valor aumenta a cada shift para a esquerda. Este método serve para ter uma perceção de quantas posições são pre-ciso movimentar para a direita para encontrar um posicionamento admissível. Isto permite passar diretamente para a posição admissível, mas acrescenta carga computacional.

Toledo et al [20] comentou a facilidade em trabalhar com peças não-convexas, para além do facto de aumentar o número de variáveis binárias não ser influenciado pelo número de peças, mas sim pelo número de formas diferentes.

As vantagens deste tipo de representação são a sua simplicidade e rapidez de deteção de so-breposições, e para corrigir estas ou calcular a distância entre peças é uma questão de contagem de

(27)

2.2 Componente Geométrica 9

pontos. Também os polígonos não-convexos não causam algum problema na sua representação. No entanto, estes métodos representam as peças com pouco detalhe, e o aumento deste detalhe implica um grande aumento na memória utilizada pelo processo.

2.2.2 Representação Poligonal

Segundo a bibliografia existente, é possível inferir que a representação por um polígono é o método mais comum de representação das peças irregulares. Este método de representação aposta na representação exata das peças, criando um polígono igual à peça. As arestas curvas são aproximadas por retas, que aumentam em quantidade consoante a necessidade de diminuir o erro de aproximação. Aqui apresentam-se duas ferramentas utilizadas na representação poligonal, normalmente como complementos ao No-Fit Polygon, que será exposto mais à frente.

Direct Trigonometry Um método de deteção de sobreposições entre dois polígonos, indi-cado por Bennel e Oliveira [2], consistia em criar uma caixa que englobasse a totalidade de cada polígono, e se houvesse sobreposição entre as caixas, seria possível identificar que havia sobre-posição entre os polígonos. Este método trazia a vantagem de proporcionar uma deteção rápida da sobreposição entre peças. Uma variação deste método é a utilização de caixas englobando as arestas, de onde se retiram as mesmas conclusões. Nesta representação de polígonos o número de vértices representados é proporcional à quantidade de informação utilizada. Estes testes de trigo-nometria necessitam de ser complementados com outro método para detetar a admissibilidade e a qualidade da solução criada.

Função-D Proposta por Konopaseck, a função-D é uma ferramenta de identificação da in-terseção entre uma aresta e um ponto. Esta foi adaptada por Mahadevan [21] para ser utilizada também para a interseção entre retas. Considerando a Figura2.4, um ponto P e uma aresta AB, DABPé a distância entre estes, e é maior que zero se o ponto estiver à esquerda da aresta, menor

que zero se estiver à direita e se igual a zero encontra-se em cima da linha.

DABP= (XA− XB)(YA−YP) − (YA−YB)(XA− XP) (2.1)

Em Bennell e Oliveira [2] é possível perceber através de uma tabela todas as combinações de posições possíveis para a aplicação deste método para duas retas. Deste modo é possível transpor este método para utilizar nas deteções de sobreposições.

(28)

10 Revisão Bibliográfica: Problemas de Nesting

A representação poligonal foi utilizada no trabalho de Oliveira e Ferreira [16] em que a Função-D é utilizada para detetar sobreposições entre as peças. Esta produziu resultados interes-santes mas demorou demasiado tempo a computar uma solução. Esta aplicação é muito precisa, mas custosa computacionalmente e o método é sensível a mudanças de posição das arestas, que leva a recalcular as sobreposições. Este método ganha uma grande utilidade quando utilizado para criar o No-Fit Polygon, conceito que vai ser abordado em seguida.

2.2.3 Representação em Cobertura por Círculos

Um tipo de representação diferente dos expostos até agora baseia-se na representação de peças com a cobertura por círculos. Este tipo de representação é habitual encontrar noutros contextos, como redes sem fio, onde é utilizada para otimizar a cobertura de uma rede numa área. Neste ambiente o centro de cada círculo representa o emissor do sinal, e o raio o alcance do mesmo. Para a representação de peças através de círculos, é habitual que os círculos cubram toda a superfície da peça, como na Figura2.5.

Figura 2.5: Cobertura por círculos de um retângulo (adaptado de Melissen e Schuur [3])

No entanto, consoante o tipo de objetivo estabelecido para a resolução de um determinado problema, também pode ser utilizada uma técnica semelhante à da Figura2.6, em que apenas se representa o contorno da peça. O tipo de abordagem tomado depende sempre do tipo de objetivo a adotar: minimizar o tamanho dos raios dos círculos utilizados, mantendo o número de círculos ou minimizar o número de círculos mantendo os tamanhos dos raios dos mesmos. A grande vantagem deste tipo de representação são a facilidade de rotação das peças, visto que a rotação não implica rodar os círculos, mas apenas movimentar o centro dos mesmos. Também para a deteção de sobreposições apenas se necessita de comparar as distâncias entre os raios e os centros dos círculos. As desvantagens deste tipo de representação são erros de precisão na procura de um conjunto de círculos que cubra a figura.

(29)

2.2 Componente Geométrica 11

Figura 2.6: Cobertura segundo os limites de um polígono (adaptado de Zhang e Zhang [4] )

2.2.4 Representação função-phi

A representação com a função-phi foi uma aplicação inovadora no âmbito de Nesting. Embora já existisse noutro contexto, apenas foi introduzida por Stoyan et al. [22], e identifica a distância entre dois polígonos. Em certos aspetos é semelhante ao NFP, pois identifica o ponto de contacto entre os polígonos (quando a função-phi é zero), mas identifica também qual a distância a que se encontram quando afastados (normalizando a função obtém-se a distância entre estes), como pode ser visto na Figura2.7. No entanto, a grande limitação deste modelo é o facto da função-phi ser definida para os objetos primários, como o círculo, o retângulo e polígonos convexos, e qualquer forma que necessitar de ser representada é feita a partir destas formas base. Este facto implica que quando é necessário representar uma forma mais complexa, esta implica utilizar vários objetos primários para a sua representação, o que repetido por várias peças, torna o processo muito complexo. Este método é, de qualquer das formas uma ferramenta com potencial, que pode vir a ser utilizada, se for sujeita a uma maior investigação.

Figura 2.7: Deteção de posicionamento de peças pela função-phi (adaptado de Bennel e Oliveira [2])

(30)

12 Revisão Bibliográfica: Problemas de Nesting

2.2.5 No-Fit Polygon

O No-Fit Polygon corresponde a um método mais utilizado nos problemas de Nesting, porque por um lado partilha a precisão da trigonomia direta, no entanto aliado a métodos de pesquisa é capaz de encontrar melhores posicionamentos para o conjunto de peças. Este melhor posiciona-mento deve-se à facilidade de usar o No-Fit Polygon com heurísticas e modelos matemáticos de posicionamento, estudados nas próximas sub-secções.

Embora tivessem existido precursores do conceito, como Art[23], que definiu a forma de en-velope que correspondia ao conjunto de posições sem sobreposição entre duas peças, os primeiros autores a utilizar o No-Fit Polygon foram Albano e Sappupo[24] que o utilizaram aliado com um método de simplificação de complexidade dos polígonos, e Mahadevan[21] a aplicar o algoritmo do No-Fit Polygon utilizando a técnica de deslizamento. Este algoritmo tem a função de lidar com sobreposições entre peças irregulares a serem colocadas no padrão de corte. A técnica utilizada para a criação do NFP de B em relação a A, segundo Mahadevan[21], identificado como NFPAB

é o polígono que resulta de uma operação de deslize. Este deslize era representado com a ajuda de um ponto de referência, localizado no polígono orbital, B, que criava um polígono, como o apresentado na Figura2.8.

Figura 2.8: Exemplo de um No-Fit Polygon (NFPAB) (adaptado de Junior et al [5])

Após criado o o No-Fit Polygon, é possível inferir que se o ponto de referência de B se encon-trar no interior do NFPAB, os polígonos estão sobrepostos, se o ponto de referência se encontrar no

contorno do NFP, os polígonos estão em contacto. Por fim, se o ponto de referência se encontrar fora do NFP, os polígonos não estão em contacto, e evidentemente não se sobrepõem. Este teste de sobreposição é executado usando a função-D, em que o ponto de referência é testado com as arestas do NFPAB.

Sliding Algorithm Mahadevan [21] foi responsável por apresentar uma descrição detalhada de um algoritmo para a geração de NFP’s, o esquema de deslizamento. Este algoritmo definia dois pontos de referência, um no polígono fixo, o vértice com a coordenada no eixo dos Y mais baixa, e outro no polígono móvel, o vértice com a coordenada no eixo dos Y maior. A sequência de

(31)

2.2 Componente Geométrica 13

deslizamento pelos restantes vértices iria seguir a ordem anti-horária. Usava informação da com-binação de vértices e arestas que iriam ser percorridos e distância, retirada a partir da função-D. Também utilizando a função-D se representava a aresta a ser percorrida a partir da linha reta da função, e o ponto da função-D representa o vértice do polígono fixo, indicando o fim do desliza-mento para essa aresta. O polígono criado pelo percurso do ponto de referência correspondia ao NFP entre as duas peças. Nas concavidades, a função-D é utilizada para detetar a máxima distân-cia de deslizamento possível sem haver sobreposição entre os polígonos, através de projeções das arestas do polígono deslizante e as interseções detetadas entre as projeções e as arestas do polí-gono fixo. A grande desvantagem deste algoritmo é a inabilidade de representar os buracos num NFP, assim como alguns tipos de concavidades apresentarem dificuldades, como por exemplo se a concavidade for capaz de englobar a peça deslizante, mas com uma entrada estreita.

Figura 2.9: Sliding Algorithm de Whitwell [6] (adaptado de Bennel e Oliveira [2])

Whitwell [6] apresentou um novo método capaz de criar NFPs com buracos através do sli-ding algorithm (representado na Figura 2.9). A primeira fase do método era semelhante à de Mahadevan[21], orbitando à volta do polígono fixo para criar um NFP, com uma alteração, as arestas que são atravessadas pelo polígono móvel são assinaladas. No fim deste processo, todas as arestas que não foram assinaladas eram exploradas de forma a perceber se existia a possibilidade de criar um NFP a partir destas arestas. Para ser possível o polígono orbital deslizar pelas arestas não assinaladas, um teste de admissibilidade, relacionado com o posicionamento do vértice desli-zante em relação à aresta não assinalada é utilizado. Depois de encontrada uma aresta compatível, são investigadas sobreposições, e resolvidas através de translações, no caso de existirem. Este método é aplicado até não haver mais arestas não assinaladas por avaliar. A desvantagem deste método é o aumento da exigência computacional com o aumento da complexidade das peças.

Slope Diagrams Os Slope Diagrams correspondem a um modelo análogo ao Sliding Algo-rithmque utiliza as arestas de cada polígono e as suas orientações para criar o polígono NFPAB

ordenando as arestas por inclinação. Quando ambas as formas são convexas o NFP é simples de calcular, utilizando um algoritmo semelhante ao de Cuninghame-Green [25]. Começando de um vértice qualquer do polígono, e percorrendo o polígono, são representadas arestas como vetores. Os vetores são colocados num referencial, centrados na origem (0,0) com a sua direção, sentido e magnitude originais. Orientam-se os vetores da peça A na direção anti-horária, e B na direção ho-rária. Os vetores dos dois polígonos são aglomerados no mesmo referencial, sendo depois criado

(32)

14 Revisão Bibliográfica: Problemas de Nesting

o NFPABcomo pode ser observado na Figura2.10.

Figura 2.10: Slope Diagram (adaptado de Bennel[7])

Quando uma ou ambas as peças são não-convexas, o método não funciona. Este facto pode ser observado na Figura 2.11, em que as arestas do polígonos ficam ordenadas por declive, mas devido à presença de uma concavidade não mantém a ordem das arestas.

Figura 2.11: Slope Diagram (adaptado de Bennel[7])

Um dos métodos utilizados representar peças com concavidades é a decomposição das peças em polígonos convexos. Os sub-NFP’s resultantes são facilmente criados e unidos. No entanto, a criação destes polígonos tem de ser executada com objetivo de criar apenas os polígonos ne-cessários. Isto é essencial porque quantos mais polígonos maior é a exigência computacional do processo de criação de sub-NFP’s. Um dos métodos para circundar este problema consiste na decomposição dos objetos não convexos em vários polígonos com a mesma forma, como visto em Li e Milenkovic [26].

(33)

2.2 Componente Geométrica 15

Somas de Minkowski A construção de NFP, primeiro sugerida por Stoyan e Ponomarenko [27], pode ser executada baseando-se no conceito da soma de Minkowski. Considerando A e B como dois conjuntos de vetores, é a soma de todos os vetores em A com B. A soma de Minkowski é representada por:

S= AMB= {a + b|a ∈ A, b ∈ B} (2.2) No entanto, para esta equação fazer sentido dentro do contexto de NFP, a equação a ser usada é a diferença de Minkowski, que resulta na mudança de sinal de B para -B.

Abordagem de Ghosh Ghosh baseou-se no trabalho anteriormente realizado por Cuninghame-Green [25], também ele usou slope diagrams, para a aplicação da soma de Minkowski. Este criava diagramas circulares, um para cada polígono, em que cada ponto na circunferência representava os ângulos e direção dos vértices. Uma vez que esta é a aplicação da soma de Minkowski para a criação de NFP, o polígono A representa-se com os vértices ordenados como o polígono original, e o polígono B invertido. Este método pode aplicar-se a peças convexas da mesma forma que o método de Cunninghame-Green[25].

Figura 2.12: Representação de Ghosh para polígonos não-convexos (adaptado de Bennel[7]) No entanto, é na aplicação a peças não-convexas que este método se apresenta útil, sendo que nas concavidades o método se processa da seguinte forma: aquando da criação dos diagramas de declives, os vértices do polígono convexo que têm arestas que coincidem com arestas do polígono não-convexo são adicionadas ao NFP final com sinal positivo na entrada da concavidade e negativo na sua saída. Este método é sempre possível se apenas um dos polígonos for não-convexo. Se ambos forem, as coordenadas das concavidades não podem coincidir, para o método funcionar. De seguida apenas se somam os vértices de ambos os diagramas e obtém-se um diagrama final a partir do qual se cria o NFP final.

Bennel [7] conduziu alterações ao método de Ghosh de forma a suprir as suas lacunas, no-meadamente o facto de não ser possível duas concavidades de dois polígonos A e B interagirem. Para este efeito, introduziu a noção de substituir as concavidades de um dos polígonos (B), por

(34)

16 Revisão Bibliográfica: Problemas de Nesting

arestas dummy, criando um polígono convexo denominado na sua obra de conv(B). De seguida, aplicando o método de Ghosh, cria o NFP Aconv(b). Por fim são substituídas no NFP as arestas dummypelas suas arestas iniciais.

Bennel [7] melhorou este método com algumas alterações, em que em vez de substituir as arestas por dummy’s de B, dividia os polígonos em arestas pertencentes a concavidades e ares-tas convexas. Daí criou os diagramas de declive entre o grupo de aresares-tas côncavas de B com o polígono A, e o mesmo processo para as arestas convexas. Finalizado o processo juntam-se os diagramas de cada grupo num único NFP, de onde resultam algumas interseções interiores ao NFP que tem de ser eliminadas.

Decomposição Convexa Watson e Tobias [28] decompuseram um polígono em vários po-lígonos convexos através de divisões entre vértices côncavos. Bennel e Oliveira [2] demonstrou esta prática, como na Figura2.13. Depois de separados os polígonos, criam-se os NFP de cada um dos novos polígonos, são combinados num só NFP. Neste ponto é preciso resolver sobreposições entre NFP’s dos polígonos constituintes.

Figura 2.13: Representação de Decomposição Convexa (adaptado de Bennel e Oliveira [2])

Este processo retira complexidade à criação dos NFP’s, no entanto isto traz desvantagens, por-que aumenta a exigência computacional na divisão em polígonos e união dos respetivos NFP’s. Isto é agravado com um maior o número de polígonos criados na divisão, assim como a presença de buracos. Os buracos podem também criar problemas na interseção dos NFP’s, porque não é claro se a sobreposição é criada por um buraco ou não. Agarwal et al. [29] investigaram diferen-tes métodos de decomposição de polígonos, como triangulação, decomposição ótima e heurística.

(35)

2.2 Componente Geométrica 17

Consideraram que embora os tempos criação de NFP fossem menores, os requisitos computaci-onais destes não compensam. A triangulação criava demasiados polígonos o que aumentava os tempos computacionais do processo geral. Heurísticas que aproximavam a decomposição ótima representavam o melhor balanço entre exigência e tempo computacional.

Decomposição em Estrela Li e Milenkovic [26] definiram um polígono em forma de estrela se existir um ponto, k (kernel, que se traduz para núcleo) a partir do qual qualquer outro ponto P, dentro do polígono, ao criar uma reta kp esta esteja completamente contida dentro do polígono. Demonstraram também que com a diferença de Minkowski é possível criar um NFP, também em forma de estrela, que estes referem ser computacionalmente mais simples de criar que um polígono simples.

Inner-fit Rectangle O IFR, um conceito intrinsecamente relacionado com NFP, representa o conjunto de pontos admissíveis da colocação de um polígono dentro de um polígono maior (nos problemas de Nesting tipicamente o padrão de corte). Como foi falado anteriormente, esta é uma das condições essenciais para a criação de um padrão de corte admissível. Também se utiliza a nomenclatura de IFP,Inner-fit Polygon, que identifica qualquer polígono, que seja usado como padrão de corte, não só com o formato de um retângulo. O IFR assegura que todas as peças são colocadas dentro do padrão de corte. Por exemplo, no caso da Figura2.14, a zona a branco corresponde a todas as posições admissíveis para o ponto RB, e por conseguinte para a peça B.

Figura 2.14: IFR da peça B (adaptado de Bennel e Oliveira [2])

Deve ser mencionado que os NFP’s e IFR podem ser computados offline, porque apenas de-pendem do formato das peças e não dos lugares ocupados pelas peças no padrão de corte. Quando orientações diferentes são permitidas, é necessário calcular o NFP para cada par de orientações diferentes e um IFR para cada uma delas.

(36)

18 Revisão Bibliográfica: Problemas de Nesting

2.3

Componente Combinatória

Depois de explorar a componente de representação das peças, é importante escolher o me-lhor modelo de posicionamento das peças no padrão de corte. Na literatura é possível encontrar variados métodos, e ferramentas utilizadas em diferentes configurações, cada uma com as suas vantagens. Os modelos matemáticos são usualmente utilizados como ferramentas para resolver sub-problemas (caso dos algoritmos de compactação e separação). Existem também os algoritmos construtivos, heurísticas que criam uma solução a partir do zero, e os algoritmos de melhoramento, que criam um padrão de corte inicial e usam métodos de melhoramento para alcançar melhores resultados.

2.3.1 Modelos Matemáticos

Os modelos matemáticos são normalmente utilizados como ferramentas úteis como comple-mento de um método criação de soluções, mas não são pensados para a sua resolução completa.

Modelos baseados em NFP Uma das formas de modelar o problema de Nesting é através de Modelos de Programação Inteira (MIP). Estes modelos representam as restrições de sobreposição entre peças deste tipo de problemas através de variáveis binárias, onde estas variáveis identificam a validação das restrições impostas. Estas restrições aumentam fatorialmente com o número de peças irregulares. As restrições de posicionamento dentro do layout são baseadas no IFP, e crescem linearmente com o número de peças a colocar.

Fiscetti e Luzzy [30] definiram no seu modelo MIP um novo conceito que consistia em dividir o espaço exterior ao NFP de uma peça, inicialmente altamente não-convexo, segundo os seus vértices. Após a divisão, forma-se um conjunto de espaços convexos, necessários para a sua representação linear.

Toledo et al [20] apresentou um modelo MIP aplicado a variáveis de decisão binárias associa-das a pontos do padrão de corte de posições discretas (Dotted Board) e para cada tipo de peça. A colocação de uma peça no padrão de corte associa um ponto de referência como identificação da peça. Os conceitos de NFP e IFP são utilizados segundos os critérios padrão. A representação de uma peça no padrão de corte é identificada com o valor da unidade na grelha discreta. Com este modelo foi possível atingir soluções ótimas com 16 a 56 peças, dependendo dos tipos de peças utilizados.

Algoritmo de Compactação O modelo de compactação é usado para melhorar configura-ções de peças aplicando um conjunto de movimentos contínuos a peças, atingindo configuraconfigura-ções que são soluções locais ótimas. Numa configuração compacta, as posições relativas das peças são mantidas, e não existem rotações. Este método pressupõe layout’s iniciais, que são analisados de uma perspetiva de relação de posicionamento entre peças baseado em No-Fit Polygon.

A compactação resolve o problema de Nesting através de programação linear, com o objetivo de minimizar o comprimento do padrão de corte, em que as restrições representam os limites de

(37)

2.3 Componente Combinatória 19

sobreposição, como na Figura2.15. Gomes e Oliveira [9] referem que o garante de não existir nenhuma sobreposição implica que em cada peça, no caso de ser convexa, é a existência de pelo menos uma aresta de uma peça tenha o ponto de referência Rj de outra peça à sua direita.

Figura 2.15: Limites de posicionamento entre duas peças (adaptado de Bennel e Oliveira [8])

De forma a entender melhor o conceito, na Figura 2.15estão representadas duas peças, i e j, em que os limites de sobreposição são representados por 3 retas sobrepostas a 3 arestas do NFPi j, sobre a peça i. Pela Figura2.15é evidente que em qualquer ponto na direção indicada

pelas setas das retas afiança que a peça j não se sobrepõe a i. Como foi referido anteriormente, com a informação de apenas uma destas retas nunca ter sido sobreposta na direção contrária ao representado na Figura2.16, satisfazia a condição de não-sobreposição.

O modelo de compactação melhora um layout imprimindo forças nas peças de forma a mi-nimizar os espaços entre peças. Sobreposições não são permitidas e não existem alterações das posições relativas entre peças. Este modelo necessita de um layout inicial, que é avaliado através dos NFP’s entre as peças. Para cada par de peças, apenas uma restrição, que avalia se o ponto de referência se encontra dentro do NFP entre o par, é necessária para garantir admissibilidade. Após garantir admissibilidade para todo o layout é executada a compactação através de um modelo linear de programação, que pode ser observado na Figura2.16.

Figura 2.16: Exemplo de funcionamento do modelo de compactação (adaptado de Gomes e Oli-veira [9])

(38)

20 Revisão Bibliográfica: Problemas de Nesting

Outras restrições são utilizadas para diferentes propósitos, como distância máxima de movi-mento de uma peça (Milenkovic et al [31] e Bennell e Dowsland [7]), garantir que as peças se encontram todas no interior do padrão de corte.

Após se garantir que é um padrão de corte admissível, procede-se à compactação. Depois analisa-se se existe mais algum espaço para compactação, e repete-se o processo até não ser dete-tado mais espaço para melhoramento.

A função objetivo é definida com finalidades análogas, sendo pela minimização da diferença entre o inicio e o fim do padrão de corte (Stoyan et al [32]), ou a minimização do padrão de corte (Bennell e Dowsland [7]). Uma das vantagens da utilização deste modelo é a diminuição do comprimento do padrão de corte utilizado. Este modelo foi utilizado por Gomes e Oliveira [9], como complemento ao arrefecimento simulado, e por Bennel e Dowsland [7] com a Pesquisa Tabu.

Algoritmo de Separação Baseado no modelo de compactação, é possível desenvolver outro modelo de programação linear, o modelo de separação. Este serve para remover alguma impratica-bilidade da configuração de peças (sobreposições), movendo as peças que estão a sobrepor-se para uma posição admissível, como na Figura2.17. Os algoritmos de separação também são utilizados para resolver casos de peças fora do padrão de corte. Assim como no caso de compactação, não são admissíveis "saltos"entre peças.

Figura 2.17: Exemplo de funcionamento do modelo de separação (adaptado de Gomes e Oliveira [9])

Os algoritmos de separação são muitas vezes utilizados para corrigir sobreposições causadas pelo modelo de compactação, que supostamente deviam ser inexistentes. No entanto, de forma a coligar os pontos fortes dos dois métodos, por vezes são criadas variáveis que detetam a exis-tência de sobreposições ou saída do padrão de corte. Assim, a compactação junta as peças com a possibilidade de existirem sobreposições, que são detetadas pela variável que por sua vez ativam a utilização da separação das peças. Assim como o modelo de compactação, o modelo de sepa-ração inicialmente procura situações de sobreposição ou saída do padrão de corte. De seguida, é executado o modelo de separação, e por fim, se não estiverem resolvidas todas as situações de inadmissibilidade, o processo é repetido.

Bennel e Dowsland [7] resolveram os problemas de sobreposição relaxando as restrições de sobreposição, diminuindo a distância que as peças tinham de se mover para cumprir a restrição.

(39)

2.3 Componente Combinatória 21

Gomes e Oliveira [9] relaxaram estas restrições criando uma variável "dummy" que tinha como função minimizar o efeito da sobreposição na função objetivo.

2.3.2 Heurísticas para posicionamento em superfícies irregulares

Os algoritmos abordados nesta dissertação apenas utilizam superfícies de corte regulares, nor-malmente retangulares. O método apresentado nesta secção admite superfícies de corte irregulares com buracos. Uma das utilizações deste método é no corte de couro, em que o material a ser cor-tado é irregular. Para a representação do layout é utilizada a grelha, em que cada posição da mesma tem um valor associado que varia com a qualidade do tecido utilizado, que é zero quando não é possível colocar uma peça, e um valor máximo quando é uma posição válida. Como se pode ver na Figura2.18, a amarelo está identificado um buraco, e os espaços próximos do buraco apresentam pior qualidade. Na Figura pode também observar-se que a superfície de corte (linha negra exterior) é representada sem que as grelha ultrapassem o seu limite, para evitar peças fora da superfície. Por outro que as peças a colocar são representadas em excesso, para lá do limite das mesmas, para impedir a sobreposição entre elas e reforçar o evitar sair fora da superfície de corte.

Figura 2.18: Representação de uma superfície de corte adaptado de [10])

Para a colocação de peças é usada uma função de vantagem de colocação de uma certa peça. A função penaliza sobreposições, valoriza a minimização de desperdício, e é utilizada para avaliar de todas as peças disponíveis, os seus posicionamentos possíveis, qual destes obtinha um valor maior. Como esta estratégia pode ser pouco eficiente, normalmente utilizam-se entre 3 heurísticas de posicionamento: top-left, melhor posicionamento acima à esquerda; avalia-se qual a melhor posição através da função de posicionamento; pesquisa-se por um número de movimentações das peças pré-determinadas, usando uma heurística de pesquisa das opções.

2.3.3 Algoritmos Construtivos

Os algoritmos construtivos são utilizados para a criação de padrões de corte peça a peça. Nestes algoritmos existem dois parâmetros a definir, a sequência pela qual as peças são colocadas

(40)

22 Revisão Bibliográfica: Problemas de Nesting

no layout e o método de colocação das peças. As sequências de peças normalmente valorizam a colocação das peças mais difíceis primeiro, mas não existe apenas um critério para definir qual é a peça mais difícil, sendo que as várias técnicas são abordadas nesta secção. A colocação de peças pode adotar a metodologia de colocação bottom-left, que obtém uma solução rapidamente, e com alguma qualidade. No entanto, existem métodos mais sofisticados, que procuram o melhor lugar para posicionar a próxima peça no layout.

Sequência de Peças A sequência de peças define a ordem pela qual as peças são colocadas no layout. O método mais simples é a escolha aleatória das peças a colocar, normalmente utili-zando a heurística de Monte Carlo. Embora seja fácil de implementar não cria soluções ótimas, sendo utilizada mais em perspetiva de criar uma solução inicial nos algoritmos de melhoramento. Gomes [12] utilizou como método de criação de soluções iniciais, o sequenciamento de peças se-gundo área, comprimento e irregularidade decrescentes, entre outros. Este concluiu que a escolha de uma solução inicial através deste método dependia muito do conjunto de dados utilizados.

Dowsland et al [33] usaram vários métodos de seleção, como ordenar por área do polígono, área e largura do retângulo que engloba o polígono, todos com o objetivo de colocar em primeiro lugar as peças mais difíceis de acomodar.

A seleção dinâmica também é um método muito utilizado neste tipo de algoritmos, que se-gundo o tipo de peças e a quantidade de peças de cada tipo (incluindo rotações discretas das peças), procura as diferentes formas de sequenciar as peças. São testadas todas as combinações possíveis e usam critérios de avaliação para escolher a melhor peça a colocar. Um exemplo desta metodologia, é a Figura2.19, que no nível 0 se insere cada uma das peças disponíveis, e segundo um critério definido anteriormente foi escolhida a peça 2 com rotação 0o. Para o seguinte nível esta peça fica fixa, e procura-se dinamicamente a próxima peça a ser inserida, sendo que foi escolhida a peça 1. é utilizado este método sucessivamente até serem esgotadas as peças a serem inseridas.

Albano e Sapuppo [24] implementaram a seleção dinâmica com a utilização de uma árvore de pesquisa. Cada nó da árvore correspondia a uma solução parcial, que tinha como decisão para o seguinte nó a adição de uma peça nova. Cada último nó desta árvore representava uma solução final. O número de peças a colocar representava a largura da árvore, e o número de peças por colocar corresponde ao número de ramos a sair de cada nó. Estes usaram um critério de desperdício que avaliava ao longo da árvore qual o ramo que aumentava menos o desperdício do nó anterior.

Bennell e Song [2] utilizam um método em tudo semelhante, mas com a utilização de Beam Search, que utilizava dois critérios de avaliação, um para escolher os próximos melhores ramos, e outro critério para avaliar o desempenho global da solução.

Colocação de Peças A colocação de peças dita qual o posicionamento de cada peça da sequência definida na secção anterior. A regra de posicionamento mais utilizada é Bottom-left, no entanto, existem algumas alternativas, que são expostas a seguir.

Introduzida por Art [23], uma a regra de colocação de peças mais utilizada é Bottom-left, como se pode ver na Figura2.20, onde a peça é movida dentro do padrão de corte o mais possível

(41)

2.3 Componente Combinatória 23

Figura 2.19: Iteração de seleção dinâmica (adaptado de Oliveira et al. [11])

para a esquerda, assim que não é possível movimentar-se mais, move-se verticalmente para baixo, até encontrar outra peça, ou o fim do padrão de corte. A regra termina quando não for possível mover tanto para a esquerda como para baixo. Esta heurística implica a utilização de um método de deteção de sobreposições, normalmente o NFP, para detetar que se sobrepôs a outra peça, ou o IFR, para se detetar que atingiu o fim do padrão de corte.

Um conjunto de artigos definiram uma alteração no funcionamento desta heurística, em que em vez das peças serem colocadas vindas do ponto mais à direita do padrão de corte, estas eram colocadas no ponto mais à direita e para cima, o chamado Top-right, eram identificadas sobre-posições e movimentadas até não se verificarem mais sobresobre-posições. Segenreich e Braga [18] e Dowsland et al [33] utilizaram-no para a representação em grelha.

Burke et al [17] apresentou esta heurística para a representação baseada numa grelha com po-sições horizontais discretas e popo-sições verticais contínuas. Na colocação de novas peças no padrão de corte, ferramentas geométricas baseadas nas primitivas geométricas dos objetos resolviam as possíveis sobreposições. O autor refere que este método consegue lidar com sobreposições em arcos e buracos mais eficientemente que os NFP’s. As sobreposições são resolvidas calculando a distância necessária segundo a vertical para a qual deixa de haver sobreposição entre as duas peças.

(42)

24 Revisão Bibliográfica: Problemas de Nesting

Figura 2.20: Regra de Bottom-left (adaptado de Bennel e Oliveira [2])

A colocação de peças encarrega-se de colocar num layout admissível a sequência de peças escolhida. É comum utilizar NFP para criar um conjunto de posições possíveis dentro de um padrão de corte entre as peças já colocadas e uma nova peça. Isto cria um número infinito de posições possíveis.

Figura 2.21: Posições admissíveis considerando os NFP e IFR (adaptado de Gomes [12]) O NFP também pode ser utilizado como ferramenta de criação de posições admissíveis, junta-mente com o IFR. Se considerarmos o exterior do NFP entre peça a colocar e as peças já colocadas, e o interior do IFR, temos o conjunto de pontos onde é possível colocar as peças. Na Figura2.21a zona branca, que corresponde ao padrão de corte exceto as peças (a cinzento escuro) e os NFP’s (a cinzento claro) correspondem a esse conjunto de locais admissíveis para colocar uma peça. Desta forma é possível utilizar o Bottom-left com esta metodologia para preencher possíveis buracos en-tre peças, como o existente na Figura2.21. Gomes [12] reduziu um número de posições de uma peça num padrão de corte, considerando que a peça apenas se poderia "encostar"a um vértice. Este vértice podia ser do NFP entre a peça a ser colocada e as peças já colocadas, o IFR do padrão de corte, ou a interceção entre arestas destes. Este conjunto de pontos era então processado por um

(43)

2.3 Componente Combinatória 25

método de colocação Bottom-left. Dowsland et al [33] utilizou um sistema análogo, mas conside-rando em vez dos vértices, as arestas desta região. Neste caso a peça deslizava pela aresta mais à direita até encontrar uma posição sem sobreposições. Ambas as heurísticas tem a capacidade de preencher buracos.

Ribeiro e Carravilha[34] utilizou uma abordagem que prescindia de regras de colocação, mas apenas resultava para problemas pequenos. Este utilizava CLP (Constraint Logic Programming), numa representação discreta para detetar quais as posições onde era possível colocar a peça, tendo em conta as peças já colocadas.

Oliveira et al. [11] criou um algoritmo diferente de colocação de peças, que utilizava um sistema de pesquisa da melhor posição e orientação para cada peça, com a definição das posições admissíveis a ser feita pelo NFP. Este NFP criado entre todas as peças já colocadas e a peça a colocar, e desta forma a parte do padrão de corte entre estas era considerado desperdício, não sendo considerado para futuros melhoramentos, como preenchimento de buracos. O principal objetivo deste algoritmo era minimizar o espaço ocupado pelas peças e impedir sobreposições.

2.3.4 Algoritmos de Melhoramento

Uma das características que diferencia estes algoritmos dos construtivos é o facto de se fazerem alterações a uma solução completa. Estes algoritmos têm dois principais problemas com várias soluções para ambos presentes na bibliografia. A definição da sequência pela qual as peças são colocadas no padrão de corte é um desses desafios. Por outro lado temos as alterações no layout, em que se modificam depois de colocadas as peças neste, segundo uma qualquer heurística. Neste método é normalmente feito um padrão de corte inicial, criado normalmente com uma sequência aleatória. São feitas alterações ao padrão de corte de forma a melhorar a solução final.

Alterações de sequências Na procura de sequências existem três principais estratégias de alteração da sequência das peças. Estas são a troca de peças, presentes na Figura2.22, que troca a posição de duas peças, inserir peça, que retira uma peça da sua ordem na sequência e a insere noutra posição, e mudança de orientação, que muda a direção da peça, consoante as rotações que são permitidas pelo problema em questão. Depois de haver essa alteração de sequência, é utilizada uma heurística de colocação de peças, normalmente Left-bottom.

Estas alterações de sequência devem ser limitadas, porque um grande número de alterações criaria um grande aumento na computação de uma solução. Gomes [12] utilizou trocas de duas peças no seu trabalho, sendo que a distância entre as peças apenas poderia ser de 1, 2 ou 3 peças. O limite de distância permitida entre peças limita o tamanho das vizinhanças. Eram criadas vizi-nhanças com cada uma das trocas, e criadas soluções que depois era avaliadas segundo 3 critérios: a primeira melhor solução; a melhor solução; aleatoriamente escolhida entre as melhores.

Takahara et al [35] utilizou uma pesquisa na vizinhança com dois estados, normal e adaptativo. No estado normal havia a mesma probabilidade de se movimentar para todas as peças, enquanto que no estado adaptativo, a probabilidade de movimentar-se dependia do peso da peça. Este peso

(44)

26 Revisão Bibliográfica: Problemas de Nesting

Figura 2.22: Alterações de Sequência (adaptado de Bennel e Oliveira [2])

da peça era aumentado consoante as movimentações desta peça tivessem melhorado a solução. Este modelo procurava focar-se nas peças que melhoravam a solução, por algumas iterações.

Jakobs [36] sugeriu um algoritmo genético para criar novas sequências de peças. Estas sequên-cias tem associadas a si uma variável de fitness, que indica o desempenho da sequência. A primeira geração de sequência de peças é criada por com valores aleatórios. Desta primeira população, são selecionados dois indivíduos, o descendente recebe um número aleatoriamente definido de posi-ções da sequência (código genético) do primeiro parente, e o restante do segundo. As mutaposi-ções são feitas através de rotações das peças de 90o. Depois de criado o descendente, é aplicado o método de Bottom-Left e chegam a um valor de fitness. Assim este novo elemento é adicionado à população, e o elemento com pior valor de fitness é retirado.

Figura 2.23: Método jostle (adaptado de Bennel e Oliveira [2])

Dowsland et al.[33] propôs o método de jostle que consistia em colocar peças com uma heu-rística que coloque as peças do lado esquerdo. Depois de colocadas, são reordenadas em ordem decrescente de posição mais à direita, e empacotadas do lado direito, com uma iteração exem-plificada na Figura 2.23. O mesmo é feito depois para a esquerda. O método simula o agitar de uma caixa para a esquerda e direita, que faz com que as peças se encaixem umas nas outras mais naturalmente. Este método tem um sistema de preenchimento de buracos.

Referências

Documentos relacionados

A partir da junção da proposta teórica de Frank Esser (ESSER apud ZIPSER, 2002) e Christiane Nord (1991), passamos, então, a considerar o texto jornalístico como

Inspecção Visual Há inspeccionar não só os aspectos construtivos do colector como observar e controlar a comutação (em

A gestão do processo de projeto, por sua vez, exige: controlar e adequar os prazos planejados para desenvolvimento das diversas etapas e especialidades de projeto – gestão de

Os testes de desequilíbrio de resistência DC dentro de um par e de desequilíbrio de resistência DC entre pares se tornarão uma preocupação ainda maior à medida que mais

Os alunos que concluam com aproveitamento este curso, ficam habilitados com o 9.º ano de escolaridade e certificação profissional, podem prosseguir estudos em cursos vocacionais

No código abaixo, foi atribuída a string “power” à variável do tipo string my_probe, que será usada como sonda para busca na string atribuída à variável my_string.. O

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do

F REQUÊNCIAS PRÓPRIAS E MODOS DE VIBRAÇÃO ( MÉTODO ANALÍTICO ) ... O RIENTAÇÃO PELAS EQUAÇÕES DE PROPAGAÇÃO DE VIBRAÇÕES ... P REVISÃO DOS VALORES MÁXIMOS DE PPV ...