Apakah ada teori yang menggabungkan teori kategori / aljabar abstrak dan kompleksitas komputasi?

18

Kategori teori dan aljabar abstrak berhubungan dengan cara fungsi dapat dikombinasikan dengan fungsi lainnya. Teori kompleksitas berkaitan dengan seberapa sulit suatu fungsi dikomputasi. Aneh bagi saya bahwa saya belum pernah melihat orang yang menggabungkan bidang studi ini, karena mereka tampak seperti pasangan alami. Adakah yang pernah melakukan ini sebelumnya?


Sebagai contoh yang memotivasi, mari kita lihat monoids. Sudah diketahui bahwa jika suatu operasi adalah monoid, maka kita dapat memparalelkan operasi tersebut.

Sebagai contoh di Haskell, kita dapat dengan sepele mendefinisikan bahwa penambahan adalah monoid di atas bilangan bulat seperti ini:

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

Sekarang jika kita ingin menghitung jumlah 0 hingga 999, kita dapat melakukannya secara berurutan seperti:

foldl1' (+) [0..999]

atau kita bisa melakukannya secara paralel

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

Tetapi memparalelkan monoid ini masuk akal hanya karena pemetaan berjalan dalam waktu yang konstan. Bagaimana jika ini bukan masalahnya? Daftar, misalnya, adalah monoids di mana mappend tidak menjalankan waktu tidak konstan (atau spasi!). Saya menduga inilah sebabnya tidak ada fungsi paralel standar mconcat di Haskell. Implementasi terbaik tergantung pada kompleksitas monoid.


Sepertinya harus ada cara yang mudah untuk menggambarkan perbedaan antara kedua monoids ini. Kami kemudian dapat membuat anotasi kode kami dengan perbedaan-perbedaan ini dan membuat program secara otomatis memilih algoritma terbaik untuk digunakan tergantung pada kompleksitas monoid.

Mike Izbicki
sumber
1
Jenis Integer di Haskell adalah bilangan bulat multi-presisi, dan kompleksitas waktu penambahan pada mereka secara alami tergantung pada panjang bilangan bulat input, sehingga menyesatkan untuk mengatakan bahwa pemetaan dalam instance Monoid Anda untuk Integer berjalan pada waktu konstan.
Tsuyoshi Ito
@ TsuyoshiIto Anda benar, saya bermaksud menggunakan Int. Tetap.
Mike Izbicki
Pernahkah Anda melihat pertanyaan ini ?
Kaveh
@ Kaveh saya belum, terima kasih untuk pointer. Dari membaca cepat sepertinya tidak ada yang melakukan kategori teori bekerja pada kelas kompleksitas sendiri (dan ada beberapa perdebatan tentang apa yang bahkan mungkin berarti atau jika itu adalah tujuan yang berharga). Jadi saya pikir cukup banyak menjawab bagian pertama dari pertanyaan saya dan hanya meninggalkan interaksi antara aljabar dan kompleksitas.
Mike Izbicki
Banyak interaksi antara teori aljabar dan kompleksitas. Bahkan ada buku berjudul "Teori Kompleksitas Aljabar" yang menggunakan dan menerapkan konsep dan teknik aljabar ke kompleksitas. Dan ada juga karya luas yang menerapkan teori kompleksitas untuk aljabar. Anda harus lebih spesifik untuk mendapatkan jawaban.
Kaveh

Jawaban:

12

[Kompleksitas komputasi dan teori kategori] tampak seperti pasangan alami.

Mengingat keunggulan kompleksitas komputasi sebagai bidang penelitian, jika mereka teman akrab alami, mungkin seseorang sudah akan mengeluarkan koneksi?

Spekulasi liar. Biarkan saya menghibur pembaca dengan pemikiran tentang mengapa rendering kompleksitas komputasi yang sulit. Dapat diperdebatkan, kluster konsep utama dalam teori kategori berpusat di sekitar konstruksi / sifat universal (dengan aparatus yang terkait dengan fungsi-fungsi, transformasi alami, tambahan, dan sebagainya). Jika kita dapat menunjukkan bahwa konstruksi matematika memiliki sifat universal, itu memberikan banyak wawasan. Jadi jika kita menginginkan pendekatan kategoris pada kompleksitas komputasi, kita perlu menemukan kategori yang sesuai dan menunjukkan bagaimana konsep kunci teori kompleksitas (misalnya LOGSPACE atau NP-hardness) dapat diberikan oleh konstruksi universal menggunakan kategori tersebut. Ini belum dilakukan, dan saya pikir ini karena ini adalah masalah yang sangat sulit.

