0

トラバーサルの問題があり、問題に最適なトラバーサルを見つけるために何らかの方法を試しました。

問題は、いくつかのセットがあり、各要素に重みがあるということです。以下にリストしてみましょう..

('f12', 'f10', 'f15')
('f07', 'f05', 'f01', 'f15')
('f08', 'f05', 'f21')
('f07', 'f19', 'f15')
('f21', 'f10', 'f15')
('f07', 'f04', 'f01')
('f06', 'f07', 'f01', 'f15')
('f05', 'f04', 'f10', 'f15')
('f05', 'f21', 'f19', 'f15')
('f07', 'f02', 'f15')
('f07', 'f21', 'f01')
('f07', 'f21', 'f15')
('f18', 'f05', 'f01', 'f15')
('f07', 'f05', 'f21')
('f07', 'f12', 'f15')
('f05', 'f01', 'f17', 'f15')
('f08', 'f12', 'f15')
('f04', 'f01', 'f12')
('f10', 'f16', 'f17')
('f04', 'f21', 'f15')
('f07', 'f18', 'f15')
('f07', 'f16', 'f15')
('f07', 'f03', 'f15')
('f21', 'f03', 'f15')
('f03', 'f12', 'f15')
('f06', 'f10', 'f16', 'f15')
.....

そして、各 fXX には w1~w21 という相対的な重みがあり、 f1~f21 で最適なトラバーサル パス (または最短) を見つけたいと考えています。そして、これらのセットの 1 つをトラバースした場合、停止できます。

たとえば.. f01->f02->f04->f07 をトラバースすると、

('f07', 'f04', 'f01')

が発見されました。

考え

  • FSM(finite state machine)について考えたことはありますが、重みでそれを行う方法がわかりませんか?

質問

この種の問題を FSM やトラバーサル パスを取得する方法に組み込むにはどうすればよいですか? enter要素が必要ですか?右?

ノート

各 fxx には True/False の結果があり、終了条件はコンボの 1 つに対してすべての要素が "True" です。つまり、fxx の結果が True の場合は収集し、そうでない場合は別の fxx に移動します。

そして、すべての fxx がすでにトラバースしており、コンボの 1 つを満たすものを収集できない場合は、"Not Found" を返すことができます。

4

0 に答える 0