私は順序付けられていないツリーを持っています。 各ノードは、実行可能(1)、完了(0)または子タスクを持つタスクを表します。例えばパーセンテージとツリー
:
1
-1.1
-1.2
--1.2.1
--1.2.2
-1.3
2
3
-3.1
4
-4.1
--4.1.1
5
は3.1、1.2.1の葉ことと5が、私は、各ノードの完全性の割合を計算したい
1
-1.1
-1.2
--1.2.1*
--1.2.2
-1.3
2
3
-3.1*
4
-4.1
--4.1.1
5*
ををやっていると仮定します。葉は0%または100%で簡単に計算されますが、他のすべてを計算する方法は?
現時点では、私は葉から木を歩き、各ノードは子供の完全性のパーセンテージに基づいて計算されます。例:
1 50%
-1.1* 100%
-1.2 0%
2 0%
3 33%
-3.1* 100%
-3.2 0%
-3.3 0%
これで、1.2以上の子が追加されました(これはリーフではなくノードになります)。子どもが「行なわれていない」場合、1.2は常に0%であり、1は50%ですが、1をとすると、となり、子供とグランド子供には50%完了するためにそれが完了するために100%が大きい!
1 50%
-1.1* 100%
-1.2 0%
--1.2.1 0%
--1.2.2 0%
2 0%
3 33%
-3.1* 100%
-3.2 0%
-3.3 0%
これを計算するにはどのような方法が最適ですか?あなたはpost order visit(擬似コード)を試みることができるおかげで
例えば
、私はあなたがweightageベースのシステムを添付するまで、既存のシステムにおけるタスク完了の割合が正確であると思います。いいえ。サブタスクの数は、メイン(ルートレベル)タスクの完了パーセンテージで重要ではありません。 – Cerebrus
さて、私は最初から車を建てているとします。私は10.000のサブタスクで "物理的にそれを構築する"というノードを持っており、同じレベルでは "名前を選ぶ"という葉を持っています。私はそれを "Oldsmobile2000"と呼ぶことに決めたとは言っていないでしょう。 – pistacchio
@Cerebrus:自分のロジックを自分の問題に適用しようとしています。もし彼が特定の方法で%doneを計算したいのであれば、それは正しい方法です。私は彼が各ノードに明白な重みを加えるべきだと思うが、彼は暗黙のうちに各葉ノードが等しい重みを持っていると言ってそれを行っている。 –