Penggunaan struktur aljabar dalam ilmu komputer teoretis

67

Saya seorang praktisi perangkat lunak dan saya sedang menulis survei tentang struktur aljabar untuk penelitian pribadi dan saya sedang mencoba untuk menghasilkan contoh bagaimana struktur ini digunakan dalam ilmu komputer teoretis (dan pada tingkat yang lebih rendah, sub-bidang ilmu komputer lainnya) .

Dalam teori grup, saya menemukan monoid sintaksis untuk bahasa formal dan jejak dan monoid sejarah untuk komputasi paralel / bersamaan.

Dari sudut pandang teori cincin, saya telah menemukan kerangka kerja semiring untuk pemrosesan grafik dan penguraian berbasis semiring.

Saya belum menemukan kegunaan struktur aljabar dari teori modul dalam penelitian saya (dan saya ingin).

Saya berasumsi bahwa ada contoh lebih lanjut dan saya hanya tidak mencari di tempat yang tepat untuk menemukannya.

Apa saja contoh lain dari struktur aljabar dari domain yang tercantum di atas yang umumnya ditemukan dalam ilmu komputer teoretis (dan sub-bidang ilmu komputer lainnya)? Atau, jurnal atau sumber daya apa yang bisa Anda rekomendasikan yang mungkin membahas topik-topik ini?

GEL
sumber
12
Ini sepertinya agak luas. Semua jenis struktur aljabar (grup, cincin, semir, semigroup, bidang) muncul dalam ilmu komputer teoretis, dan itu cukup meresap sehingga Anda akan sulit sekali menemukan subkomponen tertentu. Juga, jangan lupa bidang terbatas untuk hashing dan banyak metode sidik jari acak lainnya.
Suresh Venkat
3
Mungkin segala sesuatu yang dapat diwakili memiliki kegunaan dalam Ilmu Komputer!
vs

Jawaban:

46

Kesan saya adalah, pada umumnya, aljabar tradisional agak terlalu spesifik untuk digunakan dalam Ilmu Komputer. Jadi Ilmuwan Komputer menggunakan struktur yang lebih lemah (dan karenanya lebih umum), atau menggeneralisasi struktur tradisional sehingga mereka dapat menyesuaikannya dengan kebutuhan mereka. Kami juga menggunakan kategori teori banyak, yang oleh ahli matematika tidak dianggap sebagai bagian dari aljabar, tetapi kami tidak melihat mengapa tidak. Kami menemukan resimentasi matematika tradisional menjadi "aljabar" dan "topologi" sebagai cabang terpisah yang tidak nyaman, bahkan tidak ada gunanya, karena aljabar umumnya orde pertama sedangkan topologi memiliki peluang untuk berurusan dengan aspek tingkat tinggi. Jadi, struktur yang digunakan dalam Ilmu Komputer memiliki aljabar dan topologi bercampur. Bahkan, saya akan mengatakan mereka cenderung lebih ke arah topologi daripada aljabar. Regimentasi penalaran menjadi "aljabar" dan "logika" adalah pembagian tak berguna dari sudut pandang kami, karena aljabar berkaitan dengan sifat-sifat persamaan sedangkan logika juga berhubungan dengan semua jenis sifat lainnya.

Kembali ke pertanyaan Anda, semigroup dan monoids digunakan cukup intens dalam teori automata. Eilenberg telah menulis koleksi 2 volume , yang kedua hampir seluruhnya merupakan aljabar. Saya diberitahu bahwa ia merencanakan empat volume tetapi usianya tidak memungkinkan proyek untuk diselesaikan. Jean-Eric Pin memiliki versi modern dari banyak konten ini dalam buku online . Automata adalah "modul monoid" (juga disebut tindakan monoid atau "tindakan"), yang berada pada tingkat yang tepat untuk Ilmu Komputer. Modul dering tradisional mungkin terlalu spesifik.

Teori kisi adalah kekuatan utama dalam pengembangan semantik denotasional. Topologi dicampur menjadi teori kisi ketika Ilmuwan Komputer, bersama-sama dengan matematikawan, mengembangkan kisi - kisi berkelanjutan dan kemudian menggeneralisasikannya ke domain . Saya akan mengatakan bahwa teori domain adalah matematika Ilmuwan Komputer sendiri, yang matematika tradisional tidak memiliki pengetahuan tentang.

Aljabar universal digunakan untuk menentukan spesifikasi aljabar tipe data . Setelah sampai di sana, Ilmuwan Komputer segera menemukan kebutuhan untuk berurusan dengan sifat-sifat yang lebih umum: persamaan kondisional (juga disebut klausa tanduk persamaan) dan sifat logika orde pertama, masih menggunakan ide yang sama dari aljabar universal. Seperti yang akan Anda perhatikan, aljabar sekarang bergabung ke dalam teori model.

