Algoritmo de Seleção Clonal para a Minimização de...

80
UNIVERSIDADE PRESBITERIANA MACKENZIE PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA Algoritmo de Seleção Clonal para a Minimização de Rearranjos em Operações de Pilhas de Contêineres Aluno: Luiz Antonio Carraro Orientador: Prof. Dr. Leandro Nunes de Castro São Paulo 2012 Dissertação apresentada à banca de mestrado do Programa de Pós-Graduação em Engenharia Elétrica da Universidade Presbiteriana Mackenzie, como requisito parcial para a obtenção do título de Mestre em Engenharia Elétrica. Área de Concentração: Engenharia da Computação.

Transcript of Algoritmo de Seleção Clonal para a Minimização de...

Page 1: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

UNIVERSIDADE PRESBITERIANA MACKENZIE

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

Algoritmo de Seleção Clonal para a Minimização de

Rearranjos em Operações de Pilhas de Contêineres

Aluno: Luiz Antonio Carraro

Orientador: Prof. Dr. Leandro Nunes de Castro

São Paulo

2012

Dissertação apresentada à banca de mestrado do

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

Elétrica da Universidade Presbiteriana Mackenzie,

como requisito parcial para a obtenção do título de

Mestre em Engenharia Elétrica.

Área de Concentração: Engenharia da Computação.

Page 2: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

2

C313p Carraro, Luiz Antonio.

Algoritmo de seleção clonal para a minimização de rearranjos em

operações de pilhas de contêineres / Luiz Antonio Carraro. – 2012.

75 f. : il.; 30 cm.

Dissertação (Mestrado em Engenharia Elétrica) –

Universidade Presbiteriana Mackenzie, São Paulo, 2012.

Bibliografia: f. 71-75.

1. Terminais de contêineres. 2. Planejamento. 3. Otimização.

4. Algoritmo de seleção clonal. 5. Meta-heurística. 6. Algoritmo

bioinspirado. I. Título. CDD 005.1

Page 3: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

3

UNIVERSIDADE PRESBITERIANA MACKENZIE

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

Algoritmo de Seleção Clonal para a Minimização de

Rearranjos em Operações de Pilhas de Contêineres

Aluno: Luiz Antonio Carraro

BANCA EXAMINADORA

__________________________________________________

Prof. Dr. Leandro Nunes de Castro

Universidade Presbiteriana Mackenzie

__________________________________________________

Prof. Dr. Arnaldo de Aguiar Vallim Filho

Universidade Presbiteriana Mackenzie

__________________________________________________

Prof. Dr. Myriam Regattieri Delgado

Universidade Tecnológica Federal do Paraná

São Paulo

2012

Dissertação apresentada à banca de mestrado do

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

Elétrica da Universidade Presbiteriana Mackenzie,

como requisito parcial para a obtenção do título de

Mestre em Engenharia Elétrica.

Área de Concentração: Engenharia da Computação.

Page 4: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

4

AGRADECIMENTOS

Agradeço ao orientador e amigo, Prof. Dr. Leandro Nunes de Castro, por todas as suas

contribuições à minha formação acadêmica, pelo incentivo, pela sua confiança e pelas

oportunidades proporcionadas.

À minha família, por todos os ensinamentos, amor, incentivo e por tudo que me

proporcionaram durante toda minha vida.

Aos amigos Diego Gadens e Steve Pereira pela amizade e companhia durante o

desenvolvimento deste trabalho.

Ao Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq) pela concessão

da bolsa e ao Mackpesquisa pelo apoio financeiro que possibilitou o desenvolvimento deste

trabalho.

À Universidade Presbiteriana Mackenzie (UPM) e ao Programa de Pós Graduação em

Engenharia Elétrica pela infraestrutura e suporte.

A todos os professores e colegas do Programa de Pós Graduação em Engenharia Elétrica que

contribuíram para minha formação e para este trabalho.

A todos aqueles que contribuíram direta ou indiretamente para a conclusão deste trabalho,

meus sinceros agradecimentos.

Page 5: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

5

RESUMO

A utilização de contêineres é uma solução amplamente adotada para o armazenamento da

carga a ser transportada entre portos, tornando-se de grande importância no comércio

internacional e, consequentemente, navios cresceram de tamanho com o objetivo de

transportar a maior quantidade possível de contêineres em cada viagem. Devido à crescente

demanda, terminais de contêineres enfrentam os desafios de aumentar a sua capacidade de

atendimento e otimizar os tempos de carregamento e descarregamento de navios. Problemas

de otimização como estes geralmente apresentam características que inviabilizam a obtenção

de soluções analíticas fechadas, requerendo processos iterativos de busca em espaços de

dimensão muitas vezes elevada, ou ainda sujeitos a explosão combinatória de possíveis

soluções. Esta dissertação apresenta a proposta de uma meta-heurística bioinspirada baseada

no Algoritmo de Seleção Clonal para a minimização de rearranjos em operações que

envolvem pilhas de contêineres, denominado MRC. O desempenho do algoritmo foi avaliado

por meio de simulações e comparação dos resultados com os obtidos por algoritmos da

literatura sob as mesmas condições de teste. Os resultados obtidos permitem concluir que o

MRC possui resultados competitivos em termos de minimização de rearranjos, além de

apresentar um tempo de processamento reduzido quando comparado aos modelos

tradicionalmente empregados na solução desse tipo de problema.

Palavras-chave: terminais de contêineres, planejamento, otimização, algoritmo de seleção

clonal, meta-heurística, algoritmo bioinspirado.

Page 6: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

6

ABSTRACT

A container is a broadly used solution for the cargo storage to be transported between ports,

playing a central role in international trade. Consequently, ships grew in size in order to

maximize their container transportation capacity in each trip. Due to increasing demand,

container terminals face the challenges of increasing their service capacity and optimizing the

loading and unloading time of ships. Optimization problems, such as these, often present

features that make it impossible to obtain closed analytical solutions, requiring iterative search

procedures in high-dimensional spaces, or subject to a combinatorial explosion of possible

solutions. This dissertation presents the proposal of a novel meta-heuristic based on the

Clonal Selection Algorithm, named MRC, to minimize the number of reshuffles in operations

involving piles of containers. The performance of the proposed model was evaluated through

simulations and results comparison with those obtained by algorithms from the literature

under the same test conditions. The results obtained show that MRC is competitive in terms of

minimizing the need of reshuffles, besides presenting a reduced processing time compared

with models of similar performance.

Keywords: container terminals, planning, optimization, clonal selection algorithm, meta-

heuristic, bioinspired algorithm.

Page 7: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

7

LISTA DE FIGURAS

Figura 2.1: Visão geral de um TECON onde é possível identificar a divisão de blocos em

pilhas de contêineres. (Fonte: DEKKER, 2006) ............................................................. 20

Figura 2.2: Um bloco de contêineres em que a primeira pilha possui cinco fileiras de altura.

(Fonte: WAN et al., 2007)............................................................................................... 21

Figura 2.3: Organização de um TECON (Fonte: BORGMAN et al., 2010). ........................... 22

Figura 2.4: Gantry Crane (GC). (Fonte: VIS & de KOSTER, 2003) ....................................... 22

Figura 2.5: Uma forma de esvaziar uma pilha (Fonte: WAN et al., 2009). ............................. 27

Figura 2.6: Primeira ramificação. ............................................................................................. 32

Figura 2.7. Cenários da Heurística LS em um exemplo de aplicação. (Wan et al, 2009) ........ 35

Figura 2.8: Exemplo de execução da heurística de Índice de Rearranjo. ................................. 36

Figura 2.9: Pilha de tamanho 3×3 onde o contêiner 6 deverá ser rearranjado para a obtenção

do contêiner 3. ................................................................................................................. 38

Figura 3.1: Reconhecimento de um antígeno (Fonte: DE CASTRO, 2006). ........................... 44

Figura 3.2: Seleção Clonal (Fonte: DE CASTRO, 2006)......................................................... 45

Figura 3.3: Maturação de afinidade a sucessivas respostas imunológicas. (Fonte: DE

CASTRO, 2006). ............................................................................................................. 46

Figura 3.4: Diagrama de blocos do Algoritmo de Seleção Clonal ........................................... 49

Figura 4.1: Representação de umacélula (solução candidata). Os índices sobre cada posição

representam cada contêiner que pode ser rearranjado no estágio xi. Cada posição

representa a movimentação do contêiner para a posição exibida, partindo da

configuração inicial da pilha. Posições vazias indicam que não há movimentação para o

contêiner. ......................................................................................................................... 51

Figura 4.2: (a) Pilha inicial. (b) Pilha após o estágio x1. (c) Pilha após o estágio x2. (d) Pilha

após o estágio x3. ............................................................................................................. 51

Figura 4.3: Processo de mutação onde o estágio de início para a mutação foi o x3. Em

consequência, obteve-se a melhora do fitness do indivíduo, uma vez que os contêineres

4, 5 e 6 agora poderão ser retirados sem a necessidade de rearranjos. ........................... 52

Figura 5.1: (a) Instância do problema de desempilhamento com 7 contêineres. (b) pilha vazia.

......................................................................................................................................... 56

Figura 5.2: Normalização de uma pilha infactível de tamanho 3×3 com 5 contêineres criada

pelo algoritmo de geração de dados para experimentos.................................................. 57

Page 8: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

8

Figura 5.3: Sequencia de 10 conteineres de entrada e de saída. ............................................... 58

Figura 5.4: Adição de um novo contêiner com prioridade 13. A prioridade do contêiner é

então ajustada para a situação atual da pilha, atualizando-a para 6. ............................... 58

Figura 5.5: Inserção de um contêiner com prioridade existente. Neste caso, a prioridade do

novo contêiner é mantida, e os subsequentes a ele são atualizados para manter a ordem

de retirada. ....................................................................................................................... 59

Figura 5.6: Remoção do contêiner de maior prioridade (1) e atualização dos índices. ............ 59

Figura 5.7: Pilha (P1) tamanho (c,f) = (6,5) contendo 21 contêineres para testes e análise de

sensibilidade paramétrica. ............................................................................................... 60

Figura 5.8: Pilha (P2) de tamanho (c,f) = (8,5) contendo 36 conteinêres para testes e análise de

sensibilidade paramétrica. ............................................................................................... 60

Figura 5.9: Relação entre a quantidade de células no repertório e a qualidade da solução

obtida para a pilha P1 ...................................................................................................... 61

Figura 5.10: Relação entre a quantidade de células no repertório e a qualidade da solução

obtida para a pilha P2 ...................................................................................................... 61

Figura 5.11: Relação entre o tamanho do repertório de soluções candidatas e o tempo de

execução do algoritmo para a pilha P1. ........................................................................... 62

Figura 5.12: Relação entre o tamanho do repertório de soluções candidatas e o tempo de

execução do algoritmo para a pilha P2.. .......................................................................... 62

Figura 5.13: Relação entre a quantidade máxima de clones por célula (Nc) e a qualidade dos

resultados obtidos em rearranjos para P1. ....................................................................... 63

Figura 5.14: Relação entre a quantidade máxima de clones por célula (Nc) e a qualidade dos

resultados obtidos em rearranjos para P2. ....................................................................... 63

Figura 5.15: Relação entre a quantidade máxima de clones por célula (Nc) e o tempo de

execução em segundos para os testes na pilha P1. .......................................................... 64

Figura 5.16: Relação entre a quantidade máxima de clones por célula (Nc) e o tempo de

execução em segundos para os testes na pilha P2. .......................................................... 64

Figura 5.17: Relação entre a inclusão de diversidade (d) e a qualidade dos resultados obtidos

em rearranjos para a pilha P1. .......................................................................................... 65

Figura 5.18: Relação entre a inclusão de diversidade (d) e a qualidade dos resultados obtidos

em rearranjos para a pilha P2. .......................................................................................... 66

Figura 5.19: Relação entre a inclusão de diversidade (d) e o tempo de execução (seg) para P1.

......................................................................................................................................... 66

Page 9: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

9

Figura 5.20: Relação entre a inclusão de diversidade (d) e o tempo de execução (seg) para P2.

......................................................................................................................................... 67

Figura 5.21: Relação entre o parâmetro k e a qualidade das soluções obtidas em rearranjos

para P1. ............................................................................................................................ 68

Figura 5.22: Relação entre o parâmetro k e a qualidade das soluções obtidas em rearranjos

para P2. ............................................................................................................................ 68

Figura 5.23: Menor quantidade de rearranjos e média da quantidade de rearranjos do

repertório de soluções ao longo de, aproximadamente, 300 iterações. ........................... 71

Figura 5.24: Estimativa de rearranjos para esvaziar a pilha durante a entrada/saída de 55

contêineres....................................................................................................................... 73

Figura 5.25: Total de rearranjos estimados para cada uma das técnicas durante a simulação. 73

Page 10: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

10

LISTA DE TABELAS

Tabela 5.1: Tempo médio de execução/Gerações executadas .................................................. 67

Tabela 5.2: Comparação de desempenho entre o MRC, MRIP, MRIPk=6, SMB, IR e ENAR. 70

Tabela 5.3: Média de rearranjos da simulação e média do tempo de execução para 30

execuções. ................................................................................................................................. 72

Page 11: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

11

SUMÁRIO

AGRADECIMENTOS ............................................................................................................... 4

RESUMO ................................................................................................................................... 5

ABSTRACT ............................................................................................................................... 6

LISTA DE FIGURAS ................................................................................................................ 7

LISTA DE TABELAS ............................................................................................................. 10

SUMÁRIO ................................................................................................................................ 11

1 INTRODUÇÃO ................................................................................................................ 14

1.1 MOTIVAÇÃO ................................................................................................ 16

1.2 OBJETIVOS ................................................................................................... 17

1.3 PUBLICAÇÕES RELACIONADAS ............................................................. 18

1.4 ORGANIZAÇÃO DO DOCUMENTO .......................................................... 18

2 BASES CONCEITUAIS .................................................................................................. 19

2.1 PÁTIO DE TERMINAIS DE CONTÊINERES ............................................. 19

2.1.1 Estratégias de Empilhamento .................................................................... 23

2.1.2 Planejamento do Carregamento de Navios e Armazenamento no Pátio ... 25

2.2 DESCRIÇÃO DO PROBLEMA DE EMPILHAMENTO ............................. 26

2.3 TÉCNICAS APLICÁVEIS AO PROBLEMA: PROGRAMAÇÃO

MATEMÁTICA E METAHEURÍSTICAS ......................................................................... 29

2.3.1 Programação Inteira .................................................................................. 29

2.3.2 Branch-and-Bound .................................................................................... 31

2.3.3 Simulated Annealing ................................................................................. 33

2.3.4 MRIP e MRIPk .......................................................................................... 34

2.3.5 Heurística do Slot Mais Baixo .................................................................. 34

2.3.6 Heurística do Índice de Rearranjo (IR) ..................................................... 36

2.3.7 Heurística ENAR ...................................................................................... 36

Page 12: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

12

2.4 TRABALHOS RELACIONADOS ................................................................ 38

3 SISTEMAS IMUNOLÓGICOS NATURAIS E ARTIFICIAIS ...................................... 42

3.1 FUNDAMENTOS DO SISTEMA IMUNOLÓGICO .................................... 42

3.1.1 Medula Óssea ............................................................................................ 43

3.1.2 Reconhecimento de Padrões ..................................................................... 43

3.1.3 Princípio da Seleção Clonal ...................................................................... 44

3.1.4 Maturação de Afinidade ............................................................................ 45

3.2 SISTEMAS IMUNOLÓGICOS ARTIFICIAIS ............................................. 46

3.3 O ALGORITMO DE SELEÇÃO CLONAL .................................................. 48

4 UM ALGORITMO DE SELEÇÃO CLONAL APLICADO AO PROBLEMA DE

EMPILHAMENTO E DESEMPILHAMENTO DE CONTÊINERES.................................... 50

4.1 REPRESENTAÇÃO DOS ANTICORPOS .................................................... 50

4.2 MODELAGEM DA MUTAÇÃO .................................................................. 51

4.3 PSEUDOCÓDIGO ......................................................................................... 54

5 ANÁLISE DE DESEMPENHO ....................................................................................... 55

5.1 CENÁRIOS DE TESTE ................................................................................. 55

5.1.1 Caso Estático: Esvaziamento de Pilha ...................................................... 55

5.1.2 Caso Dinâmico: Simulação ....................................................................... 57

5.2 ANÁLISE DE SENSIBILIDADE PARAMÉTRICA .................................... 60

5.2.1 Tamanho do Repertório (R) ...................................................................... 61

5.2.2 Quantidade Máxima de Clones por Célula (Nc) ....................................... 63

5.2.3 Inclusão de Diversidade (d) ...................................................................... 65

5.2.4 Parâmetro k ............................................................................................... 67

5.2.5 Comentários Gerais Sobre a Sensibilidade Paramétrica ........................... 69

5.3 EXPERIMENTOS E RESULTADOS ............................................................ 69

5.3.1 Caso Estático ............................................................................................. 69

