pró-reitoria de graduação curso de engenharia civil trabalho … · artificiais (rna’s), tem...
TRANSCRIPT
i
Pró-Reitoria de Graduação
Curso de Engenharia Civil
Trabalho de Conclusão de Curso
OTIMIZAÇÃO DE VIGAS DE CONCRETO ARMADO
UTILIZANDO ALGORITMOS GENÉTICOS E REDES NEURAIS
ARTIFICIAIS
Autor: Renato Filho Ximenes de Paula
Orientador: Prof. Dr. Li Chong Lee Bacelar de Castro
Brasília - DF 2016
i
RENATO FILHO XIMENES DE PAULA
OTIMIZAÇÃO DE VIGAS DE CONCRETO ARMADO UTILIZANDO ALGORITMOS
GENÉTICOS E REDES NEURAIS ARTIFICIAIS
Artigo apresentado ao curso de graduação em
Engenharia Civil da Universidade Católica de
Brasília, como requisito parcial para a obtenção
de Título de Bacharel em Engenharia Civil.
Orientador: Prof. Dr. Li Chong Lee Bacelar de
Castro
Brasília
2016
ii
Artigo de autoria de Renato Filho Ximenes de Paula, intitulado OTIMIZAÇÃO DE VIGAS DE
CONCRETO ARMADO UTILIZANDO ALGORITMOS GENÉTICOS E REDES NEURAIS
ARTIFICIAIS, apresentado como requisito parcial para obtenção do grau de Bacharel em
Engenharia Civil da Universidade Católica de Brasília, em 15 de junho de 2016, defendido e
aprovado pela banca examinadora abaixo assinada:
__________________________________________________
Prof. Dr. Li Chong Lee Bacelar de Castro
Orientador
Curso de Engenharia Civil – UCB
__________________________________________________
Prof. MSc. Luis Alejandro Pérez Peña
Examinador
Curso de Engenharia Civil – UCB
Brasília
2016
iii
DEDICATÓRIA
A nosso Deus, cujo nome é Jeová, pelo dom da
vida e por colocar em meu caminho pessoas que
me inspiram e motivam a seguir em frente pelo
carinho, humildade e força de vontade que
afloram.
iv
AGRADECIMENTOS
Aos meus amados pais, Renato de Souza Paula e Ana Neide Ximenes de Paula, por priorizarem
a educação em minha vida e por todo esforço, dedicação e amor que demonstraram nessa longa
jornada. À minha querida namorada, Karla Maneta, por tornar factível a conclusão deste curso
através de seus conselhos sábios e de seu imensurável carinho. A meu grande amigo Erick Felix
por me auxiliar na implementação computacional do programa desenvolvido. A meu orientador
Li Chong Lee Bacelar de Castro pela instrução, atenção e paciência no processo de elaboração
deste estudo.
1
OTIMIZAÇÃO DE VIGAS DE CONCRETO ARMADO UTILIZANDO ALGORITMOS
GENÉTICOS E REDES NEURAIS ARTIFICIAIS
RENATO FILHO XIMENES DE PAULA
RESUMO
O pré-dimensionamento é de extrema importância para concepção final de um projeto,
esta fase interfere sensivelmente na composição final dos custos e depende significativamente
da experiência e intuição do projetista. Algoritmos baseados em programação sequencial, são
limitados quando problemas envolvendo competências estritamente humanas são requeridas.
Este estudo tem por objetivo elaborar uma rede neural artificial capaz de efetuar um pré-
dimensionamento de seções transversais de vigas de concreto armado com custo mínimo a
partir de algumas variáveis iniciais. Para tanto, é desenvolvida uma aplicação baseada em
algoritmos genéticos que otimizam um conjunto de seções transversais retangulares de vigas de
concreto armado submetidas a flexão simples servindo como conjunto de treinamento para a
rede neural, de maneira a transferir conhecimento especializado de otimização a rede. Os
algoritmos genéticos são modelos computacionais inspirados em princípios da evolução
natural. Eles codificam, manipulam e modificam soluções codificadas em um espaço de busca
de maneira a encontrar melhores indivíduos. Redes Neurais Artificiais são sistemas baseados
no funcionamento do cérebro animal, que processa dados de maneira maciçamente paralela e
distribuída. Trata-se de um ramo da inteligência artificial capaz de aprender e generalizar
problemas, além de ser bastante empregado em problemas que envolvem otimização,
reconhecimento de padrões, aproximação de funções e previsão de sistemas. Portanto a
implementação das redes neurais artificiais tem por objetivo diminuir o tempo computacional
requerido frente aos algoritmos genéticos e demonstrar sua eficiência na modelação de funções
multidimensionais aplicada a processos de otimização.
Palavras-chave: Otimização. Algoritmos genéticos. Redes neurais artificiais. Concreto armado.
2
3
ÍNDICE
1 INTRODUÇÃO ..................................................................................................................... 5
2 REDES NEURAIS ARTIFICIAIS ...................................................................................... 8
2.1 INTRODUÇÃO ................................................................................................................... 8
2.1.1 O que são Redes Neurais ................................................................................................ 8
2.1.2 Áreas de Aplicação .......................................................................................................... 9
2.1.3 Neurônio Biológico ........................................................................................................ 10
2.1.4 Neurônio Artificial ........................................................................................................ 12
2.1.4.1 Tipos de funções de ativação ....................................................................................... 14
2.2 ARQUITETURA DAS REDES NEURAIS ...................................................................... 17
2.3 PROCESSOS DE TREINAMENTO E APRENDIZADO ................................................ 19
2.4 REDE PERCEPTRON....................................................................................................... 21
2.5 REDE ADALINE .............................................................................................................. 26
2.6 REDES PERCEPTRON MULTICAMADAS ................................................................... 31
3 ALGORITMOS GENÉTICOS .......................................................................................... 38
3.1 INTRODUÇÃO ................................................................................................................. 38
3.2 ESTRUTURA DOS ALGORITMOS GENÉTICOS ........................................................ 38
3.3 COMPONENTES DE UM AG ......................................................................................... 40
3.3.1 Cromossomos ................................................................................................................ 40
3.3.2 Genes ............................................................................................................................ 40
3.3.3 Alelos ............................................................................................................................ 40
3.3.4 Indivíduos ...................................................................................................................... 40
3.3.4.1 Codificação Binária ..................................................................................................... 40
3.3.5 População ....................................................................................................................... 42
3.3.5.1 Avaliação ..................................................................................................................... 42
3.3.5.2 Seleção ......................................................................................................................... 42
3.4 OPERADORES GENÉTICOS .......................................................................................... 43
3.4.1 Crossover (Cruzamento) .............................................................................................. 43
3.4.2 Mutação ......................................................................................................................... 44
3.5 PARÂMETROS DE CONTROLE DOS ALGORITMOS GENÉTICOS ........................ 45
3.5.1 Tamanho da População ................................................................................................ 45
3.5.2 Taxa de Cruzamento .................................................................................................... 45
4
3.5.3 Taxa de Mutação ........................................................................................................... 45
3.6 FUNÇÃO DE PENALIZAÇÃO ........................................................................................ 46
4 VIGAS DE CONCRETO ARMADO ................................................................................ 47
4.1 VIGAS DE SEÇÃO RETANGULAR COM ARMADURA SIMPLES ........................... 49
5 METODOLOGIA ............................................................................................................... 51
5.1 PREAMBULO ................................................................................................................... 51
5.2 FORMULAÇÃO ............................................................................................................... 51
5.3 IMPLEMENTAÇÃO DO ALGORÍTIMO GENÉTICO ................................................... 55
5.3.1 EXEMPLO DE OTIMIZAÇÃO .................................................................................. 58
5.4 IMPLEMENTAÇÃO DA REDE NEURAL PERCEPTRON MULTICAMADAS ......... 59
6 CONCLUSÕES E RECOMENDAÇÕES ......................................................................... 65
ABSTRACT ............................................................................................................................ 66
REFERÊNCIAS ..................................................................................................................... 68
APÊNDICE ............................................................................................................................. 70
A.1 CÓDIGOS FONTE DO PROGRAMA VIGOTIM ...................................................... 70
A.1.1 Classe Main .................................................................................................................... 70
A.1.2 Classe DimensionamentoViga ........................................................................................ 71
A.1.3 Classe CromosssomoViga .............................................................................................. 76
A.2 PROJETO DA REDE NEURAL EM JOONE ............................................................. 77
A.2.1 Estrutura da rede neural .................................................................................................. 77
A.2.2 RMSE ao longo das épocas de treinamento das topologias da Tabela 5.4 ..................... 78
A.2.2 Conjunto de treinamento da rede neural contendo as seções otimizadas por algoritmos
genéticos. .................................................................................................................................. 80
5
1 INTRODUÇÃO
O processo de dimensionamento estrutural tem se tornado cada vez mais rápido, preciso
e padronizado, devido principalmente ao crescimento tecnológico nas últimas décadas que
proporcionou o surgimento de computadores mais robustos e softwares especializados. A
aplicação de algoritmos de otimização no cálculo estrutural, como por exemplo quando se
pretende diminuir uma função peso ou custo total através de mudanças na topologia, tipo de
material, configuração ou dimensionamento de elementos, tem sido amplamente explorada na
literatura, sua utilização torna possível a sistematização de processos e o pré-dimensionamento
de elementos de maneira a evitar custos excessivos, mantendo as exigências de conforto e
segurança. A necessidade de utilização de algum desses algoritmos se dá pelo fato de que
softwares de dimensionamento estrutural necessitam de valores iniciais que interferem
sensivelmente nos resultados finais, e são altamente dependentes da experiência, intuição e
tempo disponível do engenheiro calculista. Portanto, o dimensionamento de uma estrutura
sujeita à um pré-dimensionamento ineficiente, mesmo que atenda a critérios de segurança e
serviço, pode ter um custo elevado comparado a um que utilizou em seu pré-dimensionamento
um algoritmo de otimização.
O dimensionamento estrutural tem agregado diversos métodos de otimização, os quais
são divididos especialmente em dois grupos, os métodos heurísticos, a saber: Recozimento
Simulado, Algoritmos Genéticos, Redes Neurais Artificiais, Colônia de Formigas e Busca
Harmônica, que utilizam conceitos não-determinísticos inspirados em observações da natureza
para a busca de soluções ótimas de funções, e os métodos matemáticos, os quais se destacam:
Algoritmo Simplex, Algoritmo Conjugado, Método do Lagrangeano Aumentado, Newton-
Raphson e Quasi-Newton, que empregam o uso de derivadas de primeira e segunda ordens para
minimização ou maximização de uma ou mais funções.
Recentemente um novo ramo da inteligência artificial denominado Redes Neurais
Artificiais (RNA’s), tem ganhado espaço em diversas áreas da engenharia civil. Devido sua
capacidade de aprendizado e generalização, as RNA’s tornam possíveis soluções de vários
problemas, os quais seriam difíceis ou até mesmo impossíveis à programação baseada em regras
comuns. Sua estrutura se baseia no sistema nervoso animal, que é altamente não-linear,
6
complexo e paralelo, com capacidade de realizar certos processos muito mais rapidamente que
qualquer computador existente, como reconhecimento de padrões, percepção e controle motor.
A sua aplicação na engenharia civil tem sido demonstrada por exemplo, nos domínios da
otimização estrutural, seleção de formas de madeira, avaliação de danos estruturais e estimativa
da resistência do concreto. Apesar de existir um vasto conteúdo sobre o uso de redes neurais na
engenharia civil, muito se tem a descobrir sobre suas potencialidades e aplicações, considerando
a recência de sua origem.
O processo de elaboração de um projeto estrutural necessita não somente de rotinas pré-
estabelecidas, cada projeto possui suas particularidades que dependem da avaliação e intuição
de cada projetista, isso ocorre por haver incontáveis possibilidades de concepção do projeto que
seriam impossíveis de serem analisadas por computadores convencionais, e exaustiva à
programação de softwares baseados em algoritmos sequenciais, pois sua modelagem
necessitaria levar em consideração inúmeras variáveis, situações e detalhes específicos e
restritivos de cada problema. Por isso, a atividade humana é muito importante à tarefas que
requerem o uso de intuição, reconhecimento de padrões, aprendizado e generalização. Ainda
assim, muitas dessas atividades poderiam se beneficiar da utilização de ferramentas
computacionais baseadas em processamento paralelo, real ou simulado, capazes de facilitar ou
mesmo substituir tais atividades, isso tornaria o processo de elaboração do projeto estrutural
sistemático, ágil e lucrativo. As RNA’s são utilizadas quando problemas não podem ser solúveis
por uma sequência de passos bem definidos, ou quando não há um modelo matemático que
relacione valores de entrada e saída de um sistema, existindo apenas correlações instrumentais
ou empíricas entre estes, basicamente as RNA’s podem ser utilizadas em atividades que
requerem intuição ou análise humana.
Neste estudo as Redes Neurais Artificiais (RNA’s) são apresentadas e discutidas, dando
ênfase a Rede Perceptron Multicamadas (PMC), que é o principal objeto de estudo. É
desenvolvido uma aplicação que utiliza uma rede PMC com aprendizado supervisionado, para
a concepção inicial de vigas biapoiadas de concreto armado. A rede adota como amostras de
treinamento valores otimizados de vigas de concreto armado, afim de aproximar a função que
relacionar os dados de entrada aos valores desejados de saída, isso é possível devido a
capacidade de a rede armazenar conhecimento especializado e generalizá-lo para situações
7
distintas aos quais foi treinada. O alto paralelismo entre as unidades de processamento da rede
pode tornar o processo de otimização mais rápido e com menor gasto computacional ainda que
se utilize processadores sequenciais, porém o uso de circuitos integrados capazes de
processamento em paralelo tornaria a rede muito mais veloz, pois cada unidade de
processamento corresponderia a um neurônio artificial. Algoritmos genéticos são utilizados
como otimizadores na tarefa de instrução da referida rede PMC, para tanto será elaborado um
programa desenvolvido na linguagem JAVA, com auxílio da biblioteca JENETICS, para
otimizar um conjunto de vigas de comprimentos e/ou carregamentos diferenciados. Os
algoritmos genéticos foram escolhidos devido a facilidade de implementação e grande
aplicabilidade em problemas de otimização.
8
2 REDES NEURAIS ARTIFICIAIS
2.1 INTRODUÇÃO
2.1.1 O que são Redes Neurais
Rede Neural é um processador maciçamente paralelo e distribuído, composto por
unidades de processamento simples que tem por finalidade armazenar conhecimento
experimental e torna-lo disponível para utilização. É definida como um sistema conexionista,
uma das divisões da Inteligência Artificial (IA). Seu interesse tem sido motivado pela
velocidade e forma com que o cérebro humano processa determinadas informações quando
comparado ao computador convencional. Atividades como reconhecimento de padrões,
controle motor e percepção de objetos são processadas pelo cérebro animal muito mais
rapidamente que qualquer computador existente. Isso acontece pela forma, complexidade e
paralelismo que o cérebro organiza seus constituintes estruturais, os neurônios. O conhecimento
é adquiro pela rede neural através de um processo de aprendizagem, onde ajustes nos pesos
sinápticos são efetuados afim de armazenar esse conhecimento e atingir o objetivo de projeto
desejado. (HAYKIN, 1999).
O processo de aprendizagem usual de uma rede neural (treinamento supervisionado),
consiste na introdução de exemplos de entrada e saída de dados, onde a rede extrai
características necessárias para modelar a informação relacional entre eles. Quando o processo
de aprendizagem cessa, o modelo formado pela rede pode ser utilizado para a resolução de
problemas distintos ao conjunto de exemplo dado. Portanto as redes neurais são capazes de
extrair características de exemplos e extrapola-los para a resolução de problemas com novos
valores de entrada. (BRAGA et al, 2000).
As redes neurais artificiais têm sido utilizadas para a resolução de uma ampla classe de
problemas complexos que envolvem o processamento de uma extensa massa de dados que
devem ser modelados e analisados de maneira multidisciplinar, levando em consideração tanto
aspectos estáticos, como dinâmicos. (KOVÁCS, 1996).
9
As principais características das redes neurais são a capacidade de aprendizado e
generalização do conhecimento adquirido, o que confere a elas a possiblidade de resolução de
problemas nos quais métodos computacionais baseados em programação sequencial não são
aplicáveis. Outros aspectos relevantes envolvendo a aplicação de redes neurais são: Adaptação
por experiência, organização de dados, não-linearidade, tolerância a falhas, facilidade de
implementação, processamento paralelo e distribuído. Devido a tais características as redes
neurais têm sido utilizadas para a resolução de inúmeros problemas, nas mais diversas áreas do
conhecimento, como engenharia, medicina, biologia e finanças. (SILVA et al, 2010).
2.1.2 Áreas de Aplicação
Existem inúmeras aplicações onde a utilização de redes neurais é adequada, a
diversidade de uso se dá de tal maneira que a mesma topologia de rede pode ser utilizada para
várias outras finalidades. Essa universalidade funcional torna as redes neurais uma poderosa
ferramenta para a resolução de problemas complexos, onde não se tem uma relação definida
entre valores de entrada e saída de dados, ou seja, quando não há um modelo matemático ou
função que relacione variáveis de entrada à saídas desejadas, essa característica é acentuada
quando a rede tem função de aproximar funções. (SILVA et al, 2010).
As principais áreas de aplicação das redes neurais são:
a) Aproximador universal de funções: É aplicável a problemas onde se deseja modelar
uma função que relacione variáveis de entrada a saídas esperadas, tais funções podem
ser lineares, não lineares, contínuas ou discretas. É utilizado quando a modelagem por
técnicas convencionais é inviável devido à complexidade do problema, ou o
dinamismo da função.
b) Otimização de sistemas: É utilizada em problemas de minimização ou maximização
de funções com ou sem restrições, pode englobar problemas de otimização linear,
dinâmica ou combinatória. Um exemplo de aplicação para essa finalidade é a escolha
da melhor rota entre duas cidades.
10
c) Sistemas de previsão: É aplicável a problemas onde partes anteriores de funções são
utilizadas para prever valores futuros, levando em conta a relação entre o domínio e
a imagem da função. Previsões do mercado financeiro, e previsões climáticas são
alguns dos exemplos de aplicações.
d) Reconhecimento e classificação de padrões: Quando o objetivo do problema consiste
em determinar a(s) classe(s) de um determinado valor de entrada, tais valores podem
apresentar ruído e ainda assim serem classificados adequadamente. Dentre as
aplicações, pode-se citar: reconhecimento de voz, imagens, caracteres e digitais.
2.1.3 Neurônio Biológico
Os neurônios são células do sistema nervoso responsáveis pela transmissão de
informação, essa transmissão é feita através da diferença de potencial elétrico na sua membrana.
Possuem corpo celular entre 5 a 150 µm e são compostos por núcleo, dendritos, axônios e outras
organelas; sua topologia abrange formas piramidais, estreladas, fusiforme, piriformes ou
esférica, sendo que cada forma varia com a localização e atividade funcional do neurônio.
(MONTANARI, 2016).
Figura 2.1 - Neurônio Biológico
11
Os dendritos são terminações com superfície irregular que se afilam até a extremidade
e tem por função receber de forma contínua estímulos do meio ambiente, de células epiteliais
sensoriais ou de outros neurônios.
O corpo celular é composto pelas principais organelas citoplasmática (núcleo, retículo
endoplasmático, lisossomos, citoesqueleto, etc.). É responsável pelo processamento de todas as
informações advindas dos dendritos, produzindo um potencial de ativação que informará se o
neurônio poderá disparar um estímulo elétrico ao longo de seu axônio.
O axônio é um prolongamento que transmite estímulos elétricos vindos do corpo celular
a outros neurônios, a células glandulares ou musculares. Geralmente possui estrutura mais longa
que a dos dendritos e espessura constante e lisa, sua extremidade é composta por ramificações
denominadas de terminações sinápticas. (SILVA et al, 2010).
A transferência de informações se dá por meio de sinapses, que são ligações
responsáveis pela conectividade entre a extremidade do axônio de um neurônio pré-sináptico e
os dendritos de outros pós-sinápticos, tal conexão não é física existindo um espaço passível de
ser preenchido por uma substância neurotransmissora responsável por ponderar, ou seja,
controlar o fluxo de transmissão de estímulos elétricos entre neurônios. Essa transmissão resulta
em uma alteração do potencial elétrico da membrana pós-sináptica (dendritos), que dependendo
do tipo de neurotransmissor poderá ser excitatória ou inibitória. Na conexão excitatória há uma
despolarização da membrana pós-sináptica que proporciona a formação de impulso nervoso no
seu axônio, isso acontece devido a variações nos íons de potássio (K+) e sódio (Na+) dentro e
fora da célula, para tanto os impulsos das sinapses devem diminuir o potencial elétrico dentro
da célula de -70 mV (potencial de repouso) para -50 mV (potencial de ativação), ao atingir esse
limiar, há uma inversão do fluxo de sódio e potássio, e o interior da célula torna-se positivo em
relação ao exterior, essa inversão de polaridade propaga um impulso nervoso do axônio até as
terminações sinápticas que então liberam substâncias neurotransmissoras para as claves
sinápticas (regiões entre as terminações sinápticas e os dendritos) e o processo continua para o
neurônio seguinte. Na conexão inibitória, a polaridade se mantém, pois, os estímulos sinápticos
produzidos por neurônios pré-sinápticos não são suficientes para atingir o potencial de ativação
do neurônio pós-sináptico, ou seja, a despolarização não é alcançada. Existem dezenas de tipos
12
de neurotransmissores, cada um determinará se haverá excitação ou inibição do neurônio
seguinte. O período de excitação é sempre antecedido de um período de refração (período em
que o axônio não pode ser estimulado até que estabeleça ou chegue próximo ao seu potencial
de repouso). (BRAGA et al, 2000).
Figura 2.2 - Variação do potencial de ação de um neurônio
2.1.4 Neurônio Artificial
O modelo estrutural das redes neurais artificiais foi baseado nas conexões existentes
entre os neurônios, e as funções que ocorrem no cérebro animal. Os neurônios artificiais são
réplicas muito simplificadas do neurônio biológico, com o objetivo de emular as
funcionalidades da célula, como a geração e propagação de impulsos elétricos entre outros
neurônios. As funções desempenhadas pelos neurônios são simples, como captar sinais de
entrada, pondera-los de acordo com a intensidade da conexão sináptica e reuni-los para
finalmente produzir uma resposta a partir de uma função de ativação previamente definida.
(SILVA et al, 2010).
Em 1943 foi proposto por Warren McCulloch e Walter Pitts um modelo de neurônio
que engloba as principais características do neurônio biológico, em um artigo intitulado: “A
Logical Calculus of the Ideas Immannet in Nervous Activity”, considerado o primeiro artigo
13
sobre redes neurais. O modelo de neurônio era composto por n terminais de entrada
(representando os dendritos) e um único terminal de saída y (representando o axônio), cada
terminal de entrada é ponderado por um peso (substância neurotransmissora), que emula a
intensidade do sinal, podendo assumir valores positivos ou negativos, ou seja, valores
excitatórios ou inibitórios, respectivamente. Os valores ponderados são então somados,
adquirindo a forma de potencial de ativação, caso esse potencial atinja um limiar de excitação
(threshold), o neurônio perpetua o sinal, caso contrário, o inibe. (BRAGA et al, 2000). No
modelo de McCulloch & Pitts (1943) a função de ativação produzia apenas uma saída binária,
pois esta função era do tipo degrau. O diagrama em blocos da figura 3.3 exemplifica o modelo
de um neurônio artificial:
Figura 2.3 - Neurônio Artificial
O processamento de informações de entrada é composto por três etapas:
1. Pesos sinápticos (𝑤kj) são responsáveis por ponderar os valores de entrada do
neurônio, definindo a magnitude, ou seja, a importância de determinada entrada.
Cada sinal de entrada é ponderado por um peso próprio, tais pesos podem assumir
tanto valores positivos quanto negativos.
2. Um combinador linear soma os valores ponderados das entradas e agrega a bias (𝑏k),
formando um campo local induzido (𝑣), também denominado potencial de ativação.
14
3. Uma função de ativação (𝜑(𝑣k)) restringe a amplitude da saída do neurônio, sendo
o valor obtido pelo combinador linear o argumento para esta função. Geralmente a
função de ativação possui sua imagem limitada aos intervalos [0, 1] e [-1, 1].
As expressões a seguir definem matematicamente o modelo de um neurônio artificial k:
Equação (1)
𝑣k =∑𝑤kj 𝑥j + 𝑏k
𝑚
𝑗=1
(1)
Equação (2)
𝑦k = 𝜑(𝑣k) (2)
2.1.4.1 Tipos de funções de ativação
A função de ativação determina o valor de saída do neurônio, pode ser classificada em
parcialmente diferenciável ou diferenciável. O tipo escolhido varia conforme o objetivo da
aplicação e a eficiência no projeto. As funções de ativação parcialmente diferenciáveis são:
Figura 2.4 – Funções de ativação parcialmente diferenciáveis
15
a) Função degrau
Na função degrau as possibilidades de saída se limitam a 0 ou 1; para valores de campo
local induzido negativos, o valor da função é igual a 0, caso contrário o valor assumido é 1.
Equação (3)
𝜑(𝑣) = {1, 𝑠𝑒 𝑣 ≥ 00, 𝑠𝑒 𝑣 < 0
(3)
b) Função sinal
Na função sinal, os valores de saída são -1, 0, 1; para valores de campo local induzido
negativos a função assume o valor -1, para positivos assume 1 e para valores iguais a 0 a função
assume o valor 0.
Equação (4)
𝜑(𝑣) = {
1, 𝑠𝑒 𝑣 > 0 0, 𝑠𝑒 𝑣 = 0 −1, 𝑠𝑒 𝑣 < 0
(4)
c) Função linear por partes
A função linear por partes, também chamada de rampa simétrica, tem sua saída igual ao
valor do campo local induzido quando este se encontra entre limites estabelecidos, quando fora
dos limites assume o valor desses limites. Os limites expressos na Equação (5) serão [-a, a].
Equação (5)
𝜑(𝑣) = {
a, 𝑠𝑒 𝑣 > a
𝑣, 𝑠𝑒 − a ≤ 𝑣 ≤ a
−a, 𝑠𝑒 𝑣 < −a (5)
16
As funções totalmente diferenciáveis são aquelas onde a derivada de primeira ordem é
existente em qualquer ponto da função, ou seja, não possuem nenhuma descontinuidade.
Figura 2.5 – Funções de ativação diferenciáveis
a) Função logística
A função logística possui valores no intervalo [0, 1], e é expressa conforme a Equação
(6), onde a constante β é igual ao grau de inclinação da reta que tangencia o ponto de inflexão
do gráfico.
Equação (6)
𝜑(𝑣) =
1
1 + 𝑒−𝛽.𝑣 (6)
b) Função tangente hiperbólica
A função tangente hiperbólica se assemelha a função logística, porém seus valores de
saída se encontram no intervalo [-1, 1]
Equação (7)
𝜑(𝑣) =
1 − 𝑒−𝛽.𝑣
1 + 𝑒−𝛽.𝑣
(
(7)
17
2.2 ARQUITETURA DAS REDES NEURAIS
A arquitetura da rede está diretamente ligada a forma como os neurônios estão
organizados na rede, ou seja, a forma como estes estão distribuídos, conectados e arranjados.
Sua topologia pode ser definida de várias maneiras a depender da quantidade de camadas, da
função de ativação de cada neurônio, do número de neurônios, da forma como estão ligados e
do algoritmo usado para o aprendizado da rede, que tem por finalidade ajustar os pesos
sinápticos para a convergência adequada da rede. Todas as características citadas, que
distinguem a topologia, são função direta da quantidade de variáveis e da complexidade do
problema. (SILVA et al, 2010).
As principais arquiteturas existentes são:
a) Redes alimentadas adiante (feedforward) com camada única
As redes feedfoward de camada única, são compostas apenas por uma camada de
entrada, e uma camada de saída, são ditas de camada única pois apenas a camada de saída é
responsável pelo processamento das informações. Os principais tipos de rede formados por essa
arquitetura são a rede Perceptron e a rede Adaline.
Figura 2.6 - Rede do tipo feedforword de camada única
18
b) Redes alimentadas adiante (feedforward) de múltiplas camadas
As redes feedforward de múltiplas camadas possuem uma ou mais camadas ocultas que
são compostas por nós computacionais (neurônios ocultos), ou seja, que processam informação
e extraem características, possuem também uma camada de entrada e uma de saída. Os
principais tipos de rede com essa arquitetura são a rede Perceptron Multicamadas (PMC) e a
Rede de Base Radial (RBF). Geralmente essas redes são totalmente conectadas, o que quer
dizer que cada nó de entrada é conectado a todos os neurônios da primeira camada oculta, e
cada neurônio é conectado a todos os neurônios da camada imediatamente posterior. São
utilizadas para diversos fins, aproximação de funções, classificação de padrões e otimização
são alguns deles. Redes com mais de uma camada oculta tem o potencial de classificar padrões
dispostos em regiões não-convexas.
Figura 2.7 – Rede do tipo feedfoword de múltiplas camadas
c) Redes Recorrentes
Redes recorrentes tem suas saídas utilizadas para realimentação da própria rede, deve
possuir ao menos um laço de realimentação. Podem possuir laços de auto-realimentação, onde
a saída de um neurônio é utilizada como entrada para o próprio neurônio, e podem ter tanto
19
uma camada de neurônios como múltiplas camadas. São constituídas por elementos de atraso
unitário (z-1) que possibilitam um comportamento dinâmico não-linear (HAYKIN, 1999). Sua
característica principal é a possibilidade de processamento dinâmico de informações, isto é,
podem trabalhar com sistemas variantes no tempo, como por exemplo: otimização, previsão de
séries temporais e controle de processos. (SILVA et al, 2010).
Figura 2.8 – Rede do tipo recorrente
2.3 PROCESSOS DE TREINAMENTO E APRENDIZADO
As Redes Neurais Artificiais possuem a capacidade de aprendizado de forma a
generalizar relações e extrapola-las por meio de exemplos. Esses exemplos são divididos em
exemplos de entrada e saída e são utilizados pela rede para sintonizar os pesos sinápticos de
maneira a minimizar o erro entre a saída da rede e a saída desejada (exemplo de saída),
modelando então uma função que os relaciona. O processo de ajuste desses pesos é regido por
algoritmos de aprendizagem, que diferem entre si pela forma com que pesos sinápticos são
modificados. (BRAGA et al, 2000).
O ajuste de pesos sinápticos é feito de maneira ordenada, com passos específicos a
depender de cada algoritmo de aprendizado, geralmente os pesos iniciais são compostos por
valores aleatórios contidos no conjunto fechado [0,1], e a sintonização sináptica se dá a partir
20
desses valores. Cada peso tem a função de extrair características que envolvem o problema em
questão, criando hiperplanos de separabilidade ou parcelas que compõe funções, de forma a
relacionar adequadamente valores de entrada a valores de saída. Portanto, a função do algoritmo
de aprendizagem é modificar cada peso na proporção que esse peso interfere no erro de saída.
(SILVA et al, 2010).
Existem basicamente três tipos de treinamento de rede, são eles: Treinamento
supervisionado, treinamento não-supervisionado e treinamento com reforço. A distinção entre
eles é feita pela forma como o treinamento é disposto a rede, que está ligada a maneira como a
rede aprende a partir de estímulos externos.
O treinamento supervisionado é o método mais utilizado para instruir redes neurais, a
supervisão é feita por relações de entradas e saídas de dados que são definidas por um supervisor
externo, na forma de amostras, que compõe os exemplos de treinamento da rede. Nessa
modalidade de treinamento os pesos sinápticos são ajustados afim de melhor representar as
relações existentes nas amostras (entradas de dados e saídas). Os exemplos de algoritmos de
aprendizagem mais utilizados para o treinamento supervisionado são a regra delta e a regra
delta generalizada. (BRAGA et al, 2000).
No treinamento não-supervisionado não existe um supervisor ou professor que
acompanhe o processo de aprendizagem, há apenas uma apresentação de dados de entrada a
rede e esta se auto ajusta modelando e criando classificações e padrões próprios para esses
dados através de processos de regularização estatísticos. (BRAGA et al, 2000). A quantidade
de classificações ou padrões criados pela rede (clusters) é especificado pelo projetista, levando
em consideração o propósito para a qual a rede é criada. (SILVA et al, 2010).
O treinamento por reforço é considerado uma variação do treinamento supervisionado,
a diferença entre eles é a forma com que o resultado da rede é avaliado, enquanto no
supervisionado uma relação de dados de entrada e saída é utilizado para o treinamento da rede,
no treinamento por reforço é disposto um valor de entrada que após processado pela rede é
avaliado por um agente externo, cabendo a ele decidir se tal resultado é satisfatório ou não. O
21
processo de ajustes de pesos é feito por tentativa e erro, até se obter um resultado satisfatório,
ou erro mínimo desejado. (SILVA et al, 2010).
Os conjuntos de treinamento referentes ao aprendizado supervisionado serão expressos
pelas matrizes Ω(x) (matriz de treinamento de entradas de dados) e Ω(d) (matriz de treinamento
de saídas de dados), conforme segue abaixo:
Ω(x) = [𝑥00 ⋯ 𝑥0n⋮ ⋱ ⋮𝑥m0 ⋯ 𝑥mn
]
Ω(d) = [𝑑00 ⋯ 𝑑0n]
Onde a posição m se refere aos elementos de entrada da rede para a matriz Ω(x) e também
aos elementos de saída de rede para a matriz Ω(d), e a posição n se refere à cada amostra de
treinamento da rede para ambas matrizes, ou seja, cada amostra de treinamento é representada
como uma coluna nas matrizes.
2.4 REDE PERCEPTRON
McCulloch e Pitts (1943) desenvolveram diversas topologias de redes neurais com
capacidade de execução de funções booleanas, porém sem a capacidade de aprendizagem,
somente com o trabalho de Rosenblatt (1958) o conceito de aprendizagem em RNAs foi
implementado de fato. Rosenblatt introduziu um modelo computacional denominado
perceptron, uma configuração simples de rede inspirada no funcionamento da retina. A rede
perceptron simples é composta por apenas uma camada de neurônios que atuam como
discriminadores lineares, cada neurônio soma estímulos externos ponderados por pesos
sinápticos, e então retorna um valor de saída de acordo com uma função de ativação intrínseca
a ele, as funções de ativação tipicamente usadas para esse modelo de rede são a função degrau
e a função bipolar. O modelo desenvolvido por Rosenblatt era formado por unidades sensíveis
a estímulos (retina), por um nível intermediário composto por unidades de associação e por um
nível de saída composto por unidades de resposta. A função principal deste modelo era o
reconhecimento de padrões como letras e números. (BRAGA et al, 2000).
22
A rede perceptron composta por um único neurônio é capaz de classificar padrões do
tipo linearmente separável, ou seja, aqueles que se encontram em lados opostos de um
hiperplano, limitando-se a classificar padrões com apenas duas classes. (HAYKIN, 1999).
Figura 2.9 – Topologia de um Perceptron simples idealizado por Rosenblatt
Apesar de ser uma rede relativamente simples comparado ao neurônio biológico, a rede
perceptron atraiu a atenção de diversos pesquisadores na época, especialmente da comunidade
científica relacionada a inteligência artificial. (SILVA et al, 2010). Porém o interesse pelo
assunto não teve longa duração, devido principalmente as críticas de Minsky e Papers (1969)
em relação a sua capacidade computacional, que desestimularam os estudos da rede perceptron
do início da década de 70 até o final da década de 80. (BRAGA et al, 2000).
Na rede perceptron os estímulos são obtidos na camada de entrada, com informações
acerca do problema a ser mapeado pela rede, esses valores são ponderados, de maneira a
quantificar a importância de cada um em função de sua relação e influência com a saída
desejada. Em seguida uma função de ativação utiliza como argumento essa soma ponderada
adicionada ainda por um limiar, e retorna uma saída final para a rede. (SILVA et al, 2010).
A forma mais simples de se representar uma rede neural é através de um único neurônio,
o modelo a seguir exemplifica a topologia de uma rede neural perceptron de camada única,
23
composta por um único neurônio. Em geral esse neurônio recebe n valores de entrada, e possui
uma única saída binária ou bipolar. O ajuste dos pesos sinápticos e limiar de ativação ocorrem
através de um processo de treinamento supervisionado, ou seja, aquele onde se dispõe à rede
exemplo compostos por valores de entrada e saída de dados afim de instruí-la.
Figura 2.10 – Modelo de uma rede Perceptron composta por um único neurônio
Para uma função de ativação do tipo bipolar, a saída yj da figura 3.13 assumiria os
seguintes valores expressos na Equação (8):
𝜑(𝑣j) =
{
1, 𝑠𝑒 ∑𝑤ji 𝑥i + 𝑏j
𝑚
𝑗=1
≥ 0
−1, 𝑠𝑒∑𝑤ji 𝑥i + 𝑏j
𝑚
𝑗=1
< 0
(8)
Considerando um neurônio composto por duas entradas (x1 e x2) a equação que define
o valor de yj é definida na Equação (9) como:
𝜑(𝑣j) =
{
1, 𝑠𝑒 ∑𝑤j1 𝑥1 + 𝑏j
𝑚
𝑗=1
≥ 0 ↔ 𝑤j1. 𝑥1 + 𝑤j2. 𝑥2 + 𝑏j ≥ 0
−1, 𝑠𝑒∑𝑤j2 𝑥2 + 𝑏j
𝑚
𝑗=1
< 0 ↔ 𝑤j1. 𝑥1 + 𝑤j2. 𝑥2 + 𝑏j ≥ 0
(9)
24
Representando o par x1 e x2 como coordenadas de um plano cartesiano, onde cada par
ordenado se refere à uma amostra específica de exemplos de entrada e rearranjando a Equação
(9) de maneira a ter x2 em evidência, é possível obter a Equação (10):
𝜑(𝑣j) =
{
1, 𝑠𝑒 𝑤j1. 𝑥1 + 𝑤j2. 𝑥2 + 𝑏j ≥ 0 ↔ 𝑥2 ≥ −𝑥1. 𝑤j1
𝑤j2−𝑏j
𝑤j2
−1, 𝑠𝑒 𝑤j1. 𝑥1 + 𝑤j2. 𝑥2 + 𝑏j < 0 ↔ 𝑥2 < −𝑥1. 𝑤j1
𝑤j2−𝑏j
𝑤j2
(10)
Substituindo,
𝑤j1
𝑤j2= 𝑎 e
𝑏j
𝑤j2 = − 𝑐, tem-se a Equação (11):
𝜑(𝑣j) = {
1, 𝑠𝑒 𝑥2 ≥ −𝑎. 𝑥1 + 𝑐
−1, 𝑠𝑒 𝑥2 < −𝑎. 𝑥1 + 𝑐 (11)
A Equação (11) divide os pares ordenados (x1 e x2) em dois grupos distintos, os que
possuem o valor x2 maiores que a função afim −𝑎. 𝑥1 + 𝑐, cujo valor de saída é 1 e os que
possuem o valor menor que a função, cujo valor de saída atribuído é -1. A fronteira de
separabilidade entre os conjuntos das amostras pode ser definido então pela reta 𝑥2 = −𝑎. 𝑥1 +
𝑐, dividindo a amostra em dois grupos distintos. No gráfico a seguir, a função afim divide as
amostras em dois conjuntos específicos A e B, sendo que o conjunto A corresponde a saída 1
da rede, e o conjunto B a saída -1.
Figura 2.11 – Fronteira de separação entre amostras
25
O ajuste dos pesos sinápticos e limiares expressos pelos coeficientes e constantes 𝑎 e 𝑐,
na Equação (11) da rede perceptron tem por objetivo adequar a reta 𝑥2 = −𝑎. 𝑥1 + 𝑐, afim de
classificar os conjuntos de amostra em dois grupos distintos. Este ajuste é realizado por meio
da regra de aprendizado de Hebb (1949). (SILVA et al, 2010).
A regra de aprendizado de Hebb é feita de maneira iterativa, onde ajustes sucessivos nos
pesos sinápticos são efetuados após cada apresentação de amostras de treinamento à rede.
Quando o valor de saída da rede é processado, ocorrem ajustes nos pesos (𝑤ji) proporcionais a
diferença entre o valor desejado (dj(a)) referente amostra a e neurônio j e o valor processado (y).
Se o valor for igual ao desejado, não ocorrem ajustes, se for diferente, os ajustes são efetuados.
O processo pode ser definido pelas equações a seguir:
Equação (12)
𝑤jiatual = 𝑤ji anterior + 𝜂 . (𝑑j(a) − 𝑦) . 𝑥(a) (12)
Equação (13)
𝑏j atual = 𝑏j anterior + 𝜂 . (𝑑j(a) − 𝑦) . 𝑥(a) (13)
Como a mesma regra de ajuste é aplicada para pesos e limiares, pode-se inserir o limiar
dentro do vetor dos pesos sinápticos, ou seja, adotar 𝑤j0 = 𝑏j, e sua entrada 𝑥0 = −1 ou 1,
conforme o critério do projetista. O coeficiente 𝜂 é a taxa de aprendizagem, seu valor reflete a
velocidade na qual a rede converge ao valor ideal, ou seja, a rapidez com que a rede é treinada.
Os valores adotados geralmente abrangem o intervalo 0 < 𝜂 < 1, e sua escolha é feita a critério
do projetista; uma adoção indevida de 𝜂 pode fazer a rede não convergir adequadamente, a
escolha de um valor muito pequeno, pode causar demora no processo de convergência, e de um
valor muito grande, um salto nos valores de pesos adequados. A rede perceptron composta por
um neurônio é capaz de executar todas as funções booleanas com exceção a função XOR (ou
exclusivo), devido esta não ser um problema linearmente separável.
26
2.5 REDE ADALINE
A rede Adaline (Adaptive Linear Neuron) surgiu no mesmo período que a rede
perceptron, foi idealizada por Widrow e Hoff, e teve um enfoque diferente da rede perceptron,
já que sua principal aplicação se destinava ao processamento de sinais, enquanto a rede
perceptron tinha uma abordagem na área de psicologia. Embora sua relevância se restringe ao
meio acadêmico, foi de extrema importância para as RNAs, em virtude de seu algoritmo de
aprendizagem, a regra Delta, precursora da regra Delta generalizada, também denominada de
back-propagation.
Similarmente à rede perceptron, a rede Adaline é composta por apenas uma camada
neural de um neurônio e é do tipo feedforward, mas ao contrário da rede perceptron que tem a
modificação de seus pesos baseados nos resultados produzidos pela função de ativação, a rede
Adaline possui a atualização de seus pesos em função do campo local induzido, que é a soma
ponderada de suas entradas pelos pesos. (BRAGA et al, 2000).
Figura 2.12 - Modelo de uma rede Adaline composta por um único neurônio
Na rede Adaline, os sinais de entrada e limiares são inicialmente ponderados pelos pesos
sinápticos e somados como na rede perceptron, compondo o campo local induzido (𝑣). A
função de ativação é responsável por converter o campo local induzido em uma saída final,
27
geralmente binária ou bipolar. A expressão que define o processamento de informações da
Adaline, é idêntica ao do perceptron de acordo com a Equação (14) e Equação (15) a seguir:
𝑣j =∑𝑤ji 𝑥i + 𝑏j
𝑚
𝑗=1
↔ 𝑣j =∑𝑤ji 𝑥i
𝑚
𝑗=0
(14)
𝑦j = 𝜑(𝑣j) (15)
Na Equação (14) o limiar 𝑏j é inserido no vetor peso, assumindo o valor 𝑤j0
simplificando a expressão.
O bloco associador é responsável por auxiliar no processo de treinamento, o sinal obtido
por ele é igual a diferença entre as saídas desejadas da rede (𝑑j(a)) e o valor do campo local
induzido (𝑣𝑗) produzido após a apresentação de cada amostra de exemplos. O objetivo da
Adaline é minimizar o erro quadrático entre a saída da rede e os valores desejados, através de
ajustes nos pesos sinápticos de maneira a obter um conjunto ótimo de pesos. Definindo 𝑤 como
o vetor de pesos 𝑤 = [𝑏𝑗0 𝑤𝑗1 𝑤𝑗2…𝑤𝑗𝑚]𝑇 de um único neurônio j é possível expressar o erro
quadrático em função desse vetor, conforme a Equação (16) abaixo:
𝐸(𝑤) =
1
2 ∑(𝑑𝑗(a) −
𝑛
a =1
𝑣𝑗)2 (16)
Substituindo 𝑣𝑘 pelo resultado da Equação (14), obtém-se a Equação (17):
𝐸(𝑤) =
1
2 ∑(𝑑j(a) −
𝑛
a =1
∑𝑤ji 𝑥i
𝑚
𝑗=0
)2 (17)
28
Equação (18)
𝐸(𝑤) =
1
2 ∑(𝑑j(a) −
𝑛
a =1
𝑤𝑇 𝑥(a))2 (18)
Onde 𝑥(a) se refere ao vetor de treinamento de entradas 𝑥(a) = [−1 𝑥1(a) 𝑥2(a)… 𝑥m(a)]𝑇,
𝑑j(a) é o valor desejado para a a-ésima amostra e n ao total de amostras de treinamento aplicadas
a rede.
Afim de se obter uma diminuição no erro quadrático médio, é aplicado um operador
gradiente em relação ao vetor 𝑤, para atingir uma configuração ótima dos pesos sinápticos.
Equação (19)
∇𝐸(𝑤) =
𝜕𝐸(𝑤)
𝜕𝑤 (19)
Substituindo 𝐸(𝑤) pela expressão obtida na Equação (18), obtém-se a Equação (20):
∇𝐸(𝑤) = 𝜕 [12 ∑ (𝑑j(a)−
𝑛
a =1 𝑤𝑇
𝑥(a))2]
𝜕𝑤
(20)
Pela regra da cadeia, obtém-se a Equação (21)
∇𝐸(𝑤) =
1
2∑
𝜕[ (𝑑j(a) − 𝑤𝑇 𝑥(a))2]
𝜕𝑤
𝑛
a =1
=1
2∑
𝜕𝑢2
𝜕𝑢 𝜕𝑢
𝜕𝑤
𝑛
a =1
(21)
Onde 𝑢 = 𝑑j(a) − 𝑤𝑇 𝑥(a) e
𝜕𝑢2
𝜕𝑢= 2𝑢, logo:
∇𝐸(𝑤) =
1
2∑2 (
𝑛
a =1
𝑑j(a)− 𝑤𝑇𝑥(a))𝜕
𝜕𝑤 (𝑑j(a)− 𝑤𝑇 𝑥(a)) (22)
29
∇𝐸(𝑤) = −∑𝑥(a) (
𝑛
a =1
𝑑j(a) − 𝑤𝑇𝑥(a)) (23)
Ou ainda:
∇𝐸(𝑤) = −∑𝑥(a)
𝑛
a =1
(𝑑j(a)− 𝑣j) (24)
A expressão na Equação (24) define o gradiente do erro quadrático em relação ao vetor
peso, como o objetivo é minimizar a função erro, o processo de iteração para ajustes nos pesos
sinápticos deve ocorrer numa direção contrária ao gradiente à uma taxa 𝜂 (taxa de aprendizado),
ou seja:
Equação (25)
∆𝑤 = −𝜂 . ∇𝐸(𝑤) (25)
Substituindo o valor obtido na Equação (24) na Equação (18), tem-se:
∆𝑤 = 𝜂 .∑ 𝑥(a)
𝑛
a =1
(𝑑j(a) − 𝑣j) (26)
Ou ainda:
Equação (19)
𝑤𝑎𝑡𝑢𝑎𝑙 = 𝑤𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟 + 𝜂 .∑ 𝑥(a)
𝑛
a =1
(𝑑j(a) − 𝑣j) (27)
Aplicando os passos contidos na Equação (18), a rede convergirá então para o mínimo
erro, obtendo a configuração ótima de pesos. O critério para finalização do processo iterativo
30
se dá quando a diferença entre o erro quadrático médio (𝐸𝑞𝑚(𝑤)) obtido em duas épocas
consecutivas for menor que um erro estipulado.
Equação (28)
𝐸𝑞𝑚(𝑤) =
1
𝑝 ∑(𝑑j(a)− 𝑣j)2𝑛
a =1
(28)
Equação (29)
|𝐸𝑞𝑚(𝑤𝑎𝑡𝑢𝑎𝑙) − 𝐸𝑞𝑚(𝑤
𝑎𝑛𝑡𝑒𝑟𝑖𝑜𝑟)| ≤ 휀 (29)
A figura abaixo ilustra o processo iterativo de ajuste nos pesos sinápticos com o objetivo
de chegar a configuração ótima dos pesos através da minimização do erro quadrático médio.
Figura 2.13 – Ilustração do processo de minimização do erro pela Regra Delta
O processo de treinamento da rede Adaline aloca o hiperplano que separa as classes
numa posição de separabilidade ótima, ou seja, há um ajuste do hiperplano de maneira a
minimizar a soma dos quadrados das diferenças entre o valor estimado e o valor produzido.
31
2.6 REDES PERCEPTRON MULTICAMADAS
A rede Perceptron Multicamadas, como o próprio nome sugere, é a rede perceptron
com mais de uma camada, ou seja, aquela que possui ao menos uma camada intermediária,
camada esta situada entre a camada de entrada e a de saída.
Tais redes tem a capacidade de solucionar problemas não linearmente separáveis, como
a função booleana XOR (ou exclusivo), implementar qualquer função contínua desde que tenha
uma camada intermediária, e caso tenha mais de uma camada intermediária qualquer função
existente. No que se refere ao reconhecimento e classificação de padrões, as redes Perceptron
com mais de uma camada são capazes de classificar problemas que estejam situados em regiões
não-convexas. (BRAGA et al, 2000).
A grande popularidade desta rede se deu com a publicação do livro Parallel Distributed
Processing (Rummelhart et al,1986), onde foi introduzido e explicado o algoritmo de
treinamento backpropagation, que sanou algumas das limitações envolvendo o treinamento de
redes complexas.
,
Figura 2.14 – Ilustração de uma rede Perceptron Multicamadas
32
O funcionamento da rede Perceptron Multicamadas é semelhante ao da perceptron
simples, a diferença ocorre devido a existência de neurônios nas camadas intermediárias que
não recebem sinais diretamente da camada de entrada, tais neurônios são estimulados por sinais
advindos de neurônios situados na camada imediatamente anterior a eles. O processo de
treinamento ocorre de maneira supervisionada, com amostras de exemplos que são expostos à
rede afim de instruí-la, utilizando para esse fim um algoritmo de aprendizado, como por
exemplo, o backpropagation, também conhecido como regra Delta generalizada, composto por
duas fases distintas, a primeira denominada propagação adiante, e a segunda, propagação
reversa.
Na propagação adiante um conjunto de treinamento de entrada é inserido na rede, a rede
então processa esses dados camada a camada até produzir suas saídas, que são comparadas com
um conjunto de treinamento de saída, os desvios produzidos entre a saída da rede o conjunto de
treinamento é utilizado para efetuar os ajustes dos pesos e limiares de todos os neurônios.
Para facilitar o entendimento do funcionamento do algoritmo backpropagation, será
definido algumas variáveis de acordo com as figuras abaixo:
Figura 2.15 – Notação para demonstração do algoritmo backpropagation
33
𝑊𝑗𝑖(𝐿)
se refere as matrizes de pesos sinápticos, onde os índices inferiores ji, indicam que
o elemento dessa matriz liga o j-ésimo neurônio da camada (L) ao i-ésimo neurônio da camada
(L-1).
𝑣𝑗(𝐿)
se refere ao potencial de ativação de cada neurônio j da respectiva camada (L), ou
seja, a soma dos produtos das entradas desse neurônio pelos respectivos pesos.
𝜑𝑗(𝐿)
se refere a função de ativação de cada neurônio j da respectiva camada (L), pode
ser uma função linear, degrau, bipolar, gaussiana, etc.
A primeira fase do processo de treinamento é a propagação adiante, podendo ser
expressa pelas seguintes equações:
Para o cálculo do potencial de ativação da primeira camada é utilizado a equação abaixo:
𝑣𝑗(𝐿)=∑𝑤𝑗𝑖
(𝐿). 𝑥i
𝑚
𝑗=0
(30)
Para o cálculo da função de ativação é utilizado o potencial de ativação como argumento
da função.
𝜑𝑗(𝐿)= g(𝑣𝑗
(𝐿)) (31)
Para o cálculo do potencial de ativação das outras camadas é utilizado uma equação
similar, onde os sinais de entrada são os resultados obtidos na função de ativação do neurônio
anterior.
𝑣𝑗(𝐿)=∑𝑤𝑗𝑖
(𝐿). 𝜑𝑖
(𝐿−1)
𝑚
𝑗=0
(32)
34
A função que define o erro de aproximação, ou seja, a diferença entre a saída esperada
e a saída obtida é a função erro quadrático, ela mede o desempenho local da rede.
𝐸(a) =1
2 ∑(𝑑𝑗(a) − 𝜑𝑗
(3))2
𝑛3
j =1
(33)
Onde 𝑑𝑗(a) é o exemplo de treinamento referente ao j-ésimo neurônio, da a-ésima
amostra de treinamento e 𝜑𝑗(3)
é a saída do j-ésimo neurônio da última camada.
O erro quadrático médio pode ser definido como uma média aritmética dos erros após
uma época de treinamento, ou seja, após a apresentação de todas amostras de treinamento (n
amostras). Pode ser expressa pela equação abaixo:
𝐸𝑀 =
1
𝑛 ∑𝐸(a)
𝑛
a =1
(34)
O primeiro passo do algoritmo backpropagation consiste na sintonização dos pesos
presentes na última camada neural, esse processo visa minimizar diretamente o erro entre a
saída produzida pela rede e a saída desejada, o método utilizado é o do gradiente descendente,
para tal fim considere uma rede neural de 3 camadas como ilustrado na figura 3.18.
∇𝐸(3) =𝜕𝐸
𝜕𝑊𝑗𝑖(3)=
𝜕𝐸
𝜕𝜑𝑗(3)∙𝜕𝜑𝑗
(3)
𝜕𝑣𝑗(3)∙𝜕𝑣𝑗
(3)
𝜕𝑊𝑗𝑖(3)
(35)
Pela Equação 33, tem-se:
𝜕𝐸
𝜕𝜑𝑗(3)= −(𝑑𝑗(a) − 𝜑𝑗
(3)) (36)
35
A derivada da função de ativação em relação ao campo local induzido é igual a própria
derivada de primeira ordem da função considerada.
𝜕𝜑𝑗(3)
𝜕𝑣𝑗(3)= 𝑔′(𝑣𝑗
(3)) (37)
𝜕𝑣𝑗(3)
𝜕𝑊𝑗𝑖(3)= 𝜑𝑖
(2) (38)
𝜕𝐸
𝜕𝑊𝑗𝑖(3)= −(𝑑𝑗(a) − 𝜑𝑗
(3)) ∙ 𝑔′(𝑣𝑗(3)) ∙ 𝜑𝑖
(2) (39)
Substituindo as parcelas referentes as equações 36 e 37 por −𝛿𝑗(3)
, temos:
𝛿𝑗(3)= (𝑑𝑗(a) − 𝜑𝑗
(3)) ∙ 𝑔′(𝑣𝑗(3)) (40)
∆𝑊𝑗𝑖
(3)= −𝜂 ∙
𝜕𝐸
𝜕∆𝑊𝑗𝑖(3) ↔ ∆𝑊𝑗𝑖
(3) = 𝜂 ∙ 𝛿𝑗(3)∙ 𝜑𝑖
(2) (41)
A Equação 39 pode ser expressa por um processo iterativo de ajuste dos pesos
sinápticos, da seguinte forma:
∆𝑊𝑗𝑖(3)(𝑡 + 1) = ∆𝑊𝑗𝑖
(3)(𝑡) + 𝜂 ∙ 𝛿𝑗(3)∙ 𝜑𝑖
(2) (42)
O segundo passo do algoritmo backpropagation é o ajuste dos pesos sinápticos situados
nas camadas intermediárias, o seu ajuste leva em consideração a diferença entre a saída desejada
e a saída da rede dos neurônios posteriores já que não se tem um valor de saída ideal para tais
neurônios. Tal ajuste é efetuado após os ajustes dos pesos da última camada, que servirão de
base para o ajuste dos pesos da camada anterior a esta, o que significa que o erro é
retropropagado e utilizado para correção dos pesos da camada intermediária.
36
∇𝐸(2) =𝜕𝐸
𝜕𝑊𝑗𝑖(2)=
𝜕𝐸
𝜕𝜑𝑗(2)∙𝜕𝜑𝑗
(2)
𝜕𝑣𝑗(2)∙𝜕𝑣𝑗
(2)
𝜕𝑊𝑗𝑖(2)
(43)
𝜕𝜑𝑗(2)
𝜕𝑣𝑗(2)= 𝑔′(𝑣𝑗
(2)) (44)
𝜕𝑣𝑗(2)
𝜕𝑊𝑗𝑖(2)= 𝜑𝑖
(1) (45)
𝜕𝐸
𝜕𝜑𝑗(2)= ∑
𝜕𝐸
𝜕𝑣𝑘(3)∙𝜕𝑣𝑘
(3)
𝜕𝜑𝑗(2)
𝑛3
𝑘=1
=∑𝜕𝐸
𝜕𝑣𝑘(3)∙
𝜕∑ 𝑤𝑘𝑗(3)
. 𝜑𝑗(2)
𝑛3
𝑘=1
𝜕𝜑𝑗(2)
𝑛3
𝑘=1
(46)
𝜕𝐸
𝜕𝜑𝑗(2)= ∑
𝜕𝐸
𝜕𝑣𝑘(3)∙ 𝑤𝑘𝑗
(3)
𝑛3
𝑘=1
(47)
𝜕𝐸
𝜕𝑣𝑘(3)=
𝜕𝐸
𝜕𝜑𝑗(3) ∙ 𝜕𝜑𝑗
(3)
𝜕𝑣𝑘(3)
= −(𝑑𝑘(a) − 𝜑𝑘(3)) ∙ 𝑔′(𝑣𝑘
(3)) = − 𝛿𝑘(3)
(48)
𝜕𝐸
𝜕𝜑𝑗(2)= −∑ 𝛿𝑘
(3)∙ 𝑤𝑘𝑗
(3)
𝑛3
𝑘=1
(49)
Substituindo o resultado das Equações 44, 45 e 49 em 43, obtém-se:
∇𝐸(2) =𝜕𝐸
𝜕𝑊𝑗𝑖(2)= −(∑ 𝛿𝑘
(3)∙ 𝑤𝑘𝑗
(3)) ∙
𝑛3
𝑘=1
𝑔′(𝑣𝑗(2)) ∙ 𝜑𝑖
(1) (50)
37
Substituindo as parcelas referentes as Equações 44 e 49 por −𝛿𝑗(2)
, temos:
𝛿𝑗(2)= (∑ 𝛿𝑘
(3)∙ 𝑤𝑘𝑗
(3)) ∙
𝑛3
𝑘=1
𝑔′(𝑣𝑗(2)) (51)
Como o ajuste de pesos deve ser feito em direção contrária ao gradiente erro, obtém-se:
∆𝑊𝑗𝑖
(2)= −𝜂 ∙
𝜕𝐸
𝜕𝑊𝑗𝑖(2) ↔ ∆𝑊𝑗𝑖
(2) = 𝜂 ∙ 𝛿𝑗(2)∙ 𝜑𝑖
(1) (52)
A Equação 52 pode ser expressa por um processo iterativo de ajuste dos pesos
sinápticos, da seguinte forma:
∆𝑊𝑗𝑖(2)(𝑡 + 1) = ∆𝑊𝑗𝑖
(2)(𝑡) + 𝜂 ∙ 𝛿𝑗(2)∙ 𝜑𝑖
(1) (53)
A correção dos pesos sinápticos dos neurônios ligados diretamente a camada de entrada
são efetuados de maneira similar a equação 42, e o processo de diferenciação é idêntico.
∆𝑊𝑗𝑖(1)(𝑡 + 1) = ∆𝑊𝑗𝑖
(1)(𝑡) + 𝜂 ∙ 𝛿𝑗(1)∙ 𝑥𝑖 (54)
38
3 ALGORITMOS GENÉTICOS
3.1 INTRODUÇÃO
Os Algoritmos Genéticos, introduzidos por John Holland no final da década de 60, são
métodos de otimização e busca, do grupo dos algoritmos evolucionários, inspirados no
princípio da seleção natural e evolução, teoria proposta por Charles Darwin, na qual afirma que
indivíduos mais adaptados ao meio ambiente são mais propensos a sobreviverem e gerarem
descendentes. Seu objetivo é varrer o espaço de busca de maneira a encontrar uma solução
ótima sem a necessidade de aplicar métodos de derivação, utilizando apenas operações simples
em indivíduos de um grupo, denominado população. (LACERDA; CARVALHO, 1999).
Os algoritmos genéticos são muito utilizados em problemas onde existe um dado
conjunto de elementos e busca-se encontrar o melhor indivíduo ou grupo de indivíduos que
atendam a restrições previamente definidas. (CASTRO, 2012).
3.2 ESTRUTURA DOS ALGORITMOS GENÉTICOS
O processo de funcionamento dos AG’s é composto por diversas fases, seu objetivo
consiste em criar uma população de possíveis soluções para o problema e submetê-las a
operações de cruzamento e mutação para então avalia-las segundo uma função de aptidão. A
estrutura de funcionamento dos algoritmos genéticos segue as seguintes etapas:
Avaliação: Cada solução contida na população presente é avaliada através de uma
função de aptidão, podendo ser composta pela função a ser otimizada, um ordenamento linear
ou um ordenamento exponencial. Tem por objetivo definir o nível de aptidão de cada indivíduo.
Seleção: São selecionados indivíduos da população de acordo com seu nível de aptidão,
expresso pela função de aptidão. Indivíduos com maior percentual de aptidão tem maior
probabilidade de serem selecionados.
Cruzamento: Indivíduos são combinados através de troca de seus materiais genéticos,
que expressam a solução codificada.
39
Mutação: Indivíduos tem parte do seu material genético modificado, acrescentando
variabilidade genética em seu material.
Atualização: Os novos indivíduos gerados são inseridos na população
Finalização: O processo é finalizado caso um critério de encerramento seja atendido,
como a convergência de uma porcentagem da população para um mesmo valor, ou um número
máximo de iterações.
Figura 3.1 – Estrutura de uma AG tradicional
40
3.3 COMPONENTES DE UM AG
3.3.1 Cromossomos
Cromossomo representa uma determinada solução do problema, é o conjunto de genes
que traz consigo informações acerca das variáveis associadas a função objetivo.
3.3.2 Genes
O gene descreve uma determinada variável da função objetivo, é a unidade básica do
cromossomo. Possui a quantidade de bits suficiente para abranger todo o espaço representativo
da variável associada.
3.3.3 Alelos
Alelos são todos os valores possíveis que o gene pode assumir, afetando diretamente as
características do mesmo.
3.3.4 Indivíduos
Indivíduos são codificações de possíveis soluções do problema, que são manipulados
afim de produzirem novos indivíduos. É a unidade fundamental do algoritmo genético, onde
está contida as variáveis do problema a ser otimizado. Existem diversos tipos de codificação,
como a codificação binária e a codificação real, cada qual com suas vantagens e desvantagens,
principalmente acerca da dimensionalidade e precisão numérica requerida.
3.3.4.1 Codificação Binária
A codificação binária é um dos tipos mais utilizados em processos de otimização por
AG’s devido a sua praticidade e facilidade de implementação, além de poder representar com
certa precisão as variáveis de problemas formados por conjuntos reais. Um indivíduo pode ser
representado por uma sequência binária 𝑠 = [𝑏𝑛… 𝑏2𝑏1 𝑏0], onde 𝑏𝑖 = {0,1} e n é o número
de bits suficiente para representar todo o espaço amostral das variáveis, ou seja, o maior valor
em módulo do intervalo real.
41
Para a representação de variáveis reais no alfabeto binário é necessário a discretização
do conjunto real, ou seja, é preciso tornar um conjunto infinito em finito de maneira que a
quantidade de elementos desse conjunto seja possível de ser representada pela codificação
binária. O tamanho de cada gene pode ser representado pela equação:
𝑛 = [log2(𝑡. 10𝑝)] + 1 (55)
Onde 𝑛 representa o comprimento do gene necessário para a representação do maior
valor em módulo do conjunto real referente a variável em questão, 𝑡 representa a amplitude do
conjunto real da variável (𝑥𝑚á𝑥 − 𝑥𝑚í𝑛) e 𝑝 representa a precisão requerida em casas decimais.
O cromossomo é composto pela concatenação de alelos binários que representam as
variáveis como mostra a figura 4.2. Sua decodificação para o valor real da variável (𝑥) é feita
através das equações 56 e 57.
Figura 3.2 – Cromossomo formado pela concatenação de alelos
𝑥 = 𝑥𝑚í𝑛 + (𝑥𝑚á𝑥 − 𝑥𝑚í𝑛2𝑛 − 1
) ∙ �̂� (56)
𝑠 = [𝑏𝑛𝑏𝑛−1… 𝑏2 𝑏1 𝑏0] ↔ �̂� =∑𝑏𝑖 ∙ 2
𝑖
𝑛
𝑖=0
(57)
Onde �̂� representa o valor inteiro que indica a posição da variável 𝑥 no espaço de busca
discretizado advindo da conversão do valor binário do cromossomo para o valor inteiro.
Encontra-se no intervalo fechado [0, 2𝑛-1].
42
3.3.5 População
A população é o conjunto de indivíduos (cromossomos) que representam as possíveis
soluções do problema, a população inicial é escolhida aleatoriamente, e as subsequentes passam
por processos de seleção e mutação. A geração define o número de vezes que a população
passou pelo processo de seleção, mutação ou reprodução. Um processo muito usual é a
conservação do melhor indivíduo sem que haja alteração genética deste de uma geração a outra,
tal processo é denominado elitismo e tem por objetivo evitar perdas de material genético
valioso.
3.3.5.1 Avaliação
A avaliação consiste na determinação do nível de adaptabilidade de cada indivíduo, esse
nível é determinado através de uma função de aptidão que indica o quão bem adaptado é o
indivíduo, consiste muitas vezes na própria função a ser otimizada, onde as variáveis que
compõem o indivíduo são substituídas na função a ser otimizada produzindo um resultado que
é comparado aos demais ou em um ordenamento linear, na qual os limites da função objetivo
dos indivíduos são enquadrados em um limite previamente definido, normalmente nos
intervalos 1 ≤ 𝑀á𝑥 ≤ 2 𝑒 𝑀á𝑥 +𝑀í𝑛 = 2, onde 𝑀á𝑥 𝑒 𝑀í𝑛 representam os limites das
aptidões a serem definidos.
3.3.5.2 Seleção
Após a avaliação dos indivíduos, um método de seleção é utilizado para escolher os
melhores, ou seja, os com maiores aptidões, afim de efetuar cruzamentos e mutações e gerar
uma população com indivíduos mais aptos. Os métodos de seleção levam em consideração a
probabilidade de seleção do indivíduo e está relacionada a aptidão de cada um, indivíduos com
alta aptidão tem probabilidade proporcionalmente alta de serem selecionados.
Um dos métodos mais utilizados no processo de seleção é o método da roleta, consiste
na determinação da probabilidade de seleção de cada indivíduo, que é diretamente proporcional
a sua aptidão. É determinado pela razão entre a aptidão do indivíduo e a soma das aptidões. O
método consiste no ordenamento decrescente em função da aptidão de cada indivíduo e a
43
elaboração de uma coluna de aptidões acumuladas, então um número aleatório situado no
intervalo [0, Soma total das aptidões] é selecionado, o indivíduo que possui aptidão acumulada
imediatamente acima do número selecionado é escolhido. O processo se repete até que todos
os indivíduos sejam substituídos por novos indivíduos, podendo ocorrer repetições de
indivíduos selecionados. A equação 57 é responsável por determinar a probabilidade 𝑝𝑖 de
seleção de cada indivíduo, onde 𝑓𝑖 é a aptidão do indivíduo em questão, 𝑁 é o número de
indivíduos na população e 𝑓𝑗 representa cada indivíduo j.
𝑝𝑖 =
𝑓𝑖
∑ 𝑓𝑗𝑁
𝑗=1
(58)
A figura 4.3 mostra como a seleção é feita e exemplifica como a seleção é proporcional
a probabilidade de seleção 𝑝𝑖 devido a porcentagem representativa de cada indivíduo na roleta.
Figura 3.3 – Ilustração do Método da Roleta
3.4 OPERADORES GENÉTICOS
3.4.1 Crossover (Cruzamento)
No crossover indivíduos (pais) são combinados afim de produzir novos indivíduos
(filhos), como a probabilidade de seleção é maior em indivíduos com maior aptidão, genes de
indivíduos com grande aptidão tendem a aparecer com frequência na população ao longo do
tempo, proporcionando a convergência do algoritmo. O processo de crossover consiste na
divisão de duas ou mais partes dos cromossomos de dois indivíduos da população, no
44
cruzamento de um ponto, parte do fragmento de um indivíduo é recombinado com a parcela de
outro e vice-versa.
Figura 3.4 – Ilustração do processo de cruzamento de um ponto
3.4.2 Mutação
A mutação ocorre logo após o processo de crossover com uma determinada
probabilidade de ocorrência, ela é responsável pela diversidade genética na população,
incorrendo em uma amplitude de busca necessária à não estagnação em um mínimo ou máximo
local e mantendo um nível mínimo de abrangência no espaço de busca. O operador de mutação
traz mudanças aleatórias nas características do indivíduo, por meio de alterações nos alelos
(valores dos bits). O processo de mutação para codificação binária mais utilizado é a mutação
binária simples, onde posições na cadeia do indivíduos são escolhidas aleatoriamente e seus
valores são invertidos, ou seja, se o valor do alelo escolhido corresponde a 1 seu novo valor
será 0, caso seja 0 o novo valor corresponderá a 1.
Figura 3.5 - Ilustração do processo de mutação binária simples
45
3.5 PARÂMETROS DE CONTROLE DOS ALGORITMOS GENÉTICOS
3.5.1 Tamanho da População
O número de indivíduos define o tamanho da população, a escolha adequada do tamanho
da população interfere na velocidade de convergência e eficiência do algoritmo. Quanto maior
é a população, maior a diversidade de indivíduos e mais próximo da solução ótima convergirá
o algoritmo, porém se esse número for demasiado, o desempenho do algoritmo será afetado,
aumentando o tempo computacional para sua convergência, em KHAN (2002) é sugerido que
o tamanho da população ( 𝑛𝑝𝑜𝑝) se enquadre no intervalo 𝑙 𝑒 2 ∙ 𝑙, onde 𝑙 é o tamanho do
cromossomo e 𝑛𝑝𝑜𝑝 o tamanho da população.
𝑙 ≤ 𝑛𝑝𝑜𝑝 ≤ 2 ∙ 𝑙 (59)
3.5.2 Taxa de Cruzamento
A taxa de cruzamento determina a probabilidade de cruzamento entre dois indivíduos,
é representado por um número entre 0 e 1, sendo que 0 expressa uma probabilidade nula de
cruzamento, e 1 uma probabilidade de 100%. O processo de cruzamento para cada par de
indivíduos acontece com o sorteio de um número entre 0 e 1, se o número sorteado for menor
que a taxa de cruzamento, tais indivíduos são cruzados afim de gerar novos indivíduos com
materiais genéticos diversificados. A taxa de cruzamento interfere na inserção de novos
indivíduos na população, quanto maior o valor da taxa maior o número de substituições. O valor
ideal se encontra entre 0,6 e 0,9. (LACERDA; CARVALHO, 1999)
3.5.3 Taxa de Mutação
A taxa de mutação determina a probabilidade de mutação em cada população após o
processo de cruzamento, da mesma forma que a taxa de cruzamento é expresso por um valor
entre 0 e 1. O processo é similar ao do cruzamento, sendo diferenciado por tratar de cada
indivíduo da população ao invés de pares. Um número entre 0 e 1 é sorteado para cada
indivíduo, se o número sorteado for menor que a taxa de mutação, a depender do processo de
mutação, posições do cromossomo são escolhidas aleatoriamente e modificadas. Valores baixos
46
de mutação podem provocar a convergência do algoritmo para mínimos locais, já valores muito
altos podem transformar o algoritmo em um simples buscador aleatório, perdendo assim sua
funcionalidade. Segundo Tanomaru (1995) valores inferiores a 0,01 para a taxa de mutação são
indicados.
3.6 FUNÇÃO DE PENALIZAÇÃO
Na otimização por algoritmos genéticos não é necessário uma modelagem específica
das restrições do problema, porém para tratar dessas restrições muitas vezes utiliza-se as
funções de penalização, que incrementam ou decrementam um valor na função de aptidão caso
essas restrições sejam violadas com a finalidade de “puni-las” por tal violação, tornando um
problema com restrições em um sem restrições.
O método de penalização adotado neste estudo é o de penalidades estáticas, onde, para
cada restrição violada é adotado uma função intrínseca a ela multiplicada por um coeficiente de
peso, que determina a importância da violação. A função 𝑓𝑝𝑒𝑛𝑎𝑙
(𝑥) é definida abaixo:
Para restrições de igualdade:
𝑓𝑝𝑒𝑛𝑎𝑙
(𝑥) = 𝛼 ∙∑ 𝑟𝑗Φ𝑗
2(𝑥𝑗)
𝑛
𝑗=1
(60)
Para restrições de desigualdade:
𝑓𝑝𝑒𝑛𝑎𝑙
(𝑥) = 𝛼 ∙∑ 𝑟𝑘
𝑚
𝑘=1
[𝑚á𝑥𝑖𝑚𝑜[0,Φ𝑘(𝑥𝑘)]]
(61)
𝛼 → Constante pênalti para todas as restrições (Parâmetro a definir empiricamente)
𝑟 → Constante pênalti para cada restrição (Parâmetro a definir empiricamente)
Φ → Função pênalti (Função que penaliza cada restrição independentemente)
𝑛 → Número de restrições de igualdade
m → Número de restrições de desigualdade
47
4 VIGAS DE CONCRETO ARMADO
Viga pode ser considerado um elemento estrutural de barra, ou seja, aquele em que o
comprimento supera em três vezes a maior dimensão da seção transversal, submetido
majoritariamente a esforços de flexão e cisalhamento, sua principal função é vencer vãos e
transferir esforços de lajes, paredes e outros elementos aos pilares da edificação. Quando os
esforços resistidos pela viga se restringirem a flexão, cujo o plano de ação contenha um dos
principais eixos de inércia, diz-se que a viga está solicitada a flexão normal simples (Figura
5.1), quando os esforços por ela resistidos incluem ações normais à seção transversal, diz-se
que a viga está solicitada a flexão normal composta. (Figura 5.2). (CASTRO, 2012).
Figura 4.1 – Viga solicitada a flexão normal simples
Figura 4.2 – Viga solicitada a flexão normal composta
Uma viga de concreto armado é composta basicamente por concreto e aço, tal junção se
dá pelo fato de o concreto resistir bem a solicitações de compressão, e o aço tanto a solicitações
de compressão quanto de tração, ocupando regiões comprimidas e tracionadas respectivamente,
de uma mesma seção transversal de uma viga. As principais características que viabilizam a
utilização do concreto armado são: a aderência entre o concreto e o aço, a proximidade dos
valores de coeficiente de dilatação térmica dos dois materiais e a proteção do aço pelo concreto
envolvente. (MICHAUD et al, 2015).
O colapso da estrutura de concreto armado é caracterizado pela ruptura do concreto
comprimido ou alongamento excessivo das armaduras tracionadas, que são definidos na prática
48
como estado limite último de ruptura ou de deformação plástica excessiva e levam em
consideração deformações limites para o concreto comprimido e armadura tracionada. As vigas
de concreto armado são dimensionadas de maneira a resistir aos esforços solicitantes e alertar
aos usuários, por meio de deformações e fissuras expressivas, uma eventual ruptura. Portanto
as vigas devem apresentar boas características de ductilidade respeitando a posição da linha
neutra imposta pela norma, utilizando se necessário, armadura de compressão para a disposição
da linha neutra nos domínios 2 ou 3, que definem as estruturas subarmadas. As estruturas são
ditas superarmadas, quando a linha neutra se encontra no domínio 4, levando a uma ruptura
frágil, ou seja, sem aviso de colapso. O dimensionamento das vigas de concreto armado também
deve considerar os estados limites de serviços, que são aqueles relativos ao conforto,
durabilidade ou aparência da estrutura. (ABNT NBR 6118, 2014).
São considerados as seguintes hipóteses na análise dos esforços resistentes de uma seção
de uma viga: (ABNT NBR 6118, 2014)
a) As seções transversais se mantêm planas após a deformação (modelo de viga Euler-
Bernoulli);
b) As deformações das barras passivas aderentes devem ser as mesmas do concreto em
seu contorno, tanto em tração quanto em compressão;
c) As tensões de tração do concreto devem ser desprezadas no ELU (Estado Limite
Último);
d) A distribuição de tensões resistentes de compressão do concreto é feita de acordo
com o diagrama parábola-retângulo, que são válidas para tensões de compressão
inferiores a 0,5 ∙ 𝑓𝑐. Sua tensão de pico é igual a 0,85 ∙ 𝑓𝑐𝑑, sendo 𝑓𝑐𝑑 a resistência
de cálculo à compressão do concreto, podendo o diagrama ser substituído pelo
retângulo de profundidade 𝑦 = 𝜆 ∙ 𝑥, onde 𝜆 pode assumir os seguintes valores:
𝜆 = {
0,8 , 𝑓𝑐𝑘 ≤ 50𝑀𝑃𝑎
0,8 −𝑓𝑐𝑘 − 50
400, 𝑓𝑐𝑘 > 50𝑀𝑃𝑎
(62)
49
E a tensão constante até a profundidade y, pode ser expressa como 𝜎𝑐 = 𝛼𝑐 ∙ 𝑓𝑐𝑑, onde
o parâmetro 𝛼𝑐 pode ser definido segundo a Equação 62:
𝛼𝑐 = {
0,85 , 𝑓𝑐𝑘 ≤ 50𝑀𝑃𝑎
0,85 ∙ (1 −𝑓𝑐𝑘 − 50
200), 𝑓𝑐𝑘 > 50𝑀𝑃𝑎
(63)
4.1 VIGAS DE SEÇÃO RETANGULAR COM ARMADURA SIMPLES
Vigas de armadura simples são aquelas que necessitam apenas de armadura longitudinal
para resistir a esforços de tração, no entanto, por razões construtivas são dotadas também de
armadura na região comprimida para suporte e amarração dos estribos, sendo que a resistência
a compressão oferecida por elas não é levada em consideração no dimensionamento da viga.
A figura 5.3 ilustra um modelo de viga retangular sujeita a ação de um momento fletor
de projeto 𝑀𝑠𝑑, com a adoção do diagrama retangular de tensões para o concreto. A estrutura
estará em equilíbrio, caso atendas as equações 63 e 64.
Figura 4.3 – Distribuição de tensões em uma viga simplesmente armada
50
Onde:
Rcd e Rsd → Esforços resistentes de projeto
x → Linha neutra
y → Altura do retângulo de tensões de compressão
z → Distância entre os esforços de resistência do aço e concreto
d → Altura útil da viga
Equações de equilíbrio estático:
∑𝐹𝑥 = 0 ∴ 𝑅𝑐𝑑 − 𝑅𝑠𝑑 = 0 → 𝜎𝑐 ∙ (𝑏𝑤 ∙ 𝑦) − 𝑓𝑦𝑑 ∙ 𝐴𝑠 = 0 (64)
∑𝑀0 = 0 ∴ 𝑅𝑐𝑑 ∙ 𝑧 = 𝑀𝑠𝑑 → 𝜎𝑐 ∙ (𝑏𝑤 ∙ 𝑦) ∙ (𝑑 −𝑦
2) = 𝑀𝑠𝑑 (65)
Considerando que o concreto do modelo utilizado tenha resistência característica a
compressão inferior a 50Mpa (𝜎𝑐 = 0,85 ∙ 𝑓𝑐𝑑) e as equações são válidas apenas para os
domínios 2 e 3, obtém-se:
𝐴𝑠 =
0,85 ∙ 𝑓𝑐𝑑 ∙ 𝑏𝑤 ∙ 𝑦
𝑓𝑦𝑑 (66)
𝑦 = 𝑑 ∙ (1 − √1 −𝑀𝑠𝑑
0,425 ∙ 𝑏𝑤 ∙ 𝑑2 ∙ 𝑓𝑐𝑑
) (67)
51
5 METODOLOGIA
5.1 PREAMBULO
Na aplicação proposta será utilizado algoritmos genéticos para otimização paramétrica
de vigas de concreto armado biapoiadas submetidas a flexão simples. O objetivo é encontrar as
dimensões e arranjos ideais do concreto e das barras de aço de um conjunto de vigas, de maneira
a obter o menor custo possível para cada uma, respeitando as restrições impostas pela ABNT
NBR 6118 de 2014. Quarenta vigas com carregamentos e/ou comprimentos diferenciados serão
otimizadas por uma aplicação baseada em algoritmos genéticos e os dados otimizados da seção
serão empregados no treinamento de uma rede neural perceptron multicamadas com a
finalidade de transferir conhecimento especializado de otimização e diminuir o gasto
computacional, em relação ao AG, após o treinamento da rede. Por conseguinte, um novo
conjunto de vigas será inserido na rede neural afim de comparar os dados obtidos com valores
otimizados por algoritmos genéticos.
5.2 FORMULAÇÃO
Seja um conjunto de 40 vigas retangulares e biapoiadas de concreto armado, de
comprimentos 𝐿𝑗 e submetidas a carregamentos distribuídos e constantes de projeto 𝑞𝑗𝑑. As
figuras a seguir representam o modelo de viga j e a sua seção transversal. Cada viga possui um
carregamento e um comprimento próprios.
Figura 5.1 – Modelo de viga j e sua seção transversal
52
Pretende-se minimizar o custo das vigas considerando o custo do concreto, aço e forma,
ou seja:
min(𝐶𝑡𝑜𝑡𝑎𝑙,𝑗) = 𝑚𝑖𝑛 [[𝐶𝐶 ∙ 𝑏𝑤 ∙ ℎ + 𝐶𝐴 ∙ 𝛾𝑙𝑖 ∙ 𝑛𝑏𝑎𝑟 + 𝐶𝐹 ∙ (𝑏𝑤 + 2 ∙ ℎ)] ∙ 𝐿𝑗] (68)
Onde:
𝐶𝑡𝑜𝑡𝑎𝑙,𝑗 → Custo total da viga j (R$)
𝐶𝐶 → Custo do Concreto em função do 𝑓𝑐𝑘 (R$/m³)
𝐶𝐴 → Custo do Aço em função do diâmetro e da resistência (R$/kg)
𝐶𝐹 → Custo da Forma (R$/m²)
𝑛𝑏𝑎𝑟 → número de barras longitudinais na seção
𝑏𝑤 → base da seção transversal da viga (m)
ℎ → altura da seção transversal da viga (m)
𝐿𝑗 → Comprimento da viga j (m)
𝛾𝑠 → Peso linear da barra longitudinal (kg/m)
O problema de dimensionamento está sujeito à algumas restrições. Para o indivíduo que
não atenda à uma ou mais restrições laterais de norma, é adicionada na função custo total,
funções pênalti Φ𝑘 referente as restrições k (violadas), afim de penalizar, proporcionalmente à
intensidade da violação, o indivíduo por tais violações, diminuindo a probabilidade de seleção
do mesmo frente a indivíduos não penalizados e evitando que suas características “negativas”
sejam passadas para futuras gerações.
53
Restrições laterais paramétricas:
Dimensões da seção transversal
0.30 𝑚 ≤ ℎ ≤ 0.60 𝑚, 𝑠𝑒𝑛𝑑𝑜 ℎ ∈ ℝ+
0.20 𝑚 ≤ 𝑏𝑤 ≤ 0.60 𝑚, 𝑠𝑒𝑛𝑑𝑜 𝑏𝑤 ∈ ℝ+
Dimensões, arranjos da armadura e resistência do concreto
1 ≤ 𝑛𝑐 ≤ 10, 𝑠𝑒𝑛𝑑𝑜 𝑛𝑐 ∈ ℕ∗
𝑑𝑙(𝐶𝐴50) = {6.3, 8.0, 10.0, 12.5, 16.0, 20.0, 25.0, 32}, 𝑑𝑙 𝑒𝑚 𝑚𝑚
𝑑𝑙(𝐶𝐴60) = {7.0, 8.0, 9.5}, 𝑑𝑙 𝑒𝑚 𝑚𝑚
𝑓𝑐𝑘 = {20, 25, 30, 35, 40, 45, 50, 55, 60}, 𝑓𝑐𝑘 𝑒𝑚 𝑀𝑃𝑎
Restrições laterais de norma e função pênalti relativa a restrição violada:
Flechas horizontais e verticais máximas prescritas pela Norma – NBR – 6118
(Carregamento distribuído constante)
𝑓𝑚á𝑥 =5 ∙ 𝑝 ∙ 𝐿4
384 ∙ 𝐸𝐼≤ 𝑓𝑙𝑖𝑚 =
𝐿
250 (69)
Φ𝑓,𝑙𝑖𝑚 =𝑓𝑚á𝑥 − 𝑓𝑙𝑖𝑚
𝑓𝑙𝑖𝑚
(70)
Espaçamentos mínimos horizontais e verticais, respectivamente, da armadura:
Φ𝑎ℎ,𝑚í𝑛 =
𝑎ℎ,𝑚í𝑛 − 𝑎ℎ𝑎ℎ,𝑚í𝑛
(71)
54
𝑎𝑣 ≥ 𝑎𝑣,𝑚í𝑛 = 𝑚á𝑥 [
2 𝑐𝑚𝜙𝑙
0,5 𝑑𝑚á𝑥
]
(72)
Φ𝑎𝑣,𝑚í𝑛 =𝑎𝑣,𝑚í𝑛 − 𝑎𝑣𝑎𝑣,𝑚í𝑛
(73)
Taxa de armadura mínima e máxima, respectivamente, prescrita pela norma:
𝜌𝑚í𝑛 ≤ 𝜌 ≤ 𝜌𝑚á𝑥
Φ𝜌,𝑚á𝑥 =𝜌 − 𝜌𝑚á𝑥𝜌𝑚á𝑥
(74)
0,0015 𝐴𝑐 ≤ 𝜌 ≤ 0,04 𝐴𝑐
Φ𝜌,𝑚í𝑛 =𝜌𝑚í𝑛 − 𝜌
𝜌𝑚í𝑛
(75)
Domínio de deformação:
𝛽𝑥 ≤ 𝛽𝑥,𝑑𝑡𝑙 = 0,45
Φ𝛽𝑥,𝑚á𝑥 =𝛽𝑥 − 𝛽𝑥,𝑑𝑡𝑙𝛽𝑥,𝑑𝑡𝑙
(76)
Hipótese das seções planas:
ℎ
𝑏𝑤≤ (
ℎ
𝑏𝑤)𝑙𝑖𝑚
= 5 (77)
Φℎ/𝑏,𝑚á𝑥 =
ℎ𝑏𝑤
− (ℎ𝑏𝑤)𝑙𝑖𝑚
(ℎ𝑏𝑤)𝑙𝑖𝑚
(78)
55
5.3 IMPLEMENTAÇÃO DO ALGORÍTIMO GENÉTICO
O programa proposto para a otimização do custo de seções transversais de vigas de
concreto armado submetidas à flexão simples (nomeado VIGOTIM) foi desenvolvido na
linguagem JAVA com auxílio da biblioteca JENETICS. Esta biblioteca permite a maximização
ou minimização de uma dada função de aptidão sem a necessidade de ajusta-la, ou seja, os
parâmetros de ajustes necessários são realizados diretamente no Evolution Engine (motor de
evolução) que é a classe responsável por executar os passos necessários para a criação de uma
nova geração.
Figura 5.2 – Exemplo de aplicação desenvolvida com auxílio da biblioteca JENETICS
O programa é composto basicamente por três classes distintas, conforme segue:
CromossomoViga, DimensionamentoViga e a classe base Main que é a classe de execução do
AG, responsável pelos processos de evolução da população.
Figura 5.3 - Diagrama simplificado de classes do programa VIGOTIM
Main
DimensionamentoViga CromossomoViga
56
A classe CromossomoViga é responsável por determinar as variáveis diretas e indiretas
da função objetivo necessárias à avaliação de cada indivíduo da população, as variáveis diretas
são inseridas diretamente na função custo total da viga e no dimensionamento da viga, as
variáveis indiretas são utilizadas apenas no dimensionamento da viga para então determinar
parâmetros que serão inseridos na função custo total da viga. As diferentes topologias de seções
de vigas serão definidas a partir de 6 variáveis, totalizando 2.376.000 seções distintas possíveis.
Maiores especificações sobre os domínios das variáveis encontram-se nas restrições laterais
paramétricas. (Item 5.2).
Tabela 5.1 – Variáveis e domínios da viga
Variáveis Domínios
Altura da Viga (ℎ) 0.30 𝑚 ≤ ℎ ≤ 0.60 𝑚
Base da Viga (𝑏𝑤) 0.20 𝑚 ≤ 𝑏𝑤 ≤ 0.60 𝑚
Número de Camadas de barras (𝑛𝑐) 1 ≤ 𝑛𝑐 ≤ 10
Diâmetro da Barra Longitudinal (𝑑𝑙) 6.3; 8.0; 10.0; 12.5; 16.0; 20.0; 25.0; 32.0
7.0; 8.0; 9.5 𝑚𝑚
Resistência do Aço (𝑓𝑦𝑘) 500 e 600MPa
Resistência do Concreto (𝑓𝑐𝑘) 20; 25; 30; 35; 40; 45; 50; 55; 60 MPa
A classe DimensionamentoViga é responsável por adicionar ao carregamento
distribuído de projeto o carregamento do peso próprio da viga, calcular a armadura de tração
necessária à cada indivíduo, penalizar possíveis indivíduos que não atendam às características
e restrições impostas pela norma e calcular o custo total penalizado da viga, que é a soma do
custo total da viga mais a função de penalização. O custo total penalizado (função objetivo)
pode ser definido segundo a expressão:
𝐶𝑡𝑜𝑡𝑎𝑙 𝑝𝑒𝑛𝑎𝑙,𝑗 = 𝐶𝑡𝑜𝑡𝑎𝑙,𝑗 + 𝑓𝑝𝑒𝑛𝑎𝑙,𝑗(𝑥) (79)
Onde:
𝐶𝑡𝑜𝑡𝑎𝑙,𝑗 = [𝐶𝐶 ∙ 𝑏𝑤 ∙ ℎ + 𝐶𝐴 ∙ 𝛾𝑙𝑖 ∙ 𝑛𝑏𝑎𝑟 + 𝐶𝐹 ∙ (𝑏𝑤 + 2 ∙ ℎ)] ∙ 𝐿𝑗
(80)
𝑓𝑝𝑒𝑛𝑎𝑙,𝑗
(𝑥) = 100 ∙∑ 𝑟𝑘
𝑚
𝑘=1
[𝑚á𝑥𝑖𝑚𝑜[0,Φ𝑘(𝑥𝑘)]] (81)
57
A classe Main possui o Evolution Engine, que é a classe base responsável por gerar
indivíduos aleatórios (vigas), que são posteriormente avaliados pela classe
DimensionamentoViga, através da função custo total penalizado, afim de obter o nível de
aptidão de cada indivíduo. Os melhores indivíduos, obtidos probabilisticamente pelo método
de seleção por torneio, são cruzados e mutados e inseridos em uma nova população de
indivíduos mais aptos, população esta que também é avaliada. O processo se repete até que um
critério de parada seja satisfeito, como um número máximo de gerações, ou a convergência de
uma porcentagem alta da população para um mesmo valor.
A população inicial pode ser determinada em função do comprimento do cromossomo
que é obtido pela soma dos comprimentos dos genes. Pela equação 55 é possível determinar o
comprimento de cada gene, que representa cada variável do problema.
O vetor G representa os comprimentos de cada gene relativos as variáveis encontradas
na Tabela 5.1, sendo 𝐺 = {𝑛ℎ; 𝑛𝑏𝑤; 𝑛𝑛𝑐; 𝑛𝑑𝑙; 𝑛𝑓𝑦𝑘; 𝑛𝑓𝑐𝑘} = {3; 4; 4; 4; 1; 4}. Logo o
comprimento 𝑙 do cromossomo é igual a 20. Portanto, o tamanho da população pode ser obtido
pela Equação 59, como segue:
𝑙 ≤ 𝑛𝑝𝑜𝑝 ≤ 2 ∙ 𝑙
20 ≤ 𝑛𝑝𝑜𝑝 ≤ 40
𝑛𝑝𝑜𝑝 = 40
(82)
A probabilidade de mutação (𝑝𝑚) foi obtida a partir da equação proposta por HESSER
& MANNER (2000), onde a taxa de mutação é inversamente proporcional ao número de
indivíduos da população e inversamente proporcional ao quadrado do comprimento do
cromossomo.
𝑝𝑚 =
1
𝑛𝑝𝑜𝑝 ∙ √ 𝑙 (83)
𝑝𝑚 =
1
40 ∙ √ 20 = 0,0056 (84)
58
5.3.1 EXEMPLO DE OTIMIZAÇÃO
No exemplo que se segue uma viga de concreto armado biapoiada com 4 metros de vão
e submetida a um carregamento distribuído de 20 kN/m é otimizada pelo programa VIGOTIM
afim de se obter um custo mínimo para a viga. A Tabela 5.2 mostra a seção ótima após 100
gerações.
Tabela 5.2 – Seção transversal otimizada para o custo mínimo
q (kN/m) L (m) Custo (R$) bw (cm) h (cm) nc dl (mm) fck (MPa) Aço
20,00 4,00 294,25 22,08 36,23 5,00 7.0 20,00 CA-60A
A Figura 5.4 ilustra o desempenho do algoritmo durante as 100 gerações
Figura 5.4 – Evolução do custo total da viga
280,00
290,00
300,00
310,00
320,00
330,00
340,00
350,00
360,00
370,00
380,00
0 10 20 30 40 50 60 70 80 90 100
Cu
sto
(R
$)
Gerações
Desempenho do AG
59
5.4 IMPLEMENTAÇÃO DA REDE NEURAL PERCEPTRON MULTICAMADAS
Para o desenvolvimento da rede neural perceptron foi utilizado o editor JOONE (Java
Object Oriented Neural Engine) que é uma ferramenta baseada em módulos Java, utilizada para
construir e executar aplicativos de Inteligência Artificial (IA). Esta framework permite o
desenvolvimento, treinamento e validação de redes neurais artificiais, além de possibilitar a
criação de diversas topologias, a fácil modificação de funções de ativação e o ajuste direto de
parâmetros de rede como momentum, taxa de aprendizado e limite de épocas de treinamento.
Figura 5.5 – Exemplo de rede recorrente desenvolvida em JOONE
A escolha da rede perceptron multicamadas foi baseada na sua capacidade de aproximar
funções. Como o objetivo era tornar a rede capaz de criar uma representação interna do processo
de otimização de vigas de concreto armado, foi utilizado o conjunto das vigas otimizadas por
algoritmos genéticos como amostra de treinamento.
Inicialmente foram configuradas as entradas e saídas de dados da rede, para a camada
de entrada foi definido cinco nós, sendo um nó de cada para o carregamento distribuído (q), o
comprimento da viga (L), a base da viga (bw), a resistência a compressão do concreto (fck) e a
tensão de escoamento do aço (fyk). Para a camada de saída foi definido 6 nós, representando à
60
altura da viga (h), a área de aço tracionado (As), o número de camadas de barras (nc), o diâmetro
da barra longitudinal (ϕl), o custo total da viga (R$), e a posição da linha neutra (x/d) expressa
pelo adimensional (βx). Os valores de entrada e saída foram normalizados individualmente de
modo que permanecessem na gama 0 e 1.
Tabela 5.3 – Parte do conjunto de treinamento
Entrada Saída
Carga
distribuída
(kN/m)
Vão
(m)
Base da
seção
(cm)
Aço
(CA50/60)
Concreto
(MPa)
Altura da
seção
(cm)
Área de aço
tracionado
(cm²)
Número de
camadas
Diâmetro
da barra
(mm)
Custo
Total
(R$)
βx
10 2,0 20,11 50 20 20,26 0,72 1 8,00 82,02 0,09
12 2,0 20,04 60 20 21,83 0,66 1 8,00 86,05 0,09
15 2,0 20,66 50 20 21,65 1,00 1 12,50 86,87 0,11
10 2,5 20,29 60 20 21,43 0,91 3 7,00 107,07 0,12
15 2,5 20,52 50 20 20,44 1,71 6 6,30 113,13 0,20
17 2,5 25,24 60 20 20,02 1,65 1 8,00 122,86 0,19
10 3,0 24,98 50 20 22,93 1,51 3 6,30 156,49 0,13
12 3,0 20,38 60 20 23,01 1,48 4 7,00 143,13 0,19
15 3,0 21,01 60 30 22,83 1,81 3 7,00 166,18 0,15
20 3,0 20,56 50 20 27,32 2,47 1 12,50 176,65 0,22
10 3,5 23,52 60 20 24,34 1,64 2 8,00 188,60 0,17
15 3,5 20,22 50 20 31,85 2,19 6 6,30 220,37 0,17
10 4,0 27,72 60 20 27,12 1,99 3 7,00 256,56 0,16
15 4,0 21,04 60 30 31,17 2,42 2 7,00 287,88 0,15
20 4,0 22,08 60 20 36,23 2,82 5 7,00 294,25 0,21
O algoritmo de treinamento adotado é o backpropagation (RUMELHART;
MCCELLAND, 1986), que é o foco da framework JOONE. Para a definição do número de
neurônios e de camadas escondidas não há uma regra fixa, apenas metodologias empíricas
restritas à algumas topologias. Para a elaboração de uma rede neural é essencial a seleção de
algumas redes candidatas, que deverão ser submetidas a testes de generalização com intuito de
definir àquela capaz de melhor modelar a função a ser aproximada.
O conjunto das 40 vigas otimizadas pelo programa VIGOTIM foi dividido
aleatoriamente em dois subconjuntos, as amostras de treinamento e as amostras de validação,
compondo 87,5% e 12,5% do conjunto de vigas, respectivamente. Foram testadas 4 topologias
distintas de rede, cada uma com números distintos de neurônios, porém com o mesmo número
de camadas ocultas, duas no total. Todas as redes foram submetidas as mesmas amostras de
treinamento e validação. Foi imposto um limite de 50.000 épocas de treinamento para cada uma
61
das redes, sendo que cada época consiste na apresentação de todas as amostras de treinamento
para a aplicação do algoritmo backpropagation, afim de observar a raiz quadrada do erro
quadrático médio (RMSE) de cada uma frente as amostras de treinamento e validação. Cada
rede foi testada duas vezes com parâmetros de taxa de aprendizagem e taxa momentum distintos,
com o objetivo de selecionar a que detinha o menor RMSE. A Tabela 5.3 mostra o desempenho
de cada rede após as 50.000 épocas de treinamento.
Tabela 5.4 – Topologias candidatas, parâmetros de rede e erros
Rede Nº de
Camadas
Nº de nós em
c/ camada
escondida
Nº de épocas
de
treinamento
Taxa de
aprendizagem
Taxa
momentum
RMSE
(treinamento) RMSE
(validação)
1A 2 11 50.000 0,2 0,3 0,017533 0,412202
1B 2 11 50.000 0,6 0,5 0,016393 0,430132
2A 2 15 50.000 0,2 0,3 0,005649 0,414891
2B 2 15 50.000 0,6 0,5 0,002144 0,227017
3A 2 20 50.000 0,2 0,3 0,003215 0,271507
3B 2 20 50.000 0,7 0,6 0,001354 0,381790
4A 2 25 50.000 0,2 0,3 0,002482 0,403190
4B 2 25 50.000 0,7 0,6 0,002157 0,677094
Após testar todas as redes pode-se notar que a rede 2B foi a que obteve melhor resultado,
com RMSE igual a 0,002144 para as amostras treinadas, e RMSE igual a 0,227017 para as
amostras de validação. A Figura 5.5 mostra o desempenho da rede ao longo das épocas:
Figura 5.6 – Gráfico do RMSE da rede 5B gerado pelo JOONE
62
O desempenho da rede pode ser avaliado através da relação entre as amostras de
treinamento de saída obtidas pela otimização das seções das vigas e os valores da saída da rede
treinada após a introdução das amostras de entrada. Os valores de saídas desejados contidos na
Tabela 5.3 podem ser comparados ao desempenho da rede 2B, após a introdução dos valores
de entrada contidos na mesma tabela. A Tabela 5.5 compara os parâmetros otimizadas por
algoritmos genéticos e os valores otimizados pela rede 2B após ser treinada. Os valores em
destaque representam as amostras de validação, as quais não foram utilizadas no processo de
treinamento.
Tabela 5.5 - Valores previstos e desempenho da rede 2B para os parâmetros da viga
ALGORITMO GENÉTICO RNA - 2B
Viga h As nc dl Custo βx h As nc dl Custo βx
1 20,26 0,72 1,00 8,00 82,02 0,09 20,30 0,66 1,00 8,00 81,65 0,09
2 21,83 0,66 1,00 8,00 86,05 0,09 19,28 0,85 0,89 8,21 92,47 0,14
3 21,65 1,00 1,00 12,50 86,87 0,11 21,64 0,94 1,00 12,50 87,14 0,11
4 21,43 0,91 3,00 7,00 107,07 0,12 21,39 0,90 3,00 7,01 102,22 0,12
5 20,44 1,71 6,00 6,30 113,13 0,20 20,44 1,66 6,00 6,30 114,04 0,20
6 20,02 1,65 1,00 8,00 122,86 0,19 20,02 1,60 1,00 8,00 122,36 0,19
7 22,93 1,51 3,00 6,30 156,49 0,13 22,93 1,47 3,00 6,30 155,69 0,13
8 23,01 1,48 4,00 7,00 143,13 0,19 27,76 1,24 1,89 7,14 169,12 0,13
9 22,83 1,81 3,00 7,00 166,18 0,15 22,82 1,76 3,00 7,00 166,93 0,15
10 27,32 2,47 1,00 12,50 176,65 0,22 27,32 2,43 1,00 12,50 176,37 0,22
11 24,34 1,64 2,00 8,00 188,60 0,17 24,37 1,57 2,00 7,99 191,12 0,17
12 31,85 2,19 6,00 6,30 220,37 0,17 31,84 2,15 6,00 6,30 220,25 0,17
13 27,12 1,99 3,00 7,00 256,56 0,16 27,12 1,95 3,00 7,00 256,51 0,16
14 31,17 2,42 2,00 7,00 287,88 0,15 31,16 2,38 2,00 7,00 287,44 0,15
15 36,23 2,82 5,00 7,00 294,25 0,21 36,14 2,80 5,00 7,00 294,91 0,21
16 37,20 3,44 5,00 7,00 317,56 0,23 37,19 3,41 5,00 7,00 317,76 0,23
17 33,18 2,06 4,00 7,00 299,39 0,17 33,10 2,03 4,00 7,01 298,94 0,17
18 37,38 3,20 1,00 10,00 343,89 0,19 44,79 3,96 1,95 9,28 490,32 0,19
19 37,56 3,00 6,00 7,00 350,75 0,21 37,61 2,97 6,00 7,00 348,87 0,21
20 39,15 2,18 5,00 7,00 362,12 0,17 39,18 2,13 5,00 6,99 361,31 0,17
21 44,37 2,80 3,00 7,00 413,63 0,18 44,35 2,76 3,00 7,00 414,51 0,18
22 44,78 3,66 3,00 7,00 445,53 0,23 44,81 3,63 3,00 7,00 445,55 0,23
23 41,86 2,52 3,00 7,00 434,89 0,17 41,88 2,50 3,00 7,00 434,20 0,17
24 44,91 2,86 4,00 7,00 521,20 0,17 44,01 2,83 4,14 6,96 509,66 0,18
25 50,08 3,03 5,00 7,00 597,02 0,18 50,09 2,98 5,00 7,00 600,55 0,18
63
A Figura 5.7 compara o desempenho da rede neural treinada aos valores desejados,
otimizados por algoritmos genéticos:
Figura 5.7 – Desempenho da Rede 2B e saídas esperadas
0
20
40
60
80
1 4 7 10 13 16 19 22 25 28 31 34 37 40
h
Desejado Obtido
0
1
2
3
4
5
6
7
1 4 7 10 13 16 19 22 25 28 31 34 37 40
As
Desejado Obtido
0
2
4
6
8
10
1 4 7 10 13 16 19 22 25 28 31 34 37 40
nc
Desejado Obtido
0
2
4
6
8
10
12
14
1 4 7 10 13 16 19 22 25 28 31 34 37 40
dl
Desejado Obtido
0
200
400
600
800
1000
1200
1400
1 4 7 10 13 16 19 22 25 28 31 34 37 40
Custo
Desejado Obtido
0,00
0,05
0,10
0,15
0,20
0,25
1 4 7 10 13 16 19 22 25 28 31 34 37 40
βx
Desejado Obtido
64
Os detalhamentos das seções das vigas 1, 10 e 25, otimizadas pela rede neural treinada
são ilustrados a seguir:
Figura 5.8 – Detalhamento da Viga 1
Figura 5.9 – Detalhamento da Viga 10
Figura 5.10 – Detalhamento da Viga 25
65
6 CONCLUSÕES E RECOMENDAÇÕES
A utilização de vigas otimizadas por algoritmos genéticos como amostras de
treinamento para a rede neural produziu resultados muito satisfatórios, uma vez que o erro
(RMSE) resultou em valores muito baixos para a diferença entre valores desejados e os valores
obtidos pela rede, conforme ilustrado na figura 5.7.
No desenvolvimento do programa VIGOTIM o ajuste das constantes pênalti individuais,
bem como a constante para todas as restrições, foi definido empiricamente devido a inexistência
de metodologias fixas que definam tais parâmetros. Os ajustes se deram de forma que o
indivíduo escolhido não violasse a nenhuma das restrições impostas. Esse fato pode ocorrer
quando a penalização imposta não é suficientemente elevada para eliminar indivíduos inválidos
(com violações de restrição), ou seja, o indivíduo mais apto (com menor custo) admite violações
de restrições para minimizar ao máximo seu custo, ainda que tais violações o penalizem, tal
fato pode ser remediado aumentando o valor das constantes pênalti.
Os valores dos preços dos materiais foram obtidos nos insumos do SINAPI (Sistema
Nacional de Custos e Índices da Construção Civil) de Brasília de julho de 2014. O custo de
lançamento do concreto e mão de obra não foram contabilizados devido à grande variabilidade
nos preços e na produtividade destes itens em diversas regiões do Brasil, porém tais custos
devem ser considerados em uma aplicação prática, bem como especificações acerca de
dimensões usais de forma, por exemplo. No dimensionamento de elementos estruturais deve
ser levado em considerações muitos outros fatores aos quais não foram aqui tratados, devido a
simplificação didática. Porém adaptações podem ser feitas afim de tratar tais fatores.
Para a análise do RMSE para as amostras de validação da rede neural perceptron,
através da framework JOONE, foi necessário a importação de um arquivo para tal fim através
do gerenciador de códigos MACRO EDITOR. A escolha das melhores taxas de aprendizado e
momentum para os testes finais de rede também se deram de maneira empírica, pois a escolha
das taxas mais adequadas para uma determinada rede ainda não é consolidada, existindo apenas
limites de eficiência para tais. Quanto maiores eram as taxas de aprendizado, maiores eram as
amplitudes de oscilação do RMSE para amostras de treinamento e mais rapidamente a rede
66
convergia, porém, um ajuste excessivo dos pesos sinápticos tornava a rede incapaz de atingir o
mínimo global do problema (menor RMSE), pois o ajuste não era sensível o suficiente e
“saltava” o valor ótimo. Em contrapartida um valor muito pequeno para a taxa de aprendizado,
a tornava lenta, exigindo uma quantidade maior de iterações para se atingir um valor
satisfatório. O termo momentum é um valor utilizado para acelerar o processo de convergência
da rede neural através da diferença entre o peso atual e o anterior (entre duas iterações
consecutivas). Como o grau de inclinação da reta que tangencia a função erro (RMSE) diminui
conforme se aproxima do valor mínimo, o termo momentum se utiliza desse princípio para
modificar de forma mais acentuada os pesos sinápticos que produzem valores de RMSE
distantes do mínimo (reta tangente muito inclinada) e mais sutilmente valores de RMSE
próximos do mínimo (reta tangente pouco inclinada). O ajuste da taxa momentum segue as
mesmas recomendações da taxa de aprendizado, porém com limites de valores usuais distintos.
Todos os valores de entrada foram normalizados de modo que permanecessem no
intervalo entre 0 e 1, evitando que ordens de grandeza diferenciados interferissem mais ou
menos nos ajustes dos pesos sinápticos, como ocorre com as variáveis número de camadas e
preço total. A função de ativação utilizada foi a sigmoide para as camadas ocultas e a linear
para a camada de saída. As funções sigmoides das camadas ocultas ponderadas pelos pesos
sinápticos da camada de saída eram responsáveis pela delineação da função multidimensional
que relacionava os dados, e as funções lineares mesclavam (somavam) esses valores
caracterizando então a função final de correlação de dados.
A utilização de AG’s como amostra de treinamento para redes neurais é útil quando se
pretende sistematizar o processo de otimização, uma vez que, após o treinamento da rede, esta
não mais necessita de sintonização dos pesos, reduzindo-se apenas a simples cálculos de soma
e produto. Com o crescimento do poder computacional nas últimas décadas, a utilização das
redes neurais para solução de problemas tem se tornado muito mais eficiente, possibilitando a
criação de redes mais complexas e com menor tempo de aprendizado. Softwares como JOONE,
utilizam-se de Threads, para a execução de iterações concomitantemente a outras, diminuindo
significativamente o tempo computacional requerido. Portanto, a implementação do processo
proposto à problemas práticos de pré-dimensionamento, tornaria o projeto muito mais ágil,
eficiente e econômico em comparação a métodos puramente estimativos.
67
OPTIMIZATION OF REINFORCED CONCRETE BEAMS USING GENETIC
ALGORITHMS AND ARTIFICIAL NEURAL NETWORKS
Abstract: The preliminary design is extremely important for the end stage of a project design,
this stage interferes significantly in the final composition of the costs and significantly depends
on the experience and intuition of the designer. Algorithms based on sequential programming
becomes limited when problems involving strictly human skills are required. This study aims
to develop an artificial neural network able to make a preliminary design of cross-sections of
reinforced concrete beams with minimum cost from some initial variables. To achieve that, it
was developed an application based on genetic algorithms that optimizes a set of rectangular
cross sections of reinforced concrete beams subjected to simple bending serving as a training
set for the neural network, in order to transfer expertise to network optimization. Genetic
algorithms are computational models inspired by principles of natural evolution. They encode,
manipulate and modify coded solutions in a search space in order to find better individuals.
Artificial Neural Networks are systems based on the functioning of the animal's brain, which
processes massively parallel and distributed way. It is a branch of artificial intelligence capable
of learning and generalizing problems, besides being very used in problems involving
optimization, pattern recognition, function approximation and system predicition.
Keywords: Optimization. Genetic algorithms. Artificial Neural Networks. Reinforced
concrete.
68
REFERÊNCIAS
ABNT NBR 6118. Projeto de Estruturas de Concreto – Procedimento. Rio de Janeiro, 2014.
BRAGA, Antônio de Pádua; LUDERMIR, Teresa Bernarda; CARVALHO, André Carlos
Ponce de Leon Ferreira. Redes Neurais: Teoria e aplicações. Rio de Janeiro: Ltc, 2000, p.1-2.
CASTRO, Li Chong Lee Bacelar de. Engenharia de Estruturas: Engenharia de estruturas sob
o aspecto da inteligência computacional. São Paulo: Edgard Blucher, 2012, pp. 41-64.
FRANZ WILHELMSTÖTTER. JENETICS: LIBRARY USER’S MANUAL. Califórnia:
Autor, 2016. 78 p.
HAYKIN, Simon. Redes Neurais: Princípios e práticas, trad. Paulo Martins Engel. 2. ed. Porto
Aletre: Bookman, 2001, pp. 27-32.
HEBB, D. O. The organization of behavior: a neuropsychological theory. Wiley, New York,
USA, 1949.
HESSER & MANNER. Practical Guide to Genetic Algorithms, Naval Research Laboratory,
Chemistry Division, 2000.
KHAN, N. Population Sizing in Genetic and Evolutionary Algorithms – Lecture Notes,
University of Illinois at Urbana-Champaign, 2002.
KOVÁCS, Zsolt L. Redes Neurais Artificiais: Fundamentos e aplicações. 3. ed. São Paulo:
Livraria da Física, 1996, p. 9.
LACERDA, E. G. M.; CARVALHO, A. C. Sistemas inteligentes: aplicações a recursos
hídricos e ciências ambientais. In: Porto Alegre, RS: Universidade/UFRGS, 1999. cap.
Introdução aos Algoritmos Genéticos, p. 99-150. Disponível em: http://www.dca.ufrn.br-
/~estefane/metaheuristicas/ag.pdf.
LACERDA, E.G.M, CARVALHO, A.C.P.L. Introdução aos algoritmos genéticos. In:
Galvão, C.O., Valença, M.J.S. (orgs.) Sistemas inteligentes: aplicações a recursos hídricos e
ciências ambientais. Porto Alegre: Ed. Universidade/UFRGS: Associação Brasileira de
Recursos Hídricos, 1999, pp. 99-150.
MCCULLOCH, W.S; PITTS, W. A logical calculus of the ideas immanent in nervous
activity: Bulletin of Mathematical Biophysics, 1943, pp. 115-133.
MICHAUD, C.E.N.L; CECCAN, J.L; ARGENTA, M.A.; KAWAI, M.T.; NETO, M.F.H.
Concreto Armado da UFPR: 2045. Paraná: Departamento de Construção Civil, 2015, pp. 1-
135.
69
MONTANARI, Tatiana. Histologia: Texto, atlas e roteiro de aulas práticas. 3. ed. Porto Alegre:
Tatiana Montanari, 2016, pp. 86-92.
RUMELHART, D. E.; MCCLELLAND, J. L. Parallel distributed processing, Vols. I & 2,
MIT Press, Cambridge, Mass, 1986.
SILVA, Ivan Nunes da; SPATTI, Danilo Hernane; FLAUZINO, Rogério Andrade. Redes
Neurais Artificiais: para engenharia e ciências aplicadas. São Paulo: Artliber, 2010, pp. 21-
28.
TANAMORU, J. Motivação, fundamentos e aplicações de algoritmos genéticos. In: Anais
do II Congresso Brasileiro de Redes Neurais. Curitiba, PR, 1995, pp. 373-403.
70
APÊNDICE
A.1 CÓDIGOS FONTE DO PROGRAMA VIGOTIM
A.1.1 Classe Main
71
A.1.2 Classe DimensionamentoViga
72
73
74
75
76
A.1.3 Classe CromosssomoViga
77
A.2 PROJETO DA REDE NEURAL EM JOONE
A.2.1 Estrutura da rede neural
78
A.2.2 RMSE ao longo das épocas de treinamento das topologias da Tabela 5.4
RNA 01 - A
RNA 01 – B
RNA 02 – A
79
RNA 02 – B
RNA 03 – A
RNA 03 – B
80
RNA 04 – A
RNA 04 – B
A.2.2 Conjunto de treinamento da rede neural contendo as seções otimizadas por algoritmos
genéticos.
Viga q L Custo bw h nc Bitola fck Aço
1 10 2,00 82,02 20,11 20,26 1 8.0 20 CA50
2 12 2,00 86,05 20,04 21,83 1 8.0 20 CA60
3 15 2,00 86,87 20,66 21,65 1 12.5 20 CA50
4 10 2,50 107,07 20,29 21,43 3 7.0 20 CA60
5 15 2,50 113,13 20,52 20,44 6 6.3 20 CA50
6 17 2,50 122,86 25,24 20,02 1 8.0 20 CA60
7 10 3,00 156,49 24,98 22,93 3 6.3 20 CA50
8 12 3,00 143,13 20,38 23,01 4 7.0 20 CA60
9 15 3,00 166,18 21,01 22,83 3 7.0 30 CA60
10 20 3,00 176,65 20,56 27,32 1 12.5 20 CA50
81
11 10 3,50 188,60 23,52 24,34 2 8.0 20 CA60
12 15 3,50 220,37 20,22 31,85 6 6.3 20 CA50
13 10 4,00 256,56 27,72 27,12 3 7.0 20 CA60
14 15 4,00 287,88 21,04 31,17 2 7.0 30 CA60
15 20 4,00 294,25 22,08 36,23 5 7.0 20 CA60
16 25 4,00 317,56 23,46 37,20 5 7.0 20 CA60
17 10 4,50 299,39 22,02 33,18 4 7.0 20 CA60
18 15 4,50 343,89 22,10 37,38 1 10.0 20 CA50
19 17 4,50 350,75 22,95 37,56 6 7.0 20 CA60
20 10 5,00 362,12 20,12 39,15 5 7.0 20 CA60
21 15 5,00 413,63 20,43 44,37 3 7.0 20 CA60
22 20 5,00 445,53 21,69 44,78 3 7.0 20 CA60
23 10 5,50 434,89 21,21 41,86 3 7.0 20 CA60
24 15 5,50 481,54 20,01 46,45 3 7.0 20 CA60
25 10 6,00 521,20 21,80 44,91 4 7.0 20 CA60
26 12 6,00 541,54 21,24 47,00 4 7.0 20 CA60
27 15 6,00 599,27 25,21 47,48 6 7.0 20 CA60
28 10 6,50 597,02 20,34 50,08 5 7.0 20 CA60
29 15 6,50 721,82 27,98 50,11 8 7.0 20 CA60
30 10 7,00 689,20 21,06 53,01 3 7.0 20 CA60
31 15 7,00 822,43 26,50 55,88 5 7.0 20 CA60
32 20 7,00 911,32 28,10 58,82 7 7.0 20 CA60
33 10 7,50 842,93 26,42 53,04 8 8.0 20 CA60
34 15 7,50 1003,22 23,89 56,81 7 7.0 30 CA60
35 10 8,00 975,55 21,09 56,31 5 7.0 30 CA60
36 11 8,00 1009,61 27,85 57,65 2 12.5 20 CA50
37 12 8,00 1034,01 21,74 58,88 7 7.0 30 CA60
38 10 8,50 1168,16 25,82 56,84 3 7.0 30 CA60
39 11 8,50 1218,36 27,08 57,50 5 7.0 30 CA60
40 12 8,50 1250,42 27,03 58,92 9 7.0 30 CA60