• Nenhum resultado encontrado

UMA FERRAMENTA INTERATIVA E GRÁFICA APLICADA NA RESOLUÇÃO DO PROBLEMA FLOWSHOP PERMUTACIONAL

N/A
N/A
Protected

Academic year: 2021

Share "UMA FERRAMENTA INTERATIVA E GRÁFICA APLICADA NA RESOLUÇÃO DO PROBLEMA FLOWSHOP PERMUTACIONAL"

Copied!
12
0
0

Texto

(1)

UMA FERRAMENTA INTERATIVA E GRÁFICA APLICADA NA

RESOLUÇÃO DO PROBLEMA FLOWSHOP PERMUTACIONAL

José Lassance de Castro Silva Universidade Federal do Ceará-UFC.

Campus do Pici, Bloco 910, CEP 60455-760, Fortaleza CE

lassance@lia.ufc.br

Lucas Rebouças Guimarães Universidade Federal do Ceará-UFC.

Campus do Pici, Bloco 724, CEP 60455-760, Fortaleza CE

lucasreb@gmail.com

RESUMO

No presente trabalho desenvolvemos uma ferramenta interativa e gráfica aplicada na resolução do problema de combinação FlowShop Scheduling Problem (FSP). A ferramenta pode também ser utilizada no estudo de outros Problemas de Otimização Combinatória Permutacional, permitindo que o usuário interaja diretamente na busca por boas soluções para o problema, possibilitando estudar o problema passo a passo e de diferentes formas, fornecendo ainda uma visão prática da eficiência do procedimento utilizado para avaliar o problema. O FSP é classificado como NP-difícil e desta forma justifica-se o uso de técnicas refinadas aplicadas na resolução do problema que ofereçam soluções viáveis a um baixo custo computacional. Realizamos experimentos computacionais através da aplicação da ferramenta desenvolvida em instâncias de até 20 máquinas e 100 tarefas. Os resultados obtidos foram comparados com aqueles encontrados na literatura.

PALAVRAS CHAVE: Problema de Seqüenciamento, Otimização Combinatória, Permutação. ABSTRACT

In this work, we developed an interactive and graphics tool and apply in solving of the Flowshop Scheduling Problem (FSP). The tool can also be used in other problems of the Combinatorial Optimization that involves permutation. It allows the user to interact directly in the search for good solutions, enabling him to study the problem step by step and in different ways, even providing an overview of the practical efficiency of the procedure used to evaluate the problem. The FSP is classified as NP-hard which justifies the use of refined theories applied in its resolution that offer feasible solutions to a low computational cost. We performed computational experiments by applying the tool in instances of up to 20 machines and 100 jobs. The results were compared with those found in existing literature.

(2)

1. Introdução

Este trabalho tem como principal objetivo apresentar uma técnica que encontre boas soluções para os Problemas de Otimização Combinatória Permutacional (POCP), num tempo computacional aceitável, através de uma ferramenta gráfica e interativa. Estes problemas são, geralmente, caracterizados por associarmos a cada uma de suas soluções viáveis uma permutação. Exemplos de POCP são: o Problema do Caixeiro Viajante, o Problema de Seqüenciamento, o Problema de Empacotamento de Bins, etc. Usualmente, a solução ótima de um POCP consiste em se determinar dentre as inúmeras soluções viáveis do problema, aquela que otimiza alguma medida de desempenho. Conseqüentemente, é de grande importância a existência de heurísticas e metas-heurísticas, que forneçam soluções de boa qualidade (próximas da solução ótima) em um tempo computacional razoável.

Escolheu-se o Problema de Seqüenciamento Clássico, denominado na literatura Flowshop Scheduling Problem (FSP), como o representante dos POCP’s a ser estudado para uma aplicação da nossa técnica. Esta escolha não se deu ao acaso, visto que trata-se de um problema amplamente conhecido, contando, inclusive com instâncias já consolidadas na literatura, e.g. OR-Library (BEASLEY, 1990), por via de conseqüência, a modelagem de um problema de otimização combinatória permutacional por um FSP, não invalida a generalidade com que se tratou os POCP’s.

A classe de Problemas de Seqüenciamento tem grande aplicação no planejamento e controle da produção das organizações industriais, por exemplo, Fábrica de móveis, Confecções, Industria de Aviação, entre outras, pois permite obter grandes reduções de tempo e custo na ordenação do processamento de tarefas em máquinas. O problema consiste em designar uma seqüência de n tarefas que devem realizar todas as suas operações nas m máquinas e minimize algum fator de desempenho, onde na maioria das vezes é utilizado o fator tempo (makespan).

O Flowshop Scheduling Problem tem a seguinte característica, queremos realizar n tarefas J1,

J2,..., Jn, onde cada tarefa tem para ser processada m máquinas M1, M2, ..., Mm. Cada tarefa

demanda m operações, com uma operação representando o tempo de processamento da tarefa por máquina. As tarefas seguem o mesmo fluxo de operações nas máquinas, isto é, para qualquer k =1,2,..., n, a tarefa Jk deve ser processada primeiro na máquina M1, depois na máquina M2, e

assim por diante até a última máquina, no caso máquina Mm. Caso a tarefa Jk não utilize todas as