5.3.2 Caso Dinâmico .......................................................................................... 71

Page 13: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

13

6 CONCLUSÕES E DISCUSSÃO ..................................................................................... 74

REFERÊNCIAS BIBLIOGRÁFICAS ..................................................................................... 76

Page 14: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

14

1 INTRODUÇÃO

A partir da década de 1960 os contêineres ganharam muita importância no comércio

internacional como meio para a armazenagem da carga a ser transportada entre portos. Navios

cargueiros cresceram substancialmente de tamanho, chegando a mais de 8.000 TEUs (Twenty

Feet Equivalent Unit)1. Um dos modais que mais se beneficia da utilização do contêiner é o

aquaviário, em específico o marítimo. Segundo Steeken et al. (2004), aproximadamente 60%

do transporte marítimo utiliza contêineres. Um terminal de contêineres (TECON) é o

ambiente no qual são feitos o carregamento e descarregamento de contêineres, além de ser o

local de maior concentração de operações com contêineres na cadeia logística. A alta

utilização de contêineres resulta em uma grande demanda de serviços nestes locais. Por causa

desta alta demanda e da competitividade entre os portos, principalmente os geograficamente

próximos, os terminais devem garantir rapidez e qualidade em seus processos.

Para fazer o transporte da carga eficientemente, o tempo do navio no terminal deve ser

o menor possível. Isso implica que uma grande quantidade de contêineres deve ser

manipulada em um pequeno intervalo de tempo e com um mínimo uso de pátio e

equipamentos (VIS & DE KOSTER, 2003). Em consequência, terminais de contêineres

enfrentam o desafio de aumentar sua capacidade de atendimento (armazenagem,

carregamento e descarregamento) e diminuir os tempos de carregamento e descarregamento

dos navios que atracam no porto. Para atingir essas metas, os terminais devem empregar

equipamentos modernos e otimizar seus processos logísticos.

É possível distinguir três níveis de planejamento e controle de tomada de decisão para

a obtenção de um terminal eficiente (CHEN et al., 2004; LEE et al., 2006):

1. Nível estratégico: Envolve a organização do terminal e equipamentos a serem

usados, como stackers e Rubber Tyred Gantry (RTGs), cujo horizonte de decisão

pode ser da ordem de um a vários anos. As decisões deste nível devem acarretar

restrições que afetarão os níveis tático e operacional;

2. Nível tático: Quais as informações a serem utilizadas e quais as decisões gerais a

serem tomadas. Um exemplo de decisão geral é definir qual a quantidade de

1 Twenty Feet Equivalent Unit (TEU) é uma unidade inexata de capacidade de carga muitas vezes usada para

descrever a capacidade de navios de contêineres e terminais de contêineres. Um TEU representa a capacidade de

Page 15: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

15

contêineres que cada bloco comportará. O horizonte de decisão deste nível pode

ser da ordem de dias a meses;

3. Nível operacional: Este nível envolve a solução de problemas diários detalhados,

como, por exemplo, onde alocar os contêineres. O horizonte de decisão deste nível

é da ordem de horas a dias.

O tempo que um navio permanece atracado no porto conta como uma considerável

parte da sua jornada. As linhas normalmente estão preocupadas com o tempo de espera para o

atendimento e o tempo de atendimento no porto. Ao diminuir o tempo de permanência de um

navio no porto reduz-se o tempo total de viagem e, consequentemente, o custo do transporte

será menor. Tendo em vista o objetivo de diminuir o tempo de permanência de navios nos

terminais, vários modelos de planejamento operacional veem sendo estudados, focando

essencialmente os processos de armazenamento, retirada e encaminhamento de contêineres

para o carregamento em navios.

Devido a grande quantidade de estados, o problema de empilhamento de contêineres é

dito ser do tipo intratável do ponto de vista computacional (GAREY & JOHNSON, 1979;

AVRIEL et al., 2000). Este fator implica que a quantidade de soluções candidatas, sendo estas

boas ou não, deve crescer exponencialmente em função do tamanho da instância do problema

(LEWIS & PAPADIMITRIOU, 1998). Como consequência do elevado tempo de

processamento que problemas desta classe demandam em suas execuções, diversas heurísticas

veem sendo desenvolvidas com o objetivo de otimizar resultados.

Algoritmos bioinspirados são modelos computacionais inspirados em fenômenos

biológicos com o objetivo geral de resolver problemas e sintetizar fenômenos naturais (DE

CASTRO, 2006). Existem diversos modelos bioinspirados com foco em otimização, dentre os

mais comuns é possível citar os algoritmos evolutivos, os enxames de partículas, os sistemas

imunológicos artificiais, dentre outros (DE CASTRO, 2007).

Este trabalho propõe o uso de um algoritmo imunológico para resolver o problema de

empilhamento e desempilhamento de contêineres, com foco na otimização (minimização) de

rearranjos (movimentos improdutivos).

Page 16: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

16

1.1 MOTIVAÇÃO

O setor portuário, motivado pela Lei de Modernização dos Portos (8630/93) (ANTAQ, 2011),

tem se apoiado na Tecnologia da Informação (TI) como uma das alternativas para desenvolver

estratégias de melhoria operacional (PHONLOR & MAÇADA, 2002). Segundo Caridade

(2000), a gestão logística nos terminais portuários no futuro deverá ser realizada

essencialmente através do gerenciamento da informação e, portanto, as empresas no setor

deverão investir em sistemas de apoio à tomada de decisão de última geração com o objetivo

de oferecer serviços de qualidade competitivos com o mercado. O papel estratégico das

operações em terminais portuários tem ganhado importância devido ao nível de detalhamento

e complexidade das atividades envolvidas. Por consequência, vários setores industriais veem

realizando investimentos significativos em Tecnologia da Informação (TI) visando aumentar a

sua competitividade em relação aos concorrentes.

Um terminal de contêineres trabalha com objetivos operacionais múltiplos e em vários

setores, porém é possível identificar duas tarefas que exercem maior influência para a

efetividade do terminal: minimizar o tempo de permanência dos navios no porto e maximizar

a saída de contêineres. Tais problemas devem ser associados aos contêineres de exportação,

uma vez que estes estão vinculados ao plano de navegação de navios específicos e, portanto,

possuem seu tempo de permanência no terminal pré-estabelecido. Com tais informações é

possível então saber quando estes serão requisitados para o transporte, criando também a

oportunidade de otimizar o processo de armazenamento e manipulação de contêineres.

A pressão competitiva pelo uso do espaço e a competição com outros portos e terminais

forçam os planejadores a usarem otimamente o pátio, o que faz com que o problema de

otimização do pátio de contêineres torne-se crucial para a operação, viabilidade comercial e

lucratividade do terminal. Além disso, quando se busca otimização de um terminal nos níveis

tático e operacional, há varias tarefas a serem otimizadas, como a alocação de berços para os

navios, alocação do pátio de contêineres, organização do pátio, sequenciamento de guindastes,

como stackers e RTGs, sequenciamento de caminhões, sequenciamento das tarefas de

carregamento e descarregamento dos navios, dentre outros (STEENKEN et al., 2004).

Problemas como estes são de natureza combinatória e, portanto, quase sempre podem ser

resolvidos em tempo aceitável por métodos aproximados de busca, tais como o que será

proposto nesse trabalho.

Page 17: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

17

Este trabalho investiga o uso de um algoritmo de Seleção Clonal no contexto de

planejamento operacional. Será considerado o problema de empilhamento/desempilhamento

de contêineres em terminais com elevado grau de complexidade computacional, espaço de

busca discreto e de dimensão elevada. Estas propriedades levam a uma explosão combinatória

de candidatos a solução, de modo que uma busca exaustiva pela solução ótima, dentre as

soluções candidatas, representa um procedimento computacionalmente intratável (GAREY &

JOHNSON, 1979). Avriel et al. (2000) verificaram que o problema geral de armazenamento

de contêineres visando à redução da quantidade de movimentos improdutivos é NP-Difícil

para pilhas a partir de quatro colunas e altura arbitrária. Problemas desta classe são

comumente tratados com a utilização de algoritmos de soluções aproximadas que, apesar de

nem sempre fornecerem a melhor solução possível, satisfazem as restrições do problema e

fornecem respostas aceitáveis do ponto de vista operacional.

Quando se opta por obter soluções aproximadas, existe uma diversidade muito grande

de métodos de otimização para instâncias particulares de problemas desta natureza, todos

ocupados em conciliar eficientemente o compromisso existente entre tratabilidade e qualidade

da solução (LEWIS & PAPADIMITRIOU, 1998). É exatamente nesse contexto que se

inserem os métodos computacionais de solução inspirados na biologia, assim como o

algoritmo de Seleção Clonal.

1.2 OBJETIVOS

Tendo em vista a necessidade de desenvolver modelos para otimizar o processo de

empilhamento e desempilhamento de contêineres, esta dissertação possui o objetivo de propor

a utilização de um algoritmo de Seleção Clonal como ferramenta para a obtenção de soluções

para o problema de empilhamento e desempilhamento de contêineres.

Dado o objetivo geral do projeto, esta dissertação possui quatro objetivos específicos:

1. Descrever o problema de empilhamento e desempilhamento de contêineres;

2. Propor a aplicação de um algoritmo de Seleção Clonal ao problema de

empilhamento e desempilhamento de contêineres;

3. Avaliar o desempenho da ferramenta desenvolvida em relação à qualidade dos

resultados obtidos; e

4. Comparar o desempenho desta ferramenta com outras existentes na literatura.

Page 18: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

18

1.3 PUBLICAÇÕES RELACIONADAS

CARRARO, L. A.; de CASTRO, L. N.; de RÉ, A. M. A Fuzzy Inference System

to Determine the Number of Clones in the Clonal Selection Algorithm. In: World

Congress on Nature and Biologically Inspired Computing, 2010, Kitakyushu,

Japan, 2010. p. 98-102.

CARRARO, L. A.; de CASTRO, L. N.; A Clonal Selection Algorithm for the

Container Stacking Problem. In: World Congress on Nature and Biologically

Inspired Computing, 2011, Salamanca, Spain, 2011.

CARRARO, L. A.; de CASTRO, L. N.; de RÉ, A. M.; FRANÇA, F. O. A Fuzzy

Inference System to Determine the Number of Clones in a Class of Artificial

Immune Systems. In: International Journal of Computational Intelligence and

Applications (IJCIA), World Scientific Publishing Company, 2011 (Aceito para a

publicação).

1.4 ORGANIZAÇÃO DO DOCUMENTO

Este documento está organizado da seguinte forma. O Capítulo 2 apresenta as bases

conceituais sobre o problema de empilhamento de contêineres, o funcionamento geral das

operações em um pátio de contêineres, estratégias de empilhamento e trabalhos relacionados

existentes na literatura. No Capítulo 3 são apresentados os conceitos que envolvem os

sistemas imunológicos naturais e artificiais e no Capítulo 4 o modelo de otimização proposto

nessa dissertação é apresentado. O Capítulo 5 apresenta e discute a análise de desempenho do

algoritmo, incluindo uma análise de sensibilidade paramétrica e resultados de aplicação em

ambiente estático e dinâmico. Por fim, o Capítulo 6 apresenta as conclusões sobre o

desenvolvimento deste pesquisa, bem como perspectivas de trabalhos futuros.

Page 19: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

19

2 BASES CONCEITUAIS

Simplificadamente, um contêiner é uma caixa utilizada para o transporte de mercadorias de

um local a outro. Apesar desta simples descrição, esta caixa foi um dos principais

catalisadores da padronização do transporte de cargas ao redor do mundo (VIS & de

KOSTER, 2003; STEEKEN et al., 2004). Sua utilização é feita há mais de meio século e o

investimento em equipamentos especializados para seu manuseio aumentou significantemente

a produtividade do transporte de mercadorias.

Os contêineres possuem medidas padronizadas, o que facilita sua utilização em

qualquer local do mundo. Dentre outros, o de vinte pés (20') costumava ser o mais utilizado e,

por isso, a unidade TEU (twenty-feet-equivalent unit) tornou-se padrão para mensurar a

quantidade de contêineres movimentados. Atualmente, o contêiner de 40' apresenta maior

utilização, sendo equivalente a 2 TEU (RODRIGUES, 2007).

Como em um terminal normalmente existe a necessidade constante de armazenar uma

grande quantidade de contêineres, estes são posicionados uns sobre os outros. Considerar a

organização de pilhas com altura elevada seria uma alternativa para suprir a demanda por

espaço em um terminal com grande atividade, porém, ao empilhar contêineres corre-se o risco

de empilhar um contêiner sobre outro que possui a data de partida mais próxima. Caso isto

ocorra, será necessário reorganizar a pilha a fim de retirar o contêiner desejado no momento, o

que consumirá tempo e recursos. Portanto, a forma como os contêineres são empilhados e

desempilhados possui grande impacto no tempo de carregamento de um navio e,

consequentemente, no custo de operação e transporte.

2.1 PÁTIO DE TERMINAIS DE CONTÊINERES

Apesar da grande variedade de terminais ao redor do mundo, estes possuem algumas

similaridades. Os TECONs possuem um pátio para o armazenamento temporário de

contêineres (pátio de contêineres ou simplesmente pátio). Usualmente, o pátio é dividido em

regiões conhecidas como blocos ou quadras de armazenamento. Na Figura 2.1 é possível

observar tais regiões, bem como identificar o espaço reservado para o transporte de

contêineres entre os blocos e o cais.

Page 20: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

20

Figura 2.1: Visão geral de um TECON onde é possível identificar a divisão de blocos em pilhas de contêineres.

(Fonte: DEKKER, 2006)

A menor unidade de armazenamento em um TECON é o slot (ou posição) para um

contêiner, onde um contêiner permanecerá durante o tempo necessário (Figura 2.2). Vários

slots de contêineres são postos uns sobre os outros para formar uma coluna e colunas são

organizadas lado a lado para formar uma pilha. Um bloco é formado por várias pilhas, onde o

lado contendo as portas dos contêineres de uma pilha deve tanger o lado inverso da pilha

seguinte. Slots de mesmo nível em uma pilha formam uma fileira. As colunas de um bloco

dispostas em sequência formam uma linha. Em geral, a tripla (fileira, coluna, linha) define as

coordenadas (x,y,z) de um slot em um bloco e a dupla (fileira, coluna) define as coordenadas

(x,y) de um slot em uma pilha, onde uma fileira representa contêineres em linha. O tamanho

de uma pilha varia para cada terminal entre dois a oito contêineres de altura e duas a oito

fileiras.

Page 21: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

21

Figura 2.2: Um bloco de contêineres em que a primeira pilha possui cinco fileiras de altura. (Fonte: WAN et al.,

2007)

Os navios que atracam em um berço são descarregados ou carregados com a utilização

de Quay Cranes (Guindastes de Cais). Os contêineres que foram descarregados são então

transportados para uma pilha onde serão posicionados através de gruas ou Straddle Carries

(conhecidos como aranhas). Estes contêineres podem posteriormente ser carregados

novamente em navios ou, alternativamente, podem ser transportados em via terrestre por

caminhões ou trens. No segundo caso o contêiner é movido da pilha para um trilho ou é

diretamente posicionado em um caminhão, que deve ter acessado o terminal previamente para

recebê-lo.

A maioria dos terminais é operada manualmente, porém existem alguns terminais que

utilizam equipamentos semiautomáticos, como Veículos Automaticamente Guiados (VAG)

para transportar contêineres internamente, e Gruas de Empilhamento Automático (GEA) para

empilhar contêineres. A Figura 2.3 fornece uma visão esquemática da organização de um

terminal. Neste caso as pistas de pilhas são perpendiculares ao cais. Cada pista possui um

comprimento, uma largura e uma altura.

Page 22: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

22

Figura 2.3: Organização de um TECON (Fonte: BORGMAN et al., 2010).

O equipamento comumente utilizado para a movimentação (empilhar ou desempilhar)

de contêineres em um bloco são os Gantry Cranes (GC). De forma geral, os GC são gruas que

se sustentam por duas “pernas” localizadas nas extremidades dos blocos de armazenagem de

contêineres (Figura 2.4). Estas “pernas” permitem ao GC uma movimentação no sentindo das

colunas do bloco. Uma ponte localizada no topo do GC sustenta um “braço”, chamado de

spreader, que coleta os contêineres. Este “braço” se movimenta nos sentidos das linhas e das

colunas do bloco. Desta forma, todos os contêineres são acessáveis pelo GC. Para a

movimentação, os contêineres são travados no spreader.

Figura 2.4: Gantry Crane (GC). (Fonte: VIS & de KOSTER, 2003)

Page 23: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

23

Armazenar contêineres no pátio, alocar recursos do terminal e planejar o carregamento

e descarregamento de navios são os principais problemas em terminais de contêineres

intermodais (KOZAN & PRESTON, 1999). Os contêineres devem ser empilhados de forma a

minimizar a quantidade de movimentações necessárias para armazenar e retirar um contêiner

quando necessário.

2.1.1 Estratégias de Empilhamento

Segundo Dekker et al. (2006), vários horizontes de decisão podem ser identificados para

empilhamento:

1. Estratégico de longo prazo: compreendem as decisões envolvendo equipamento,

tamanho do terminal em geral e uma pilha específica;

2. Tático de médio prazo: envolve decisões de capacidade de meses a anos. Nesse nível

de decisão está incluído o uso de operações estratégicas, assim como pré-

empilhamentos ou a aplicação de rearranjos em momentos em que não existam navios

a serem servidos;

3. Operacional de curto prazo: envolve a reserva de espaço para a chegada de navios, a

decisão de guardar um contêiner em uma posição particular, a alocação de

equipamentos para tarefas, a decisão de quais contêineres retirar primeiro, etc.; e

4. Em tempo real para operações diretas: envolve decisões técnicas de sistemas de

controle sendo relevante para equipamentos automáticos.

O foco deste projeto é nas decisões operacionais.

Os principais objetivos de uma estratégia de empilhamento são (DEKKER et al.,

2006):

1. Maximização do aproveitamento do pátio: Uso eficiente do espaço disponível no

pátio;

2. Otimização dos processos de transporte: Eficiência no tempo de transporte do

contêiner do cais para a pilha e destinos seguintes;

3. Minimização dos movimentos improdutivos: Minimizar o rearranjo de contêineres,

reduzindo desta forma o custo operacional.

Page 24: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

24

O segundo objetivo sugere que um contêiner que será exportado deve estar

armazenado o mais próximo possível do cais e do berço no qual o navio que o receberá será

carregado, ou seja, o tempo para armazenar o contêiner no navio deve ser o menor possível. O

terceiro objetivo será otimizado toda vez que o contêiner a ser buscado estiver em uma pilha

de apenas um contêiner. Entretanto, esta abordagem acarretaria no uso ineficiente do espaço

disponível no pátio, portanto, é raramente aplicada na prática. Dessa forma, é necessário

decidir quando um contêiner deverá ser ou não empilhado acima de outro.

Os dados a serem considerados em uma estratégia de empilhamento normalmente são

dados disponíveis sobre os contêineres. Estes dados podem ser: tipo (tamanho, refrigeração,

produtos perigosos), importação/exportação e data/hora de saída. Porém, estas informações

podem mudar ou estar incompletas em diversos casos.

Tendo como objetivo melhorar a eficiência do pátio pode-se definir vários tipos de

estratégias de empilhamento (DEKKER et al., 2006; STEENKEN et al., 2004):

1. Empilhamento por categoria: nesse caso é preciso definir categorias para

determinados contêineres com características semelhantes;

2. Empilhamento por tempo de permanência: um contêiner será empilhado acima

de outro se o seu tempo até a partida for menor do que os demais contêineres

abaixo deste (DEKKER et al., 2006);

3. Planejamento de armazenamento: espaços em áreas específicas de uma pilha são

reservados antes da chegada de um navio; e

4. Empilhamento disperso: espaços não são reservados a um navio, mas para um

berço, tal que as posições de empilhamento sejam determinadas em tempo real,

distribuindo os contêineres de forma estocástica pela área. O empilhamento

disperso resulta na maior utilização do pátio e uma significante redução na

quantidade de realocações de contêineres (STEENKEN et al., 2004).

Determinar o tamanho de uma pilha é um dos principais problemas de planejamento

em um terminal, pois o espaço físico que uma pilha requer é normalmente restrito e caro.

Uma alternativa seria trabalhar com pilhas mais altas, porém a quantidade de rearranjos

aumenta drasticamente com a altura da pilha. Comumente pilhas são separadas em partes de

importação e exportação. Contêineres de importação são aqueles que chegam de grandes

navios para continuar o trajeto por terra, sendo que a chegada destes é previsível de várias

formas. Entretanto, a saída de contêineres de importação pode ser imprevisível, o que implica

Page 25: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

25

que esses não devem ser armazenados em posições altas da pilha (ZHANG et al., 2003).

Contêineres de exportação chegam por terra e normalmente em momentos aleatórios, porém a

sua data de partida é usualmente conectada a um navio, portanto, podem ser armazenados de

forma mais eficiente do que o contêiner de importação.

2.1.2 Planejamento do Carregamento de Navios e Armazenamento no

Pátio

Todo navio que é carregado em um terminal possui um planejamento de carregamento que é

feito em dois passos: 1) primeiro a linha do navio elabora um plano superficial baseado em

