Skip to content

Commit

Permalink
Concludes report project part 5
Browse files Browse the repository at this point in the history
  • Loading branch information
franciscoengenheiro committed Jun 11, 2024
1 parent f9a0fc3 commit c2feda4
Show file tree
Hide file tree
Showing 9 changed files with 123 additions and 22 deletions.
Binary file added report/figures/arquitetura-deliberativa.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified report/out/main.pdf
Binary file not shown.
7 changes: 7 additions & 0 deletions report/src/bibliography.bib
Original file line number Diff line number Diff line change
Expand Up @@ -130,3 +130,10 @@ @misc{ist:leic:resumos:procura-informada
url = "{https://resumos.leic.pt/ia/procura-informada/}",
note = "[Online; acedido em Maio 12, 2024]",
}

@misc{isel:iasa:slides:arq-agentes-deliberativos,
author = "{Luis Morgado}",
title = "{Arquitetura de Agentes Deliberativos}",
year = {2024},
note = "[Online; acedido em Junho 11, 2024]",
}
14 changes: 10 additions & 4 deletions report/src/chapters/01_introduction.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,18 @@ \chapter{Introdução}\label{ch:introducao}
Este relatório documenta o projeto desenvolvido no âmbito da unidade curricular de Inteligência Artificial para Sistemas Autónomos (IASA), da Licenciatura em Engenharia Informática e de Computadores (LEIC).

O projeto tem como objetivo a aprendizagem de conceitos de inteligência artificial e a sua aplicação no desenvolvimento de sistemas autónomos.
O capítulo~\ref{ch:enquadramento-teorico} descreve esses conceitos que servem de base aos restantes temas estudados e ao projeto realizado.

O projeto está dividido em duas partes:
\section{Organização do Documento}\label{sec:organizacao-documento}

O presente documento está organizado da seguinte forma:
\begin{itemize}
\item \textbf{Parte 1}: Desenvolvimento de uma biblioteca em \textit{java} que fornece os mecanismos base para a implementação dos subsistemas que representam os conceitos gerais de inteligência artificial (e.g., agente, ambiente) e outros conceitos relacionados (e.g., máquina de estados); Desenvolvimento de um jogo em Java que integra essa biblioteca (ver capítulo~\ref{ch:projeto-parte1});
\item \textbf{Parte 2}: Desenvolvimento de um agente reativo em \textit{python} com módulos comportamentais para recolher alvos e evitar obstáculos num ambiente com dimensões fixas (ver capítulo~\ref{ch:projeto-parte2}).
\item \textbf{Enquadramento Teórico}: Descrição dos conceitos de inteligência artificial e de sistemas autónomos, que servem de base ao projeto realizado;
\item \textbf{Projeto}: Descrição do projeto desenvolvido, dividido em quatro partes, cada uma com um objetivo específico:
\begin{itemize}
\item \textbf{Parte 1}: Desenvolvimento de uma biblioteca em \textit{java} que fornece os mecanismos base para a implementação dos subsistemas que representam os conceitos gerais de inteligência artificial (e.g., agente, ambiente) e outros conceitos relacionados (e.g., máquina de estados); Desenvolvimento de um jogo que integra essa biblioteca (ver capítulo~\ref{ch:projeto-parte1});
\item \textbf{Parte 2}: Desenvolvimento de um agente reativo em \textit{python} com módulos comportamentais para recolher alvos e evitar obstáculos num ambiente com dimensões fixas (ver capítulo~\ref{ch:projeto-parte2}).
\item \textbf{Parte 3}: Desenvolvimento de uma biblioteca para procuras em espaços de estados (PEE) em \textit{python} que envolveu a implementação de diferentes estratégias de procura; Desenvolvimento de uma biblioteca para modelação de problemas de procura em \textit{python} que permite a definição de problemas concretos de forma independente da estratégia de procura a aplicar; Modelação de um problema concreto de procura (ver capítulo~\ref{ch:projeto-parte3}).
\end{itemize}
\end{itemize}

Cada parte do projeto está organizada de forma a descrever o objetivo principal no contexto geral do projeto; fazer uma síntese dos conceitos estudados que se acharam relevantes para a sua implementação; caracterização do ambiente onde o agente vai atuar; descrever a implementação realizada, nomeadamente, a arquitetura do agente usada; justificar as principais decisões tomadas e a sua relação com os conceitos estudados; e apresentar a estrutura do código desenvolvido.
Expand Down
4 changes: 2 additions & 2 deletions report/src/chapters/03_project-part1.tex
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
\chapter{Projeto - Parte 1} \label{ch:projeto-parte1}