máquinas, o seu fluxo continua sendo o mesmo, todavia com o tempo de ocupação sendo igual a zero. Uma máquina pode processar somente uma operação de cada vez, e iniciada uma operação, ela deva ser processada até a sua conclusão. O número de seqüências distintas possíveis para realização das tarefas nas máquinas é da ordem de n fatorial ( O(n!) ). O problema consiste em realizar todas as n tarefas no menor tempo possível.

Um input FSP é dado por n, m e uma matriz P, de dimensão m x n, onde pik denota o tempo

de processamento da tarefa Jk na máquina Mi. Seguindo os 4 parâmetros da notação A/B/C/D

adotada por Conway et al. (1967), o problema é classificado como n/m/P/Fmax. Na recente

notação paramétrica α/β/γ, proposta por Graham et al. (1979), o problema é denotado como sendo F/prmu/Cmax. O FSP pertence à classe dos problemas NP-completo, no sentido forte,

quando m≥3, conforme Garey et al. (1976), no caso em que m=2, o problema pode ser solucionado através de um algoritmo em tempo polinomial.

Gupta e Stafford Jr. (2006) fizeram um levantamento científico sobre o problema nas últimas cinco décadas e, constataram que existem mais de 1200 artigos, na literatura sobre pesquisa operacional, contendo vários aspectos deste problema. Os métodos de resolução exata, geralmente, são aplicados a problemas de pequeno porte (n≤20), e mesmo neste caso o tempo computacional ainda é muito alto. Ruiz et al. (2006) abordam, de forma resumida, alguns métodos utilizados na resolução do problema.

A grande maioria das técnicas de resolução do problema faz o uso de métodos heurísticos que faz a busca no espaço de soluções viáveis do problema de forma inteligente, proporcionando uma boa solução ao problema, às vezes chegando até a solução ótima do problema. Os métodos heurísticos podem subdividir-se em dois tipos: construtivos (no qual se constrói uma seqüência única de tarefas e esta é adotada como solução) e de melhoria (no qual se obtém uma solução

(3)

inicial e por meio de trocas iterativas de posições entre os componentes busca-se, portanto, a combinação que demonstre melhor desempenho). Exemplos de heurísticas construtivas podem ser vistas em: Ruiz et al. (2006); Palmer (1965) – Heurística PAL; Silva e Soma (2001) – Heurística HP; Silva e Soma (2006) – Heurística HPk; Nawaz, Enscore & Ham (1983). Já as Heurísticas de melhoria, tem-se em: Dannenbring (1977); Chen et al. (1995); Campbel, Dudek e Smith (1970) – Heurística CDS; entre outras. As heurísticas PAL, HP, HPk e CDS foram implementadas e executadas na mesma máquina onde deu-se os experimentos computacionais para avaliar o método de resolução aqui proposto. Estas heurísticas foram selecionadas para efeito de comparação do desempenho das soluções obtidas, por serem bastante rápidas e possuir muitas semelhanças com o método de resolução aqui abordado na resolução do problema.

As Metaheurísticas também foram usadas na resolução do FSP que têm como principal característica fugir de mínimos locais. Diferentemente das heurísticas que avaliam determinados locais considerados bons de fazer a busca. Exemplos de aplicações com metaheurísticas são dados através das técnicas: Busca Tabu, Simulated Annealing e o Algoritmo Genético (Reeves 1995, Glover e Kochenberger 2002, Gupta e Stafford Jr. 2006).

O presente trabalho descreve uma técnica de resolução para o problema através de uma ferramenta denominada Graphic Combinatorial Optimization System (GraCOS) que permite apresentar boas soluções para os Problemas de Otimização Combinatória Permutacional (POCP) através de um método interativo e gráfico. Tal ferramenta permite que o usuário interaja com o método de resolução usado no problema, inclusive diversificando e intensificando de diferentes formas a busca por boas soluções. Assim, pode-se fazer um apanhado do desempenho das soluções geradas e avaliadas para o problema. A técnica baseia-se em um método heurístico construtivo que particiona o conjunto de soluções viáveis do problema em n subconjuntos. Os experimentos realizados com o GraCOS são descritos adiante, onde constata-se o desempenho das soluções obtidas pelo método para as diversas instâncias do problema. Compara-se a qualidade dos resultados obtidos com outros métodos heurísticos construtivos presentes na literatura que usaram as mesmas classes dos problemas experimentais.

O presente trabalho organiza-se da seguinte maneira: Na Seção 2 apresentamos os procedimentos utilizados pela ferramenta GraCOS. A Seção 3 trata dos experimentos computacionais, onde apresentamos os resultados das instâncias do problema encontradas na literatura. As conclusões são descritas na Seção 4, enquanto na Seção 5, apresentamos as referências bibliográficas consultadas.

2. Graphic Combinatorial Optimization System - GraCOS

