Tarefas de escolha de formalismos: - manutenção da verdade usando btinsert e btdelete do Flora - planning com transaction logic - cálculo de evento - cálculo de situações - como representar incerteza * com disjunções * atalhar negação por falha e representar 3 valores de verdades true, false, suspected? - * State of change a survey: Bonner & Kifer Tarefas de modelagem com UML: - Ontologia do domínio - Separação em pacotes com interfaces Tarefas de implementação: - Estudar no manual do XSB possíveis interferência da tabulação de Flora com uso de assert e retract do simulador - Testar que o simulador funciona corretamente no Flora Shell Distinção, talvez usando modules entre regras de cada componente agente: - BC para interpretação das percepções? - BC para atualização do modelo o Novas percepções o Registro de ações - BC para atualização do objetivo - BC para previsão das conseqüências das ações possíveis - BC para escolha das ações em função do objetivo e da previsão - Definir claramente predicados que servem de interface entre esses componentes - Tomar cuidado de não confundir predicados o ambiente e do modelo do ambiente pelo agente Para algoritmo do agente se inspirar do Wumpus-PL da seção 6. Esqueleto Flora pode ter a cara seguinte: chooseAction(Action) :- agent[perceive ->> NewPercept], agent.updateBeliefs(NewPercept), agent.updateGoal(UpdatedGoal), choose action with max utility given Update Goal among the executable actions given current belief