Teori kategori adalah dasar untuk teori tipe. Sebagai Ilmuwan Komputer terus menciptakan struktur baru untuk menghadapi berbagai fenomena komputasi, teori kategori adalah kerangka kerja yang sangat nyaman untuk menempatkan semua ide ini. Kami juga menggunakan struktur yang diaktifkan oleh teori kategori, yang tidak memiliki keberadaan dalam matematika "tradisional", seperti kategori functor. Juga, aljabar kembali ke gambar dari sudut pandang kategoris dalam penggunaan monad dan teori efek aljabar . Coalgebras , yang merupakan dual dari algebras, juga menemukan banyak aplikasi.

Jadi, ada banyak aplikasi "aljabar" dalam Ilmu Komputer, tetapi itu bukan jenis aljabar yang ditemukan dalam buku teks aljabar tradisional.

Catatan tambahan : Ada pengertian konkret di mana teori kategori adalah aljabar. Monoid adalah struktur mendasar dalam aljabar. Ini terdiri dari operator "multiplikasi" biner yang asosiatif dan memiliki identitas. Teori kategori generalisasi ini dengan mengasosiasikan "jenis" untuk unsur-unsur monoid itu, . Anda dapat "berkembang biak" elemen hanya ketika jenis cocok: jika dan kemudian . Sebagai contoh, matriks memiliki operasi multiplikasi menjadikannya monoid. Namun, matriks (di mana dana:XYa:XYb:YZab:XZn×nm×nmnbisa berbeda) membentuk suatu kategori. Karenanya monoids adalah kasus khusus dari kategori yang memiliki tipe tunggal. Dering adalah kasus khusus dari kategori aditif yang memiliki tipe tunggal. Modul adalah kasus khusus dari fungsi-fungsi di mana kategori sumber dan target memiliki tipe tunggal. Sebagainya. Teori kategori adalah aljabar yang diketik yang tipenya membuatnya jauh lebih dapat diterapkan daripada aljabar tradisional.

Uday Reddy
sumber
24
Ahli teori kategori menganggap aljabar sebagai bagian dari teori kategori. Ahli Aljabar menganggap teori kategori sebagai bagian dari aljabar. Ahli logika berpikir mereka berdua gila.
Jeffε
4
ada banyak interaksi antara topologi dan aljabar dalam matematika murni ...
Sasho Nikolov
16
Ini adalah jawaban yang bagus, tetapi saya pikir komentar Anda tentang "resimentasi" dan "budaya silo" menyesatkan. Alasan mengapa aljabar, topologi, dan logika tampak menyatu bagi Anda adalah bahwa untuk pertanyaan yang Anda pedulikan , bagian-bagian dari mata pelajaran ini yang relevan dengan Anda saling terkait erat. Tetapi jika, misalnya, Anda mencoba untuk mengklasifikasikan manifold 4-dimensi atas bilangan kompleks, Anda akan dengan cepat melihat kegunaan perbedaan tradisional yang dibuat oleh ahli matematika. Itu semua tergantung pada masalah apa yang Anda coba selesaikan.
Timothy Chow
3
Saya pribadi masih sepenuhnya bingung dengan hampir semua kesimpulan tunggal yang Anda buat tentang budaya penelitian dalam matematika dan ilmu komputer. Seperti yang ditunjukkan oleh @TimothyChow, subbidang yang berbeda dikembangkan untuk menangani berbagai jenis masalah, dan oleh karena itu berbagai alat dikembangkan. Di mana masuk akal untuk membawa alat dari subbidang yang berbeda, dan orang-orang telah menyadari bahwa, ada interaksi. Contoh tidak boleh sulit ditemukan, misalnya dalam catatan kuliah apa pun tentang aljabar dusta.
Sasho Nikolov
3
Berkenaan dengan kurangnya budaya silo dalam ilmu komputer, saya juga akan tidak setuju. Saya pribadi tidak tahu mengapa para peneliti PL membutuhkan semua alat berat ini, untuk apa mereka menggunakannya, untuk masalah apa mereka menyelesaikannya, dan mengapa saya harus peduli. Mungkin ini ketidaktahuan saya sendiri, tapi saya ragu sebagian besar ahli teori kompleksitas dan ahli algoritme tahu jawaban atas pertanyaan-pertanyaan ini ...
Sasho Nikolov
23

Aplikasi teori grup favorit saya sepanjang masa di TCS adalah Teorema Barrington. Anda dapat menemukan eksposisi teorema ini di blog kompleksitas , dan eksposisi Barrington di bagian komentar pada posting itu.

