Aplicações

Existem diversas aplicações da computação inteligente e em diversas áreas da engenharia. A seguir são citadas algumas das principais.

Otimização

O problemas da otimização

O problema da otimização é aquele no qual deseja-se encontrar a melhor solução, para um determinado problema, dentro de um conjunto de soluções possíveis e, na maioria das vezes, levando em consideração possíveis restrições. Existe diversos níveis de dificuldades e, sem dúvidas, os algoritmos bioinspirados são utilizados nos problemas mais difíceis deste tópico. Talvez, o problema mais famoso dessa área seja o problema do caixeiro viajante. Todo aluno que inicia um curso na de computação, certamente ouve falar dele.

Existem diversos algoritmos bioinspirados utilizados para otimização. Dentre eles, destacam-se:

  • Otimização por enxame de partículas (PSO, do inglês: Particle Swarm Optimization), que é inspirado na inteligência coletiva de pássaros
  • Algoritmo Genético (GA, do inglês: Genetic Algorithm), inspirado na teoria da evolução
  • Evolução diferencial, (DE, do inglês: Differential Evolution), também inspirado na teoria da evolução
  • Otimização por colônia de formigas, (ACO, do inglês: Ant Colony Optimization), inspirado nos caminhos traçados por uma colônia de formiga até determinado alimento
  • Evolução Estratégica, (ES, do inglês: Evolution Strategy), mais um baseado na teoria da evolução
  • Algoritmo de polinização de flores, (FPA, do inglês: Flower Pollination Algorithm),  baseado na processo de polinização das flores
  • Simulated annealing, inspirado em conceitos da termodinâmica

Dentre esses algoritmos citados existem diversas versões que foram melhorando o desempenho dos mesmos com o decorrer dos anos.

Classificação de dados

Classificação de dados

Classificando dados

Classificação de dados esta presente em diversos problemas reais, tais como: classificar algarismos númericos em imagens, diferenciar peças defeituosas em uma linha de produção, classificar tumores benignos e malignos, dentre diversas outras. Certamente é uma das áreas mais quentes da inteligência computacional/aprendizado de máquina como um todo. Existem diversos algoritmos da área que são utilizados para realizar a tarefa. Podemos citar:

  • Fuzzy K-means
  • K-Nearest Neighbor
  • Redes Neurais Artificiais
  • Arvores Binárias
  • Naive Bayes
  • Aprendizado de Máquina Extremo
  • Máquina de Boltzmann Restrita Discriminativa
  • Redes neurais convolutivas

Robótica

Kilobots: a robótica coletiva

A computação inteligente também tem muita utilidade na robótica, seja otimizando ou classificando dados de sensores, por exemplo, ou implementado controladores que controlam os robôs de fato. Além disso, já é realidade a utilização de inteligência coletiva para construção de robôs que trabalham cooperativamente em prol de um objetivo em comum, assim como um enxame de abelhas ou uma colônia de formigas.

Na área de controladores, a computação natural oferece algumas alternativas ao métodos clássicos (como por exemplo o PID), dentre eles, destacam-se:

  • Controlador Fuzzy
  • Controlador Neural

Atualmente já existem produtos no mercado, que utilizam controladores inspirados na natureza, tais como: máquina de lavar e ar condicionado.

Predição de séries temporais

Prever o futuro certamente é uma das maiores ambições do ser humano. Obviamente, não existe um sistema perfeito, uma bola de cristal, mas existem excelentes aproximações do que pode acontecer no futuro de um determinado contexto com um grau de probabilidade, como por exemplo, a previsão do tempo, que é utilizada diariamente. Prever demanda de energia, oscilação de temperatura, ações na bolsa de valores, são de fato temas altamente relevantes na área de inteligência computacional. E com isso, muitos pesquisadores estão trabalhando a todo vapor a fim de melhorar os preditores já existentes. Como exemplo de preditores, pode ser citadas as redes neurais artificiais, que são largamente utilizadas neste tipo de problema.

Reconhecimento de padrões em Big Data

Recomendação de sistemas: como extrair os padrões?

Reconhecimento de padrões em grandes bancos de dados é outro tópico quente da área. Tendo um conjunto de dados em mãos, como extrair informações do mesmo? Um exemplo extremamente famoso é o das cervejas e as fraldas do wallmart, no qual, há algum tempo atrás, descobriu-se uma relação entre os dois produtos. Atualmente, as empresas de e-commerce, principalmente, estão interessadas em traçar um padrão de suas vendas e de seus consumidores a fim de maximizar o seu lucro, por exemplo, com recomendações de produto. Outro exemplo é o Netflix, que traça um padrão do seu usuário a fim de recomendá-lo, de acordo com seu gosto, novas séries ou filmes, assim ele fica feliz em ter algo novo, e que tem a ver com o que ele gosta, para assistir e mantém a sua conta na empresa. Quanto melhor a recomendação, mais satisfeito fica o usuário.

Para atacar este problema, atualmente pesquisadores têm focado bastante esforço em técnicas conhecidas como aprendizado profundo (do inglês: Deep Learning). Essas técnicas são baseadas essêncialmente em métodos estocásticos e se destacam: máquina restrita de Boltzmann (RBM, do inglês: Restricted Boltzmann Machine) e as redes neurais profundas (DNN, do inglês: Deep Neural Network).

 

Esperamos que fique claro que as aplicações da área não se limitam aos tópicos citados acima. Existem muitas outras aplicações que estão ai para serem exploradas e melhoradas.