Esta parte do projeto incidiu principalmente sobre desenvolvimento de uma biblioteca, em \textit{java}, para providenciar abstrações dos subsistemas que representam conceito gerais de inteligência artificial (e.g., agente, ambiente) (ver figura~\ref{fig:modelo-agente-ambiente}) e outros conceitos relacionados (e.g., máquina de estados, conceito de transição de estado).
Esta parte do projeto incidiu, principalmente, sobre desenvolvimento de uma biblioteca para providenciar abstrações dos subsistemas que representam conceito gerais de inteligência artificial (e.g., agente, ambiente) (ver figura~\ref{fig:modelo-agente-ambiente}) e outros conceitos relacionados (e.g., máquina de estados, conceito de transição de estado).

Para tal, foi necessário definir uma arquitetura de software que permitisse a implementação dos diferentes subsistemas de forma independente e modular, seguindo as diretrizes (i.e., métricas, princípios e padrões) que garantem a qualidade da arquitetura desenvolvida.

A implementação da biblioteca foi feita com base na consulta e compressão de diagramas UML e de sequência de forma a garantir a correta implementação dos diferentes subsistemas.

Por fim foi desenvolvido um jogo (ver secção~\ref{sec:desenvolvimento-do-jogo}) que integra a biblioteca desenvolvida, permitindo a interação com o jogador por meio de comandos em texto.
Por fim, foi desenvolvido um jogo que integra a biblioteca, permitindo a interação com o jogador por meio de comandos em texto.


\section{Arquitetura de software}\label{sec:arquitetura-de-software}
Expand Down
8 changes: 5 additions & 3 deletions report/src/chapters/04_project-part2.tex
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
\chapter{Projeto - Parte 2}\label{ch:projeto-parte2}

Nesta fase do projeto, o objetivo foi criar, em \textit{python}, um sistema inteligente capaz de se movimentar num espaço com dimensões fixas onde existem obstáculos.
Nesta fase do projeto, o objetivo foi criar um sistema inteligente capaz de se movimentar num espaço com dimensões fixas onde existem obstáculos.
A finalidade do agente prospetor é recolher os alvos e evitar os obstáculos presentes no ambiente (ver figura~\ref{fig:agente-prospetor}).
O agente pode ser considerado homólogo a um robô móvel autónomo (e.g., um robô que aspira sozinho a casa), que se pode mover nos quatro sentidos cardeais (i.e., norte, sul, este e oeste).

Expand All @@ -12,7 +12,10 @@ \chapter{Projeto - Parte 2}\label{ch:projeto-parte2}
Retirado de~\cite{isel:iasa:slides:arq-agentes-reativos-parte-2}, slide 13.}\label{fig:agente-prospetor}
\end{figure}

Para que o agente possa atingir os objetivos propostos, foi necessário implementar (ver secção~\ref{sec:implementacao-agente-reativo}) um agente reativo e os módulos comportamentais associados, que definem os objetivos de forma implícita.
Para que o agente possa atingir os objetivos propostos, foi necessário implementar um agente reativo e os seus módulos comportamentais associados.
O agente reativo foi implementado com base na biblioteca ECR (Esquemas Comportamentais Reativos) criada para esta fase do projeto, que expõe os mecanismos base de comportamento (e.g., reação, estímulo, resposta).
A interação com o ambiente foi realizada através da biblioteca SAE (Simulador de Ambiente de Execução),
que foi disponibilizada para esta fase do projeto.

Tal como em fases anteriores, a implementação foi feita com base na consulta e compressão de diagramas UML e de sequência de forma a garantir a correta implementação dos diferentes subsistemas.

Expand Down Expand Up @@ -174,7 +177,6 @@ \section{Biblioteca SAE}\label{sec:biblioteca-sae}
3.}\label{fig:sae-interface-grafica}
\end{figure}


\section{Caracterização do Ambiente}\label{sec:caracterizacao-ambiente}

O ambiente onde o agente reativo se movimenta é virtual, bidimensional, com dimensões fixas e composto por alvos e obstáculos estáticos. Pode ser caracterizado (ver secção~\ref{sec:ambiente}) por ser:
Expand Down
Loading

0 comments on commit c2feda4

Please sign in to comment.