You are on page 1of 12

Jorge Sousa – 1070252 & João Miranda-1070234

10-12-2010

Algoritmos Genéticos
Planeamento da Produção

Jorge Sousa – 1070252


João Miranda 1070234

1
Jorge Sousa – 1070252 & João Miranda-1070234

Algoritmos Genéticos
Planeamento da Produção

Introdução

Os problemas de optimização são baseados em três pontos principais: a codificação do


problema, a função objectivo que se deseja maximizar ou minimizar e o espaço de soluções
associado. Pode-se imaginar um problema de optimização como uma caixa preta com n
botões, onde cada botão é um parâmetro do problema, e uma saída que é o valor da função
objectivo, indicando se um determinado conjunto de parâmetros é bom ou não para resolver
este problema.

Os algoritmos genéticos são uma família de modelos computacionais inspirados na evolução,


que incorporam uma solução potencial para um problema específico numa estrutura
semelhante à de um cromossoma e aplicam operadores de selecção e cruzamento a essas
estruturas de forma a preservar informações críticas relativas à solução do problema.
Normalmente os AG's são vistos como optimizadores de funções, embora a quantidade de
problemas para o qual os AG's se aplicam seja bastante abrangente.

Uma das vantagens de um algoritmo genético é a simplificação que eles permitem na


formulação e solução de problemas de optimização. AG's simples normalmente trabalham
com descrições de entrada formadas por cadeias de bits de tamanho fixo. Outros tipos de AG's
podem trabalhar com cadeias de bits de tamanho variável., como por exemplo AG's usados
para Programação Genética. AG's possuem um paralelismo implícito decorrente da avaliação
independente de cada uma dessas cadeias de bits, ou seja, pode-se avaliar a viabilidade de um
conjunto de parâmetros para a solução do problema de optimização em questão. O AG é
indicado para a solução de problemas de optimização complexos, NP-Completos, como o
"caixeiro viajante", que envolvem um grande número de variáveis e, consequentemente,
espaços de soluções de dimensões elevadas. Além disso, em muitos casos onde outras
estratégias de optimização falham na busca de uma solução, os AG's convergem. Os AG's são
numericamente robustos, ou seja, não são sensíveis a erros de arredondamento no que se
refere aos seus resultados finais.

2
Jorge Sousa – 1070252 & João Miranda-1070234

Existem três tipos de representação possíveis para os cromossomas: binária, inteira ou real. A
essa representação se dá o nome de alfabeto do AG. De acordo com a classe de problema que
se deseje resolver pode-se usar qualquer um dos três tipos.

Uma implementação de um algoritmo genético começa com uma população aleatória de


cromossomas. Essas estruturas são, então, avaliadas e associadas a uma probabilidade de
reprodução de tal forma que as maiores probabilidades são associadas aos cromossomas que
representam uma melhor solução para o problema de optimização do que àqueles que
representam uma solução pior. A aptidão da solução é tipicamente definida com relação à
população corrente.

A função objectivo de um problema de optimização é construída a partir dos parâmetros


envolvidos no problema. Ela fornece uma medida da proximidade da solução em relação a um
conjunto de parâmetros. Os parâmetros podem ser conflituantes, ou seja, quando um aumenta
o outro diminui. O objectivo é encontrar o ponto óptimo. A função objectivo permite o
cálculo da aptidão bruta de cada indivíduo, que fornecerá o valor a ser usado para o cálculo
de sua probabilidade de ser seleccionado para reprodução.

Para se obter a solução óptima ou o mais próximo possível são utilizados três operadores,
sendo eles a mutação, o cruzamento e a selecção.

Na mutação é alterada parte do cromossoma, o que permite que se consiga alcançar outros
espaços de busca. A taxa de mutação nunca deve ser muito elevada de modo a evitar a criação
de novos indivíduos de maneira quase aleatória.

IMAGEM DA MUTAÇÃO
O operador cruzamento representa a reprodução sexual dos cromossomas, assim é possível
criar novos cromossomas que são combinações de outros dois indivíduos. É possível realizar
o cruzamento dos cromossomas de diferentes maneiras. Pode ser feito com um ponto de
cruzamento:

IMAGEM DO CRUZAMENTO 1 PT
Pode ainda ser feito em dois ou mais pontos. A seguinte imagem ilustra o cruzamento feito
em dois pontos:

