aからbまでの最短距離を求めるプログラムを作ろうとしています。

  ●→●→● b
  ↑/↑/↑
  ●→●→●
  ↑/↑/↑
 a ●→●→●

条件が

 �@図で見ると●が等間隔に見えるが、実際は等間隔ではない。
 �A/は斜め上のみ移動可能とする。
 �B進める方向は、右、上、斜め上の3方向のみ。

です。参考になるプログラムを探しているのですが、巡回セールスマン問題
というプログラムを見つけたのですが、やりたい事と少し違う?感じがします。
このプログラムを解くのに参考になるWebページを知っている方、
又は、良い検索キーワードを知っている方が居ましたら教えてください。
よろしくお願いします。