Um Problema de Otimização Combinatória Permutacional pode ser definido por um terno (S, g, r), onde S é o conjunto de todas as soluções viáveis (soluções que satisfazem as restrições do problema, com #S=r!), g é uma função ou um procedimento que associa a cada solução s ∈ S um número real e r é uma instância do problema. O objetivo é encontrar a solução s ∈ S que minimize (ou maximize) a função objetiva g. Podemos representar s como uma permutação de r elementos distintos, ou seja, s=< a1 a2 ... ar >. N(s) é chamada a vizinhança de s e contém todas as

soluções que podem ser alcançadas de s por um simples movimento. Aqui, o significado de um movimento é aquele de um operador que transforma uma solução para uma outra com pequenas modificações. Uma solução x é chamada mínimo local de g com respeito a vizinhança N se e somente se g(x)≤g(y), ∀ y ∈ N.

O FSP pode ser modelado como um POCP (S, g, r), tendo a seguinte forma:

a)

Um elemento s=< J1 J2 ... Jn > do conjunto de soluções viáveis S é representado por uma

permutação das n tarefas, com a ordem de s determinando a seqüência na qual as tarefas serão processadas;

b)

A instância r é representada por n;

c)

O procedimento g, dado a seguir, determina o valor do tempo gasto para processar a seqüência s:

(4)

Input: m, n, permutação s, Matrizes T(m x n) e P(m x n).

Output: tg (tempo gasto para processar todas as n tarefas usando a seqüência s) Para i=1 até m faça

Para j=1 até n faça T(i,j) =0; Para j=1 até n faça

Para i=1 até m faça Se (i=1)

Se (j>=2) T(1,sj ) = T(1,sj-1 ) + P(1, sj-1 );

senão

if (j=1)

T(i,s1) = T(i-1,s1) + P(i-1,s1);

Senão

x= T(i,sj-1 ) + P(i, sj-1 );

y= T(i-1,sj-1 ) + P(i-1, sj-1 );

Se (x>=y) T(i,sj ) =x senão T(i,sj ) =y;

tg= T(m,sn) + P(m,sn);

Onde: T(i,j) é o tempo para iniciar a tarefa j na máquina i .

Dado um conjunto J={1, 2, 3, ..., n} com n elementos distintos, determinar todas as permutações distintas de J é encontrar todas as combinações do tipo sq = < a1, a2, a3, ..., an >, com

q=1, 2, ..., n!, onde a1, a2, a3, ..., an são todos elementos distintos pertencentes ao conjunto J.

Seja α um número inteiro, não negativo e menor ou igual a n!. Podemos escrever α como uma combinação linear de (n-1)!, (n-2)!, (n-3)!, ..., 3!, 2!, 1!, ou seja, α=bn-1(n-1)! + bn-2(n-2)!

+ ... + b3 3! + b2 2! + b1 1!, tal que 0≤ bi ≤i, para i=1, 2, 3, ..., (n-1). Denominamos bn-1, bn-2, ..., b3,

b2, b1, de coeficientes de α na base fatorial de (n-1). A Figura 1, dada a seguir, mostra um

procedimento para determinar todas as permutações de J, de forma seqüencial, com base na determinação dos coeficientes de α na base fatorial de (n-1). A Tabela 1, dada a seguir, ilustra a execução do procedimento para n=4.

Procedimento Gerar_Permutações; INPUT: n;

OUTPUT: P (uma permutação de J)

P=0; // P é o vetor nulo com n posições Para i=0 até (n! –1) faça

Calcular_Coeficientes // Determina os bn-1, bn-2, ..., b3, b2, b1 de i;

Para j=1 até (n-1) faça // Construção da i-ésima permutação

Coloque j no (bn-j + 1)° zero encontrado em P, fazer a busca da esquerda para a

direita;

Substitua o único zero em P por n; Escreva P; P=0; Procedimento Caclcular_Coeficientes; INPUT: i, n; OUTPUT: bn-1, bn-2, ..., b3, b2, b1 resto = i;

Para i = (n-1) até 1 faça bi= resto / (i!);

resto = resto – bi * (i!);

Escreva bn-1, bn-2, ..., b3, b2, b1

(5)

α (b3, b2, b1) P α (b3, b2, b1) P α (b3, b2, b1) P 00 (0,0,0) <1234> 08 (1,1,0) <3124> 16 (2,2,0) <3412> 01 (0,0,1) <1243> 09 (1,1,1) <4123> 17 (2,2,1) <4312> 02 (0,1,0) <1324> 10 (1,2,0) <3142> 18 (3,0,0) <2341> 03 (0,1,1) <1423> 11 (1,2,1) <4132> 19 (3,0,1) <2431> 04 (0,2,0) <1342> 12 (2,0,0) <2314> 20 (3,1,0) <3241> 05 (0,2,1) <1432> 13 (2,0,1) <2413> 21 (3,1,1) <4231> 06 (1,0,0) <2134> 14 (2,1,0) <3214> 22 (3,2,0) <3421> 07 (1,0,1) <2143> 15 (2,1,1) <4213> 23 (3,2,1) <4321>

Tabela 1 – Resultado da aplicação do procedimento Gerar_Permutações para n=4.

O método empregado na resolução do problema particiona o conjunto S em n subconjuntos S1, S2, ..., Sn, onde: a união de todos esses subconjuntos é igual ao conjunto S; e a interseção entre

dois deles quaisquer é vazia. Todos os elementos do conjunto Si, com i=1, 2, ..., n, são

