Рання історія певних результатів космічних і часових компромісів?


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 \ в 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 |). Максимальна ширина графіка потоку даних може бути експоненціально більшою, ніж ця, тому в кращому випадку ця методика може забезпечити досить екстремальну економію місця в порівнянні, скажімо, з жадібною форвардною оцінкою графіка (що може бути для кожного крок, оцініть усі вершини, які безпосередньо залежать лише від вершин, значення яких уже відомі,

У всякому разі, це досить очевидна техніка, принаймні, в ретроспективі, і це, безумовно, давно відома, але мені було цікаво, як повертається література про неї. Хтось знає ранню історію результатів подібного роду (будь то описані в цих термінах чи інші аналогічні), і що може бути корисним посиланням для вивчення цього питання?

Велике спасибі, - Майк Френк

Відповіді:


10

Я не знаю, це перше виникнення чи ні, але конструкція з'являється у доказі леми 1 Бородіна [Bor77] про складність простору оцінювання булевої схеми. (Він містить трохи більше, ніж просто ідея рекурсивної оцінки, щоб зменшити складність простору далі від бітів O ( D log S ) до бітів O ( D + log S ), де D - глибина ланцюга, а S - розмір схема.)

[Bor77] Аллан Бородін. Про відношення часу та простору до розміру та глибини. Журнал обчислювальної техніки SIAM , 6 (4): 733–744, грудень 1977 р. DOI: 10.1137 / 0206054 .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.