Jakie są zastosowania limitów i limitów teorii kategorii w codziennych problemach?

9

Interesuje mnie wiedza o tym, w jaki sposób możemy wykorzystać koncepcje granic i limitów w modelowaniu problemów w codziennym życiu? Czy ktoś mógłby podać przykłady inżynierii (oprogramowania)? Lub ogólnie opisać intuicyjnie, jakiego rodzaju problemów z modelowaniem możemy użyć tych pojęć? Dziękuję Ci.

użytkownik221678
źródło
1
Wszędzie używana jest ta biblioteka, hackage.haskell.org/package/data-category-0.5.1/docs/…
Chad Brewbaker
3
Które niestety nigdzie nie istnieje ...
Sjoerd Visscher
1
Sprawdź rozdział dotyczący teorii kategorii w podręczniku logiki w cs.
Kaveh

Odpowiedzi:

7

Weźmy relacje , . Niech , będą projekcjami z domenami ograniczonymi do relacji , . Następnie wycofanie , jest połączeniem i w sensie SQL.R0ZA0×ZA1R1ZA1×ZA2)π1:R0ZA1π0:R1ZA1R0R1π0π1R0R1

beroal
źródło
5

Dobrym przykładem jest generowanie optymalizacji kompilatora przez Tate i in. Na podstawie dowodów . Używa wycofań i wypychań jako uogólnionych związków i skrzyżowań w kategoriach, w których strzałki są podstawieniami (IIRC).

Ross Tate twierdzi (na papierowej stronie internetowej), że szczegóły były przytłaczające bez abstrakcji wynikającej z teorii kategorii. Osobiście chciałbym przedstawić jako „sugestywne dowody” (jeśli mogą istnieć jakiekolwiek dowody takiego twierdzenia) diagramy (6) i (7) w swojej pracy - wyglądają wystarczająco skomplikowane w formie schematu. Pozwolę sobie zacytować ich komentarze w tekście.

Niektórzy pytali nas, dlaczego w ogóle wyodrębniliśmy naszą technikę generalizacji dowodów i dlaczego wykorzystaliśmy teorię kategorii jako naszą abstrakcję. Jednak najpierw zaprojektowaliśmy algorytm abstrakcyjny, wykorzystując teorię kategorii, a następnie wykorzystaliśmy go, aby dowiedzieć się, jak rozwiązać nasz konkretny problem. Utknęliśmy z konkretnym problemem, przytłoczeni szczegółami i zmiennymi, a każde rozwiązanie, jakie mogliśmy wymyślić, wydawało się arbitralne. Aby odzwierciedlić i uprościć, postanowiliśmy kategorycznie sformułować nasze pytanie. Doprowadziło to do schematu źródeł i zlewów, więc użyliśmy wypychaczy i odciągów, aby skleić rzeczy. Największym wyzwaniem było wymyślenie uzupełnień wypychanych zamiast korzystania z istniejącej standardowej koncepcji. Kategoryczne sformułowanie było łatwe do sprecyzowania i uzasadnienia. Następnie utworzyliśmy instancję procesów abstrakcyjnych,

W rzeczywistości stwierdziliśmy, że ten proces abstrakcji do teorii kategorii, kiedy utkniemy, jest całkiem owocny. Nie tylko rozwiązuje to nasz konkretny problem, ale daje lepsze zrozumienie własnego problemu, a także abstrakcyjne rozwiązanie, które można łatwo dostosować do innych aplikacji. Zatem nasze doświadczenie sugeruje, że teoria kategorii może być przydatna w konstruowaniu rzeczywistych algorytmów, a także być użyteczna jako podstawa formalizacji. Bylibyśmy zainteresowani poznaniem innych podobnych doświadczeń, pozytywnych lub negatywnych.

Blaisorblade
źródło
4

W książce Spivaka na stronie 192 podaje przykład użycia kolimitów do tworzenia map tranzytowych . Ponadto, jego Aplikacja 5.2.1.2 omawia stosowanie łatek typu Liquibase do schematu bazy danych w miarę upływu czasu, a następnie używania kolimitów do uzasadnienia między starymi i nowymi danymi w uniwersalny sposób.

Chad Brewbaker
źródło
4

Szeroki zakres zastosowań obejmuje transformacje grafów (stosowane w inżynierii modelowej). Dwa odpowiednie artykuły są (podane z linkami do Google Scholar):

EDYCJA: ponownie (część) podstawową ideą jest to, że wypychacze działają jak połączenie z jakimś klejem. Umożliwia to zdefiniowanie „reguł przepisywania” dla wykresów - dopasowujesz lewą stronę do wykresu, a następnie przyklejasz prawą stronę do (reszty) wykresu w odpowiedni sposób. Obawiam się, że nie mogę dodać szczegółów, ponieważ nigdy nie dostałem więcej niż intuicję.

Blaisorblade
źródło
Lepszym wyjaśnieniem jest ta odpowiedź Dave'a Clarke'a: cstheory.stackexchange.com/a/947/989
Blaisorblade