permutações que estão associadas aos valores de α entre (i-1)×(n-1)! e (i×(n-1)!)-1. Para o exemplo de n=4, tem-se S1={<1234>, <1243>, <1324>, <1423>, <1342>, <1432>}, S2={<2134>,

<2143>, <3124>, <4123>, <3142>, <4132>} S3={<2314>, <2413>, <3214>, <4213>, <3412>,

<4312>} e S4 ={ <2341>, <2431>, <3241>, <4231>, <3421>, <4321>}.

No GraCOS visualiza-se graficamente e contextualmente os valores de g para as soluções geradas e avaliadas do problema em cada conjunto Si, com i=1,2, ..., n, apresentando o seu

mínimo local. O método apresenta a melhor solução do problema, podendo ser a solução ótima, depois de avaliadas todas as soluções geradas de Sn. O desempenho das soluções do problema é

visto através da janela gráfica, onde se plotam os pontos coloridos na janela principal do Sistema GraCOS, com dimensão de k colunas e v linhas cuja unidade de medida é o pixel. k e v são números pares positivos. Definimos um ponto desta janela, de tamanho 2x2 pixels, para representar um conjunto de soluções (permutações) do problema, dispostas em ordem crescente de acordo com o(s) seu(s) número(s) α associado(s). Somente a primeira solução deste conjunto, relacionado com o referido ponto da área, será avaliada. A Figura 2, abaixo, mostra uma ilustração para n=6, k=6, v=8. Cada ponto é enumerado de 0 a 11, representando um conjunto com 10 soluções de Si, com i=1, 2, ..., 6, e cada Si possuindo 120 ((n-1)!=5!) soluções distintas.

Figura 2 – Ilustração da janela de visualização das soluções avaliadas.

Assim, pode-se ver que se há Pt = (k/2)×(v/2) = (k×v)/4 pontos, então isto implica que tem-se R = (n-1)! / Pt soluções (permutações) associadas a cada ponto, ou tem-seja, no exemplo mostrado tem-se Pt=12 e R=10. Quando (n-1)!/Pt não for um número inteiro tem-se que o último ponto conterá um conjunto maior de soluções dado por R mais o resto da divisão de (n-1)! por Pt, ou seja, o último ponto terá R+[(n-1)! Mod Pt] soluções associadas (onde aModb é o resto da divisão de a por b). O ponto de coordenadas (0,0), ao contrário do sistema cartesiano, é no canto superior esquerdo, orientado para a direita e para baixo. Identifica-se as coordenadas (x, y), com 0≤x≤3 e 0≤y≤2, de um ponto na janela através das equações x= x1/2 e y= y1/2 , onde x1 e y1

(6)

são as coordenadas de pixel da janela gráfica, por exemplo, o ponto (2,1) corresponde a qualquer uma das coordenadas de pixel (4,2), (4,3), (5,2) ou (5,3). Cada ponto corresponde a um número natural ordenado da esquerda para a direita e de cima para baixo, iniciando em zero e finalizando em Pt-1 (ou, (v-1)/2 × (k/2) + (k-1)/2). O ponto de coordenada (x, y) corresponde ao número natural y × (k/2) + x. Vale ressaltar que os valores de k e v dependem do valor de n, afim de evitar que algum ponto na janela gráfica fique sem pelo menos uma solução do problema. Devido a isto devemos ter (k×v) ≤ 4×(n-1)!.

Ainda dentro desta abordagem, para algum Si, 1≤in, o intervalo para os valores de α, no

ponto de número w, estão compreendidos entre lb=(i-1)((n-1)!) + R×w e ub=(i-1)((n-1)!) + R×(w+1) – 1, onde lb e ub são o limite inferior e superior deste intervalo, respectivamente, i. e. lb≤α≤ub. Caso (n-1)!/Pt não seja um número inteiro, então o limite superior para o intervalo de α, do maior valor de w, será (i × (n-1)!)-1. A Tabela 2, abaixo, mostra os 12 pontos da Figura 2 com suas respectivas soluções para S4, que correspondem aos intervalos dos números α.

Ponto α Ponto α 0 360, ..., 369 6 420, ..., 429 1 370, ..., 379 7 430, ..., 439 2 380, ..., 389 8 440, ..., 449 3 390, ..., 399 9 450, ..., 459 4 400, ..., 409 10 460, ..., 469 5 410, ..., 419 11 470, ..., 479

Tabela 2 – Soluções α de S4 associadas com os pontos da Figura 2.

No GraCOS há uma opção em que o usuário deverá selecionar para o preenchimento da janela gráfica: 3%, 5%, 10%, 15%, 20% ou 25%, conforme mostra a Figura 4 adiante. Depois de selecionado o tipo de preenchimento o usuário seleciona um tipo de figura associada ao tipo de preenchimento da área gráfica. A Figura 3, abaixo, ilustra os 4 tipos de figuras disponíveis para cada tipo de preenchimento. Cada figura, denominada de gif, pode ser vista como uma matriz de pontos cuja a dimensão é 10x10.

Figura 3 – Tipos de Figuras para o preenchimento da área gráfica.

A Figura 4, a seguir, ilustra uma situação onde o preenchimento da área gráfica, de dimensão 800x500 pontos, foi feito com base na 1a figura do preenchimento 5%. Preencher toda a área