categorias e envia para o terminal; 2) posteriormente, em algum momento antes da chegada

do navio, um plano mais detalhado é feito por um responsável do terminal que preencherá as

categorias com os contêineres detalhados (DEKKER et al., 2006; STEKKEN et al., 2004).

Este planejamento especifica qual contêiner será carregado em determinada posição do navio.

Como contêineres variam em tamanho, peso e tipo, esta distribuição é essencial para a

estabilidade do navio.

Softwares avançados são utilizados para fazer a otimização off-line do plano de

carregamento com o objetivo de minimizar rearranjos. O maior desafio está relacionado à

diminuição do tempo necessário para retirar das pilhas aqueles que serão carregados em um

determinado navio. Estes contêineres são destinados a navios que, seguindo um plano de

navegação, deverão coletá-los em uma data pré-estabelecida. Tendo em vista a importância da

redução do tempo em que um navio deve aguardar para que o seu carregamento esteja

completo, os contêineres de exportação devem ser retirados das pilhas e levados ao cais da

forma mais rápida possível.

Além de receber contêineres para exportação navios também podem entregar contêineres de

importação aos terminais. Nestes casos, o terminal deverá receber os contêineres de

importação e armazená-los no pátio até o momento em que estes serão requisitados a deixar o

terminal por via terrestre (trens e caminhões). Estes contêineres são comumente armazenados

em pilhas para reduzir o espaço utilizado no pátio, implicando que rearranjos podem ser

necessários para acessar determinado contêiner, resultando em um problema de

empilhamento. Este problema de planejamento é considerado de extrema dificuldade, pois

podem existir incertezas acerca de qual contêiner será necessário primeiro como, por

Page 26: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

26

exemplo, no caso de caminhões que chegam sem agendamento prévio para a retirada de um

contêiner específico.

2.2 DESCRIÇÃO DO PROBLEMA DE EMPILHAMENTO

Durante um determinado período de trabalho, um GC é requisitado a movimentar diversos

contêineres do bloco de armazenagem para os caminhões e dos caminhões para o bloco. A

utilização de maneira adequada do GC é extremamente crítica para a eficiência na

manipulação de contêineres no pátio, bem como para o desempenho do terminal em geral, que

depende deste e de diversos outros fatores. Portanto, otimizar a utilização do GC é de suma

importância para este ambiente. Neste contexto, o GC pode realizar dois tipos de movimentos

(MURTY et al, 2005):

1. Movimento Produtivo (MP): Neste caso, o contêiner se encontra no topo da pilha,

requisitando apenas a sua movimentação direta para a área de transferência.

2. Movimento Improdutivo (MI) ou Rearranjo: Neste caso, o contêiner a ser

movimentado se encontra abaixo de outros contêineres. Consequentemente, os

contêineres sobre ele deverão ser retirados de sua posição original, colocados em uma

posição vaga próxima do mesmo bloco e posicionados em sua pilha original assim que

o contêiner desejado for levado à área de transferência.

Em geral, deseja-se retirar contêineres de uma pilha com uma determinada

configuração com a menor quantidade possível de movimentos improdutivos. Para ilustrar o

processo, a Figura 2.5 apresenta uma pequena pilha de três colunas e três fileiras na qual sete

contêineres são representados por quadrados numerados. Os contêineres devem ser retirados

em ordem ascendente dos números marcados nos quadrados. A Figura 2.5 demonstra uma

forma de esvaziar a pilha na qual existem três tipos de rearranjo (movimentos improdutivos),

dois para o contêiner 7 e um para o contêiner 6 (WAN et al., 2009).

Page 27: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

27

Figura 2.5: Uma forma de esvaziar uma pilha (Fonte: WAN et al., 2009).

Dados s contêineres de exportação armazenados em uma pilha de c colunas e f fileiras,

a Equação 2.1 garante que existirá espaço disponível para o rearranjo, caso necessário (WAN

et al., 2009). Os contêineres podem ser então ranqueados de 1 a s, sendo que o menor deverá

ser retirado primeiro. Durante o processo de retirada de contêineres, aqueles que estavam

sobre os que deveriam ser retirados no momento são rearranjados para outras posições na

pilha. O objetivo é, então, designar os slots para os contêineres rearranjados tal que a

quantidade total de rearranjos ao esvaziar a pilha seja minimizada.

( ) (Eq. 2.1)

O tempo necessário para a retirada de s contêineres de uma pilha está diretamente

relacionado à quantidade de movimentos improdutivos necessários para a retirada dos

contêineres na ordem previamente definida. Portanto, o problema de minimização do tempo

de retirada pode ser reduzido ao problema de minimização de rearranjos (movimentos

improdutivos).

Cada vez que um contêiner é movimentado, o estado da pilha é alterado (Figura 2.5).

Sendo s a quantidade total de contêineres em uma pilha com c colunas e f fileiras, pode-se

definir {x1,x2, ..., xs1} como o conjunto de estágios da pilha durante o processo de retirada de

todos os contêineres. A quantidade de estados que os estágios podem assumir na sequência de

retirada, qesr, de todos os contêineres da pilha é dada pela Equação 2.2 e, segundo Wan et al.

(2009), para uma pilha contendo a quantidade máxima de contêineres, s = (c – 1)f + 1, a

quantidade de possíveis combinações de estados, qe, é da ordem dada pela Equação 2.3.

Page 28: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

28

( )

(Eq. 2.2)

(Eq. 2.3)

Por exemplo, para o caso da Figura 2.5a, ter-se-ia uma quantidade de estados

qesr = 252 e uma possível combinação destes estados de qe = 2,82× 10219

.

O crescimento exponencial da quantidade de possíveis combinações de estados em

função do tamanho da pilha é um indicativo claro da ordem de complexidade do problema:

NP-completo.

Considerando a ordem ascendente em que os contêineres devem ser retirados, a

quantidade de rearranjos necessária para a retirada do contêiner i no estado xi é dada pela

Equação 2.4, onde a variável yji representa a necessidade de rearranjar o contêiner j para obter

o contêiner i (Equação 2.5).

(Eq. 2.4)

