feat: added tutorial file
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
O problema apresentado é uma versão simplificada do \textit{sliding puzzle}. Nosso objetivo é determinar o número mínimo de movimentos para organizar um tabuleiro $2 \times 3$ a partir de um estado inicial qualquer.
|
||||
|
||||
\subsection*{Representação do estado}
|
||||
|
||||
\begin{itemize}
|
||||
\item Cada configuração do tabuleiro pode ser representada como uma sequência linear de números, por exemplo, $[1, 2, 3, 4, 5, 0]$ para o estado final.
|
||||
\item A posição do $0$ indica onde a casa vazia está localizada e determina quais movimentos são válidos.
|
||||
\end{itemize}
|
||||
|
||||
\subsection*{Estratégia de solução usando BFS}
|
||||
|
||||
Podemos modelar o problema como um grafo, onde cada nó é uma configuração do tabuleiro e cada aresta corresponde a um movimento válido do $0$. Uma abordagem eficiente é iniciar a BFS a partir do \textbf{estado final}:
|
||||
|
||||
\begin{enumerate}
|
||||
\item Inicialize a fila com o estado final $[1,2,3,4,5,0]$ e marque-o como visitado com distância $0$.
|
||||
\item Para cada estado na fila:
|
||||
\begin{itemize}
|
||||
\item Identifique a posição do $0$ e calcule todas as posições adjacentes (horizontal e vertical) para trocas.
|
||||
\item Gere os estados resultantes dessas trocas.
|
||||
\item Se algum novo estado corresponder ao estado inicial fornecido, retorne a distância armazenada, que representa o número mínimo de movimentos.
|
||||
\item Caso contrário, adicione o novo estado à fila e marque-o como visitado.
|
||||
\end{itemize}
|
||||
\item Se a fila se esvaziar sem encontrar o estado inicial, retorne $-1$.
|
||||
\end{enumerate}
|
||||
|
||||
\subsection*{Complexidade}
|
||||
|
||||
\begin{itemize}
|
||||
\item \textbf{Espacial:} $O(6!)$, pois existem $6! = 720$ possíveis permutações do tabuleiro $2 \times 3$.
|
||||
\end{itemize}
|
||||
Reference in New Issue
Block a user