You are on page 1of 46

1

Clusterizao em Minerao de Dados


Luiz Satoru Ochi, Carlos Rodrigo Dias, Stnio S. Furtado Soares
Programa de Ps Graduao em Computao
Instituto de Computao Universidade Federal Fluminense (IC UFF)
Niteri, Rio de Janeiro, Brasil
satoru@ic.uff.br

Resumo. O objetivo deste trabalho, apresentar uma contribuio na soluo dos
Problemas de Clusterizao tratados na rea de Minerao de Dados. Para tanto,
apresentamos uma breve descrio do problema e posteriormente apresentamos algumas
aplicaes e tcnicas eficientes para a sua soluo aproximada. Em particular
destacamos a classe de problemas de clusterizao conhecida como Problema de
Clusterizao Automtica e propostas de metodologias baseadas em conceitos de
metaheursticas evolutivas.

1. Introduo
Um Problema de Clusterizao (PC) consiste em dado uma base de dados X,
agrupar (clusterizar) os objetos (elementos) de X de modo que objetos mais similares
fiquem no mesmo cluster e objetos menos similares sejam alocados para clusters
distintos.
Existe basicamente duas classes de Problemas de Clusterizao; o caso mais
estudado onde o nmero de clusters j previamente definido (tambm conhecido
como o Problema de K - Clusterizao ou simplesmente Problema de Clusterizao
(PC)) o caso onde este nmero K no conhecido previamente, neste caso o Problema
denotado por Problema de Clusterizao Automtica (PCA) [8, 13].
Os Problemas de clusterizao j so bastante estudados na literatura,
principalmente na estatstica e matemtica. Na rea de computao, este tema ressurgiu
com a popularizao do conceito de minerao de dados (data mining).
O objetivo de problemas de clusterizao em minerao de dados (MD), o
mesmo que em outras reas, o que diferencia este problema em MD, que nesta rea, a
base de dados sempre de grande porte e cada objeto normalmente contm um nmero
elevado de atributos ou caractersticas [8].
Neste mini curso selecionamos algumas das aplicaes de PCA de nosso
interesse que inclui clusterizao de clulas de um sistema de manufatura, problemas de
escalonamento de tarefas em mltiplos processadores, problemas de roteamento e
scheduling de veculos, aplicaes em computao mdica e biologia computacional.
Para algumas aplicaes selecionadas, propomos novos algoritmos heursticos
ou metaheursticos para a sua soluo aproximada. Este trabalho apresenta na seo 2,
uma descrio do problema de clusterizao e algumas refrencias deste tema
encontradas na literatura, em 3 apresentamos algumas aplicaes deste problema e que
2
esto sendo pesquisadas pelo nosso grupo de trabalho (LabIC), na seo 4, descrevemos
resumidamente os algoritmos evolutivos e na seo 5 selecionamos algumas aplicaes
listadas anteriormente e para estas, so apresentadas novas propostas de mtodos
heursticos. Finalmente a seo 6 apresenta as concluses e a seguir so listadas as
referencias bibliogrficas.



2. O Problema de Clusterizao

De uma forma geral, obter a soluo para um problema de clusterizao
corresponde ao processo de agrupar os elementos (objetos) de uma base de dados
(conjunto) de tal forma que os grupos formados, ou clusters, representem uma
configurao em que cada elemento possua uma maior similaridade com qualquer
elemento do mesmo cluster do que com elementos de outros clusters. As tcnicas de
clusterizao vm sendo tratadas com freqncia na literatura para a soluo de vrios
problemas de aplicaes prticas em diversas reas do conhecimento. De uma forma
mais formal, podemos definir Problemas de Clusterizao da seguinte forma: Dado um
conjunto com n elementos X = {X
1
, X
2
, ..., X
n
}, o problema de clusterizao consiste na
obteno de um conjunto de k clusters, C = {C
1
, C
2
, ..., C
k
}, tal que os elementos
contidos em um cluster C
i
possuam uma maior similaridade entre si do que com os
elementos de qualquer um dos demais clusters do conjunto C. O conjunto C
considerado uma clusterizao com k clusters caso as seguintes condies sejam
satisfeitas:

k
i
i
X C
1 =
= (2.1)
C
i
, para 1 i k (2.2)
C
i
C
j
= , para 1 i,j k e i j (2.3)

O valor de k pode ser conhecido ou no. Caso o valor de k seja fornecido como
parmetro para a soluo, o problema referenciado na literatura como problema de k-
clusterizao [15]. Caso contrrio, isto , caso o k seja desconhecido, o problema
referenciado como problema de clusterizao automtica e a obteno do valor de k
faz parte do processo de soluo do problema, como em [13].
Em uma k-clusterizao, o nmero total de diferentes formas de agrupamento de n
elementos de um conjunto em k clusters, equivale funo N(n, k) apresentada em
(2.4).
( ) ( )

|
|
.
|