{

(Eq. 2.5)

Finalmente, o objetivo consiste em minimizar a quantidade total de rearranjos no

processo de retirada de todos os contêineres na ordem pré-estabelecida (Equação 2.6). O

resultado do processo pode ser analisado através da verificação dos estados {xi} resultantes do

modelo.

∑ ∑

(Eq. 2.6)

Page 29: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

29

2.3 TÉCNICAS APLICÁVEIS AO PROBLEMA:

PROGRAMAÇÃO MATEMÁTICA E METAHEURÍSTICAS

Problemas de otimização mono-objetivo envolvem basicamente uma função-objetivo a ser

otimizada (maximizada ou minimizada) através da manipulação de um vetor de argumentos e

um conjunto de restrições que devem ser simultaneamente atendidas. A presença de restrições

de diversas naturezas introduz uma complexidade adicional por dividir o espaço de candidatos

solução em duas classes: soluções factíveis (que atendem a todas as restrições

simultaneamente) e soluções infactíveis (que violam uma ou mais restrições) (SHERALI et

al., 1993). Na eventualidade de não haver restrições, o problema é dito ser irrestrito.

Duas etapas estão envolvidas no processo de solução (SHERALI et al., 1993):

1. Formulação matemática do problema: procura descrever todos os aspectos

relevantes do problema, seja em termos de objetivos a serem otimizados ou

restrições a serem atendidas;

2. Obtenção da solução: aplicação de ferramentas de busca ou otimização,

desenvolvidas a partir da formulação matemática do problema.

Dependendo das características do problema, a sua formulação leva a um processo de

solução que pode ser expresso algebricamente, de forma fechada. No entanto, grande parte

dos problemas de otimização apresenta características (por exemplo, não-linearidade e

manipulação de variáveis que assumem apenas valores inteiros) que inviabilizam a obtenção

de uma solução analítica, requerendo a aplicação de processos iterativos de busca em um

espaço X de dimensão elevada e/ou sujeito a uma explosão combinatória de soluções

candidatas. A busca iterativa é geralmente implementada em computador devido ao elevado

custo de processamento associado a sua execução.

2.3.1 Programação Inteira

Em diversas situações, a resposta para determinado problema deve ser dada em números

inteiros. Em tais casos, soluções fracionárias não seriam realistas e inviáveis e, portanto, o

seguinte problema de otimização pode ser considerado (BRADLEY et al., 1977):

Page 30: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

30

∑ ( )

( )

( )

onde xj ,j = 1, ..., Q , representam as variáveis a serem determinadas, cj e bi , j = 1, ..., Q e i =

1, ..., m, são os coeficientes, e os valores aij formam a matriz de coeficientes. A expressão a

ser maximizada (ou minimizada) é chamada de função objetivo e as demais equações formam

as restrições do problema.

Um problema de programação inteira é um programa de programação matemática no

qual algumas ou todas as variáveis do problema pertencem ao conjunto dos números inteiros.

Em muitos contextos, o termo refere-se à programação linear inteira, que também é conhecida

como programação inteira mista quando somente algumas variáveis devem ser do conjunto

dos números inteiros.

Modelos de programação inteira estão presentes em várias áreas da programação

matemática. O lado negativo é que os problemas contendo a partir de 40 variáveis podem

estar além da capacidade dos computadores atuais, até mesmo os mais sofisticados. Embora

esses pequenos problemas sejam, de certa forma artificiais, a maioria dos problemas reais com

cem ou mais variáveis não podem ser resolvidos, a menos que demonstrem estruturas

específicas que possam ser exploradas e ajustadas para facilitar a solução (TRICK, 2011).

A primeira aproximação a qualquer solução de um programa inteiro pode ser obtida ao

ignorar as restrições de integralidade e resolver o programa linear resultante utilizando

técnicas como o Simplex (BRONSON, 1997). Se a solução ótima para o problema linear for

inteira, então esta já será também a solução ótima para o problema inteiro original. Caso

contrário, as variáveis da primeira aproximação devem ser arredondadas para os números

inteiros factíveis mais próximos para se obter uma aproximação (BRONSON, 1997). Dentre

Page 31: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

31

os algoritmos que resolvem programas inteiros pode-se citar o algoritmo de Branch-and-

Bound, Algoritmos de Corte e o Algoritmo de Transporte (BRONSON, 1997).

2.3.2 Branch-and-Bound

A primeira coisa a ser considerada para resolver problemas com valores inteiros é

simplesmente enumerar todas as possíveis soluções e então escolher a melhor (BRADLEY et

al., 1977). Isso possivelmente funcionará para alguns problemas pequenos, mas rapidamente

se tornará intratável para problemas de médio a grande porte e problemas com escalas

industriais. Como exemplo, considere um problema com vinte variáveis. Este teria então 220

=

1.048.576 soluções para serem enumeradas, o que é possível de se fazer via computação.

Agora, considerando um problema com 100 variáveis, ter-se-ia 2100

= 1.268×1030

soluções

para serem enumeradas, o que dificilmente será resolvido até pelos computadores com maior

poder processamento (SCHRIJVER, 1986). O fato é que enumeração simplesmente não

funcionará para a maioria dos problemas de mundo real, o que torna necessária a busca por

melhores formas de tratar a explosão combinatória.

A técnica Branch-and-Bound é baseada essencialmente em “dividir para conquistar”.

Esta estratégia consiste em particionar a região de satisfatibilidade em sub-regiões menores e

então, se preciso, particionar também as sub-regiões. Por exemplo, considerando o seguinte

problema:

{ }

Ao se desconsiderar a restrição de integralidade das variáveis do problema, obtém-se

um programa linear comum que, consequentemente, aceitará variáveis não inteiras em sua

solução. A esta técnica é dado o nome de relaxamento linear e o problema poderá ser

resolvido pelos mesmos algoritmos de programação linear, como o método Simplex.

Page 32: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

32

Resolver o programa linear relaxado resultará em informações sobre o limite do valor

ótimo para a função objetivo (com restrições de integralidade das variáveis) ou até na própria

solução inteira para o problema em casos raros (BRONSON, 1997). Por exemplo, a solução

por relaxamento linear do problema acima é x1 = 1, x2 = 1, x3 = 0.5, x4 = 0 e o valor da função

objetivo desta é 22. Agora sabe-se que nenhuma solução inteira terá valor maior que 22, pois

encontramos um limite. Infelizmente, como x3 não é um número inteiro será preciso procurar

por outra solução. Dessa forma, o próximo passo é forçar x3 a ser inteiro. O próximo passo

então é ramificar o problema atual em dois novos problemas, um com a restrição de x3 = 0 e

outro com restrição de x3 = 1 conforme ilustrado na Figura 2.6.

Figura 2.6: Primeira ramificação.

É possível perceber que qualquer solução ótima para o problema inicial deve ser

factível para os subproblemas. Se os dois subproblemas forem resolvidos as seguintes

soluções serão encontradas:

x3 = 0: função objetivo 21.65, x1 = 1; x2 = 1; x3 = 0; x4 = 0.667

x3 = 1: função objetivo 21.85, x1 = 1; x2 = 0.714; x3 = 1; x4 = 0

Percebe-se que a solução inteira ótima não será maior que 21.85, porém ainda não se tem

uma solução inteira factível. O próximo passo é selecionar um dos subproblemas e, então,

ramificá-lo (branch) criando dois novos subproblemas. O subproblema a ser ramificado deve

ser escolhido com base no valor da solução, sendo o com maior valor para problemas de

maximização e com menor valor para problemas de minimização. O método terá fim ao

encontrar uma solução inteira, ou não apresentar soluções factíveis a serem ramificadas

(BRADLEY et al., 1977).

Page 33: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

33

2.3.3 Simulated Annealing

Annealing é o processo utilizado para fundir um metal aquecendo-o a uma temperatura

elevada e logo em seguida resfriando lentamente. Dessa forma o produto final terá uma massa

homogênea. A técnica Simulated Annealing (SA) surgiu no contexto da mecânica estatística,

desenvolvido por Kirkpatrick, Gelatt E Vecchi (1983) e independentemente por Cerny (1985).

A técnica de SA é bastante utilizada em problemas de otimização combinatória, minx

f(x), x S, onde f : S → R e S é finito. Dessa forma, o processo de otimização é realizado por

níveis, simulando os níveis de temperatura de um resfriamento. Em cada nível, é dado um

ponto u S, vários pontos na vizinhança de u são gerados e o valor correspondente da função

objetivo é calculado. Cada ponto gerado é aceito ou rejeitado de acordo com uma

probabilidade. Esta probabilidade de aceitação decresce de acordo com o nível do processo,

ou, equivalentemente, de acordo com a temperatura, T.

O algoritmo a seguir apresenta os passos deste procedimento (HAESER, G. &

GOMES–RUGGIER, 2008). Neste algoritmo, Tk R+ representa a temperatura no nível k e Lk

o número de pontos que serão gerados neste mesmo nível. Inicialmente, T0 e L0 são fixos, e

um ponto inicial u é escolhido em S.

1. procedure [] = SA(u, T0, L0) 2. k = 0; 3. Enquanto condição é false faça 4. Para l = 1 até Lk 5. Gerar w de V(u) 6. Se f(w) ≤ f(u), então u := w

7. Caso contrário, se random[0, 1) < exp ( ( ) ( )

)

8. Então u := w 9. k := k + 1 10. Calcular Lk e Tk

11. Fim

Pseudocódigo 2.1: Simulated Annealing

A ideia do algoritmo é inicialmente aceitar quase todas as transições propostas com o

objetivo de escapar de um mínimo local (para isso, T0 deve ser um valor grande) e, em

seguida, aceitar com probabilidade cada vez menor os pontos que pioram o valor da função

objetivo. No limite, Tk → 0+, só serão aceitos os pontos que melhoram o valor da função

objetivo (HAESER & GOMES–RUGGIER, 2008).

Page 34: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

34

2.3.4 MRIP e MRIPk

Em (WAN et al., 2009) os autores propõem um modelo de programação inteira para encontrar

a melhor estratégia de desempilhamento para uma dada pilha, chamado MRIP (Minimal

Reshuffle Integer Programing). O programa capta a evolução de configurações de uma pilha

em função de decisões de rearranjos tomadas e a sua formulação completa pode ser

encontrada no trabalho original de WAN et al, (2009).

Segundo os autores, esta foi a primeira formulação baseada em programação inteira da

versão estática do problema de atribuição de localização para contêineres a serem

rearranjados (WAN et al., 2009). Naturalmente, um modelo de programação inteira, apesar de

ótimo no sentido da programação matemática, pode ter um elevado tempo de computação,

inviabilizando sua aplicação prática. Adicionalmente, neste mesmo trabalho, os autores

apresentaram um método heurístico com variantes do modelo de programação inteira para

resolver a versão estática do problema, então chamado de MRIPk. Esta variação apresenta

menos variáveis, uma vez que não é considerada a retirada de todos os contêineres

simultaneamente. Por exemplo, ao esvaziar uma pilha com dez contêineres, é possível

primeiramente formular e resolver um subproblema MRIP4 que minimize a quantidade total

de rearranjos na retirada dos 4 primeiros contêineres. Durante a retirada do primeiro

contêiner, qualquer contêiner rearranjado é posto em uma posição sugerida pela solução do

problema. Então, para os seis contêineres restantes uma nova execução do MRIPk fornecerá a

solução para a retirada dos contêineres 4 até 4 + k.

Os resultados, quando comparados com os obtidos por heurísticas adotadas na prática

e da literatura, são competitivos para a redução de rearranjos, porém possuem maior tempo de

computação que as heurísticas para maiores instâncias do problema (grandes pilhas).

Resultados similares foram verificados nessa dissertação e serão apresentados e discutidos nas

próximas seções.

2.3.5 Heurística do Slot Mais Baixo

Wan et al (2009) discutem sobre vários pequenos portos na região de Pearl River Delta,

Estados Unidos, que não possuem infraestrutura avançada de informação e, comumente, na

chegada ou rearranjo de um contêiner este simplesmente é posto no slot mais baixo disponível

na pilha. A esta heurística é dada o nome de Heurística do Slot Mais Baixo (Lowest-Slot

Heuristic ou ainda heurística LS).

Page 35: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

35

A Figura 2.7 apresenta a evolução de uma configuração ao aplicar a heurística LS na

pilha da Figura 2.5. Sem alternativa para retirar os contêineres 1 e 2, o contêiner 7 será

rearranjado para cima do 2 durante a retirada do 1. Logo após, o contêiner 7 será novamente

rearranjado para a retirada do contêiner 2 (Figura 2.7 a e b). Para retirar o contêiner 3, a

heurística LS colocará o contêiner 6 sobre o 4 ou 7 com probabilidades iguais. No primeiro

caso, após a retirada do contêiner 3, o 6 poderá ser rearranjado para o topo do 5 ou 7 com

probabilidades iguais. No segundo caso, os quatro contêineres restantes são retirados sem

rearranjos adicionais (Figura 2.7c).

Figura 2.7. Cenários da Heurística LS em um exemplo de aplicação. (Wan et al, 2009)

Page 36: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

36

2.3.6 Heurística do Índice de Rearranjo (IR)

A heurística LS apresentada anteriormente considera apenas a quantidade de contêineres para

definir as posições de rearranjo. O índice de rearranjo (IR), definido por Murty et al. (2005), é

uma melhoria em relação a heurística LS, considerando também a data em que os contêineres

deverão ser retirados da pilha. Considere uma coluna que possui um slot disponível para

acomodar um contêiner. O IR de uma coluna é a quantidade de contêineres na coluna que

deverão ser retirados antes do contêiner sendo reposicionado (Wan et al, 2009). Um contêiner

sendo rearranjado é colocado na coluna com o menor IR, sendo que a coluna mais alta deverá

ser escolhida no caso de empate no valor de IR e, em caso de empate de alturas, a escolha

deve ser arbitrária.

Se a heurística do índice de rearranjo for aplicada à pilha da Figura 2.8(a) para a

retirada do contêiner 2, então o contêiner 9 deverá ser rearranjado e, neste caso, a heurística

definirá para qual posição com base nos índices de rearranjos de cada coluna disponível. A

coluna contendo os contêineres 5 e 7 terá um índice igual a 2, uma vez que os dois contêineres

da coluna deverão ser retirados antes que o contêiner 9. Já a coluna com os contêineres 10 e 8

terá índice igual a 1, pois apenas o contêiner 8 deverá ser retirado antes que o 9. Finalmente, a

ultima coluna da esquerda possui apenas o contêiner 4, que também deverá ser retirado antes

que o 9, resultando em um índice igual a 1 para a coluna.

Após o calculo dos índices para cada coluna é possível definir para qual coluna o

contêiner será movido. Duas colunas possuem índices iguais a 1 e, neste caso, a pilha com

maior número de contêineres é selecionada para o rearranjo (Figura 2.8b).

Figura 2.8: Exemplo de execução da heurística de Índice de Rearranjo.

2.3.7 Heurística ENAR

Page 37: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

37

A heurística ENAR (Expected Number of Additional Relocation) foi apresentada por Kim &

Hong (2006) e possui o objetivo de estimar a futura quantidade de rearranjos em uma coluna

se um contêiner for armazenado ou rearranjado para o topo desta. Dado que os contêineres

estão numerados com prioridades (pela data em que serão retirados da pilha), um rearranjo é

necessário se a prioridade do contêiner sendo movido for menor do que a de algum contêiner

da coluna.

Como é difícil prever qual dos contêineres existentes será rearranjado para uma nova

coluna em qualquer estágio ao esvaziar uma pilha, a heurística ENAR simplesmente assume

que todos os contêineres da pilha que atualmente não estão em uma coluna possuem

probabilidades iguais de serem rearranjados para esta no futuro.

Em uma pilha com s contêineres a heurística ENAR computará um índice para cada

slot vazio (no topo das colunas). O slot vazio com o índice de menor valor é escolhido para

armazenar o contêiner. Quando um contêiner é adicionado a uma coluna, sua quantidade de

slots vazios é reduzida e os índices das colunas deverão ser computados novamente (WAN et

al., 2009). Como definido em (KIM & HONG, 2005), dado que cmaior é o contêiner de maior

prioridade de uma coluna, o ENAR de um slot i pode ser calculado como definido na Equação

2.7.

( ) (Eq. 2.7)

onde pmaior é a probabilidade de que o contêiner rearranjado possua prioridade maior que

cmaior, rmaior representa a quantidade de rearranjos como consequência de mover um contêiner

de prioridade maior para esta coluna, pmenor é a probabilidade de que o contêiner rearranjado

possua prioridade menor que cmaior, e rmenor representa a quantidade de rearranjos como

consequência de mover um contêiner de prioridade menor que cmaior para esta coluna.

Para exemplificar, a Figura 2.9 mostra uma pilha de tamanho 3 × 3 contendo no

momento apenas cinco contêineres. O contêiner a ser retirado no momento (pela ordem) é o

de número 3 e, portanto, o contêiner de número 6 deverá ser rearranjado para um dos slots

disponíveis sobre o contêiner 4 ou 7. Atualmente o ENAR da coluna contendo o contêiner 4 é

(

) ( ) (

) ( )

, uma vez que três dos quatro contêineres que não estão na coluna do

Page 38: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

38

contêiner 4 causariam um rearranjo ao retirar o contêiner, caso fossem movidos para esta

coluna. Esta mesma consequência não existirá para a coluna do contêiner 7, pois nenhum

rearranjo será necessário no futuro ao movimentar qualquer um dos contêineres para cima

deste, resultando em um índice equivalente a 0 (zero). Logo, a decisão será mover o contêiner

6 para o slot acima do contêiner 7.

Figura 2.9: Pilha de tamanho 3×3 onde o contêiner 6 deverá ser rearranjado para a obtenção do contêiner 3.

Como documentado em Kim & Hong (2005), a heurística ENAR possui bons

resultados ao esvaziar uma pilha a partir de uma configuração de entrada e o desempenho da

heurística é próximo da solução Branch and Bound apresentada pelos mesmos autores.

2.4 TRABALHOS RELACIONADOS

Os principais problemas de decisão que podem ser encontrados em terminais de contêineres

são descritos em (VIS & DE KOSTER, 2002), onde são destacados modelos quantitativos da

literatura com o objetivo de resolver tais problemas, além de discussões sobre possíveis

tópicos de pesquisa. Em uma revisão recente sobre pesquisa operacional aplicada a terminais

de contêineres, Stahlbock & Voss (2008) enumeraram os aspectos gerais das operações em

terminais. Os tópicos discutidos incluem: planejamento de armazenagem, alocação de berço,

otimização de guindastes, otimização de transporte no terminal e logística de armazenamento

e empilhamento. Este trabalho pode ser considerado uma extensão da revisão anterior

(STEENEN et al. 2004), que também contem diversas informações sobre a operação de

terminais.

O problema de empilhamento de contêineres vem sendo estudado através de diversas

abordagens baseadas essencialmente em simulações, ou seja, modelos fictícios que

representam uma situação do problema tal que a proposta de solução possa ser aplicada e seus

resultados analisados. Borgman et al. (2010) discutem que a literatura acadêmica sobre o

problema de empilhamento de contêineres ainda não é muito comum, o que deve ser

consequência da dificuldade de obtenção de soluções analíticas para o problema. Entretanto,

recentemente o assunto tem atraído mais atenção em consequência da sua importância prática

6

3

5 4 7

Page 39: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

39

(STEENKEN et al., 2004), porém, até o momento somente estratégias baseadas em regras

online foram estudadas em análises de simulações (BORGMAN et al., 2010). Estas regras

permitem a operação com informações imperfeitas ou imprecisas sobre a data de saída de

contêineres, porém, o estudo de tais regras demanda muito tempo e os resultados podem ser

dependentes da configuração da simulação.

Segundo Borgman et al. (2010), vários métodos são utilizados para tratar o problema

de empilhamento, porém duas principais abordagens podem ser elencadas. A primeira

envolve cálculos analíticos com informações completas sobre o momento em que um

contêiner será retirado da pilha. Esta abordagem é comumente baseada em programação

inteira (Borgman et al.,2010) e requer uma quantidade relativamente grande de tempo de

processamento para instâncias grandes do problema. A segunda abordagem envolve o estudo

detalhado da simulação que deve validar várias estratégias de empilhamento. Estas estratégias

podem ser online, nas quais a posição de cada contêiner é determinada independentemente

dos outros que chegarão posteriormente, ou offline, nas quais as posições são definidas

simultaneamente para todos os contêineres que serão descarregados de um navio.

Dekker et al. (2006) distinguem dois tipos de estratégias de empilhamento:

empilhamento por categoria e empilhamento por tempo de permanência. A primeira

estratégia consiste em empilhar contêineres da mesma categoria (mesmo tamanho, destino,

peso, etc.) nos topos uns dos outros. Esta proposta assume que os contêineres são

intercambiáveis e, portanto, podem ser empilhados sem o risco de um contêiner da pilha ser

requisitado antes dos outros do topo serem removidos. A segunda estratégia consiste em

verificar a data de partida dos contêineres. Seguindo esta abordagem, um contêiner só poderá

ser empilhado no topo de contêineres que possuam uma data de partida planejada que seja

posterior a data de partida do novo contêiner.

Exemplos recentes de abordagens analíticas incluem Kim & Hong (2006), na qual um

algoritmo branch-and-bound foi utilizado para encontrar uma solução ótima para o problema

de empilhamento e então são propostas várias heurísticas para tentar chegar próximo ao ótimo

e (KANG et al. 2006), que apresentam a utilização de um algoritmo de simulated annealing

para encontrar boas soluções em tempo hábil. Em Caserta et al. (2010) são apresentadas

combinações entre metaheurísticas e programação dinâmica para melhorar os resultados

obtidos por Kim & Hong (2006). Segundo Borgman et al. (2010), a maioria destes métodos

de otimização assumem o total conhecimento prévio sobre a ordem em que os contêineres

Page 40: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

40

serão retirados, porém, essa informação normalmente não está disponível a tempo. Ainda

assim, encontrar o ótimo teórico pode ser extremamente útil como benchmark.

Outros problemas importantes de otimização e decisão em terminais de contêineres

estudados incluem a alocação de berços para navios que atracam no porto e a alocação de

guindastes pórticos de cais (quay cranes) a navios ou baias (STEENKEN et al., 2004). Uma

abordagem para a alocação de berços que considera simultaneamente as capacidades dos quay

cranes foi desenvolvida por Park & Kim (2002). O escalonamento do transporte de

contêineres no terminal foi estudado para dois diferentes tipos de equipamento, chamados

straddle carriers (aranhas) e veículos automaticamente guiados (VAG) (BOSE et al., 2000;

KIM & KIM, 1999a; STEENKEN et al., 2004). Além disso, o problema de alocação e

escalonamento de stacking cranes foi considerado por Zhang et al. (2002), no qual o objetivo

foi encontrar tempos e rotas de movimentos dos guindastes entre os blocos, para que o tempo

total utilizado para os movimentos fosse minimizado. Com um objetivo mais abrangente,

Hartmann (2004) propôs um modelo geral para vários problemas de escalonamento que

podem ocorrer em um terminal de contêineres. O escalonamento é feito através da definição

de tarefas (jobs) a recursos alocáveis, considerando também o tempo de execução de tarefas,

possíveis restrições e a sequência de execução. Foram considerados os problemas de

escalonamento para straddle carriers, veículos automaticamente guiados (VAG), guindastes

de empilhamento e trabalhadores que manuseiam os contêineres frigoríficos.

Em Kim & Kim (1999) os autores formularam o problema de roteamento de Straddle

Carries através de um modelo de programação inteira. O objetivo era minimizar o trajeto total

que um Straddle Carrier percorreria em um momento de trabalho. Para tal, a quantidade de

contêineres a ser retirada é definida, assim como a sequencia de baias a ser visitada durante o

percurso. Posteriormente os autores propuseram um método de Beam Search para solucionar

o mesmo problema, onde são realizados experimentos numéricos para a validação do método

(KIM & KIM, 1999b). Em um trabalho anterior a estes, Kim & Kim (1997) propuseram um

modelo de programação inteira para o roteamento de guindastes de transferência (transtêiner).

Um modelo de otimização para a alocação de berços (ou escalonamento de berços) foi

proposto por Kim & Moon (2002). Cada navio requer uma quantidade especifica de espaço

para atracar no porto por um tempo predeterminado para o carregamento e descarregamento

de contêineres. Neste trabalho os autores propuseram um modelo de Programação Inteira

Mista (PIM) como solução para o problema. Para encontrar soluções quase-ótimas (near

optimal) um algoritmo de simulated annealing foi aplicado. Os dois métodos foram

Page 41: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

41

comparados com experimentos, resultando que o algoritmo de simualted annealing obtém

soluções que são similares com as soluções ótimas encontradas pelo PIM.

Page 42: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

42

3 SISTEMAS IMUNOLÓGICOS NATURAIS E

ARTIFICIAIS

3.1 FUNDAMENTOS DO SISTEMA IMUNOLÓGICO

A imunologia é o ramo da biologia responsável pelo estudo das reações que conferem

resistência às doenças (KLEIN, 1990). A origem desta ciência é atribuída a Edward Jenner

que, em 1796, descobriu que a vacínia2

(ou cowpox) induzia proteção contra a varíola. Este

processo foi batizado de vacinação e até hoje é utilizado para a prevenção de doenças virais

através da submissão de agentes causadores de doenças a sistemas saudáveis.

O sistema que defende o animal contra o ataque constante de microorganismos é

chamado de sistema imunológico, composto por células, moléculas e órgãos específicos

(TIZARD, 1995). No sistema imunológico existem duas linhas de defesa. A primeira é

denominada sistema imune inato e é responsável pela principal proteção contra infecções,

possuindo a capacidade de realizar respostas rápidas contra patógenos invasores. A segunda é

denominada sistema imune adaptativo e também é muito efetiva, porém mais lenta e

duradoura (DE CASTRO, 2006).

O sistema imune inato é a primeira linha de defesa do organismo, disponível a partir

do nascimento do indivíduo. Suas células estão imediatamente disponíveis para o combate a

uma ampla variedade de patógenos, sem exigir prévia exposição aos mesmos (DE CASTRO,

2006). Quando uma célula do sistema imune inato reconhece um patógeno, uma resposta

imunológica é ativada com o intuito de eliminá-lo do organismo. Além disso, o sistema imune

inato também é responsável por enviar sinais co-estimuladores para o sistema imune

adaptativo, caso um ataque ao organismo seja constatado.

Como não são todos os patógenos que podem ser reconhecidos pelo sistema imune

inato, estes podem ser reconhecidos apenas pelo sistema imune adaptativo. Este sistema

adapta-se aos antígenos produzindo anticorpos específicos a um determinado agente

infeccioso. Além disso, este sistema é capaz de desenvolver uma memória imunológica, ou

2 Agente infeccioso da varíola bovina que quando injetado no organismo humano proporciona imunidade

à varíola.

Page 43: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

43

seja, reconhecer o mesmo estímulo antigênico caso ele entre em contato com o organismo

novamente. Dessa forma o sistema imunológico é capaz de evitar o re-estabelecimento da

doença no organismo e a resposta do sistema imunológico contra o mesmo agente infectante é

aperfeiçoada (DE CASTRO, 2006).

3.1.1 Medula Óssea

A medula óssea é o tecido encontrado no interior dos ossos, também conhecido popularmente

por tutano, cuja função é produzir células sanguíneas: glóbulos brancos, glóbulos vermelhos e

plaquetas. A célula que origina as células sanguíneas é chamada de célula progenitora ou

célula-mãe. Estas células existem em pequeno número no sangue e em maior quantidade na

medula óssea. As células-mãe se renovam automaticamente ou se diferenciam em leucócitos

(glóbulos brancos) e passam por diversos estágios de maturação, antes de passarem para o

sangue (DE CASTRO & TIMMIS, 2002).

As células que se diferenciam em glóbulos brancos (leucócitos) são responsáveis pela

defesa do organismo contra agentes infecciosos e substâncias estranhas. Para defender o corpo

adequadamente, uma quantidade suficiente de leucócitos deve estimular as respostas

imunológicas apropriadas, em seguida, conter a infecção e eliminar os organismos e as

substâncias prejudiciais (DE CASTRO & TIMMIS, 2002).

As moléculas de anticorpo são geradas na medula óssea através do processo de

recombinação de DNA. Genes de diversas bibliotecas de genes são concatenados com o

objetivo de formar uma molécula de anticorpo (DE CASTRO & TIMMIS, 2002).

3.1.2 Reconhecimento de Padrões

As células existentes no sistema imunológico (inato e adaptativo) possuem em suas

superfícies moléculas receptoras capazes de reconhecer antígenos. O reconhecimento

imunológico ocorre no nível molecular e é baseado na complementaridade entre a região de

ligação da célula receptora e uma proporção do antígeno chamada epítopo. Anticorpos

possuem apenas um único tipo de receptor (Figura 1), enquanto antígenos podem possuir mais

de um epítopo e, dessa forma, um único antígeno pode ser reconhecido por diferentes

anticorpos (DE CASTRO, 2006).

Page 44: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

44

Figura 3.1: Reconhecimento de um antígeno (Fonte: DE CASTRO, 2006).

O reconhecimento de padrões antigênicos faz com que o sistema imunológico seja

capaz de combater os agentes causadores de doenças. Quanto melhor o reconhecimento, mais

eficiente será a resposta imunológica. Dessa forma, quando o sistema se recupera de uma

infecção ele adquire imunidade a tal antígeno (DE CASTRO, 2006).

3.1.3 Princípio da Seleção Clonal

Quando o sistema imunológico é exposto a um antígeno que os anticorpos são capazes de

reconhecer, a resposta imunológica é veloz e rapidamente se encarrega de eliminá-lo do

organismo. Porém, isto somente ocorrerá caso o sistema imunológico inato seja capaz de

reconhecer este antígeno ou caso o sistema imune adaptativo já tenha se deparado com este

antígeno em outra ocasião.

O Princípio (ou teoria) da Seleção (ou expansão) Clonal (DE CASTRO, 2006) está

associado às características básicas de uma resposta imune adaptativa a um estímulo

antigênico. Ele estabelece que apenas aquelas células capazes de reconhecer um determinado

estímulo antigênico irão se proliferar (Figura 3.2), sendo, portanto, selecionadas em

detrimento das outras, com o objetivo de eliminar o antígeno do organismo. Estas células

deverão se proliferar para produzir células em quantidade suficiente para combater a infecção.

Page 45: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

45

Figura 3.2: Seleção Clonal (Fonte: DE CASTRO, 2006).

Esta proliferação resultará em células filhas (clones) que poderão sofrer mutação. As

células filhas são similares aos pais, podendo possuir leves diferenças em função da mutação,

mas todas devem ser capazes de reconhecer o antígeno que causou a resposta imunológica

(CASTRO & TIMMIS, 2002). Um sistema de seleção garante que as células (resultantes do

processo de clonagem) que melhor reconhecem o antígeno possuam um maior tempo de vida,

sendo chamadas de células de memória. Este é o processo pelo qual o sistema imunológico

tornar-se-á capaz de enfrentar antígenos que encontrou previamente.

3.1.4 Maturação de Afinidade

O aprendizado do sistema imunológico envolve o aumento da população e da afinidade dos

anticorpos que demonstraram capacidade de reconhecer algum antígeno. Durante o tempo de

vida de um ser, possuidor de um sistema imunológico, é muito provável que o mesmo seja

exposto a um antígeno repetidamente. A primeira exposição a um antígeno que ativa uma

resposta imunológica é tratada por poucas células, cada uma produzindo anticorpos com

diferentes afinidades (DE CASTRO, 2006). A efetividade da resposta imunológica em

encontros secundários é consideravelmente melhorada através do acúmulo de anticorpos de

alta afinidade das infecções anteriores (Figura 3). Esta característica sugere que o sistema

imunológico está constantemente melhorando a sua capacidade de reconhecer antígenos.

Page 46: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

46

Figura 3.3: Maturação de afinidade a sucessivas respostas imunológicas. (Fonte: DE CASTRO, 2006).

O termo maturação de afinidade é dado ao processo combinado que envolve a

mutação dos receptores celulares (anticorpos) e a seleção que garante a sobrevivência das

células que melhor reconhecem o antígeno. Acredita-se que esta mutação deve ser

inversamente proporcional a afinidade da célula com o antígeno: quanto maior a afinidade,

menor a taxa de mutação e vice-versa (CASTRO & TIMMIS, 2002; BEREK & ZIEGNER,

1993). Dessa forma, o sistema imunológico pode garantir a preservação de células de alta

afinidade, ao mesmo tempo em que fornece uma alta probabilidade de gerar células melhores,

a partir da célula selecionada.

Diferente da taxa de mutação, a taxa de proliferação de um anticorpo é diretamente

proporcional a sua afinidade com o antígeno. Quando um antígeno estranho invade o

organismo, algumas células o reconhecem com diferentes níveis de afinidades. Estas células

passarão pelo processo de seleção clonal e maturação de afinidade. A quantidade de clones

gerados para um anticorpo é proporcional a sua afinidade com o antígeno, ou seja, quanto

maior a afinidade, maior a quantidade de clones gerados e vice-versa.

3.2 SISTEMAS IMUNOLÓGICOS ARTIFICIAIS

Com inspiração no sistema imunológico dos vertebrados, novas técnicas computacionais

estão sendo estudadas e aplicadas para resolver problemas complexos em diversas áreas de

Page 47: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

47

conhecimento, da engenharia à própria biologia, o que deu origem a chamada Engenharia

Imunológica (DE CASTRO, 2001).

“A Engenharia Imunológica é um processo de meta-síntese, o qual vai definir a

ferramenta de solução de um determinado problema baseado nas características do próprio

problema e depois aplicá-la na obtenção da solução. Ao invés de buscar a reconstrução parcial

ou total do sistema imunológico tão fielmente quanto possível, a engenharia imunológica

deve procurar desenvolver e implementar modelos pragmáticos inspirados no sistema

imunológico que preservem algumas de suas propriedades essenciais e que se mostrem

passíveis de implementação computacional e eficazes no desenvolvimento de ferramentas de

engenharia.” (DE CASTRO, 2001, p. 44)

Desde sua proposição, em 2001, a engenharia imunológica vem servindo de base

processual para o projeto e desenvolvimento de sistemas imunológicos artificiais. De forma

sucinta, a engenharia imunológica propõe três componentes essenciais ao projeto e

desenvolvimento de sistemas imunológicos artificiais:

1. Uma representação para os componentes do sistema;

2. Um conjunto de mecanismos para avaliar interações, tanto entre os indivíduos,

quanto deles com o ambiente;

3. Procedimentos de adaptação, que governarão a dinâmica e metadinâmica do

sistema, ou seja, como ele varia ao longo do tempo.

Os sistemas imunológicos artificiais surgiram em meados da década de 80 com o

trabalho de Farmer e colaboradores (FARMER et al., 1986) introduzindo um modelo

dinâmico de redes imunológicos e propondo um paralelo do mesmo com os algoritmos

evolutivos. Em 2002 a área se estabeleceu academicamente com o lançamento do livro

“Artificial Immune Systems: A New Computational Intelligence Approach” (DE CASTRO &

TIMMIS, 2002), no qual os autores definiriam a área, seu escopo, metodologia de projeto,

revisaram as principais aplicações até o momento e compilaram os principais algoritmos com

aplicações diversas e genéricas em múltiplas áreas.

Dentre os algoritmos, ganharam muito destaque o Algoritmo de Seleção Negativa (DE

CASTRO & VON ZUBEN, 2002), o Algoritmo de Seleção Clonal (DE CASTRO & VON

ZUBEN, 2002), e os Algoritmos de Redes Imunológicas (DE CASTRO & VON ZUBEN,

2001; NEAL, HUNT & TIMMIS, 1988). Devido ao sucesso de alguns desses algoritmos e ao

Page 48: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

48

elevado potencial de aplicação em problemas combinatoriais NP-completos, como o abordado

nessa dissertação, o algoritmo intitulado Algoritmo de Seleção Clonal (CLONALG) foi

escolhido como base para a proposição de uma solução competitiva para o problema de

empilhamento de contêineres. A seção seguinte fará uma breve revisão do algoritmo que será

usado aqui como base para o desenvolvimento da solução a ser proposta.

3.3 O ALGORITMO DE SELEÇÃO CLONAL

A teoria da seleção clonal, discutida anteriormente, é utilizada pelo sistema imunológico

como mecanismo básico de resposta imunológica a um estímulo antigênico. Ela estabelece a

ideia de que somente as células que reconhecem os antígenos são selecionadas para a

proliferação. As células são expostas a um processo de maturação de afinidade, que deve

melhorar suas afinidades ao antígeno ao longo do tempo. O sistema imunológico possui a

capacidade de aprendizado, generalização e aquisição de memória. Baseando-se nesta

premissa, em (DE CASTRO & VON ZUBEN, 2002) os autores propuseram um algoritmo de

seleção clonal levando em conta os seguintes aspectos imunológicos:

Geração e manutenção de células de memória;

Seleção e clonagem de células mais estimuladas;

Eliminação (morte) de células não minimamente estimuladas;

Maturação de afinidade e seleção de clones com maior afinidade com o antígeno;

Geração e manutenção de diversidade; e

Taxa de mutação inversamente proporcional à afinidade da célula.

Este algoritmo mais tarde foi denominado CLONALG e aplicado a reconhecimento de

padrões e otimização (DE CASTRO, 2001). O algoritmo possui a estrutura apresentada no

diagrama de blocos da Figura 3.4 e pode ser descrito pelos seguintes passos:

1. Gere um conjunto (P) de soluções candidatas, composto de um subconjunto de células

de memória (M) e o resto da população (Pr). Ou seja, P = M + Pr;

2. Determine (selecionar) os n melhores indivíduos (Pn) da população, baseando-se na

medida de afinidade;

3. Reproduza (clonar) os n melhores indivíduos da população Pn, gerando uma nova

população de clones (C);

Page 49: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

49

4. Submeta o repertório de clones a mutação, onde a taxa de mutação é inversamente

proporcional a afinidade do anticorpo com o antígeno. Uma população de anticorpos

maturados é gerada (C*);

5. Re-selecione os melhores indivíduos de C* para compor o conjunto de memória M.

6. Substitua d anticorpos por novos, causando a introdução de diversidade. Quanto

menor a afinidade da célula, maior a probabilidade de ser substituída.

Figura 3.4: Diagrama de blocos do Algoritmo de Seleção Clonal

O funcionamento do algoritmo de seleção clonal pode ser interpretado com a mesma

dinâmica dos Algoritmos Genéticos, que baseiam-se nos princípios da evolução de Charles

Darwin (CZIKO, 1995). Tal fato se deve a características em comum entre estes dois

modelos, como: diversidade populacional, variação e seleção natural. Os dois processos

centrais envolvidos na produção de anticorpos, recombinação genética e mutação são os

mesmos responsáveis pela evolução biológica de espécies que se reproduzem de forma

sexuada (DE CASTRO & ZUBEN, 2000; HOLLAND, 1995). Essas características do

algoritmo de seleção clonal sugerem que este deve ser capaz de gerar soluções de alta

qualidade para problemas complexos, tais como reconhecimento de padrões, otimização

contínua e otimização combinatória (DE CASTRO & ZUBEN, 2000, 2001; DE CASTRO &

TIMMIS, 2002).

Page 50: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

50

4 UM ALGORITMO DE SELEÇÃO CLONAL

APLICADO AO PROBLEMA DE EMPILHAMENTO

E DESEMPILHAMENTO DE CONTÊINERES

Esta dissertação propõe alterações no Algoritmo de Seleção Clonal original com o objetivo de

aplicá-lo ao problema de empilhamento/desempilhamento de contêineres. A representação da

solução (anticorpo) foi modelada para fornecer como resultado toda a sequência de retirada

dos contêineres de uma pilha com o objetivo de esvaziá-la. A inicialização do repertório de

soluções é feita de forma a não criar soluções infactíveis. O processo de mutação foi

modelado de forma que não sejam criadas soluções infactíveis, mantendo ainda o conceito de

mutação inversamente proporcional à qualidade da solução. Finalmente, um mecanismo de

finalização de execução do algoritmo é adicionado, para casos em que a convergência ocorra

em poucas iterações.

4.1 REPRESENTAÇÃO DOS ANTICORPOS

Durante o processo de empilhamento e desempilhamento de contêineres, a pilha pode assumir

vários estados diferentes. Por exemplo, como visto na Figura 2.5f ao mover o contêiner de

número 6 para cima do contêiner de número 7 o estado da pilha foi alterado para um em que é

possível retirar todos os contêineres remanescentes sem a necessidade de outros rearranjos.

Porém, caso o contêiner 6 fosse movido para cima do contêiner 4 ainda seria necessário

rearranjar o contêiner 6 em algum momento para poder esvaziar a pilha. Portanto, cada estado

da pilha influenciará os estados futuros.

Para garantir que o modelo de otimização considere o processo de retirada de todos os

contêineres é necessário representar uma solução candidata como uma sequência de passos,

mais especificamente, uma sequência de movimentações. Considerando uma pilha contendo s

contêineres a serem retirados em ordem crescente, uma célula do repertório é representada

pela movimentação de cada contêiner durante a retirada dos contêineres 1,...,s-1. Quando um

contêiner i estiver para ser removido, deve-se verificar se será necessário rearranjar os

contêineres i+1, i+2,..., s.

Page 51: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

51

A Figura 4.1 propõe uma representação de um indivíduo solução para a sequência de

retirada de 7 contêineres, conforme configuração inicial ilustrada na Figura 4.2. O indivíduo é

dividido em 6 estágios, onde cada estágio é constituído por um estado da pilha em que pode

existir a presença ou ausência de rearranjo de um contêiner. Cada estágio i é dependente do

estágio anterior i1, (1 < i < s), portanto, toda alteração em um estágio refletirá diretamente

nos estágios seguintes. A Figura 4.2 demonstra as alterações nos estados da pilha decorrentes

dos estágios x1, x2 e x3 para a retirada dos contêineres 1, 2 e 3. O estágio x3 resultou em um

estado de pilha em que nenhum rearranjo extra será necessário para a retirada dos contêineres

4, 5, 6 e 7.

Figura 4.1: Representação de umacélula (solução candidata). Os índices sobre cada posição representam cada

contêiner que pode ser rearranjado no estágio xi. Cada posição representa a movimentação do contêiner para a

posição exibida, partindo da configuração inicial da pilha. Posições vazias indicam que não há movimentação

para o contêiner.

Figura 4.2: (a) Pilha inicial. (b) Pilha após o estágio x1. (c) Pilha após o estágio x2. (d) Pilha após o estágio x3.

A inicialização de cada célula (solução) é feita com consulta direta à pilha de entrada

(instância do problema), porém as posições de rearranjo são escolhidas de forma aleatória

dentro das possibilidades existentes. Dessa forma é possível criar as soluções com conteúdo

aleatório mantendo a factibilidade.

4.2 MODELAGEM DA MUTAÇÃO

Como apresentado na seção anterior, a modelagem da solução candidata (célula) compreende

em um conjunto de posições para onde contêineres serão rearranjados em cada momento

Page 52: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

52

durante o processo de esvaziamento de uma pilha qualquer. Dessa forma, a cada contêiner

sendo retirado da pilha é atribuído um estágio (o número que representa este estágio é

definido de acordo com a ordem de retirada dos contêineres. Por exemplo, o contêiner 2 é

retirado no estágio x2).

Cada estágio xi do processo de esvaziamento está fortemente relacionado com os

estágios subsequentes. Esta relação implica que quaisquer alterações feitas em um estágio xi

poderão criar alterações na configuraçãona pilha sobre a qual os estágios seguintes (xi+1,...,xs-

1) seriam ser gerados. Consequentemente, a alteração de qualquer estágio xi deverá considerar

alterar também os estágios subsequentes com o objetivo de manter a solução factível a cada

mutação.

Na modelagem deste algoritmo, o processo de mutação escolherá (de acordo com a

qualidade da solução em relação a todo o repertório) um dos estágios para modificar seus

parâmetros e então, os estágios seguintes ao escolhido também deverão ser devidamente

modificados com o objetivo de manter a solução factível. Para exemplificar, a Figura 4.3

apresenta a mutação de uma célula, onde o estágio selecionado foi o x3. Neste caso a alteração

das posições para onde os contêineres 4 e 5 no estágio x3 seriam movidos resultou em um

estágio x4 em que nenhum rearranjo fazia-se necessário, melhorando a qualidade da solução

candidata para a instância do problema.

Figura 4.3: Processo de mutação onde o estágio de início para a mutação foi o x3. Em consequência, obteve-se a

melhora do fitness do indivíduo, uma vez que os contêineres 4, 5 e 6 agora poderão ser retirados sem a

necessidade de rearranjos.

No processo de clonagem as células do repertório são clonadas de acordo com a

qualidade da solução (menor quantidade de rearranjos) em relação a todas as outras, ou seja,

quanto melhor a qualidade da solução apresentada pela célula mais clones esta terá. Dado que

Nc é a quantidade máxima de clones que uma determinada célula poderá ter, a Equação 4.1

Page 53: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

53

define a quantidade exata de clones para cada célula considerando a sua posição i no ranking

(da melhor para a pior) do repertório

( )

(Eq 4.1)

Por exemplo, se Nc = 20 e uma determinada célula for a segunda no ranking (C2), a

quantidade de clones a ser gerada será de ( )

.

O oposto deverá ocorrer para a taxa de mutação. Quanto melhor a solução apresentada

pela célula, menor deverá ser a taxa de mutação em seus clones gerados e vice-versa. Tendo

em vista o contexto de aplicação deste algoritmo, a taxa de mutação será definida por meio da

escolha do estágio (xi) a ser alterado. Além disso, como discutido anteriormente, uma vez que

cada estágio depende do anterior para manter a factibilidade da solução, toda vez que um

estágio é alterado, os subsequentes devem ser alterados também de acordo com as

configurações que a pilha associada pode assumir. Por exemplo, se o estágio x3 da Figura 4.3

for escolhido para mutação, então os estágios x4, x5 e x6 também serão alterados.

Sendo assim, como os estágios são dependentes, uma alta taxa de mutação deverá

alterar mais estágios enquanto uma baixa taxa de mutação deverá alterar menos estágios. Para

que esta dinâmica opere é somente necessário definir qual dos estágios será escolhido para a

alteração, pois uma vez que este for alterado seus subsequentes também serão. A Equação 4.2

garante que quanto maior a taxa de mutação, mais próximo do primeiro estágio da solução

(x1), e quanto menor a taxa de mutação, mais próximo do último estágio (xs-1). Dessa forma,

será possível manter as boas soluções e melhorar a qualidade das restantes promovendo a

evolução do repertório. Por exemplo, para a célula de posição i = 15 em um ranking de um

repertório contendo R = 20 células resolvendo o problema para uma pilha com s = 7

contêineres, a taxa de mutação para os clones será de ( ) (

) . Isto

implica que os clones da célula na posição i = 15 do ranking terão a partir do estágio x2 para

serem modificadas, modificando também os estágios x3, x4, x5 e x6.

( ) (

)

(Eq 4.2)

Page 54: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

54

4.3 PSEUDOCÓDIGO

O algoritmo proposto, denominado Minimal Reshuffle CLONALG (ou MRC), receberá como

entrada a matriz que representa o estado inicial da pilha de contêineres (M), a quantidade R de

células do repertório, a quantidade g de gerações, a quantidade máxima Nc de clones a serem

gerados por cada célula, a quantidade d de piores células a serem substituídas por novas no

repertório a cada iteração e um parâmetro k de controle que irá garantir a finalização do

algoritmo caso este permaneça k iterações sem evoluir a solução. O pseudocódigo do MRC é

apresentado e descrito a seguir:

1 procedure [P] = CLONALG(M,R,g,Nc,d,k)

2 gerações = 0;

3 P = gera(R);

4 Enquanto Condição é falsa faça,

5 gerações = gerações + 1;

6 f* = fitness(P);

7 P = muta(P, Nc);

8 P = seleciona(P,f*);

9 P = gera(d);

10 Se gerações == g 11 Condição = verdadeiro; 12 Se a população não evoluiu por k iterações 13 Condição = verdadeiro; 14 Fim 15 Fim

Pseudocódigo 4.1: Pseudocódigo do MRC.

No cálculo do fitness é computada a quantidade de rearranjos necessária para esvaziar

a pilha utilizando a solução proposta pela célula. No processo de mutação cada célula terá no

máximo Nc clones, sendo que a quantidade de clones é definida pela Equação 4.1. Na função

seleciona(P,f*) os indivíduos da população são selecionados pelos melhores fitness

para permanecer ou não no repertório para a próxima geração. Finalmente, a função

gera(d) substituirá as d piores células do repertório por novas células geradas

aleatoriamente com o objetivo de manter a diversidade de soluções.

O MRC possui dois procedimentos de parada:

1. Número máximo de gerações: O primeiro considera o número de gerações

definido na entrada, ou seja, caso a quantidade máxima de iterações seja atingida o

algoritmo finalizará a execução; ou

2. Estabilização do algoritmo: O segundo método possui o objetivo de finalizar a

execução do algoritmo caso este deixe de evoluir por k iterações.

Page 55: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

55

5 ANÁLISE DE DESEMPENHO

A literatura acadêmica sobre o problema de empilhamento de contêineres ainda não é muito

comum, o que é consequência da dificuldade de obtenção de soluções analíticas para esse

problema (BORGMAN et al., 2010). Na área de otimização de processos em terminais de

contêineres os experimentos são, em sua maioria, realizados através de simulações. Este

capítulo possui o objetivo de descrever a metodologia a ser utilizada para a validação do

algoritmo de otimização proposto nesta dissertação. Como a validação da proposta será

realizada através de simulações, serão descritos na sequência dois cenários de simulação e as

medidas de avaliação para cada um. Por fim, são descritos os parâmetros investigados na

análise de sensibilidade do algoritmo e os resultados obtidos nos dois cenários de testes.

5.1 CENÁRIOS DE TESTE

Dois cenários de testes serão introduzidos nesta seção: 1) o caso estático do problema de

