時空のトレードオフに関する特定の結果の初期の歴史?


14

汎用時空トレードオフに関する公開された結果の初期の歴史に興味があります。特に、データフローグラフの深さ(幅ではなく)に比例するスペース(およびサイズ入力の)グラフの単純な深さ優先評価を行うことによって。さらに詳細に:

データフローグラフをG =(V、E)とします。Vは計算頂点のセット(O(1)サイズのデータ​​値)、Eはエッジのセット(v_p、v_s)です。頂点v_s \ in Vは、直前の頂点v_p \ in Vの値にすぐに依存します。v_fを、計算の最終結果を表す後続のない頂点とします。i \ in Iの場合、その値x(i)が与えられているので、私は標準的な順序の入力頂点のセット(前任者なし)とします。Sの他の頂点vの場合、それらの値はx(v)= F_v(x(P(v)))によって定義されます。ここで、P(v)はvの先行の正規順序リストで、x(P(v))は対応する値のリスト。F_vは頂点の関数であり、その値をその先行の値のリストの関数として決定します。

この設定を考えると、問題のアルゴリズムはかなり明白であり、簡単です。

def eval(v):     (v can be any vertex in the graph)
   let P := P(v), the list of v's predecessors  (has O(1) elements by assumption)
   let val[] := uninitialized array of |P| data values
   for each predecessor p[i] in P (i.e. for i from 1 to |P|):
      if p[i] is in I then
         val[i] = x(p)      (look up a given input)
      else
         val[i] = eval(p[i])   (recursive call)
   return F_v(val[])        (apply vertex's function to list of predecessor values)

これは、O(d)レベルの再帰をとります。dはデータフローグラフの深さです。データフローグラフの次数は一定であり、サイズはデータ値は一定です。(ここでは簡単にするために、頂点参照のサイズも| V |で実際に対数であるにもかかわらず、定数として扱います。)したがって、合計スペース使用量はO(d + | I |)です。データフローグラフの最大幅はこれよりも指数関数的に大きくなる可能性があるため、最良の場合、この手法は、グラフの貪欲な前方評価(たとえば、ステップ、値が既知の頂点のみに直接依存するすべての頂点を評価し、

とにかく、少なくとも振り返ってみると、それはかなり明白なテクニックであり、確かに長い間知られていますが、それに関する文献がどのように戻るのか疑問に思っていました。この種の結果の初期の歴史を知っている人は誰でも(これらの用語または他の類似の用語で説明されているかどうか)、この主題を掘り下げるための良い参考資料は何でしょうか?

どうもありがとう、マイク・フランク

回答:


10

それが最初に発生したかどうかはわかりませんが、その構成は、ブール回路の評価の空間的な複雑さに関するボロディンの補題1 [Bor77]の証明に現れます。(これは、空間の複雑さをO(D log S)ビットからO(D + log S)ビットにさらに減らすための再帰的評価のアイデアよりもわずかに多く含まれています。ここで、Dは回路の深さで、Sは回路。)

[Bor77]アラン・ボロディン。時間と空間をサイズと深さに関連付けることについて。 コンピューティングSIAMジャーナル、6(4):733から744 12月1977 DOI:10.1137 / 0206054

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.