O que você aprenderá
- Aprenda na teoria e na prática os principais conceitos sobre os algoritmos genéticos, tais como: indivíduo, população, crossover/reprodução, mutação, função de avaliação/fitness e seleção de indivíduos
- Implemente um algoritmo genético passo a passo no R para resolver um problema real de transporte de mercadorias
- Visualize as soluções do algoritmo genético utilizando gráficos
- Utilize o algoritmo genético integrado com uma base de dados no MySql
Requisitos
- É recomendado conhecimento sobre lógica de programação, principalmente estruturas condicionais e de repetição
- Conhecimentos básicos em R são desejáveis, embora seja possível acompanhar o curso sem saber essa linguagem com profundidade
- Noções sobre orientação a objetos são necessárias, principalmente conceitos como classe, objeto, atributo e método
- Não são necessários conhecimentos prévios sobre Inteligência ArtificialNão são necessários conhecimentos prévios sobre banco de dados
Descrição
Os algoritmos genéticos são uma importante área da Inteligência Artificial que são responsáveis pela resolução de problemas complexos, tendo como base encontrar soluções para problemas de otimização e busca. Existem várias aplicações práticas deste tipo de algoritmo, as quais podem ser aplicadas na resolução de problemas em cenários comerciais do dia a dia. Um exemplo clássico é a resolução do problema de choque de horários de professores em uma escola, no qual existem diversas combinações de horários e aulas e o objetivo é construir a grade de horário dinamicamente de acordo com a quantidade de aulas e a disponibilidade de cada professor. Outros exemplos são: empresas de telecomunicações podem projetar novas redes óticas, transportadoras podem planejar melhor a rota de entrega de mercadorias, investidores podem escolher os melhores investimentos; dentre várias outras.
Baseado nisso, neste curso você vai aprender na teoria e principalmente na prática como desenvolver do zero um algoritmo genético aplicado em um cenário real de uma transportadora. Neste contexto, nós seremos consultores de uma empresa de transporte que possui vários produtos a serem transportados, porém, a empresa possui somente um caminhão disponível e com espaço limitado de armazenamento. Nosso objetivo será desenvolver um algoritmo que consiga gerar a melhor combinação dos produtos que devem ser transportados, levando em consideração o fato de que a transportadora quer ganhar o máximo de dinheiro possível com o frete e ocupando o espaço disponível no caminhão.
Esse tipo de algoritmo é baseado em encontrar soluções cada vez melhores a partir da evolução das gerações anteriores, sendo fundamentado nos processos naturais de evolução. E para chegar em nosso objetivo, você vai aprender os principais conceitos sobre essa técnica de inteligência artificial, tais como: população, indivíduo, crossover/reprodução e mutação. Ao final do curso, você terá um algoritmo genético completo que conseguirá resolver o problema da transportadora, o qual pode ser aplicado para outros cenários comerciais. Utilizaremos a linguagem R para a programação das funções e desenvolveremos tudo passo a passo e com muitos detalhes, para que você tenha uma visão bem clara e didática de como esses algoritmos conseguem resolver problemas reais do cotidiano. Além disso, teremos um bônus no qual você vai aprender como criar uma tabela de produtos no MySql e aplicar nosso algoritmo utilizando os dados de uma base de dados, o que pode facilitar a adaptação do código para utilização em ambientes comerciais. Por fim, este material pode ser considerado de nível iniciante para quem está entrando tanto na área de Inteligência Artificial quanto na área de algoritmos genéticos. Porém, caso você seja de nível mais avançado, este curso poderá servir como uma ótima fonte de consulta e revisão dos conceitos.
Para quem é este curso
- Pessoas interessadas em Inteligência Artificial
- Pessoas interessadas em resolver problemas reais utilizando algoritmos genéticos
Aulas bastante didaticas, professor tem otima dicção e conduziu as aulas com bastante objetivo. Quanto ao tema Algoritimos Geneticos, o conceito parece interessante de primeiro momento porem acho que nao é nada mais do que uma metodologia para gerar resultados misturando numeros aleatorios, não consegui ver muita vantagem comparado com a geração de resultados aleatorios atraves da biblioteca Random().