desempilhamento; e 2) o caso dinâmico, em que são considerados tanto o empilhamento de

novos contêineres, quanto o desempilhamento (saída do contêiner da pilha). Em ambos os

casos existe um tipo específico de geração de casos de teste. Para o estático os casos de teste

são compostos essencialmente por pilhas a serem esvaziadas com o mínimo de rearranjos

respeitando a ordem de retirada dos contêineres. Já para o caso dinâmico, além das pilhas são

geradas também sequências de entrada de novos contêineres na pilha.

5.1.1 Caso Estático: Esvaziamento de Pilha

Essencialmente, os contêineres são organizados em pilhas para otimizar a utilização de

espaço. As pilhas a serem utilizadas nas simulações deste modelo são geradas aleatoriamente

utilizando dados de tamanho em colunas e fileiras e também a quantidade de contêineres

presentes. Os dados gerados representarão a ordem em que os contêineres estão programados

para a retirada no momento.

Cada instância do problema será representada por uma matriz de tamanho f ×c, onde f

é a quantidade de fileiras e c a quantidade de colunas da pilha. Cada elemento da matriz Mfc

corresponde a um contêiner aij, i = 1, ..., f, j = 1, ..., c, onde a é o seu número na ordem de

retirada dos contêineres e ij é a sua posição na pilha (Equação 5.1). Como espaços deverão

