Việc sử dụng các giới hạn và Colimits của lý thuyết danh mục trong các vấn đề hàng ngày là gì?


9

Tôi muốn biết làm thế nào chúng ta có thể sử dụng các khái niệm về Giới hạn và Colimits trong các vấn đề mô hình hóa trong cuộc sống hàng ngày? Bất cứ ai cũng có thể cung cấp các ví dụ kỹ thuật (Phần mềm), có lẽ? Hoặc mô tả bằng trực giác nói chung cho những loại vấn đề mô hình hóa nào chúng ta có thể sử dụng các khái niệm này? Cảm ơn bạn.


1
Ở mọi nơi thư viện này được sử dụng, hackage.haskell.org/package/data-carget-0.5.1/docs/ Kẻ
Chad Nhà sản xuất bia

3
Điều đáng buồn là không có ở đâu, afaict ...
Sjoerd Visscher

1
Kiểm tra chương về lý thuyết thể loại trong sổ tay logic trong cs.
Kaveh

Câu trả lời:


7

Mất một quan hệ , R 1A 1 × Một 2 . Đặt π 1 : R 0A 1 , π 0 : R 1A 1 là các hình chiếu có miền giới hạn trong quan hệ R 0 , R 1 . Khi đó pullback của π 0 , π 1 là phép nối của R 0R0Một0×Một1R1Một1×Một2π1:R0Một1π0:R1Một1R0R1π0π1R0 theo nghĩa SQL.R1


5

Một ví dụ điển hình là Tối ưu hóa trình biên dịch của Tate và cộng sự từ các bằng chứng . Anh ta sử dụng pullback và đẩy ra như các hiệp hội và giao điểm tổng quát, trong các thể loại mà mũi tên là (IIRC) thay thế.

Ross Tate tuyên bố (trên trang web giấy) rằng các chi tiết là quá nhiều mà không có sự trừu tượng hóa theo lý thuyết thể loại. Cá nhân, tôi muốn gửi "bằng chứng gợi ý" (nếu có thể có bất kỳ bằng chứng nào về yêu cầu đó) (6) và (7) trong bài viết của họ - chúng trông đủ phức tạp ở dạng sơ đồ. Hãy để tôi trích dẫn ý kiến ​​của họ nội tuyến.

Một số người đã hỏi chúng tôi tại sao chúng tôi trừu tượng hóa kỹ thuật khái quát hóa bằng chứng của chúng tôi, và tại sao chúng tôi sử dụng lý thuyết thể loại như là sự trừu tượng của chúng tôi. Tuy nhiên, chúng tôi thực sự đã thiết kế thuật toán trừu tượng trước tiên, sử dụng lý thuyết thể loại và sau đó sử dụng thuật toán đó để tìm ra cách giải quyết vấn đề cụ thể của chúng tôi. Chúng tôi đã bị mắc kẹt với vấn đề cụ thể, bị choáng ngợp bởi các chi tiết và các biến, và bất kỳ giải pháp nào chúng tôi có thể nghĩ là có vẻ tùy tiện. Để phản ánh và đơn giản hóa, chúng tôi quyết định phân loại câu hỏi của chúng tôi một cách phân loại. Điều này dẫn đến một sơ đồ về nguồn và chìm, vì vậy chúng tôi chỉ sử dụng đẩy và kéo để dán mọi thứ lại với nhau. Thách thức lớn nhất là đến với việc hoàn thành đẩy ra, thay vì sử dụng một số khái niệm tiêu chuẩn hiện có. Các công thức phân loại là dễ dàng để xác định và lý do về. Sau đó, chúng tôi đã khởi tạo các quy trình trừu tượng,

Chúng tôi đã thực sự tìm thấy quá trình trừu tượng hóa này cho lý thuyết thể loại bất cứ khi nào chúng tôi gặp khó khăn là khá hiệu quả. Nó không chỉ giải quyết vấn đề cụ thể của chúng tôi, mà chúng tôi còn hiểu rõ hơn về vấn đề của chính chúng tôi cũng như một giải pháp trừu tượng có thể dễ dàng thích nghi với các ứng dụng khác. Do đó, kinh nghiệm của chúng tôi cho thấy rằng lý thuyết thể loại có thể hữu ích trong việc xây dựng các thuật toán thực tế, ngoài việc hữu ích như một khuôn khổ để chính thức hóa. Chúng tôi sẽ quan tâm để biết về những trải nghiệm tương tự khác, tích cực hoặc tiêu cực.



4

Một lĩnh vực rộng lớn của các ứng dụng là trong các phép biến đổi đồ thị (áp dụng trong kỹ thuật hướng mô hình). Hai giấy tờ có liên quan là (được cung cấp cùng với các liên kết đến Google Scholar):

EDIT: một lần nữa, (một phần) ý tưởng cơ bản là đẩy ra hoạt động như một liên minh với một số keo. Điều này cho phép xác định "quy tắc viết lại" cho biểu đồ - bạn khớp phía bên trái với biểu đồ và sau đó dán phần bên phải vào (phần còn lại) của biểu đồ theo cách tương ứng. Tôi sợ tôi không thể thêm chi tiết vì tôi chưa bao giờ nhận được nhiều hơn trực giác.


Một lời giải thích tốt hơn là trong câu trả lời này của Dave Clarke: cstheory.stackexchange.com/a/947/989
Blaisorblade
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.