Blog / BIM & Construction Management

Aplicação de Algoritmos Evolutivos na Resolução de Problemas Arquitetônicos

Através de um caso exploratório, apresenta-se a aplicação do Algoritmo Evolutivo na fase de concepção do projeto arquitetônico ao que se refere a localização de uma edificação em relação ao melhor aproveitamento de uma fachada para um ponto de interesse de observação. Nos resultados, serão analisados os dados quantitativos e qualitativos como o Algoritmo Evolutivo resolveu a problemática e gerou os resultados.

Também são apresentados dois solucionadores de Algoritmo Evolutivo, sendo um deles utilizado no objeto de estudo. Com a aplicação do solucionador são apresentados dados quantitativos resultantes do processo de evolução do algoritmo e feita análise qualitativa dos melhores locais, definidos como design ótimo para a problemática exposta.

 

1. Aplicação do Algoritmo Evolutivo

Este artigo apresenta a aplicação do Algoritmo Evolutivo em uma problemática como estudo inicial tendo como base seu entendimento e exploração para sua futura aplicação em problemáticas mais complexas.

A aplicação neste contexto também pode auxiliar no entendimento do desenvolvimento do algoritmo através da programação visual. Assim como o estabelecimento da questão e da resposta correta para que o algoritmo fosse coerente.

1.1 A estrutura da problemática

Pode parecer lógico, porém saber qual a pergunta correta para encontrar uma resposta adequada não é tão simples. Isto porque o homem desenvolveu sua capacidade de pensar e comunicar de forma complexa enquanto que ao tentar transferir uma questão de uma problemática para o ambiente computacional, deve ser utilizada uma linguagem ou pensamento computacional, que comparada a anterior ainda é básica.

Desta forma, a problemática exposta valoriza uma paisagem como ponto de interesse de observação a partir de um centro urbano, popularizado com um entorno de edificações. A edificação a ser estudada, possui uma de suas fachadas voltada para o ponto de interesse. A proposição da problemática se concentra exatamente nesta característica, em chegar ao menos o mais próximo possível do melhor resultado que forneça a fachada o maior campo de visão ao ponto de interesse. Desta forma, o algoritmo evolutivo terá que buscar qual a melhor posição da edificação no terreno, considerando os obstáculos visuais de seu entorno.

 

Figura 1: Programação Textual x Programação Visual – Start, Mid, End point de uma curva. Fonte: o autor

1.2 A modelagem geométrica e algorítmica 

Foram utilizados, respectivamente, o software Rhinoceros e o plugin Grasshopper para a modelagem geométrica e algorítmica dos elementos e dados do projeto.

Figura 2: Ponto de interesse de observação (Azul), Entorno (Branco) e Edificação (Laranja). Fonte: o autor.

Figura 3: Modelagem Algorítmica. Fonte: o autor.

1.3 A estrutura do modelo algorítmico

Para a organização do Modelo Algorítmico, os componentes de programação visual foram organizados por grupos, que foram apresentados conforme a evolução e adequação do modelo.

Primeiramente foi modelado o terreno diretamente no software Rhinoceros com sua composição geométrica, então foram absorvidos como dados para o componente do Grasshopper. Este é o ponto de partida para que o Algoritmo tenha suas interdependências.

Uma vez que o terreno está associado ao componente da programação, possui-se o primeiro dado importante, que é a delimitação do espaço em que a edificação irá se deslocar para buscar o melhor posicionamento no terreno. Aqui encontramos o primeiro desafio, pois o dado a ser deslocado dentro do espaço será um ponto de referência central à edificação, e não propriamente a edificação. Desta forma a edificação em alguns momentos, irá extrapolar o limite da implantação, conforme figura 4 (imagem à esquerda).

Figura 4: À esquerda, problema de extrapolação da edificação. À direita, Recuo para limitar o deslocamento durante a busca do melhor local. Fonte: o autor. 

