Quais são os usos dos limites e colimites da teoria das categorias nos problemas cotidianos?

9

Estou interessado em saber como podemos usar os conceitos de limites e colimites na modelagem de problemas na vida cotidiana? Alguém poderia fornecer exemplos de engenharia (software), talvez? Ou descreva intuitivamente em geral para que tipos de problemas de modelagem podemos usar esses conceitos? Obrigado.

user221678
fonte
11
Everywhere esta biblioteca é utilizada, hackage.haskell.org/package/data-category-0.5.1/docs/...
Chad Brewbaker
3
O que infelizmente não está em lugar nenhum, em estado de ...
Sjoerd Visscher
11
Verifique o capítulo sobre teoria das categorias no manual de lógica em cs.
Kaveh

Respostas:

7

R0A0×A1R1A1×A2π1:R0A1π0:R1A1R0R1π0π1R0R1

beroal
fonte
5

Um bom exemplo são as Gerações de otimizações de compilador de Tate et al . Ele usa pullbacks e pushouts como uniões e cruzamentos generalizados, em categorias em que as setas são substituições (IIRC).

Ross Tate afirma (na página de papel) que os detalhes eram impressionantes sem a abstração oferecida pela teoria das categorias. Pessoalmente, eu gostaria de enviar como "evidência sugestiva" (se houver alguma evidência de tal afirmação) os diagramas (6) e (7) em seu artigo - eles parecem suficientemente complexos na forma de diagrama. Deixe-me citar seus comentários em linha.

Alguns nos perguntaram por que abstraímos nossa técnica de generalização de provas e por que usamos a teoria das categorias como nossa abstração. No entanto, nós realmente projetamos o algoritmo abstrato primeiro, usando a teoria das categorias e, em seguida, usamos isso para descobrir como resolver nosso problema concreto. Ficamos presos ao problema concreto, sobrecarregados pelos detalhes e pelas variáveis, e qualquer solução que pudéssemos pensar parecia arbitrária. Para refletir e simplificar, decidimos formular nossa pergunta categoricamente. Isso levou a um diagrama de fontes e sumidouros, então usamos apenas pushouts e pullbacks para colar as coisas. O maior desafio foi chegar a conclusões de pushout, em vez de usar algum conceito padrão existente. A formulação categórica foi fácil de especificar e argumentar. Depois, instanciamos os processos abstratos,

Na verdade, descobrimos que esse processo de abstração da teoria das categorias sempre que ficamos presos é bastante proveitoso. Além de resolver nosso problema concreto, acabamos entendendo melhor nosso próprio problema e também uma solução abstrata que pode ser facilmente adaptada a outras aplicações. Assim, nossa experiência sugere que a teoria das categorias pode ser útil na construção de algoritmos reais, além de ser útil como uma estrutura para formalização. Estaríamos interessados ​​em conhecer outras experiências semelhantes, positivas ou negativas.

Blaisorblade
fonte
4

No livro de Spivak, na página 192, ele dá um exemplo do uso de colimits para criar mapas de trânsito . Além disso, seu Aplicativo 5.2.1.2 discute a aplicação de patches do Liquibase a um esquema de banco de dados ao longo do tempo e, em seguida, o uso dos colimits para raciocinar entre dados antigos e novos de maneira universal.

Chad Brewbaker
fonte
4

Um amplo campo de aplicações está em transformações gráficas (aplicadas em engenharia orientada a modelos). Dois artigos relevantes são (fornecidos com links para o Google Scholar):

EDIT: novamente, (parte de) a ideia básica é que os pushouts agem como uma união com um pouco de cola. Isso permite definir "regras de reescrita" para gráficos - você combina o lado esquerdo com o gráfico e cola o lado direito no (restante) gráfico da maneira correspondente. Receio não poder acrescentar detalhes porque nunca tive mais do que a intuição.

Blaisorblade
fonte
Uma explicação melhor está nesta resposta de Dave Clarke: cstheory.stackexchange.com/a/947/989
Blaisorblade 5/15