Припустимо, ми хочемо з'єднати два стосунки за присудком. Це в NC?
Я усвідомлюю, що доказ того, що його немає в NC, буде означати доказ того, що , тому я б прийняв докази, що це відкрита проблема як відповідь.
Мене цікавлять загальний випадок, а також конкретні випадки (наприклад, можливо, з якоюсь конкретною структурою даних це може бути паралельне).
EDIT: щоб внести деякі пояснення з коментарів у цю публікацію:
- Можна було б вважати еквіоїном . На одному процесорі алгоритм на основі хешу працює в і це найкраще, що ми можемо зробити, оскільки ми маємо читати кожен набір
- Якщо присудок - це «чорний ящик», де ми повинні перевірити кожну пару, єпари, і кожна з них може бути чи ні, тому можливості. Перевірка кожної пари ділить можливості навпіл, тому найкраще, що ми можемо зробити, це .
Чи міг би будь-який із цих (або якийсь третій тип з'єднання) бути вдосконалений до на декількох процесорах?
Якщо це питання мотивоване практичною проблемою, майте на увазі, що NC може бути не найбільш підходящим поняттям "паралелізація".
—
Рафаель
@Raphael: це не так, але ви могли б посилання на щось, чому? Я можу задати це окремим питанням, якщо це більш доречно.
—
Xodarap
Мені незрозуміло, про що ви питаєте. Яка мова запиту базової реляційної бази даних, яку ви додаєте до неї оператора приєднання? Або ви задаєте складність запитів, які містять лише операторів приєднання? Або ваше справжнє питання полягає в тому, чи можна запускати операторів приєднання «паралельно» для досягнення кращої складності в часі? (аналогічно тому, що говорять AND, можна робити паралельно) Також зауважте, що (безпечний) SQL запит відповідає FOL (Count).
—
Каве
Або ви запитуєте, які найвідоміші верхня та нижня межі (класи складності) на складності, що обчислюють з'єднання, дають дві реляційні бази даних як вхідні дані.
—
Каве
@Xodarap: Ви можете знайти відповіді та коментарі до цього мого повчального питання; Я знаю, що зробив. Крускал та ін. (1990) - це також добре прочитане.
—
Рафаель