Você está na página 1de 7

Disponível online em www.sciencedirect.

com

Procedia - Social and Behavioral Sciences 62 (2012) 817-823

WC-BEM 2012

Um guia para algoritmo genético baseado em programação de máquina paralela


e agendamento de trabalho flexível

Bilgesu Ak uma *, Erdem Koc b


uma
, Samsun-55139, Turquia
b
, Ondokuz Ma Departamento, Samsun-55139, Turquia

Abstrato

O Parallel Machine Scheduling (PMS) e o Flexible Job-shop Scheduling (FJS) são os problemas de otimização combinatória mais difíceis, pois requerem um espaço de
pesquisa em grande escala. Resolver este tipo de problemas de otimização combinatória com métodos clássicos é quase impossível ou leva muito tempo. Algoritmos
Genéticos (AGs) têm mostrado grandes vantagens na solução de problemas combinatórios. Os AGs têm a flexibilidade de configurar diferentes estruturas
cromossômicas no caso de problemas de programação distintos. Este artigo apresenta uma estrutura cromossômica PMS e FJS, crossover e operador de mutação da
literatura com o objetivo de orientar novos pesquisadores sobre o escalonamento com AGs.

© ee / o r r ré p v e ie e W Dr o . f H P você r s o e f y . dentro D UMA r. ra H sl você Eu Seyin Arasli


© 2 2 0 0 1 1 2 2 P P ub você eu b é eu h é e h d e b d y b E y ls E ev ls ie e r v eu ie t r d. eu
rr Svocê
t e de eu
n v. d
ecEu
S teeeior le
W nrécvocê
uma tsp
n io
n od dn n/ou
e sarpibdré il s isto p y o o n f s P ib ro il f Eu . ty

Acesso aberto em Licença CC BY-NC-ND.


Palavras-chave: Programação de máquina paralela, problema de job shop flexível, algoritmo genético, representação cromossômica, operadores de crossover e mutação;

1. Introdução

Em 1985, Davis primeiro aplicou Algoritmos Genéticos (AGs) para problemas de programação. Ao aplicar AGs a problemas de escalonamento, o principal
problema é encontrar uma representação cromossômica adequada e operadores genéticos para criar esquemas viáveis. Os problemas de escalonamento são da
classe NP-difícil, portanto os métodos determinísticos não podem garantir tempos de computação curtos ou soluções ótimas. Este artigo apresenta a programação
paralela de máquina (PMS), a formulação do problema, a representação cromossômica correspondente e os operadores genéticos na segunda seção. Na terceira
seção, programação flexível de job-shop (FJS), formulação do problema, representação cromossômica correspondente e operadores genéticos são apresentados.
Na última seção são apresentados os resultados.

* Bilgesu AK. Tel .: + 90-362-312-1919 ramal 1504


Endereço de e-mail: bilgesu.ak@omu.edu.tr

1877-0428 © 2012 Publicado por Elsevier Ltd. Seleção e / ou revisão por pares sob responsabilidade do Prof. Dr. Hüseyin Arasli
Acesso aberto em Licença CC BY-NC-ND. doi: 10.1016 / j.sbspro.2012.09.138
818 Bilgesu Ak e Erdem Koc / Procedia - Ciências Sociais e Comportamentais 62 (2012) 817-823

2. Programação de máquina paralela

2.1. Formulação do problema de programação de máquina paralela

Na programação paralela da máquina existem m máquinas que podem processar todos os trabalhos em velocidades diferentes ou iguais. A programação em máquinas

paralelas pode ser considerada um processo de duas etapas. Primeiro, quais tarefas devem ser alocadas para quais máquinas; em segundo lugar, a sequência dos trabalhos

alocados para cada máquina.

2.2. Representação Cromossômica