Dai Le
sumber
2
+1: dan banyak yang menganggapnya sebagai salah satu hasil paling mengejutkan dalam teori kompleksitas. :)
Kaveh
15

Grup, cincin, bidang, dan modul ada di mana-mana dalam topologi komputasi. Lihat khususnya karya Carlsson dan Zomorodian [ex: 1 ] pada homologi persisten (multidimensi), yang semuanya tentang modul bergradasi di atas domain ideal utama.

Jeffε
sumber
@ Jeff, tautan, silakan.
scaaahu
1
@ Jeff, komentar saya tidak dimaksudkan untuk menyinggung. Ya saya tahu caranya ke Google. Maksud saya adalah, apakah ada artikel tertentu yang ditulis oleh Carlsson dan Zomorodian, yang akan menjadi semacam gambaran tentang homologi persisten? Jika ada, beri tahu kami. Terima kasih.
scaaahu
Saya sarankan memulai dengan tulisan ini . (Maaf, komentar saya sebelumnya tidak pantas.)
Jeffε
@ Jeff, mengerti, persis apa yang saya cari. Terima kasih.
scaaahu
14

Berikut ini adalah penggunaan praktis yang sangat bagus: sebuah algoritma untuk menghitung konektivitas grafik (dari FOCS2011 ). Untuk menghitung konektivitas s-> t dari grafik, penulis memberikan algoritma yang menetapkan vektor acak dengan entri yang ditarik dari bidang hingga ke tepi keluar dari s, kemudian membuat vektor serupa untuk semua tepi dalam grafik dengan mengambil secara acak kombinasi linier, dan akhirnya menemukan konektivitas dengan menghitung pangkat vektor yang dihasilkan ditugaskan ke tepi t.

Aaron Roth
sumber
Terima kasih atas penunjuk dan ikhtisar! Ini dari FOCS 2011: dx.doi.org/10.1109/FOCS.2011.55
András Salamon
12

Kisi-kisi dan titik-titik tetap berada di dasar analisis dan verifikasi program. Meskipun hasil lanjut dari teori kisi jarang digunakan karena kami khawatir dengan masalah algoritmik seperti komputasi dan perkiraan titik tetap, sedangkan penelitian dalam teori kisi memiliki fokus yang berbeda (koneksi ke topologi, teori dualitas, dll). Makalah interpretasi abstrak awal menggunakan teori kisi dasar. Karya Roberto Giacobazzi dan rekan-rekannya menggunakan hasil yang lebih maju.

Dalam komputasi terdistribusi, keluarga hasil ketidakmungkinan yang terkenal diturunkan menggunakan metode topologi aljabar (Lihat karya Maurice Herlihy dan Nir Shavit).

[Sunting: Lihat Aplikasi Topologi untuk Ilmu Komputer .]

Vijay D
sumber
12

Aljabar universal adalah alat penting dalam mempelajari kompleksitas masalah kepuasan kendala.

Sebagai contoh, Dichotomy Conjecture menyatakan bahwa, secara kasar, masalah kepuasan kendala atas domain yang terbatas dapat diselesaikan dengan NP-complete atau polinomial-time. Perhatikan bahwa menurut teorema Ladner ada masalah dalam NP yang tidak dalam P dan tidak NP-lengkap, kecuali P = NP, sehingga dugaan mengatakan bahwa CSP khusus dalam memiliki dikotomi yang tidak dimiliki oleh kelas kompleksitas yang lebih besar. Ini juga akan memberikan beberapa penjelasan mengapa sebagian besar masalah yang kita temui dalam praktik dapat diklasifikasikan sebagai NP-complete atau dalam P.

Dikotomi terbukti untuk beberapa kasus khusus, misalnya CSP domain biner (Schaefer) dan CSP domain terner (Bulatov), ​​dan homomorfisme menjadi grafik yang tidak terarah (Hell dan Nesetril). Tetapi kasus umum cukup terbuka. Salah satu garis serangan utama adalah melalui aljabar universal. Sangat kasar (dan saya jelas bukan ahli dalam hal ini!) Seseorang mendefinisikan polimorfisme CSP menjadi fungsi pada domain CSP yang membuat semua kendala puas dipenuhi jika diterapkan pada masing-masing variabel. Himpunan polimorfisme dari CSP dalam beberapa hal menangkap kompleksitasnya. Sebagai contoh jika CSP A menerima semua polimorfisme dari CSP B, maka A adalah waktu polinom yang dapat direduksi menjadi B. Himpunan polimorfisme membentuk aljabar, yang strukturnya tampaknya membantu dalam menentukan algoritma / menunjukkan reduksi. Misalnya jika aljabar polimorfisme dari CSP adalah idempoten dan mengakui tipe unary, maka CSP adalah NP-complete. Idempotence adalah asumsi penyederhanaan yang bisa dibuat lebih atau kurang tanpa kehilangan keumuman. Menunjukkan bahwa CSP yang aljabarnya idempoten dan tidak mengakui tipe unary dapat diselesaikan dalam waktu polinomial akan membuktikan Dichotomy Conjecture.

