RESOLUÇÃO DO PROBLEMA DE CARREGAMENTO E DESCARREGAMENTO DE CONTÊINERES EM TERMINAIS PORTUÁRIOS VIA BEAM SEARCH
|
|
- João Gabriel Castilhos Aleixo
- 6 Há anos
- Visualizações:
Transcrição
1 RESOLUÇÃO DO PROBLEMA DE CARREGAMENTO E DESCARREGAMENTO DE CONTÊINERES EM TERMINAIS PORTUÁRIOS VIA BEAM SEARCH Cassilda Maria Ribeiro FEG - Faculdade de Engenharia de Guaratinguetá - UNESP Av. Ariberto Pereira da Cunha 333. Pedregulho Guaratinguetá SP CEP: cassilda@feg.unesp.br Anibal Tavares Azevedo FEG - Faculdade de Engenharia de Guaratinguetá - UNESP Av. Ariberto Pereira da Cunha 333. Pedregulho Guaratinguetá SP CEP: anibal@feg.unesp.br RESUMO Neste artigo é apresentado um algoritmo do tipo beam search para resolver o problema de carregamento e descarregamento de contêineres num terminal portuário. Num navio porta contêiner os contêineres são colocados em pilhas verticais, localizadas em diversas seções. O acesso aos contêineres é feito somente através do topo da pilha. Muitas vezes para se descarregar um contêiner num determinado porto j, é necessário remover o contêiner cujo destino é o porto j+, porque ele está acima do contêiner que se deseja descarregar. Esta operação é chamada de remanejamento. Um navio porta contêiner transportando carga para vários portos necessita de muitas operações de remanejamento. Esses remanejamentos possuem custo e despendem tempo. É possível evitar alguns remanejamentos através de um planejamento eficiente. Aqui é apresentado um algoritmo do tipo beam search para resolver esse problema. O algoritmo apresentado utiliza uma representação bastante compacta da solução do problema assegurando que elas sejam factíveis. PALAVRAS CHAVES. Carregamento de Contêiner. Beam Search. Método heurístico Otimização Combinatória. ABSTRACT This paper proposes a Beam Search method to solve the Container Ship Stowage Problem. Containers on board a container ship are placed in vertical stacks, located in different sections. The access to the containers is done only through the top of the stack. Many times to unload a container at a given port j, it is necessary to remove the container whose destination is the port j +, because it is above the container we want to download. This operation is called shifting. A ship container carrying cargo to several ports may require a large number of shifting operations. These operations have spent time and cost and it can be avoided by efficient stowage planning. A key objective of stowage planning is to minimize the number of container movements. Here is presented a beam search method to solve this problem. The method presented uses a very compact representation of the solution and ensures that all solutions are feasible. KEYWORDS. Container Ship Stowage Problem. Beam Search. Heuristic Method Combinatorial Optimization. 235
2 . Introdução Navios porta contêineres são navios que possuem uma estrutura que facilita a movimentação de contêineres de carga, pois em cada porto ao longo de uma viagem, contêineres são descarregados e contêineres adicionais, destinados aos portos subseqüentes são carregados. A eficiência de um terminal portuário depende de uma adequada programação da movimentação de contêineres, especialmente durante o processo de carregamento dos navios, uma vez que a programação poderá refletir em redução de tempo e conseqüentemente redução de custo. A estiva e o plano de carregamento associado são determinados fundamentalmente por dois critérios: estabilidade do navio e número mínimo de remanejamento requerido nos diversos pontos de entrega (AVRIEL et al., (2000); WILSON e ROACH, (2000); AMBROSINO et al., (2006)). O último critério é baseado no fato de que muitos navios possuem uma estrutura celular, conforme pode ser observado na Figura, e os contêineres devem ser carregados de modo a formarem pilhas verticais, o que acarreta, em muitos casos, a necessidade de movimentar contêineres na parte superior da pilha a fim de se descarregar os contêineres que estão posicionados na parte inferior. A este tipo de movimentação dá-se o nome de remanejamento. Os remanejamentos são necessários porque os contêineres que estão numa pilha só podem ser acessados pelo topo. Figura : Estrutura celular de um navio. Fonte: WILSON e ROACH (2000). O problema de carregamento de contêineres em terminais portuários (PCCTP) consiste em determinar como carregar um conjunto de contêineres de diferentes tipos em um navio portacontêiner (containership), respeitando restrições operacionais relacionadas aos contêineres e navio de modo a minimizar o tempo de carregamento e posterior descarregamento, ou seja, o remanejamento. O artigo de AVRIEL et al.,(2000) mostra que este problema é NP-Completo. Neste artigo será apresentado um algoritmo do tipo Beam Search para a solução do PCCTP. A abordagem aqui apresentada para resolver esse problema é inovadora porque ela reduz consideravelmente o número de variáveis do problema e também permite que seja utilizada a experiência do profissional portuário através de uma representação adequada dos seus conhecimentos. Este artigo está organizado do seguinte modo: a seção 2 apresenta a formulação matemática do problema; a seção 3 contém a representação matricial utilizada na resolução do problema; seção 4 apresenta o algoritmo de Beam Search; a seção 5 apresenta os resultados computacionais obtidos e a seção 6 as conclusões. 2. Modelo Matemático do Problema Navios porta contêineres são navios que possuem uma estrutura que facilita a movimentação de contêineres. De fato, eles possuem uma estrutura celular (vide Figura ) onde 236
3 são alojados os contêineres. Essas células em geral, têm 20 pés de comprimento e 8 pés de largura. Os contêineres são empilhados nas células formando pilhas verticais. O conjunto de pilhas que compreende toda a largura do navio é chamado de baia, em inglês bays. Então, uma baia é um agrupamento de células com capacidade para se empilhar um certo número de contêineres. Na Figura tem-se o corte lateral da baia 2 de um navio. Em geral cada baia tem capacidade para alocar quarenta contêineres de vinte pés de comprimento. A baia tem então linhas horizontais numeradas r =, 2,...R, (a linha é a linha que está em baixo na pilha, e a linha R é a linha do topo da pilha) e colunas numeradas c=, 2,..., C (coluna é a primeira coluna da esquerda). A capacidade do navio porta contêiner é medida em TEU (Twenty-foot Equivalent Units) ou Unidade Equivalente de Vinte pés. Por exemplo, um navio com capacidade de 8000 TEUs pode carregar 8000 contêineres de vinte pés. A formulação matemática aqui apresentada para o PCCTP respeita as restrições operacionais relacionadas aos contêineres, navio e pátio do terminal portuário e aparece de modo mais detalhado em AVRIEL at al (998). Considere um navio porta contêineres que possui uma única baia. A baia tem R linhas horizontais numeradas r =, 2,...R, (a linha é a linha que está em baixo, e a linha R é a linha do topo da pilha) e C colunas verticais numeradas c=, 2,..., C (coluna é a primeira coluna da esquerda). Apesar de a baia ter um formato tridimensional, a mesma pode ser representada, sem perda de generalidade, por um formato bidimensional, em particular uma matriz. Então, uma baia pode alocar no máximo RxC contêineres. É assumido também que todos os contêineres tem o mesmo tamanho. O navio chega no porto completamente vazio e seqüencialmente ele visita os portos 2, 3,..., N. Em cada porto i=,...,n-, o navio recebe o carregamento de contêineres com destino aos portos i+,...,n. No último porto ele descarrega os contêineres e fica totalmente vazio. Seja T=[T ij ] a matriz de transporte de dimensão (N-) (N-), onde T ij é o número de contêineres com origem em i e destino em j. Esta matriz é triangular superior porque T ij =0 para todo i j. Seja x ijv a variável binária que assume o valor se existir um contêiner no compartimento (r, que foi ocupado no porto i e tem como destino final o porto j e movido no porto v; caso contrário assume valor zero. Por compartimento (r, entende-se a linha r e a coluna c no compartimento de carga do navio. É necessário salientar que a numeração das linhas é feita de baixo para cima. Assim a linha de número 5 está acima da linha de número 4, e a numeração das colunas é feita da esquerda para a direita. Seja y i a variável binária que possui valor se saindo do porto i o compartimento (r, for ocupado por um contêiner; caso contrário assume valor 0. A formulação em programação linear inteira do PCCTP é dada pelas Eqs. ()-(6). Min s.a: f ( x) = j R N N j R C x ijv i= j= i+ v= i+ r= c= C x ijv v= i+ r= c= j N kjv k= j= i+ v= i+ j x i R C x kji k= r= c= = y y y ( r +, 0 i = T ij i =, L, N, j = i +, L, N; () i =, L, N, j = i +, L, N; (2) i =, L, N, r =, L, R; c =, L, C; (3) i i i =, L, N, r =, L, R ; j N x ipj i= p= j + j N p x ipv i= p= j+ v= j+ ( r +, c =, L, C; (4) i = 2, L, N, r =, L, R ; c =, L, C; (5) x ijv = 0 ou ; y i = 0 ou (6) A Eq. () fornece o custo total de movimentação dos contêineres em todos os portos, 237
4 assumindo que a movimentação de um contêiner possui um custo unitário e igual para todos os portos. A restrição (2) é a restrição de conservação de fluxo de contêineres para cada porto i, onde T ij é o elemento da matriz de transporte que representa o número de contêineres que embarcam no porto i com destino ao porto j. A restrição (3) garante que cada segmento de rota tem pelo menos um único contêiner. A restrição (4) é necessária para garantir que existem contêineres embaixo do contêiner que ocupa o compartimento (r,. A restrição (5) é responsável por definir a movimentação dos contêineres: se um contêiner que ocupa a posição (r, é descarregado no porto j, então, ou não existem contêineres acima dele, ou o índice v do contêiner que ocupa o compartimento (r+, não é maior que j. O tamanho que o problema assume com a formulação dada pelas Eqs. ()-(6) é proibitivo para problemas reais e só pode ser resolvido, de maneira ótima, para problemas pequenos. 3. Representação matricial do PCCTP A seguir será apresentada a representação matricial desenvolvida para a resolução do PCCTP. Esta representação tem a vantagem de ser bastante compacta e de assegurar que todas as soluções geradas pelo método do Beam Search sejam factíveis. Na Figura viu-se que os navios possuem uma estrutura celular de modo que os locais onde os contêineres serão alocados são pré-determinados fazendo com que os contêineres sejam empilhados verticalmente. Este empilhamento sugere uma representação matricial dos contêineres no navio. Deste modo pode-se definir uma matriz de ocupação B que fornece a quantidade de espaços disponíveis e a localização dos contêineres no navio em cada porto. Para tanto, cada elemento da matriz B rc representa o estado de uma célula (r,, isto é se B rc =0 significa que a célula (r, está vazia e se B rc = j significa que a célula (r, contém um contêiner cujo destino é o porto j. Assim, no exemplo da Figura 2, o elemento B, é igual a 5 significando que neste local existe um contêiner que será descarregado no porto 5. De modo análogo, o elemento B 3,3 =0 significa que esta célula está vazia. Lembrando que a linha 5 representa o topo da pilha de carregamento e a linha representa a parte inferior da pilha B Figura 2: Matriz de Ocupação, considerando um navio com capacidade de 6 contêineres e transporte para 5 portos. Em todos os portos a matriz B de ocupação é modificada devido à entrada e saída de novos contêineres no porto. Isto porque, quando o navio chega num porto j, os contêineres cujo destino é o porto j, serão descarregados e depois serão carregados os contêineres com destinos aos portos j+, j+2,...,n. Portanto podem ser identificados duas classes de operações com contêineres que modificam a matriz B de ocupação do navio no porto j: carregamento e descarregamento. É possível elaborar diferentes estratégias para se carregar e descarregar o navio. Por exemplo, o carregamento de um navio pode ser feito com a formação de pilhas verticais ou ainda formação de camadas horizontais. O mesmo pode ser realizado para o descarregamento. O produto da transformação de uma estratégia, para realizar carregamento ou descarregamento, em um algoritmo é denominado de regra de carregamento e descarregamento, respectivamente. Assim é possível incorporar o conhecimento do planejador, sob a forma de regras, na resolução do problema. Neste artigo foram criadas 8 regras, sendo quatro para o carregamento (Rc, Rc2, Rc3 e Rc4) e duas para o descarregamento (Rd, Rd2). Essas regras foram combinadas de modo que a 238
5 combinação de uma regra de carregamento com uma de descarregamento forneça uma regra k, para o porto j. A Tabela, mostrada a seguir fornece as 8 regras (regras k) a serem utilizadas nos portos j, oriundas da combinação das regras de carregamento e descarregamento. Observe na Tabela que a regra 2 foi obtida utilizando a regra Rc para o carregamento dos contêineres e a regra Rd2 para o descarregamento. Além do mais, esta forma de combinar regras permite uma representação compacta da solução, pois para se determinar o número de movimentos basta ter a informação de qual regra k será aplicada em cada porto j e a conseqüente atualização da matriz de ocupação B. Inicialmente a matriz B está com todos os elementos iguais a zero e ela começa a ser preenchida no porto. Regra k usada no porto j Regra de Regra de Regra k usada Regra de carregamento descarregamento no porto j carregamento Rc Rd 5 Rc3 Rd 2 Rc Rd2 6 Rc3 Rd2 3 Rc2 Rd 7 Rc4 Rd 4 Rc2 Rd2 8 Rc4 Rd2 Tabela : Regras k, a serem utilizadas em cada porto j. Regra de descarregamento Para melhor ilustrar o uso dessas regras, será utilizada uma matriz de transporte T, que fornece a quantidade de contêineres que devem ser embarcados no porto i com destino ao porto j, tal como dado na Figura 3. Então, no exemplo da Figura 3, T 2 = 2, significa que no porto, serão embarcados 2 contêineres com destino ao porto 2 e T 24 =3, significa que no porto 2, serão embarcados 3 contêineres com destino ao porto 4. Observe que a primeira coluna de T tem todos os elementos iguais a zero porque o porto é sempre o porto de onde o navio parte, logo não existe o destino D. Neste exemplo considerou-se que o navio tem capacidade para transportar 6 contêineres, num roteiro de 5 portos. Suponha agora que em cada porto i o navio deve ser carregado de acordo com uma regra de carregamento e ao chegar no porto j ele deve ser descarregado de acordo com uma regra de descarregamento. As regras de descarregamento (Rd) e carregamento (R adotadas para se montar a matriz B de ocupação são apresentadas a seguir. D D2 D3 D4 D5 Regras de Descarregamento O O O O4 3 Figura 3: Matriz de transporte T. Regra Rd: Nesta regra quando o navio chega a um porto p, são descarregados todos os contêineres cujo destino é p e todos os contêineres que estão acima dos contêineres do porto cujos destinos são os portos p+,..., N. Suponha, por exemplo, que ao se chegar no porto 2 a matriz de ocupação B seja a da Figura 4(a) mostrada a seguir. De acordo com esta regra de descarregamento a matriz B antes de se carregar os contêineres que devem ser embarcados no porto 2 ficaria como mostrada na Figura 4(b). A Figura4( mostra os contêineres que estavam no navio com destino aos demais portos e tiveram que ser remanejados. Esses contêineres serão reembarcados juntamente com os contêineres que serão embarcados nesse porto Figura 4(a): matriz B antes da aplicação da regra Rd Figura 4(b): matriz B depois da aplicação da regra Rd Figura 4(: Vetor contendo os contêineres do pátio de remanejamento Regra Rd2: Nesta regra quando o navio chega ao porto p, remove-se completamente todas as pilhas que contenham um contêiner cujo destino é o porto atual. A seguir, os contêineres que 239
6 foram removidos neste porto, mas cujos destinos são os portos p+, p+2,...n, serão reembarcados de acordo com a regra de embarque que foi adotada no porto. Suponha por exemplo que ao se chegar no porto 2 a matriz de ocupação B seja a da Figura 5(a). De acordo com esta regra a matriz de ocupação ficaria vazia e todos os contêineres que devem seguir viagem iriam para o pátio de remanejamento para que eles sejam recarregados juntamente com os contêineres que devem ser embargados no porto 2. A Figura 5(b) mostra os contêineres do pátio de remanejamento Figura 5(a): Matriz B antes de Rd2. Figura5 (b): Vetor contendo os contêineres do pátio de remanejamento Regras de Carregamento Regra Rc: Esta regra preenche a matriz de ocupação B (no porto p) por linha, da esquerda para a direita, colocando na parte inferior da pilha as cargas cujo destino é mais distante. A Figura 6, a seguir, fornece um exemplo da aplicação da regra Rc, considerando que o navio está no porto. Observe na Figura 6 que os elementos B, B 2, B 3, B 4 e B 2 são iguais a 3, e os elementos B 22, B 23 são iguais a 2 porque no porto são embarcados respectivamente 5 contêineres com destino ao porto 3 e dois contêineres com destino ao porto B Figura 6: Matriz de Ocupação no porto, após a aplicação da regra Rc Regra Rc2: Nesta regra o preenchimento da matriz de ocupação B em um porto p é feito por coluna até uma linha θ p, começando pela coluna da esquerda e colocando-se em primeiro lugar os contêineres cujos destinos são os portos mais distantes. A linha θ p é calculada pegando-se a função teto, resultante da soma do total de contêineres que estavam no navio vindos dos portos anteriores; menos a quantidade de contêineres que serão desembarcados em p, mais a quantidade de contêineres que serão embarcados em p, dividido pelo número de colunas da matriz B. O número dessa linha pode ser calculado sobre a matriz de transporte T, através da equação (7). p N Tij i= j= p+ θ = p (7) C onde: p é o porto atual do navio, T ij é o número total de contêineres a serem embarcados no porto i com destino ao porto j e C é o número total de colunas da matriz B de ocupação do navio. Supondo que a matriz de ocupação B quando o navio chega ao porto 2 seja a da Figura 6. Ao se descarregar os contêineres cujo destino é o porto 2, a matriz de ocupação passa a ser a da Figura 7(a), mostrada a seguir. Aplicando-se agora a regra de carregamento Rc2, a matriz de ocupação B será preenchida até a linha 3, tal como mostrado na Figura 7(b). O objetivo dessa regra ao se calcular θ p, é se obter de pilhas de contêineres mais homogêneas e assim tentar diminuir o número de remanejamentos (BISCHOFf e RATCLIFF (995)). 240
7 Figura 7(a): Matriz de ocupação B no porto 2 antes a aplicação da regra Rc Figura 7(b): Matriz de ocupação B no porto 2 após a aplicação da regra Rc2. Regra Rc3: Esta regra é o espelho da regra Rc, isto é, no porto p a matriz de ocupação B será preenchida por linha, da direita para a esquerda, colocando na parte inferior da pilha as cargas cujo destino é mais distante. Regra Rc4: Esta regra também é o espelho da regra Rc2. Ela faz o preenchimento da matriz de ocupação B em um porto p preenchendo cada coluna até a linha θ p, começando pela coluna da direita e colocando-se em primeiro lugar os contêineres cujos destinos são os portos mais distantes. A linha θ p é calculada pela equação (7), de modo idêntico ao calculado na regra Rc. A utilização de regras de carregamento e descarregamento possui algumas vantagens tais como: A facilidade de incorporar conhecimento prévio do planejador sob a forma de regras. Todas as matrizes de ocupação produzidas pelas regras são factíveis. Isto facilita e garante que todas as soluções obtidas pelo método heurístico são factíveis. Neste trabalho a heurística utilizada é o Beam Search, mas futuramente serão utilizadas outras heurísticas para que se possa fazer uma comparação entre elas. A codificação da solução que determina como será realizado o carregamento e o descarregamento de um navio para N portos é um vetor de tamanho N-. Esta representação é muito mais compacta se comparada com outras abordagens da literatura, como por exemplo, a utilizada em AVRIEL et all., (2000). 4. O Algoritmo do tipo Beam Search O algoritmo do Beam Search é um método do tipo Enumeração Implícita para resolver problemas de Otimização Combinatória (SABUNCUOGLU E BAVIZ (999); DELLA CROCE E T'KINDT (2000); FOX (983); VALENTE E ALVES, (2005)). Pode-se dizer que ele é uma adaptação do método de Branch and Bound onde somente os nós mais promissores de cada nível da árvore de decisões (atribuições) são guardados na memória para serem visitados, enquanto que os demais nós são descartados permanentemente. Como uma grande parte dos nós da árvore de atribuições é descartada, sem ser analisado, o tempo de execução do Beam Search é polinomial com relação ao tamanho do problema. Em resumo pode-se dizer que o Beam Search é uma técnica de busca em árvore de decisão que em cada nível da árvore é analisado um número fixo de nós e, por conseguinte um número fixo de soluções. O número de nós analisados em cada nível é chamado de largura da busca e é denotado por β. Para se construir a árvore de decisões é necessário estabelecer as seguintes definições: (D.) A árvore é construída por nível e em cada nível i é feita à atribuição de uma regra k ao i- ésimo porto. (D.2) (D.3) Os nós que estão no nível da árvore são chamados de nós semente porque cada um deles vai gerar uma sub-árvore de decisões. A cada nível i, ao se realizar a atribuição no i-ésimo porto de uma regra k, são contabilizados os movimentos de carregamento e descarregamento da regra k adotada no porto i mais os movimentos de carregamento e descarregamento das regras utilizadas nas (i-) atribuições anteriores. 24
8 Tendo em vista que a árvore possui N- níveis (D.), onde N é o número total de portos, uma solução completa só será obtida ao se definir as atribuições até o nível N- da árvore. No porto N (último porto) não é feita a atribuição de nenhuma regra porque neste porto só existe descarregamento. Observe agora que a quantidade de nós da árvore tem uma relação direta com o número de regras que serão utilizadas e com o número de portos. Na realidade o tamanho do problema a ser resolvido, com esta forma de representação, é exponencial com o número de portos. Assim o número total de nós (Qn) da árvore de decisões será dado por: ( N ) m( m ) Qn =, onde m= número de regras e N= número total de portos. ( m ) ( N ) O número total de soluções factíveis (Fs) será dado por: Fs = m. Assim para o exemplo o utilizado neste artigo, que tem 8 regras e 5 portos, a árvore de decisões teria nós. Está árvore iria gerar 4096 soluções sendo todas elas factíveis. Mas, vale lembrar que, o Beam Search não vai analisar todas as soluções possíveis, ele utiliza uma largura de busca β = m. O método gera então uma árvore de decisões cujo número total de nós é dado por Qn = m( N ) e o número de total de soluções factíveis analisadas é dado por Fs = β. Antes de apresentar o algoritmo proposto, será utilizado um exemplo para mostrar como seria a árvore de decisões (atribuições) se fossem enumeradas todas as soluções possíveis. Neste exemplo serão consideradas somente duas regras para carregamento (Rc e Rc2) e uma única regra para o descarregamento, a Rd, cujas combinações resultam em R e R2. O número de portos considerado é N = 5. Considere também que a matriz de transporte T é a da Figura 3 e que cada navio tem uma capacidade de 6 contêineres. A Figura 9 a seguir, mostra a árvore de decisões para o exemplo dado, com todas as decisões possíveis. Cada nó da árvore representa a aplicação de uma regra. Assim os nós com o número representam a aplicação da regra, (Rc e Rd) e os nós com o número 2 representam a aplicação da regra 2 (Rc2 e Rd). Observe que a árvore foi construída por nível. O nível tem dois nós. São os chamados nós sementes. A construção da árvore inicia-se no nó semente e a partir daí segue-se para os demais níveis, criando um nó para cada regra e considerando todas as combinações possíveis de regras em cada nível. Como neste exemplo existem duas regras, então existem 2 nós sementes. Cada nó semente gera então uma sub-árvore. Para cada sub-árvore e em cada nível i são decididas as atribuições de cada uma das regras a um porto i de modo que: no nível têm-se as atribuições das regras e 2 ao porto p; no nível 2 têm-se as atribuições das regras e 2 ao porto p2, considerando-se as atribuições que foram feitas no nível ; no nível 3 são feitas as atribuições das regras e 2 ao porto 3 levando-se em conta as atribuições feitas nos níveis anteriores, e assim sucessivamente. Figura 9: Árvore com todas soluções factíveis considerando os nós semente da regra R (subárvore da esquerda) e da regra R2 (sub-árvore da direita) no Nível. Observe na Figura 9 que ao lado de cada nó são apresentados dois valores que indicam (da esquerda para a direita): o número de remanejamentos feitos no nó, decorrente da aplicação 242
9 da regra em questão e o número de remanejamentos parcial, isto é, o total de remanejamentos feitos até aquele ponto. O cálculo desses remanejamentos é feito através da matriz de ocupação, ou seja, em cada porto i é obtida a matriz de ocupação B, levando-se em conta a regra que está sendo empregada naquele porto. A solução completa do problema só é obtida no último nível quando for adicionado ao último remanejamento parcial, o número de contêineres que serão desembarcados no último porto. No nosso exemplo, no porto 5 serão desembarcados 6 contêineres. Então, a melhor solução obtida é, por exemplo, a solução obtida na sub-árvore da esquerda, com a aplicação das regras 2--2-, cujo número total de remanejamentos é = 42. Observe também que neste problema obteve-se mais 3 outras soluções com o mesmo número de remanejamentos (2---; e ). Árvore de Soluções Gerada pelo Beam Search O algoritmo proposto não cria todos os nós da árvore como foi feito no exemplo mostrado e por esta razão não é feita uma enumeração completa de todas as soluções factíveis. Isso evita o crescimento exponencial da árvore. Para se criar os nós, o algoritmo segue algumas regras que são mostradas a seguir: Inicio nível = 0 Enquanto (nível < número de portos N-) faça: º Passo: Faça nível = nível + P.. Criar os nós deste novo nível, um nó para cada regra. P.2. Para cada nó criado no nível i, faz-se: Armazenar a identificação da regra e do porto; Armazenar a matriz B de carregamento antes da aplicação da regra. No nível, B começa com zero em todas as posições. Calcular o número de descarregamento e carregamento relativos à regra aplicada ao nó. Atualizar a matriz B de carregamento após a aplicação da regra. Calcular o custo parcial da solução, isto é, o número de movimentos de descarregamento e carregamento relativos à atribuição realizada do nó semente até o nó criado; Se (nível < número de portos N-) Então 2º Passo. Para cada nó criado no º. Passo (P.) e considerando-se os custos calculados até então, ache uma solução gulosa para o problema, através de uma busca em profundidade na árvore, partindo deste nó. 3 o. Passo Conserve na árvore, neste nível, os nós que geraram as β melhores soluções gulosas. Descarte os demais nós. Fim Enquanto Inicialmente o algoritmo encontra-se no nível zero de solução, pois as atribuições começarão a serem feitas agora. A seguir faz-se nível = e começam a serem criados os nós deste nível (P.). Os nós do nível são os nós sementes e é criado um nó semente para cada regra. Em (P.2), para cada nó criado em (P.) é atribuída uma regra. A seguir calculam-se o número de movimentos de descarregamento e carregamento do nó, considerando a matriz de carregamento antes da aplicação da regra. A seguir, é feita a atualização da matriz de carregamento. A busca em profundidade realizada no 2º Passo é feita utilizando um algoritmo do tipo guloso e ela visa escolher, no 3 o. Passo, quais os nós, do nível i, devem permanecer na árvore de soluções factíveis, de modo a respeitar a largura de busca β. Por exemplo, se β=2, em cada nível vão permanecer somente dois nós. A busca em profundidade é feita do seguinte modo: Busca em Profundidade do Passo2- Algoritmo Guloso. 243
10 Para cada nó j criado no º. passo (P.) fazer uma arborescência em profundidade, a partir deste nó, descendo até o último nível, isto é: Seja um nó j criado no nível i com custo de solução parcial Sj, calculada até o nível i. Escolha para fazer parte desta solução o nó q do nível i+ que é factível e que gere a menor solução parcial Sq, onde Sq= Sj + número de movimentos de descarregamento +número de movimentos de carregamento relativa à atribuição efetuada no nó q. Repetir este processo a partir do nó q, descendo até o último nível. Somente após descer no último nó do ramo é que se terá o custo total de uma solução gulosa. Como já foi dito anteriormente as soluções gulosas servem para escolher dentre os nós, do nível i que foram criados no o. passo, aqueles que vão permanecer na árvore. Essa escolha é feita da seguinte maneira: Ordenar os nós criados no nível i, em ordem crescente, de acordo com os resultados dos custos das soluções gulosas que cada um deles gerou. Entre os nós do nível i escolher para permanecer na árvore os β nós que geraram as soluções gulosas de menor custo, Cortar os demais nós do nível i, isto é: Se largura de busca é β=2, só vão continuar a fazer parte da árvore os dois nós que geraram as duas soluções gulosas de menor custo. O valor da menor solução gulosa calculada no 2 o. Passo, também é usado como limitante superior (corte) para se gerar ou não os outros nós da árvore, no º. passo. Este limitante superior deve ser atualizado à medida que forem encontradas soluções gulosas menores. Com isto têm-se como critério de corte o custo da menor solução gulosa, isto é, se o custo parcial da solução no nó que acabou de ser criado, for maior que o custo da melhor solução gulosa, este nó deve ser excluído da solução. Depois de terminada a Busca em Profundidade deve-se verificar se o nível da árvore de decisões é igual (N-). Se este for o caso, o algoritmo termina, pois já se chegou ao final da árvore. Senão, o algoritmo volta ao o. passo para gerar os nós do próximo nível. O método de solução do PCCTP apresentado neste artigo combina uma representação compacta da solução do problema com o esquema de regras descrito na Seção 3. Deste modo às soluções obtidas são sempre factíveis e é possível o tratamento de problemas de maior porte em tempo computacional razoável, visto que neste método de solução a dimensão do problema cresce exponencialmente com do número de regras e não com a quantidade de contêineres. 5. Resultados obtidos Para testar o algoritmo, foram geradas automática e aleatoriamente 45 instâncias. Essas instâncias são classificadas de acordo com o número de portos e o tipo da matriz de transporte. Para cada instância é gerada uma matriz de transporte T, tal que a capacidade do navio não será excedida em nenhum porto, isto é, o valor de θ p dado pela equação (7) deve ser menor ou igual a R para todo porto p, isto porque a matriz de transporte é factível se: p N i= j = p+ Tij R C para todo p =, K, N (8) onde: R é o número de linhas e C é o número de colunas da matriz de ocupação B. De acordo com AVRIEL et al. (998) foram geradas três tipos de matriz de transporte: -Mista, 2-Longa distância e 3-Curta distância. A matriz do tipo 3 transporta contêineres que vão percorrer poucos portos antes de serem desembarcados, a matriz do tipo 2 transporta contêineres que vão percorrer muitos portos antes de serem desembarcados. A matriz do tipo mista mistura os dois tipos anteriores. As instâncias foram classificadas de acordo com a quantidade de portos a serem percorridos, os tipos de matriz de transporte e capacidade do navio. Aqui foram supostos navios com as seguintes dimensões RxC: 6x50, 6x00, 6x50, resultando respectivamente nas seguintes capacidades máximas: 300, 600 e 900 contêineres. 244
11 A Tabela 2 mostra os resultados obtidos com o Beam Search, utilizando β=8 (número de regras) para as 45 instâncias. Na primeira coluna está o número da instância (I), na segunda coluna estão as capacidades dos navios em termos do número de linhas e colunas (RxC), na terceira coluna o tipo da matriz de transporte (M), na quarta coluna o número de portos N, na quinta coluna o número mínimo de movimentos (NMim) à serem feitos com os contêineres, na sexta coluna os valores da função objetivo (F.O) em termos do número total de movimentos realizados com os contêineres até a chegada no porto de destino, na sétima coluna está o Tempo computacional (T) em segundos, na oitava coluna estão os desvios percentuais (DP) das melhores soluções obtidas em relação ao número mínimo de movimentos. O número mínimo de movimentos é obtido multiplicando-se por dois o valor do somatório de T ij calculado de acordo com a equação (8). Observe que esse valor é limitante inferior para o número total de movimentos a serem realizados ao longo do percurso do navio. Os resultados foram obtidos com um programa desenvolvido em Matlab 7.0, Processador Intel Core Duo.66 GHz, memória RAM de 2 GB e Sistema Operacional Windows Vista com Service Pack 2. I RxC M N NMin F.O T (s) DP I RxC M N NMin F.O T (s) DP 6x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x Tabela 2: Resultados obtidos com o Beam Search A primeira observação importante acerca dos resultados da Tabela 2 é sobre o tempo computacional gasto pelo Beam Search. É importante observar que para a formulação dada pelas equações ()-(6) as instâncias com 30 portos, 6 linhas e 50 colunas são problemas com variáveis inteiras. Para estas instâncias o Beam Search consegue produzir soluções com um tempo computacional em torno de 965 segundos. Levando-se em conta que este valor foi obtido com a implementação em Matlab, espera-se então que futuras implementações em linguagem C venham a reduzir ainda mais esse tempo. Observe agora, na coluna 7 (DP) que para problemas cuja matriz de transporte é do tipo curta distancia (tipo 3), as soluções encontradas são quase todas ótimas, visto que os valores das F.O são iguais ao número de movimentos mínimos, isto é o valor de DP é igual a zero. Isto ocorre mesmo para problemas grandes, como é o caso da instância de número 45 que tem 30 portos e capacidade para 900 contêineres. Pode-se então concluir que o conjunto de regras adotadas é excelente quando se trata desse tipo de matriz. No caso dos problemas cuja matriz de transporte é do tipo mista (tipo ) as soluções encontradas estão bem próximas do limite mínimo. O desvio percentual (DP) ficou, em média, em torno de 245
12 0%, donde se pode concluir que o conjunto de regras adotadas é bastante eficiente para este tipo de matriz. No caso das instâncias com matriz de transporte do tipo longa distância (tipo 2) o desvio percentual da solução ficou, em média, em torno de 3%. Estes resultados indicam a necessidade de se incorporar ao sistema um número maior de regras que levem em consideração a arrumação dos contêineres que permanecerão um longo período de tempo dentro do navio. 6. Conclusões e Trabalhos Futuros Este artigo tem duas inovações, a saber: a primeira delas é que ele apresenta uma nova maneira de se representar às soluções para o problema de carregamento de contêineres em terminais portuários (PCCTP). Esta nova representação permite reduzir consideravelmente o número de variáveis do problema reduzindo assim a quantidade de informações necessárias para se representar uma solução. Na formulação dada pelas Eqs. ()-(6) as informações devem ser armazenadas num vetor de tamanho (R C) (N+N 3 ). Na representação aqui utilizada o tamanho do vetor é N-. Tendo em vista que R C expressa o número de contêineres que podem ser armazenados em um navio e que N representa o número de portos, a representação da solução aqui utilizada permite uma enorme redução do tempo computacional para instâncias com grande número de portos. Para tanto, a representação emprega regras que definem como será carregado e descarregado o navio e as regras garantem que as soluções obtidas são sempre factíveis. A segunda inovação é que a utilização de regras de carregamento e descarregamento permite a incorporação, no sistema computacional, do conhecimento do profissional responsável por esse serviço no porto. Esta incorporação é feita através da criação e implantação de novas regras. Esta maneira de representar o PCCTP em conjunto com a aplicação de regras, é uma alternativa promissora na resolução deste problema, até porque assim como se podem acrescentar novas regras, também se podem utilizar outras heurísticas, como por exemplo, os algoritmos genéticos. Futuramente pretende-se fazer uma abordagem tridimensional da matriz de ocupação do PCCTP para se levar em conta o centro de massa do navio. Agradecimentos ao suporte financeiro do CNPq e da FAPESP a este trabalho. Referências AMBROSINO, D., SCIOMACHEN A.,TANFANI, E. A decomposition heuristics for the container ship stowage problem, J. Heuristics, v.2, p , AVRIEL, M.; PENN, M.; SHPIRER, N.; WITTENBOON, S. (998), Stowage planning for container ships to reduce the number of shifts, Annals of Operations Research, v. 76, p AVRIEL, M.; PENN, M.; SHPIRER, N. (2000), Container ship stowage problem: complexity and connection to the coloring of circle graphs, Discrete Applied Mathematics, v.03, p BISCHOFF, E.E. & RATCLIFF, M.S.W. (995). Issues in the development of approaches to container loading", Omega, 4, DELLA CROCE, F.; T'KINDT, V.(2002), A Recovering Beam Search Algorithm for the One- Machine Dynamic Total Completion Time Scheduling Problem, Journal of the Operational Research Society, vol 54, pp FOX, M.S., Constraint-Directed Search: A case Study of Job-Shop Scheduling, PhD. thesis, Carnegie-Mellon University, USA, 983. SABUNCUOGLU, I., BAVIZ, M., (999), Job Shop Scheduling with Beam Search, European Journal of Operational Research, vol. 8, pp WILSON, I.; ROACH, P. Container stowage planning: a methodology for generating computerised solutions, Journal of the Operational Research Society, v. 5, p , VALENTE, J. M. S, ALVES, R. A. F. S., (2005), Filtered and Recovering Beam Search Algorithm for the Early/Tardy Scheduling Problem with No Idle Time, Computers & Industrial Engineering, vol. 48, pp
Palavras-chave: Carregamento de Contêineres em Navios; Algoritmo Genético; Beam Search.
ISSN 275-6295 Rio de Janeiro- Brasil, 2 e 3 de agosto de 200 COMPARAÇÃO DE HEURÍSTICAS NA RESOLUÇÃO DO PROBLEMA DE CARREGAMENTO E DESCARREGAMENTO DE CONTÊINERES EM TERMINAIS PORTUÁRIOS VIA REPRESENTAÇÃO
ABSTRACT This paper proposes a Simulated Annealing approach to Tsolve the TContainer Ship
T O PROBLEMA DE CARREGAMENTO E DESCARREGAMENTO DE CONTÊINERES EM TERMINAIS PORTUÁRIOS: UMA ABORDAGEM VIA SIMULATED ANNEALING Anibal Tavares Azevedo FEG - Faculdade de Engenharia de Guaratinguetá - UNESP
unesp UNIVERSIDADE ESTADUAL PAULISTA JÚLIO DE MESQUITA FILHO CAMPUS DE GUARATINGUETÁ FÁBIO MASCAGNA BITTENCOURT LIMA
unesp UNIVERSIDADE ESTADUAL PAULISTA JÚLIO DE MESQUITA FILHO CAMPUS DE GUARATINGUETÁ FÁBIO MASCAGNA BITTENCOURT LIMA RESOLUÇÃO DO PROBLEMA DE CARREGAMENTO E DESCARREGAMENTO DE CONTÊINERES EM TERMINAIS
Comparação de Heurísticas para a Solução do Problema de Carregamento e Descarregamento 3D de Navios via Representação por Regras
Capítulo 17 Comparação de Heurísticas para a Solução do Problema de Carregamento e Descarregamento 3D de Navios via Representação por Regras Anibal Tavares de Azevedo, Cassilda Maria Ribeiro, Galeno José
MOTIVAÇÃO REVISTA EXAME, EDIÇÃO 1001, ANO 45, NO. 18, PP , 05/10/2011
Emprego de Simulação, Algoritmos Genéticos e Sistema de Aprendizado Participativo na Resolução do Problema de Carregamento e Descarregamento 3D de Contêineres em Terminais Portuários para Múltiplos Cenários
Resolução do Problema de Carregamento. Múltiplos Cenários via Representação
Processos Decisórios Resolução do Problema de Carregamento e Descarregamento D de Contêineres de Navios em Terminais Portuários para Múltiplos Cenários via Representação por Regras e Algoritmo Genético
Uma heurística GRASP para resolução do problema de carregamento e descarregamento de contêineres em navios portacontêineres
Uma heurística GRASP para resolução do problema de carregamento e descarregamento de contêineres em navios portacontêineres Amaro José de Souza Neto amaro.neto@gmail.com Dalessandro Soares Vianna dalessandro@pq.cnpq.br
Otimização Combinatória - Parte 4
Graduação em Matemática Industrial Otimização Combinatória - Parte 4 Prof. Thiago Alves de Queiroz Departamento de Matemática - CAC/UFG 2/2014 Thiago Queiroz (DM) Parte 4 2/2014 1 / 33 Complexidade Computacional
COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS
COMPARAÇÃO ENTRE FROTA HOMOGÊNEA E HETEROGÊNEA EM PROBLEMAS DE ROTEAMENTO DE VEÍCULOS CAPACITADOS Rosiana da Silva Lopes Danilo César Rodrigues Azevedo rosianalopes16@gmail.com danilo.azevedo@ufpi.edu.br.com
HEURÍSTICAS GRASP E ILS PARA O PLANEJAMENTO DE ESTOCAGEM DE CONTÊINERES EM NAVIOS PORTA-CONTÊINERES
HEURÍSTICAS GRASP E ILS PARA O PLANEJAMENTO DE ESTOCAGEM DE CONTÊINERES EM NAVIOS PORTA-CONTÊINERES Amaro José de S. Neto Universidade Candido Mendes (UCAM-Campos) Rua Anita Pessanha, 100, Parque São Caetano,
Uma Heurística ILS para Resolução do Problema de Carregamento e Descarregamento de Contêineres em Navios Porta-contêineres
Uma Heurística ILS para Resolução do Problema de Carregamento e Descarregamento de Contêineres em Navios Porta-contêineres Amaro José de S. Neto 1, Dalessandro S. Vianna 2, Marcilene de Fátima D. Vianna
INVESTIGANDO O PROBLEMA DA MOCHILA IRRESTRITA EM SUA VERSÃO BIDIMENSIONAL
INVESTIGANDO O PROBLEMA DA MOCHILA IRRESTRITA EM SUA VERSÃO BIDIMENSIONAL Mirella Augusta Sousa Moura, mirella.asm14@hotmail.com Thiago Alves de Queiroz, th.al.qz@catalão.ufg.br Resumo: Empacotamento consiste
RAFAEL LOPES BONFIM DESENVOLVIMENTO DE EXTENSÕES PARA UM SISTEMA DE CARREGAMENTO E DESCARREGAMENTO DE NAVIOS
RAFAEL LOPES BONFIM DESENVOLVIMENTO DE EXTENSÕES PARA UM SISTEMA DE CARREGAMENTO E DESCARREGAMENTO DE NAVIOS Guaratinguetá 2013 RAFAEL LOPES BONFIM DESENVOLVIMENTO DE EXTENSÕES PARA UM SISTEMA DE CARREGAMENTO
Alexandre Cesar Muniz de Oliveira Universidade Federal do Maranhão (UFMA DEINF/PPGCC) Av. dos Portugueses, 1966, São Luís/MA
UMA APLICAÇÃO DAS METAHEURÍSTICAS ALGORITMO GENÉTICO E COLÔNIA ARTIFICIAL DE ABELHAS ATRAVÉS DA CODIFICAÇÃO POR REGRAS PARA RESOLVER O PROBLEMA DE CARREGAMENTO DE NAVIOS- CONTÊINERES Luziana F. Carraro
Resolução do problema de carregamento e descarregamento 3D de contêineres em terminais portuários, via representação por regras e algoritmo genético
Resolução do problema de carregamento e descarregamento 3D de contêineres em terminais portuários, via representação por regras e algoritmo genético Anibal Tavares de Azevedo (UNICAMP SP/Brasil) - anibal.azevedo@fca.unicamp.br
NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016
NOTAS DE AULA 1 METAHEURÍSTICA 13/10/2016 Metaheurística: São técnicas de soluções que gerenciam uma interação entre técnicas de busca local e as estratégias de nível superior para criar um processo de
Resolução do Problema de Carregamento e Descarregamento de Contêineres em Terminais Portuários via Algoritmo Genético
Resolução do Problema de Carregamento e Descarregamento de Contêineres em Terminais Portuários via Algoritmo Genético Anibal Tavares de Azevedo Cassilda Maria Ribeiro
Otimização de horários Seminário. Clarisse Resende 25/01/2013
Otimização de horários Seminário Clarisse Resende 25/01/2013 O problema dos horários consiste numa sequência de atividades de programação, satisfazendo um conjunto de restrições de recursos. Pretende-se
XLVI Pesquisa Operacional na Gestão da Segurança Pública
PARETO CLUSTERING SEARCH APLICADO AO PROBLEMA DE CARREGAMENTO DE CONTÊINERES EM NAVIOS Eliseu Junio Araújo Antônio Augusto Chaves Luiz Leduino de Salles Neto Anibal Tavares de Azevedo Universidade Federal
Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante
Análise de Desempenho da Paralelização do Problema de Caixeiro Viajante Gabriel Freytag Guilherme Arruda Rogério S. M. Martins Edson L. Padoin Universidade Regional do Noroeste do Estado do Rio Grande
Tabelas Hash. informação, a partir do conhecimento de sua chave. Hashing é uma maneira de organizar dados que:
Tabelas Hash Tabelas Hash O uso de listas ou árvores para organizar informações é interessante e produz bons resultados. Porem, em nenhuma dessas estruturas se obtém o acesso direto a alguma informação,
Um Algoritmo Genético para o Problema de Roteamento de Veículos com Janelas de Tempo
Um Algoritmo Genético para o Problema de Roteamento de Veículos com Janelas de Tempo Francisco Henrique de Freitas Viana Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento de Informática
METAHEURÍSTICAS: 1 SIMULATED ANNEALING (S.A) 1.1 INTRODUÇÃO
1 SIMULATED ANNEALING (S.A) 1.1 INTRODUÇÃO METAHEURÍSTICAS: É uma das primeiras metaheurísticas que foi utilizada com muito sucesso nos problemas complexos de pesquisa operacional. O S.A surgiu do campo
4 Testes e experimentos realizados 4.1. Implementação e banco de dados
32 4 Testes e experimentos realizados 4.1. Implementação e banco de dados Devido à própria natureza dos sites de redes sociais, é normal que a maior parte deles possua uma grande quantidade de usuários
EXERCÍCIOS DE RECORDAÇÃO DE ALGORITMOS
UNIVERSIDADE SALGADO DE OLIVEIRA CURSO DE SISTEMAS DE INFORMAÇÃO DISCIPLINA: LINGUAGEM DE PROGRAMAÇÃO I PROF: GIULIANO PRADO DE MORAIS GIGLIO EXERCÍCIOS DE RECORDAÇÃO DE ALGORITMOS 0) Faça um algoritmo
3. Resolução de problemas por meio de busca
Inteligência Artificial - IBM1024 3. Resolução de problemas por meio de busca Prof. Renato Tinós Local: Depto. de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3. Resolução de problemas por
Escalonamento Multidimensional: uma Abordagem Discreta
September 24-28, 212 Escalonamento Multidimensional: uma Abordagem Discreta Ana Camila R. Alonso Silvia M. S. Carvalho Departamento de Matemática Aplicada - IMECC-UNICAMP 1383-859, Campinas, SP E-mail:acamila@ime.unicamp.br
UMA APLICAÇÃO DA METAHEURÍSTICA ALGORITMO GENÉTICO AO PROBLEMA DE CARREGAMENTO DE NAVIOS-CONTÊINERES
Versão inicial submetida em 18/02/2011. Versão final recebida em 31/08/2011. Rio de Janeiro, v.4, n.1, p. 52-64, janeiro a abril de 2012 UMA APLICAÇÃO DA METAHEURÍSTICA ALGORITMO GENÉTICO AO PROBLEMA DE
Branch-and-Bound para problemas de Otimização Combinatória
para problemas de Otimização Combinatória Rafael Antônio Marques Gomes Orientador: Haroldo Gambini Santos Departamento de Computação UFOP 26 de julho de 2011 Rafael Antônio Marques Gomes BB para problemas
4 C odigos de Huffman 4.1 Arvores de c odigo folhas os internos n ıvel altura Arvore bin aria arvore bin aria ordenada
4 Códigos de Huffman 4.1 Árvores de código Numa árvore qualquer, os nós que não têm filhos são chamados de folhas e os demais nós são chamados de nós internos. Se um nó de uma árvore é filho de outro,
Métodos de Ordenação Parte I
Estrutura de Dados II Métodos de Ordenação Parte I Prof a Márcio Bueno ed2tarde@marciobueno.com / ed2noite@marciobueno.com Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Rearranjar
Uma Introdução à Busca Tabu André Gomes
Uma Introdução à Busca Tabu André Gomes Departamento de Ciência da Computação, Instituto de Matemática e Estatística, Universidade de São Paulo, SP, Brasil Novembro de 2009 INTRODUÇÃO Método de Busca Local
3 Extensões dos modelos matemáticos
3 Extensões dos modelos matemáticos Os modelos matemáticos definidos por (2-1) (2-6) e (2-7) (2-13), propostos por Achuthan e Caccetta e apresentados no Capítulo 2, são reforçados neste trabalho através
UMA HEURÍSTICA PARA O PROBLEMA DE REDUÇÃO DE CICLOS DE SERRA
UMA HEURÍSTICA PARA O PROBLEMA DE REDUÇÃO DE CICLOS DE SERRA Rodolfo Ranck Junior Horacio Hideki Yanasse José Carlos Becceneri Instituto Nacional de Pesquisas Espaciais INPE Caixa Postal 515 12.227-010
Marina Andretta. 10 de outubro de Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis.
Solução básica viável inicial Marina Andretta ICMC-USP 10 de outubro de 2016 Baseado no livro Introduction to Linear Optimization, de D. Bertsimas e J. N. Tsitsiklis. Marina Andretta (ICMC-USP) sme0211
5ª Lista de Exercícios de Programação I
5ª Lista de Exercícios de Programação I Instrução As questões devem ser implementadas em C. Questões que envolvam leitura de matrizes, a construção dessas matrizes pode ser realizada através da geração
Métodos Exatos para PI - Parte 1: Branch-and-Bound
Introdução à Otimização Combinatória Métodos Exatos para PI - Parte 1: Professora: Rosiane de Freitas (rosiane@icomp.ufam.edu.br) Bruno Raphael Cardoso Dias Prof. Estágio em Docência (bruno.dias@icomp.ufam.edu.br)
1_1 1_2 2_1 1_ _ _ Fonte: Autor
75 7. Resultados Os resultados aqui apresentados utilizam o modelo proposto na Seção 6.2, resolvido através do software de otimização AIMMS para os problemas com Datas prometidas. Já para o problema sem
Flávia Barbosa UNICAMP Antônio Carlos Moretti UNICAMP
O Problema de Alocação de Berços: Aspectos Teóricos e Computacionais Flávia Barbosa UNICAMP flaflabarbosa0@gmail.com Antônio Carlos Moretti UNICAMP moretti@ime.unicamp.br Luiz Leduíno de Salles Neto UNIFESP
CAP 254 CAP 254. Otimização Combinatória. Professor: Dr. L.A.N. Lorena. Assunto: Metaheurísticas Antonio Augusto Chaves
CAP 254 CAP 254 Otimização Combinatória Professor: Dr. L.A.N. Lorena Assunto: Metaheurísticas Antonio Augusto Chaves Conteúdo C01 Simulated Annealing (20/11/07). C02 Busca Tabu (22/11/07). C03 Colônia
Estruturas de Dados Estáticas Cont.
Estruturas de Dados Estáticas 1 Estruturas de Dados Estáticas Cont. Matriz (arrays multidimensionais) Uma matriz é uma variável composta homogênea bidimensional formada por uma sequência de variáveis,
Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Classes de Comportamento Assintótico Se f é uma função de complexidade para um algoritmo F, então
Algoritmos Branch e Bound para o problema de sequenciamento em uma única máquina
Trabalho apresentado no XXXV CNMAC, Natal-RN, 2014. Algoritmos Branch e Bound para o problema de sequenciamento em uma única máquina Carlos E. Ferreira Instituto de Matemática e Estatística, IME, USP 05508-090,
HASHING HASHING 6/10/2008
Hashing é uma técnica que busca realizar as operações de inserção, remoção e busca em tempo constante. Motivação - Acesso Direto: Suponha que existam n chaves a serem armazenadas em uma tabela T, seqüencial
Otimização por Colônia de Formigas (ACO)
Otimização por Colônia de Formigas (ACO) Inspiração Biológica Proposto por Dorigo e Gambardella em 1997 ACO (Ant Colony Optimization) Principal aplicação no PCV Programação do algoritmo Inspiração Biológica
4 Implementação Computacional
4 Implementação Computacional 4.1. Introdução Neste capítulo é apresentada a formulação matemática do problema de otimização da disposição das linhas de ancoragem para minimizar os deslocamentos (offsets)
6 Aplicação do Modelo de Geração de Cenários
6 Aplicação do Modelo de Geração de Cenários 6.. Considerações Iniciais Os cenários de energia natural afluente, que são utilizados durante as simulações forward e backward do processo de definição da
UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO. Matrizes. Prof. Alex Camargo
UNIVERSIDADE FEDERAL DO PAMPA CAMPUS BAGÉ ALGORITMOS E PROGRAMAÇÃO Matrizes Prof. Alex Camargo alexcamargoweb@gmail.com Definição Matriz é uma variável composta homogênea multidimensional. Conjunto de
Algoritmo heurístico para agrupamento de ordens de serviço em concessionárias de distribuição de energia elétrica considerando priorização
1/5 Title Algoritmo heurístico para agrupamento de ordens de serviço em concessionárias de distribuição de energia elétrica considerando priorização Registration Nº: (Abstract) xxx Company 1. Universidade
Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante
Programação Dinâmica I SCC0210 Algoritmos Avançados (2/2011) Lucas Schmidt Cavalcante Introdução Soma máxima de uma subsequência contígua Problema do troco Quantidade de formas de dar troco Problema da
5 VNS com Filtro e Reconexão por Caminhos
5 VNS com Filtro e Reconexão por Caminhos A metaheurística VNS (Variable Neighborhood Search) foi proposta por Mladenović e Hansen [40] e possui como idéia básica a mudança de vizinhanças realizada da
Uma heurística para o problema sequenciamento de tarefas com restrições adicionais em um centro de distribuição
Trabalho apresentado no XXXVII CNMAC, S.J. dos Campos - SP, 2017. Proceeding Series of the Brazilian Society of Computational and Applied Mathematics Uma heurística para o problema sequenciamento de tarefas
Lista de Exercícios Programação Inteira. x 2 0 e inteiros.
Lista de Exercícios Programação Inteira ) Resolva os problemas a seguir usando o método B&B a) Max z = 5 x + 2 y s.a x + y 2 x + y 5 x, y 0, x e y inteiros b) Max z = 2 x + y s.a x + 2y 0 x + y 25 x, y
Problema do Caixeiro Viajante
Problema do Caixeiro Viajante 1 Introdução Minimizar o custo de um ciclo hamiltoniano em um grafo completo (William R. Hamilton,1857,Around The World); Solução por enumeração: R( n ) = ( n - 1 )! Um computador
Construção de matrizes inteiras com somas das linhas e das colunas prescritas
Construção de matrizes inteiras com somas das linhas e das colunas prescritas Rosário Fernandes Departamento de Matemática, Faculdade de Ciências e Tecnologia Universidade Nova de Lisboa, Caparica, Portugal
Técnicas para Programação Inteira e Aplicações em Problemas de Roteamento de Veículos 41
4 Resolução de IPs A teoria de programação linear foi proposta na década de 40 e logo foi observado que seria desejável a resolução de problemas que apresentavam variáveis do tipo inteiro [37]. Isto levou
Lista de Exercícios Programação Inteira. x 2 0 e inteiros.
Lista de Exercícios Programação Inteira ) Resolva os problemas a seguir usando o método B&B a) Max z = 5 x + y s.a x + y x + y 5 b) Max z = x + y s.a x + y 0 x + y 5 c) Max z = x + y s.a x + 9y 6 8 x +
Otimização Linear. Profª : Adriana Departamento de Matemática. wwwp.fc.unesp.br/~adriana
Otimização Linear Profª : Adriana Departamento de Matemática adriana@fc.unesp.br wwwp.fc.unesp.br/~adriana Problema da Mistura minimizar f ( 1, 2,..., n ) = c 1 1 + c 2 2 +... + c n n Sujeito a: a 11 1
Code: Luiza Rodrigues Matos, Daisy Paes Silva, Edilaine Martins Soler. Universidade Estadual Paulista "Júlio de Mesquita Filho" (UNESP)
A Comparison Between the Efficiency of the Outer Approximation Method and the Branch-and-Bound Method to Solve the Optimal Power Flow Problem with Discrete Control Variables Code: 19.024 Luiza Rodrigues
Problema do Caminho Mínimo
Departamento de Engenharia de Produção UFPR 63 Problema do Caminho Mínimo O problema do caminho mínimo ou caminho mais curto, shortest path problem, consiste em encontrar o melhor caminho entre dois nós.
ESTÁGIOS DOMINANTES FLEXÍVEIS EM SISTEMAS DE PRODUÇÃO FLOW SHOP HÍBRIDOS
ESTÁGIOS DOMINANTES FLEXÍVEIS EM SISTEMAS DE PRODUÇÃO FLOW SHOP HÍBRIDOS João Vitor Moccellin Departamento de Engenharia de Produção Escola de Engenharia de São Carlos, Universidade de São Paulo. Av. Trabalhador
Representação de Arranjos
Representação de Arranjos Algoritmos e Estruturas de Dados I Embora os arranjos multidimensionais sejam fornecidos como um objeto de dados padrão na maioria das linguagens de programação em alto nível,
Disciplina de Algoritmos e Programação. Vetor e Matriz
Disciplina de Algoritmos e Programação Vetor e Matriz Definição de Vetor Vetor é uma variável composta homogênea unidimensional Conjunto de variáveis de mesmo tipo que possuem mesmo identificador (nome)
Buscas Informadas ou Heurísticas - Parte III
Buscas Informadas ou Heurísticas - Parte III Prof. Cedric Luiz de Carvalho Instituto de Informática - UFG Mestrado em Ciência da Computação / 2006 BUSCA SMA* (Simplified Memory-Bounded A*) BUSCA SMA* (Simplified
Lista 1. 8 de abril de Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b.
Lista 1 8 de abril de 2013 1 Exercícios Básicos 1.1 Na bibliografia Algorithms: Capítulo 0, exercícios 1 e 2. Tardos: Todos exercícios do cap 2 do livro texto, exceto 7 e 8 letra b. 1.2 Outros 1. Projete
Percebendo Padrões. Vitor T T T F T T T F T T T F T T T F T T T F Maria T T T T T T T F F F T T T T T T T F F F
Polos Olímpicos de Treinamento Curso de Combinatória - Nível 1 Prof. Bruno Holanda Aula 6 Percebendo Padrões Uma das principais habilidades que deve ser desenvolvida pelos alunos que desejam ter um bom
Exercícios: Vetores e Matrizes
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor
Planejamento para fundições: uma aplicação do método das K-melhores mochilas. 1 Introdução
Planejamento para fundições: uma aplicação do método das K-melhores mochilas Murilo S. Pinheiro, Franklina M.B. Toledo, Instituto de Ciências Matemáticas e de Computação, Universidade de São Paulo, Av.
XLVII SIMPÓSIO BRASILEIRO DE PESQUISA OPERACIONAL
META-HEURÍSTICA SIMULATED ANNEALING APLICADA AO PROBLEMA DE CORTE BIDIMENSIONAL NÃO-GUILHOTINADO Gelinton Pablo Mariano Mestrando em Informática - Universidade Federal do Espírito Santo Av. Fernando Ferrari,
Complexidade de Algoritmos. Edson Prestes
Edson Prestes Programação Dinâmica A programação dinâmica costuma ser aplicada a problemas de otimização resultando, em geral, em algoritmos mais eficientes que os mais diretos. Esse método é útil quando
Escalonamento usando múltiplos períodos
3 Escalonamento usando múltiplos períodos O escalonamento usando múltiplos períodos consiste em dividir a carga total em fragmentos de carga e enviá-las a cada processador mais de uma vez, segundo períodos.
Matrizes esparsas: definição
Matrizes esparsas: definição o objetivo é mostrar os métodos de armazenamento e manipulação de matrizes esparsas esparsidade de uma matriz é a relação entre o número de elementos nulos de uma matriz e
Formulações de Programação Matemática para o Problema de Seqüenciamento em uma Máquina com Janelas de Entrega Distintas e Tempo de Preparação
Anais do CNMAC v.2 ISSN 1984-820X Formulações de Programação Matemática para o Problema de Seqüenciamento em uma Máquina com Janelas de Entrega Distintas e Tempo de Preparação Dependente da Seqüência de
1 - A capacidade de fluxo que corresponde a capacidade máxima que pode passar pelo arco.
CONCEITOS DE REDE Uma rede é formada por um conjunto de nós, um conjunto de arcos e de parâmetros associados aos arcos. Nós Arcos Fluxo Interseções Rodovias Veículos Rodoviários Aeroportos Aerovia Aviões
Otimização. Otimização em Redes. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia 2016/2
Otimização Otimização em Redes Paulo Henrique Ribeiro Gabriel phrg@ufu.br Faculdade de Computação Universidade Federal de Uberlândia 2016/2 Paulo H. R. Gabriel (FACOM/UFU) GSI027 2016/2 1 / 51 Conteúdo
Primeiro Trabalho de IA/SI: Buscas. Entrega: 03/03/2019 (2 semanas)
Primeiro Trabalho de IA/SI: Buscas Entrega: 03/03/2019 (2 semanas) 18 de Fevereiro de 2019 Este trabalho é para ser submetido via Moodle. Será desenvolvido principalmente durante as aulas práticas, mas
Utilização de Algoritmos Genéticos para Otimização de Altura de Coluna da Matriz de Rigidez em Perfil no Método dos Elementos Finitos
Utilização de Algoritmos Genéticos para Otimização de Altura de Coluna da Matriz de Rigidez em Perfil no Método dos Elementos Finitos André Luiz Ferreira Pinto Pontifícia Universidade Católica do Rio de
MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016
MC102 Aula 26 Recursão Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Indução 2 Recursão 3 Fatorial 4 O que acontece na memória 5 Recursão Iteração 6 Soma em um Vetor 7 Números
Árvores Binárias e AVL Felipe Barros Pontes Gustavo Márcio de Morais Cunha Márcio de Medeiros Ribeiro
Universidade Federal de Alagoas - UFAL Departamento de Tecnologia da Informação - TCI Ciência da Computação Árvores Binárias e AVL Felipe Barros Pontes Gustavo Márcio de Morais Cunha Márcio de Medeiros
DETERMINAÇÃO DE FUNÇÕES DE TRANSFERÊNCIA DE PROCESSOS QUÍMICOS ATRAVÉS DO MÉTODO DE EVOLUÇÃO DIFERENCIAL UTILIZANDO O SCILAB
DETERMINAÇÃO DE FUNÇÕES DE TRANSFERÊNCIA DE PROCESSOS QUÍMICOS ATRAVÉS DO MÉTODO DE EVOLUÇÃO DIFERENCIAL UTILIZANDO O SCILAB A. H. R. REZENDE 1, D. L. SOUZA 1 1 Universidade Federal do Triângulo Mineiro,
Árvore Binária de Busca Ótima
MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nas seções sobre árvore binária de busca ótima do capítulo 4 do livro N. Wirth. Algorithms
Os Problemas de Optimização Combinatória e a Teoria da Complexidade
Metodologias de Apoio à Decisão Os Problemas de Optimização Combinatória e a Teoria da Complexidade Programação Inteira Mista Programação Linear Programação Binária Mista Programação Inteira Slide Fluxos
HASHING Hashing Motivação - Acesso Direto:
Hashing é uma técnica que busca realizar as operações de inserção, remoção e busca em tempo constante. Motivação - Acesso Direto: Suponha que existam n chaves a serem armazenadas em uma tabela T, seqüencial
Avaliação de Heurísticas de Melhoramento e da Metaheurística Busca Tabu para Solução de PRV
Avaliação de Heurísticas de Melhoramento e da Metaheurística Busca Tabu para Solução de PRV Eliseu Celestino Schopf 1, Claudio Schepke 1, Marcus Lucas da Silva 1, Pablo Furlan da Silva 1 1 Centro de Eletrônica
Instituto de Matemática e Estatística - USP MAC Organização de Computadores EP1. Experimentos com o cache. Tiago Andrade Togores
Instituto de Matemática e Estatística - USP MAC0412 - Organização de Computadores EP1 Experimentos com o cache Tiago Andrade Togores - 6514230 30 de setembro de 2010 Sumário 1 Introdução 2 1.1 O que é
PROGRAMAÇÃO DA PRODUÇÃO EM SISTEMAS POR BATELADAS: UM ESTUDO PARA A OTIMIZAÇÃO DO MAKESPAN
PROGRAMAÇÃO DA PRODUÇÃO EM SISTEMAS POR BATELADAS: UM ESTUDO PARA A OTIMIZAÇÃO DO MAKESPAN R. P. da ROCHA 1, M. de F. MORAIS 1, M. A. da S. S. RAVAGNANI 2, C. M. G. ANDRADE 2, C. M. P. R. PARAÍSO 2 1 Universidade
Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos
Formulação de Programação Linear Inteira para o Problema de Particionamento em Conjuntos Convexos Teobaldo L. Bulhões Júnior a a Instituto de Computação, Universidade Federal Fluminense, Niterói, RJ, Brazil
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA
ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática
Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Abordagens automáticas
Por que atributos irrelevantes são um problema Quais tipos de algoritmos de aprendizado são afetados Abordagens automáticas Wrapper Filtros Muitos algoritmos de AM são projetados de modo a selecionar os
Exercícios: Árvores. Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de estrutura de dados em linguagem C Exercícios: Árvores 1. Utilizando os conceitos de grafos, defina uma árvore.
Programação Inteira. Algoritmo Branch-and-Bound (ou enumeração implícita)
Programação Inteira Algoritmo Branch-and-Bound (ou enumeração implícita) Métodos de Solução: Branch-and-Bound O método Branch-and-Bound (B&B) baseia-se na idéia de desenvolver uma enumeração inteligente
Algoritmo Evolutivo para o Problema de Corte de Estoque Unidimensional com Redução do Número de Padrões de Corte
Algoritmo Evolutivo para o Problema de Corte de Estoque Unidimensional com Redução do Número de Padrões de Corte Henrique A. Kobersztajn 1, Kelly C. Poldi 2, Instituto de Ciência e Tecnologia, Unifesp
Aula 13: Branch-and-bound
Aula 13: Branch-and-bound Otimização Linear e Inteira Túlio A. M. Toffolo http://www.toffolo.com.br BCC464/PCC174 2018/2 Departamento de Computação UFOP Previously... Modelagem em PI / Problemas Combinatórios
Inteligência Artificial - IA. Resolução de problemas por meio de busca
Resolução de problemas por meio de busca 1 Agente reativo - definido por ação reação Agente de resolução de problemas (ou baseado em objetivos) encontra sequencias de ações que leva ao estado desejável.
Programação Inteira. Prof. Ricardo Santos
Programação Inteira Prof. Ricardo Santos Introdução Um problema com variáveis inteiras e reais é denominado problema de Programação Inteira Mista (PIM) quando tem a seguinte forma: PIM z=max cx+dy Ax+Dy
Programação Inteira. Solução com o método Branch-and-Bound
Programação Inteira Solução com o método Branch-and-Bound Conceitos gerais Um conceito fundamental nos métodos de resolução de programação inteira é a relaxação linear p Consiste em substituir PIM Ζ +
Problemas de otimização
Problemas de otimização Problemas de decisão: Existe uma solução satisfazendo certa propriedade? Resultado: sim ou não Problemas de otimização: Entre todas as soluções satisfazendo determinada propriedade,
Programação Linear Inteira. C. Requejo (UA) Métodos de Investigação Operacional MIO / 30
Programação Linear Inteira Programação Linear Inteira C. Requejo (UA) Métodos de Investigação Operacional MIO 2016 1 / 30 Programação Linear Inteira Programação Linear Inteira Resolução de problemas de
Lista de Exercícios de Arranjo Físico Industrial Prof. Artur
Lista de xercícios de rranjo Físico Industrial Prof. rtur Questão 1: Calcule uma solução para a instância abaixo do PQ utilizando a heurística gulosa dada em sala e forneça o seu custo. - 4 3 Distâncias
UMA HEURÍSTICA PARA UM PROBLEMA DE CARREGAMENTO DE CAIXAS EM UM CONTÊINER COMPARTIMENTADO
UMA HEURÍSTICA PARA UM PROBLEMA DE CARREGAMENTO DE CAIXAS EM UM CONTÊINER COMPARTIMENTADO Rodolfo Ranck Jr. Instituto Nacional de Pesquisas Espaciais INPE rodolforanck@gmail.com.br Horacio Hideki Yanasse