A forma de representação cromossômica tem um efeito vital no desempenho dos AGs. Dependendo da representação cromossômica e de seus operadores
relacionados, é possível gerar soluções viáveis e evitar o uso de mecanismo de reparo. Kocamaz et al. sugeriu uma abordagem para programação paralela de
máquina com algoritmos genéticos desenvolvidos a partir do método de codificação de cromossomos Cheng e Gen. Um exemplo para 3 máquinas e 5 trabalhos é
fornecido na Tabela 1. Cada máquina tem um tempo de conclusão diferente para cada trabalho. Para o escalonamento de tarefas de 3 máquinas e 5, 3 * 5 = 15
bits existe em uma representação cromossômica na Fig. 1. Para a primeira máquina, existem 4 valores nulos, porque existem 5 valores nulos possíveis (número
máximo de tarefas) e um de eles são usados pelo trabalho 5.

Tabela 1. Um exemplo de programação para 3 máquinas - 5 trabalhos

Maquinas Empregos

Máquina 1 Trabalho 5

Maquina 2 Trabalho 4 Trabalho 1

Maquina 3 Trabalho 2 Trabalho 3

2.3. Crossover

Entre os tipos de cruzamento para codificação de permutação, o operador de cruzamento baseado em posição (PBX) é usado por Kocamaz et al. O PBX precisa de uma
string pai selecionada aleatoriamente para decidir quais genes devem ser selecionados para a prole. UMA

independentemente marcado com probabilidade de 0,5. Depois disso para o enchimento

esquerda da direita em ordem, sem qualquer repetição. O mesmo procedimento é aplicado para a segunda prole, mas o procedimento começa com os pais dois,
enquanto dominam . Na Figura 2, há um exemplo de PBX.

2.4. Mutação

Para o operador de mutação, o método de troca é usado. Neste método, dois genes aleatórios são selecionados e trocam suas posições. Se dois valores nulos
selecionados para troca, outra seleção deve ser feita até que um trabalho seja encontrado. Os esquemas da prole 1 e da prole 2 são fornecidos na Tabela 2.

J 5 nulo nulo nulo nulo J 4 J 1 nulo nulo nulo J 2 J 3 nulo nulo nulo

Figura 1. Representação do cromossomo


Bilgesu Ak e Erdem Koc / Procedia - Ciências Sociais e Comportamentais 62 (2012) 817-823 819

pai 1 J5 101 102 103 104 J4 J1 105 106 107 J2 J3 108 109 110

pai 2 J4 J5 J2 101 102 J3 103 104 105 106 J1 107 108 109 110

Pai
1 1 0 0 1 0 0 1 0 1 0 0 1 1 1
corda

prole 1 J 5 101 J4 J2 104 102 J3 105 103 107 106 J1 108 109 110

prole 2 J 5 102 J2 101 104 J3 103 J4 105 106 J1 107 108 109 110

Figura 2. Uma iteração para dois pais e uma string pai aleatória gera dois filhos usando PBX

Tabela 2. Cronogramas de produção para os filhos gerados 1 e 2 dos pais 1 e 2

Sequência de máquinas-trabalho
Descendência
Maquinas Trabalho sequen ce

Máquina 1 Trabalho 5 Trabalho 4 Trabalho 2

Filha 1 Maquina 2 Trabalho 3

Maquina 3 Trabalho 1

Máquina 1 Trabalho 5 Job2

Filhote 2 Maquina 2 Trabalho 3 Trabalho 4

Maquina 3 Trabalho 1

3. Programação flexível de job-shop

3.1. Formulação do problema de programação flexível da máquina da oficina

- Difícil

tempo polinomial ou métodos de pesquisa não direcionados normalmente não são viáveis para problemas de grande escala. Entre os vários métodos de pesquisa
usados para FJSPs, o GA foi reconhecido como uma estratégia geral de pesquisa e método de otimização. O importante é como criar cronogramas viáveis ao aplicar o
FJSP ao GA. Os pesquisadores desenvolveram várias metodologias para criar cronogramas viáveis. Alguns deles estabelecem penalidades em soluções inviáveis,
modificam os operadores de criação. Um problema clássico de programação de job shop tem um conjunto de n trabalhos processados por um conjunto de m máquinas
com o objetivo de minimizar ou maximizar um critério. Cada trabalho é processado em máquinas em uma determinada ordem com um determinado tempo de
processamento, e cada máquina pode processar apenas um tipo de operação. No FJSP, existem conjuntos de máquinas com várias máquinas idênticas em paralelo.
Cada trabalho tem sua própria rota como em JSP, mas trabalho j é processado em qualquer máquina que esteja disponível no conjunto dessa máquina.

