Kategori teorisi / soyut cebir ve hesaplama karmaşıklığını birleştiren bir teori var mı?


18

Kategori teorisi ve soyut cebir, fonksiyonların diğer fonksiyonlarla birleştirilme biçimini ele alır. Karmaşıklık teorisi, bir fonksiyonun hesaplanmasının ne kadar zor olduğu ile ilgilenir. Böyle doğal çiftler gibi göründüklerinden, bu çalışma alanlarını kimsenin birleştirmediğini görmek garip. Bunu daha önce kimse yaptı mı?


Motive edici bir örnek olarak, monoidlere bir göz atalım. Bir operasyonun bir monoid olması durumunda, operasyonu paralel hale getirebileceğimiz iyi bilinmektedir.

Örneğin Haskell'de, eklemenin şu gibi tamsayılara göre bir monoid olduğunu önemsiz bir şekilde tanımlayabiliriz:

instance Monoid Int where
    mempty = 0
    mappend = (+)

Şimdi, 0 ile 999 arasında bir toplam hesaplamak istiyorsak, bunu sırasıyla yapabiliriz:

foldl1' (+) [0..999]

ya da paralel olarak yapabiliriz

mconcat [0..999] -- for simplicity of the code, I'm ignoring that this doesn't *actually* run in parallel

Ancak bu monoid'e paralel hale getirmek, yalnızca mappend sabit zamanda çalıştığı için anlamlıdır. Ya durum böyle olmasaydı? Örneğin listeler, mappend'in tutarsız zaman (veya boşluk!) Çalıştırmadığı monoidlerdir. Haskell'de varsayılan paralel mconcat işlevi olmamasının sebebi budur. En iyi uygulama, monoidin karmaşıklığına bağlıdır.


Bu iki monoid arasındaki farkları tanımlamak için uygun bir yol olması gerektiği anlaşılıyor. Daha sonra kodumuza bu farklılıklarla açıklama ekleyebilmeliyiz ve programların bir monoidin karmaşıklığına bağlı olarak kullanılacak en iyi algoritmaları otomatik olarak seçmesini sağlamalıyız.


1
Haskell'deki Tip Tamsayı çok duyarlıklı tamsayılardır ve bunlara eklenme zaman karmaşıklığı doğal olarak giriş tamsayılarının uzunluğuna bağlıdır, bu nedenle Tamsayı için Monoid örneğinizdeki eşlemenin sabit zamanda çalıştığını söylemek yanıltıcıdır.
Tsuyoshi Ito

@TsuyoshiIto Haklısın, Int kullanmak istedim. Sabit.
Mike Izbicki

Bu soruyu gördün mü ?
Kaveh

@Kaveh, işaretçi için teşekkürler. Hızlı bir okumadan, hiç kimse karmaşıklık sınıflarının kendileri üzerinde herhangi bir kategori teorik çalışması yapmamış gibi görünüyor (ve bunun ne anlama gelebileceği veya değerli bir hedef olup olmadığı hakkında bazı tartışmalar var). Bu yüzden sorumun ilk kısmına hemen hemen cevap verdiğini ve sadece cebir ve karmaşıklık arasında herhangi bir etkileşim bıraktığını düşünüyorum.
Mike Izbicki

Cebir ve karmaşıklık teorisi arasında çok fazla etkileşim vardır. Cebirsel kavram ve teknikleri karmaşıklığa kullanan ve uygulayan "Cebirsel Karmaşıklık Teorisi" başlıklı kitaplar bile vardır. Ayrıca cebire karmaşıklık teorisini uygulayan kapsamlı çalışmalar da vardır. Cevap alabilmek için daha spesifik olmalısınız.
Kaveh

Yanıtlar:


12

[Hesaplama karmaşıklığı ve kategori teorisi] böyle doğal çiftler gibi görünüyor.

Bir araştırma alanı olarak hesaplama karmaşıklığının önemi göz önüne alındığında, eğer böyle doğal yatak arkadaşları olsaydı, belki birileri bağlantıyı zaten çıkarmış olurdu?

Vahşi spekülasyon. Hesaplama karmaşıklığının kategorik bir sunumunun neden zor olduğu hakkında okuyucuyu eğlendireyim. Tartışmalı olarak, kategori teorisindeki anahtar kavram kümesi evrensel yapılar / özellikler etrafında odaklanmaktadır (functorların ilişkili aparatları, doğal dönüşümler, sıfatlar vb. İle). Bir matematiksel yapının evrensel bir özelliği olduğunu gösterebilirsek, bu çok fazla fikir verir. Dolayısıyla, hesaplama karmaşıklığına kategorik bir yaklaşım istesek, uygun bir kategori bulmamız ve karmaşıklık teorisinin anahtar kavramlarının (örneğin LOGSPACE veya NP-sertlik) bu kategoriyi kullanan evrensel yapılarla nasıl verilebileceğini göstermemiz gerekir. Bu henüz yapılmadı ve bence bu çok zor bir problem.