Lihat survei oleh Bulatov: http://www.springerlink.com/content/a553847g6h673k05/ .

Sasho Nikolov
sumber
11

Berikut adalah dua aplikasi dari bagian TCS yang berbeda.

Semiring digunakan untuk memodelkan anotasi dalam database (terutama yang diperlukan untuk sumber), dan sering juga untuk struktur penilaian dalam kepuasan kendala yang dihargai. Dalam kedua aplikasi ini, nilai-nilai individual harus digabungkan bersama dengan cara-cara yang secara alami mengarah pada struktur semiring, dengan asosiatif dan satu operasi semiring yang mendistribusikan lebih dari yang lain. Mengenai pertanyaan Anda tentang modul, monoid tidak memiliki kebalikan dalam aplikasi ini, secara umum.

András Salamon
sumber
10

Cincin, modul, dan varietas aljabar digunakan dalam koreksi kesalahan dan, lebih umum, teori pengkodean.

Secara khusus, ada skema koreksi kesalahan abstrak (kode aljabar-geometri) yang menggeneralisasi kode Reed-Solomon dan kode Sisa Cina. Skema ini pada dasarnya untuk mengambil pesan Anda dari ring R dan menyandikannya dengan mengambil residu modulo banyak cita-cita berbeda dalam R. Berdasarkan asumsi tertentu tentang R, orang dapat membuktikan bahwa ini membuat kode koreksi kesalahan yang layak.

Dalam dunia decoding daftar, makalah baru-baru ini oleh Guruswami memberikan metode linear-aljabar daftar decoding dilipat kode Reed-Solomon, yang memiliki properti bagus bahwa semua pesan kandidat terletak di subruang affine dimensi rendah ruang pesan . Seseorang dapat membangun himpunan ruang subruang , set yang hampir sama besar dengan seluruh ruang tetapi memiliki persimpangan kecil dengan setiap subruang affine dimensi rendah. Jika seseorang membatasi pesan yang berasal dari subruang yang ditempatkan di dalam ruang pesan, maka skema Guruswami memberikan algoritma yang menjamin ukuran daftar yang bagus. Sejauh ini satu-satunya konstruksi eksplisit set subruang evasive diberikan oleh Dvir dan Lovett dalam makalah STOC mereka yang akan datang, Subruang Evasive Set dan membangun himpunan dengan mengambil varietas afin tertentu (dan membawa produk Cartesiannya sendiri).

Alan Guo
sumber
6

Lihat Teori Ramsey - pada dasarnya generalisasi yang signifikan dari prinsip pigeonhole yang mendasari banyak automata dan teori bahasa formal (atau harus saya katakan, prinsip pigeonhole adalah kasus paling sederhana dari Teori Ramsey). Pada dasarnya dikatakan bahwa bahkan struktur yang sangat tidak teratur ternyata mengandung banyak pesanan jika cukup besar. Sebagai contoh kecil tepat di luar prinsip pigeonhole, perhatikan bahwa jika Anda mengambil enam orang, maka mereka bertiga saling kenal atau bertiga saling tidak mengenal satu sama lain.

Makalah ini terlihat seperti tempat yang bagus untuk memulai koneksi dengan ilmu komputer, tetapi Anda dapat mencari lebih banyak di google. Ini lebih bersifat kombinatorik daripada aljabar, tetapi memiliki banyak aplikasi dalam aljabar dan CS teoretis.

Dan juga lihat kisah penemunya, Frank Ramsey - benar-benar polymath luar biasa yang membuat kontribusi fundamental, bahkan revolusioner di bidang ekonomi dan filsafat serta matematika, banyak yang tidak dihargai sampai kemudian, semuanya sebelum mati pada usia 26 - hanya berpikir! Faktanya, teorema asli Ramsey, dasar Ramsey Theory, hanyalah sebuah lemma dalam sebuah makalah dengan tujuan yang lebih besar dalam logika matematika.