O FJSP pode ser formulado geralmente da seguinte forma:

J = {J Eu dentro, o conjunto de n trabalhos a serem agendados.

O eu j é a operação j do J Eu.
M = {M k m, o conjunto de m máquinas.
p i, j, k, o tempo de processamento de O eu j , na máquina M k.

Premissas feitas no FJSP da seguinte forma:


820 Bilgesu Ak e Erdem Koc / Procedia - Ciências Sociais e Comportamentais 62 (2012) 817-823

Todas as máquinas estão disponíveis no tempo 0;

Todos os trabalhos estão prontos para serem processados no momento 0;

Cada máquina pode processar apenas uma operação por vez;


Cada operação pode ser processada sem interrupção em um conjunto de máquinas disponíveis; A recirculação ocorre quando
um trabalho visita uma máquina mais de uma vez;
A seqüência de operações para cada trabalho é predeterminada e não pode ser alterada.

Uma representação básica da programação flexível do job shop é a seguinte na Tabela 3.

Tabela 3. Um exemplo de programação de job shop flexível

Op erações-M achines
Empregos
Operações M1 M2 M3

O 1,1 3 3 xxx

J1 O 1,2 9 5 5

O 1,3 xxx 7 5

O 2,1 3 xxx 6
J2
O 2,2 4 8 xxx

A Tabela 3 diz que a primeira operação ( O 1,1) do primeiro emprego ( J 1) pode ser processado em ambos M 1 ou M 2, xxxx denota isso O 1,1

não pode ser processado em M 3 - Da mesma forma, a segunda operação ( O 1,2) do primeiro emprego ( J 1) pode ser processado em M 1, M 2 ou M 3

e assim por diante. Os valores nas células denotam os tempos de processamento. No FJSP, duas decisões devem ser consideradas. Primeiro é

atribuição de uma operação a uma máquina apropriada, a segunda é o sequenciamento das operações em cada máquina. Além disso, para sistemas de manufatura
complexos, um trabalho pode visitar uma máquina mais de uma vez chamada recirculação. Esses recursos do FJSP aumentam significativamente a complexidade de
encontrar até mesmo soluções aproximadamente ideais.

3.2. Representação Cromossômica

Ho et al. projetar uma representação cromossômica gera soluções viáveis que permanecem viáveis sob crossover e mutação. Sua representação
cromossômica (chamada OOMS) tem dois componentes: ordem de operação e seleção de máquina, como visto na Figura 3.

Componente de ordem de operação. Eles adotam a representação da ordem de operação de Cheng et al., Bierwirth e Varela et al.
Considere o problema na Tabela 3. J 1 tem três operações e J 2 tem duas operações. 1
possível cronograma poderia ser ( O 2,1, O 1,1, O 2,2, O 1,2, O 1,3). No entanto, quando os operadores GA são aplicados ao cronograma, podem existir cronogramas
inviáveis. Por exemplo, ( O 2,2, O 1,1, O 2,1, O 1,2, O 1,3) é uma programação inviável porque O 2,2 posso
não ser processado antes O 2,1. Para evitar a criação de soluções inviáveis, um indivíduo é obtido a partir deste cronograma, substituindo cada operação pelo
índice de cargos correspondente, como visto na Fig 4.

cromossomo = seleção de máquina de ordem de operação

Figura 3. Estrutura do cromossomo OOMS proposto


Bilgesu Ak e Erdem Koc / Procedia - Ciências Sociais e Comportamentais 62 (2012) 817-823 821

O 2,2 O 1,1 O 2,1 O 1,2 O 1,3

J2 J1 J2 J1 J1

2 1 2 1 1

Figura 4. OOMS: componente de ordem de operação

Componente de seleção de máquina. Uma matriz de valores binários é usada para apresentar a seleção da máquina. Para o problema da Tabela 3., uma possível
codificação da parte de seleção da máquina é mostrada na Fig 5.
Da Tabela 3, entende-se que O 1,1 pode ser processado em M 1 ou M 2, similarmente O 1,2 pode ser processado em M 1,
M 2 ou M 3 - Apenas uma máquina pode ser selecionada por operação. Os resultados práticos desta representação podem ser encontrados em

. Seu desempenho empírico em comparação com outras representações também demonstrou ser
muito bom.

3.3. Crossover

Como a representação cromossômica OOMS tem duas partes, o crossover é aplicado em cada parte do cromossomo.

Peça de ordem de operação: crossover de dois pontos é aplicado. Considere dois pais: (2 1 2 1 1) e (1 1 1 2 2). UMA
substring é selecionado aleatoriamente do pai 1: (2 1 2 1 1). As operações na string selecionada são O 1,1, O 2,2 e O 1,2
respectivamente. As posições correspondentes dos caracteres nesta string são então encontradas e deletadas no segundo
pai: ( 1 1 1 2 2 ) A substring é inserida no segundo pai na mesma posição do primeiro pai para criar um novo filho: (1 1 2 1 2).

Parte de seleção de máquina: dois números aleatórios (para os dois loci) são r1r2 n-1), (n é o comprimento
da parte de seleção da máquina). Duas partes parciais dos pais entre os dois loci são trocadas. Considere dois
peças de seleção de máquina de dois pais na Figura 6. Sejam dois números aleatórios r 1 = 2 e r 2 = 3, então essas duas partes de dois pais entre a posição 2 e
a posição 3 são trocadas como pode ser visto na Figura 7.

O 1,1 O 1,2 O 1,3 O 2,1 O 2,2


M1 M2 M1 M2 M3 M2 M3 M1 M3 M1 M2
0 1 0 0 1 1 0 0 1 0 1

Figura 5. OOMS: componente de seleção de máquina

Pai 1 0 1 0 0 1 1 0 0 1 0 1

Pai2 1 0 0 1 0 1 0 0 1 1 0

Figura 6. Um exemplo de duas peças de seleção de máquina de dois pais


822 Bilgesu Ak e Erdem Koc / Procedia - Ciências Sociais e Comportamentais 62 (2012) 817-823

Criança 1 0 1 0 1 0 1 0 0 1 0 1

Criança 2 1 0 0 0 1 1 0 0 1 1 0

Figura 7. Duas peças de seleção de máquina de dois filhos

3.4. Mutação

A mutação também é aplicada em duas partes do cromossomo.


Ordem de operação: dois números aleatórios r 1 e r 2 r1 r2 - 1), m é o comprimento de
a parte da ordem de operação. Os valores em substring entre estes r 1 e r 2 estão invertidos. Considere o
cromossomo (2 1 2 1 1), r 1 = 2 e r 2 = 3. A substring entre as posições 2 e 3, (2 1 2 1 1), são invertidos. Após a mutação, a parte da ordem de operação é
(2 2 1 1 1).
Seleção da máquina: Primeiro, a memória operacional é definida. Em breve, a memória operacional escolhe a máquina com o menor tempo de processamento. As
outras máquinas adequadas são atualizadas após q º passo, definindo seu valor de adequação para
1. Por exemplo, considere a memória operacional para a Tabela 3. O 1,1 pode ser processado em M 1 ou M 2, O 1,2 pode ser
processado em M 2 ou M 3, O 1,3 pode ser processado em M 3 e assim por diante. Se houver mais de uma máquina adequada para
operação de processo O eu j , o operador de mutação selecionaria uma máquina diferente da máquina atual, conforme mostrado na Figura 8.

