Este projeto implementa um Algoritmo Genético para otimizar a disposição de turbinas eólicas em uma determinada área, minimizando o impacto de interferência entre elas.
- Inicialização: Geração de uma população aleatória de layouts possíveis.
- Avaliação: Cada layout é avaliado com base no impacto total entre turbinas.
- Seleção: Indivíduos com menor impacto são selecionados por torneio.
- Cruzamento e Mutação: Geração de novas soluções através de recombinação e perturbações aleatórias.
- Iteração: Repetição do processo por várias gerações até encontrar a melhor solução.
📂 genetic-algorithm-turbines
├── 📂 input/
│ └── matriz_interferencia.txt # Matriz de interferência entre turbinas
├── 📂 output/
│ └── layout_saida.txt # Melhor layout encontrado
├── main.py # Código-fonte do algoritmo genético
└── README.md # Este arquivo
O arquivo matriz_interferencia.txt deve conter:
<número de turbinas>
<linha 1 da matriz>
<linha 2 da matriz>
...
Exemplo:
3
0.0 0.1 0.2
0.1 0.0 0.3
0.2 0.3 0.0
O arquivo layout_saida.txt conterá as coordenadas ideais de cada turbina, como:
Turbina 1: (x=10.23, y=55.67)
Turbina 2: (x=88.12, y=12.45)
...
- Python 3.x
python main.pyAo fim da execução, o layout ótimo será salvo em output/layout_saida.txt.
No arquivo main.py:
area_limite = (0, 100)— Define os limites do terreno onde turbinas podem ser colocadas.tamanho_populacao = 100— Tamanho da população em cada geração.num_geracoes = 500— Número de gerações do algoritmo.taxa_mutacao = 0.1— Probabilidade de mutação para cada indivíduo.
Geração 0 - Impacto: 0.01238
Geração 50 - Impacto: 0.00457
Geração 100 - Impacto: 0.00211
...
Layout salvo em: output/layout_saida.txt
- Matheus Emanuel da Silva - Engenharia de Computação - CEFET-MG
- João Francisco Teles da Silva - Engenharia de Computação - CEFET-MG
Este projeto está licenciado sob a MIT License.
