Ultimamente tenho andado muito ocupado com as aulas e trabalhos do mestrado, alem de ter que vincular os estudos com o trabalho. Por isso nao tenho postado nada no blog. O que antes ja nao era muito frequente, agora se tornou raro. Mas a medida que o tempo vai passando, sinto novamente a necessidade de compartilhar algo, por hobby. Va que alguem leia, ne? O que vou tentar resumir em poucas linhas, sao os Sistemas Multi Agente, uma sub-area da Inteligencia Artificial que consiste, resumidamente e a grosso modo, em varios agentes inteligentes com capacidades de realizar tarefas distintas ou nao, e interagir entre si, agindo sobre um ambiente. O ambiente pode ser definido como um agente passivo, que pode ser: Totalmente ou Parcialmente Observavel: no primeiro e fornecido acesso completo aos estados do ambiente, no segundo nao, sendo necessario que o agente possa guardar informacoes sobre os estados, caso necessario. Episodico ou Sequencial: em um ambiente sequencial nao possui dependencia da experiencia anterior do agente, ja no episodico, a experiencia do agente e dividida em episodios. Por episodio podemos definir uma tripla precepcao acao reacao (ou reward). Discreto ou Continuo: um ambiente discreto possui estados e acoes distintas, o ambiente continuo possui um numero de estados e acoes tao grande quanto o possivel. Deterministico ou Estocastico: no primeiro uma dada acao vai resultar em uma reacao especifica, no segundo, uma dada acao pode resultar em uma acao especifica com uma probabilidade x e pode resultar em outra acao com uma probabilidade 1-x, por exemplo. Estatico ou Dinamico: onde o ambiente pode permanecer inalterado (estatico) como resultado das acoes, ou o ambiente pode se alterar (dinamico). Mono ou Multi Agente: referente a um agente ou varios agentes. Neste exemplo, que e baseado em um trabalho publicado pela profa Ana Bazzan (referenciado abaixo), o ambiente e o transito, onde foi realizada uma micro simulacao, onde um numero x de carros passava nas vias, definidas como principais (horizontais) e secundarias (verticais). Os agentes eram semaforos, que se encontravam nos cruzamentos e observavam o transito, e de acordo com o estado percebido podiam mudar seu plano semaforico de modo a diminuir o congestionamento nas vias. Utilizando Q-Learning, como tecnica de aprendizado por reforco, os semaforos aprendiam os melhores resultados e com o tempo podiam optar pela melhor acao possivel a ser tomada para diminuir o congestionamento. Posterior ao aprendizado dos semaforos, havia grupos de supervisores, agentes de alto nivel, que observavam as acoes tomadas por grupos menores de semaforos adjacentes, apos um periodo de observacao, esses agentes supervisores podiam induzir os semaforos a se comportar conforme o melhor resultado observado pelos supervisores. Mais detalhes estao no artigo que esta referenciado. O que eu fiz? Bom, o trabalho ja estava pronto, o que tive que fazer foi reproduzir os resultados, como forma de avaliacao de uma das disciplinas que cursei, o que nao e nada trivial dada a complexidade do trabalho como um todo. Objetivando o aprendizado das tecnicas envolvidas e o uso do microsimulador de transito SUMO (Simulation of Urbanity MObility). Representacao de um cruzamento