ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem...

12
ALGORITMO GENÉTICO SIMBIÓTICO APLICADO AO PROBLEMA DE CORTE UNIDIMENSIONAL Rodrigo Rabello Golfeto Escola de Engenharia Industrial Metalúrgica - UFF Av. dos Trabalhadores, 420, Vila, Volta Redonda, RJ, Brasil, 27255-970 E-mail: [email protected] Antônio Carlos Moretti Instituto de Matemática, Estatística e Computação Científica - UNICAMP Cidade Universitária Zeferino Vaz, s/n, Barão Geraldo, Campinas, SP, Brasil, 13084-790 E-mail: [email protected] Luiz Leduíno de Salles Neto Escola de Engenharia Industrial Metalúrgica - UFF Av. dos Trabalhadores, 420, Vila, Volta Redonda, RJ, Brasil, 27255-970 E-mail: [email protected]ff.br RESUMO Neste trabalho desenvolvemos um algoritmo genético simbiótico com objetivo de minimi- zar o número de objetos processados e o setup num problema de corte unidimensional. Nosso algoritmo genético gera seus próprios padrões em conjunto com soluções para o problema, através de um processo simbiótico entre duas populações de espécias distintas, a de soluções e a de padrões. Trabalhando com os dois objetivos na função de aptidão e com a relação sim- biótica entre as duas populações, obtivemos resultados competitivos em relação aos métodos descritos na literatura. Palavras-Chave: Problemas de Corte; Algoritmos Genéticos; Simbiose; Meta- heurística. ABSTRACT In this work we’ve developed a genetic symbiotic algorithm with the aim to minimize the number of processed objects and the setup in a onedimensional cutting stock problem. Our genetic algorithm can generate it’s owns cutting patterns joint with the solutions for the problem, through an symbiotic process between two distincts populations, solutions and cutting patterns. Working with two objectives in the fitness function and with the symbiotic relationship between the two populations, we get competitive results in comparison with the methods describeds in literature. Keywords: Cutting Stock Problem; Genetic Algorithm; Symbiosis; Metaheuris- tic. XXXIX SBPO [1415]

Transcript of ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem...

Page 1: ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem FORTRAN, porém, ... método Kombi234 foram obtidos num código em MODULA-2 em MS-DOS

ALGORITMO GENÉTICO SIMBIÓTICO APLICADO AO PROBLEMADE CORTE UNIDIMENSIONAL

Rodrigo Rabello GolfetoEscola de Engenharia Industrial Metalúrgica - UFF

Av. dos Trabalhadores, 420, Vila, Volta Redonda, RJ, Brasil, 27255-970E-mail: [email protected]

Antônio Carlos MorettiInstituto de Matemática, Estatística e Computação Científica - UNICAMP

Cidade Universitária Zeferino Vaz, s/n, Barão Geraldo, Campinas, SP, Brasil, 13084-790E-mail: [email protected]

Luiz Leduíno de Salles NetoEscola de Engenharia Industrial Metalúrgica - UFF

Av. dos Trabalhadores, 420, Vila, Volta Redonda, RJ, Brasil, 27255-970E-mail: [email protected]

RESUMO

Neste trabalho desenvolvemos um algoritmo genético simbiótico com objetivo de minimi-zar o número de objetos processados e o setup num problema de corte unidimensional. Nossoalgoritmo genético gera seus próprios padrões em conjunto com soluções para o problema,através de um processo simbiótico entre duas populações de espécias distintas, a de soluçõese a de padrões. Trabalhando com os dois objetivos na função de aptidão e com a relação sim-biótica entre as duas populações, obtivemos resultados competitivos em relação aos métodosdescritos na literatura.

Palavras-Chave: Problemas de Corte; Algoritmos Genéticos; Simbiose; Meta-heurística.

ABSTRACT

In this work we’ve developed a genetic symbiotic algorithm with the aim to minimizethe number of processed objects and the setup in a onedimensional cutting stock problem.Our genetic algorithm can generate it’s owns cutting patterns joint with the solutions forthe problem, through an symbiotic process between two distincts populations, solutions andcutting patterns. Working with two objectives in the fitness function and with the symbioticrelationship between the two populations, we get competitive results in comparison with themethods describeds in literature.

Keywords: Cutting Stock Problem; Genetic Algorithm; Symbiosis; Metaheuris-tic.

XXXIX SBPO [1415]

Page 2: ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem FORTRAN, porém, ... método Kombi234 foram obtidos num código em MODULA-2 em MS-DOS

1. IntroduçãoO problema de corte objetiva encontrar a melhor forma de se obter itens demandados a

partir do corte de peças maiores, minimizando algum tipo de custo ou maximizando o lucro.Assim, um problema de corte pode ser decompostos em dois sub-problemas distintos: gerar ospadrões de corte e combiná-los da melhor forma possível, a fim de atingir a demanda exigida.

