Vous êtes sur la page 1sur 8

UNIVERSIDADE FEDERAL DE UBERLNDIA

Faculdade de Engenharia Eltrica




Prof: Keiji Yamanaka
Aluno: Roberto Batista Neto



5 Trabalho
Algoritmos Genticos







Uberlndia, 31 de Outubro de 2013
5 Trabalho Algoritmos Genticos 2013



1

1. Introduo
Expandindo na otimizao de resolues problemas utilizando algoritmos genticos este
trabalho apresenta um desafio para os coordenadores de programao de manuteno de
mquinas. Em um sistema eltrico de potncia h a operao de vrias mquinas em paralelo a fim
de fornecer energia aos consumidores. Ao decorrer do ano a demanda de potncia eltrica varia e
ao mesmo tempo tem-se a necessidade de fazer manuteno das mquinas. O desafio encontra-se
no gerenciamento de parada das mquinas mantendo-se uma margem de segurana otimizada
para cada perodo, isto , maior potencia liquida disponvel da maneira mais uniforme possveis
para os intervalos presentes no ano.
Devido a natureza do problema e a forma de como foi resolvido foi-se necessrio a
implementao da ideia de restrio influenciando na forma de gerao da populao. Outra
novidade na implementao do AG foi a forma estrutural do cromossomo como ser apresentado
nos tpicos seguintes.

2. Objetivo
O objetivo desenvolver um AG para desafio da programao de manuteno de mquinas
em um ano em que a segurana seja maximizada. A margem de segurana determinada pela
reserva lquida

do sistema. Podemos determinar a potncia lquida:


Em que:

: potncia total;

: potncia perdida;

: potncia mxima de demanda.


O sistema eltrico de potncia constitudo de sete mquinas cada uma com suas
particularidades, como capacidade de gerao e nmero de intervalos. Suas caractersticas foram
resumidas na tabela a seguir:
N Unidade Capacidade (MW) Intervalos de manuteno
1 20 2
2 15 2
3 35 1
4 40 1
5 15 1
6 15 1
7 10 1

5 Trabalho Algoritmos Genticos 2013



2
Os intervalos de manuteno ao longo do ano so quatro e para cada um tem-se uma
potencia de demanda

a ser suprida. A tabela abaixo resume os intervalos no ano e as potncias


demandada para cada perodo.
Intervalo Demanda (MW)
T
1
: Jan/Mar 80
T
2
: Abr/Jun 90
T
3
: Jul/Set 65
T
4
: Out/Dez 70

Para critrio timo temos que a reserva lquida

deve ser a mxima em cada intervalo.


Para as restries do problema temos trs condies:
1. Manuteno de qualquer unidade comea no incio de um intervalo e termina no
final do mesmo intervalo ou de um intervalo seguinte;
2. A manuteno no pode ser abortada ou terminada antes do programa;
3. A reserva lquida de potncia

deve ser maior ou a igual a zero em qualquer


intervalo.

3. Implementao GA
Conhecido o problema com suas condies parte-se agora para como se deu a
implementao do GA em script do MATLAB utilizando o guide para parte grfica do programa.
3.1 Estrutura Cromossomo e gerao da populao
Para resoluo do problema a melhor alternativa encontrada para estrutura do
cromossomo se baseia em agrupamentos de bits, no caso quatro, o agrupamento desses bits
representa cada mquina e cada um desses bits representa se a mquina encontra em operao ou
no. Como so sete mquinas o cromossomo constitudo de sete agrupamentos de 4 bits.
G
1
G
2
G
3
G
4
G
5
G
6
G
7


Sendo que para a gerao da populao a parte do cromossomo constituda da parte
gentica que representa as mquinas G
1
e G
2
respeitando a condio de 2 intervalos de paradas
exigidas por elas e considerando que o bit 1 representa a parada da mquina e o bit 0 representa
que a mquina est em operao os agrupamentos de 4 bits possveis para essas mquinas segue
abaixo.
G
1
ou G
2




1 1 0 0

0 1 1 0

0 0 1 1

ou ou
5 Trabalho Algoritmos Genticos 2013



3
Para as mquinas G
3
a G
7
tem-se como condio de parada para manuteno somente um
intervalo ao longo do ano. Sendo assim as possibilidades dos agrupamentos de 4 bits dessas
mquinas segue abaixo.
G
3
a G
7




Respeitando essas condies todos os indivduos gerados sero vlidos.
Computacionalmente a implementao da gerao da populao ficou:
% Gerar populao

g1eg2 = [1 1 0 0; 0 1 1 0; 0 0 1 1];
g3ag7 = [1 0 0 0; 0 1 0 0; 0 0 1 0; 0 0 0 1];

%gerando indivduo

for i= 1:popTam


pop(i,1:4) = g1eg2(random('unid', 3),:); % cromossomo 1
pop(i,5:8) = g1eg2(random('unid', 3),:); % cromossomo 2
pop(i,9:12) = g3ag7(random('unid',4),:); % cromossomo 3
pop(i,13:16) = g3ag7(random('unid',4),:); % cromossomo 4
pop(i,17:20) = g3ag7(random('unid',4),:); % cromossomo 5
pop(i,21:24) = g3ag7(random('unid',4),:); % cromossomo 6
pop(i,25:28) = g3ag7(random('unid',4),:); % cromossomo 7

