EA099 - Tópicos em Engenharia de Computação
Turma: A -
Período: 1/2026 -
Tipo Período: 1o. semestre -
Disciplina:
Eletiva 4 créditos.
-
Idioma: Português
Acompanha Pós:
IA941
- Laboratório de Arquiteturas Cognitivas
Tema:
Ementa: Laboratório introdutório sobre o uso de arquiteturas cognitivas aplicadas ao controle de criaturas artificiais. Arquiteturas cognitivas são arquiteturas computacionais de uso geral que provêm a infra-estrutura básica para a construção de “mentes artificiais” para agentes, sejam estes agentes físicos, tais como robôs ou veículos autônomos ou virtuais, tais como “players” em jogos de computador. Essas arquiteturas utilizam-se de modelos cognitivos da mente humana, de forma a implementar versões computacionais de habilidades cognitivas, tais como percepção, emoções, memória, tomada de decisão, comportamento reativo e deliberativo, motivações, e em alguns casos até mesmo consciência e emergência de linguagem. Neste laboratório, desenvolvem-se experimentos utilizando as linguagens Java e C# utilizando algumas das mais populares arquiteturas cognitivas: SOAR, Clarion, LIDA e CST, desenvolvendo pequenos experimentos que ilustram o funcionamento destas arquiteturas para a construção de mentes artificiais para o controle de agentes inteligentes.
Conteúdo Programático: Aula 1 O objetivo desta aula é oferecer aos alunos um primeiro contato com o ambiente de trabalho a ser utilizado no curso. Para tanto, as seguintes atividades devem ser realizadas: Primeiras Instalações e Preparações Primeiros Passos com o WorldServe3D (WS3D) Geração de um Controlador Manual para o Ambiente Virtual Aula 2 Nesta aula, iniciaremos o estudo do SOAR. O SOAR é uma arquitetura cognitiva desenvolvida na Universidade de Michigan, pela equipe do Prof. John Laird. A equipe do SOAR desenvolveu um tutorial em 8 passos que estaremos utilizando como base para o nosso curso. Na aula de hoje, desenvolveremos as atividades do Tutorial 1. Aula 3 Na aula de hoje, desenvolveremos o Tutorial 2 do Soar. Particularmente, utilizaremos o Soar para controlar o comportamento de criaturas artificiais bem simples, os assim chamados "Eaters" em um jogo do tipo Pacman. Para tanto, utilizaremos o mecanismo de estados e operadores do Soar para diagnosticar o estado de cada Eater, propor diferentes tipos de ações a cada instante e mostrar como o Soar faz para interfacear com o jogo, para controlá-lo de fato. Aula 4 Na aula de hoje, seguiremos o tutorial 3 do SOAR. Neste tutorial, o objetivo é lidar com problemas mais complexos, que exigem a decomposição de uma meta em metas intermediárias (subgoals), de forma a ser resolvido. Para isso, utilizaremos o pequeno jogo TankSoar, desenvolvido pelo grupo do SOAR para ilustrar situações mais complexas. O nosso agente no TankSoar possuirá agora um grande número de possíveis ações e comportamentos possíveis, e o Soar deverá ser capaz de elaborar uma estratégia que coordene essas ações no tempo. Isso exigirá o uso do mecanismo de impasses e a criação de sub-estados, que iremos exercitar durante a aula. Aula 5 Neste laboratório, iremos desenvolver as atividades nos Tutoriais 4 e 5 do Soar. Essas atividades envolvem técnicas clássicas de Inteligência Artificial, como buscas, planejamento e uma técnica de aprendizagem chamada de chunking. Aula 6 Nas aulas anteriores, seguimos os tutoriais básicos do Soar para entender seu funcionamento. Para isso, nos servimos de alguns exemplos de interfaceamento do Soar com outros programas (Eaters e TankSoar), que já estavam preparados. Na aula de hoje, utilizaremos o Soar para controlar uma aplicação externa por meio da interface SML. O sistema que desenvolveremos será a mente artificial de um agente capaz de controlar o robô no ambiente WorldServer3D que utilizamos na primeira aula. Nosso objetivo com os exercícios aqui propostos é exercitar todos os conteúdos estudados previamente sobre o SOAR, mas agora usando-os de maneira pró-ativa para resolver um problema mais complexo. Nesse exercício, utilizaremos os recursos de sub-goaling do SOAR, bem como sua capacidade de criar um planejamento, que é a capacidade mais distintiva do SOAR. Aula 7 Nesta aula, iniciaremos o estudo da arquitetura Clarion, desenvolvida pelo grupo do Prof. Ron Sun na Universidade de Michigan. Para tanto, será necessário um pequeno estudo teórico do funcionamento da arquitetura, antes do desenvolvimento das atividades práticas. Existem diversas fontes de informação que são importantes. A mais importante é o "R. Sun, A Detailed Specification of CLARION 5.0 . Technical report. 2003". Apesar dele citar o Clarion 5.0, o detalhamento é similar para a versão 6.1.1, que utilizaremos em nossas aulas. Outra fonte de referências, mais recente, é o livro "Sun, R. (2016). Anatomy of the Mind: Exploring Psychological Mechanisms and Processes with the Clarion Cognitive Architecture. United Kingdom: Oxford University Press.". Aula 8 Nesta aula, daremos continuidade às atividades desenvolvidas na aula passada. Aula 9 O objetivo da aula de hoje é utilizar a arquitetura cognitiva Clarion para controlar uma criatura artificial no WorldServer3D, de modo análogo ao que foi feito com o SOAR. Para tanto, é necessário que entendamos o funcionamento do Clarion, e desenvolvamos uma instância da arquitetura Clarion para controlar a criatura. Aula 10 O objetivo da aula de hoje é dar continuidade às atividades desenvolvidas na aula passada, de modo a finalizar o projeto. Aula 11 O objetivo da aula de hoje é iniciar o estudo da arquitetura cognitiva LIDA. A arquitetura LIDA foi desenvolvida pelo grupo do Prof. Stan Franklin, da University of Memphis, nos EUA, e talvez seja a mais sofisticada das três arquiteturas estudadas nesse curso. Na aula de hoje, acompanharemos um tutorial desenvolvido pelo grupo do Stan Franklin, para compreendermos o modelo teórico da arquitetura. Na próxima aula, faremos um estudo mais aprofundado do uso da arquitetura, já utilizando o framework com exemplos de código. Aula 12 O objetivo da aula de hoje é executar um tutorial prático utilizando a arquitetura LIDA. Aula 13 O objetivo desta aula é estudar o exemplo DemoLIDA do uso da arquitetura cognitiva LIDA para controlar o WorldServer3D e promover seu aperfeiçoamento por meio de novos módulos e funções. Aula 14 O objetivo da aula de hoje é utilizar o CST - Cognitive Systems Toolkit, sendo desenvolvido na UNICAMP, para controlar uma criatura artificial no WorldServer3D, de modo análogo ao que foi feito com o SOAR, Clarion e LIDA. Para tanto, é necessário que entendamos o funcionamento do CST, e desenvolvamos uma mente artificial usando o CST para controlar a criatura. Maiores informações sobre o CST, podem ser encontradas no artigo: PARAENSE, A.L.O., RAIZER, K., PAULA, S.M. de, ROHMER, E., GUDWIN, R.R. - "The Cognitive Systems Toolkit and the CST Reference Cognitive Architecture" - Biologically Inspired Cognitive Architectures Journal, Volume 17, July 2016, Pages 32–48 - doi:10.1016/j.bica.2016.07.005 Aula 15 O objetivo desta aula é estender o exemplo do ws3dapp, utilizando o CST, demonstrando proficiência no uso do toolkit.
Obs.: Consultar Catálogo vigente na DAC.
Plano de Desenvolvimento: n/a
Conforme IN CCG nº 02/2025 - Cláusula de Honestidade e Lisura Acadêmica
Todas as atividades relacionadas às disciplinas devem ser realizadas em conformidade com as orientações fornecidas pelos docentes e com o devido rigor ético.
Caso o(a) docente responsável, no exercício de sua liberdade de cátedra, forme convicção acerca da ausência de lisura ou de condições adequadas para a realização da atividade avaliativa, poderá atribuir nota zero, seja para a atividade única ou, conforme o caso, para o conjunto de atividades do semestre. A ocorrência deverá ser fundamentada e comunicada à Coordenação de Curso de Graduação, podendo o(a) estudante estar sujeito a processo administrativo.
Bibliografia: Documentação das arquiteturas: SOAR, Clarion, LIDA e CST - Roteiro dos Experimentos do Laboratório
Critério de Avaliação: Serão desenvolvidos 5 projetos computacionais, relacionados às 4 arquiteturas cognitivas estudadas no curso. Os projetos deverão ser entregues pelos alunos, e receberão uma nota. A nota final é uma média ponderada das notas dos projetos, com pesos relativos ao número de aulas estudadas em cada arquitetura cognitiva.
Bibliografia complementar: n/a