Varsayalım ki iki ilişkide bir yüklem üzerine katılmak istiyoruz. Bu NC'de mi?
NC'de olmadığına dair bir kanıtın, , bu yüzden açık bir sorun olduğuna dair kanıtları bir cevap olarak kabul ediyorum.
Genel durumun yanı sıra belirli vakalarla da ilgileniyorum (örneğin, belki bazı belirli veri yapısı ile paralelleştirilebilir).
EDIT: Bu yazıya yorumlardan bazı açıklamalar getirmek için:
- Bir equijoin düşünebiliriz . Tek bir işlemcide, karma tabanlı bir algoritma ve her seti okumak zorunda olduğumuz için yapabileceğimiz en iyisi bu
- Yüklem her bir çifti kontrol etmemiz gereken bir "kara kutu" ise, ve her biri olabilir ya da olmayabilir, yani olasılık. Her çifti kontrol etmek olasılıkları ikiye böler, bu yüzden yapabileceğimiz en iyi şey.
Bunlardan herhangi biri (veya üçüncü tip bir birleşim) şu şekilde geliştirilebilir: birden fazla işlemcide?
Bu soru pratik bir sorundan kaynaklanıyorsa, NC'nin "uygun paralellik" için en uygun kavram olmayabileceğini unutmayın.
—
Raphael
@Raphael: Değil, ama nedeniyle ilgili bir şeye bağlanabilir misin? Bunun daha uygun olup olmadığını ayrı bir soru olarak sorabilirim.
—
Xodarap
Ne istediğini açık değil. Birleştirme işlecini eklediğiniz temel ilişkisel veritabanı sorgu dili nedir? Yoksa yalnızca birleştirme işleçleri içeren sorguların karmaşıklığını mı soruyorsunuz? Veya asıl sorunuz daha iyi zaman karmaşıklığı elde etmek için birleştirme operatörlerini "paralel olarak" çalıştırmanın mümkün olup olmadığı mıdır? (AND ifadesinin paralel olarak yapılabileceği gibi) Ayrıca (güvenli) SQL sorgularının FOL (Sayım) 'a karşılık geldiğine dikkat edin.
—
Kaveh
Yoksa girdi olarak verilen iki ilişkisel veritabanını birleştiren karmaşıklığı en iyi bilinen üst sınır ve alt sınır (karmaşıklık sınıfları) soruyor musunuz?
—
Kaveh
@Xodarap: Sen cevapları ve yorum bulabilir benim bu soruya öğreticidir; Yaptığımı biliyorum. Kruskal ve diğ. (1990) da iyi bir okumadır.
—
Raphael