gráfica com a gif selecionada é equivalente a avaliar menos de 5% das soluções viáveis para o problema selecionado. Os números atribuídos a k e v (campos “Num. Colunas” e “Num. Linhas”) pelo usuário, podem fazer com que na última faixa vertical, à direita, e/ou última faixa horizontal, abaixo, da janela gráfica não encaixe a gif de forma integral nos respectivos espaços. Quando isto acontecer serão plotadas nestas faixas apenas uma parte desta gif.

A gif selecionada da Figura 4 determina que os pontos de coordenadas (1,1), (6,2), (4,4), (2,6) e (8,8) serão os 5 pontos plotados dentro dela. A gif é um procedimento transparente ao usuário e descreve o número de pontos e suas coordenadas plotados dentro da sua área. Outra, a gif define a constituição das soluções que serão avaliadas no problema.

Os pontos são plotados com sua cor de acordo com o valor do desvio da solução avaliada associada aquele ponto. O desvio é dado por | z* - z |/z*, onde z* é o valor da solução ótima ou um limite inferior ou superior para o problema e z é o valor da função objetiva da solução

(7)

avaliada. A primeira gif a ser plotada será no ponto de coordenada (0,0), a segunda será no ponto de coordenada (0,10), a seguinte (0,20), e assim em diante, para a primeira faixa horizontal, de cima para baixo. Na segunda faixa horizontal, a primeira gif será plotada no ponto de coordenada (10,0), a segunda gif na coordenada (10,10), a seguinte em (10,20) e assim em diante. Prosseguimos desta forma, até toda área da janela gráfica ter sido preenchida totalmente pela gif selecionada.

Figura 4 – Janela Principal do GraCOS.

No GraCOS tem-se 10 cores distintas para um ponto a ser plotado, conforme ilustrado na Figura 4, legenda do Desvio. Após ser realizado o preenchimento de todo o espaço da janela gráfica com a gif selecionada pode ser ativado o procedimento de intensificação com o intuito de encontrar uma solução melhor que as que foram encontradas até aquele instante. Neste procedimento, avaliam-se todas as soluções associadas aos pontos num raio de 10 pontos da melhor solução encontrada de Si, conforme ilustra a Figura 4. Os pontos que estão dentro do

quadrado de bordas brancas são os que farão parte desta avaliação. Em cada iteração do método de resolução do problema (quadro ITERAÇÃO) é informada a iteração atual, índice i do conjunto Si, a melhor solução local s de Si com seu respectivo desvio dev e as coordenadas do mínimo

local (Xs, Ys) assim também como o valor de α associado e o tempo gasto para plotar todos os

pontos coloridos da área gráfica. No quadro GLOBAL é feito o acompanhamento da resolução do problema onde tem-se a melhor solução s*, encontrada até aquela iteração, com seu respectivo

desvio dev*, o α associado e em que iteração ela foi encontrada. No quadro da

INTENSIFICAÇÃO, o usuário poderá avaliar todas as soluções dentro do quadrado de raio informado no campo “Raio” e centrado em X e Y, o valor default destes campos é preenchido automaticamente com as coordenadas do mínimo local da iteração atual e com o Raio sendo igual a 10 pontos. O usuário clica no botão Intensificar para realizar o procedimento de intensificação. A Figura 5, a seguir, mostra o procedimento de Intensificação e de Plotagem da gif na área gráfica.

(8)

Procedimento Intensificar;

INPUT: n, i, k, v, X, Y, Raio;

max_x= X + Raio; // coordenada x do ponto do canto inferior direito do quadrado branco min_x= X - Raio; // coordenada x do ponto do canto superior esquerdo do quadrado branco max_y= Y + Raio; // coordenada y do ponto do canto inferior direito do quadrado branco min_y= Y - Raio; // coordenada y do ponto do canto superior esquerdo do quadrado branco

Para Py= min_y até max_y faça Para Px= min_x até max_x faça

Plote na janela gráfica, de acordo com sua cor, o ponto (Px, Py) // verificar se o ponto pertence a janela gráfica antes de plotá-lo Procedimento Plotar_gif;

INPUT: n, i, k, v;

// Total de faixas:

fv= (k/2)/10; // verticais; fh= (v/2)/10; // horizontais. Para j2=1 até fh faça

Y= (j2 – 1)*10; Para j1=1 até fv faça

X= (j1 – 1)*10;

// Plota a gif no ponto de coordenada (X,Y)

Para t=1 até np_gif faça // np_gif é o total de pontos ativos da gif selecionada Px= X + Xt; // Xt é a coordenada X do t-ésimo ponto da gif Py= Y + Yt; // Yt é a coordenada Y do t-ésimo ponto da gif Plote na janela gráfica, de acordo com sua cor, o ponto (Px, Py) // verificar se o ponto pertence a janela gráfica antes de plotá-lo Figura 5 – Procedimento que intensifica e plota a gif na área gráfica.

3. Experimentos Computacionais

O GraCOS foi desenvolvido no Borland C++ Builder 2007 e executado em um computador Plug PC (2.5 GHz e 1.0 GB de memória RAM). A Tabela 3, a seguir, mostra o desempenho do GraCOS quando aplicado nas instâncias de 1 a 90, benchmarks de Taillard (1993), encontradas na OR-Library, em http://people.brunel.ac.uk/~mastjjb/jeb/orlib/files/flowshop2.txt. Nesta tabela encontram-se os valores de m e n e os desvios das heurísticas PAL, CDS, HP, HPk (para k=8) e GCS (GraCOS) para cada uma das 90 instâncias. Lembrando que o desvio é dado por 100×(z – z*)/z*, onde z é o valor de g na melhor solução encontrada e z* é o valor ótimo.