O primeiro trabalho a cerca deste problema foi realizado por Kantorovich (1960) na dé-cada de 30 do século passado, publicado 30 anos mais tarde. Problemas de mesma naturezaforam tratados por Paull e Walter (1954), Metzger (1958) e Eilon (1960). Porém, como obser-vado por Dowsland e Dowsland (1992), estes métodos são adequados apenas para problemaspequenos. Com os trabalhos de Gilmore e Gomory (1961,1963) houve um grande avanço noestudo dos problemas de corte.

Haessler (1975) foi o primeiro a tratar do problema de corte unidimensional não-linear,isto é, considerando tanto a redução de perda devido a sobras, quanto a minimização donúmero de setups da máquina de corte.

Neste trabalho objetivamos implementar o algoritmo genético que possa gerar seus própriospadrões em conjunto com uma solução para o problema. A maior parte das implementaçõesgenéticas tentam utilizar os padrões gerados por outras heurísticas, como Construtivo comBranch-and-Bound, Construtivo com Random Search, Residual com Branch-and-Bound eResidual com Random Search, e apenas ajustar quantas vezes cada padrão será processado(Boleta et al (2005) e Khalifa et al (2006)).

Vale ressaltar que não há registro na literatura de um algoritmo genético que utiliza umarelação de simbiose entre espécies diferentes em problemas de otimização. Tal abordagem,inédita, permite que as duas populações, de soluções e de padrões, evoluam não só simultane-amente, mas de forma simbiótica, ou seja, um padrão que está presente em boas soluções temgrande possibilidade de sobreviver e gerar novos indivíduos que, por sua vez, podem ajudara melhorar a população de soluções, e assim por diante.

Discutiremos os conceitos de simbiose e a forma que encontramos para implementá-la.Na Seção 2 apresentamos formalmente o problema de corte para minimizar o número deobjetos processados e o setup. Na Seção 3 tratamos, brevemente, dos principais conceitos dosalgoritmos genéticos. Na Seção 4 apresentamos o conceito de simbiose e seu funcionamento.A Seção 5 descreve detalhadamente nossa implementação. Finalmente as Seções 6, 7 e 8mostram os testes computacionais, seus resultados e as conclusões e perspectivas de trabalhosfuturos.

2. O Problema de Corte UnidimensionalO problema de corte e estoque (clássico) consiste em cortar peças de tamanhos maiores W

em menores wi com objetivo de atender uma demanda di onde W > wi. Segundo a tipologiade Dyckhoff (1990) este problema é classificado como 1/V/I/R.

Cada combinação diferente de itens que serão cortados de uma bobina específica échamado de padrão de corte e a cada troca de padrão de corte temos um custo para re-configuração da máquina chamado setup.

Quando temos que atender uma grande demanda de itens em um curto espaço de tempo,o setup passa a ter um grande custo, visto que a máquina fica parada durante esse períodode tempo. Assim, devemos encontar um equilíbrio entre número de setups e a quantidade deobjetos processados, já que são objetivos conflitantes.

XXXIX SBPO [1416]

Page 3: ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem FORTRAN, porém, ... método Kombi234 foram obtidos num código em MODULA-2 em MS-DOS

Minimizar c1

n∑j=1

xj + c2

n∑j=1

δ(xj)

sujeito an∑

j=1aijxj ≥ di, i = 1, ..., m.

xj ∈ N, j = 1, ..., n.

onde

• c1 é o custo de cada bobina, e