4. Resultados

Resultados obtidos por Kocamaz et al. e Ho et al. mostram que algoritmos desenvolvidos são mais eficientes do que métodos determinísticos. Kocamaz
et al. mostraram que o algoritmo e o método de codificação funcionam com sucesso para alcançar a solução. O método de codificação desenvolvido
proposto pode ser facilmente aplicado a outros problemas de programação de máquinas paralelas. Ho et al. mostraram que seu algoritmo é mais eficiente
do que as outras abordagens para resolver o FJS, em comparação com as abordagens de GA de Kacem et al., Mesghouni et al. e a abordagem Tabu
Search da Brandimarte. Este artigo é organizado de forma a mostrar os métodos de representação de AGs baseados em PMS e FJS, os quais são muito
complexos para programar e calcular com métodos determinísticos. Os algoritmos apresentados têm como objetivo orientar alunos e novos pesquisadores
interessados em AGs e agendamento.

O 1,1 O 1,2 O 1,3 O 2,1 O 2, 2


M1 M2 M1 M2 M3 M2 M3 M1 M3 M1 M2
memória operacional 1 1 0 1 1 0 1 1 0 1 0
Antes da mutação 1 0 0 1 0 0 1 1 0 1 0
depois da mutação 0
1 0 0 1 0 1 1 0 1 0