Page 56: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

56

estar disponíveis para o rearranjo de contêineres, as posições em branco serão representadas

pelo número 0 (Figura 5.1).

[

] (Eq. 5.1)

Figura 5.1: (a) Instância do problema de desempilhamento com 7 contêineres. (b) pilha vazia.

A geração de dados para os experimentos é feita através de um algoritmo que recebe

como entrada os parâmetros c e f da pilha, a quantidade s de contêineres presentes na pilha e a

quantidade T de casos de testes a serem gerados. A saída do procedimento de geração de

dados de teste é, então, um arquivo contendo T casos de teste. Por exemplo, se a entrada for

c = 3, f = 3, s = 7 e T = 50, então serão geradas 50 pilhas aleatórias de tamanho 33, cada uma

contendo 7 contêineres. A seguir é descrito o pseudocódigo para a geração de dados de teste.

1 procedure [] = geraDados(s,T,c,f)

2 casos = 1;

3 Enquanto casos é diferente de T,

4 casos = casos + 1;

5 pilha[][] = {0};

6 cond = falso;

7 Para i = 1 até i = s faça

8 Enquanto cond é falso faça

9 col = Rand(c);

10 fil = Rand(f); 11 Se pilha[col][fil] == 0 então 12 pilha[col][fil] = i; 13 cond = verdadeiro; 14 Fim 15 Fim 16 Fim 17 pilha[][] = normaliza(pilha[][]); 18 Fim 19 Fim

Pseudocódigo 4.1: Pseudocódigo para a geração de dados para experimentos de simulação.

Inicialmente uma matriz contendo apenas zeros é gerada (Linha 5). Durante a criação

de cada pilha uma posição da pilha é escolhida aleatoriamente para posicionar o contêiner i

(Linhas 9 e 10). Se a posição estiver desocupada, o contêiner é posicionado, caso contrário

Page 57: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

57

uma nova posição será escolhida (Linhas 8-13). Após todos os contêineres serem inseridos,

teremos uma matriz contendo números de 1 a s espalhados de forma aleatória. Durante este

processo de atribuição é possível que contêineres sejam atribuídos a posições que não

contenham um contêiner imediatamente abaixo (Figura 5.2), ou seja, como se o contêiner

estivesse “flutuando”, fazendo com que uma rotina de verificação fosse necessária. Na função

normaliza(Pilha[][]) os contêineres que estiverem flutuando serão movidos para posições

abaixo da que se encontram, a fim de tornar factível a instância do problema.

[

] [

]

Figura 5.2: Normalização de uma pilha infactível de tamanho 3×3 com 5 contêineres criada pelo algoritmo de

geração de dados para experimentos.

5.1.2 Caso Dinâmico: Simulação

Embora o caso estático apresentado acima seja importante sob o ponto de vista didático, na

prática ele é pouco utilizado, pois o ambiente de empilhamento e desempilhamento em um

terminal de contêineres é dinâmico, no sentido de que há contêineres continuamente chegando

e saindo. Por essa razão, um algoritmo eficiente de solução do problema deve ser capaz de

operar, principalmente, nessas situações. Tendo em vista o teste do modelo proposto sob estas

condições, esta seção apresenta a descrição de um modelo de simulação de um cenário onde

contêineres novos são inseridos em uma pilha a qualquer momento e contêineres são

requisitados a sair da pilha no momento previsto. O objetivo geral, neste caso, é realizar a

simulação com a menor quantidade possível de rearranjos.

A geração de dados para a configuração dinâmica é mais complexa do que a do

modelo estático (esvaziar uma pilha) devido a diversos fatores. Se a data de chegada e partida

de contêineres na pilha não for atribuída de forma correta pode não haver iteração real do

empilhamento no sentido dinâmico. Além disso, contêineres podem chegar em tamanha

quantidade, de forma que a pilha não possua espaço no momento para acolhê-los. Em outro

extremo, pode haver tão poucos contêineres na pilha de forma que o rearranjo seja pouco

necessário e a avaliação da simulação seja comprometida. Outro caso seria a situação em que

a chegada e partida de contêineres aconteçam em grupos, de forma que toda a configuração da

Page 58: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

58

simulação aconteça como um conjunto de pequenos problemas estáticos. Todos estes casos

não são desejáveis como casos de testes para a configuração dinâmica.

Para a validação do MRCLONALG em um ambiente dinâmico serão utilizados os

seguintes padrões de entrada:

Configuração de uma pilha inicial: pilha de tamanho (c,f) contendo s contêineres

numerados na ordem em que deverão ser removidos, gerada de forma aleatória (como

no caso estático);

Sequência de contêineres de entrada e saída: esta sequência deve conter números

inteiros gerados aleatoriamente que representarão novos contêineres a serem inseridos

na pilha ou valores 1, que representarão a operação de retirada do contêiner a ser

removido na pilha no momento (Figura 5.3).

Figura 5.3: Sequência de 10 contêineres de entrada e de saída.

Quando um contêiner adicionado possui prioridade menor do que o ultimo da pilha

este é ajustado para se adequar a ordem (Figura 5.4) e quando o novo contêiner possuir

prioridade igual à de algum contêiner já existente, esta é mantida enquanto a de seus

subsequentes é atualizada para manter a ordem na pilha, como ilustrado na Figura 5.5.

Figura 5.4: Adição de um novo contêiner com prioridade 13. A prioridade do contêiner é então ajustada para a

situação atual da pilha, atualizando-a para 6.

13 4 -1 -1 2 -1 7 9 12 -1

Page 59: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

59

Figura 5.5: Inserção de um contêiner com prioridade existente. Neste caso, a prioridade do novo contêiner é

mantida, e os subsequentes a ele são atualizados para manter a ordem de retirada.

Quando um contêiner precisa ser retirado (indicado pela entrada “-1”), o selecionado

deverá ser sempre o com maior prioridade, ou seja, o contêiner 1. Quando o contêiner 1 é