Nos experimentos computacionais realizados com o GraCOS foram utilizados vários tipos de preenchimento dentre as instâncias do problema: 25% (Instâncias com m=5 e n=20); 20% (Instâncias com m=10 e n=20); 15% (Instâncias com m=20 e n=20); 10% (Instâncias com m sendo igual a 5 ou 10 e n=50); 5% (Instâncias com m=20 e n=50); 3% (todas as instâncias com n=100). A justificativa para o uso destes valores deve-se ao não comprometimento do tempo de execução quando comparado com as outras heurísticas. Tentamos deixar o GraCOS similar as outras heurísticas quanto ao tempo de execução. O procedimento de intensificação também foi executado em cada iteração, com o raio tendo tamanho de 10 pixels e o centro do quadrado sendo o ponto associado à solução s mínimo local de Si. Todas as heurísticas são bastante rápidas,

usando menos que 30 segundos na resolução de cada instância, e foram executadas na máquina descrita acima. A Tabela 4, dada a seguir, mostra um resumo dos dados descritos na Tabela 3.

As Figuras 5 e 6 mostram de forma mais detalhada, a visão dos resultados obtidos com cada método, destacando o comportamento de cada um deles, com relação aos desvios obtidos através

(9)

dos experimentos computacionais. A Figura 6 mostra o Box Plot para cada método de resolução onde vê-se que o método proposto (GraCOS) se destaca dos demais.

PAL CDS HP HPk GCS PAL CDS HP HPk GCS PAL CDS HP HPk GCS

m=5 e n=20 m=5 e n=50 m=5 e n=100 8,3 8,8 4,9 3,6 2,1 1,8 3,4 4,9 3,2 2,1 4,7 1,8 3,6 2,4 2,1 5,9 4,8 3,2 1,9 0,5 7,3 7,0 4,9 5,0 4,9 0,9 5,6 6,6 2,3 2,9 7,5 15,5 11,4 10,6 11,3 6,0 3,1 5,6 5,0 3,6 2,9 6,1 7,8 4,0 3,5 15,2 9,7 11,8 10,2 5,9 4,0 4,8 6,9 4,7 5,1 0,7 5,2 7,1 4,2 3,2 10,1 7,1 9,5 5,8 3,5 3,5 6,1 5,4 3,8 2,1 1,3 4,0 9,6 4,9 3,4 12,5 9,8 13,5 4,7 4,9 9,2 7,1 6,6 4,8 3,6 2,7 2,4 5,6 3,7 2,1 13,0 12,4 7,2 3,0 4,0 4,4 9,0 7,0 5,1 3,4 2,5 5,9 7,9 3,4 3,0 8,9 11,2 10,1 8,0 6,0 5,3 5,7 10,6 6,2 4,4 4,6 7,0 8,8 5,0 4,7 15,9 10,6 8,1 8,2 5,5 7,1 9,1 6,1 5,7 5,1 2,9 5,7 8,0 4,3 3,0 10,9 5,1 10,9 7,0 5,7 4,8 5,8 7,4 4,5 3,1 2,0 7,5 6,9 4,1 3,7 m=10 e n=20 m=10 e n=50 m=10 e n=100 13,2 11,1 12,8 8,8 9,8 16,3 14,4 17,4 12,4 13,2 6,8 7,6 14,5 9,7 9,3 17,4 11,8 8,6 10,5 8,9 15,6 13,2 15,7 15,2 12,4 10,1 9,8 16,1 14,0 11,3 15,6 10,0 12,8 9,2 8,6 17,0 15,5 19,5 16,7 15,7 8,0 6,1 12,4 9,8 9,1 15,1 12,4 13,4 8,5 13,1 14,6 10,8 12,4 11,7 9,0 9,2 10,3 16,6 10,8 11,3 16,1 9,8 15,6 11,8 11,6 15,2 13,1 18,5 13,3 13,4 11,0 10,1 14,9 12,9 11,9 9,3 13,9 13,9 8,3 9,7 10,6 13,1 16,6 14,9 12,1 10,7 8,3 15,4 11,7 9,9 16,9 9,8 14,7 6,2 7,8 11,8 13,8 15,6 13,9 10,2 15,1 10,8 12,9 9,0 8,7 14,6 16,3 16,8 10,3 8,0 10,5 11,5 15,9 12,3 11,5 9,8 11,0 12,9 9,6 9,5 15,3 8,0 9,9 7,0 6,7 17,9 12,2 18,2 14,7 13,2 3,6 8,1 11,8 8,4 8,8 19,3 18,4 13,9 7,5 7,8 11,1 11,9 18,7 12,8 11,9 7,1 9,3 11,9 8,3 7,8 m=20 e n=20 m=20 e n=50 m=20 e n=100 22,7 11,4 7,7 5,8 7,4 13,3 14,8 21,1 17,7 16,7 15,9 13,3 22,6 19,2 18,0 11,1 8,9 11,8 6,7 7,1 17,3 14,9 18,9 16,3 14,7 14,2 12,8 18,8 16,1 16,7 15,1 10,3 7,4 5,3 5,2 17,2 16,7 20,1 18,1 17,3 15,5 15,6 20,7 16,8 15,2 18,3 9,5 11,9 6,6 9,2 16,5 17,7 25,3 19,3 18,3 12,6 12,9 19,3 14,4 16,0 18,0 9,4 11,8 6,4 7,0 23,2 16,0 19,3 19,3 19,1 15,9 13,6 19,5 15,8 15,4 15,8 8,8 10,2 9,1 8,0 17,6 16,4 18,3 17,2 16,2 12,8 15,6 19,2 18,2 15,1 8,1 9,5 11,9 7,0 6,8 17,3 12,6 22,2 18,7 16,9 17,7 15,6 24,2 18,7 18,3 10,7 7,4 11,5 8,3 8,1 18,8 17,5 23,2 19,1 18,4 19,7 14,6 25,1 16,9 16,9 23,1 7,9 11,3 9,7 7,4 24,8 15,6 22,4 18,9 18,2 17,2 16,0 23,2 18,5 16,2 20,9 13,4 15,5 9,9 8,5 13,6 15,5 25,0 19,2 16,0 14,1 11,9 20,6 16,4 15,3