• c2 o custo de setup e δ(xj) ={

1 se xj > 0,0 se xj = 0.

Compararemos os resultados obtidos com três métodos diferentes:

• SHP: Este método foi proposto por Haessler (1975) e se baseia numa técnica exaustiva derepetição de padrão, onde em cada iteração calcula-se alguns parâmetros de aspiração,faz-se uma busca por padrões de corte que satisfaçam tais parâmetros até que todademanda seja atendida.

• Kombi234: Este método foi desenvolvido por Foester e Wascher (2000) e se baseia nacombinação de padrões visando diminuir o setup de uma solução inicial. Ele se baseiano fato da soma das freqüências dos padrões resultantes ser igual a soma das freqüênciasdos padrões originais, ou seja, mantém constante o número de objetos processados comuma possível redução de setup.

• ANLCP: Este método, desenvolvido por Salles Neto e Moretti (2005), busca minimi-zar o número de objetos processados e o setup através da aplicação do método do la-grangiano aumentado num problema com função objetivo, proposta por Haessler(1975),suavizada. Utiliza-se uma adaptação do método de geração de colunas de Gilmore eGomory(1961,1963) para este modelo não-linear e uma simples heurística de arredonda-mento para obtenção de uma solução viável.

3. Algoritmos GenéticosOs algoritmos genéticos surgiram no final da década de 50 e início da década seguinte.

Segundo Von Zuben (2003) três nomes destacaram-se: Holland (1962), Bremermann (1962)e Fraser (1957). Estes algoritmos são baseados na teoria da evolução de Darwin onde osindivíduos mais aptos têm maiores chances de procriar e, por conseguinte, passar parte desuas características para as gerações futuras.

Não discutiremos aqui as diversas peculiaridades e métodos para construção de algorit-mos genéticos, vamos nos ater apenas ao elementos necessários para entender o processo desimbiose. Alguns conceitos importantes são:

• Fitness: Medida de adaptabilidade de um indivíduo ao meio.• Genes: Blocos funcionais do DNA.• Genoma: A coleção de genes que forma um indivíduo.

XXXIX SBPO [1417]

Page 4: ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem FORTRAN, porém, ... método Kombi234 foram obtidos num código em MODULA-2 em MS-DOS

• Seleção: É responsável por selecionar os indivíduos mais aptos para o cruzamento. Osprincipais métodos de seleção são: torneio, elitismo e diversidade. Estes métodos podemser combinados.

• Crossover : Também conhecido como cruzamento ou recombinação, é a mistura de genesde dois indivíduos para gerar um descendente. Existem vários tipos de crossover, sendoos mais utilizados: ponto de corte, uniforme e máscara.

• Mutação: É a probabilidade de um gene qualquer do indivíduo mutar-se após a operaçãode recombinação.

4. SimbioseEm Allaby (1998) o termo simbiose é definido como um termo geral para descrever

situações em que organismo distintos vivem juntos em estreita relação. Em sua definiçãooriginal, o termo englobava todos os tipos de relações de mutualismo e parasitismo. Já emseu uso moderno a utilização do termo geralmente é restrita a interações mutuamente benéficasentre espécies (isto é, mutualismo).

Mutualismo é definido como uma interação entre membros de duas espécies que trazbenefícios para ambas. Pianka (1994) nos apresenta alguns exemplos de interações entreespécies como, por exemplo, passaros polinizadores e plantas floríveras, formigas e plantas,passaros e búfalos.

Watson e Pollack (1999) discutem o processo de simbiose para simulação biológica. Ten-tativas de simular as relações de simbiose, para solução de problemas de otimização, podemser encontradas na literatura em Eguchi et al (2003), Hirasawa et al (2000) e Mao et al (2000).Porém, nestes algoritmos cada indivíduo é tratado como se fosse de uma espécie única quedesenvolve relações de simbiose com outros individuos da mesma população, caracterizando-se como uma relação intraespecífica. Em Hirasawa et al (2000) é dado um exemplo destapossível relação: "se um indivíduo i vive próximo a um indivíduo j e o fitness de i é maiorque o de j, então o indivíduo i explora o indivíduo j".

5. Construção ComputacionalEm Khalifa et al (2006) é apresentada uma solução para o problema de corte utilizando

algoritmos genéticos. Neste trabalho os genes são processados aos pares, sendo que o primeirogene representa a quantidade de vezes que o padrão representado pelo segundo gene seráprocessado. Em nosso caso este segundo gene representará um indivíduo na população depadrões que, como pode ser visto na Figura 1, serve apenas como um ponteiro para populaçãode padrões, assim, no caso do indivíduo em destaque da Figura 1, temos três padrões distintos(37, 11 e 32) sendo executados, respectivamente, duas, quatro e cinco vezes cada, perfazendoum total de onze objetos processados.

Acreditamos que a relação biológica que mais se aproxima de nossa implementação é omutualismo, pois ambos indivíduos beneficiam-se da relação, caso ela apresente um bom nívelde adaptabilidade ao meio.

Nas próximas sub-seções explicaremos as peculiaridades de cada população e, neste ponto,é importante estabelecer que chamaremos os indivíduos da primeira população de soluções, eos indivíduos da segunda população de padrões.

Um dado importante que não pode ser atribuído a nenhuma das duas populações é ocritério de parada, em nosso caso temos três critérios:

XXXIX SBPO [1418]

Page 5: ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem FORTRAN, porém, ... método Kombi234 foram obtidos num código em MODULA-2 em MS-DOS

Figura 1: Estrutura dos genes.

• Tempo máximo de execução: 500 segundos;• Número máximo de gerações: 10.000 gerações;• Convergência: caso o algoritmo não consiga melhorar a solução pelo período de 500

gerações.

Outra importante informação é que as duas populações são geradas aleatoriamente, semqualquer espécie de direcionamento.

5.1. Indivíduos-SoluçõesListaremos agora as configurações gerais da população de soluções:

• Tamanho da população: 1000 indivíduos, apesar do grande custo computacional emlidar-se com uma população deste tamanho, ela apresenta uma grande diversidade, oque é importantíssimo para evitar convergências pré-maturas do algoritmo;

• Tipo de seleção: elitismo, são selecionados os 70% melhores indivíduos da população;este valor foi ajustado de forma experimental, acreditamos que represente um bombalanceamento entre preservação de indivíduos e geração de novos;

• Taxa de crossover : 30%;• Tipo de crossover : uniforme, 70% de chances para o melhor fitness;• Taxa de mutação: calculamos a probabilidade para que dois genes sofram mutação e o

substituímos de forma aleatória; caso seja um gene de frequência, será sorteado um valorentre os limites superior e inferior (descritos abaixo), senão será sorteado um indivíduoda população de padrões e um ponteiro será criado;

Devemos estimar o número máximo de setups que um problema poderá ter, para comisso determinarmos o tamanho da cadeia de DNA dos indivíduos. Escolheremos a quantidadede itens diferentes como o número máximo de setups, visto que este valor permite a obtençãodo valor ótimo de objetos processados no caso do problema com relaxação da restrição deintegralidade. Assim, o número de genes de nosso indivíduo será o dobro do número desetups. Porém, se o maior item a ser cortado apresentar um comprimento menor ou igual a50% do tamanho da barra, o seguinte procedimento é adotado:

XXXIX SBPO [1419]

Page 6: ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem FORTRAN, porém, ... método Kombi234 foram obtidos num código em MODULA-2 em MS-DOS

Se (Quantidade de Itens > 30) EntãoGenesSoluções = 32

Senão Se (Quantidade de Itens > 15) EntãoGenesSoluções = 24

SenãoGenesSoluções = 16

Fim-Se

Para os genes ímpares, o multiplicador, devemos definir o limite superior e inferior pararestringir a região de soluções do problema. Para o limite inferior atribuímos o valor zeroe para o limite superior definimos o valor da maior demanda para um único item, ou seja,o valor do limite superior será exatamente igual a maior demanda do pedido. Com isso, épossível que um item apareça em apenas um padrão e tenha toda sua demanda atendida.

Como nosso objetivo é minimizar tanto o número de objetos processados quanto aonúmero de setups, o cálculo do fitness (Fs) do indivíduo-solução é feito da seguinte forma:

Fs = c1

n∑

j=1

xj + c2

n∑

j=1

δ(xj) +n∑

j=1

τ(xj) + ρ

onde

• τ : refere-se a perda relativa, onde τ(xj) = tj

WnP

j=1(xj)

e tj é o desperdício do padrão j;

• ρ: são penalidades atribuídas caso a solução seja inviável, é proporcional a soma dasinfactibilidades.

Como podemos ver os valores c1 e c2 são tratados explicitamente, não sendo necessárionenhuma outra modificação para atingir diferentes objetivos.

O parâmetro τ tem duas importantes funções: a primeira é determinar se o algoritmoencontrou um ótimo local, já que uma pequena mudança na perda relativa acarretará numamelhora no fitness, prolongando sua execução; e a segunda é um fator de diferenciação, vistoque quando temos duas ou mais soluções com o mesmo fitness escolhemos apenas uma paraentrar na elite. Esta estratégia foi adotada com o intuito de aumentar a diversidade dapopulação de soluções.

Além disso, a cada 100 gerações geramos 300 novos indivíduos aleatoriamente para subs-tituirmos pelas 300 piores soluções da elite. Adotamos esta estratégia com o objetivo deaumentar a diversidade da população, visto que estes 300 indivíduos serão recombinados comos 400 melhores da elite.

5.2. Indivíduos-PadrõesListaremos agora as configurações gerais da população de padrões, que são significativa-

mente diferentes em comparação a de soluções:

• Tamanho da população: 600 indivíduos; valores pequenos desta população se mostramineficazes para diversas classes de problemas, já que não conseguem obter uma grandediversidade, populações muito grandes apliaram o espaço de busca e prejudicaram aperformance do método proposto;

XXXIX SBPO [1420]

Page 7: ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem FORTRAN, porém, ... método Kombi234 foram obtidos num código em MODULA-2 em MS-DOS

• Tipo de seleção: elitismo, são selecionados os 66% melhores indivíduos; este valor tam-bém foi obtido de forma experimental;

• Taxa de crossover: 34%;• Tipo de crossover: 2 pontos, são sorteados, aleatoriamente, dois pontos de corte para

que seja feita a recombinação dos indivíduos;• Taxa de mutação: 90% de um único gene sofrer mutação, que é feita sorteando-se um

item para entrar no lugar do gene que sofreu a mutação;

O dimensionamento da cadeia de DNA dos padrões será igual ao maior inteiro menor ouigual ao quociente entre o comprimento da bobina padrão pelo comprimento da menor peçaencontrada no pedido. Assim garantimos que é possível formar um padrão utilizando apenaso item de menor comprimento, isto se faz necessário para que o algoritmo possa cobrir todasas maneiras para resolução do problema.

Porém, com isso, a maior dos padrões não poderão utilizar todos os genes disponíveis,pois o comprimento total das peças contidas no padrão excederá o comprimento da peçamestre. Para solucionar este problema, adicionamos itens ao padrão da esquerda para direita,tendo como referencial o vetor que dará origem ao padrão, se e somente se o padrão tivercomprimento livre suficiente para acomodar o item.

Para definir o fitness de cada padrão utilizamos a elite da população de soluções: paracada indivíduo na elite adicionamos pontos ao fitness desse padrão. Quanto melhor a soluçãomaior será a quantidade de pontos, segundo a seguinte regra:

Faça i = 1 até EliteSolucoesPara cada padrão j contido na solução i Faça

FitnessPadrao(j) = FitnessPadrao(j) + 1 + (1 / i)Fim-Para

Fim-Faça

5.3. Pseudo-códigoUma vez feita as descrições dos indivíduos das duas populações, descrevremos abaixo o

procedimento para se obter uma solução de boa qualidade para o problema de minimizar onúmero de objetos processados em conjunto com o número de setups.

Passo 1: Inicie os genes da população de soluções aleatoriamentePasso 2: Inicie os genes da população de padrões aleatoriamentePasso 3: Calcule o fitness dos indivíduos-soluçõesPasso 4: Selecione as soluções com melhor fitnessPasso 5: Adicione pontos aos padrões utilizados pelas melhores soluçõesPasso 6: Selecione os padrões com melhor fitnessPasso 7: Utilize os operadores de crossover e mutação para gerar novas soluçõesPasso 8: Utilize os operadores de crossover e mutação para gerar novos padrõesPasso 9: Se algum critério de parada for satisfeito Pare a execução do algoritmo, senão

retorne ao Passo 3

6. Testes ComputacionaisPara aferir a qualidade do nosso método fizemos testes com 1800 problemas gerados pelo

CUTGEN1 proposto por Gau e Wascher (1995), divididos em 18 classes, com a mesma semente

XXXIX SBPO [1421]

Page 8: ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem FORTRAN, porém, ... método Kombi234 foram obtidos num código em MODULA-2 em MS-DOS

e parâmetros utilizados por Foester e Wascher (2000). Comparamos o método proposto,em termos de qualidade de soluções, com as heurísticas SHP, proposta por Haessler (1975),Kombi234, desenvolvida por Foester e Wascher (2000) e ANLCP300, proposta por Salles Netoe Moretti (2005).

Classe 1 2 3 4 5 6 7 8 9v1 0,01 0,01 0,01 0,01 0,01 0,01 0,01 0,01 0,01v2 0,2 0,2 0,2 0,2 0,2 0,2 0,8 0,8 0,8m 10 10 20 20 40 40 10 10 20d 10 100 10 100 10 100 10 100 10

Tabela 1: Variáveis para as classes de 1 a 9.

Classe 10 11 12 13 14 15 16 17 18v1 0,01 0,01 0,01 0,2 0,2 0,2 0,2 0,2 0,2v2 0,8 0,8 0,8 0,8 0,8 0,8 0,8 0,8 0,8m 20 40 40 10 10 20 20 40 40d 100 10 100 10 100 10 100 10 100

Tabela 2: Variáveis para as classes de 10 a 18.

Implementamos o algoritmo na linguagem FORTRAN 90/95 utilizando o compiladorMicrosoft FORTRAN Power Station num micro-computador AMD SEMPRON 2300+ 1533MHz com 640MB de memória RAM. Os métodos ANLCP e SHP também foram progra-mados na linguagem FORTRAN, porém, utilizando um compilador g77 para Linux, nummicro-computador AMD AthlonXP 1800 Mhz com 512MB de RAM. Já os resultados para ométodo Kombi234 foram obtidos num código em MODULA-2 em MS-DOS 6.0 usando umIBM 486/66, implementado pelo próprios autores Foester e Wascher (2000).

7. Resultados ComputacionaisApresentamos os resultados do método proposto para três custos diferentes de setup:

c2 = {1, 5, 10}, que chamaremos, repectivamente, de Symbio01, Symbio05 e Symbio10. NaTabela 4 apresentamos as médias de setups e objetos processados para as 18 classes.

SHP Kombi234 ANLCP300 Symbio01 Symbio05 Symbio10Classe Set. Obj. Set. Obj. Set. Obj. Set. Obj. Set. Obj. Set. Obj.

1 3,95 14,17 3,40 11,49 3,02 14,30 3,09 12,59 2,02 14,19 1,85 14,842 5,94 116,47 7,81 110,25 4,5 121,48 6,11 115,17 5,28 116,26 4,68 117,803 5,00 25,29 5,89 22,13 4,84 25,14 5,74 25,96 4,80 27,43 4,47 28,234 7,31 225,33 14,26 215,93 7,28 224,86 10,59 235,93 9,86 236,89 9,36 239,725 6,87 46,89 10,75 42,96 7,02 45,66 9,89 57,17 8,44 60,85 8,23 61,426 10,81 433,59 25,44 424,71 10,92 432,72 30,07 472,95 14,16 518,81 14,08 518,857 8,84 55,84 7,90 50,21 5,54 51,54 6,36 51,58 5,48 53,04 5,21 53,758 9,76 515,76 9,96 499,52 8,00 495,94 8,51 510,5 8,16 512,92 7,76 514,659 17,19 108,54 15,03 93,67 10,58 114,52 10,94 99,36 10,47 99,41 101,62 10,0110 19,37 1001,59 19,28 932,32 13,96 969,20 16,70 970,57 16,28 975,56 16,04 975,7211 32,20 202,80 28,74 176,97 20,00 231,84 23,04 198,26 22,24 201,43 21,56 201,4412 37,25 1873,05 37,31 1766,20 23,68 1861,20 32,93 1932,16 31,74 1932,79 31,52 1917,413 9,38 69,97 8,97 63,27 5,64 70,54 7,28 65,23 6,7 66,51 6,68 67,3214 9,85 643,55 10,32 632,12 7,92 634,02 8,62 646,77 8,3 646,31 8,21 650,5215 18,03 136,03 16,88 119,43 9,92 127,38 13,66 127,39 13,18 128,43 12,99 128,8716 19,63 1253,55 19,91 1191,80 13,88 1194,74 16,68 1254,69 16,57 1253,79 16,34 1251,9017 34,39 256,01 31,46 224,68 22,60 297,58 27,22 244,49 25,82 248,67 25,62 247,6218 38,23 2381,54 38,28 2342,40 27,44 2430,04 32,70 2414,07 32,03 2419,34 32,18 2422,41

Tabela 3: Médias de setups e objetos processados para as 18 classes.

Na Tabela 5 apresentamos as comparações entre o custo total do algoritmo proposto,Symbio01, em relação aos outros métodos. Para efetuarmos o cálculo da variação do custototal do Symbio01 em relação ao método ANLCP300 utilizamos a seguinte expressão: 100 ∗

XXXIX SBPO [1422]

Page 9: ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem FORTRAN, porém, ... método Kombi234 foram obtidos num código em MODULA-2 em MS-DOS

(CustoTotalSymbio01 − CustoTotalANLCP300)/CustoTotalSymbio01. O cálculo para compara-ção dos outros métodos e custos foi realizado de forma análoga e os resultados podem servistos nas Tabelas 6 e 7 para, respectivamente, os custos de setup 5 e 10.

Classe SHP Kombi234 ANLCP3001 -13,46% +5,04% -9,47%2 -0,92% +2,65% -3,73%3 +4,44% +11,61% +5,42%4 +5,96% +7,02% +6,18%5 +19,83% +19,90% +21,44%6 +11,65% +10,51% +11,80%7 -10,42% -0,29% +1,48%8 -1,24% +1,83% +2,90%9 -12,27% +1,45% -11,83%10 -3,30% +3,61% +0,41%11 -5,83% +7,04% -11,83%12 +2,79% +8,22% +4,08%13 -8,62% +0,37% -4,82%14 +0,30% +1,97% +2,35%15 -8,44% +3,36% +2,68%16 -0,14% +4,69% +5,19%17 -6,43% +5,73% -15,14%18 +1,10% +2,70% -0,43%

Tabela 4: Variação percentual do custo total do Symbio01 em relação aos outros métodos parac1 = c2.

O Symbio01 obteve resultados melhores em comparação com o SHP em 11 classes; em 7classes em relação ao ANLCP300 e apenas em 1 classe comparando-o com o método Kombi234.Vale ressaltar que com estes custos, c1 = c2 = 1, o Symbio obteve seu pior desempenho.Entretanto, o custo do setup, na prática, raramente é igual ao custo de cada objeto processado.

Classe SHP Kombi234 ANLCP3001 -28,39% -14,7% -17,38%2 -2,40% -4,45% -0,92%3 +2,21% -0,29% +4,06%4 +8,49% -0,36% +8,71%5 +21,16% +6,15% +21,63%6 +17,29% +6,39% +17,35%7 -19,59% -10,33% +1,49%8 -1,92% +0,79% +3,21%9 -21,97% -10,10% -9,35%10 -3,77% +2,67% +1,70%11 -14,06% -2,50% -5,79%12 +1,53% +6,63% +5,35%13 -14,42% -7,50% +1,27%14 -0,72% +0,59% +2,35%15 -14,08% -4,66% +8,93%16 -1,11% +3,39% +5,42%17 -11,73% -1,10% -7,99%18 +0,25% +1,77% +0,47%

Tabela 5: Variação percentual do custo total do Symbio05 em relação aos outros métodos para c1 = 1e c2 = 5.

Comparando o Symbio05 relação aos outros métodos, obtivemos resultados melhores queo SHP em 12 classes, em comparação ao Kombi234 em 10 classes e em relação ao métodoANLCP300 o método obteve melhores médias de custo em 5 classes.

Por fim, comparando os resultados do Symbio10, o algoritmo proposto apresentou melho-res resultados em 13 classes em comparação ao SHP, em relação ao Kombi234 em 14 classes eem relação ao ANLCP300 em 7 classes. Foi com estes custos, c1 = 1 e c2 = 10, que o Symbioobteve seu melhor desempenho.

O tempo de processamento não apresentou diferenças significativas entre os três custostestados.

XXXIX SBPO [1423]

Page 10: ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem FORTRAN, porém, ... método Kombi234 foram obtidos num código em MODULA-2 em MS-DOS

Classe SHP Kombi234 ANLCP3001 -37,88% -26,71% -25,07%2 -6,41% -12,61% -1,13%3 -3,13% -9,99% -0,83%4 +9,65% -7,87% +10,97%5 +19,57% -4,48% +19,38%6 +17,88% -2,86% +17,85%7 -26,62% -18,08% -1,02%8 -3,44% -1,14% +2,75%9 -28,07% -17,32% -8,44%10 -4,45% +0,97% +2,40%11 -20,53% -10,19% -3,43%12 -0,57% +4,18% +6,03%13 -18,47% -12,72% +4,92%14 -1,27% -0,37% +2,92%15 -18,19% -10,22% +12,43%16 -2,38% +1,72% +5,77%17 -16,02% -6,57% -3,77%18 -0,71% +0,69% +1,45%

Tabela 6: Variação percentual do custo total do Symbio10 em relação aos outros métodos para c1 = 1e c2 = 10.

Classe 1 2 3 4 5 6 7 8 9SHP 0,01 0,08 0,17 0,21 0,27 0,31 0,01 0,02 0,04

Kombi234 0,14 1,14 1,74 16,00 38,03 379,17 0,07 0,20 3,37ANLCP300 1,12 3,17 0,89 1,15 0,64 0,91 18,1 11,78 105,49Symbio05 18,54 37,88 33,25 68,11 58,29 158,04 19,62 48,48 38,75

Tabela 7: Tempo médio de processamento (em segundos) para cada método da classe 1 a 9.

Classe 10 11 12 13 14 15 16 17 18SHP 0,06 0,22 0,32 0,01 0,02 0,03 0,04 0,16 0,24

Kombi234 3,25 36,26 76,31 0,08 0,13 1,81 2,60 50,93 70,94ANLCP300 106,59 216,97 376,04 7,43 2,02 60,02 39,87 267,02 538,92Symbio05 127,25 117,85 426,08 17,66 31,19 41,12 133,90 153,45 388,89

Tabela 8: Tempo médio de processamento (em segundos) para cada método da classe 10 a 18.

8. Conclusões e PerspectivasComparando os resultados obtidos observamos que o Symbio apresentou melhor desem-

penho para altos custos de setup. Observando o desempenho do Symbio10 podemos verificarque o algoritmo aprensenta os melhores resultados em comparação com os outros métodos em7 classes.

Podemos perceber que a diferença percentual entre a classe mais rápida e a mais lenta émenor no Symbio, donde podemos concluir que o método é o que apresenta maior estabilidadedentre os quatro algoritmo avaliados. Acreditamos que modificações na estrutura do algoritmopodem melhorar muito seu rendimento.

Uma vantagem do Symbio em relação aos métodos Kombi234 e SHP é a capacidadede trabalhar com os custos c1 e c2 diretamente na função objetivo, o único outro métodoque temos conhecimento que trabalhe com os custos explicitamente na função objetivo é oANLCP. Estes custos na prática são variáveis e dependem de diversos fatores como demanda,tempo de entrega e custo de mão-de-obra, e só podem ser definidos com todos os dados emmãos.

Temos por certo que variáveis como taxa de mutação, tamanho da população e quantidadede genes tem grande influência na solução final. O dimensionamento dos genes para problemasque tenham itens com comprimento inferior a 50% da barra foi feito de forma diferente

XXXIX SBPO [1424]

Page 11: ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem FORTRAN, porém, ... método Kombi234 foram obtidos num código em MODULA-2 em MS-DOS

com o intuito de melhorar a solução dos problemas que possuem esta característica, o queapresentou grande melhora nos resultados. Analisando os resultados podemos perceber queo algoritmo tem melhor desempenho em problemas em que a demanda é em média de 10peças. Acreditamos que modificações em algumas variáveis podem melhorar o desempenhodo método para as classes com demanda média de 100 peças.

Por fim, vale enfatizar que esta é a primeira aplicação de um modelo de simbiose, tra-balhando com duas populações distintas, a um problema de otimização, o que é de granderelevância para o estudo de algoritmos genéticos.

Agradecimentos: Este trabalho teve apoio da FAPERJ e do CNPq através do projetoE-26/171.089/2006.

Referências

Allaby, M. Dictionary of Ecology, Oxford University Press, New York, 1998.Boleta, D. A. F., Araújo, S. A., Constantino, A. A., e Poldi, K. C. “Uma heurística para o

problema de corte e estoque unidimensional inteiro”. Anais do XXXVII Simpósio Brasileirode Pesquisa Operacional, pp: 1869-1879, 2005.

Bremermann, H. J. “Optimization through evolution and recombination”, Spartan Books, pp:93-106, 1962.

Dowsland, K. and Dowsland, W. “Packing Problems”, European Journal of Operational Re-search, vol. 56, pp: 2-14, 1992.

Dyckhoff, H. “A typology of cutting and packing problems”, European Journal of OperationalResearch, vol. 56, pp: 145-159, 1990.

Eguchi, T., Hirasawa, K. e Hu, J. “Symbiotic Evolutional Models in Multiagent Systems”,The 2003 Congress on Evolutionary Computation, vol. 2, pp: 739-746, 2003.

Eilon, S. “Optimizing the shearing of steel bars”, Journal of Mechanical Engineering Science,vol. 2, pp: 129-142, 1960.

Foester, H. e Wascher, G. “Pattern Reduction in One-dimensional Cutting-Stock Problem”,International Journal of Prod. Res., vol. 38, 1657-1676, 2000.

Fraser, A. S. “Simulation of genetic systems by automatic digital computers: I. Introduction”,Austral. J. Biol. Sci., vol. 10, pp: 484-491, 1957.

Gau, T. e Wascher, G., “CUTGEN1: A Problem Generator for the Standard One-dimensionalCutting Stock Problem”, European Journal of Operational Research, vol. 84, pp: 572-579,1995.

Gilmore, P.C. e Gomory, R.E., “A Linear Programming Approach to the Cutting Stock Pro-blem”, Operations Research, vol. 9, pp: 849-859, 1961.

Gilmore, P.C. e Gomory, R.E., “A Linear Programming Approach to the Cutting Stock Pro-blem”, Operations Research, vol. 11, pp: 864-888, 1963.

Haessler, R., “Controlling Cutting Pattern Changes in One-Dimnesional Trim Problems”,Operations Research, vol. 23, pp. 483-493, 1975.

Hirasawa, K., Ishikawa, I., Hu, J., Jin, C. e Murata J., “Genetic Symbiosis Algorithm”, Pro-ceedings of the Congress on Evolutionary Computation, vol. 2, pp: 02-xxvi, 2000.

Holland, J.H., “Outline for a logical theory of adaptive systems”, J. Assoc. Comput. Mach.,vol. 3, pp. 297-314, 1962.

XXXIX SBPO [1425]

Page 12: ALGORITMOGENÉTICOSIMBIÓTICOAPLICADOAOPROBLEMA ... · 5.3. Pseudo-código ... mados na linguagem FORTRAN, porém, ... método Kombi234 foram obtidos num código em MODULA-2 em MS-DOS

Khalifa, Y., Salem, O. e Shahin, A., “Cutting Stock Waste Reduction Using Genetic Algo-rithms”. Proceedings of the 8th Conference on Genetic and evolutionary computation, pp.1675-1680, 2006.

Kantorovich, L. V., “Mathematical Methods of Organizing and Planning Production”, Mana-gement Science, vol. 6, pp 366-422, 1960.

Mao, J., Hirasawa, K., Hu, J. e Murata, J., “Genetic Symbiosis Algorithm for MultiobjectiveOptimization Problem”, Proceedings of the IEEE Interenational Workshop on Robot andHuman Interactive Communication, pp: 137-142, 2000.

Metzger, R. W., “Stock Slitting”, Elementary Mathematical Programming, Wiley, 1958.Paull, A. E. e Walter, J. R., “The trim problem: an application of linear programming to the

manufacture of news-print paper”, Presented at Annual Meeting of Econometric Society,Montreal, pp. 10-13, 1954.

Pianka, E. R. Evolutionary Ecology, HarperCollins College Publisher, New York, 1994.Salles Neto, L. L. e Moretti, A. C., “Modelo Não-Linear para Minimizar o Número de Obje-

tos Processados e o Setup num Problema de Corte Unidimensional”, Anais do XXXVIISimpósio Brasileiro de Pesquisa Operacional, pp: 1679-1688, 2005.

Watson, R. A. e Pollack, J. B., “How Symbiosis Can Guide Evolution”, Advances in ArtificialLife: 5th European Conference, Springer, 1999.

Von Zuben, F. J., “Computação Evolutiva: uma abordagem pragmática”, Disponível on-line em: ftp://ftp.dca.fee.unicamp.br/pub/docs/vonzuben/tutorial/tutorialEC.pdf, UNI-CAMP, 2003.

XXXIX SBPO [1426]