retirado, a pilha imediatamente será atualizada para que os índices de prioridades sejam

ajustados (Figura 5.6). Este ajuste permitira a manutenção da organização da ordem de

retirada dos contêineres a todo o momento durante a simulação.

Figura 5.6: Remoção do contêiner de maior prioridade (1) e atualização dos índices.

O objetivo geral desta simulação será, então, definir as melhores posições disponíveis

para contêineres que necessitem de rearranjos durante a retirada de um contêiner específico e

também a melhor posição disponível para alocar um contêiner que estiver chegando (Figura

5.4 e Figura 5.5). Consequentemente, poderá se avaliar a quantidade total de rearranjos

(movimentos improdutivos) realizados no decorrer da simulação, assim como avaliar a

estimativa de rearranjos para esvaziar a pilha em cada momento da simulação (entrada ou

retirada de um contêiner).

Page 60: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

60

5.2 ANÁLISE DE SENSIBILIDADE PARAMÉTRICA

Esta seção possui o objetivo de discutir e analisar a sensibilidade do algoritmo

MRCLONALG aos parâmetros de entrada definidos pelo usuário. Em particular é estudada a

influência dos seguintes parâmetros:

1. R = {10,20,30,40,50}: representa a quantidade de células no repertório de soluções

candidatas (tamanho da população);

2. Nc = {5,10,15,20,25}: representa a quantidade máxima de clones por célula;

3. d = {5,10,20,30,40}: representa a quantidade de piores células a serem substituídas por

novas no repertório;

4. k = {50,100,200,300,400,500}: responsável por finalizar a execução do algoritmo caso

as soluções não tenham melhorado por k gerações.

Para todos os casos de teste são apresentados resultados em termos de média de 30

execuções com a pilha de entrada apresentada na Figura 5.7 e 30 execuções com a pilha

de entrada da Figura 5.8. Os valores padrão utilizados para cada variável não sendo

analisada foram: R = 20; Nc = 10; d = 20 e k = 200.

P1 =

[ ]

Figura 5.7: Pilha (P1) de tamanho (c,f) = (6,5) contendo 21 contêineres para testes e análise de sensibilidade

paramétrica.

P2 =

[

]

Figura 5.8: Pilha (P2) de tamanho (c,f) = (8,5) contendo 36 contêineres para testes e análise de sensibilidade

paramétrica.

Page 61: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

61

5.2.1 Tamanho do Repertório (R)

A Figura 5.9 apresenta a relação entre o tamanho do repertório e a quantidade mínima de

rearranjos obtida na execução para a pilha P1. O valor mínimo de rearranjos manteve-se

estável para repertórios contendo a partir de 30 células. O mesmo acontece para a pilha P2

(Figura 5.10). Observa-se, portanto, que o tamanho R do repertório de soluções apresenta

baixa influência na qualidade das soluções obtidas após um determinado número de gerações.

Figura 5.9: Relação entre a quantidade de células no repertório e a qualidade da solução obtida para a pilha P1 .

Figura 5.10: Relação entre a quantidade de células no repertório e a qualidade da solução obtida para a pilha P2 .

12

13

14

15

16

17

18

10 20 30 40 50

Re

arra

njo

s

Tamanho do repertório (R)

24

24,5

25

25,5

26

26,5

27

27,5

28

28,5

29

10 20 30 40 50

Re

arra

njo

s

Tamanho do repertório (R)

Page 62: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

62

Embora o aumento no tamanho do repertório impacte pouco a qualidade da solução, o

tempo de execução é fortemente afetado pelo tamanho do repertório, como pode ser

observado na Figura 5.11 (P1) e também na (P2). Nota-se que a complexidade em relação ao

tamanho do repertório possui crescimento aproximadamente linear.

Figura 5.11: Relação entre o tamanho do repertório de soluções candidatas e o tempo de execução do algoritmo

para a pilha P1.

Figura 5.12: Relação entre o tamanho do repertório de soluções candidatas e o tempo de execução do algoritmo

para a pilha P2.

0

0,5

1

1,5

2

2,5

10 20 30 40 50

Tem

po

de

Exe

cuçã

o (

s)

Tamanho do repertório (R)

0

0,5

1

1,5

2

2,5

3

3,5

4

4,5

5

10 20 30 40 50

Tem

po

de

Exe

cuçã

o (

s)

Tamanho do repertório (R)

Page 63: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

63

5.2.2 Quantidade Máxima de Clones por Célula (Nc)

Como pode ser observado pelo gráfico da Figura 5.13, o número de clones por célula

praticamente não influencia o desempenho do algoritmo quando aplicado à pilha P1. O mesmo

acontece quando aplicado à pilha P2 (Figura 5.14).

Figura 5.13: Relação entre a quantidade máxima de clones por célula (Nc) e a qualidade dos resultados obtidos

em rearranjos para P1.

Figura 5.14: Relação entre a quantidade máxima de clones por célula (Nc) e a qualidade dos resultados obtidos

em rearranjos para P2.

12

13

14

15

16

17

18

5 10 15 20 25

Re

arra

njo

s

Quantidade máxima de clones por célula (Nc)

24

24,5

25

25,5

26

26,5

27

27,5

28

28,5

29

5 10 15 20 25

Re

arra

njo

s

Quantidada máxima de clones por célula (Nc)

Page 64: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

64

Semelhante ao caso da quantidade de células no repertório, a quantidade máxima de

clone por célula também possui grande influência no tempo de processamento. Como

apresentado na Figura 5.15 e na Figura 5.16, o crescimento mostrou-se aproximadamente

linear para P1 e P2.

Figura 5.15: Relação entre a quantidade máxima de clones por célula (Nc) e o tempo de execução em segundos

para os testes na pilha P1.

Figura 5.16: Relação entre a quantidade máxima de clones por célula (Nc) e o tempo de execução em segundos

para os testes na pilha P2.

0

0,5

1

1,5

2

2,5

5 10 15 20 25

Tem

po

de

exe

cuçã

o (

s)

Quantidade máxima de clones por célula (Nc)

0

1

2

3

4

5

6

7

1 2 3 4 5

Tem

po

de

Exe

cuçã

o (

s)

Quantidada máxima de clones por célula (Nc)

Page 65: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

65

5.2.3 Inclusão de Diversidade (d)

A eliminação dos indivíduos com menor nível de adaptação e inclusão de novos indivíduos na

população é uma importante estratégia para a introdução de diversidade no algoritmo. Foram

feitos experimentos variando-se a quantidade de indivíduos a serem substituídos nas seguintes

quantidades: d = {5%, 10%, 20%, 30%, 40%}. Como pode ser observado na Figura 5.17,

substituir uma maior quantidade de indivíduos da população não implicou em perda de

performance para a aplicação à pilha P1. Já para P2, a inclusão de novos indivíduos implicou

em uma melhor média nas qualidades das soluções (Figura 5.18).

Figura 5.17: Relação entre a inclusão de diversidade (d) e a qualidade dos resultados obtidos em rearranjos para

a pilha P1.

12

13

14

15

16

17

18

5 10 20 30 40

Re

arra

njo

s

Diversidade %

Page 66: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

66

Figura 5.18: Relação entre a inclusão de diversidade (d) e a qualidade dos resultados obtidos em rearranjos para

a pilha P2.

O tempo de execução pode variar para os valores de d. Entretanto, como é possível

notar pelo gráfico de tempo de execução de P1 e P2 (Figura 5.19 e Figura 5.20), esta variação é

dependente da dinâmica de busca do algoritmo e tende a aumentar o tempo de processamento.

Como a qualidade da solução praticamente estabiliza para d = 20% o ideal será manter o valor

de d entre 20 e 25%.

Figura 5.19: Relação entre a inclusão de diversidade (d) e o tempo de execução (seg) para P1.

24

24,5

25

25,5

26

26,5

27

27,5

28

28,5

29

5 10 20 30 40

Re

arra

njo

s

Diversidade %

0

0,5

1

1,5

2

2,5

5 10 20 30 40

Tem

po

de

exe

cuçã

o (

s)

Diversidade %

Page 67: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

67

Figura 5.20: Relação entre a inclusão de diversidade (d) e o tempo de execução (seg) para P2.

5.2.4 Parâmetro k

O parâmetro k, denominado de janela de estabilização, faz com que o algoritmo finalize a sua

execução após k iterações, caso ele sofra uma estabilização do fitness médio. Assim, o número

de iterações realizadas pelo algoritmo nem sempre será o mesmo, influenciando o tempo de

resposta. A Tabela 5.1 apresenta o tempo médio de execução do algoritmo para os quatro

casos de teste em relação à quantidade média de gerações executadas.

Tabela 5.1: Tempo médio de execução/Gerações executadas

f c Tempo Médio de Execução Gerações executadas

2 6 0.021 200

3 6 0.177 201.46

4 6 0.313 233.64

5 6 1.271 289.56

É possível perceber pela Tabela 5.1que para pilhas com poucas fileiras (2 a 3) são

necessárias poucas iterações para a convergência. Entretanto, para pilhas maiores, como nos

casos de teste P1 e P2, é preciso garantir que pelo menos 200 iterações sejam executadas para

2,7

2,8

2,9

3

3,1

3,2

3,3

5 10 20 30 40

Tem

po

de

Exe

cuçã

o (

s)

Diversidade %

Page 68: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

68

finalizar o algoritmo. A partir de k = 200 a quantidade mínima de rearranjos tende a

estabilizar (Figura 5.21 e Figura 5.22).

Figura 5.21: Relação entre o parâmetro k e a qualidade das soluções obtidas em rearranjos para P1.

Figura 5.22: Relação entre o parâmetro k e a qualidade das soluções obtidas em rearranjos para P2.

12

13

14

15

16

17

18

50 100 200 300 400 500

Re

arra

njo

s

k

24

24,5

25

25,5

26

26,5

27

27,5

28

28,5

29

50 100 200 300 400 500

Re

arra

njo

s

Parâmetro k

Page 69: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

69

5.2.5 Comentários Gerais Sobre a Sensibilidade Paramétrica

De acordo com os resultados apresentados na análise de sensibilidade paramétrica do

algoritmo, é possível perceber que existe baixa influência dos parâmetros em relação à

qualidade da solução. Entretanto, a análise mostrou que o aumento dos valores de qualquer

um dos parâmetros resulta em aumento, seguindo taxas aproximadamente lineares de

crescimento, do tempo de processamento. Os casos mais críticos em relação ao aumento do

tempo de execução foram encontrados na variação do parâmetro R, referente ao tamanho do

repertório, e ao parâmetro Nc, referente à quantidade máxima de clones por célula. A

conclusão, portanto, é que para o problema em estudo é possível obter bons resultados com

valores paramétricos relativamente baixos frente aos avaliados nessa dissertação.

5.3 EXPERIMENTOS E RESULTADOS

A implementação computacional da ferramenta proposta (MRCLONALG) foi feita utilizando a

linguagem de programação Java. Os experimentos do algoritmo foram realizados no

Laboratório de Computação Natural (LCoN) vinculado ao PPGEE, em máquinas com as

seguintes configurações: Intel Core 2 Duo 2,8 GHz com 4GB de Memória RAM e HD de

250GB.

Os experimentos foram realizados considerando dois cenários distintos:

1. Caso estático, no qual o objetivo é esvaziar uma pilha até o ultimo contêiner; e

2. Caso dinâmico, onde existe uma sequência de chegada e saída de contêineres

para uma determinada pilha inicial.

5.3.1 Caso Estático

Nesta seção são apresentados os resultados obtidos pelo MRCLONALG, comparados com os

resultados obtidos pelo modelo MRIP, MRIPk e heurísticas do Slot Mais Baixo (SMB), Índice

de Rearranjo (IR) e ENAR para as pilhas de mesma configuração (Wan et al., 2009). De uma

forma ou de outra, estas heurísticas assumem diferentes abordagens para aproximar o número

de rearranjos futuros considerando o armazenamento ou retirada de um contêiner.

Dada a ordem em que s contêineres devem ser retirados de uma pilha de c colunas e f

fileiras, procura-se a melhor estratégia para desempilhar os contêineres na ordem pré-

Page 70: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

70

estabelecida com o menor custo possível, ou seja, com o mínimo de rearranjos. No algoritmo

MRC, uma solução é representada pela sequência de movimentação dos contêineres até que a

pilha esteja vazia. Dessa forma, o fitness de uma solução é dado pelo inverso da quantidade de

rearranjos apresentada por ela. Consequentemente, em uma situação ideal, o fitness máximo

de uma solução candidata seria obtido quando nenhum rearranjo fosse realizado.

Wan et al. (2009) diferencia o estado de armazenamento de pilhas de contêineres entre

armazenamento leve, médio e pesado, onde cada um estará, respectivamente, com 20%, 50%

e 80% da sua capacidade utilizada. A Tabela 5.2 apresenta a quantidade média de rearranjos

obtidos por cada um dos algoritmos quando aplicados a pilhas com armazenamento pesado

(utilizando a sua capacidade máxima de armazenamento possibilitando rearranjos) e tamanho

62, 63, 64 e 65, cada uma contendo 9, 13, 17 e 21 contêineres respectivamente (os

resutados para os algoritmos MRIP, SMB, IR e ENAR foram retirados da literatura). Para

cada configuração (tipo de pilha) foram gerados 50 casos de teste, totalizando 200

experimentos. Com base na análise de sensibilidade paramétrica da Seção 5.2, os parâmetros

de entrada utilizados para o MRC foram: R = 20 (tamanho do repertório); g = 1000 (gerações);

Nc = 10 (máximo de clones por células); d = 20% (substituição de indivíduos); k = 200.

Tabela 5.2: Comparação de desempenho entre o MRC, MRIP, MRIPk=6, SMB, IR e ENAR.

Média de rearranjos | Média de tempo de execução (seg)

(c,f) = (6,2) (c,f) = (6,3) (c,f) = (6,4) (c,f) = (6,5)

MRC 1.7 ± 0.0 0.02 4.42 ± 1,40 0.17 7.98 ± 2,05 0.31 11.92 ± 2,09 0.57

SMB 1.72 0 5.02 0 9.28 0 15.64 0

IR 1.7 0 4.64 0 7.78 0 12.58 0

ENAR 1.72 0 4.64 0 7.8 0 13.44 0

MRIP 1.7 0,06 5.58 0.43 7.56 85.97 11.68 689.42

MRIP6 1.70 0.18 4.58 0.87 7.56 6.437 11.80 66.80

O MRCLONALG, apesar de possuir um desempenho médio em relação ao número de

rearranjos parecido com o dos outros métodos, apresentou um tempo médio de computação

consideravelmente menor. Mais especificamente, no caso da pilha com configuração 65 e 21

contêineres, o algoritmo MRIP respondeu com tempo médio de 11,5 minutos e o MRIP6 com

tempo médio de 1,1 minuto, enquanto o MRCLONALG executou com tempo médio de menos

de 1 segundo. Segundo Want et al. (2009), os resultados computacionais sugerem que para

operações normais, ou seja, situações de vida real, são necessários métodos mais rápidos do

Page 71: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

71

que o MRIP para resolver o problema. O tempo de computação do MRIPk dependerá da

complexidade e da quantidade de programas inteiros a serem resolvidos (k). Em geral o tempo

de computação deste modelo cresce com os parâmetros k (MRIPk), c e f (Pilha de entrada). A

qualidade da média das soluções do MRIPk aumenta com o tamanho de k.

Por se tratar de um algoritmo baseado em um repertório de soluções candidatas, o

MRCLONALG é capaz de gerar múltiplas soluções factíveis de qualidade. A Figura 5.23

apresenta a evolução do número de rearranjos de todo o repertório ao longo de,

aproximadamente, 300 gerações, ilustrando que toda a população está convergindo para

soluções que apresentam menores quantidades de rearranjos para a pilha da Figura 5.7.

Figura 5.23: Menor quantidade de rearranjos e média da quantidade de rearranjos do repertório de soluções ao

longo de, aproximadamente, 300 iterações.

5.3.2 Caso Dinâmico

A simulação foi realizada por meio de 30 execuções de cada algoritmo (MRCLONALG e

heurísticas) com uma sequência de 100 contêineres a serem retirados e inseridos em quatro

configurações de pilhas de armazenamento pesado geradas aleatoriamente (da mesma forma

que no caso estático). Para a realização das simulações de teste e comparação de desempenho

foram implementadas as heurísticas LS e RI apresentadas na Seção 2.3. A Tabela 5.3

14

15

16

17

18

19

20

21

22

23

24

1

15

29

43

57

71

85

99

11

3

12

7

14

1

15

5

16

9

18

3

19

7

21

1

22

5

23

9

25

3

26

7

28

1

29

5

30

9

32

3

Re

arra

njo

s

Média

Menor

Page 72: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

72

apresenta a quantidade média de rearranjos necessários no decorrer de 100 operações de

retirada e inserção de contêineres nas pilhas de tamanho (6,5), (6,4), (6,3) e (6,2) contendo

inicialmente e respectivamente 21, 17, 13 e 9 contêineres, valores que representam a

