O que você aprenderá
- Aprenda na teoria e na prática a implementação de algoritmos de otimização para resolução de problemas reais
- Implemente passo a passo no Python os seguintes algoritmos: pesquisa aleatório, subida da encosta (hill climb), têmpera simulada (simulated annealing) e algoritmo genético
- Resolva um problema real para otimização de calendários de voos
- Resolva um problema real para otimização de dormitórios para estudantes (recursos limitados)
Requisitos
- Conhecimento sobre lógica de programação, principalmente estruturas condicionais e de repetição
- Conhecimentos básicos sobre programação em Python
- Não são necessários conhecimentos prévios sobre Inteligência Artificial
Descrição
Os algoritmos de otimização 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 como implementar passo a passo os principais algoritmos de otimização, ou seja: pesquisa aleatória, subida da encosta (hill climb), têmpera simulada (recozimento simulado ou simulated annealing) e algoritmos genéticos! Você resolverá dois problemas passo a passo durante o curso:
- O primeiro é a otimização de voos de companhias áreas, no qual seis amigos chegarão no aeroporto da mesma cidade e pretendem compartilhar o transporte. Nesse cenário, vamos utilizar esses quatro algoritmos para encontrar os melhores voos de ida e de volta para cada pessoa, com o objetivo de reduzirmos os custos com as passagens aéreas e também o tempo de espera que cada pessoa ficará no aeroporto! Também faremos um comparativo com os resultados de cada abordagem!
- O segundo é a otimização de recursos limitados, sendo o estudo de caso a escolha de dormitórios para estudantes. Nesse cenário, cada estudante seleciona sua primeira e segunda opções de dormitórios e os algoritmos indicarão em qual dormitório cada estudantes será alocado baseado em suas preferências!
E para chegar em nosso objetivo, você vai aprender os conceitos teóricos sobre cada algoritmo e a respectiva implementação passo a passo utilizando a linguagem Python. É importante enfatizar que não usaremos nenhum tipo de biblioteca para a codificação, ou seja, você aprender como implementar cada técnica utilizando os recursos básicos dessa linguagem! Ao final do curso, você terá quatro algoritmos de otimização completos que poderão ser utilizados para resolução de problemas em outros cenários 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 de otimização. 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 de otimização
Espero muito conhecimento nesse curso.