\
|
=
k
i
n i
i k
i
k
k
k n N
0
) 1 (
!
1
, (2.4)

3
Com o intuito de ilustrar o crescimento exponencial do nmero de solues possveis
para um problema de k-clusterizao, considerando a equao (2.4), para combinar 10
elementos em 2 clusters, 100 elementos em 2 clusters, 100 elementos em 5 clusters e
1000 elementos em 2 clusters, temos respectivamente os seguintes nmeros de solues
possveis: N(10, 2) = 511, N(100, 2) = 6,33825 10
29
, N(100, 5) = 6,57384 10
67
e
N(1000, 2) = 5.3575 10
300
.
Para o problema de clusterizao automtica o nmero total de combinaes
sofre uns incrementos significativos, sendo definido de acordo com a equao (2.5).
( ) ( )

= =

|
|
.
|

\
|
=
n
k
k
i
n i
i k
i
k
k
n N
1 0
) 1 (
!
1
(2.5)

Dessa forma, para um conjunto com 10 elementos, a clusterizao automtica
tem que considerar 115.975 diferentes maneiras de combinar os elementos em um
nmero de clusters que pode variar de 1 a 10.
Outro aspecto a ser considerado em relao ao problema de clusterizao como
medir o quanto um elemento similar a outro e, assim, identificar se ambos devem estar
contidos em um mesmo cluster ou no. Para isto deve ser utilizada uma medida de
similaridade, que especfica para cada problema de clusterizao a ser tratado.
Um importante critrio utilizado para identificar a similaridade entre dois
elementos distncia entre eles, que trabalha com as diferenas entre os valores de
cada atributo dos elementos. Neste caso, quanto menor for distncia entre um par de
elementos maior a similaridade entre eles. Como medidas de distncia muito
utilizadas podemos citar as seguintes:
distncia euclidiana: considera a distncia d entre dois elementos X
i
e X
j
no
espao p-dimensional:

2
1
1
2
) ( ) , (
(

=

=
p
l
jl il j i
x x X X d (2.6)

distncia city-block: corresponde soma das diferenas entre todos os p
atributos de dois elementos X
i
e X
j
, no sendo indicada para os casos em que existe uma
correlao entre tais atributos:

=
=
p
l
jl il j i
x x X X d
1
) , ( (2.7)

Existem problemas de clusterizao em que a distncia no pode ser utilizada,
ou no conveniente que seja utilizada, como medida de similaridade, tendo em vista
que os valores dos atributos no so escalares. Como exemplo, ao tratar um problema de
4
clusterizao que envolve atributos como sexo e endereo, so necessrias outras
medidas que demonstrem o grau de similaridade entre as instncias da base de dados.
Outro exemplo, em que a medida de distncia no se aplica diz respeito a alguns
problemas de clusterizao de vrtices em estruturas de grafos em que no so
considerados os pesos das arestas. Nestes problemas, tambm referenciados como
problemas de particionamento de grafos no ponderados, so necessrias, portanto,
medidas que considerem apenas as conexes entre os seus vrtices (veja [10, 11, 12,
13]).
Mtodos Utilizados para Clusterizao
No processo de clusterizao, a busca pela melhor soluo no espao de
solues viveis um problema NP-Difcil. A partir das equaes (2.4) e (2.5),
conforme exposto anteriormente, verifica-se que a avaliao exaustiva de todas as
configuraes de clusterizaes possveis computacionalmente invivel, restringindo
com isso o uso de mtodos exatos para a sua soluo.
Dessa forma, mtodos heursticos ou aproximados tm sido propostos com
freqncia, os quais fornecem solues sub-timas com significativa reduo da
complexidade na soluo do problema. Entretanto, devido grande heterogeneidade das
aplicaes de problemas de clusterizao, as heursticas so normalmente desenvolvidas
para determinadas classes de problemas, ou seja, no existe uma heurstica que seja
genrica a tal ponto que possa obter bons resultados em todas as aplicaes de
clusterizao.
As heursticas existentes para a soluo de problemas de clusterizao podem ser
classificadas, de forma geral, em mtodos hierrquicos e mtodos de particionamento
[15].
Nos algoritmos tradicionais para a clusterizao hierrquica os clusters vo
sendo formados gradativamente atravs de aglomeraes ou divises de
elementos/clusters, gerando uma hierarquia de clusters, normalmente representada
atravs de uma estrutura em rvore, conforme exemplificado na Figura 2.1. Nesta classe
de algoritmos, cada cluster com tamanho maior que 1 pode ser considerado como sendo
composto por clusters menores.
Nos algoritmos de aglomerao, que utilizam uma abordagem bottom-up, cada
elemento do conjunto , inicialmente, associado a um cluster distinto, e novos clusters
vo sendo formados pela unio dos clusters existentes. Esta unio ocorre de acordo com
alguma medida que fornea a informao sobre quais deles esto mais prximos uns dos
outros. Nos algoritmos de diviso, com uma abordagem top-down, inicialmente tem-se
um nico cluster contendo todos os elementos do conjunto e, a cada passo, so
efetuadas divises, formando novos clusters de tamanhos menores, conforme critrios
pr-estabelecidos.



5









Figura 2.1 Exemplo de rvore de clusters na clusterizao hierrquica
Berkhin [8] aponta como vantagens dos algoritmos de clusterizao hierrquica
a facilidade em lidar com qualquer medida de similaridade utilizada e a sua conseqente
aplicabilidade a qualquer tipo de atributo (numrico ou categrico). As desvantagens
relacionam-se impreciso do critrio de parada e ao fato de que a maioria dos
algoritmos desta classe no re-visitarem os clusters formados ao longo de suas
execues. Este ltimo aspecto est relacionado ao fato dos algoritmos para
clusterizao hierrquica serem apenas algoritmos construtivos, no permitindo o
refinamento de solues obtidas durante a sua execuo. Com relao ao critrio de
parada nos algoritmos de clusterizao hierrquica, a formao dos clusters pode ser
interrompida quando o nmero de clusters desejado for obtido, no caso de uma k-
clusterizao, ou caso alguma outra condio de parada ocorra. A falta de refinamento
no processo de agrupamento ou desagregao normalmente fornece um carter guloso
ao mtodo hierrquico tradicional.
Nos algoritmos de clusterizao que utilizam algum mtodo de particionamento,
o conjunto de elementos dividido em k subconjuntos, podendo k ser conhecido ou no,
e cada configurao obtida avaliada atravs de uma funo-objetivo. Caso a avaliao
da clusterizao indique que a configurao no atende ao problema em questo, nova
configurao obtida atravs da migrao de elementos entre os clusters, e o processo
continua de forma iterativa at que algum critrio de parada seja alcanado. Neste
esquema de migrao dos elementos entre os clusters, referenciado na literatura como
otimizao iterativa [8], os clusters podem ser melhorados gradativamente, o que no
ocorre nos mtodos hierrquicos.
Os mtodos de particionamento para k-clusterizao incluem ainda as tcnicas k-
medoids e k-means, de acordo com o tipo de representatividade utilizada para os
clusters: no k-medoids, o elemento que melhor representa o cluster, definido de
acordo com seus atributos sem que haja muita influncia dos valores prximos aos
limites do cluster; no k-means o elemento representativo de um cluster o seu
centride, que possui um valor mdio para os atributos considerados, relativos a todos
os elementos do cluster. A utilizao do centride como elemento representativo de um
cluster conveniente apenas para atributos numricos e possui um significado
X
1
, X
2
, X
3
, X
4
, X
5

X
2
, X
5
X
1
, X
3
, X
4

X
1
, X
4

X
1
X
4
X
3
X
2
X
5

A
g
l
o
m
e
r
a

o

D
i
v
i
s

o

6
geomtrico e estatstico claro podendo, entretanto, receber muita influncia de um nico
elemento que se encontre prximo fronteira do cluster.
Alm dos mtodos hierrquicos e de particionamento, possvel observar um
crescimento significativo de propostas utilizando metaheursticas aplicadas a problemas
de clusterizao, como os algoritmos evolutivos (AEs), com destaque para os
algoritmos genticos (AGs) [2, 5, 7, 9, 10, 11, 12, 13, 18, 19, 25, 26, 38, 39, 40].
3. Algumas aplicaes do Problema de Clusterizao
O problema de clusterizao possui aplicaes nas mais variadas reas de
pesquisa incluindo por exemplo: computao visual e grfica, computao mdica,
biologia computacional, redes de comunicaes, engenharia de transportes, redes de
computadores, sistemas de manufatura, entre outras. Nesta seo apresentamos algumas
destas aplicaes que atualmente esto sendo pesquisadas pelo grupo de Inteligncia
Computacional do IC/UFF denominado: Laboratrio de Inteligncia Computacional
LabIC).
3.1. Clusterizao de Grafos
O problema de clusterizao aplicado a grafos, tambm referenciado na
literatura como problema de particionamento de grafos, consiste em, dado um grafo G
= (V, E), com V sendo o conjunto de vrtices e E o conjunto de arestas, particionar o
conjunto de vrtices em subconjuntos disjuntos, ou clusters, otimizando alguma funo-
objetivo. No problema de particionamento balanceado de grafo a diferena de
cardinalidade entre o maior cluster e o menor cluster deve ser de, no mximo, uma
unidade. Quando o nmero de clusters igual a dois, o problema referenciado na
literatura como problema de bisseo de grafos ou problema de bi-particionamento de
grafos [4]. Em [5] o problema de particionamento de grafos considerado como
consistindo do particionamento do conjunto de vrtices do grafo em k clusters disjuntos
e com a mesma cardinalidade, tal que o total de arestas da qual participam pares de
vrtices de diferentes clusters seja minimizado. A Figura 3.1 apresenta um exemplo de
bi-particionamento balanceado de um grafo constitudo de 14 vrtices e 27 arestas.






Figura 3.1 Exemplo de bi-particionamento balanceado de grafos
O problema de particionamento de grafos NP-Difcil, mesmo com o valor de k
igual a dois ou quando algum desbalanceamento permitido. Segundo Battiti et al. [5],
para grafos com mais de 100 vrtices, as nicas opes viveis so os algoritmos
heursticos.
7
O problema de clusterizao de grafos tratado neste trabalho com mais destaque
corresponde a clusterizao automtica considerando grafos orientados e sem valores de
peso nos arcos (grafos no ponderados). Neste problema, o objetivo da clusterizao
agrupar os vrtices do grafo em clusters de tal forma que seja maximizado o nmero
total dos arcos internos a cada cluster, ao mesmo tempo em que seja minimizado o
nmero total de arcos entre pares de vrtices que estejam em diferentes clusters [13].
Nesse contexto, a Figura 3.2 exemplifica duas clusterizaes possveis para um grafo
com 8 vrtices e 12 arcos.













Figura 3.2 Exemplos de clusterizao de um grafo orientado com 8 vrtices [12]
Em cada uma das duas clusterizaes indicadas na Figura 3.2 cada cluster
delimitado por uma linha tracejada. De forma intuitiva podemos considerar a
clusterizao A mais adequada do que a clusterizao B, tendo em vista que nesta existe
um cluster sem qualquer arco interno e existe tambm um nmero maior de arcos entre
diferentes clusters do em A. Para maiores informaes sobre este problema, consulte
[12]
3.2. Clusterizao em Sistemas de Manufatura
O problema de formao de clulas de manufatura (PFCM) na sua verso original
representado como uma matriz parte x mquina onde as linhas representam as partes
e as colunas s mquinas, ou vice-versa. Considerando aqui uma matriz A = (parte x
mquina), cada clula a
ij
da matriz igual a 1 se parte i utiliza a mquina j, e 0 caso
contrrio. A formao dos grupos (clusters) clula / famlia feita atravs da
permutao das linhas e colunas desta matriz.
1
4
3
6
2
5
7
8
1
4
3
7
2
5
6
8
Clusterizao B
1
4
3
7
2
5
6
8
Clusterizao A
8
Por exemplo, considere um fluxo de produo composto por 6 partes, 4 mquinas e 14
atividades (posies da matriz com valor 1). As tabelas 3.3 e 3.4 representam
respectivamente a matriz de entrada do problema e uma possvel matriz soluo com
formao de duas clulas/famlias.
Tabela 3.3: Matriz de entrada do um PFCM [40]






Tabela 3.4: exemplo de uma clusterizao da matriz da Tabela 3.3 [40]
Na matriz da tabela 3.4 existem duas famlias: [P1,P3,P6] e [P2,P4,P5].
Associadas a estas famlias temos 2 clulas: [M2,M3] e [M1,M4]. Para maiores
informaes sobre este problema, consulte [40]
3.3 Problemas de Escalonamento de Tarefas em Mltiplos Processadores
O problema de escalonamento esttico ou dinmico de um conjunto de tarefas de
uma aplicao paralela em um conjunto de processadores (homogneos e totalmente
conectados), pode tambm ser visto como um problema de clusterizao. Neste caso, o
conjunto de tarefas alocadas a um processador forma um cluster. No modelo aqui
abordado, cada um desses processadores possui sua prpria memria local e a
comunicao entre eles feita exclusivamente atravs de troca de mensagens, o que
caracteriza um sistema distribudo. Por tarefas no-preemptivas, podemos entender que
a execuo de cada tarefa no pode ser interrompida por nenhum outro evento, ou seja,
uma vez iniciada a execuo de uma tarefa, o processador s ser liberado ao terminar
tal execuo.
Dada uma aplicao paralela a ser executada num sistema com p processadores, o
objetivo do problema aqui apresentado encontrar um escalonamento que minimize o
tempo total de execuo (makespan) da aplicao. Este escalonamento feito de
maneira que todas as relaes de precedncia entre as tarefas sejam respeitadas. Alm
disso, uma tarefa v
i
s pode ser escalonada se todos os seus predecessores imediatos j
M1 M2 M3 M4
P1 1 1
P2 1 1 1
P3 1 1
P4 1 1
P5 1 1
P6 1 1 1
M2 M3 M1 M4
P1 1 1
P3 1 1
P6 1 1 1
P2 1 1 1
P4 1 1
P5 1 1
9
tiverem sido e todos os dados necessrios para a sua execuo j estiverem disponveis
no processador p
j
onde v
i
ser escalonada. Para a soluo deste problema, as
caractersticas da aplicao e da arquitetura utilizada devem ser bem definidas. Tais
caractersticas so especificadas pelo modelo de escalonamento que composto pelo
modelo de aplicao e pelo modelo arquitetural, descritos a seguir.
3.3.1 Modelo de Aplicao
Uma aplicao paralela pode ser representada por um Grafo Acclico
Direcionado (GAD) denotado por G = (V,E,,), onde V o conjunto de n ns do grafo
e E o conjunto de arcos. Cada n v V representa uma tarefa com tempo de execuo
(v) e cada arco (u,v) E representa a restrio de precedncia entre as tarefas u e v, ou
seja, a tarefa u deve completar sua execuo antes que a tarefa v comece a sua. Um peso
(u,v) pode estar associado ao arco (u,v), representando a quantidade de dados a serem
enviados de u para v. Uma tarefa consiste numa unidade de computao indivisvel que
pode ser uma instruo, uma sub-rotina ou um programa inteiro. O conjunto das tarefas
predecessores imediatas tarefa v V denotado por pred (v) = {u | (u,v) E}
enquanto que o conjunto de seus sucessores imediatos dado por succ (v) = {z | (v,z)
E}.
3.3..2 Modelo Arquitetural
O modelo arquitetural define as caractersticas da arquitetura paralela a ser
considerada. Neste trabalho, considera-se um computador paralelo com memria
distribuda, sendo cada processador associado sua prpria memria local. Os
processadores se comunicam exclusivamente atravs de troca de mensagens e esto
interconectados conforme alguma topologia. Alm disso, considera-se que os
processadores esto totalmente conectados entre si e so homogneos, isto , possuem
as mesmas caractersticas. Atualmente, existe uma grande variedade de mquinas
paralelas em uso. Tais mquinas possuem caractersticas particulares que as diferem
uma das outras, como por exemplo, o tipo de acesso memria ou o tipo de
interconexo entre os processadores. O ideal ao se criar uma aplicao paralela que o
programador no se preocupe com detalhes da mquina e, para isso, importante a
criao de um modelo de computao paralela suficientemente abstrato para que
detalhes da mquina sejam ignorados, mas que seja, ao mesmo tempo, verstil para
permitir que a estrutura computacional do programa possa ser mapeada eficientemente
para uma grande variedade de plataformas paralelas. O primeiro modelo de computao
paralela definido foi o PRAM . Neste modelo assume-se que o nmero de processadores
ilimitado e que eles trabalham de forma sncrona. Alm disso, a comunicao entre os
processadores pode ser considerada nula j que eles se comunicam atravs de uma
memria compartilhada. Outra caracterstica deste modelo o fato de permitir que
vrios processadores acessem simultaneamente a memria, sem que esta se torne um
gargalo, nem quando o nmero de processadores que a compartilham for muito elevado.
Devido a essas caractersticas, o modelo PRAM no considerado realstico e, portanto,
algoritmos desenvolvidos para este modelo possuem na maioria dos casos desempenhos
ruins quando so assumidas caractersticas que representam mquinas paralelas reais.
Com o desenvolvimento das mquinas paralelas distribudas, fez-se necessrio
criao de modelos de computao paralela que representassem estas mquinas de
10
forma mais realstica e que definissem as caractersticas de comunicao com mais
preciso. Neste cenrio, surgiu o modelo de latncia, onde o nico parmetro de
comunicao considerado a latncia (delay), que consiste no tempo de transferncia de
uma unidade de dado entre dois processadores distintos. Um outro modelo, proposto
recentemente, o modelo LogP onde, alm da latncia, tambm so considerados outros
importantes parmetros de comunicao que tornam este modelo o mais realstico
atualmente. A seguir, so descritos mais detalhadamente os modelos de latncia e LogP,
que consistem nos modelos de computao paralela mais considerados na rea de
escalonamento de tarefas.
Modelo de Latncia
Neste modelo, o nico parmetro arquitetural associado ao custo de
comunicao a latncia, denotada por . Assume-se que um processador no gasta
tempo preparando o envio nem o recebimento de mensagens permitindo, dessa forma,
que comunicao e computao se sobreponham totalmente. Uma vez que um
processador no gasta tempo preparando o envio de mensagens, ele pode enviar
simultaneamente vrias mensagens distintas para vrios destinos
(multicast), como ilustrado na Figura 3.3.1 (b), onde a tarefa v
0
envia, simultaneamente,
mensagens para as tarefas v
1
e v
3
. Como podemos observar, o envio de tais mensagens
se sobrepe com a execuo da tarefa v
2
.
Modelo LogP
O modelo LogP representa o fato de que nas mquinas paralelas atuais, o
processador deve tratar ou ao menos iniciar cada comunicao e que, alm disso,
comunicao e computao no podem ser sobrepostas totalmente. O prprio nome
dado ao modelo j define os parmetros considerados, ou seja:
L latncia de comunicao.
o sobrecarga (overhead), que o tempo durante o qual o processador
permanece preparando o recebimento (sobrecarga de recebimento) ou o envio
(a)

Figura 3.3.1: (a) Grafo do tipo fork. (b) Possvel escalonamento [42]
v
V1
V0
V2
V3
V0
V1 V2 V3
11
(sobrecarga de envio) de uma mensagem, tempo este durante o qual o processador no
pode realizar outras operaes.
g gap que o intervalo mnimo permitido entre dois envios ou dois
recebimentos consecutivos em um mesmo processador. Este parmetro uma
caracterstica da rede e est associado capacidade do canal de sada do processador.
P conjunto dos processadores disponveis.
Sempre que uma tarefa v
i
V for escalonada num processador p
j
P no qual um de
seus predecessores imediatos no se encontra, duas tarefas extras devero ser
escalonadas: uma tarefa de envio e uma de recebimento, como ilustrado na Figura 3.3.2
Uma tarefa de envio deve ser escalonada imediatamente aps cada predecessor de v
i
que
no se encontra em p
j
. Para cada uma dessas tarefas de envio, deve estar associada uma
tarefa de recebimento que ser escalonada em p
j
antes de v
i
. Tais tarefas representam a
sobrecarga gasta pelo processador para o envio ou o recebimento de uma mensagem.
Alguns autores preferem utilizar os termos tempo de empacotamento e tempo de
desempacotamento para se referirem ao tempo de preparao do envio e do recebimento
de uma mensagem, respectivamente. Como podemos ver, esse modelo mais realstico
do que o modelo de latncia pelo fato de tambm considerar outros importantes
parmetros de comunicao (veja maiores detalhes em [42]).
3.4 O Problema de roteamento e scheduling peridico de uma frota de veculos
O problema de roteamento peridico bsico consiste de uma frota homognea de
veculos que deve atender a um conjunto de clientes a partir de uma origem (depsito)
de onde os veculos devem sair e retornar ao final da jornada. Cada veculo possui uma
capacidade fixa que no pode ser excedida e cada cliente possui uma demanda
conhecida que deve ser totalmente satisfeita numa nica visita por um nico veculo. O
perodo de planejamento de T dias. Quando T=1, o PRPV se restringe ao clssico
Problema de Roteamento de Veculos (PRV). Cada cliente no PRPV deve ser visitado k
vezes, onde 1 k T e no modelo clssico, a demanda diria de um cliente sempre
igual para cada dia de visita. O objetivo do PRPV pode ser visto como a de gerar um
conjunto de rotas para cada dia de modo que as restries envolvidas sejam atendidas e
os custos globais minimizados. Tanto o PRV como o PRPV podem ser vistos como
Figura 3.3.2: Possvel escalonamento para
a aplicao da Figura 1(a), utilizando o modelo LogP
Sobr
ecarga de envio (v
0
Sobrecarga de
recebimento
V1
V0
V2
V3
12
Problemas de Clusterizao, neste caso, os clientes alocados a uma rota definem um
cluster. Existem vrias generalizaes do PRPV bsico incorporando variaes e/ou
condies adicionais. Os mais comuns so:
A frota de veculos pode ser heterognea (capacidades e/ou custos distintos).
Cada rota diria de um veculo pode ser limitado em funo da sua distncia e/ou
tempo.
O nmero de veculos disponveis a cada dia pode ser limitado e fixado previamente
ou ser varivel.
A demanda diria de um cliente pode ser varivel e atendida em mais de uma visita.
Pode existir mais de uma origem (depsito).
Os clientes podem ter exigncias do tipo: time-windows onde devem ser visitados,
restries de precedncias entre dois clientes. Para maiores informaes sobre este
problema, consulte [31, 32, 33, 34, 35].
Como neste trabalho, apresentamos diferentes propostas de metaheuristicas
usando conceitos de algoritmos genticos (AGs) e algoritmos evolutivos (AEs)
mostramos a seguir uma breve reviso destes conceitos.
4. Algoritmos Evolutivos
Como todas as contribuies propostas neste trabalho enfocam o conceito de
algoritmos evolutivos, vamos inicialmente dar um breve resumo sobre eles enfocando
principalmente o seu representante mais popular que so os algoritmos genticos. A
expresso Algoritmos Evolutivos (ou a sua variao, Algoritmos Evolucionrios)
corresponde classe de algoritmos para a soluo de problemas de otimizao que
utilizam modelos computacionais baseados na teoria da evoluo das espcies, proposta
por Charles Darwin, e nos princpios bsicos da herana gentica, descritos por Gregor
Mendel [6, 20, 21, 27]. A partir de muitas evidncias colhidas em suas viagens a bordo
do navio Beagle, Charles Darwin publicou em 1859 a sua teoria sobre a evoluo dos
seres vivos atravs da seleo natural. No seu trabalho, intitulado The Origin of
Species, Darwin prope um modelo de evoluo em que uma populao de indivduos
sofre um processo de evoluo natural e estes so capazes de se adaptarem ao ambiente
em que vivem atravs de processos de seleo natural, reproduo, recombinao sexual
e mutao, onde os indivduos mais adaptados tm maiores chances de sobreviverem e
gerarem descendentes. Segundo Bck [3], o processo de seleo natural, que privilegia
os indivduos com alta capacidade de sobrevivncia (mais adaptados ao meio ambiente,
ou mais aptos), permite que a qualidade mdia da populao melhore ao longo do
processo evolutivo, levando obteno de um indivduo totalmente adaptado ao
ambiente, o indivduo timo.
No processo de evoluo natural, a combinao da teoria da evoluo com a gentica
fornece um mecanismo que permite o surgimento e a adaptao de seres vivos ao meio-
ambiente, atravs de uma busca no imenso espao de todas as possveis combinaes de
seqncias de DNA. Os Algoritmos Evolutivos (AEs) utilizam estas idias atravs da
13
manipulao de uma populao de indivduos (solues) que evoluem ao longo de
vrias iteraes do AE, chamadas de geraes.
Os AEs so divididos, de uma forma geral, nos seguintes grupos:
Estratgias de Evoluo: na proposta original, apresentada por Schwefel,
no existe seleo de indivduos para constituio da populao da gerao seguinte
cada indivduo de uma populao gera um nico filho, atravs da aplicao do operador
mutao [27].
Programao Evolutiva: foi desenvolvida para evoluir mquinas de
estados finitos atravs de um processo semelhante s Estratgias de Evoluo Erro! A
origem da referncia no foi encontrada..
Algoritmos Genticos: os princpios bsicos dos Algoritmos Genticos
(AGs) foram apresentados inicialmente por Holland [21].
Programao Gentica: um mtodo utilizado para a evoluo de
programas de computador, inicialmente proposto por Koza [23] como uma aplicao
dos AGs na evoluo de estruturas em rvore.
4.1.1 Algoritmos Genticos Verso Clssica
Os Algoritmos Genticos (AGs) foram propostos por Holland [21] como sendo
algoritmos de busca de propsito geral, com caractersticas de busca estocstica, busca
de mltiplos pontos e busca paralela. Em seu trabalho, Holland estava mais interessado
na evoluo dos indivduos de uma populao, em uma tentativa de explicar os
processos adaptativos em sistemas naturais para desenvolver sistemas artificiais
baseados nestes processos, do que em resolver problemas de otimizao.
O comportamento dos AGs corresponde a uma analogia com o comportamento dos
indivduos de uma populao na natureza. Considerando uma populao de indivduos
da natureza, estes competem entre si por diferentes recursos disponveis no seu meio
ambiente (habitat), como gua, comida e abrigo. Cada um destes indivduos possui
caractersticas externas (fentipo), relacionadas sua constituio gentica (gentipo),
que os diferem entre si em relao adaptao ao meio ambiente em que vivem. Esta
adaptao afeta diretamente a capacidade de sobrevivncia por perodo suficiente para
se reproduzirem pelo acasalamento. Atravs do acasalamento, as caractersticas
genticas dos dois indivduos envolvidos so combinadas e transmitidas para a prole.
Dessa forma as geraes futuras possuem uma grande probabilidade de serem formadas
por indivduos com as caractersticas necessrias para um maior tempo de vida, em
relao s geraes anteriores a este processo dado o nome de evoluo natural. Para
facilitar a descrio e utilizao dos AGs, a terminologia utilizada na Biologia adotada
naturalmente.
O fentipo de um indivduo obtido a partir da sua submisso a uma funo que ir
avaliar a qualidade do seu cdigo gentico e, dessa forma, corresponde s suas
chances de gerar descendentes. Esta funo, chamada de funo de aptido, uma
codificao da funo-objetivo do problema e define a qualidade de cada indivduo em
relao ao problema modelado. Assim como na evoluo natural, num AG deve haver
14
maiores chances de que os cdigos genticos dos indivduos mais aptos sejam
transmitidos para as geraes futuras atravs do processo seleo natural e
reproduo.
Uma caracterstica importante de um AG a utilizao dos operadores genticos
sobre os indivduos da populao para que possam ser exploradas diferentes reas do
espao de busca evitando, assim, uma convergncia do algoritmo para uma soluo
tima local. A combinao entre partes do cdigo gentico de diferentes indivduos
(atravs do operador de cruzamento) e a realizao de pequenas alteraes genticas
(atravs do operador mutao) permitem a explorao de novas caractersticas, que
podem corresponder a uma evoluo dos indivduos. Dessa forma, a populao de
indivduos tende a convergir para uma combinao de caractersticas dos indivduos que
seja ideal para o problema em questo a soluo tima. Este mecanismo de evoluo
natural de solues permite que os AGs possam ser utilizados para a soluo de quase
todos os problemas de otimizao. Beasley, Bull e Martin afirmam que Se o AG foi
implementado corretamente, a populao ir evoluir ao longo de sucessivas geraes de
tal forma que a aptido do melhor indivduo e do indivduo mdio em cada gerao ser
incrementada em direo ao timo global. A convergncia a progresso em direo
uniformidade crescente. [6].
Segundo Goldberg [20], apesar da convergncia global da populao no ser garantida
em um tempo finito, os AGs provaram ser uma tcnica de busca robusta para a maioria
das aplicaes reais. A Figura 4.1 apresenta a estrutura bsica de um AG tradicional.

Algoritmo Gentico Tradicional
1. i = 0;
2. gerar a populao inicial P(0);
3. avaliar a populao inicial P(0);
4. enquanto no(condio de trmino) faa
5. i = i + 1;
6. selecionar P(i) de P(i 1);
7. aplicar os operadores genticos a P(i);
8. avaliar os indivduos de P(i);
9. fim-enquanto.

Figura 4.1 Algoritmo Gentico tradicional
Com base no exposto, para que a utilizao do AG alcance sucesso na obteno
da soluo para um problema especfico, na modelagem do AG necessrio considerar:
1. representao dos indivduos: como representar as possveis solues para o
problema;
15
2. funo de aptido: de que forma a funo de aptido pode representar, de forma
precisa, a qualidade de cada soluo obtida;
3. seleo e reproduo: como ser realizada a seleo dos indivduos de uma gerao
para constiturem a populao da gerao seguinte;
4. operadores genticos: quais operadores genticos devem ser aplicados, e de que
forma;
5. outros parmetros: quais os valores que devem ser utilizados para o tamanho da
populao, taxa de aplicao dos operadores genticos, critrio de parada, etc.
Nas prximas subsees, sero realizadas algumas consideraes relativas s
caractersticas de um AG tradicional indicadas acima.
Representao dos Indivduos
De uma forma geral, uma soluo potencial para um problema de otimizao pode ser
representada como um conjunto de valores de parmetros para o problema modelado. A
representao, ou codificao, de um indivduo em um AG deve concatenar todos estes
parmetros (chamados de genes), formando uma cadeia de valores que corresponde a
uma soluo para o problema.
1. a representao dos indivduos deve ser completa: a representao deve permitir que
todos os parmetros da soluo possam assumir todos os valores possveis no domnio
do problema. Caso o AG no consiga representar uma determinada soluo, ele nunca
poder obt-la. Dessa forma, o espao de busca de um AG corresponde a todas as
configuraes possveis que um indivduo pode assumir e deve ser igual ao espao de
busca do problema;
2. a representao deve ser vlida: deve-se evitar que possam ser geradas solues fora
do espao de busca do problema. Caso isto ocorra, deve haver algum mecanismo no AG
para tornar a representao vlida;
3. evitar a simetria na codificao: a simetria gera redundncia, ou seja, indivduos
diferentes podem representar uma mesma soluo. Isto pode trazer problemas para a
convergncia da populao. Um exemplo de codificao com simetria a codificao
group-number, utilizada em problemas de clusterizao e tratada na Seo 3.2.1.
Funo de Aptido
A funo de aptido normalmente corresponde funo-objetivo do problema
modelado e fornece um valor que permite avaliar a qualidade da soluo representada
pelo indivduo em relao s demais solues do espao de busca. Por utilizar uma
funo que avalia a aptido dos indivduos de uma populao durante a sua evoluo, os
Ags podem ser aplicados a vrios problemas de otimizao, bastando utilizar uma
funo de aptido especfica para o problema. A funo de aptido deve ser
implementada de forma que seja executada de maneira relativamente rpida. Alm
disso, a execuo da funo de aptido nos Ags pode necessitar de quantidade de tempo
considervel tendo em vista que, a cada iterao, necessrio avaliar uma populao
16
inteira de solues potenciais (os indivduos), e no apenas uma soluo, como acontece
em outras tcnicas de otimizao.
Seleo e Reproduo
A cada iterao, ou gerao, de um AG, partindo-se de uma populao de p indivduos
da gerao anterior deve ser obtida uma nova populao de p indivduos, sobre a qual
sero aplicados os operadores genticos. Este processo envolve os passos de seleo e
reproduo dos indivduos. A partir dos indivduos escolhidos no processo de seleo, a
reproduo consiste em copiar o cdigo gentico dos indivduos selecionados para a
nova populao.
Tendo em vista que, ao trmino de uma iterao, todos os indivduos so avaliados ,
possvel saber quais deles possuem qualidades superiores aos demais, como soluo
para o problema modelado. Dessa forma, a seleo de indivduos deve corresponder a
um mecanismo que permita a sobrevivncia dos melhores indivduos para que estes
possam compartilhar suas caractersticas com as geraes seguintes.
Existem vrias estratgias para a seleo. Beasley, Bull e Martin [6] afirmam que no
existe um mtodo considerado absoluto, tendo em vista que os ajustes nas estratgias
podem levar a desempenhos semelhantes.
As duas estratgias mais utilizadas para a seleo so descritas a seguir:
1. seleo proporcional aptido: criada por Holland [21], esta estratgia inspirada
na seleo natural, que envolve a seleo dos indivduos conforme o valor da sua
aptido. Uma implementao desta estratgia conhecida como mtodo da roleta, que
se utiliza uma analogia com o jogo de roleta encontrado em cassinos. No mtodo da
roleta cada indivduo possui uma regio da roleta proporcional ao valor da sua aptido e
assim uma determinada probabilidade de ser selecionado. Cada vez que a roleta girada
um indivduo selecionado. O nmero total de vezes que a roleta girada
correspondente ao tamanho da populao, podendo um mesmo indivduo ser
selecionado mais de uma vez;
2. seleo por torneio: existem muitas variaes desta estratgia. A mais simples
corresponde a, para a seleo de cada indivduo, inicialmente escolher de forma
aleatria t indivduos da populao. Em seguida os indivduos escolhidos competem
entre si e o indivduo selecionado ser aquele que possuir o melhor valor para a aptido.
Normalmente t utilizado com o valor 2, e um aumento neste valor ir acelerar a
convergncia da populao. Outro aspecto a ser considerado no processo de seleo o
elitismo, que uma estratgia utilizada em conjunto com as outras j descritas para a
seleo. O elitismo utilizado para garantir que o melhor indivduo da populao de
uma gerao seja reproduzido na populao da gerao seguinte. Segundo Beasley, Bull
e Martin [6] o processo de seleo influencia muito o comportamento de um AG, sendo
um dos aspectos crticos para que a evoluo da populao ocorra. O tipo de seleo
utilizado pode produzir problemas como a convergncia prematura para timos locais
distantes de um timo global ou o caso oposto, onde a convergncia muito lenta.
A convergncia prematura ocorre quando as caractersticas de indivduos com uma
elevada aptido (mas que no correspondem soluo tima) dominam rapidamente a
17
populao, que converge para um timo local de baixa qualidade. A convergncia lenta,
ou a no convergncia, um problema oposto convergncia prematura, em que timos
locais de boa qualidade, ou um timo global, podem tambm no serem alcanados.
Neste caso o valor mdio da aptido normalmente alto e a diferena entre o melhor
indivduo e o valor mdio muito pequena. Dessa forma, no existe diversificao
suficiente na populao para que o AG consiga continuar a sua evoluo em direo
soluo tima.
Operadores Genticos
Aps a seleo e reproduo dos indivduos de uma gerao, iniciada uma nova
gerao utilizando uma populao intermediria, sobre a qual sero aplicados os
operadores genticos. Durante a aplicao dos operadores genticos, ao mesmo tempo
em que so gerados novos indivduos, algumas caractersticas de adaptao dos
indivduos das geraes anteriores so mantidas. Os operadores genticos normalmente
utilizados em um AG tradicional so o operador de cruzamento e o operador mutao.
Segundo Goldberg [20], o operador de cruzamento a principal fora direcionadora em
um AG. O operador de cruzamento realiza a troca de partes de pares de indivduos com
o objetivo de tentar obter indivduos melhores a partir dos indivduos selecionados.
Dessa forma, o principal objetivo do cruzamento utilizar o conhecimento obtido em
pontos do espao de busca visitados previamente. A aplicao do operador de
cruzamento a um par de indivduos normalmente est sujeita a uma taxa de
probabilidade de aplicao, definida como parmetro para a execuo do AG. A partir
da seleo de um par de indivduos, existem diversas formas de utilizao do operador
de cruzamento. As mais comuns so:
1. cruzamento de um ponto: a partir de um ponto de cruzamento dos indivduos
envolvidos, obtido de forma aleatria, os valores constantes dos trechos situados aps o
ponto de cruzamento so trocados entre os indivduos do par. Um exemplo
apresentado na Figura 4.1.1;



Figura 4.1.1 Exemplo de aplicao do operador de cruzamento de um ponto
2. cruzamento de mltiplos pontos: uma generalizao do cruzamento de um ponto,
em que pares de pontos de cruzamento so obtidos de forma aleatria e os valores dos
indivduos localizados entre cada par de pontos de cruzamento so trocados. Um
exemplo apresentado na Figura 4.1.2;



Figura 4.1.2 Exemplo de aplicao do operador de cruzamento de mltiplos pontos
0 1 1 1 0 1 1 0
1 1 0 0 0 0 1 1
0 1 1 0 0 0 1 1
1 1 0 1 0 1 1 0
originais resultantes
0 1 1 1 0 1 1 0
1 1 0 0 0 0 1 1
0 1 1 0 0 0 1 0
1 1 0 1 0 1 1 1
originais resultantes
18
3. cruzamento uniforme: uma mscara de dgitos binrios obtida de forma aleatria,
onde o dgito 1 indica que o valor na respectiva posio dos indivduos dever ser
trocado e o dgito 0 indica que os valores originais das posies dos indivduos
envolvidos, equivalentes s posies da mscara, devem ser mantidos com os valores
originais. Um exemplo apresentado na Figura 4.1.3.





Figura 4.1.3 Exemplo de aplicao do operador de cruzamento uniforme
Outros tipos de operadores de cruzamento podem ser necessrios dependendo do
problema modelado. Diferentemente do operador de cruzamento, o operador mutao
realiza trocas aleatrias de alguns valores dos indivduos, com o intuito de pesquisar
novas reas do espao de busca, a partir de indivduos selecionados. Ao permitir a
manuteno da diversidade gentica da populao, o operador mutao evita que a
populao fique estagnada em uma regio de timo local. A Figura 4.1.4 apresenta um
exemplo de aplicao do operador mutao em um indivduo representado por uma
cadeia de dgitos binrios, em que os valores dos elementos selecionados, em destaque,
so trocados.





Figura 4.1.4 Exemplo de aplicao do operador mutao
O operador mutao tambm est sujeito a uma taxa de aplicao que deve ser definida
conforme caractersticas do problema. A taxa de aplicao do operador mutao refere-
se probabilidade de cada um dos elementos de um indivduo sofrer a mutao. Caso a
taxa de aplicao seja prxima a 100%, a busca se torna efetivamente aleatria. O
parmetro taxa de mutao , portanto, determinante para o grau de convergncia da
populao durante a execuo de um AG. Segundo Beasley, Bull e Martin [6], a
definio dos operadores de cruzamento e mutao, bem como as suas respectivas taxas
de aplicao, podem ser determinantes para a ocorrncia dos problemas de
convergncia. Os problemas de convergncia originados da definio incorreta das
taxas de aplicao do operadores genticos podem, por exemplo, eliminar a
possibilidade de explorao do espao de busca pelo operador de cruzamento, ficando
apenas o operador mutao responsvel pela explorao que, por isto, pode se tornar
lenta e aleatria.
0 1 1 1 0 1 1 0
1 1 0 0 0 0 1 1
1 1 1 0 0 0 1 0
0 1 0 1 0 1 1 1
1 0 0 1 0 1 1 0
mscara
originais resultantes
1 0 0 1 1 1 1 0
1 1 0 1 0 1
1
0
19
Outros Parmetros
Em um AG tradicional existem vrios outros parmetros e caractersticas que podem
interferir na qualidade das solues obtidas. Dentre eles os principais so o tamanho da
populao, o total de geraes e a forma de gerao da populao inicial:
1. tamanho da populao: enquanto populaes com poucos indivduos podem
convergir rapidamente para timos locais de baixa qualidade, trabalhar com populaes
grandes pode exigir a realizao de muita computao;
2. critrio de parada: os dois principais critrios de parada so o nmero total de
geraes ou a convergncia da populao. Caso seja definido um nmero fixo de
geraes, pode ser que este nmero no seja suficiente para se obter soluo tima.
Caso o critrio de parada seja a convergncia da populao, pode-se definir que o AG
ir terminar quando todos os indivduos forem iguais, o que pode nunca ocorrer, ou
quando exista um percentual de indivduos iguais na populao;
3. gerao da populao inicial: a populao inicial pode ser gerada de forma aleatria
ou pode ser utilizada uma heurstica que utilize algum conhecimento do problema e
possibilite um direcionamento da busca a uma regio do espao de busca prxima
soluo tima.
Algoritmos Genticos Verses Aperfeioadas
Embora os AGs sejam muito utilizados na literatura para a soluo de problemas
de otimizao, o desempenho destes na sua forma tradicional pode ser pior do que o
desempenho de outras metaheursticas. Com o intuito de melhorar o desempenho dos
AGs, novas verses diferentes do AG tradicional tm sido propostas. Dentre as
variaes de AGs mais utilizadas, esto as propostas de incluso de novos operadores
genticos e novos mecanismos para a criao da populao inicial, bem como o
desenvolvimento de novos processos para a seleo e reproduo de indivduos. Nessa
evoluo dos AGs, Glover Erro! A origem da referncia no foi encontrada.
introduziu a abordagem evolucionria denominada Scatter Search, que apresenta
caractersticas semelhantes e complementares aos AGs, e que tem se mostrado
promissora na resoluo de problemas de otimizao[16]. Na abordagem Scatter
Search, a idia principal trabalhar com uma verso mais determinstica de AGs
utilizando a idia da combinao linear de boas solues (solues elite) obtidas durante
as iteraes do algoritmo, com o intuito de obter uma soluo intermediria entre elas
que seja melhor do que as solues elite envolvidas. Em outra linha de pesquisa
relacionada melhora no desempenho dos AGs, Moscato [29] props os Algoritmos
Memticos (AMs), cuja representao formal foi apresentada mais tarde por Radcliffe e
Surry [36]. Nos AMs introduzido um procedimento de busca local, que corresponde
ao processo de alterao nos valores dos elementos de uma soluo para investigar uma
rea do espao de busca prxima a ela, e que aplicado a todos os indivduos da
populao de cada gerao. Outra variao dos AGs, proposta por Lorena e Furtado
[25], corresponde aos Algoritmos Genticos Construtivos (AGC), que agregam novas
caractersticas proposta tradicional de AG. Dentre as principais caractersticas
agregadas est associao de um rank a cada indivduo, considerando que um
indivduo pode ser constitudo de blocos de sub-solues ou uma soluo completa, e a
utilizao de uma funo de aptido bi-objetiva, que utilizada para avaliar tanto as
20
solues completas quanto os blocos de sub-solues, os chamados schemata. Para
reduzir o tempo computacional exigido pela execuo de um AG, uma alternativa que
vem sendo muito utilizada a sua paralelizao. Tendo em vista que os AGs realizam
uma busca paralela no espao de solues do problema, o desenvolvimento de uma
verso paralela pode ser realizado de forma mais direta do que em outros algoritmos
desenvolvidos para problemas de otimizao [14, 31, 32, 35, 42].
5. Propostas de mtodos eficientes para a soluo de Problemas de
Clusterizao.

O objetivo desta seo, apresentar novas propostas utilizando conceitos de
Algoritmos Evolutivos para algumas aplicaes de Problemas de Clusterizao citadas
na seo anterior. Para isso, inicialmente mostramos como obter algoritmos evolutivos
eficientes para o Problema de Particionamento de grafos. Numa segunda etapa,
propomos um novo algoritmo evolutivo hbrido para o problema de clusterizao de
clulas de manufatura e ao final, apresentamos um novo algoritmo tambm evolutivo
para Problemas de Clusterizao Automtica Genrica.
5.1 Clusterizao em Grafos com Algoritmos Genticos
Os problemas de particionamento de grafos j so bastante explorados e existem
diferentes modelos para representar este problema. Um modelo aplicado Engenharia
de Software foi proposto por Doval, Mancoridis e Mitchell [13] e ser utilizado como
base para os algoritmos propostos neste trabalho, sendo, dessa forma, descrito com
maiores detalhes a seguir. Doval et al. [13] propuseram um algoritmo gentico
tradicional para obter, de forma automtica, um bom particionamento (ou clusterizao)
de um grafo de dependncias de mdulos (MDG - Module Dependency Graph). Um
MDG uma maneira utilizada pelos projetistas de software para tornarem sistemas
complexos mais compreensveis e corresponde a um grafo orientado onde os mdulos
de um sistema so representados pelos vrtices e as dependncias estticas entre os
mdulos so representadas pelos arcos do grafo. No algoritmo gentico proposto em
[13], e referenciado a partir daqui como AGT (Algoritmo Gentico Tradicional),
realizada uma clusterizao automtica, no sendo necessrio especificar previamente o
nmero de clusters em que o MDG deve ser particionado. Durante a execuo do AGT,
cada indivduo da populao corresponde a uma soluo vlida, podendo cada soluo
possuir um nmero diferente de clusters das demais. Para avaliar a qualidade das
clusterizaes de um grafo orientado no ponderado, apresentada uma funo-objetivo
que leva em considerao esta caracterstica da clusterizao automtica.
Representao dos Indivduos
Seja um grafo orientado G = (V, E), onde V corresponde a um conjunto de n
vrtices {v
1
, v
2
, ..., v
n
}, e E representa o conjunto de arcos (v
i
, v
j
) tal que v
i
, v
j
V, onde
cada arco incide de v
i
e incidente em v
j
. Dado um conjunto finito de clusters C, uma
clusterizao de G pode ser definida pela funo Q: V C que mapeia cada vrtice de
V em um cluster de C, sendo P(C
i
) o conjunto de vrtices associado ao cluster C
i
, isto ,
P(C
i
) = {v V : Q(v) = C
i
}.
21
No AGT cada indivduo da populao deve representar um esquema de
clusterizao Q. Para isto, cada indivduo corresponder a um vetor de inteiros {e
1
, e
2
,
..., e
n
} onde cada elemento e
i
de ndice i do vetor indica o identificador do cluster do
vrtice v
i
, ou seja, Q(v
i
) = e
i
, onde 1 i n.
A Figura 5.1.1 mostra um exemplo de indivduo utilizando a codificao group-number
para representar uma clusterizao de um grafo orientado com 8 vrtices.






Figura 5.1.1 Exemplo de codificao group-number para clusterizao de um grafo orientado
Populao Inicial
A populao inicial do AGT gerada de forma aleatria tal que, para cada indivduo j
da populao, a cada vrtice v associado um cluster C
i
C tal que | C | n, sendo n o
nmero de vrtices do grafo. Doval et al. [13] propem que o nmero de indivduos da
populao inicial (tamanho da populao) seja igual a 10 n. Contudo, observamos
que, utilizando esta proposta, o tamanho da populao pode se tornar muito grande para
grafos com nmero elevado de vrtices (por exemplo da ordem de centenas de vrtices).
O tamanho da populao mantido fixo em cada gerao ao longo do processo
evolutivo do AGT.
Seleo e Reproduo
Partindo-se da populao inicial, o processo evolutivo iniciado de forma que
diferentes populaes de indivduos faam parte das diferentes geraes. Cada gerao
corresponde a uma iterao do AGT, em que ocorrem os passos de seleo e reproduo
dos indivduos de uma populao para gerar uma nova populao sobre a qual sero
aplicados os operadores genticos. Durante a seleo e reproduo de uma populao, p
indivduos so escolhidos da populao atual levando-se em considerao os valores das
suas respectivas funes de aptido. A seleo utilizada no AGT corresponde
estratgia da roleta, complementada com elitismo, sendo este ltimo responsvel por
garantir que o indivduo mais apto da populao corrente seja selecionado para a
prxima populao. Os p indivduos selecionados de uma gerao formam a nova
populao, que ser utilizada na prxima gerao do AGT.
Funo de Aptido
Para medir a qualidade da configurao de uma clusterizao (soluo) para um grafo
orientado, Doval et al. [13] apresentam uma funo que leva em considerao as
conexes entre os vrtices do grafo. A funo, denominada Qualidade de
Modularizao (MQ Modularization Quality), utilizada como funo de aptido do
1
4
3
7
2
5
6
8
1 1 1 1 2 3 2 3
1 2 3 4 5 6 7 8
vrtices
indivduo
representa



C
1

C
2

C
3

22
algoritmo gentico. O objetivo do AGT ser encontrar um bom (possivelmente timo)
particionamento, atravs da maximizao da funo MQ. Para calcular o valor da
funo MQ de uma clusterizao, necessria a definio de duas outras funes que
levam em considerao o total de arcos que conectam vrtices internos a um cluster e o
total de arcos envolvendo vrtices de diferentes clusters. So elas:
Intraconectividade (A
i
): a intraconectividade A
i
de um cluster i :

2
i
i
i
N
A

= (5.1.1)
onde
i
total de arcos internos ao cluster i e N
i
o total de vrtices do cluster i.
Interconectividade (B
i,j
): considerando um par de clusters i e j, com
ij
sendo
total de arcos entre os clusters, N
i
e N
j
os totais de vrtices dos clusters i e j,
respectivamente, a medida da interconectividade B
i,j
entre o par de clusters :

=
=
j i se
N N
j i se
B
j i
ij
j i
2
0
,

(5.1.2)
A funo de intraconectividade de um cluster considera o total de arcos internos
a ele em relao ao nmero mximo de arcos possvel. considerada nesta funo a
possibilidade da existncia de laos, ou seja, ligaes que envolvam apenas um vrtice.
Os valores da intraconectividade e interconectividade variam entre 0 e 1 e uma
clusterizao de boa qualidade aquela que possui um valor grande para o somatrio da
intraconectividade de cada um dos clusters e um valor pequeno para o somatrio da
interconectividade de todos os pares de clusters possveis no particionamento. A funo
MQ, que considera a intraconectividade total e a interconectividade total de uma
clusterizao ento definida como sendo:

=
>

=

=
=
1
1
2
) 1 (
1 , , 1
k A
k
B
k
A
MQ
i
k k
k
j i j i
k
i i
(5.1.3)
onde A
i
a intradependncia do cluster i, B
i,j
a interdependncia entre clusters i e j e k
o total de clusters da soluo.
O valor de MQ, equao (5.1.3), corresponde diferena entre a mdia de
intraconectividade e a mdia de interconectividade, podendo variar entre 1 e 1. Tendo
em vista que a funo MQ premia a obteno de clusters coesos (com alto valor de
intraconectividade) e penaliza particionamentos com muitas dependncias entre seus
clusters (alto valor de interconectividade), quanto maior for o valor de MQ, melhor a
clusterizao. A funo MQ ento utilizada como funo de aptido do AG, tendo
como objetivo a sua maximizao. Na Figura 5.1.2 so apresentadas duas clusterizaes
diferentes para um mesmo grafo e os respectivos valores para a funo MQ. O valor de
MQ para a clusterizao A superior ao valor referente a clusterizao B e, dessa
forma, esta ltima pode ser considerada uma clusterizao pior do que aquela (A), que
23
por sua vez pode ainda no ser a melhor clusterizao possvel (soluo tima) para o
grafo do exemplo. Para termos certeza que uma clusterizao a soluo tima
devemos verificar, para todas as possveis combinaes dos vrtices em clusters, qual
delas possui o maior valor para a funo MQ.







Figura 5.1.2 Exemplos de valores para a funo MQ associada a diferentes clusterizaes
Operador de Cruzamento
O operador de cruzamento aplicado imediatamente aps a seleo dos indivduos da
atual populao e reproduo na nova populao, sendo usado para combinar pares de
indivduos (indivduos pais) com o objetivo de obter novos indivduos (indivduos
filhos). O operador de cruzamento utilizado o cruzamento de um ponto, em que, um
trecho de um indivduo do par selecionado trocado com mesmo trecho do outro
indivduo do par. O trecho inicia em uma posio i (1 i n) do indivduo, obtida de
forma aleatria, onde n o nmero de vrtices do grafo (e tamanho do indivduo). Os
dois indivduos do par so ento alterados pela troca dos valores dos elementos entre as
posies i + 1 e n (inclusive). A Figura 5.1.3 mostra um exemplo de aplicao do
operador de cruzamento, onde foi selecionada a quarta posio para ser o ponto de
cruzamento.




Figura 5.1.3 Exemplo de aplicao do operador de cruzamento no AGT
Operador Mutao
O operador mutao aplicado a cada indivduo da populao, aps a aplicao do
operador de cruzamento. No operador mutao definido por Doval et al. [13], o valor de
cada i-simo elemento do indivduo, correspondente ao identificador do cluster do
vrtice v
i
com 1 i n, possui uma probabilidade de ser trocado por um valor aleatrio
q,tal que 1 q n. Assim, o nmero mximo de clusters ser o nmero de elementos
(vrtices) do problema (grafo) associado.
1 2 1 3 1 2 1 3
2 1 1 1 3 2 2 3
1 2 1 1 3 2 2 3
2 1 1 3 1 2 1 3
1
4
3
7
2
5
6
8
Clusterizao B (MQ = 0,0833)
1
4
3
7
2
5
6
8
Clusterizao A (MQ = 0,3958)
24
A taxa de aplicao do operador mutao definida no AGT como sendo igual a 0,004
log
2
(n). A Figura 5.1.4 mostra um exemplo de aplicao do operador mutao sobre
um indivduo no AGT.




Figura 5.1.4 Exemplo de aplicao do operador mutao no AGT
Propostas para melhorar o desempenho do AGT
Com o intuito de tentar melhorar o desempenho do algoritmo AGT, a partir de
uma bateria de testes preliminares, procuramos verificar os prs e contras desta proposta
da literatura. Baseado nestas indicaes, passamos a propor as seguintes mudanas:
1. variao na taxa de aplicao do operador mutao no AGT.
2. uso de seleo de reprodutores via regra de torneio.
3. outros operadores crossover.
4. mdulo de diversificao numa populao. Neste caso, de tempos em tempos,
quando notamos que a populao se tornou muito homognea, criamos uma
nova populao replicando o melhor individuo gerado ate o momento pelo AE.
Para cada rplica, abrimos uma janela de tamanho e posio aleatria, e somente
dentro desta janela, a composio do individuo ser refeita aleatoriamente.
5. modulo de busca local no AGT.
Uma segunda bateria de testes foi efetuada avaliando cada proposta isoladamente,
destas a que apresentou maior impacto (melhora) foi a de busca local. Nesta abordagem,
durante o processo evolutivo do AGT, enquanto o melhor indivduo obtido a cada
iterao no corresponder soluo tima para a clusterizao, pode-se tentar melhor-
lo atravs da aplicao de um procedimento de busca local. Basicamente, o
procedimento de busca local consiste em uma investigao da vizinhana de uma
soluo, com o objetivo de obter um timo local, e normalmente realizada atravs da
substituio de valores dos genes de um indivduo por valores que podem ser definidos
aleatoriamente ou obtidos conforme alguma caracterstica do problema e da instncia.
No AGT com busca local proposto neste trabalho, e referenciado com a indicao +B,
durante o procedimento de busca local parte-se de uma clusterizao C
o
C, obtida
pelo AGT, e so analisadas vrias clusterizaes C
1
, C
2
, C
3
, ..., C
n
C da vizinhana de
C
o
. A clusterizao C
o
corresponde melhor soluo obtida em cada gerao e cada
uma das outras n clusterizaes obtida atravs de uma nica modificao no
identificador do cluster de algum vrtice da clusterizao obtida na iterao anterior. Os
passos principais da busca local proposta neste trabalho so apresentados no algoritmo
da Figura 5.1.5.
1 2 1 3 1 2 1 3
1 2 1 3 7 2 1 3
25

Algoritmo BuscaLocal (entrada: clusterizao C0)
1. MQC funo de aptido da clusterizao C0;
2. Para i 1 at n faa // para todos os n vrtices do grafo
3. Para cada cluster q Q computar nAi(q) que correspondente soma do
total de arcos incidentes do vrtice vi nos vrtices do cluster q e o total de arcos
incidentes dos vrtices de q no vrtice vi;
4. qMaxi q tal que nAi(q) seja o maior valor obtido em 3;
5. Se qMaxi cluster(vi) ento
6. NovoMQC valor da aptido da clusterizao Ci considerando o vrtice
vi contido no cluster qMaxi;
7. Fim se;
8. Se NovoMQC > MQC ento
9. Substituir o cluster(vi) na clusterizao Ci-1 por qMaxi;
10. MQC funo de aptido da nova clusterizao Ci;
11. Seno
12. Manter vi no cluster original da clusterizao Ci-1;
13. Fim se;
14. Fim para;
15. Retornar a clusterizao Cn.

Figura 5.1.5 Algoritmo de busca local aplicado a uma clusterizao C
0

Noutra bateria de testes, a idia, foi a de avaliar o impacto do uso de vrias das
propostas em conjunto. Para isso, foram selecionadas alguns mdulos a serem
consideradas:
taxa de aplicao do operador mutao igual a 0,0040;
calibrao no operador mutao;
seleo por torneio com 2 indivduos participantes, ou;
seleo por torneio com 4 indivduos participantes;
operador de cruzamento utilizando proposta GGA;
diversificao aps 10 geraes sem evoluo mdia da populao, ou;
diversificao aps 25 geraes sem evoluo mdia da populao;
insero do procedimento de busca local.
26
O total de combinaes das propostas acima, gerou 135 verses do AGT incluindo a
verso original proposta em [13], e dentre eles as 9 de melhor desempenho so listadas a
seguir:
Para identificao das caractersticas de cada verso hbrida indicada na Tabela 5.1.1,
devem ser considerados os seguintes indicadores no nome da verso:
1 = utilizao da taxa de aplicao do operador mutao igual a 0,0040;
2 = utilizao da calibrao no nmero de clusters considerados no operador mutao;
3 = utilizao do tipo de seleo por torneio, em substituio ao mtodo da roleta, com dois indivduos por
torneio;
4 = utilizao do tipo de seleo por torneio, em substituio ao mtodo da roleta, com quatro indivduos por
torneio;
5 = substituio do operador de cruzamento de um ponto, pelo operador de cruzamento proposto no GGA de
Falkenauer Erro! A origem da referncia no foi encontrada.;
6 = ativao do procedimento de diversificao da populao aps 10 geraes sem uma melhora no valor do
MQ mdio dos indivduos da populao;
7 = ativao do procedimento de diversificao da populao aps 25 geraes sem uma melhora no valor do
MQ mdio dos indivduos da populao;
8 = aplicao do procedimento de busca local ao melhor indivduo de cada gerao.
Desta forma, a verso AEH123568, por exemplo, corresponde ao AGT com a utilizao
das opes 1, 2, 3, 5, 6 e 8. Considerando todos estes experimentos apresentados, as
nove verses hbridas, que obtiveram os melhores resultados mdios (e resultados
similares) so indicadas na Tabela 5.1.1 (no sendo considerada uma ordem especfica
das verses).
Nome da Verso
AEH123568
AEH12378
AEH124568
AEH12368
AEH12478
AEH13578
AEH1368
AEH14568
AEH1468
Tabela 5.1.1 Verses hbridas mais eficientes
Na Tabela 5.1.2 so apresentados os valores mdios para a funo MQ dos melhores
indivduos obtidos aps a concluso das 10 execues de cada uma das melhores
verses hbridas (indicadas na Tabela 5.1.1), para cada um dos grafos considerados.
27
Grafo Sol.
Best
AEH
123568
AEH
12378
AEH
124568
AEH
12468
AEH
12478
AEH
13578
AEH
1368
AEH
14568
AEH
1468
A10 0,7083 0,7083 0,7083 0,7083 0,7083 0,7083 0,7083 0,7083 0,7083 0,7083
A20 0,7371 0,7371 0,7371 0,7371 0,7371 0,7371 0,7371 0,7371 0,7371 0,7371
A40 0,7087 0,6806 0,6806 0,6806 0,6806 0,6806 0,6818 0,6806 0,6806 0,6806
A60 0,7402 0,7402 0,7402 0,7402 0,7402 0,7402 0,7402 0,7402 0,7402 0,7402
A80 0,7780 0,7780 0,7780 0,7780 0,7780 0,7780 0,7780 0,7780 0,7780 0,7780
A100 0,8092 0,8092 0,8092 0,8092 0,8092 0,8092 0,8092 0,8092 0,8092 0,8092
E10 0,7083 0,7083 0,7083 0,7083 0,7083 0,7083 0,7083 0,7083 0,7083 0,7083
E20 0,7089 0,7089 0,7089 0,7089 0,7089 0,7089 0,7089 0,7089 0,7089 0,7089
E40 0,6485 0,6485 0,6485 0,6485 0,6485 0,6485 0,6485 0,6485 0,6485 0,6485
E60 0,7402 0,7402 0,7402 0,7402 0,7402 0,7402 0,7402 0,7402 0,7402 0,7402
E80 0,7075 0,7075 0,7075 0,7075 0,7075 0,7075 0,7075 0,7075 0,7075 0,7075
E100 0,6980 0,6980 0,6980 0,6980 0,6980 0,6980 0,6980 0,6980 0,6980 0,6980
Tabela 5.1.2 Valores mdios para a funo MQ dos melhores indivduos obtidos aps
a concluso das 10 execues de cada uma das melhores verses hbridas
Para cada uma as nove melhores verses hbridas (AEH), todas as execues
utilizando os grafos considerados com at 100 vrtices obtiveram a soluo best, exceto
as que utilizaram o grafo A40, conforme mostrado na Tabela 5.1.2. Isto significa que
cada linha da Tabela 5.1.2 contm os mesmos valores, ou seja, os valores mdios so
todos iguais ao best para todas as verses hbridas, excetuando-se aqueles referentes ao
grafo A40.
O valor best dado ao melhor valor considerando todas as solues geradas por
todos os algoritmos aqui implementados para uma dada instncia. Um aspecto
importante a ser observado com relao s nove melhores verses hbridas que todas
elas possuem no mnimo quatro propostas combinadas: alterao na taxa de aplicao
do operador mutao, seleo por torneio, incluso do procedimento de diversificao e
incluso do procedimento de busca local.
Para verificar se so significativas as diferenas entre os tempos mdios de
execuo de todas as verses utilizando cada grafo, as duas ltimas colunas da Tabela
5.1.3 apresentam os valores referentes ao tempo mdio de execuo para cada grafo e o
desvio padro considerando todas as verses. Com bases nos valores indicados na
Tabela 5.1.3 pode-se concluir que no existe uma relao direta entre o nmero de
mdulos utilizados em uma verso e o seu tempo mdio de execuo, tendo em vista
que, mesmo comparando duas verses, estas podem apresentar comportamentos
diferentes (em relao ao tempo de execuo) para grafos diferentes. Pode-se concluir
tambm que no existe uma diferena significativa entre os tempos mdios de execuo
das diferentes verses hbridas.

28
Grafo AEH
123568
AEH
12378
AEH
124568
AEH
12468
AEH
12478
AEH
13578
AEH
1368
AEH
14568
AEH
1468
Mdia Desvio
Padro
A10 0,094 0,089 0,091 0,093 0,091 0,086 0,086 0,090 0,090 0,090 0,002
A20 0,464 0,448 0,464 0,463 0,446 0,430 0,440 0,439 0,443 0,449 0,011
A40 2,639 2,620 2,654 2,649 2,625 2,543 2,564 2,574 2,569 2,604 0,040
A60 8,925 8,504 8,916 8,908 8,472 8,336 8,763 8,762 8,784 8,708 0,202
A80 17,255 17,225 17,259 17,187 17,246 16,985 17,020 17,000 16,980 17,129 0,119
A100 31,222 31,283 31,345 31,154 31,416 31,101 30,679 30,902 30,946 31,116 0,234
E10 0,092 0,092 0,090 0,090 0,089 0,083 0,089 0,089 0,089 0,089 0,002
E20 0,466 0,448 0,464 0,464 0,446 0,423 0,445 0,445 0,447 0,450 0,012
E40 2,643 2,552 2,645 2,638 2,554 2,469 2,558 2,573 2,572 2,578 0,052
E60 9,065 8,626 9,073 9,055 8,596 8,456 8,893 8,866 8,908 8,838 0,211
E80 17,254 16,704 17,249 17,244 16,687 16,406 16,984 16,968 16,972 16,941 0,271
E100 32,221 31,360 32,189 32,166 31,406 30,932 31,804 31,765 31,797 31,738 0,399
Tabela 5.1.3 Tempo mdio para a execuo completa de cada verso hbrida (em segundos)
Para verificar se as melhores verses hbridas para os grafos de 10 a 100 vrtices
mantm seus desempenhos para grafos maiores, foram realizados tambm experimentos
para os grafos com 160, 200, 500 e 1000 vrtices. Para cada grafo foram realizados 2
experimentos para cada uma das nove melhores verses hbridas. Com o objetivo de
reduzir o tempo de execuo das verses hbridas para os grafos com 500 e 1000
vrtices, foram considerados o tamanho da populao fixo e igual a 200 indivduos e um
total de 4000 geraes. Os valores mdios para a funo MQ, obtidos por cada verso
aplicada a cada grafo, so mostradas na Tabela 5.1.4 So indicados em negrito os
resultados que igualaram ou superaram a soluo best.
Grafo Sol.
Best
AEH
123568
AEH
12378
AEH
124568
AEH
12468
AEH
12478
AEH
13578
AEH
1368
AEH
14568
AEH
1468
A160 0,9090 0,9090 0,9090 0,9090 0,9090 0,9090 0,9090 0,9090 0,9090 0,9090
A200 0,8783 0,8882 0,8882 0,8885 0,8883 0,8878 0,8888 0,8885 0,8888 0,8892
A500 0,8785 0,8853 0,8852 0,8837 0,8841 0,8850 0,8711 0,8673 0,8668 0,8682
A1000 0,9415 0,9507 0,9499 0,9513 0,9467 0,9512 0,9257 0,9300 0,9303 0,9297
E160 0,7364 0,7364 0,7364 0,7364 0,7364 0,7364 0,7364 0,7364 0,7364 0,7364
E200 0,7662 0,7662 0,7662 0,7662 0,7662 0,7662 0,7662 0,7662 0,7662 0,7662
E500 0,8759 0,8759 0,8759 0,8759 0,8759 0,8759 0,8759 0,8759 0,8759 0,8759
E1000 0,8865 0,8865 0,8865 0,8865 0,8865 0,8865 0,8865 0,8865 0,8865 0,8865
Tabela 5.1.4 Valores mdios de MQ para as solues obtidas com as verses hbridas do AGT
para grafos com 160 e 200 vrtices
29
Nos experimentos utilizando os grafos com dimenses elevadas, as verses hbridas
AEH123568, AEH12378, AEH124568, AEH12469 e AEH12478 conseguiram
alcanar a soluo best em todas as suas execues. Vale observar que, para os grafo
A200, A500 e A1000, estas verses hbridas conseguiram obter solues melhores do
que a soluo best (recordando, o valor best o melhor valor entre o valor de MQ das
solues obtidas considerando todas as verses).
Concluso
Os resultados apresentados neste captulo mostraram que a combinao das propostas
apresentadas, atravs de verses hbridas do AGT, permite a obteno de solues ainda
melhores do que se forem utilizadas separadamente. Alm do excelente desempenho
obtido para os grafos de 10 a 100 vrtices, algumas verses hbridas conseguiram
manter este desempenho para grafos ainda maiores, com 160, 200, 500 e 1000 vrtices.
Por fim, apesar de no termos mostrado explicitamente, vale lembrar que a verso da
literatura [13], no ficou sequer entre as 100 melhores verses do total de 135 verses
avaliadas preliminarmente.
5.2. Clusterizao em Sistemas de Manufatura
O problema de formao de clulas de manufatura (PFCM) na sua verso
original representado como uma matriz parte x mquina onde as linhas
representam as partes e as colunas s mquinas, ou vice-versa. Considerando aqui uma
matriz A = (parte x mquina), cada clula a
ij
da matriz igual a 1 se parte i utiliza a
mquina j, e 0 caso contrrio; a formao dos grupos (clusters) clula / famlia feita
atravs da permutao das linhas e colunas desta matriz. Por exemplo na tabela 2.1,
considere um fluxo de produo composto por 6 partes, 4 mquinas e 14 atividades
(posies da matriz com valor 1). As tabelas 5.2.1 e 5.2.2 representam respectivamente
a matriz de entrada do problema e uma possvel matriz soluo com formao de duas
clulas/famlias.

Tabela 5.2.1: Matriz de entrada do um PFCM Tabela 5.2.2: exemplo de uma clusterizao
Na matriz da tabela 5.2.2 existem duas famlias: [P1,P3,P6] e [P2,P4,P5]. Associadas a
estas famlias temos 2 clulas: [M2,M3] e [M1,M4].
Este problema (PFCM), j razoavelmente explorado pela literatura. O objetivo desta
seo citar alguns trabalhos existentes que acreditamos serem mais significativos para
o enfoque deste trabalho. Um AG para o PFCM apresentado por Joines et al. (1996)
[19]. O algoritmo utiliza 4 tipos de mutao e 3 tipos de crossover, obtendo bons
resultados segundos seus autores. Em Wang(1998) [43], apresentada uma heurstica
que, numa primeira etapa, determina a criao de k famlias (grupos de partes) ou
M1 M2 M3 M4
P1 1 1
P2 1 1 1
P3 1 1
P4 1 1
P5 1 1
P6 1 1 1
M2 M3 M1 M4
P1 1 1
P3 1 1
P6 1 1 1
P2 1 1 1
P4 1 1
P5 1 1
30
clulas (grupos de mquinas), onde k um parmetro de entrada; atravs da
determinao dos k pares de partes ou mquinas mais dissimilares, de acordo com um
ndice de dissimilaridade calculado entre elas. A partir da, feita uma atribuio das
partes e mquinas restantes s clulas e famlias existentes com base num modelo de
atribuio linear. Porm, as solues se mostram fortemente dependentes do parmetro
inicial k e do nmero mximo de mquinas por clulas e de partes por famlia. Uma
metaheurstica Busca Tabu foi proposta Aljaber et al. (1997) [2], sendo que ela se
constitui basicamente de trs fases: a primeira constitui-se na determinao do melhor
sequenciamento de mquinas e partes, de maneira a se formar dois caminhos mnimos;
um caminho para partes e outro para mquinas, onde as distncias entre mquinas e
entre partes esto diretamente relacionadas com o grau de similaridade entre elas. Estes
dois caminhos so determinados atravs da aplicao do algoritmo de busca tabu
propriamente dito. Numa segunda fase, montada a matriz de clusterizao referente
melhor soluo encontrada na primeira fase. A terceira fase se constitui da determinao
do nmero de clusters atravs da identificao das fronteiras de cada cluster. Porm
necessita da informao de um limite superior de clusters a serem formados que deve
ser informado inicialmente pelo usurio. Em Mak et al. (2000) proposto um AG
adaptativo onde as taxas de utilizao dos operadores de mutao e crossover mudam de
acordo com a eficincia dos mesmos ao longo da execuo do algoritmo. Em 2002,
Gonalves e Resende (2002) [18] apresentaram um algoritmo gentico hbrido (HGA)
que incorpora ao AG bsico um procedimento de busca local, tendo este algoritmo
igualado ou melhorado os resultados existentes na literatura para 35 instncias do
PFCM. O HGA constri uma populao inicial de indivduos de forma aleatria; o
critrio de parada pelo nmero de iteraes; a funo de aptido a mesma que a
usada em Joines et al. (1996) [19] e dada pela frmula:



onde: e = o nmero de operaes (1s) na matriz de entrada; e
v
= o nmero de lacunas
nos blocos diagonais (clulas/famlias), que representam a esparcidade de cada cluster;
e
0
= nmero de elementos excepcionais (elementos preenchidos com 1 que no
pertencem s clulas/famlias). Observa-se que a funo de avaliao procura minimizar
o nmero de elementos excepcionais (ou rudos) minimizando o movimento entre
clusters; e lacunas nos clusters (clulas/famlias), maximizando o uso das mquinas nos
clusters. Quanto mais prximo de 1 o seu valor, melhor ser a soluo. A busca local
proposta aplicada a todos os indivduos e iniciada sob uma soluo parcial, ou seja,
sob uma soluo que ainda no possui um conjunto de famlias de partes. Basicamente
ela se constitui de dois passos, que so os seguintes: Inicialmente a associao de partes
a clulas feita com base no clculo de um coeficiente, de maneira que cada parte
associada clula para a qual possui o maior coeficiente. Caso esta nova associao de
partes a clulas aumente a aptido da soluo, ento se executa o passo seguinte sob a
nova soluo, seno a busca local finalizada e as partes so associadas s suas clulas
originais. Se for a primeira execuo do passo 1, isto significa que foi formado o
primeiro conjunto de famlias da soluo e ento o passo 2 deve ser obrigatoriamente
executado. Num passo 2, depois de feita a associao das partes, ser formado um
v
e e
e e
+

=
0
31
conjunto de famlias que estaro associadas s clulas de forma similar ao passo
anterior. Caso esta nova associao de mquinas aos clusters aumente a aptido da
soluo ento se executa novamente o passo 1 sob o novo conjunto de clulas formado,
seno a busca local finalizada.
O algoritmo Evolutivo proposto (AE) para o PFCM
Esta sesso descreve resumidamente as etapas do AE aqui proposto [40].
Representao do indivduo: Como proposto em Joines et al. (1996) [19], cada
indivduo composto por (m+n) genes, onde m representa o nmero de mquinas e n o
nmero de partes do problema. Desta forma, um indivduo representado como um
string da forma C = (x
1
,...x
m
| y
1
,...y
n
). Cada gene x
i
ou y
i
assume valores inteiros, sendo
feita alocao de (mquinas a clulas) e (partes a famlias) simultaneamente.
Considere o indivduo, para um problema de 12 mquinas, 15 partes e 4
clulas/famlias: C
1
= (2 4 2 3 2 3 4 1 3 4 3 1 | 2 4 2 4 1 1 2 2 1 1 3 3 4 4 3). Cada gene
x
i
indica para qual clula cada mquina alocada. Por exemplo, em C
1
o gene 1 (x
1
=2)
significa que a mquina M
1
alocada para a clula 2 e cada gene y
i
indica para qual
famlia cada parte alocada. O gene m+1 = y
1
= 2 significa que parte P
1
alocada
para a famlia 2.
Funo de aptido: A funo de avaliao usada neste trabalho a mesma usada em
Joines et al. (1996) [19] e em Gonalves et al. (2002) [18] e j descrita anteriormente.
Gerao da Populao inicial: A populao inicial constitui-se parte de indivduos
gerados aleatoriamente e parte de indivduos gerados atravs de um procedimento
heurstico. Este procedimento baseado na heurstica apresenta por Wang (1998)
(veja detalhes em [40]) para resolver o PFCM. Esta heurstica adaptada incorporando
escolhas aleatrias numa lista restrita composta pelos k melhores candidatos para cada
gene de um indivduo. A heurstica de construo de indivduos dividida em trs fases
descritas a seguir:
P1) Na 1 fase so escolhidos os 3 pares de mquinas menos similares (que possuem o menor nmero de
partes atendidas em comum).
P2) Na 2 fase escolhido aleatoriamente um par dentre os 3 pares de mquinas determinados em P1)
como sendo os dois clusters iniciais da soluo. A partir da, cada novo cluster inicial determinado
como sendo a mquina menos similar aos clusters j formados. Este processo se repete at que sejam
gerados os k clusters, onde k um parmetro de entrada da heurstica. Aps o trmino desta fase, os k
clusters iniciais estaro determinados.
P3) Na 3 fase, para cada mquina so determinados o 1 e o 2 cluster com maior ndice de similaridade
(n de partes atendidas em comum entre a mquina e pelo menos uma mquina do cluster) em relao a
ela. Ento a mquina atribuda aleatoriamente a um dos dois, desde que o nmero mximo de
mquinas por cluster no cluster escolhido no esteja alcanado. Caso isso acontea, a mquina
atribuda a um cluster qualquer que no tenha excedido o nmero mximo de mquinas. O nmero
mximo de mquinas por cluster calculado como sendo igual a
(
1 ) mquinas/k de n ( + e o nmero
mximo de partes por cluster igual a
(
1 partes/k) de n ( + .
O processo de atribuio das partes aos clusters idntico ao processo de atribuio das
mquinas aos clusters. A nica diferena que a similaridade entre uma parte e um
cluster dada pelo nmero de mquinas do cluster em questo que servem referida
32
parte. No nosso AE, so gerados 5m indivduos na primeira iterao. Destes,
permanecem os m mais aptos, onde m representa o tamanho da populao.
Estratgia de seleo dos indivduos reprodutores: Esta fase trata da escolha dos
indivduos que iro servir como pais para o processo de reproduo e tambm para
decidir entre os pais e filhos gerados, quais iro para a prxima gerao. Escolher
simplesmente os melhores indivduos pode levar o algoritmo gentico a uma parada
prematura em timos locais ainda distantes de timos globais. Em razo disto, neste
trabalho foi dada uma probabilidade a cada indivduo de ser selecionado, de acordo com
o seu valor de aptido; sendo a probabilidade de escolha maior para indivduos de
melhor aptido e menor para indivduos de pior aptido.
Mecanismo de reproduo: Em nosso trabalho o operador de crossover foi substitudo
por um mecanismo de reproduo da seguinte forma: A partir de p (p 2) pais geramos
p filhos. Escolhidos os p pais para a reproduo (atravs de um processo de seleo
mostrado no item anterior, onde p um parmetro de entrada da reproduo), cada gene
do filho referente a uma mquina receber aleatoriamente o valor correspondente a uma
das k clulas nas quais a presena desta mquina mais freqente, com base nas p
solues pai, onde k um parmetro de entrada. Aps a associao das mquinas, para
cada parte feita uma lista das k mquinas que mais aparecem no mesmo cluster da
referida parte, com base nas p solues pai, sendo k tambm um parmetro de
entrada. Ento cada parte associada famlia correspondente clula que a mquina
escolhida est associada.
Procedimento de busca local: Neste trabalho foi incorporado ao algoritmo evolutivo
um procedimento de busca local que numa primeira fase procura associar as partes aos
clusters de acordo com a associao das mquinas, gerando um novo conjunto de
famlias. Em seguida, caso a aptido da soluo seja melhorada, as mquinas so
reassociadas de acordo com as famlias formadas anteriormente, obtendo um novo
conjunto de clulas. Estas duas etapas so executadas alternadamente enquanto houver
melhoria na aptido da soluo resultante. Mais detalhadamente, os passos so os
seguintes:
P1) Para cada parte i, calculado o coeficiente abaixo, com relao a todo cluster k.
P
ik
= (N
1intrak
-N
ruidosk
- N
0intrak
) se N
1intrak
0; seno ( se N
1intrak
= 0), fao P
k
= - ;
onde:
N
1intrak
= nmero de elementos do clusters k iguais a 1 se a parte for associada a ele
N
ruidosk
= nmero de elementos iguais a 1 fora do cluster k se a parte for associada a ele.
N
0intrak
= nmero de elementos iguais a 0 dentro do cluster k se a parte for associada a ele.
A penalidade no valor de P
ik
quando N
1intrak
= 0 faz com que uma parte no seja
associada pela busca local a um cluster o qual no possui mquinas que a servem. A
seguir, cada parte associada ao cluster k para o qual possui o maior coeficiente P
ik
.
Caso haja empate, a parte ser associada para o cluster k cuja razo entre N
1intrak
e o
nmero de mquinas pertencentes ao cluster k for a maior. Caso no haja melhoria na
aptido da soluo, as partes so alocadas aos clusters originais e a busca local
terminada. Caso haja melhoria, executa-se o passo P2.
33

P2) Usa-se procedimento similar ao passo P1, mas agora se faz a mudana das
mquinas de cluster calculando-se M
ik
para cada mquina i em relao a cada cluster k,
de acordo com a alocao das partes feitas pelo passo P1. Caso haja empate entre
coeficientes, a mquina ento ser associada para o cluster k cuja razo entre N
1intrak
e o
nmero de partes pertencentes ao cluster k for a maior. A seguir, cada mquina
associada ao cluster para o qual possui o maior coeficiente. Caso no haja melhoria na
aptido da soluo, as mquinas so alocadas aos clusters originais e a busca local
terminada. Caso haja melhoria, executa-se o passo P1 novamente. Estes passos P1) e
P2) buscam o mesmo objetivo requerido pela busca local proposta em Gonalves et al.
(2002), contudo a frmula usada para atingir o objetivo em ambos so distintas.
Calibrao do nmero de clusters: Um parmetro do PFCM que influi diretamente no
resultado da soluo final o nmero de clusters (clulas) a serem formados. Se o
intervalo analisado para o nmero de clusters for demasiadamente grande, aumenta-se o
espao de busca e conseqentemente o tempo de execuo do algoritmo. Ento
importante que tenhamos uma boa estimativa para os limites inferiores e superiores
deste intervalo. Como so consideradas na literatura como solues invlidas aquelas
que contm uma mquina apenas ou uma parte apenas e dado que o nmero de
mquinas sempre menor que o nmero de partes, um limite superior do nmero de
clusters usado neste trabalho foi
(
) mquinas/2 de n ( . Este valor no evita que sejam
formadas solues com clusters unitrios, mas restringe o espao de busca, tendo em
vista que solues com um nmero de clusters maior que este limite dado possuem
obrigatoriamente clusters unitrios. O valor do limite mnimo de clusters igual a 2.
Antes da gerao de cada indivduo sorteado um nmero dentro desta faixa de limites
para ser o nmero de clusters para a soluo associada. O algoritmo ento s considera
como solues vlidas quelas sem clusters unitrios, sem clusters com linhas ou
colunas vazias ou clusters inteiramente vazios.
Parmetros do AE: No AE so usados os seguintes parmetros: A populao de cada
gerao (exceto a inicial) sempre igual a 2,5 vezes o nmero de mquinas da instncia
em questo. A busca local aplicada sobre 30% dos indivduos, sendo estes escolhidos
de acordo com o mesmo critrio de escolha de indivduos reprodutores. Para o
mecanismo de reproduo, os valores de p, k e k foram respectivamente 15% do
tamanho da populao, 10% do nmero mximo de clusters e 10% do nmero de
mquinas. Para p, caso este valor seja menor que 5, p assume o valor 5. Para k e k,
caso os valores sejam menores que 3, k e k assumem o valor 3. Para instncias em
que o valor mximo de clusters igual a 2, o valor de k igual a 2. O critrio de
parada usado foi um limite do nmero de geraes, igual a 150 geraes.
Resultados computacionais
Para avaliar o algoritmo proposto (AE), tomamos como parmetro de comparao o
algoritmo gentico hbrido (HGA) proposto por Gonalves et al. (2002) [18], que
segundo seus autores detinha os melhores resultados aproximados da literatura at
ento. Em relao ao HGA, utilizamos as instncias disponibilizadas e os resultados por
ele obtidos. Os testes computacionais com o AE foram realizados em um computador
AMD 1.410 Mhz e 250 Mb de memria. Foram utilizadas 35 instncias da literatura. O
34
AE proposto foi executado 10 vezes para cada instncia. Alm disso, os resultados
foram comparados com os resultados obtidos em: AG-JCK, proposto por Joines et al.
(1996) [19], e implementado por ns; Outros algoritmos e resultados aqui relacionados
esto disponveis em Gonalves et al. (2002) [18] como o algoritmo Zodiac, proposto
por Srinivasan e Narendan (1991); Grafics, proposto Srinivasan and Narendan (1991);
algoritmo de clusterizao proposto por Srinivasan em 1991 (Ca); algoritmo gentico
proposto por Cheng et. al em 1998 (GA) (veja detalhes em [18, 39]) A tabela 4.1 ilustra
os resultados para cada instncia (colunas 2 a 8), a coluna 9 (Imp) mostra a diferena
em percentual da soluo do AE com a melhor soluo da literatura. Para a execuo
do AG-JCK, o nmero de geraes variou de acordo com o tamanho das instncias,
como sugerido pelos autores. O nmero de geraes para as instncias foi: instncias 1 a
9, 150; 10 a 15, 500; 16 a 33, 5.000 e 34 e 35, 20.000 geraes.

Inst. Dim AG-JCK Zodiac Grafics Ca GA HGA AE Imp
1 5 x 7 73.68 73.68 73.68 - - 73.68 73.68 0%
2 5 x 7 62.50 56.52 60.87 - 69.56 62.50 62.50
*
-10.14%
3 5 x 18 79.59 77.36 - - 77.36 79.59 79.59 0%
4 6 x 8 76.92 76.92 - - 76.92 76.92 76.92 0%
5 7 x 11 53.13 39.13 53.12 - 46.88 53.13 53.13 0%
6 7 x 11 70.37 70.37 - - 70.37 70.37 70.37 0%
7 8 x 12 68.29 68.29 68.29 - - 68.29 68.29 0%
8 8 x 20 57.26 58.33 58.13 58.72 58.33 58.72 58.72 0%
9 8 x 20 85.25 85.25 85.25 85.25 85.25 85.25 85.25 0%
10 10 x 10 70.59 70.59 70.59 70.59 70.59 70.59 70.59 0%
11 10 x 15 92.00 92.00 92.00 - 92.00 92.00 92.00 0%
12 14 x 23 66.67 64.36 64.36 64.36 - 69.86 69.86 0%
13 14 x 24 69.33 65.55 65.55 - 67.44 69.33 69.33 0%
14 16 x 24 44.92 32.09 45.52 48.7 - 51.96 51.96 0%
15 16 x 30 56.82 67.83 67.83 67.83 - 67.83 67.83 0%
16 16 x 43 54.86 53.76 54.39 54.44 53.89 54.86 54.86 0%
17 18 x 24 51.26 41.84 48.91 44.20 - 54.46 54.46 0%
18 20 x 20 40.91 21.63 38.26 - 37.12 42.96 42.96 0%
19 20 x 23 47.77 38.66 49.36 43.01 46.62 49.65 49.65 0%
20 20 x 35 76.22 75.14 75.14 75.14 75.28 76.14 76.14 -0,10%
21 20 x 35 56.52 51.13 - - 55.14 58.06 58.06 0%
22 24 x 40 100.00 100.0 100.0 100.0 100.0 100.0 100.0 0%
23 24 x 40 85.11 85.11 85.11 85.11 85.11 85.11 85.11 0%
35
24 24 x 40 50.44 73.51 73.51 73.51 73.03 73.51 73.51 0%
25 24 x 40 51.50 20.42 43.27 51.81 49.37 51.85 51.97 +0,23%
26 24 x 40 42.39 18.23 44.51 44.72 44.67 46.5 47.06 +1,20%
27 24 x 40 42.94 17.61 41.67 44.17 42.50 44.85 44.87 +0,04%
28 27 x 27 54.23 52.14 41.37 51.00 - 54.27 54.27 0%
29 28 x 16 21.49 33.01 32.86 40.00 - 43.85 44.62 +1,76%
30 30 x 41 53.55 33.46 55.43 55.29 53.80 57.69 57.93 +0,42%
31 30 x 50 55.45 46.06 56.32 58.7 56.61 59.43 59.66 +0,39%
32 30 x 50 42.02 21.11 47.96 46.30 45.93 50.51 50.51 0%
33 30 x 90 15.78 32.73 39.41 40.05 - 41.71 43.66 +4,68%
34 37 x 53 56.83 52.21 52.21 - - 56.14 57.54 +2,49%
35 40x100 84.03 83.66 83.92 83.92 84.03 84.03 84.03 0%
Tabela 5.2.3: resultados obtidos por algoritmos da literatura e o algoritmo proposto [39.
40].
Pelos resultados da tabela 5.2.3, onde os melhores resultados esto em negrito, podemos
notar que o AE conseguiu melhores resultados isoladamente para 8 das 35 instncias,
obteve a mesma melhor soluo da literatura em outros 25 e para as instncias 2 e 20
obteve uma soluo com pior aptido que a da literatura. Porm vale ressaltar que a
soluo encontrada para a instncia 2 pelo algoritmo GA contm clusters unitrios, o
que no permitido no nosso AE e no HGA. Para verificar o desempenho do AE sem
esta restrio, executamos o AE e obtivemos na verso relaxada mesma soluo do
GA. A anlise dos tempos de cpu do AE ser descrita resumidamente sem tabelas
devido limitao do tamanho deste paper. Os tempos de cpu do nosso AE foi em
mdia de duas a 4 vezes menor que o tempo exigido pelo HGA. Na maior instncia
(35), o tempo do AE foi de 62,32 segundos e no HGA de 125, 33 segundos. Em relao
ao AG-JCK, os tempos para instncia menores o AG-JCK foi mais rpido que o AE,
mas medida que as dimenses cresciam o tempo do AG-JCK foi se tornando bem
maior que o do AE. Por exemplo, na instncia 34, o tempo do AG-JCK foi de 1765,91
segundos e do AE de 19, 49 segundos.
Concluses
Pelos resultados computacionais, podemos concluir que o algoritmo proposto obteve em
relao qualidade das solues, resultados mdios superiores do que os algoritmos
propostos na literatura e em particular na mdia superou os resultados obtidos pelo
HGA proposto em Gonalves et al. (2002) [18] que at ento detinha os melhores
resultados aproximados da literatura. Tambm em relao aos tempos computacionais, o
nosso AE exige tempos similares ou at menores que os de HGA. Desta forma, embora
de forma emprica, mostramos o potencial do algoritmo evolutivo aqui proposto, que
nos testes realizados se mostrou superior tanto nas solues por ele geradas como nos
tempos computacionais exigidos.

36

5.3 Clusterizao Automtica: Um novo Algoritmo Evolutivo com
Reconexo de Caminhos (AEC-RC)
Apresentamos aqui, uma nova proposta para a soluo do PCA usando conceitos
de AEs. O AEC-RC, composto de trs mdulos: o mdulo de construo, o mdulo
evolutivo e o mdulo de busca local atravs de reconexo de caminhos. Em termos de
aplicao de algoritmos de clusterizao, o AEC-RC difere da maioria dos AGs, uma
vez que o mesmo capaz de resolver o problema de agrupamento e tambm resolver o
problema de encontrar o nmero ideal de clusters.
Uma vez que, em geral, as bases de dados das aplicaes de PCA apresentam um
nmero consideravelmente elevado de elementos, buscamos desenvolver uma heurstica
de construo eficaz para tratar de bases de dados de grande porte e com caractersticas
tais como: regies densas e esparsas, rudos, caractersticas estas, usualmente presentes
na maioria das aplicaes reais.
A fase de construo do AEC-RC
A fase de construo do AEC-RC aqui proposta tem como meta, tentar reduzir o
espao de busca das solues viveis do PCA buscando com isso, tanto melhorar a
qualidade das solues geradas pelo algoritmo como tambm reduzir consideravelmente
os tempos computacionais exigidos. De fato, sabe-se que o tamanho da string que
codifica um indivduo em um AG pode influir no tempo de processamento do mesmo.
Assim, dependendo da codificao utilizada pelo AG para o PC, pode ser interessante
substituir grupos de pontos cuja similaridade considerada alta, por um nico ponto.
Podemos tomar cada objeto x
i
de um conjunto de entrada como uma tupla (x
i1
, x
i2
, . ,
x
ip
), onde cada coordenada x
ij
est relacionada com um atributo do objeto. Podemos,
ento, considerar um objeto como um ponto no espao R
p
. Desta forma, a substituio
de um grupo de pontos similares por um nico ponto que os represente pode ser feita
tomando-se o ponto mdio calculado segundo as coordenadas de todos os pontos deste
grupo. Nossa proposta apresentarmos uma abordagem hierrquica baseada em grafos
para reduzir o tamanho da string que codifica o indivduo no AE e ao mesmo tempo
tirar proveito desta representao na ocasio da gerao da populao do AEC-RC.
Considere os pontos de uma base de dados X como vrtices de um grafo construdo
conforme o conceito de grafo de vizinhana relativa (GVR) (Toussaint (1980) [41]). O
GVR do conjunto X, denotado GVR(X), o grafo associado matriz de adjacncia M
dada por:


=
) 1 . 3 . 5 ( , 0
, , )], , ( ), , ( [ max ) , ( 1
] , [
contrrio caso
j i k X x x x d x x d j i d se
j i M
k k j k i

onde d(i,j) denota a distncia euclidiana entre os pontos x
i
e x
j
. A equao (5.3.1) diz
que dois pontos x
i
e x
j
so ditos vizinhos relativos se no existir nenhum outro ponto x
k

cuja distncia em relao x
i
e x
j
seja inferior a d(i,j). O GVR(X) o grafo G(V,E) onde o
conjunto de vrtices V formado por todos os pontos do conjunto X e o conjunto de
arestas E formado por todos os arcos e
ij
cujo valor de M[i,j] igual a 1. Como
37
podemos observar, os componentes conexos de GV R(X) so agrupamentos que
refletem uma viso de vizinhana mnima, ou seja, considerando m como sendo o
nmero de componentes conexos obtidos de GVR(X), podemos esperar, como nmero
mximo de clusters o valor m (m < n) e como nmero mnimo 2.
Para concluir a fase de construo do AEC-RC, tomamos os componentes conexos de
GVR(X) e obtemos o conjunto G = {G
1
,G
2
, . . .,G
m
}, onde cada G
i
um componente
conexo candidato a se tornar um cluster raiz, e V
i
, para i = 1, . . ., m o centride do
componente conexo G
i
. Devemos, ento, efetuar agrupamentos entre G
i
s de forma a
termos a clusterizao final. Isto feito no sentido de otimizar uma funo objetivo,
tarefa realizada pelo mdulo evolutivo do AGS. Antes de explicarmos como se constri
a populao inicial do AGS, importante entendermos a modelagem utilizada para a
codificao do indivduo. Para tanto, considere uma string binria r = (r
1
, r
2
, . . ., r
m
),
representando uma soluo (semente). Se r
i
= 1, o cluster G
i
G far parte da soluo
como cluster pai (cluster raiz). Caso contrrio (r
i
= 0), G
i
considerado um cluster filho
e ser posteriormente associado a um dos clusters pais indicados pelos r
i
s que constam
na string como sendo iguais a 1. Como exemplo, da string r = [0 1 0 1 0 0 0 1 ] de uma
entrada que gerou um conjunto G = {G
1
,G
2
,G
3
,G
4
,G
5
,G
6
,G
7
,G
8
}, onde cada G
i
um
componente conexo de GVR(X), podemos dizer que a soluo apresentar trs clusters,
inicialmente G
2
, G
4
e G
8
(clusters pais). Os demais clusters (G
1
,G
3
,G
5
,G
6
e G
7
) so os
clusters filhos, cujos pontos sero anexados a um dos clusters pais para formar com este
um novo cluster conforme o critrio de similaridade adotado. Na gerao do string que
codifica uma soluo, procuramos priorizar os componentes conexos com maior
cardinalidade. Assim, a gerao da populao inicial do AEC-RC se d de tal forma que
a probabilidade de ocorrer o valor 1 em cada elemento r
i
da string r proporcional
cardinalidade do componente conexo G
i
G. Apresentamos agora o processo de
formao de um cluster, ou seja, a transformao de uma semente em soluo
propriamente dita. Aps a gerao da semente, considere Y = {G
1
,G
2
, . . ., G
t
} o
conjunto formado pelos componentes conexos G
i
s associados aos elementos cujo valor
1 no string indivduo. O conjunto soluo C = {C
1
, . . ., C
t
} inicialmente formado
pelos t clusters iniciais G
i
s Y e os centrides iniciais H
i
s dos clusters da soluo so,
inicialmente, os centrides V
i
s destes clusters iniciais, onde |C
i
| = |G
i
| para i = 1, 2, . . ,
t e |G
i
| denota o nmero de pontos pertencentes a G
i
. No processo de clusterizao, os
componentes G
i
s em C\Y = {G
1
,G
2
, . . ., G
m
} - Y so analisados um de cada vez de tal
forma que o cluster C
j
C ir anexar os pontos do componente conexo G
i
se ||V
i
- H
j
||
||V
i
- H
q
|| para 1 q t e q j. Quando algum componente conexo G
i
associado a um
cluster C
j
, a nova cardinalidade de C
j
, denotado por |C
j
|, e o novo centride de C
j
,
denotado por H
j
so atualizados pelas equaes (5.3.2) e (5.3.3).
) 2 . 3 . 5 (
| | | |
| | * | | *
'
i j
i i j j
j
G C
G V C H
H
+
+
=


) 3 . 3 . 5 ( | | | | | |
'
i j j
G C C + =
38
Aps todos os componentes conexos cujos ndices na string apresentam valor zero
tiverem sido associados aos clusters pais indicados pelos ndices cujo valor igual a 1, a
clusterizao est concluda e podemos ento avaliar a qualidade da mesma.
O Mdulo Evolutivo do AEC-RC
O mdulo evolutivo do AEC-RC compe-se de um AG cuja populao inicial gerada
segundo as densidades dos componentes conexos obtidos na fase de construo. Como
podemos ver, o nmero de uns (1s) no indivduo fornecer o nmero de clusters do
mesmo. Assim, podemos ver facilmente que dentro do intervalo [1,m], com m dado pelo
nmero de componentes conexos, o nmero ideal de clusters a ser encontrado pelo
algoritmo bem menor quando comparado ao nmero de combinaes possveis dentro
do intervalo original [1, n] dado pela cardinalidade da base de dados X. Para avaliar um
indivduo, utilizamos o critrio Average Silhouette Width apresentado em Kaufman
(1989) [22]. Antes de explicarmos os mecanismos dos operadores do AEC-RC,
definimos a funo de avaliao que resulta no fitness de cada indivduo. Para tanto,
seja i um ponto pertencente ao cluster C
w
construdo na clusterizao, onde |C
w
| = M >
1. Considere a dissimilaridade mdia de i em relao a todos os pontos j C
w
dada pela
equao (5.3.4), onde d
ij
a distncia euclidiana descrita pela equao entre os pontos i
e j. Nos casos em que Cw possuir um nico elemento, definimos a(i) = 0.
) 4 . 3 . 5 (
1
1
) (
1

=
M
j
j i
i j d
M
i a

Considere, ainda, cada um dos clusters C
k
C com k w. A dissimilaridade mdia do
ponto i em relao a todos os pontos de C
k
mostrada na equao (5.2.5), onde M o
nmero de pontos do cluster C
k
.
) 5 . 3 . 5 (
| |
1
) , (
1

=
=
M
i
k j i k
C j d
M
C i d

Denota-se b(i) o menor valor dentre todos os d(i,C
k
), o que obtido pela equao
(5.2.6). Note que b(i) obtido pelo cluster que seja o vizinho mais prximo do ponto i
) 6 . 3 . 5 ( ) , ( min ) ( C i d i b
w k
c C
=
Definimos o valor da silhueta do ponto i pela equao , dada por:
) 7 . 3 . 5 (
) ) ( ), ( ( max
) ( ) (
) (
i b i a
i a i b
i s

=

Para avaliarmos a qualidade da soluo, calculamos a mdia aritmtica de todos os s(i)s
obtidos. Desta forma, a funo de aptido do indivduo dada por:
S i a sujeito
i s
N
f
N
i

=

=
) 8 . 3 . 5 ( ) (
1
1

39
Para efetuar a seleo dos indivduos reprodutores, o operador utilizado o Mtodo da
Roleta. Entretanto, como a equao que define a aptido do indivduo admite valores
dentro do intervalo [-1, 1], portanto podendo assumir valores negativos, aumentamos
uma unidade no valor de f para cada indivduo. Ao final do processamento, subtramos
uma unidade do valor de f do indivduo campeo. O operador de crossover utilizado no
AEC o crossover de dois pontos. Foram desenvolvidos dois operadores de mutao
clssicos para o AEC cujo emprego alternado a cada cruzamento.
O Mdulo de Reconexo de caminhos (RC)
A busca local aplicada em AEs tem encontrado bastante aceitao por parte dos
pesquisadores desta rea (veja [14, 31, 32, 33, 34, 35]), fazendo crescer o interesse no
desenvolvimento de trabalhos na rea de Algoritmos Evolutivos. Neste contexto, a
Reconexp por Caminhos (RC) (Path-Relinking) apresenta-se como uma tcnica de
busca alternativa eficiente em relao s buscas tradicionais [16]. O RC consiste em
gerar todas as solues intermedirias entre uma soluo base (SB) e uma soluo alvo
(AS). Normalmente ambas as solues so escolhidas dentre as melhores geradas at o
momento pela heurstica. Pode-se pesquisar no sentido SB para AS ou vice versa, ou em
ambas as direes se isso for conveniente. O princpio bsico do RC o de que entre
duas solues de qualidade pode existir uma terceira melhor que os extremos [16].

RESULTADOS COMPUTACIONAIS E ANLISE QUALITATIVA
Inicialmente para avaliar o AEC-RC, implementamos este e tambm um AG da
literatura que segundo os autores apresentavam os melhores resultados para o PCA at
ento. Para isso, antes de comentarmos detalhes das nossas simulaes, vamos
resumidamente descrever o AG da literatura CLUSTERING. O algoritmo
CLUSTERING de Lin and Shiueng (2001) (veja detalhes em [38]) consiste de um
Algoritmo Gentico (AG) que, a exemplo do AEC-RC, tambm se prope resolver o
PCA. Este algoritmo faz uso de uma heurstica baseada em busca binria para a
obteno da melhor soluo atravs de vrias chamadas do prprio AG com variaes
de um peso w que, presente na funo de aptido, prioriza uma clusterizao com
muitos ou poucos clusters conforme w cresa ou diminua. Antes de iniciar a execuo
do CLUSTERING, vamos explicar a etapa de construo que utiliza tambm conceitos
de componentes conexos como no AEC-RC, mas utilizando frmulas e critrios
diferentes da nossa proposta. Salienta-se que nossa proposta surgiu da necessidade de
melhorar o desempenho desta construo de Lin e Shiueng (2001) que como veremos
apesar da idia ser muito boa, a forma de definir os seus passos extremamente
instvel. No CLUSTERING calcula-se, para cada ponto i, distncia euclidiana entre este
ponto e seu vizinho mais prximo, denotada d
v
(i) e em seguida toma-se a mdia destas
distncias, dada por ) (
1
i d
N
i
v
=
= para i = 1 ... N, onde N o tamanho do conjunto de
entrada. A viso de vizinhana do algoritmo dependente de um parmetro de
entrada , que ser usado para a construo da matriz de adjacncia M do conjunto de
entrada. A matriz M gerada de acordo com a equao (5.3.9).
40
) 9 . 3 . 5 (
. ) , ( 1
] , [


=
contrrio caso o
j i d se
j i M
v


Da matriz de adjacncia M, construdo o conjunto X = {C
1
, ...C
m
}, onde cada C
i
um
componente conexo obtido do grafo associado a M, tal qual foi feito no AEC-RC. O
algoritmo construir sua populao como strings binrias de tamanho m, nas quais a
ocorrncia de 1 numa dada posio i da cadeia indica que o i-simo componente
conexo iniciar um clusters na soluo final. O CLUSTERING tem a funo de aptido
f dada segundo a relao entre o somatrio das distancias entre cada ponto e o centride
do cluster ao qual pertence e a distncia entre cada ponto e o centride dos demais
clusters, conforme a equao (5.3.10), onde podemos ver a existncia de um parmetro
de entrada w.

=
=
k
i
i ra i er
C D w C D s f
1
int int
) 10 . 3 . 5 ( ) ( * ) ( ) (

O CLUSTERING recebe como parmetros de entrada dois valores reais w
s
e w
l
que
definem o intervalo [w
s
,w
l
] em que o parmetro w da equao (5.3.10) assumir na
busca da melhor clusterizao, ou seja, aquela com o nmero ideal de clusters. Na
heurstica de busca do melhor valor para o parmetro w da equao (5.3.10), o mdulo
gentico chamado inicialmente para w = w
s
, depois para w = w
l
e posteriormente para
w = w
m
= (w
s
+ w
l
) / 2. Os parmetros usados do CLUSTERING foram os mesmos
sugeridos pelos autores, ou seja, tamanho da populao igual a 50 indivduos, nmero
de geraes igual a 100, taxa de crossover igual a 85% e taxa de mutao igual a 5%.
No caso do AEC e do AEC-RC, apenas o nmero de indivduos foi diferente do
CLUSTERING, tendo sido fixado em 10 indivduos. Utilizamos como medida de
qualidade da soluo o valor apresentado pela soluo de cada algoritmo expresso pela
funo de aptido utilizada pelo AGS, j que a soluo expressa por esta funo est to
prxima da soluo ideal quanto seu valor se aproximar de 1. Desta forma, uma vez que
a funo de aptido usada pelo algoritmo da literatura (CLUSTERING) na mesma
funo usada pelo AGS, aps o mesmo ter encontrado a soluo, esta avaliada para
que seu valor seja expresso com base na equao (5.3.8). Os resultados apresentados na
tabela (5.3.4) apresentam a mdia dos valores das 100 solues obtidas por cada
algoritmo. Foram utilizadas 17 instncias para verificar a eficincia do AGS, deste total,
quatro instncias so da literatura e 13 foram geradas artificialmente de forma a gerar
clusters com formatos variados e com densidades variadas. Das quatro instncias da
literatura, listadas em negrito na tabela 1, duas so artificiais no espao R
2
a saber:
Ruspini e 200p Kaufman (1989) [22]. A base Ruspini composta de 75 pontos
distribudos em quatro clusters. J a base de dados 200p consiste de uma distribuio
normal onde cada ponto p
i
um vetor (
x
,
y
) com desvio padro para x e y. A
distribuio gera trs grupos conforme segue.
Grupo 1: 120 pontos x, = 0 y = 10 1.7
Grupo 2: 60 pontos x, = 20 y = 12 0.7
Grupo 3: 20 pontos x, = 10 y = 20 1.0
41

As outras duas instncias da literatura so bases reais. A instncia Winconsin Breast
Cancer Database (Mangasarian (1990)) [veja [38]] uma base de dados composta de
699 pontos formados por 9 atributos que caracterizam tumores no tratamento de cncer.
Dos 699 pontos, 16 foram excludos da base por apresentarem atributos ausentes. Desta
forma, o conjunto de pontos efetivamente avaliado composto de 683 elementos. A
ltima instncia da literatura a Iris Plants Database (R. A. Fisher (1936)) (veja [38],
composta de 150 pontos no espao R
4
divididos em trs grupos de 50 pontos. As demais
instncias da tabela 5.3.4, foram geradas aleatoriamente. Para efeito de comparao dos
resultados, a tabela 5.3.4 apresenta desempenho mdio do AEC e do AEC-RC alm do
desempenho do CLUSTERING. Nesta anlise, cada algoritmo executou 100 vezes e a
mdia foi calculada para gerar a tabela. Os valores em negrito indicam o melhor
desempenho, j que a funo objetivo de maximizao.
Instncia AEC-RC AEC CLUSTERING
200p 0.823 0.823 0.741
CancerData 0.596 0.592 0.374
IrisData 0.686 0.686 0.651
RuspiniData 0.737 0.737 0.683
1000p6c 0.727 0.708 0.367
157p 0.667 0.666 0.657
2000p11c 0.611 0.602 0.287
2face 0.666 0.666 0.513
350p5c 0.758 0.758 0.568
3dens 0.762 0.762 0.742
97p 0.710 0.710 0.706
Convdensity 0.854 0.854 0.818
Covexo 0.667 0.667 0.618
Face 0.511 0.511 0.402
Moreshapes 0.725 0.720 0.436
Numbers 0.542 0.540 0.417
Numbers2 0.565 0.562 0.527
Tabela 5.3.4: Desempenho mdio dos algoritmos avaliados.
Na anlise dos resultados obtidos, observamos a eficincia do AEC e principalmente do
AEC-RC em termos de encontrar o nmero ideal de clusters, a sua robustez e a
42
qualidade da soluo gerada. Podemos ver que tanto o AEC como o AEC-RC
apresentaram desempenho bem superior ao algoritmo da literatura. Alm disso,
podemos ver que a RC incorporado pelo AEC-RC implicou em melhora do desempenho
em 8 das 17 instncias testadas. Para efeito de verificao da robustez do algoritmo
proposto, efetuamos tambm uma anlise probabilstica sugerida em Aiex et al.
(2003)[1]. Esta anlise se justifica por uma das limitaes clssicas de heursticas e
algumas metaheursticas que a sua grande sensibilidade com os parmetros de entrada
do problema. Ou seja, o desempenho destes algoritmos pode variar muito de uma
instancia a outra. Para verificarmos a robustez dos mtodos aqui propostos, colocamos
como critrio de parada para todos os algoritmos, um valor alvo (valor de MQ), obtido
de simulaes preliminares destes mtodos para cada instncia. O alvo pode ser uma
mdia dos valores obtidos, ou um dos melhores valores, se queremos alvos mais
difceis. Definido o alvo, cada algoritmo executado m vezes para cada instncia
selecionada. A cada execuo i, armazena-se o tempo de cpu ti, e uma probabilidade pi
= (i ).m ( no nosso caso m = 100). Com isso geramos pontos no R
2
da forma zi =
(ti,pi). Como forma de avaliar a eficincia do algoritmo proposto, a figura 1 mostra a
anlise probabilstica do AEC, do AEC-RC e do CLUSTERING, alm das verses
AEC-SC e AEC-RCSC, que so o AEC e AEC-RC sem a heurstica de construo.









Figura 5.3.1: Anlise probabilstico para instncia 200p.
Podemos ver pela figura 5.3.1 que o AEC e o AEC-RC apresentam 100% de chance de
chegar ao alvo antes dos primeiros 100 segundos de processamento (as duas curvas
mais a esquerda). J as verses sem a heurstica de construo AEC-SC e AEC-RCSC
para esta probabilidade precisam de mais de 500 segundos de processamento (duas
curvas intermedirias). Ainda assim, as verses sem construo so melhores que o
algoritmo da literatura, que para esta probabilidade precisa de mais de 10.000 segundos
(curva mais a direita). Isto reflete a robustez dos algoritmos propostos.




43
Concluses

Nesta seo apresentamos um algoritmo de clusterizao hierrquica para o PCA que,
para todas as instncias submetidas, apresentou resultados de boa qualidade em termos
de otimizao da funo objetivo, do nmero ideal de clusters e tempo de
processamento. Alm disso, nossa abordagem enquanto reduz a cardinalidade do
conjunto de entrada, tira proveito desta reduo para abreviar o processo de busca, fato
este comprovado pela capacidade do algoritmo de encontrar a soluo nas primeiras
geraes mesmo numa populao pequena de indivduos.
6. Concluses Gerais
Apresentamos neste trabalho, uma introduo aos problemas de clusterizao na
Minerao de Dados (MD). Iniciamos com uma breve descrio e classificao bsica
do mesmo, seguido de algumas aplicaes de nosso interesse. Para algumas destas
aplicaes, mostramos como obter solues aproximadas de boa qualidade usando
conceitos da metaheurstica Evolutiva. Maiores informaes sobre este tema pode ser
obtido pelos interessados (as) atravs de msgs para um dos autores ou na pgina:
http://www.ic.uff.br/LabIC.
7. Bibliografia
[1] Aiex, R., Binato, S., e Resende (2003), M. Parallel GRASP with path-relinking
for job shop scheduling. Parallel Computing 29, 393 - 430.
[2] N. Aljaber, W. Baek and C.-L. Chen (1997), A Tabu Search Approach to the Cell
Formation Problem, in Computers and Industrial Engineering, Vol. 32(1), 169-185.
[3] Bck, T. Optimization by Means of Genetic Algorithms. In 36th Int. Scientific
Colloquium, Technical University of Ilmenau, ed. E. Khler, pp. 163-169, 1991.
[4] Battiti, R. e Bertossi, A. Greedy, Prohibition, and Reactive Heuristics for Graph
Partitioning. IEEE Transactions on Computers, 1999.
[5] Battiti, R., Bertossi, A. e Cappelletti, A. Multilevel Reactive Tabu Search for
Graph Partitioning. Preprint UTM 554, Dip. Mat., Univ. Trento, Itlia, 1999.
[6] Beasley, D., Bull, D. R. e Martin R. R. An Overview of Genetic Algorithms:
Part I, Fundamentals. University Computing, vol. 15, no. 2, pp. 58-69, 1993.
[7] Ben-Dor, A., Shamir, R. e Yakhini, Z. Clustering gene expression patterns.
Journal of Computational Biology, vol. 6, pp. 281-297, 1998.
[8] Berkhin, P. Survey of Clustering Data Mining Techniques. Accrue Software,
2002.
[9] Chiun, Y. e Lan, L. W. Genetic Clustering Algorithms. European Journal of
Operational Research (135) 2, pp. 413-427, 2001.
44
[10] Dias, C. R. and Ochi, L. S. Improving the performance of Evolutionary
Algorithms for the Directed Graph Partitioning. In Proc. of the XII CLAIO (em CD-
ROM), Havana, CUBA, 2004.
[11] Dias, C. R. and Ochi, L. S. Efficient Evolutionary Algorithms for the Clustring
Problem. In Proc. of the 2003 IEEE Congress on Evolutionary Computation (IEEE-
CEC 2003) (em CD-ROM), Camberra, Australia.
[12] Dias, C. R. (Dissertao de Mestrado) Algoritmos Evolutivos para o Problema
de Clusterizao em Grafos Orientados: Desenvolvimento e Anlise Experimental.
Orientador: Luiz Satoru Ochi. Programa de Ps Grad. em Computao, IC/UFF, 2004.
[13] Doval, D., Mancoridis, S. e Mitchell, B. S. Automatic Clustering of Software
Systems using a Genetic Algorithm. In 1999 International Conference on Software
Tools and Engineering Practice (STEP '99), 1999.
[14] Drummond, L. M. A., Ochi, L. S., e Figueiredo, R. M. V. Design and
Implementation of a Parallel Genetic Algorithm for the Travelling Purchaser Problem.
In Applied Computing/ACM, pp. 257-263, 1997.
[15] Fasulo, D. An Analysis of Recent Work on Clustering Algorithms. Technical
Report, Dept. of Computer Science and Engineering, Univ. of Washington, 1999.
[16] Glover, F. e Laguna, M. Fundamentals of Scatter Search and Path Relinking.
Control and Cybernetics, vol 29, no. 3, pp. 653-684, 2000.
[17] Glover, F., Laguna, M. e Mart, R. Scatter Search. Springer-Verlag New York,
Inc. New York, NY, USA, 2003.
[18] Gonalves, J. F. and Resende, M. G. C. A hybrid genetic algorithm for
manufacturing cell formation, Tec. Report, Fac. de Eng. do Porto, Portugal. (submitted
to Comp. & Industrial Eng), 2002.
[19] Joines, J. A., Culbreth, C. T., and King, R. E. Manufacturing Cell Design: An
Integer Programming Model Employing Genetic Algorithms. Tec. Report, Department
of Industrial Engineering, North Caroline State University, NC 27695-7906, 1996.
[20] Goldberg, D. E. Genetic Algorithms in search, optimization and machine
learning. Addison-Wesley, 1989.
[21] Holland, J. H. Adaptation in Natural and Artificial Systems. University of
Michigan Press, Ann Arbor, 1975.
[22] Kaufman, L. and Rousseuw , P. J. Finding Groups in Data - An Introduction to
Cluster Analyses, Wiley Series in Probability and Mathematical Statistics, John Wiley
and Sons, 1989.
[23] Koza, J. R. Hierarchical Genetic Algorithms Operating on Populations of
Computer Programs. In 11th International Joint Conference on Artificial Inteligence,
ed. N. S. Sridharan, pp. 768-774, 1989.
45
[24] Laguna, M. Scatter Search. In Handbook of Applied Optimization, eds. P. M.
Pardalos e M. G. C. Resende, Oxford University Press, pp. 183-193, 2002.
[25] Lorena, L. A. N. e Furtado, J. C. Constructive Genetic Algorithm for Clustering
Problems. Evolutionary Computation, vol. 9, no. 3, pp. 309-327, 2001.
[26] Maini, H. S., Mehrotra, K. G., Mohan, C. K. e Ranka, S. Genetic Algorithms for
Graph Partitioning and Incremental Graph Partitioning. In Proceedings of the 1994
Conference on Supercomputing, pp. 449-457, 1994.
[27] Michalewicz, Z. Genetic Algorithms + Data Structures = Evolution Programs.
Springer-Verlag, 1992.
[28] Michalewicz, Z., Xiao, J. e Trojanowski, K. Evolutionary Computation: One
Project, Many Directions. In Proceedings of the 9th International Symposium (ISMIS
'96), pp.189-201, 1996.
[29] Moscato, P. On Evolution, Search, Optimization, Genetic Algorithms and
Martial Arts: Towards Memetic Algorithms. Technical Report, Caltech Concurrent
Computation Program, California Institute of Technology, 1989.
[30] Ochi, L. S. and Vieyra, P. W. P. A Hybrid Metaheuristic using Genetic
Algorithm and Ant Colony Systems for the Clustered Traveling Salesman Problem. In
Proc. of the III Metaheuristic Int. Conference (III MIC), Angra dos Reis, RJ, 1999.
[31] Ochi, L. S., Vianna, D. S., and Drummond, L. M. A., A Parallel Hybrid
Evolutionary Algorithm for the Vehicle Routing Problem. In Lectures Notes in
Computer Science (LNCS), vol. 1586, pp. 183-192, Springer, 1999.
[32] Ochi, L. S., Vianna, D. S., and Drummond, L. M. A., A Parallel Evolutionary
Algorithm for the Vehicle Routing Problem with Heterogeneous Fleet. In Lectures
Notes in Computer Science (LNCS), vol. 1388, pp. 216-225, Springer, 1998.
[33] Ochi, L. S., Dalboni, F. L. ., and Drummond, L. M. A., On Improving
Evolutionary Algorithms by Data Mining for the Oil Collector Vehicle Routing
Problem. In Proc. of the Int. Network Optimization Conference (INOC 2003), pp. 182-
188, Evry, Paris, INFORMS, 2003.
[34] Ochi, L. S., and Rocha, M. L. A New Evolutionary Algorithm for the Vehicle
Routing and Scheduling Problems. In Ninth Int. Conference on Intelligence Systems,
Louisville, Kentucky, 2002..
[35] Ochi, L. S., Drummond, L. M. A., Vianna, D. S., An asynchronous parallel
metaheuristic for the period vehicle routing problem, Future Generations on Comp.
Systems, Elsevier, pp. 379-386, vol 17(4), 2001.
[36] Radcliffe, N. J. e Surry, P. D. Formal Memetic Algorithms. In Evolutionary
Computing: AISB Workshop, Lecture Notes in Computer Science, vol 865, pp. 1-16,
Springer-Verlag, 1994.
46
[37] Santos, H. G., Merschmann, L. H., Ochi, L. S., and Drummond, L. M. A., An
Improving Evolutionary Algorithm with Data Mining for a Vehicle Routing Problem. In
Proc. Of the VIII Brazilian Symposium on Neural Networks (SBRN) (IEEE Press, Em
CD-ROM), So Luis, MA, 2004.
[38] Soares, S. S. F. (Dissertao de Mestrado) Metaheursticas para o Problema de
Clusterizao Automtica . Orientador: Luiz Satoru Ochi. Programa de Ps Grad. em
Computao, IC/UFF, 2004.
[39] Trindade, A. R., and Ochi, L. S. An efficient evolutionary algorithm for the
manufacturing cell design problem. In Proc. (CD-ROM) of the XII CLAIO, Havana,
Cuba, 2004.
[40] Trindade, A. R. (Dissertao de Mestrado) Metaheuristicas para o Problema de
Clusterizao de Clulas de Manufatura . Orientador: Luiz Satoru Ochi. Programa de
Ps Grad. em Computao, IC/UFF, 2004.
[41] Toussaint, G., The relative neighborhood graph of a finite planar set, Patt.
Recognition, 12, 261 268, 1980.
[42] Vianna, L. S., (Dissertao de Mestrado) Metaheuristicas Paralelas para os
Problemas de Escalonamento de Tarefas e Roteamento de Veciulos. Orientadores: Luiz
Satoru Ochi e L. Drummond. Programa de Ps Grad. em Computao, IC/UFF, 2002
[43] Wang, J. A Linear Assignment Algorithm for Formation of Machine Cells and
Parts Families in Cellular Manufacturing, in Computers Ind. Engineering, vol 35(1-2),
81-84, 1998.

You might also like