Supponiamo di voler unire due relazioni su un predicato. È in NC?
Mi rendo conto che una prova del fatto che non si trova in NC equivarrebbe a una prova che , quindi accetterei la prova che si tratta di un problema aperto come risposta.
Sono interessato sia al caso generale che a casi specifici (ad es. Forse con una struttura di dati specifica può essere parallelizzato).
EDIT: per portare alcuni chiarimenti dai commenti in questo post:
- Potremmo considerare un equijoin . Su un singolo processore, un algoritmo basato su hash viene eseguito in e questo è il meglio che possiamo fare poiché dobbiamo leggere ogni setO ( | A | + | B | )
- Se il predicato è una "scatola nera" in cui dobbiamo controllare ogni coppia, ci sonocoppie, e ognuna potrebbe essere in o no, quindi possibilità. Controllare che ogni coppia divida le possibilità a metà, quindi il meglio che possiamo fare è .2 a b O ( a b )
Uno di questi (o un terzo tipo di join) potrebbe essere migliorato per su più processori?