3
Jorge Sousa – 1070252 & João Miranda-1070234

IMAGEM DO CRUZAMENTO 2 PTS


Após a utilização dos operadores anteriormente descritos é necessário fazer a selecção dos
indivíduos que vão constituir a próxima geração. Para realizar esta selecção existem vários
métodos, sendo que a roleta e o torneio são alguns destes métodos.

Explicar o torneio e a roleta e outro

Formulação do Problema

O problema proposto consistia em planear a produção de uma fábrica que produzia cinco
produtos diferentes de maneira que fosse atingido o maior lucro possível.

Alguns desses produtos tinham especificações particulares no sentido de cota de mercado,


assim sendo teria de ser produzido um valor nunca inferior a 1000 unidades do mesmo e não
superior a 5000 pois o excedente teria dificuldades em ser comercializado. O produto número
5 tem uma cota de mercado fixa e por este motivo teria de ser fabricado 120 unidades desse
produto. Os restantes produtos, nomeadamente o 2, 3 e 4 não têm qualquer restrição de cota
de mercado.

Na seguinte tabela serão apresentados os custos dos produtos assim como as cotas de
mercados de cada um

Produto P.V.P* Custo/peça(€) Lucro/peça(€) Cotas de


Mercado(Unid.)
P1 100,00 € 50,00 € 50,00 € 1000<P1<5000
P2 200,00 € 100,00 € 100,00 € Não tem
P3 500,00 € 250,00 € 250,00 € Não tem
P4 1000,00 € 800,00 € 200,00 € Não tem
P5 800,00 € 650,00 € 150,00 € 120
*- P.V.P. – Preço de Venda ao Público

Para a formulação deste problema é imprescindível a gestão da capacidade que cada


departamento tem para criar um produto final.

4
Jorge Sousa – 1070252 & João Miranda-1070234

Na tabela seguinte será apresentado a capacidade de cada departamento e a quantidade de


horas necessárias para efectuar um produto final.

Produto Departamento A Departamento B Departamento C Tempo Total


P1 1h 2h 1h 4h
P2 2h 1h 1h 4h
P3 4h 2h 3h 9h
P4 15 h 10 h 5h 30 h
P5 10 h 6h 4h 20 h
Horas máximas 3000 h 3800 h 2700 h 9500 h

Resultados

Utilizamos dois métodos para a resolução deste problema: uma resolução analítica e a
utilização de um algoritmo genético para maximizar os lucros.

Resolução Analítica:

Esta resolução utiliza a ferramenta solve do Mircrosoft Excel. Para tal este trabalho foi
dividido em fases que passamos em seguida a relatar.

1. Formulação da função objectivo (Fitness function): É sobre esta função que correrá o
processo para a maximização do lucro. Nela entrevêem todas as parcelas que geram
lucro à empresa.
A função objectiva foi constituída relacionando o lucro do produto com a cota de
mercado de cada produto, assim a função objectivo será formulada da seguinte forma:

5
Jorge Sousa – 1070252 & João Miranda-1070234

Lucro=P1×C1+P2×C2+P3×C3+P4×C4+P5×C5-100000

Onde P1,P2,P3,P4 e P5 são os cinco produtos, C1,C2,C3,C4 e C5 são as cotas de


mercado de associadas e a parcela com o valor de 100000 refere-se ao investimento
efectuado no inicio daquele mês.

2. Formulação das restrições impostas pelas cotas de mercado: Cada produto poderá ter
restrições quanto à sua produção como por exemplo o produto 5, que tem sempre o
mesmo volume de vendas todos os meses pelo que se impõe um limite máximo à sua
produção.

3. Após todas as formulações estarem efectuadas, os dados foram inseridos na aplicação


solver e obtivemos o resultado óptimo para a maximização do lucro.

Na seguinte tabela apresentamos a relação produto/quantidade resultante deste


processo:

Produto Quantidade
P1 1000
P2 0
P3 200
P4 0
P5 120

O montante máximo que empresa pode obter com estas condições é de: 18000€

Na tabela em cima apresentada pode-se visualizar que existem dois produtos que não
seriam fabricados, nomeadamente o produto 2 e 4. Não faria sentido a empresa possuir
cinco produtos diferentes e apenas fabricar três, mas visto que o principal objectivo

6
Jorge Sousa – 1070252 & João Miranda-1070234