utilização de 80% da capacidade de cada pilha.

Tabela 5.3: Média de rearranjos da simulação e média do tempo de execução para 30 execuções.

Média de rearranjos | Média de tempo de execução (seg)

(c,f) = (6,5) (c,f) = (6,4) (c,f) = (6,3) (c,f) = (6,2)

MRCLONALG 19,73 115,0 12,83 69,00 8,76 42,81 4,33 29,20

LS 29,93 0,005 13,90 0,004 9,03 0,003 5,06 0,001

RI 37,76 0,006 20,86 0,004 9,70 0,003 5,76 0,001

Para as pilhas nas quais f é igual a 2, 3 e 4 a quantidade mínima de rearranjos não

apresentou grande variação entre os três algoritmos avaliados. Entretanto, para a pilha com 5

fileiras a quantidade de rearranjos apresentada pelas soluções do MRCLONALG é 34% menor

do que a apresentada pela heurística LS e 47% menor do que a apresentada pela heurística RI.

Durante a simulação cada operação de entrada ou saída de um contêiner na pilha

resultará em uma execução do algoritmo MRC. Dessa forma, é possível verificar quantos

rearranjos seriam necessários para esvaziar a pilha nesses momentos. Com isso é possível

analisar como a pilha está sendo afetada pelos algoritmos de minimização de rearranjos, pois

com melhores decisões sobre quais posições utilizar ter-se-á uma pilha com melhor

organização quanto à ordem de saída de contêineres. Consequentemente, tais pilhas deverão

ter uma estimativa de rearranjos cada vez menor para o esvaziamento. A Figura 5.24

apresenta a estimativa do total de rearranjos para esvaziar a pilha durante a entrada e saída de

55 contêineres, onde é possível verificar que a pilha tende a se ajustar quando uma regra de

decisão é utilizada para definir onde posicionar contêineres rearranjados.

Page 73: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

73

Figura 5.24: Estimativa de rearranjos para esvaziar a pilha durante a entrada/saída de 55 contêineres.

Ainda para o mesmo caso, é possível quantificar o total de rearranjos estimados para

cada uma das técnicas utilizadas (Figura 5.25). Para a heurística LS o valor estimado foi de

303 rearranjos, 327 para a heurística RI e 164 para o MRCLONALG, ou seja, o MRCLONALG

apresentou resultado 25% menor em relação à LS e 52% menor em relação ao RI.

Figura 5.25: Total de rearranjos estimados para cada uma das técnicas durante a simulação.

0

2

4

6

8

10

12

14

16

18

20

1 4 7 10 13 16 19 22 25 28 31 34 37 40 43 46 49 52 55

Esti

mat

iva

de

Re

arra

njo

s

Operação de Entrada/Saída

LS

IR

Clonalg

0

50

100

150

200

250

300

350

MRCLONALG

LS

RI

Page 74: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

74

6 CONCLUSÕES E DISCUSSÃO

O problema geral de empilhamento de contêineres é encontrar um plano de armazenamento

com a menor estimativa de rearranjos possível, uma vez que este tipo de movimentação

resultará na utilização de tempo e recursos do terminal. Em um sentido mais específico,

devem-se definir posições para contêineres em uma pilha de forma que durante a retirada de

um dado contêiner seja necessária a menor quantidade possível de rearranjos.

Como investigado por Avriel et al. (2000), o problema geral de armazenamento de

contêineres visando à redução da quantidade de movimentos improdutivos é NP-Difícil para

pilhas a partir de quatro colunas e altura arbitrária, implicando que resolver este problema por

força bruta não é prático em situações reais. Dessa forma, esta dissertação investigou o uso

de um Algoritmo de Seleção Clonal adaptado especificamente para a solução do problema de

empilhamento e desempilhamento de contêineres, intitulado MRC.

A qualidade das soluções apresentadas pelo MRC foi validada por meio de dois

cenários de simulação: estático e dinâmico. No caso estático verificou-se a capacidade do

modelo oferecer um plano de desempilhamento para uma pilha inteira, ou seja, quando o

objetivo é esvaziar a pilha toda. No caso dinâmico investigou-se a capacidade do modelo

atuar sob condições mais parecidas com a atividade real de um terminal de contêineres, onde

existe a chegada e partida contínua de novos contêineres em vários momentos no decorrer do

tempo.

No caso estático, o desempenho em quantidade de rearranjos do MRC foi comparado

com os resultados do modelo de Programação Inteira proposto por Wan et al., (2009), além

dos resultados das heurísticas de SMB, IR e ENAR obtidos por este mesmo autor. Para pilhas

baixas (poucas fileiras) o resultado mostrou-se equiparado para todas as técnicas, apenas com

variação no tempo de execução. Já para pilhas com cinco fileiras é possível identificar o

ganho de desempenho em tempo, quando comparado com os modelos MRIP e MRIPk, além

do ganho de desempenho em quantidade de rearranjos quando comparado com as heurísticas.

No caso dinâmico, o MRC foi comparado com as heurísticas de SMB e IR. Novamente, o

maior ganho de desempenho se revelou para pilhas com altura de ao menos cinco contêineres.

Evidentemente, o tempo de computação para o MRC é maior do que o apresentado para as

Page 75: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

75

heurísticas, no entanto a qualidade das soluções representa um ganho de até 52% na

minimização da quantidade de rearranjos.

Tanto no caso estático quanto dinâmico observa-se que mover o contêiner que deve ser

rearranjado para a posição ideal deve melhorar o resultado final do processo como um todo.

Como as heurísticas SMB, IR e ENAR são baseadas em regras simples de operação, o

resultado nem sempre é o ideal. O modelo MRIP apresentará sempre a solução ótima, porém

seu tempo de computação para grandes instâncias mostrou-se demasiadamente elevado, o que

levou o próprio autor a considerá-lo impraticável do ponto de vista de aplicação real e, então,

estendê-lo para uma heurística denominada MRIPk (Wan et al., 2009). Com a utilização do

MRC é possível obter soluções de qualidade competitiva e com um baixo custo em tempo

computacional.

Dentre as possíveis extensões e trabalhos futuros destacam-se:

Comparação com outros modelos e heurísticas, principalmente métodos não-

determinísticos com elevada capacidade de solução de problemas complexos com

entradas grandes, como algoritmos genéticos e enxame de partículas;

Aplicação a um teste de caso com dados reais de um terminal em operação, e

A criação de um ambiente de simulação mais sofisticado, considerando diversas

outras variáveis que podem influenciar na operação de um terminal de

contêineres.

Page 76: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

76

REFERÊNCIAS BIBLIOGRÁFICAS

AVRIEL, M.; PENN, M.; SHPIRER, N. Container ship stowage problem: complexity and

connection to the coloring of circle graphs, Discrete Appl Math 103 , pp. 271–279, 2000.

ANTAQ – Agencia Nacional de Transportes Aquaviários. Lei N8.630 de 25 de Fevereiro de

1993. Disponível em http://www.antaq.gov.br/Portal/Legislacao_LeisDecretos.asp. Acessado

em 23 de maio de 2011.

BACK, T.; FOGEL, D. B.; MICHALEWICZ, Z. Evolutionary Computation 1 Basic

Algorithms and Operators. Bristol and Philadelphia : Institute of Physiscs Publishing (IOP),

2000a.

BACK, T.; FOGEL, D. B.; MICHALEWICZ, Z. Evolutionary Computation 2 Advanced

Algorithms and Operators. Bristol and Philadelphia : Institute of Physiscs Publishing (IOP),

2000b.

BEREK, C.; ZIEGNER, M. The maturation of the immune response. Imm Today 14, p 400-

402, 1993.

BORGMAN, B., Van ASPEREN, E. ;DEKKER, R. Online rules for container stacking. OR

Spectrum: 687–716, 2010.

BÖSE J.; REINERS T; VOß, S.; STEENKEN, D., "Vehicle Dispatching at Seaport Container

Terminals Using Evolutionary Algorithms," hicss, vol. 2, pp.2025, 33rd Hawaii International

Conference on System Sciences-Volume 2, 2000.

BRADLEY; HAX; MAGNANTI. Applied Mathematical Programming. Addison-Wesley,

1977.

BRONSON, R. Schaum's Outline of Operations Research. Govindasami Naadimuthu. – 2nd

ed., 1997.CARIDADE, J. C. Logística e serviços virtuais. Trade and transport. (35): 98, 2000.

Companhias caminham para novas tecnologias. Gazeta Mercantil. São Paulo, 22 de março de

2001.

CASERTA, M; VOß, S; SNIEDOVICH, M. Applying the corridor method to a blocks

relocation problem. OR Spectrum, 2010.

Page 77: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

77

CHEN, P.; FU, Z.; LIM, A; RODRIGUES, B. Port Yard Storage Optimization. IEEE

Transactions on Automation Science and Engineering, v. 1, n. 1, p. 26-37. doi:

10.1109/TASE.2004.829412, 2004.

CERNY, V. Thermodynamical approach to the traveling salesman problem: an efficient

simulation algorithm, Journal of Optimization Theory and Applications, 45, pp.41–51, 1985.

CZIKO, G. The Immune System: Selection by the Enemy. The MIT Press, 39-48, 1995.

DE CASTRO, L. N. Fundamentals of natural computing: An overview. Physics of Life

Reviews, v. 4, n. 1, p. 1-36, 2007.

DE CASTRO, L. N. Fundamentals of Natural Computing: Basic Concepts, Algorithms and

Applications. [S.l.]: CRC Press LLC, 2006.

DE CASTRO, L. N.; TIMMIS, J. Artificial immune systems: A new computational

intelligence approach. Springer-Verlag, 2002.

DE CASTRO, L. N. ZUBEN, F. J. The Clonal Selection Algorithm with Engineering

Applications. In Workshop Proceedings of GECCO, pp. 36-37, Las Vegas, USA, 2000.

DE CASTRO, L. N. ZUBEN, F. J. Learning and Optimization Using the Clonal Selection

Principle. IEEE Transactions on Evolutionary Computation, Special Issue on Artificial

Immune Systems, 2001.

DE SOUSA, J. S., GOMES, L. DE C. T., BEZERRA, G. B., DE CASTRO, L. N.; VON

ZUBEN, F. J., An Immune-Evolutionary Algorithm for Multiple Rearrangements of Gene

Expression Data, Genetic Programming and Evolvable Machines, 5, pp. 157-179, 2004.

DEKKER, R.; VOOGD, P.; ASPEREN, E. Advanced methods for container stacking. OR

Spectrum, v. 28, n. 4, p. 563-586. doi: 10.1007/s00291-006-0038-3, 2006.

GAREY, M. R.; JOHNSON, D. S. Computers and Intractability: A Guide to the Theory of

NP-Completeness (Series of Books in the Mathematical Sciences). First Edit ed. W. H.

Freeman, 1979.

GOMES, L.; SOUSA, J. S.; BEZERRA, G. B. copt-ainet and the gene ordering problem.

Revista Tecnologia da Informação, v. 3, n. 2, p. 27–34, 2004.

Page 78: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

78

GLOVER, F.; G. A. KOCHENBERGER. Handbook of Metaheuristics, Kluwer Academic

Publishers, 2002.

HAESER, G.; GOMES–RUGGIER, M. Aspectos Teóricos de Simulated Annealing e um

Algoritmo duas Fases em Otimização Global. TEMA Tend. Matemática Aplicada e

Computacional, 9, No. 3, 395-404, 2008.

HARTMANN, S.. A general framework for scheduling equipment and manpower at container

terminals. Springer-Verlag, OR Spectrum 26: 51–74, 2004.

HERDY, M. Application of the Evolution Strategy to Discrete Optimization Problems.

Proceedings of the First International Conference on Parallel Problem Solving from Nature

(PPSN), Lecture Notes in Computer Science: Springer-Verlag, pp. 188-192, 1990.

Holland, J. H. Adaptation in Natural and Artificial Systems, 4 th Ed., MIT Press,

1995.

KANG, J; RYU K.R.; KIM, K.H. Deriving stacking strategies for export containers with

uncertain weight information, Journal of Intelligent Manufacturing 17, pp. 399–410, 2006.

KIM, K. Y.; KIM, K. H. A routing algorithm for a single straddle carrier to load export

containers onto a containership. International Journal of Production Economics, v. 59, n. 1-3,

p. 425-433, 1999a.

KIM, K. Y.; KIM, K. H. Routing straddle carriers for the loading operation of containers

using a beam search algorithm. Computers & Industrial Engineering, v. 36, n. 1, p. 109-136,

1999b.

KIM, K. Y.; KIM, K. H. A routing algorithm for a single transfer crane to load export

containers onto a containership. Computers & Industrial Engineering, v. 33, n. 3-4, p. 673-

676, 1997.

KIM, H. K; HONG, G.P. A heuristic rule for relocating blocks, Computer Operations

Research 33, pp. 940–954, 2006.

KIRKPATRICK, S; GELATT, C. D.; VECCHI, M.P. Optimization by simulated annealing,

Science, 220, 671–680, 1983.

KLEIN, J. Immunology. Blackwell Scientific Publications, cap. 6. p. 102-160, 1990.

Page 79: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

79

KOZAN, E.; PRESTON, P. Genetic algorithms to schedule container transfers at multimodal

terminals, International Transactions in Operational Research 6, 311-329, 1999.

LEE, L. H.; CHEW, E. P.; TAN, K. C.; HAN, Y. An optimization model for storage yard

management in transshipment hubs. OR Spectrum, v. 28, n. 4, p. 539-561, 2006.

LEWIS H.R. & PAPADIMITRIOU, C. Elements of the Theory of Computation. Prentice-

Hall, 1998.

TRICK, M. A Tutorial on Integer Programming. The Operations Research Faculty of GSIA.

Disponível em http://mat.gsia.cmu.edu/classes/integer/integer.html. Acessado em 12 de

Dezembro de 2011.

MURTY, K. G.; LIU, JIYIN; WAN, Y.-WAH; LINN, RICHARD. A decision support system

for operations in a container terminal. Decision Support Systems, v. 39, n. 3, p. 309-332. doi:

10.1016/j.dss.2003.11.002, 2005.

NEAL, M.; HUNT, J.; TIMMIS, J. Augmenting an artificial immune network. Proc. of Int.

Conf. Systems and Man and Cybernetics (IEEE), San Diego, California, U.S.A., p. 3821-

3826, 1998.

PHONLOR, P. R.; MAÇADA, A. C. G. - O Uso Estratégico de um Sistema de Informação

Web em um Terminal de Containers. Anais XXI ENANPAD, 2002.

PARK K. T. & KIM K. H.. Berth Scheduling for Container Terminals by Using a Sub-

Gradient Optimization Technique. The Journal of the Operational Research Society. Vol. 53,

No. 9, pp. 1054-1062, 2002.

RODRIGUES, P. Introdução aos sistemas de transporte no Brasil e à logística internacional.

São Paulo: Aduaneiras, 2007.

SCHRIJVER, A. Theory of linear and integer programming. Wiley-lnterscience Series in

Discrete Mathematics and Optimization, 1986.

SHERALI, H. D.; BAZARAA, M. S.; SHETTY, C. M. Nonlinear Programming: Theory and

Algorithms. John Wiley and Sons, 1993.

Page 80: Algoritmo de Seleção Clonal para a Minimização de ...tede.mackenzie.br/jspui/bitstream/tede/1425/1/Luiz Antonio Carraro.… · 2 C313p Carraro, Luiz Antonio. CDD 005.1 Algoritmo

80

SOUSA J. S.; GOMES, L. C. T.; BEZERRA, G, B.; de CASTRO, L. N.; Von Zuben, F. An

immune-evolutionary algorithm for multiple rearrangements of gene expression data. Genetic

Programming and Evolvable Machines, v. 5, p. 157-179, 2004.

STEENKEN, D.; VOB, S.; STAHLBOCK, R. Container terminal operation and operations

research - a classification and literature review. OR Spectrum, v. 26, n. 1, p. 3-49. doi:

10.1007/s00291-003-0157-z, 2004.

STAHLBOCK R, VOSS S. Operations research at container terminals: a literature update.

OR Spectr 30:1–52, 2008. TIZARD, I. R. Immunology. An Introduction. Saunders College

Publishing, 4 ed, 1995.

VIS, I. F. A.; KOSTER, D. E.; R. Transshipment of Containers at a Container Terminal : An

Overview. European Journal of Operational Research, v. 147pp, p. 1-16, 2003.

ZHANG, C.; LIU, J.; WAN, Y.; MURTY, K.; LINN, R. Storage space allocation in container

terminals. Transportation Research Part B: Methodological, v. 37, n. 10, p. 883-903, 2003.

ZANG C. ; WAN, Y; LIU, J. LINN, R. J. Dynamic crane deployment in container storage

yards, Transportation Research Part B: Methodological, Volume 36, Issue 6, pg. 537-555,

2002.

WAN, Y.; LIU, J.; TSAI, P. C. The assignment of storage locations to containers for a

container stack. Naval Research Logistics (NRL), 56: 699–713, 2009.