시공간 상충 관계에 대한 특정 결과의 초기 역사?


14

범용 시공간 트레이드 오프에 대한 출판 된 결과의 초기 역사에 관심이 있습니다. 특히, 데이터 흐름 그래프의 깊이 (폭이 아님)에 비례하는 공간 (크기를 더한 크기)을 사용하여 정도가 O (1) 인 임의의 데이터 흐름 그래프가있는 계산을 평가하는 다음 유형의 알고리즘을 누가 먼저 설명했는지 알고 싶습니다 그래프의 간단한 깊이 우선 평가를 수행하여 입력의). 더 자세하게:

데이터 흐름 그래프를 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)가 주어진다. 다른 정점 v \ in S의 경우 값은 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 |)입니다. 데이터 흐름 그래프의 최대 너비는 이보다 기하 급수적으로 커질 수 있으므로 가장 좋은 경우이 기법은 그래프의 욕심 진 전진 평가와 비교할 때 상당히 극단적 인 공간 절약 효과를 제공 할 수 있습니다. 단계, 값이 이미 알려진 정점에만 직접 의존하는 모든 정점을 평가합니다.

어쨌든, 그것은 적어도 회고 적으로 볼 때 상당히 명백한 기술이며, 그것은 오래 전부터 알려져 왔지만, 그것에 관한 문헌이 어떻게 돌아가는지 궁금합니다. 누구든지 이런 종류의 결과 (이러한 용어 나 다른 유사한 것들로 설명 되든)의 초기 역사를 알고 있으며,이 주제를 파헤 치기위한 좋은 참고 자료는 무엇입니까?

대단히 감사합니다 -Mike Frank

답변:


10

이것이 처음인지 아닌지는 모르겠지만, 구성은 Borodin [Bor77]의 Lemma 1 증명에서 부울 회로 평가의 공간 복잡성에 대해 나타납니다. (이것은 공간 복잡성을 O ( D log S ) 비트에서 O ( D + log S ) 비트로 더 줄이기 위해 재귀 평가의 아이디어보다 약간 더 포함됩니다 . 여기서 D 는 회로의 깊이이고 S 는 크기입니다. 회로.)

[Bor77] 앨런 보로딘. 시간과 공간을 크기와 깊이와 관련시킵니다. SIAM Journal on Computing , 6 (4) : 733–744, 1977 년 12 월. DOI : 10.1137 / 0206054 .

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.