Recentemente, me deparei com este problema , uma variação de torres de hanoi .
Declaração do problema:
Considere a seguinte variação do conhecido problema Towers of Hanoi:
Recebemos torres e m discos de tamanhos empilhados em algumas torres. Seu objetivo é transferir todos os discos para a torre com o mínimo de movimentos que você puder gerenciar, mas levando em consideração as seguintes regras:
- movendo apenas um disco de cada vez,
- nunca mover um disco maior para outro menor,
- movendo-se apenas entre torres à distância, no máximo .
(Limites no problema original: e Número de casos de teste Você pode assumir que todos os problemas podem ser resolvidos em não mais de movimentos.)
É interessante. O problema clássico das torres de hanoi tem uma fonte, destino e torre temporária que são usadas para mover os discos da origem para o destino. O problema apresentado nesse site basicamente possui uma configuração inicial e final.
Como alguém aborda esse problema?
Respostas:
A abordagem mais bem-sucedida para lidar com a versão original das Torres de Hanoi é usar bancos de dados de padrões (PDBs). O estado da arte atual é descrito em " Progresso recente na pesquisa heurística: um estudo de caso das torres de quatro pinos do problema de Hanói "
Não vejo, de fato, nenhuma razão para mudar a abordagem típica apenas em vista dessa restrição específica.
Espero que isto ajude,
fonte