Figura 8. Um exemplo de influência da memória operacional no operador de mutação

Referências

Sumathi, S., Hamsapriya, T., & Surekha, P. (2008). Inteligência Evolucionária, Springer, Berlim. Pinedo, LM (2008). Teoria,
Algoritmos e Sistemas de Escalonamento, Springer, Nova York.
Kocamaz, M., Cicekli, UG, & Soyuer, H. (2009). Um Método de Codificação Desenvolvido para Programação de Máquina Paralela com Genética de Permutação
Algoritmo (pp.1-8). Conferência Europeia e Mediterrânea sobre Sistemas de Informação, Izmir.
Bilgesu Ak e Erdem Koc / Procedia - Ciências Sociais e Comportamentais 62 (2012) 817-823 823

Cheng, R., & Gen, M. (1997). Problemas de programação de máquina paralela usando algoritmos meméticos, Computadores e Engenharia Industrial ( pp.
761-764).
Ho, NB, Tay, JC e Lai, EM-K. (2007). Uma arquitetura eficaz para aprender e desenvolver cronogramas flexíveis de job shop. europeu
Journal of Operational Research, Elsevier (pp. 316-333). Pinedo, ML, & Chao, X. (1999). Programação de operações com aplicativos em manufatura e serviços, Mc
Graw-Hill, Nova York. Cheng, R., Gen, M., & Tsujimura, Y., (1996). Uma pesquisa tutorial de problemas de programação de job-shop usando algoritmos genéticos, Parte I:

Representação, Computadores e Engenharia Industrial, Elsevier (pp. 983-997).


Bierwirth, cap. (1995). Uma abordagem de permutação generalizada para programação de job shop com algoritmos genéticos, OR Spektrum, Springer (pp. 87-92). Varela, R., Vela, CR, Puente J., &
A. (2003). Uma estratégia evolutiva baseada em conhecimento para problemas de programação com gargalos,

European Journal of Operational Research, Elsevier (pp. 57-71).


Ho, NB e Tay, JC (2004). GENACE: Um algoritmo cultural eficiente para resolver o problema flexível do job shop. Proceedings of the Genetic and
Evoutionary Computation CEC 2004 (pp. 1759-1766).
Tay, JC e Wibowo, D. (2004). Uma representação cromossômica eficaz para a evolução de cronogramas flexíveis de job shop., Proceedings of the Genetic
e Evoutionary Computation CEC (pp. 210-221).
Kacem, I., Hammadi, S. & Borne, P. (2002). Abordagem por localização e otimização evolutiva multiobjetivo para um job-shop flexível
Problemas de programação, IEEE Transactions on Systems, Man and Cybernetics, ( pp. 1-13).
Kacem, I., Hammadi, S. & Borne, P. (2002). Abordagem de otimização de Pareto para problemas de programação flexível de job-shop: hibridização de
Algoritmos Evolucionários e Lógica Fuzzy, (pp. 245-276).
Mesghouni, K., Hammadi, S., & Borne, P. (1997). Programas de evolução para programação de job-shop. In: Proceedings of the IEEE International
Conferência sobre cibernética e simulação computacional (pp. 720-725). Brandimarte, P.
(1993). Job Shop lexível por busca tabu, Anais de Pesquisa de Operação ( pp.158-183).

Você também pode gostar