T=T1T2T3Tben,1 . Bunun yerine, iki bileşenini ayrı ayrı belirterek TM'ler oluştururuz: kontrol (FSM) ve bant. Ne kontrolün ne de bandın iyi cebirleri yoktur.

Önce kasetlere bakalım. Bant oluşturmanın birkaç doğal yolu vardır, bunların hiçbiri TM'lerin bileşimsel bir açıklaması için işe yaramaz.

  • Onları sıralı toplama gibi yapıştırın. Bu doğru bir fikir değildir, çünkü bantlar sonsuzdur ve sıralı toplama gibi birbirine yapıştırarak, sonlu hesaplanabilirliğin ötesine geçen, matematiksel olarak ilginç olan ancak karşılık gelmeyen sonsuz hesaplama / hiper hesaplamaya yol açan çift sonsuz bir nesne elde ederiz. uygulanabilir hesaplama.

  • Bunları paralel olarak yapıştırın , örneğin iki 3 kafalı makine 6 kafalı bir makineye dönüşür. Bu bize bileşen makinelerinin birbirleriyle nasıl etkileşime girdiğini anlatmaz.

  • Serpiştirme bantlar. Bu yaklaşımla ilgili bir problem, kanonik serpiştirmenin, varsa ne olabileceğinin belirsiz olmasıdır. Dahası, serpiştirme, belirli bir bant düzenine ince ayar yapma eğiliminde olan mevcut kontrolü 'karıştırır'. Bu yüzden kontrolü doğrudan tekrar kullanamayız.

π

Sonuçta, hesaplama karmaşıklığının önemli bir cebirsel / kategorik muamelesini oluşturuyoruz ve oraya ulaşmak için birkaç kavramsal ilerlemeye ihtiyacımız var.


λπλπαλπ


Turing makinelerinin kompozisyonunun, soyut bilgisayar programları olarak düşündüğünüzde oldukça açık olduğunu söyleyebilirim. Program oluşturmanın doğal yolu, birini diğerinin alt programı olarak adlandırmaktır. Daha genel olarak, her program belirli biçimlendirilmiş girişleri kabul eden ve başka bir işleve beslenebilen başka bir biçimlendirilmiş dize çıktısı alan sonlu zaman ve boşluk fonksiyonunda hesaplanabilir. Bazı çöp girişlerinin çöp çıkışlarına neden olması veya bazı işlevlerin ayrılan zaman ve alanda yürütülememesi olasıdır, bu durumda tüm program çöker.
Anton Fetisov

Açıkçası hiçbir program bu şekilde oluşturulamaz, bu da bizi doğal olarak bir TM kategorisine götürür. Ayrıca, muhtemelen pratik olarak mümkün olmayan bir zaman alanı sınırsız TM kavramını bırakması da muhtemeldir. Bu yapıyı yakalayan bazı yayınlanmış kavramlar var mı?
Anton Fetisov

@AntonFetisov Ayrıntıları yazmayı denediniz mi? Güzel değil.
Martin Berger

2

Biçimsel diller arasındaki izomorfizmlerle ilgili bu cevap , biçimsel diller ve karmaşıklık sınıfları arasındaki olası denklik ve izomorfizm kavramlarını araştırmak için kod teorisinden alınan cebirsel sonuçları kategori teorisindeki kavramlarla birleştirir.

Bu sonuçları kendi yorumum, kelimelerdeki senkronizasyon noktalarının deterministik ve kesin olmayan deterministik olmayan transdüserler için farklı ve hatta deterministik ileri ve deterministik geri transdüserler arasında farklı olmasıdır. Bu senkronizasyon noktaları perspektifinin alınması, bu sonuçların görünür şekilde aşağı itilen dillere bağlanmasına izin verir ve bunların aramalar ve iadelere ek olarak basit ayırıcılar (boşluk veya virgül gibi) de düşünüp düşünmeyeceği sorusunu gündeme getirir. (Benim tahminim, bir ayırıcı bir kombine dönüş + çağrı ile taklit edilebilir, ancak bunlar bir yerine iki sembol gerektirdiğinden, bunun yeterli olup olmadığı bana açık değil. Sadece ayırıcıları olan görünür diller de olabilir, ancak çağrı veya dönüş sembolleri.)


Bunu bir topluluk wiki'si haline getirdim, çünkü kendi soruma kendi cevabımla bağlantı kuruyor, ki bu kesinlikle harika değil. Benim favorilerimi "temizliyordum" ve bu kısa cevabı yazmanın en kolay yoluydu.
Thomas Klimpel
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.