2023-03-01 02:27:34 +01:00
|
|
|
\documentclass{report}
|
2023-01-27 16:13:12 +01:00
|
|
|
|
|
|
|
|
|
|
|
\usepackage[T1]{fontenc} % encodage
|
|
|
|
\renewcommand{\familydefault}{\sfdefault} % police en sans-serif
|
|
|
|
|
|
|
|
\usepackage[french]{babel} % langue
|
|
|
|
\frenchsetup{SmallCapsFigTabCaptions=false}
|
|
|
|
|
|
|
|
\usepackage[hidelinks]{hyperref} % liens cliquable dans la table des matières
|
|
|
|
|
|
|
|
\usepackage{graphicx} % images
|
2023-01-27 18:58:27 +01:00
|
|
|
% \usepackage{caption}
|
2023-01-27 16:13:12 +01:00
|
|
|
|
|
|
|
\usepackage[a4paper, left=20mm, top=20mm]{geometry} % dimensions de la page
|
|
|
|
|
2023-03-01 02:27:34 +01:00
|
|
|
\usepackage{titlesec}
|
|
|
|
\titleformat{\chapter}
|
|
|
|
{\LARGE\bfseries}{}{1em}{}
|
|
|
|
\titlespacing*{\chapter}{0pt}{0pt}{1em}
|
2023-01-27 16:13:12 +01:00
|
|
|
|
2023-02-22 11:33:10 +01:00
|
|
|
% Minimum pour les colonnes des tableaux
|
|
|
|
\usepackage{array}
|
|
|
|
\newcolumntype{y}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}p{#1}}
|
|
|
|
\newcolumntype{Y}{y{126pt}|y{70pt}|y{66pt}|y{71pt}}
|
|
|
|
|
2023-03-01 02:27:34 +01:00
|
|
|
\title{\textbf{TP1 - Sokoban}}
|
2023-02-01 10:01:22 +01:00
|
|
|
\author{Groupe 4\thanks{César PICHON, Florian POSEZ, Omar ANOUAR, Anri KENNEL}\\
|
2023-01-27 16:13:12 +01:00
|
|
|
\\Intelligence artificielle pour les jeux $\cdot$ Université Paris 8}
|
|
|
|
|
|
|
|
\date{Année universitaire 2022-2023}
|
|
|
|
|
|
|
|
\begin{document}
|
|
|
|
\maketitle
|
|
|
|
\tableofcontents
|
|
|
|
\clearpage
|
|
|
|
|
2023-03-01 02:27:34 +01:00
|
|
|
\chapter{C++}
|
2023-02-22 11:33:10 +01:00
|
|
|
\section{Algorithmes}
|
|
|
|
\subsection{Algorithme de parcours en largeur}
|
|
|
|
Notre implémentation de l'algorithme de parcours en largeur est, malheureusement,
|
|
|
|
trop lente pour résoudre un Sokoban, on a décidé de ne pas l'optimiser et
|
|
|
|
d'utiliser un autre algorithme.
|
|
|
|
|
|
|
|
\subsection{Algorithme de parcours en profondeur}
|
|
|
|
Notre implémentation de l'algorithme de parcours en profondeur,
|
|
|
|
elle arrive à résoudre le \texttt{screen-0} en temps raisonnable.
|
|
|
|
|
|
|
|
\subsubsection{Optimisations}
|
2023-03-01 02:40:23 +01:00
|
|
|
Afin d'éviter les cas répétitifs, on utilise un tableau qui stocke les états
|
2023-02-22 11:33:10 +01:00
|
|
|
déjà visités.
|
2023-01-27 16:13:12 +01:00
|
|
|
|
2023-03-01 02:40:23 +01:00
|
|
|
\section{Précalculs}
|
|
|
|
Nous n'avons pas utilisé de précalculs.
|
2023-01-27 16:13:12 +01:00
|
|
|
|
|
|
|
\section{Problèmes}
|
2023-02-22 11:33:10 +01:00
|
|
|
\subsection{1 joueur}
|
|
|
|
\begin{enumerate}
|
|
|
|
\item \texttt{Screen-0} :
|
|
|
|
\begin{figure}[h]
|
|
|
|
\centering
|
|
|
|
\begin{tabular}{Y}
|
|
|
|
Nombre max caisses déplacées & Solution & Temps calcul & Temps précalculs \\
|
|
|
|
\hline
|
2023-03-01 02:27:34 +01:00
|
|
|
6 (toutes) & Oui, en 39 coups & 5-10s & Aucun
|
2023-02-22 11:33:10 +01:00
|
|
|
\end{tabular}
|
|
|
|
\end{figure}
|
|
|
|
\item \texttt{Screen-2} :
|
|
|
|
\begin{figure}[h]
|
|
|
|
\centering
|
|
|
|
\begin{tabular}{Y}
|
|
|
|
Nombre max caisses déplacées & Solution & Temps calcul & Temps précalculs \\
|
|
|
|
\hline
|
2023-03-01 02:27:34 +01:00
|
|
|
2-3 & Non & Encore en cours & Aucun
|
2023-02-22 11:33:10 +01:00
|
|
|
\end{tabular}
|
|
|
|
\end{figure}
|
|
|
|
\end{enumerate}
|
|
|
|
|
|
|
|
\subsection{2 joueurs}
|
2023-03-01 02:40:23 +01:00
|
|
|
L'algorithme n'a pas tourné sur les parties à 2 joueurs.
|
2023-01-27 16:13:12 +01:00
|
|
|
|
2023-03-01 02:27:34 +01:00
|
|
|
\chapter{Prolog}
|
|
|
|
\section{Algorithmes}
|
2023-03-01 02:33:09 +01:00
|
|
|
\subsection{B-prolog}
|
2023-03-01 02:40:23 +01:00
|
|
|
Nous avons essayé de réimplémenter la logique de B-Prolog.
|
2023-03-01 02:27:34 +01:00
|
|
|
|
2023-03-01 02:40:23 +01:00
|
|
|
\section{Précalculs}
|
|
|
|
Nous n'avons pas utilisé de précalculs.
|
2023-03-01 02:27:34 +01:00
|
|
|
|
|
|
|
\section{Problèmes}
|
|
|
|
\subsection{1 joueur}
|
2023-03-01 02:40:23 +01:00
|
|
|
Malheureusement le programme ne résout pas de programme à 1 joueur.
|
2023-03-01 02:27:34 +01:00
|
|
|
|
|
|
|
\subsection{2 joueurs}
|
2023-03-01 02:40:23 +01:00
|
|
|
Malheureusement le programme ne résout pas de programme à 2 joueurs.
|
2023-03-01 02:27:34 +01:00
|
|
|
|
2023-01-27 16:13:12 +01:00
|
|
|
\end{document}
|