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 Python para resolver um problema real de transporte de mercadorias
- Visualize as soluções do algoritmo genético utilizando gráficos com a biblioteca matplotlib
- 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 Python 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étodoNão são necessários conhecimentos prévios sobre Inteligência Artificial
- Nã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 Python 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
Jones sempre explicando muito bem!