Genel amaçlı uzay-zaman ödünleşimleri hakkında yayınlanan sonuçların erken tarihiyle ilgileniyorum. Özellikle, veri akışı grafiğinin derinliği (genişlik değil) ile orantılı boşluk kullanarak derece O (1) ile rasgele bir veri akışı grafiğine sahip bir hesaplamayı değerlendirmek için aşağıdaki algoritma türünü kimin ilk açıkladığını bilmek istiyorum. Grafiğin basit bir derinlik-ilk değerlendirmesini yaparak. Daha ayrıntılı olarak:
Veri akışı grafiğinin G = (V, E) olmasını sağlayın; burada V, hesaplama köşeleri (O (1) boyutlu veri değerleri) kümesidir ve E, ardıl değeri olacak şekilde kenarlar kümesidir (v_p, v_s). v'deki v_s \ vertex hemen V'deki önceki v_p \ değerine bağlıdır. v_f, hesaplamanın nihai sonucunu temsil eden ardılları olmayan köşe noktası olsun. Kanonik olarak sıralı girdi köşeleri kümesi olalım (öncekiler olmadan), i \ in I için x (i) değeri verilir. S'deki diğer \ v köşeleri için değerleri x (v) = F_v (x (P (v))) ile tanımlanır; burada P (v) v öncüllerinin standart olarak sıralanmış bir listesidir, x (P (v)) değerlerinin karşılık gelen listesi ve F_v, tepe noktasının, seleflerinin değer listesinin bir işlevi olarak değerini belirleyen işlevidir.
Bu kurulum göz önüne alındığında, söz konusu algoritma oldukça açık ve önemsiz:
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)
Bu, O (d) özyineleme düzeylerini alır; burada d, veri akışı grafiğinin derinliğidir ve veri akışı grafiğinin derecesinin sabit olduğu ve boyutunun sabit olduğu varsayımları nedeniyle her düzeydeki yığın alanı sabittir. veri değerleri sabittir. (Burada basitlik için, | V | 'de gerçekten logaritmik olmalarına rağmen, köşe referanslarının boyutunu sabit olarak da ele alıyorum.) Böylece, toplam alan kullanımı O (d + | I |). Veri akışı grafiğinin maksimum genişliği bundan daha büyük olabilir, bu nedenle en iyi durumda bu teknik, örneğin grafiğin açgözlü bir ileri değerlendirmesine kıyasla oldukça aşırı yer tasarrufu sağlayabilir. adımda, yalnızca değerleri zaten bilinen köşelere doğrudan bağlı olan tüm köşeleri değerlendirin,
Her neyse, en azından geçmişe bakıldığında oldukça açık bir teknik ve kesinlikle uzun zamandır biliniyor, ancak literatürün ne kadar geriye gittiğini merak ediyordum. Herkes bu tür sonuçların erken tarihini biliyor (bu terimlerle veya diğer benzerleriyle tanımlanmış olsun) ve bu konuyu araştırmak için iyi bir referans ne olurdu?
Çok teşekkürler, -Mike Frank