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}