Яке використання обмежень та коломітів теорії категорій у щоденних проблемах?


9

Мені цікаво знати, як ми можемо використовувати поняття Обмеження та Коліміти для моделювання проблем у повсякденному житті? Може хтось може надати приклади інженерії (програмного забезпечення)? Або опишіть інтуїтивно загалом, для яких типів проблем моделювання ми можемо використовувати ці поняття? Дякую.


1
Скрізь, де ця бібліотека використовується, hackage.haskell.org/package/data-category-0.5.1/docs/…
Чад Брюбекер

3
Що, на жаль, ніде, афакт ...
Sjoerd Visscher,

1
Перевірте розділ теорії категорій у посібнику логіки в cs.
Каве

Відповіді:


7

Візьміть деякі відносини R0А0×А1, R1А1×А2. Дозволяєπ1:R0А1, π0:R1А1 бути проекціями з доменами, обмеженими відносинами R0, R1. Тоді відкатπ0, π1 є приєднанням R0 і R1 в сенсі SQL


5

Хороший приклад - оптимізація компілятора, створена Tate та ін., На основі доказів . Він використовує відкази та відштовхування як узагальнені об'єднання та перехрестя в категоріях, де стрілки (IIRC) замінюють.

Росс Тейт (на паперовій веб-сторінці) стверджує, що деталі були надзвичайними без абстракції, яку надає теорія категорій. Особисто я хотів би подати у своєму документі «сугестивні докази» (якщо можуть бути якісь докази такої заяви) діаграми (6) та (7) - вони виглядають досить складно у схематичній формі. Дозвольте процитувати їх коментарі.

Деякі запитували нас, чому ми взагалі абстрагували нашу методику узагальнення доказів і чому ми використовували теорію категорій як нашу абстракцію. Однак ми спочатку розробили абстрактний алгоритм, використовуючи теорію категорій, а потім використали його, щоб з'ясувати, як вирішити нашу конкретну проблему. Ми стикалися з конкретною проблемою, переповненою деталями та змінними, і будь-яке рішення, про яке ми могли б думати, здавалося довільним. Щоб відобразити та спростити, ми вирішили сформулювати наше запитання категорично. Це призводить до діаграми джерел і раковин, тому ми просто використовували віджимання і відкатки, щоб склеїти речі разом. Найбільшим викликом було створення розсилки, а не використання якоїсь стандартної концепції. Категоричну формулювання легко було вказати та обґрунтувати. Потім ми створили абстрактні процеси,

Ми фактично знаходили цей процес абстрагування теорії категорій кожного разу, коли ми зациклювалися на досить плідному. Ми не тільки вирішуємо нашу конкретну проблему, але й краще розуміємо власну проблему, а також абстрактне рішення, яке легко адаптується до інших програм. Таким чином, наш досвід свідчить про те, що теорія категорій може бути корисною для побудови фактичних алгоритмів, крім того, щоб бути корисною як основу для формалізації. Нам було б цікаво дізнатись про інший подібний досвід, як позитивний, так і негативний.


4

У книзі Співака на сторінці 192 він наводить приклад використання обмежень для створення транзитних карт . Крім того, у його застосуванні 5.2.1.2 обговорюється застосування Liquibase як патчів до схеми бази даних з часом, а потім використання обмежень для міркування старих і нових даних універсальним способом.


4

Широке поле застосування полягає в перетвореннях графіків (застосовується в модельованій інженерії). Два релевантні документи (надаються з посиланнями на Google Академія):

EDIT: знову ж таки, (частина) основна ідея полягає в тому, що відштовхувачі виконують роль об'єднання з деяким клеєм. Це дозволяє визначити "правила перезапису" для графіків - ви під'єднаєте ліву частину до графіка, а потім приклейте праву частину до (решту) графіка відповідним чином. Боюся, я не можу додати деталей, тому що я ніколи не отримував більше, ніж інтуїція.


Краще пояснення в цій відповіді Дейва Кларка: cstheory.stackexchange.com/a/947/989
Blaisorblade
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.