um framework para apoio ao ensino de algoritmos de...
TRANSCRIPT
![Page 1: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/1.jpg)
Marco Simões, [email protected]
Mario Jorge Pereira, [email protected]
UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE BUSCA EM ÁRVORE DE SOLUÇÕES
PARA PROBLEMAS DE INTELIGÊNCIA ARTIFICIAL
![Page 2: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/2.jpg)
Prof. M.Sc. Marco Simões
Agenda
MotivaçãoObjetivos do ProjetoProblemas de BuscaArquitetura do FrameworkExemplo de UsoResultadosConsiderações FinaisTrabalhos Futuros
![Page 3: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/3.jpg)
Prof. M.Sc. Marco Simões
Motivação
Para desenvolver aplicações com IA é necessário:– Conhecer algoritmos e técnicas de IA– Modelar o problema de forma a permitir o uso de IA– Implementar o algoritmo do agente
Alunos de graduação demonstram dificuldades com o conhecimento de programação de computadoresDificuldade para abordagem prática da IA devido a etapa de implementação do algoritmo
![Page 4: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/4.jpg)
Prof. M.Sc. Marco Simões
Objetivos do Projeto
Especificar um framework para desenvolvimento de agentes solucionadores de problemas de busca.Permitir o uso dos algoritmos de busca de forma simplificada.Atender a demanda acadêmica de ferramentas de apoio ao ensino do projeto de agentes inteligentes.
![Page 5: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/5.jpg)
Prof. M.Sc. Marco Simões
Problemas de Busca
Caracterizados por:– Espaço de Estados– Estado inicial– Estados finais (objetivos)– Ações– Função Custo do Caminho (g)– Função Heurística (h)
![Page 6: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/6.jpg)
Prof. M.Sc. Marco Simões
Arquitetura do Framework
![Page 7: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/7.jpg)
Prof. M.Sc. Marco Simões
Controle de ações
Diagrama classes parcial (Controle de ações)
Permitir a execução das ações sem a necessidade de conhecê-las previamente.Padrão de projeto Command
![Page 8: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/8.jpg)
Prof. M.Sc. Marco Simões
Estratégias
Permitir o mesmo tratamento para qualquer estratégia.
Padrão de projeto Factory MethodDiagrama de classes parcial (estratégias)
![Page 9: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/9.jpg)
Prof. M.Sc. Marco Simões
Outros módulos
Exportação– Responsável por exportar a árvore de busca gerada
pelos algoritmos para formato XMLNúcleo– Responsável pela configuração dos parâmetros
iniciais do framework e por controlar o fluxo de execução dos algoritmos de busca
![Page 10: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/10.jpg)
Prof. M.Sc. Marco Simões
Como estender o framework
AbstractStateAbstractAction
![Page 11: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/11.jpg)
Prof. M.Sc. Marco Simões
Exemplo de Uso: Problema do aspirador de pó
Um agente que controla um aspirador de pó em um mundo com duas salas. O agente possui sensores de sujeira em ambas as salas e através de seus efetuadores pode apenas se mover entre as salas e aspirar.
![Page 12: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/12.jpg)
Prof. M.Sc. Marco Simões
Modelagem
Estados:– Sala atual (Direita ou Esquerda)– Situação da Sala direita (Suja ou Limpa)– Situação da Sala esquerda (Suja ou Limpa)
Ações:– Mover– Aspirar
![Page 13: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/13.jpg)
Prof. M.Sc. Marco Simões
Modelagem
Estado inicial:– Sala atual = sala esquerda– Situação da sala direita = suja– Situação da sala esquerda = suja
Estado Objetivo:– Sala atual = sala esquerda ou sala direita – Situação da sala direita = limpa– Situação da sala esquerda = limpa
![Page 14: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/14.jpg)
Prof. M.Sc. Marco Simões
Solução
![Page 15: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/15.jpg)
Prof. M.Sc. Marco Simões
Implementando Estado
public class Estado extends AbstractState {
// ... constantes
private int salaAtual;private int salaDireita;private int salaEsquerda;
//...construtores, get e set.
public Object clone() { ...}
public boolean equals(Object arg0) {...}
public String toString(){...}
}
![Page 16: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/16.jpg)
Prof. M.Sc. Marco Simões
Ação Aspirar
public List<IState> execute(IState estado) throws ImpossibleActionException {List<IState> novosestados = new ArrayList<IState>();Estado o = (Estado) estado;Estado novoestado = (Estado) o.clone();if ( (o.getSalaAtual() == Estado.SALA_DIREITA) &&
(o.getSalaDireita() == Estado.SALA_SUJA)){novoestado.setSalaDireita(Estado.SALA_LIMPA);
}else if((o.getSalaAtual() == Estado.SALA_ESQUERDA) && (o.getSalaEsquerda() == Estado.SALA_SUJA)){
novoestado.setSalaEsquerda(Estado.SALA_LIMPA);}else{
throw new ImpossibleActionException("Aspirar");}novosestados.add(novoestado);return novosestados;
}
![Page 17: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/17.jpg)
Prof. M.Sc. Marco Simões
Casos Especiais
Problemas em que o custo das ações é diferente de 1– Estender a classe Functions (Núcleo) e redefinir o método g()
Estratégias de Busca Heurística– Estender a classe Functions e redefinir o método h()
Busca Competitiva (minimax)– Estender a classe Functions e redefinir o método
calculaUtilidade()Objetivo não pode ser um conjunto enumerável de estados
– Estender a classe Functions e redefinir o método funcaoObjetivo()
![Page 18: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/18.jpg)
Prof. M.Sc. Marco Simões
Resultados da aplicação do framework com alunos
52,0% 52,0%
84,0%
56,0%
44,0%
16,0%
48,0%44,0%
48,0%
56,0%
1. Você já fez uso dealgum tipo deframework?
2. Você já utilizoualgum framework em
Java?
3. Você sentiudificuldade para
utilizar o frameworkde agentes?
4. Você acredita queseria mais simples
implementar oalgoritmo de busca
partindo do zero, semapoio do framework?
5. Você sentiu maiordificuldade em
implementar do quemodelar o problema?
Sim (Total) Não (Total)
![Page 19: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/19.jpg)
Prof. M.Sc. Marco Simões
Perguntas qualitativas
Os alunos auto-avaliaram seu conhecimento de programação como medianoAvaliaram que o framework deu uma boa ajuda no desenvolvimento do trabalhoConsideraram excelente a iniciativa de desenvolvimento do trabalhoAvaliaram o framework como muito bom (nota 4 numa escala de 0 a 5)
![Page 20: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/20.jpg)
Prof. M.Sc. Marco Simões
Considerações Finais
A pesquisa apresentou um ambiente favorável e de grande aceitação de ferramentas desse tipo.A pesquisa mostra também que a dificuldade no aprendizado de programação afeta o aprendizado da construção de agentes inteligentes.O framework permite ao desenvolvedor abstrair as peculiaridades de implementação dos algoritmos e se ater à descrição e modelagem do problema. O framework permite utilizar e comparar diferentes estratégias de busca com um pequeno esforço de programação.
![Page 21: UM FRAMEWORK PARA APOIO AO ENSINO DE ALGORITMOS DE …users.exa.unicen.edu.ar/catedras/asai2006.old/pdfs/waife/simoes.pdf · Prof. M.Sc. Marco Simões Motivação zPara desenvolver](https://reader036.vdocuments.pub/reader036/viewer/2022070801/5f0273b27e708231d40454e7/html5/thumbnails/21.jpg)
Prof. M.Sc. Marco Simões
Trabalhos Futuros
Adicionar uma interface gráfica para acompanhamento passo-a-passo da construção da árvore de busca pelo agenteAplicar o framework com um universo maior de alunos visando confirmar os resultados parciais obtidosPermitir o uso de Busca Bidirecional com outras estratégias de buscaCriação de um shell gráfico para tornar mais fácil a formulação do problema, sem necessidade do uso de linguagem de programaçãoVerificar a eficácia da ferramenta para solução de problemas reais