end

3.2 Crossover
Implementou-se o crossover de um ponto sendo que para respeitar a estrutura do
cromossomo constitudo de agrupamentos de 4 bits representando cada mquina os pontos de
crossover possveis so a entres os bits 4 e 5 , 8 e 9, 16 e 17, 20 e 21, 24 e 25. Assim garante que os
agrupamentos dos bits no seja quebrado. Computacionalmente :
% Crossover

for i=1:2:popTam-1

pai1= popNova(i,:);
mae1= popNova(i+1,:);

if(rand<pc/100)

pontos = [4 ; 8 ; 12; 16; 20; 24];
point = pontos(random('unid', 6),:);

0 1 0 0

0 0 1 0

0 0 0 1

1 0 0 0

ou ou ou
5 Trabalho Algoritmos Genticos 2013



4
filho1(:,1:point)=pai1(:,1:point);
popNova(i,point+1:end)=mae1(:,point+1:end);

filho2(:,1:point)=mae1(:,1:point);
popNova(i+1,point+1:end)=pai1(:,point+1:end);


end
end

3.3 Avaliao (Fitness)
Para a avaliao utilizou-se como o melhor fitness o menor desvio absoluto da potencia
normalizada. Foi-se necessrio normalizar a potncia lquida de cada perodo devido ao fato de a
potncia demandada ser diferente assim estabelece proporcionalmente a mesmo patamar ao se
minimizar o desvio absoluto dessas potencias liquidas normalizadas tem-se uma melhor
distribuio de potncia proporcionalmente para cada perodo de acordo com cada demanda.
Para normalizar a potencia liquida:
% Normalizando

for l = 1:popTam

Plnorm1(l,:) = Pl1(l,:)/(sum(P)-Pd(:,1));
Plnorm2(l,:) = Pl2(l,:)/(sum(P)-Pd(:,2));
Plnorm3(l,:) = Pl3(l,:)/(sum(P)-Pd(:,3));
Plnorm4(l,:) = Pl4(l,:)/(sum(P)-Pd(:,4));

end

Calculou-se ento a potencia liquida mdia normalizada:

% Calculo da potencia liquida normalizada media

for m= 1:popTam

Plnorm_med(m,:) = (Plnorm1(m,:)+Plnorm2(m,:)+Plnorm3(m,:)+Plnorm4(m,:))/4;

end

Em seguida o desvio absoluto da Potencia normalizada:
for n= 1:popTam

Desvio1(n,:) = abs(Plnorm1(n,:)-Plnorm_med(n,:));
Desvio2(n,:) = abs(Plnorm2(n,:)-Plnorm_med(n,:));
Desvio3(n,:) = abs(Plnorm3(n,:)-Plnorm_med(n,:));
Desvio4(n,:) = abs(Plnorm4(n,:)-Plnorm_med(n,:));

end
5 Trabalho Algoritmos Genticos 2013



5
E por final o desvio mdio da mdia que prprio fitness sendo que o objetivo se ter o
menor possvel:
for o= 1:popTam

Desviomed(o,:) = (Desvio1(o,:)+Desvio2(o,:)+Desvio3(o,:)+Desvio4(o,:))/4;

end

4. Plataforma grfica
Utilizando o GUIDE do MATLAB foi desenvolvida a parte grfica do programa. Seguindo a
ideia de se ter um software de layout simples e intuitivo ao usurio na manipulao dos dados a
tela inicial pode ser vista na Figura 1.

Figura 1: Tela inicial programa AG.
possvel inserir as potencias das mquinas e as demandas exigidas de cada perodo. Tem o
painel AG onde se insere os parmetros do AG, tamanho da populao, nmero de geraes e
probabilidade de cruzamento. Os pontos de interrogaes so as sadas grficas dos intervalos de
manuteno de cada mquina. E o resultado esperado a potencia liquida de cada intervalo. Ao se
rodar o programa temos os seguintes resultados mostrados na Figura 2.
5 Trabalho Algoritmos Genticos 2013



6

Figura 2: Tela de resultados do AG.
Com as potncias das mquinas e de demanda indicada na figura e tamanho da populao
e nmero de geraes 100 e probabilidade de cruzamento de 60% obteve-se as potncias lquidas
de 20, 25, 35 e 30 MW para os intervalos T
1
, T
2
, T
3
e T
4
respectivamente. possvel ver tambm os
intervalos de manuteno das mquinas que so indicados graficamente por um x.










5 Trabalho Algoritmos Genticos 2013



7
4 BIBLIOGRAFIA
[1] GOLDBERG, David E. Genetic Algorithms in Search, Optimization and Machine Learning.
Massachusets, Addison-Wesley, 1989.
[2] Linden, Ricardo. Algoritmos Genticos. 2 ed. Rio de Janeiro: Brasport, 2008.

Vous aimerez peut-être aussi