Desta forma, foi delimitado um espaçamento interno para que a edificação não ultrapasse o limite real do terreno (figura 4, imagem à direita).

Com os dados do terreno, entorno e ponto de interesse de observação, tem-se o primeiro conjunto de elementos restritivos dentro do Modelo Algorítmico (Figura 1, imagem à esquerda). Na sequência foi definido o grupo 4, onde o ponto como referência da Edificação, tendo atributo variável de deslocamento nos eixos X e Y com delimitação do limite do terreno. Para isto, utiliza- se um componente que permite identificar um ponto em uma determinada superfície (Evaluate Surface) e foram re-parametrizadas as unidades globais para absolutas de 0 à 1, (Figura 1, imagem à direita).

Figura 5: À esquerda, Grupo 1, 2 e 3, respectivamente o Terreno, Entorno e Ponto de interesse de observação. À direita, Grupo 4, definição e parametrização do ponto de referência. Fonte: o autor.

A partir do Ponto de referência e interdependente deste, foi modelada a edificação, com dimensões de largura, comprimento e altura variáveis.

Figura 6: Grupo 5, Geometria e componentes variáveis da Edificação. Fonte: o autor.

Como o objetivo é ter a fachada com a maior vista possível para o ponto de Observação, foi definido que a simulação deveria adotar o ponto de partida do observador a altura média dos olhos de uma pessoa. Para isto foram criadas geometrias com a altura de 1,5 acima de cada pavimento.

Figura 7: Grupo 6, Definição dos pavimentos e altura do observador. Fonte: o autor.

No grupo 7 foram definidas as quantidades dos pontos de observação, componente variável, adotando 10 pontos de observador por pavimento neste caso. Assim como os raios de conexão ao ponto de observação, através de um componente que conecta os dois elementos. 

Figura 8: Grupo 7, Pontos do Observador/Observação. Fonte: o autor.

Como último grupo de componentes antes de aplicar Algoritmo Evolutivo, foram criados raios de conexão entres os pontos do observador e observação. O objetivo foi ter um elemento que pudesse ser identificado como colisão com os elementos do entorno.

Figura 9: Grupo 8, Identificação dos raios de colisão. Fonte: o autor.

Para a aplicação do Algoritmo Evolutivo foi utilizado o componente Galapagos, que funciona sobre dois atributos paramétricos, o Genome, atributo variável e o Fitness, atributo restritivo.

No Genome foram considerados os componentes ‘Slider’ que configuram a posição do ponto de referência da edificação, enquanto que o ‘Fitness’ foi o componente dos elementos que possuem colisão com outro elemento.

Como o ‘Fitness’ precisa ser um número, foi aplicado o componente Integer para converter os dados do componente de identificação de colisão com um dado número. Uma vez que estes dados atendem aos requisitos de leitura do componente Galapagos, foi realizada a aplicação do Algoritmo Evolutivo (figura 11, imagem à esquerda).

Figura 10: À esquerda, Galapagos - Genome e Fitness. À direita, Fitness, População e Gerações. Fonte: o autor.

Isto é realizado através do Editor do Galapagos (figura 11, imagem à direita), que possibilita executar a aplicação do algoritmo sob os conceitos do algoritmo evolutivo. Basicamente foram definidas as quantidades de alternativas através do número de População (50) e de Gerações (50) e Maximização ou Minimização do ‘Fitness’. Uma vez que estes parâmetros sejam definidos pode-se executar o editor. Isto possibilitará realizar uma análise de 2.500 indivíduos, resultantes da reprodução e mutação a cada geração. 

2. Análise dos resultados

Pode-se observar que o editor apresenta os resultados da execução do algoritmo, dentre eles os considerados mais adequados, ou seja, os resultados que mais se aproximam do ‘Fitness’. Ao final da simulação foram encontradas 29 opções (Genomas) com um número mínimo de 25 raios (Fitness) que conflitam com os obstáculos. Sendo este o resultado mais próximo do resultado ótimo encontrado pelo AE.

