Apa kegunaan dari Limits and Colimits of Theory Theory dalam masalah sehari-hari?

9

Saya tertarik mengetahui bagaimana kita dapat menggunakan konsep Limits and Colimits dalam memodelkan masalah dalam kehidupan sehari-hari? Adakah yang bisa memberikan contoh rekayasa (Perangkat Lunak), mungkin? Atau jelaskan secara intuitif secara umum untuk masalah pemodelan seperti apa kita dapat menggunakan konsep-konsep ini? Terima kasih.

pengguna221678
sumber
1
Di mana-mana perpustakaan ini digunakan, hackage.haskell.org/package/data-category-0.5.1/docs/…
Chad Brewbaker
3
Yang sayangnya tidak ada, afaict ...
Sjoerd Visscher
1
Periksa bab tentang teori kategori dalam buku pegangan logika di cs.
Kaveh

Jawaban:

7

Ambil beberapa relasi , . Biarkan , menjadi proyeksi dengan domain terbatas pada relasi , . Maka kemunduran , adalah gabungan dari dan dalam arti SQL.R 1A 1 × A 2 π 1 : R 0A 1 π 0 : R 1A 1 R 0 R 1 π 0 π 1 R 0 R 1R0A0×A1R1A1×A2π1:R0A1π0:R1A1R0R1π0π1R0R1

beroal
sumber
5

Contoh yang bagus adalah Tate et al. Menghasilkan Compiler Optimization from Proofs . Dia menggunakan pullback dan pushout sebagai serikat dan persimpangan umum, dalam kategori di mana panah adalah (IIRC) substitusi.

Ross Tate mengklaim (di halaman web kertas) bahwa detail luar biasa tanpa abstraksi yang diberikan oleh teori kategori. Secara pribadi, saya ingin menyerahkan sebagai "bukti sugestif" (jika ada bukti klaim semacam itu) diagram (6) dan (7) di makalah mereka - mereka terlihat cukup kompleks dalam bentuk diagram. Biarkan saya mengutip komentar mereka sebaris.

Beberapa orang telah bertanya kepada kami mengapa kami abstrak teknik generalisasi bukti kami, dan mengapa kami menggunakan teori kategori sebagai abstraksi kami. Namun, kami sebenarnya merancang algoritma abstrak terlebih dahulu, menggunakan teori kategori, dan kemudian menggunakannya untuk mencari tahu bagaimana menyelesaikan masalah konkret kami. Kami terjebak dengan masalah konkret, kewalahan oleh detail dan variabel, dan solusi apa pun yang dapat kami pikirkan tampak sewenang-wenang. Untuk merefleksikan dan menyederhanakan, kami memutuskan untuk mengutarakan pertanyaan kami dengan pasti. Ini mengarah ke diagram sumber dan sink, jadi kami hanya menggunakan pushout dan pullback untuk merekatkan semuanya. Tantangan terbesar datang dengan penyelesaian pushout, daripada menggunakan beberapa konsep standar yang ada. Formulasi kategoris mudah ditentukan dan alasan tentang. Setelah itu, kami memulai proses abstrak,

Kami telah benar-benar menemukan proses pengabstrakan ke teori kategori ini setiap kali kami terjebak agar cukup membuahkan hasil. Tidak hanya akhirnya menyelesaikan masalah nyata kami, tetapi kami berakhir dengan pemahaman yang lebih baik tentang masalah kami sendiri serta solusi abstrak yang dapat dengan mudah disesuaikan dengan aplikasi lain. Dengan demikian, pengalaman kami menunjukkan bahwa teori kategori mungkin berguna dalam membangun algoritma yang sebenarnya, selain berguna sebagai kerangka kerja untuk formalisasi. Kami akan tertarik untuk mengetahui pengalaman serupa lainnya, baik positif atau negatif.

Blaisorblade
sumber
4

Dalam buku Spivak di halaman 192 dia memberi contoh menggunakan colimits untuk membuat peta transit . Juga, Aplikasinya 5.2.1.2 membahas penerapan tambalan Liquibase seperti pada skema basis data dari waktu ke waktu kemudian menggunakan colimits untuk alasan antara data lama dan baru secara universal.

Chad Brewbaker
sumber
4

Bidang aplikasi yang luas adalah dalam transformasi grafik (diterapkan dalam rekayasa model-driven). Dua makalah yang relevan (diberikan dengan tautan ke Google Cendekia):

EDIT: sekali lagi, (bagian dari) ide dasarnya adalah bahwa pushout bertindak sebagai penyatuan dengan beberapa lem. Ini memungkinkan mendefinisikan "aturan penulisan ulang" untuk grafik - Anda mencocokkan sisi kiri dengan grafik, dan kemudian menempelkan sisi kanan ke (sisa) grafik dengan cara yang sesuai. Saya khawatir saya tidak dapat menambahkan detail karena saya tidak pernah mendapatkan lebih dari intuisi.

Blaisorblade
sumber
Penjelasan yang lebih baik ada dalam jawaban ini oleh Dave Clarke: cstheory.stackexchange.com/a/947/989
Blaisorblade