Tabela 3 – Resultados obtidos dos experimentos computacionais.

PAL CDS HP HPk GCS Mínimo 0,70 1,8 3,20 1,90 0,50 1o quartil 7,35 7,53 8,23 5,40 4,95 Mediana 12,70 10,3 12,80 9,15 8,75 3o quartil 11,90 10,51 13,42 10,10 9,34 Média 16,05 13,38 18,28 14,62 13,20 Máximo 24,08 18,4 25,30 19,30 19,10 Desvio Padrão 5,85 3,94 5,74 5,24 5,11

(10)

0 5 10 15 20 25 30 Problema D esvi o ( % ) PAL CDS HP HPk=8 GraCOS

Figura 5 – Representação gráfica dos desvios das soluções para cada instância por heurística.

Figura 6 – Representação gráfica das soluções com base nos dados da Tabela 4. Destacam-se as seguintes observações com base nos resultados obtidos:

1. O GraCOS apresentou o melhor desempenho dentre os métodos avaliados, com desvio médio geral de 9,33%, enquanto HP obteve o pior desempenho, com 13,42%.

2.

Com relação ao desvio mínimo dentre os métodos em questão, o melhor desempenho foi obtido pelo GraCOS, com 0,51% na 2a instância da classe m=5 e n=20. Ainda nesta

instância, HPk obteve desempenho de 1,91%, HP 3,24%, CDS 4,78% e PAL 5,89%. O pior desvio mínimo geral foi de 3,24%, obtido pelo método HP.

3. O menor desvio máximo obtido pelos métodos implementados foi atingido com o CDS, sendo seguidos pelos métodos GraCOS, HPk, PAL e HP, com os valores de 18,42%, 19,05%, 19,34%, 24,75% e 25,25%, respectivamente.

4.

Nos experimentos realizados com GraCOS, o maior tempo de execução computacional foi de 29 segundos obtido na 4a instância da classe m=5 e n=20 devido principalmente ao

(11)

5. A escolha do tipo de preenchimento selecionado no GraCOS tende a modificar os resultados obtidos tanto em termos de tempo computacional quanto de desvio da solução ótima, uma vez que quanto mais aumentamos o número de soluções avaliadas, maior será o tempo de processamento das soluções e maior também será a probabilidade de encontrarmos soluções com menores desvios. Conforme mencionado anteriormente procuramos deixar o tempo computacional equiparado com os outros métodos.

4. Conclusão

Diante dos experimentos computacionais obtidos através da ferramenta GraCOS, pudemos constatar que o mesmo apresentou resultados satisfatórios no estudo dos problemas de programação flowshop permutacional encontrados na literatura. Esta ferramenta apresentou-se poderosa, pois permite o estudo das soluções do problema de maneiras distintas.

O grande diferencial do GraCOS com relação a outros métodos heurísticos existentes é o fato da ferramenta permitir a interação do usuário com o estudo dos problemas. Grande destaque deve ser dado à diversidade de tipos de preenchimento existentes, permitindo estudar o mesmo problema de maneiras distintas e obter melhores resultados, dependendo da forma que o problema for avaliado. Pois, o usuário interage com o método de resolução tanto na diversificação quanto na intensificação.

O GraCOS pode ser aplicado sem perdas de generalidades a outros problemas de otimização combinatória permutacional, permitindo a inserção de mais de um procedimento de avaliação, o que permite uma nova forma de avaliar as soluções do problema. Tendo em vista que a mesma solução poderá apresentar diferentes desvios, quando avaliada por procedimentos de avaliação distintos e implementados na ferramenta. Existe ainda, a possibilidade de avaliarmos as soluções de um problema com base na implementação de diferentes tipos de limites, caso não se tenha conhecimento da solução ótima do problema.

