Domanda

Supponiamo di voler unire due rapporti su un predicato. È questo in NC?

Mi rendo conto che una prova in cui non sia in NC equivarrebbe a una prova che $ P \ = non NC $, quindi mi piacerebbe riconosce i titoli di esso che è un problema aperto come una risposta.

Mi interessa nel caso generale, così come casi specifici (ad esempio, forse con qualche struttura di dati specifici può essere parallelizzata).

EDIT: per portare alcuni chiarimenti dai commenti in questo post:

  • Si potrebbe prendere in considerazione un equijoin $ A.x = B.y $. Su un singolo processore, un hash basato su piste algoritmo a $ O (| A | + | B |) $ e questo è il meglio che possiamo fare dal momento che dobbiamo leggere ogni set
  • Se il predicato è una "scatola nera" in cui dobbiamo controllare ogni coppia, ci sono $ | A | \ cdot | B | $ coppie, e ognuno potrebbe essere in o meno, quindi $ di 2 ^ {ab} $ possibilità. Controllando ogni coppia si divide le possibilità a metà, quindi la cosa migliore che possiamo fare è $ O (ab) $.

Potrebbe uno di questi (o qualche terzo tipo di join) essere migliorato a $ \ log ^ k n $ su più processori?

È stato utile?

Soluzione

$ n ^ 2 $ processori può confrontare tutti i $ {n \ scegliere 2} $ possibilità in profondità costante, quindi sì è in NC.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a cs.stackexchange
scroll top