David Lewis
sumber
2
ini adalah hal klasik kombinatorik ekstrim, saya bertanya-tanya di mana Anda melihat hubungan dengan aljabar? (Saya tidak memperdebatkan bahwa teori ramsey adalah sumber masalah besar dan teorema)
Sasho Nikolov
Untuk satu, teori grafik sangat penting dalam CS teoritis. Dan lihat tautan di jawaban saya serta pencarian ini . Juga, dari Pin, JE, Varietas bahasa formal , Teorema 1.11 - Setiap kelompok terbatas dihasilkan oleh , memiliki dengan setiap kata panjang daripada memiliki idempoten dengan , dan semua . Ini paling mudah dibuktikan dengan Teorema Ramsey. A k > = 2 n w A + n e S w = x u 1 . . . u n y x , y A ˉ u i = eSAk>=2nwA+neSw=xu1...unyx,yAu¯i=e
David Lewis
saya tidak mempermasalahkan relevansi teori ramsey, apalagi teori grafik, dengan tcs. Saya mengatakan bahwa OP bertanya tentang penerapan teori aljabar dan ramsey bukan sesuatu yang biasanya terkait dengan aljabar, afaik. tetapi karena Anda tampaknya memiliki beberapa teori ramsey koneksi -> aljabar -> tcs dalam pikiran, mungkin Anda dapat menambahkannya ke jawaban Anda
Sasho Nikolov
@Sasho - Jika maksud Anda Ramsey Theory bukan topik aljabar, maka jawaban saya tidak masuk akal, maka Anda 100% benar. Saya minta maaf atas jawaban saya. Saya kira pikiran saya cenderung melintasi batas-batas disiplin dan sub-disiplin agak mudah. Tapi ini lebih buruk dari itu - Teori Ramsey sama sekali bukan "struktur aljabar". Jangan ragu untuk membatalkan jawaban saya. Salam.
David Lewis
baik sementara mungkin downvoting akan logis, saya suka kombinatorik ekstrem, jadi saya tidak akan :) Btw saya cukup yakin bahwa ada beberapa fenomena tipe ramsey yang terjadi dengan struktur aljabar, mungkin bahkan pada "kepadatan" yang lebih rendah karena simetri, jadi Anda memberi saya ide tentang pertanyaan
Sasho Nikolov
5

Menganalisis setiap masalah dengan banyak simetri difasilitasi dengan menggunakan teori grup. Contohnya adalah menemukan algoritma untuk hal-hal seperti kubus rubic. Meskipun saya tidak tahu perinciannya, saya yakin bahwa untuk membuktikan bahwa jumlah Tuhan adalah 20, diperlukan pemangkasan teori kelompok yang serius. Dalam konteks yang berbeda, pemecah praktis untuk masalah isomorfisme grafik seperti nauty menggunakan kelompok automorfisme grafik.

Shitikanth
sumber
Juga, algoritma untuk grafik isomorfisma [Luks '81; Babai - Luks '82] dengan jaminan paling terkenal (yaitu, bekerja dalam teori, tetapi mungkin tidak efisien dalam praktiknya) menggunakan teori grup sangat, bahkan meminta klasifikasi kelompok sederhana hingga.
Joshua Grochow
5

Aljabar (dan geometri aljabar) telah memainkan peran yang cukup besar dalam kriptografi, dengan kelompok kurva eliptik, kisi (angka-teoretis), dan tentu saja menjadi dasar untuk hampir semua karya kriptografi modern.Zp

Pratyush Mishra
sumber
1
Seperti yang saya pahami, ada struktur aljabar lain (bidang terbatas, cincin, dan struktur lain) yang digunakan dalam Crypto modern - yang secara bertahap meninggalkan teori bilangan dan lebih fokus pada kisi-kisi, kode koreksi kesalahan dan masalah "tahan-kuantum".
josh
1

Dalam pemrograman fungsional, abstraksi yang paling umum dan elegan untuk masalah sering bersifat aljabar (atau kategori-teoretik) di alam: monoids, semiring , functors, monads, F-algebras, F-coalgebras, dll. Beberapa hasil klasik (misalnya, Yoneda lemma) kebetulan memiliki konten dan utilitas komputasi.

Juga, ada teori tipe homotopy, yang menafsirkan teori tipe dalam (semacam) pengaturan topologi aljabar.

xrq
sumber
0

Baru-baru ini, kami mengeksplorasi (lihat makalah kami pada springerlink: Penyatuan berbasis seri formal dari pendekatan penambangan itemset sering ) upaya penyatuan untuk pola penambangan (contoh populer dari penambangan data) pendekatan dengan cara seri formal dan automata tertimbang. Alat-alat ini didasarkan pada pemetaan antara monoids dan struktur semiring.

Slimane Oulad-Naoui
sumber