deste planeamento é maximizar o lucro e que nada se sabe acerca da cota de mercado
destes dois produtos, consideramos este resultado aceitável.

4. Validação de resultados: Visto que o produto 3 é o que apresenta o maior lucro de


produção (Tabela 1), é perfeitamente aceitável que esse seja o mais produzido.
Se não existisse nenhuma restrição aos produtos e às cotas de mercado apenas o
produto 3 seria produzido por essa mesma razão.

Resolução Através dos Algoritmos Genéticos:

Para resolver o problema através dos algoritmos genéticos utilizamos a Optimization Toolbox
do Matlab.

Para darmos inicio ao desenvolvimento do algoritmo genético no separador Problem Setup


and Results é necessário seleccionar o solver ga – Genetic Algorithm. Após este passo é
necessária a criação de dois ficheiros nos quais vão constar a função objectivo e as restrições
do problema. Assim criamos os ficheiros fitness.m e constraint.m. As imagens seguintes
mostram o conteúdo dos dois ficheiros:

7
Jorge Sousa – 1070252 & João Miranda-1070234

Como é possível observar no ficheiro onde consta a função objectivo, a mesma tem o sinal
simétrico da função objectiva utilizada no solver do Excel, isto deve-se ao facto de, na
Optimization Toolbox, apenas ser possível minimizar. Deste modo é possível maximizar a
função.

Para se introduzir a função objectivo no algoritmo genético é necessário seleccionarmos o


ficheiro onde se encontra.

Posto isto, é necessário seleccionar o ficheiro onde estão as restrições do problema e


restringimos as variáveis de modo a ficar de acordo com a formulação do problema.

Após termos definido o nosso problema com a função objectivo e com as suas respectivas
restrições temos que configurar todos os operadores, de modo a conseguirmos alcançar o
valor mais próximo do máximo possível. Para tal seleccionamos o tipo de população Double
Vector, definimos o tamanho da população de cem indivíduos e escolhemos o método de

8
Jorge Sousa – 1070252 & João Miranda-1070234

criação da população Feasible Population, pois esta função cria uma população inicial que
respeita a restrições das variáveis.

No escalonamento do fitness seleccionamos a função Rank, pois faz o escalonamento dos


indivíduos de acordo com o valor da sua fitness, ou seja, o indivíduo com a melhor fitness fica
em primeiro lugar, o indivíduo com a segunda melhor fitness fica em segundo e assim
sucessivamente.

O método de selecção utilizado foi o torneio, tal como o nome da função indica é realizado
um torneio entre oito indivíduos, sendo que o indivíduo vencedor será escolhido para ser pai.

Para a reprodução têm que ser seleccionados dois parâmetros, o elitismo e a taxa de
cruzamento. O valor de elitismo seleccionado foi de 8%, pois esta taxa deve ser baixa e a taxa
de cruzamento cerca de 85%, que contrariamente à taxa de elitismo deve ser alta.

9
Jorge Sousa – 1070252 & João Miranda-1070234

Para a mutação foi seleccionado o método Adaptive Feasible, que gera aleatoriamente
direcções que se adaptam de acordo com a última geração bem sucedida ou mal sucedida.

No cruzamento estipulamos que este apenas se faria num ponto.

Após a introdução destes dados corremos o algoritmo de modo a verificar o resultado que
seria obtido.

Como é possível verificar na anterior imagem, contrariamente ao que estávamos à espera que
se sucedesse, os valores obtidos estavam muito longe dos valores óptimos. Após várias

10 
Jorge Sousa – 1070252 & João Miranda-1070234

tentativas conseguimos apurar que, para que os resultados fossem próximos do óptimo, era
necessário criar uma população inicial e alterar o Initial Range.

Com estas alterçãoes os resultados obtidos são bastante próximos do óptimo.

Após alcançarmos estes valores, tentamos, através da alteração dos valores e dos métodos
seleccionados, alcançar resultados melhores mas não conseguimos alcançar um valor que
fosse tão próximo do óptimo como o que já tínhamos obtido, exceptuando quando utilizamos
um algoritmo híbrido.

11 
Jorge Sousa – 1070252 & João Miranda-1070234

Com a utilização do algoritmo híbrido foi possível alcançar os valores óptimos, como é
possível observar na próxima figura.

12 

You might also like