PictMasterで最短経路を求める | 組み合わせテストケース生成ツール 「PictMaster」 とソフトウェアテストの話題

PictMasterで最短経路を求める

PictMasterをテスト分野以外へ応用するという話題です。

ここでn×nのマス目がある格子状の道路網があるとします。n×nの表のイメージです。
この道路網は交差点と他の交差点との距離がそれぞれランダムに異なっているものとします。また格子に斜線が入っていたり、格子の一部が存在しない場合もあってよいものとします。
目的は、この道路網でもっとも距離が短い最短経路を求めるというものです。

道路網の左上から出発して右下の終点までのルートは、nの値が多いと手計算では時間がかかりすぎます。
そこでPictMasterを使用すると、元に戻ったりするいたずらに時間がかかるルートを除外したすべての可能なルートを探し出し、それらのルートの所要時間を求めることができます。

PictMasterは最短経路を求めることを目的にしたツールではないので、可能なすべてのルートと、それらのルートでの各交差点間の距離を生成します。あとは、人手で各ルートでの交差点間の時間を集計することで、最短経路を求めることができます。

もっとも、PictMasterに交差点間の所要時間の合計をもとめ、もっとも所要時間が少ない最短経路を特定するコードを追加することは簡単にできるでしょう。

こうしたことができるのはPICTが柔軟な制約(来合わせることのできない組み合わせのこと)に関する機能を備えていることと、PictMasterで制約を表形式で表す「制約表」があることで、ほとんど機械的にPictMasterへの記入ができるようになっています。

近いうちに、実例をお見せできるでしょう。