Prof. Dr. Hugo Valadares Siqueira
Aula 1 – Introdução e Motivação
Inteligência Computacional x Inteligência Artificial
• IA – Utilização de modelos computacionaisinspirados no raciocínio humano;
Síntese de máquinas inteligentes que agem e pensam a semelhança dos seres humanos;
• IC – Utilização de modelos computacionais inspirados na natureza (bio-inspirados);
Áreas da IC
• Sistemas FuzzyInspiração biológica: imprecisão no raciocínio humano; • Redes neurais artificiais
Inspiração biológica: funcionamento do sistema nervoso dos organismos superiores;
• Metaheurísticas de Otimização
Computação Evolutiva: inspirada na teoria da evolução das espécies;
Inteligência de enxame: emula comportamento emergente de grupos de animais;
Sistemas imunológicos artificiais: realizam busca com base nos sistemas imunológicos dos mamíferos;
Ciências Naturais
• Durante os primeiros anos da humanidade, os recursos naturais eram usados para alimentação e proteção;
• Após algum tempo, aprendemos a modificar e controlar a natureza,
produzindo alimentos, criando animais, construindo artefatos, controlando a combustão, etc;
• Mais recentemente, passamos a observar e estudar fenômenos físicos, químicos e biológicos com o objetivo de compreender melhor o
funcionamento da natureza;
• O desenvolvimento tecnológico alterou drasticamente nossa interação com a natureza;
• Por um lado, há uma forte interferência nos processos naturais, voluntária ou involuntária; por outro, os processos naturais servem de fonte de inspiração para o desenvolvimento de novas técnicas de solução de problemas e como meio para computar;
Motivação
• A computação digital vincula a computabilidade de um problema à existência de um algoritmo para resolvê-lo;
• O computador digital é uma máquina de
propósito geral, o qual é capaz de emular outros dispositivos de processamento de informação; • Existem muitos problemas que desafiam a
computação digital e que precisam ser resolvidos;
• Existem muitas questões já compreendidas
junto aos processos naturais e outras ainda por serem desvendadas.
Computador Digital
• O computador digital é a mais determinística das máquinas concebidas pela mente humana;
• O aumento continuado e exponencial do poder de processamento e
memória do computador digital é uma grande
façanha tecnológica;
• Lei de Moore: a cada 18 ou 24 meses é lançada uma nova tecnologia que permite que os
computadores dupliquem o desempenho.
• Com o avanço da
tecnologia, a quantidade de dados processada se eleva exponencialmente a cada ano.
• Por mais que a tecnologia avance, estamos perdendo a
capacidade de resolver problemas de interesse prático;
• A natureza desses problemas pode até não variar muito, mas
o tamanho deles cresce muito rápido.
Vertentes da Computação Natural
• As principais vertentes associadas à computação natural
são:
Desenvolvimento de novas ferramentas computacionais
para a solução de problemas complexos (de engenharia e
computação );
Projeto de dispositivos (computacionais) que simulam,
emulam, modelam e descrevem sistemas naturais;
Síntese de novas formas de vida;
Uso de materiais e mecanismos naturais, como cadeias de
DNA e dispositivos quânticos, como novos meios de
computação em substituição à computação baseada em
silício.
Inspiração na natureza
• Fenômenos naturais (por exemplo, processos, substâncias, organismos, etc.) há tempos inspira as pessoas e estas tentam imitá-los para projetar e construir sistemas novos e artefatos;
• Por muitos séculos, a observação do mundo natural permitiu que as pessoas para
elaborassem teorias sobre como a natureza funciona;
• A física é abundante em leis que descrevem a natureza como:
O eletromagnetismo (equações de Maxwell); Termodinâmica (Primeira lei: conservação, a
segunda lei: entropia, e terceira lei: zero absoluto);
• Exemplos de objetos inspirados na natureza: Velcro (plantas);
Coletes à prova de bala (teias de aranha); Sonares (morcegos);
Antenas (insetos); Aviões (pássaros);
Submarinos (peixes); etc.
• A computação natural já se encontra em máquinas de lavar roupas, aparelhos de ar condicionado, ferrovias,
Paradigmas Envolvidos
• Versão computacional da natureza para o desenvolvimento de sistemas “artificiais”;
• “Artificial”: desenvolvidos por seres humanos ao invés de serem resultantes de processos naturais;
• A computação natural pode ser dividida em três grandes partes: Computação inspirada na natureza: fonte de inspiração para o
desenvolvimento de novas técnicas de solução de problemas, com destaque às ferramentas computacionais (algoritmos);
Simulação e emulação da natureza utilizando a computação: processo de síntese que objetiva criar formas, padrões e comportamentos similares àqueles conhecidos na natureza. Além disso, algumas áreas visam o desenvolvimento de vida artificial;
Computação com materiais naturais: uso de um novo tipo de matéria-prima para computar para substituir a tecnologia de silício empregada atualmente.
• Computação natural: linha de pesquisa baseada ou inspirada na natureza:
1)permite o desenvolvimento de novas ferramentas de
computação (em software e/ou hardware) para a solução de problemas;
2)resulta em processos de síntese de padrões, formas, comportamentos e organismos;
3)que utiliza matéria-prima natural para o desenvolvimento de novos tipos de computadores;
• Ela mostra, com suas três principais áreas, que o conhecimento em diversas linhas de pesquisa é necessário para uma maior compreensão da natureza, para o estudo e simulação de
sistemas e processos naturais, e para o desenvolvimento de novos paradigmas de computação.
• O desenvolvimento da computação natural também resulta em benefícios para as
ciências naturais (biologia, química e física); • Diversas ferramentas, algoritmos e sistemas
computacionais desenvolvidos em
computação natural são empregados para solucionar problemas em áreas como
biologia, bioinformática, imunologia, etc.; • Podem ser empregados como modelos
abstratos de fenômenos naturais, podendo resultar assim em um melhor entendimento da natureza;
• Este curso visa fornecer uma visão geral dos fundamentos de redes neurais ligados à
Pequena Amostra de Ideias
• A história da ciência: vários períodos de quase estagnação, entrelaçados com tempos de grandes avanços;
• As descobertas de Galileo, mecânica Newtoniana, teoria da
evolução de Darwin, a genética de Mendel, o desenvolvimento da física quântica, e o design de computadores são apenas uma pequena amostra de revoluções científicas;
• Nós estamos no meio de outra revolução tecnológica - a era da computação natural, num momento em que a interação e a
semelhança entre computação e da natureza está se tornando a cada dia maior;
• A transformação pode ser revolucionária para todos os
envolvidos na desenvolvimento de dispositivos de computação naturais, mas, se o fizerem bem o seu trabalho, ele vai não
• Podemos notar as nossas planilhas recalculando mais rápido, o nosso verificador gramatical trabalhando, vários problemas
complexos que estão sendo resolvidos, robôs falando e dirigindo carros, novas formas de vida e padrões emergentes em uma tela de computador em frente de nós, etc.;
• De fato, estamos lidando com os resultados finais da computação natural, e não com o próprio processo;
• A principal motivação para esta disciplina é que a natureza tem
muito enriquecido a Informática, sendo bem sucedida em resolver problemas altamente complexos;
•Isso requer estratégias e estruturas
que normalmente não podem ser
modeladas ou entendidas de forma
direta;
•Exemplo: em uma colônia de formigas
todas trabalham para encontrar o
alimento como um
"comportamento
inteligente” e coletivo
;
•Entretanto, a forma como as formigas
procuram alimentos tem inspirado
algoritmos para resolver problemas
de roteamento em redes de
• Entre todas as abordagens de computação natural, algoritmos
computacionais e sistemas inspirados na natureza são os mais antigos e mais populares;
• Surgiram com dois objetivos principais em mente:
i) Modelagem de fenômenos naturais e sua simulação em computadores. Ex: redes neurais artificiais;
ii) Estudo de fenômenos naturais, processos e até mesmo modelos teóricos para o desenvolvimento de sistemas computacionais e algoritmos
capazes de resolver problemas complexos;
• Em um nível muito baixo, há uma necessidade para a
sobrevivência na vida organismos: eles têm que procurar comida, esconder de predadores e das condições meteorológicas,
precisam acasalar, organizar suas casas, etc.
• Não há preocupação com a criação de exatas ou teórica modelos dos fenômenos naturais que está sendo modelados;
• Em muitas situações os modelos são propostos imitando particularidades e mecanismos da biologia;
• Em geral um fenômeno natural dá origem a uma ferramenta computacional através de algoritmos que melhoram
matematicamente a solução de um problema;
• Ao final, ele pode ter uma semelhança distante com o natural fenômeno que originalmente motivou a abordagem.
• Como é possível descobrir regras e mecanismos naturais que podem ser úteis sob uma perspectiva computacional?
• As explicações científicas têm sido dominadas pela formulação de princípios e regras que governam o comportamento de um dado sistema (fenômeno);
• A computação natural geralmente enfatiza modelos altamente simplificados e abstratos da natureza.
• Razões para um tratamento simplificado: Tornar a computação tratável;
Pode ser vantajoso destacar as características mínimas de um sistema que permitem o uso de algum de seus aspectos particulares;
O uso de modelos simplificados pode ser suficiente para atingir os objetivos;
Nem sempre são conhecidos os detalhes do fenômeno/sistema natural observado/estudado.
Foco do curso
Extração de ideias e abstrações;
Aspectos de projeto em computação natural;
Desenvolvimento e uso de ferramentas computacionais
inspiradas na natureza.
Escopo
• O escopo de aplicação de
redes neurais neste curso
está alocado em problemas
que podem ser resolvidos
com RNAs;
• Grandes áreas de aplicação:
Engenharias;
Computação;
Matemática aplicada;
Problemas de outras
naturezas: previsão,
classificação, mapeamento
não-linear, controle, etc.
Vantagens das MH
•Não requerem um conhecimento
matemático profundo do
problema ao qual é aplicado;
•Têm robustez;
•Requerem pouco esforço de
implementação;
•São facilmente hibridizáveis com
outras técnicas;
•São facilmente adaptáveis a
muitas classes de problemas;
Desvantagens das MH
• Não garantem encontrar a solução ótima em tempo finito;
• Há pouco embasamento teórico - a prática se desenvolveu mais do que a teoria;
• O ajustes dos parâmetros de controle requer conhecimento prévio,
calibração com experimento fatorial ou tentativa-e-erro;
• Não são intrinsecamente melhores do que qualquer outro algoritmo de
otimização (“No free-lunch theorems”).
Métodos para solução de problemas
• Métodos fortes: Para problemas
específicos em que há linearidade,
diferenciabilidade, estacionariedade.
Em geral garantem a obtenção da
solução ótima;
• Métodos específicos: Para problemas
muito particulares;
• Métodos fracos: Para problemas
genéricos onde pode existir
não-linearidade, não-estacionariedade, etc.
Não garantem a obtenção da solução
ótima, só eventualmente podem
Métodos Enumerativos
• Excelentes para um grande
número de problemas, entretanto: Aplicável somente a problemas de
“dimensões pequenas”;
Aceitável quando envolve tempos computacionais “razoáveis”;
• Tendem a ser cada vez mais utilizados, à medida que a capacidade computacional disponível aumenta;
• Não servem para problemas com complexidade Não-Polinomial (NP).
Quando pode ser interessante utilizar uma MH?
• Quando há um método
forte/específico para o problema, mas que é inviável a sua aplicação; • Quando a complexidade do
problema torna inviável a sua formulação matemática;
• Quando o número de possíveis
soluções a serem examinadas leva à uma explosão combinatória
intratável;
• Quando o problema é fortemente não-estacionário;
• Quando não existir outra alternativa viável.
Necessidade de métodos heurísticos
• Alto custo computacional para métodos fortes;
• Alta complexidade no equacionamento e resolução de problemas reais;
• Métodos heurísticos são executados em tempos aceitáveis, porém não garantem a obtenção da solução ótima, nem
mesmo garantem a obtenção de uma solução factível;
• Entretanto, o objetivo de um método heurístico é tentar encontrar uma
solução “aceitável” de maneira simples e rápida.