Portanto, pode-se constatar que o GraCOS além de ser útil como uma ferramenta de escopo prático, pode ser de grande importância em termos acadêmicos, pois permite ao usuário estudar os problemas passo a passo, observando de maneira fácil, imediata e interativa, os desvios de todos os resultados obtidos pelas soluções avaliadas através dos métodos utilizados.

Sugestões para trabalhos futuros:

• Utilizar o GraCOS para estudo de outros problemas da classe dos Problemas de Otimização Combinatória Permutacional;

• Avaliar as instâncias do FSP e outros problemas POCP, utilizando diferentes formas de preenchimento e raios de intensificação;

Implementação e avaliação de novas gif’s para o preenchimento da área gráfica do GraCOS.

Agradecimentos

Os autores agradecem o apoio da Fundação Cearense de Apoio ao Desenvolvimento Científico e Tecnológico (FUNCAP), da Universidade Federal do Ceará (UFC) e do Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq – Processo 311682/2006-5).

5. Referências Bibliográficas

Beasley, J.E. OR-Library: Distributing Test Problems by Eletronic Mail. Journal of the Operations Research Society, 41: 1069-1072, 1990.

Campbell, H.G., Dudek, R.A., Smith, M.L. A heuristic algorithm for the n-job, m-machine sequencing problem. Management Science, 16: B630–B637, 1970.

Chen, C.-L.; Vempati, V.S.; Aljaber, N. An application of genetic algorithms for flow shop problems. European Journal of Operational Research, v.80, p.389-396, 1995.

Conway, R.W., Maxwell, W.L., Miller, L.W. Theory of scheduling. Reading, MA: Addison-Wesley; 1967.

Dannenbring, D.G. (1977). An evaluation of flow shop sequencing heuristics. Management Science, v.23, p.1174-1182, 1977.

(12)

Garey, M.R., Johnson, D.S., Sethi, R. The complexity of flowshop and jobshop scheduling. Mathematics of Operations Research, 1(2):117–29, 1976.

Glover, F. e Kochenberger, G. A. Handbook of Metaheuristic, First Edition Norwell: Kluwer Academic Publishers, 2002.

Graham, R.L., Lawler, E.L., Lenstra, J.K., Kan, A.H.G.R. Optimization and approximation in deterministic sequencing and scheduling: a survey. Annals of Discrete Mathematics, 5:287– 326,1979.

Gupta, J.N.D., Stafford Jr, E.F. Flowshop scheduling research after five decades. European Journal of Operational Research 169, 699–711, 2006.

Nawaz, M., Enscore Jr., E.E. and Ham, I. A Heuristic Algorithm for the m-Machine n-Job Flow- Shop Sequencing Problem. OMEGA 11, 91-95, 1983.

Palmer, D.S. Sequencing jobs through a multistage process in the minimum total time - a quick method of obtaining a near optimum. Operational Research Quartetly 16: 101-107, 1965.

Reeves, C. R. Modern Heuristic Techniques for Combinatorial Problems. McGraw-Hill, London, 1995.

Ruiz, R., Maroto, C., Alcaraz, J. Two newrobust genetic algorithms for the flowshop scheduling problem. The International Journal the Management Science (Omega), 34 : 461 – 476, 2006.

Silva, J. L. C. e Soma, N. Y. Uma heurística para Problemas de Otimização Combinatória Permutacional. Anais do XXXIII SBPO-Simpósio Brasileiro de Pesquisa Operacional, Campos do Jordão-SP, Brasil, 2001.

Silva, J. L. C. e Soma, N. Y. Um método Heurístico Aplicado no Problema de Programação Flow Shop Permutacional. Anais do XXXIII SBPO-Simpósio Brasileiro de Pesquisa Operacional, Goiânia-Go, Brasil, 2006.

Taillard, E. Benchmarks for Basic Scheduling Problems. European Journal of Operational Research 64, 278-285, 1993.

Referências

Documentos relacionados

em azul e magnitudes médias do fluxo associado à maré astronômica prevista em vermelho. A Figura 13 mostra a variabilidade temporal da altura de maré e do logarítmo natural das razões

No capítulo 4 são abordados os principais resultados obtidos diante das restrições impostas à coleta de dados, bem como a avaliação dos dados obtidos caracterizando os períodos

4 RESULTADOS E DISCUSSÃO 4.1 Caracterização da cobertura florestal e da biodiversidade vegetal no entorno dos cultivos de tomate na região de Apiaí-SP a Módulos

Ruhal Haque, Ministro de Saúde e Bem-estar Familiar, Bangladesh Leona Aglukkaq, Ministra da Saúde, Canadá (a confirmar) Beth Mugo, Ministra da Saúde Pública e

1. No caso de admissão do cliente, a este e/ou ao seu representante legal são prestadas as informações sobre as regras de funcionamento da ESTRUTURA RESIDENCIAL

De seguida, vamos adaptar a nossa demonstrac¸ ˜ao da f ´ormula de M ¨untz, partindo de outras transformadas aritm ´eticas diferentes da transformada de M ¨obius, para dedu-

Otto: Este filósofo e teólogo toma como base para sua definição de religião a experiência religiosa e introduz na discussão um conceito que muito vai influenciar a compreensão

Os ativos não circulantes classificados como disponível para venda são mensurados pelo menor montante entre o seu custo contábil e o seu valor justo, líquido das despesas com a