Figura 11: Demonstração do resultado de todos os Genomas. Fonte: o autor.

Observamos que durante a primeira Geração, onde geralmente ocorrem as maiores variações de indivíduos e onde ainda não ocorrem mutações, são encontrados números mínimos (Fitness) entre 25 e 126, sendo o fitness 25 o número mais próximo do resultado ótimo, conforme resultante da última Geração de indivíduos (50). Ao longo da simulação observa-se que a biodiversidade entre os indivíduos reduz consideravelmente a partida da 5º Geração, decorrente dos resultados obtidos como indivíduos mais aptos de geração para geração.

Tabela 2. Evolução da biodiversidade dos indivíduos e variação do Fitness ao longo da simulação computacional. Resultados apresentados a cada 5 gerações, iniciando pela geração 1 até a geração 50.

Geração

Biodiversidade

Variação de Fitness encontrado

         1

0.983

25-126

         5

0.458

25-42

10

0.180

25-31

15

0.125

25-33

20

0.134

25-31

25

0.120

25-35

30

0.101

25-31

35

0.106

25-31

40

0.248

25-37

45

0.249

25-31

50

0.162

25-31

Também observa-se que a partir da 5º geração, o algoritmo encontra uma variação de opções mais aptas e inicia, além da reprodução, a mutação dos genes.

Interessante observar que são apresentados vários resultados, definidos como resultados mais adequados. Isto proporciona, além do resultado encontrado pelo AE, a possibilidade do arquiteto escolher várias opções que lhe agradem ou que sejam interessantes de acordo com outros parâmetros que não estão diretamente vinculados ao algoritmo.

Figura 13: Exemplo de 6 indivíduos com maior diferença de Fitness. Fonte: o autor.

Figura 14: Um dos resultados com Fitness (25) mais adequado. Fonte: o autor.

3. Considerações Finais

Percebe-se que os Algoritmos Evolutivos auxiliam na tomada de decisões em problemas complexos que são de grande dificuldade para a conclusão apenas com a capacidade de processamento humano ou, mesmo que possíveis, tardariam muito tempo para serem solucionados.

O entendimento dos conceitos das diferentes estratégias de AE, assim como de outros processos e métodos relacionados, ajudam a dar visibilidade e difundir uma técnica de programação que atualmente ainda não é adotada e difundida no ramo profissional da arquitetura e engenharia.

Ao explorar um caso para exemplificar o uso de AE na concepção de um projeto arquitetônico, os resultados obtidos mostram uma melhor facilidade de compreensão do funcionamento e desenvolvimento de AE. Diante das possibilidades desta aplicação, mesmo sendo o caso apresentado relativamente simples, este foi um primeiro passo fundamental para apoiar futuras investigações em um contexto mais amplo, em escala urbana, com a análise de uma maior massa de dados.

O uso do plugin Galapagos se mostrou bastante adequado para o case explorado e forneceu base de conhecimento suficiente para questões de otimização e design complexos com muitas variáveis. Ainda assim, é um modelo de AE que possibilita a abordagem objetivada a uma única questão. Existem outros plugins como Wallacei, que possui abordagem multi-objetos, o que certamente causará futuras investigações como continuidade deste trabalho.

Conhecer as diferentes vertentes dos AE (AG, EE, PE) estimula a reflexão e a geração de novas hipóteses. Isto instiga o aprofundamento do tema e a extrapolação deste artigo com vistas a futuras investigações.

 

Explore o potencial dos Algoritmos Evolutivos na prática! 

Baixe agora templates exclusivos para aplicação de Algoritmos Evolutivos em projetos arquitetônicos explorados neste artigo. Impulsione sua capacidade de otimização e design com essas ferramentas especializadas. 
 

Autor

Alessandro Ferrari

Arquiteto | CanBIM P2 - Certified BIM Professional | MBA Project Management | Mgtr BIM Management | Msc BIM Algoritmos Evolutivos (estudando atualmente)