A Inteligência Artificial é uma área multi-disciplinar, para seguirem
esta disciplina é importante que os alunos já tenham uma certa
maturidade e conhecimentos que lhes permitam encarar matérias sobre
diferentes pontos de vista, ligando aspectos já estudados noutras
disciplinas.
Com a disciplina de Inteligência Artificial procura-se que os alunos se familiarizem com:
1. Técnicas de pesquisa para resolução de problemas, procurando
desenvolver a sua capacidade para formular problemas como ``problemas
de pesquisa''.. Este tópico também permite o cruzamento de matérias
leccionadas noutras disciplinas da Licenciatura em Engenharia
Informática.
2. Técnicas de Representação de Conhecimento e Raciocínio em lógica.
Este tópico introduz fundamentos
importantes para os alunos que prossigam estudos na área da
Inteligência Artificial, ou que mais tarde na sua vida profissional
tenham que lidar com aplicações que necessitem de representar
conhecimento.
3. Representação e resolução de problemas de Planeamento.
Formalismos para representação de estados, acções e suas consequências.
Sistemas de Planeamento.
Este tópico permite a aplicação de algumas das técnicas
adquiridas nos dois tópicos anteriores e introduz novas técnicas e
formalismos.
4. Utilização da Programação em lógica como linguagem de
programação (Prolog) de forma a que os alunos exercitem as competências
no desenvolvimento de programas em Prolog adquiridas na disciplina de
Programação em Lógica. Utilização da Programação em Lógica (Prolog) como formalismo
lógico (não-monotónico) para representação de conhecimento de senso
comum em problemas de Inteligência Artificial.
T -2 P-2 ECTS - 6
Programa
1. Introdução à Inteligência Artificial.
1. Áreas da IA,
2. História da IA.
3. Tópicos actuais de Investigação.
4. Introdução aos Agentes racionais.
2. Pesquisa
1. Resolução de problemas
1. Espaço de Estados. Acções como operadores de transição de estados.
Formulação de problemas como problemas de pesquisa no espaço de Estados.
2. Pesquisa no espaço de estados não informada.
1. Pesquisa: em largura, em profundidade, em profundidade limitada, em
profundidade limitada iterativa, e bidireccional.
2. Análise de complexidade temporal e espacial.
3. Definição de algoritmo completo e algoritmo óptimo.
3. Pesquisa informada no espaço de estados.
1. Algoritmos: ``o melhor primeiro (best first), ``ansioso (greedy) e o ``A*''.
2. Definição de heurística admissível. Estudo do A* para heurísticas admissíveis.
3. Definição de heurísticas admissíveis para problemas tipo.
4. Outras estratégias para pesquisa no espaço de estados.
1. Problemas de satisfação de restrições: formulação e métodos de resolução alternativos.
2. Subida da colina (Hillclimbing), Arrefecimento simulado (simulated anealing) e algoritmos genéticos.
3. Formulação de problemas e estudo dos algoritmos nos parâmetros: complexidade, completude e optimalidade.
4. Pesquisa no espaço de estados com limite na memória. Algoritmos ``IDA*'', SMA*.
2. Decisão de Jogadas em Jogos
1. Representação do espaço de estados de jogos. Função de utilidade de um jogo.
2. Algoritmo de pesquisa minimax.
3. Heurísticas para corte no espaço de estados e funções de avaliação dos estados de jogos.
4. Algoritmo ``alfa-beta pruning''.
5. Representação de jogos com eventos aleatórios.
6. Outras técnicas de representação de conhecimento de jogos para decisão de jogadas.
3. Representação do Conhecimento e raciocínio.
1. Lógica proposicional e Lógica de 1a ordem.
2. Descrição de problemas em Lógica de 1a ordem. Escolha do
vocabulário, Construção de regras, axiomas e teoremas. Representação do
conhecimento de senso comum.
3. Representação de problemas que evoluem: Acção e Mudança.
Representação do tempo e raciocínio com restrições temporais.
Formalismos para representação de Acção e Mudança: Cálculo de
Situações e Cálculo de Eventos. Planeamento de acções com estes
formalismos. Problemas de enquadramento, qualificação e ramificação.
4. Raciocínio dedutivo e inferência lógica. Sistemas para a manutenção de verdade: TMS e ATMS.
5. Formalismos lógicos não monotónicos: Regras por Defeito, Raciocínio Abdutivo.
6. Sistemas de Raciocínio Probabilístico: Redes Bayesianas.
4. Planeamento
1. Problemas tipo
2. Notação Strips e representação de problemas.
3. Estudo do algoritmo Strips.
4. Melhorias sobre o algoritmo Strips.
5. Planeador de ordem parcial.
6. Planeamento com o cálculo de situações e o cálculo de eventos.