T=T1T2T3Ti,1 . Sebagai gantinya, kami membuat TM dengan menetapkan dua komponen mereka secara terpisah: kontrol (FSM) dan pita. Baik kontrol maupun pita tidak memiliki aljabar yang baik.

Mari kita lihat rekamannya terlebih dahulu. Ada beberapa cara alami untuk membuat kaset, tidak ada satupun yang berfungsi untuk deskripsi komposisi TM.

  • Rekatkan keduanya seperti penambahan ordinal. Ini bukan gagasan yang tepat, karena kaset tidak terbatas dan dengan menyatukannya seperti penambahan ordinal kita mendapatkan objek ganda tak terbatas yang melampaui kemampuan terbatas, yang mengarah ke perhitungan / hiperkomputasi tak terbatas, yang menarik secara matematis tetapi tidak sesuai dengan matematika perhitungan yang layak.

  • Tempelkan keduanya secara paralel , mis. Dua mesin 3-kepala berubah menjadi mesin 6-kepala. Ini tidak memberi tahu kami bagaimana mesin komponen berinteraksi satu sama lain.

  • Kaset interleave. Satu masalah dengan pendekatan ini adalah bahwa tidak jelas apa yang mungkin terjadi interleaving kanonik, jika ada. Selain itu, interleaving akan 'membingungkan' kontrol yang ada, yang cenderung disetel secara halus ke arah tata letak kaset tertentu. Jadi kami tidak dapat menggunakan kembali kontrol secara langsung.

π

Semua dalam semua, kita cukup jauh membentuk perlakuan aljabar / kategoris besar kompleksitas komputasi, dan kita akan memerlukan beberapa kemajuan konseptual untuk sampai ke sana.


λπλπαλπ

Martin Berger
sumber
Saya akan mengatakan bahwa komposisi mesin Turing cukup jelas ketika Anda menganggapnya sebagai program komputer abstrak. Cara alami untuk menyusun program adalah dengan memanggil satu sebagai subprogram yang lain. Lebih umum, setiap program adalah komputasi dalam waktu dan fungsi ruang terbatas yang menerima input berformat tertentu dan mengeluarkan string berformat lain, yang dapat dimasukkan ke dalam fungsi lain. Ada kemungkinan bahwa beberapa input sampah akan menghasilkan keluaran sampah atau bahwa beberapa fungsi gagal dieksekusi dalam waktu dan ruang yang ditentukan, dalam hal ini seluruh program macet.
Anton Fetisov
Jelas tidak semua program dapat dikomposisikan dengan cara ini, yang secara alami membawa kita ke kategori TM. Mungkin juga seseorang harus melepaskan gagasan tentang ruang-waktu tanpa batas TM, yang praktis tidak layak. Apakah ada gagasan yang dipublikasikan yang menangkap struktur ini?
Anton Fetisov
@AntonFetisov Sudahkah Anda mencoba menuliskan detailnya? Itu tidak cantik.
Martin Berger
2

Ini jawaban tentang isomorphisms antara bahasa resmi menggabungkan hasil aljabar dari teori kode dengan gagasan-gagasan dari teori kategori untuk menyelidiki kemungkinan pengertian tentang kesetaraan dan isomorfisme antara bahasa formal dan kelas kompleksitas.

Interpretasi saya sendiri atas hasil ini adalah bahwa titik sinkronisasi dalam kata-kata berbeda untuk transduser non-deterministik deterministik dan tidak ambigu, dan bahkan berbeda antara transduser deterministik maju dan transduser mundur deterministik. Mengambil perspektif titik sinkronisasi ini memungkinkan untuk menghubungkan hasil ini ke bahasa pushdown yang tampak, dan menimbulkan pertanyaan apakah mereka juga harus mempertimbangkan pemisah sederhana (seperti spasi atau koma) selain panggilan dan pengembalian. (Dugaan saya adalah bahwa pemisah dapat ditiru oleh panggilan kembali + gabungan, tetapi karena mereka memerlukan dua simbol, bukan satu, tidak jelas bagi saya apakah ini cukup. Mungkin juga ada bahasa yang hanya memiliki pemisah, tetapi tidak ada panggil atau kembalikan simbol.)

Thomas Klimpel
sumber
Saya membuat ini sebagai wiki komunitas, karena tautannya ke jawaban saya sendiri untuk pertanyaan saya sendiri, yang tentu saja tidak bagus. Saya sedang "membersihkan" favorit saya, dan hanya menulis jawaban singkat ini adalah cara termudah untuk melanjutkan.
Thomas Klimpel