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
What you'll learn
implement optimization algorithms in Python
analyze and compare different optimization techniques
solve real-world optimization problems in various contexts
Course objectives
understand key optimization algorithms used in AI
apply optimization methods to practical problems
evaluate the effectiveness of different algorithmic approaches