我想写一个程序来解决棋盘游戏 . 在这个游戏中,有两个板 . 一个是源板S.另一个是目标板T.我的目标是在板S中移动块,使它们看起来与板T with smallest number of moves 中的相同 . 每次我只能移动一个项目 . 另外,我只能将项目移动到相邻的空间("~"表示空格) . 可能有多个"~" . 所以我想使用Branch and Bound算法来解决这个问题 . 但是我不知道如何确定下限成本(将当前状态更改为目标状态的最少动作) .

board T and board S