Usos de estruturas algébricas em ciência da computação teórica

67

Sou especialista em software e estou escrevendo uma pesquisa sobre estruturas algébricas para pesquisa pessoal e estou tentando produzir exemplos de como essas estruturas são usadas na ciência da computação teórica (e, em menor grau, em outros subcampos da ciência da computação) .

Na teoria dos grupos, deparei-me com monoides sintáticos para linguagens formais e monoides de rastreamento e histórico para computação paralela / concorrente.

Do ponto de vista da teoria dos anéis, deparei-me com estruturas de semicondutores para processamento de gráficos e análise baseada em semicondutores.

Ainda não encontrei nenhum uso de estruturas algébricas da teoria dos módulos em minha pesquisa (e gostaria de).

Estou assumindo que existem outros exemplos e que simplesmente não estou procurando o lugar certo para encontrá-los.

Quais são alguns outros exemplos de estruturas algébricas dos domínios listados acima que são comumente encontrados na ciência da computação teórica (e em outros subcampos da ciência da computação)? Como alternativa, que periódicos ou outros recursos você pode recomendar para cobrir esses tópicos?

GEL
fonte
12
Isso parece bastante vasto. Todos os tipos de estruturas algébricas (grupos, anéis, semirriscos, semigrupos, campos) aparecem na ciência da computação teórica, e é generalizada o suficiente para que você tenha dificuldade em encontrar um subcomponente específico. Além disso, não esqueça de campos finitos para hash e muitos outros métodos aleatórios de impressão digital.
Suresh Venkat
3
Possivelmente qualquer coisa que possa ser representável tem um uso na Ciência da Computação!
vs

Respostas:

46

Minha impressão é que, em geral, a álgebra tradicional é bastante específica para uso em Ciência da Computação. Portanto, os cientistas da computação usam estruturas mais fracas (e, portanto, mais gerais), ou generalizam as estruturas tradicionais para que possam ajustá-las às suas necessidades. Também usamos muito a teoria das categorias, que os matemáticos não consideram parte da álgebra, mas não vemos por que não. Achamos a regulamentação da matemática tradicional em "álgebra" e "topologia" como ramos separados inconvenientes, mesmo sem sentido, porque a álgebra é geralmente de primeira ordem, enquanto a topologia tem uma chance de lidar com aspectos de ordem superior. Portanto, as estruturas usadas na Ciência da Computação têm álgebra e topologia. De fato, eu diria que elas tendem mais à topologia do que à álgebra. A organização do raciocínio em "álgebra" e "lógica" é outra divisão sem sentido do nosso ponto de vista, porque a álgebra lida com propriedades equacionais enquanto a lógica lida com todos os outros tipos de propriedades também.

Voltando à sua pergunta, semigrupos e monoides são usados ​​intensamente na teoria dos autômatos. Eilenberg escreveu uma coleção de dois volumes , o segundo dos quais é quase inteiramente álgebra. Me disseram que ele estava planejando quatro volumes, mas sua idade não permitiu que o projeto fosse concluído. Jean-Eric Pin tem uma versão modernizada de grande parte desse conteúdo em um livro on - line . Autômatos são "módulos monóides" (também chamados de ações monóides ou "atos"), que estão no nível certo de generalidade para a Ciência da Computação. Os módulos em anel tradicionais são provavelmente muito específicos.

A teoria da treliça foi uma força importante no desenvolvimento da semântica denotacional. A topologia foi misturada à teoria das redes quando os cientistas da computação, em conjunto com os matemáticos, desenvolveram redes contínuas e as generalizaram em domínios . Eu diria que a teoria do domínio é a matemática dos próprios cientistas da computação, da qual a matemática tradicional não tem conhecimento.

A álgebra universal é usada para definir especificações algébricas de tipos de dados . Chegando lá, os cientistas da computação imediatamente descobriram a necessidade de lidar com propriedades mais gerais: equações condicionais (também chamadas de cláusulas de Horn equacional) e propriedades lógicas de primeira ordem, ainda usando as mesmas idéias da álgebra universal. Como você observaria, a álgebra agora se funde na teoria dos modelos.

A teoria das categorias é a base da teoria dos tipos. Enquanto os cientistas da computação continuam inventando novas estruturas para lidar com vários fenômenos computacionais, a teoria das categorias é uma estrutura muito reconfortante para colocar todas essas idéias. Também usamos estruturas ativadas pela teoria das categorias, que não existem na matemática "tradicional", como as categorias de functor. Além disso, a álgebra volta à cena de um ponto de vista categórico no uso de mônadas e teorias algébricas de efeitos . As coalgebras , que são os duplos das álgebras, também encontram muita aplicação.

Portanto, existe uma aplicação abrangente de "álgebra" na Ciência da Computação, mas esse não é o tipo de álgebra encontrada nos livros tradicionais de álgebra.

a:XYa:XYb:YZab:XZn×nm×nmn

Uday Reddy
fonte
24
Os teóricos das categorias pensam na álgebra como parte da teoria das categorias. Os algebristas pensam na teoria das categorias como parte da álgebra. Os lógicos pensam que são loucos.
31412 Jefferson
4
existe muita interação entre topologia e álgebra em matemática pura ...
Sasho Nikolov 31/03
16
Essa é uma boa resposta, mas acho que seus comentários sobre "regimento" e "cultura de silo" são enganosos. A razão pela qual álgebra, topologia e lógica parecem unificadas para você é que, para as questões de seu interesse , as partes desses assuntos que são relevantes para você estão intimamente entrelaçadas. Mas se, por exemplo, você tentasse classificar variedades quadridimensionais sobre números complexos, veria rapidamente a utilidade das distinções tradicionais que os matemáticos fazem. Tudo depende do problema que você está tentando resolver.
Timothy Chow
3
Pessoalmente, ainda estou totalmente perplexo com praticamente qualquer inferência que você faz sobre a cultura de pesquisa em matemática e ciências da computação. Como o @TimothyChow aponta, diferentes subcampos foram desenvolvidos para lidar com diferentes tipos de problemas e, portanto, diferentes ferramentas foram desenvolvidas. Onde faz sentido trazer ferramentas de diferentes subcampos, e as pessoas perceberam isso, há interação. Não deve ser difícil encontrar exemplos, por exemplo, em quaisquer notas de aula sobre álgebra de mentiras.
Sasho Nikolov 06/04/12
3
no que diz respeito ao fato de haver menos cultura de silos na ciência da computação, eu também discordo. Pessoalmente, não tenho ideia de por que os pesquisadores de PL precisam de todo esse maquinário pesado, para que o utilizam, que problema resolvem com ele e por que devo me importar. Talvez seja a minha própria ignorância, mas eu duvido que a maioria dos teóricos da complexidade e algorithmicists saber as respostas a estas perguntas ...
Sasho Nikolov
23

Minha aplicação favorita de todos os tempos da teoria dos grupos no TCS é o Teorema de Barrington. Você pode encontrar uma exposição desse teorema no blog de complexidade e a exposição de Barrington na seção de comentários desse post.

Dai Le
fonte
2
+1: e muitos o consideram um dos resultados mais surpreendentes da teoria da complexidade. :)
Kaveh
15

Grupos, anéis, campos e módulos estão em toda parte na topologia computacional. Veja especialmente o trabalho de Carlsson e Zomorodian [ex: 1 ] sobre homologia persistente (multidimensional), que trata de módulos classificados nos principais domínios ideais.

Jeffε
fonte
@ Jeff, links, por favor.
Scaaahu 31/03
11
@ Jeff, meu comentário não foi para ser ofensivo. Sim, eu sei como o Google. Meu argumento foi: existe algum artigo específico escrito por Carlsson e Zomorodian, que seria uma espécie de visão geral da homologia persistente? Se houver, informe-nos. Obrigado.
Scaaahu 31/03
Sugiro começar com este artigo . (Desculpe, o meu comentário anterior foi desnecessário.)
Jeffε
@ Jeff, entendi exatamente o que eu estava procurando. Obrigado.
Scaaahu 31/03
14

Aqui está um uso prático e muito agradável: um algoritmo para calcular a conectividade gráfica (do FOCS2011 ). Para calcular a conectividade s-> t de um gráfico, os autores fornecem um algoritmo que atribui vetores aleatórios com entradas desenhadas de um campo finito para as arestas externas de s e constrói vetores semelhantes para todas as arestas do gráfico, usando combinações lineares e, finalmente, descubra a conectividade calculando a classificação dos vetores resultantes atribuídos às bordas de t.

Aaron Roth
fonte
Obrigado pelo ponteiro e visão geral! Isto foi do FOCS 2011: dx.doi.org/10.1109/FOCS.2011.55
András Salamon
12

Malhas e pontos fixos estão nas bases da análise e verificação do programa. Embora resultados avançados da teoria da rede sejam raramente usados, porque estamos preocupados com questões algorítmicas, como computação e aproximação de pontos fixos, enquanto a pesquisa na teoria da rede tem um foco diferente (conexões com a topologia, teoria da dualidade etc.). Os trabalhos iniciais de interpretação abstrata usam a teoria básica da rede. O trabalho de Roberto Giacobazzi e seus colaboradores utiliza resultados mais avançados.

Na computação distribuída, uma célebre família de resultados impossíveis foi derivada usando métodos de topologia algébrica (veja o trabalho de Maurice Herlihy e Nir Shavit).

[Editar: Veja Aplicações de Topologia em Ciência da Computação .]

Vijay D
fonte
12

A álgebra universal é uma ferramenta importante no estudo da complexidade dos problemas de satisfação de restrições.

Por exemplo, a Conjectura de Dicotomia afirma que, grosso modo, um problema de satisfação de restrição em um domínio finito é solucionável em tempo completo NP ou polinomial. Observe que, pelo teorema de Ladner, existem problemas em PN que não estão em P e não estão completos em PN, a menos que P = NP, de modo que a conjectura diz que os CSPs são especiais em ter uma dicotomia que as classes de maior complexidade não possuem. Também forneceria algumas explicações sobre por que a maioria dos problemas que encontramos na prática pode ser classificada como NP-completa ou em P.

Dicotomias foram comprovadas para vários casos especiais, por exemplo, CSPs de domínio binário (Schaefer) e CSPs de domínio ternário (Bulatov), ​​e homomorfismos em gráficos não direcionados (Hell e Nesetril). Mas o caso geral é bastante aberto. Uma das principais linhas de ataque é através da álgebra universal. Muito grosso modo (e definitivamente não sou especialista nisso!), Define-se um polimorfismo do CSP como uma função no domínio do CSP, que deixa satisfeitas todas as restrições satisfeitas se for aplicado a cada variável. O conjunto de polimorfismos de um CSP, em certo sentido, captura sua complexidade. Por exemplo, se um CSP A admite todos os polimorfismos de um CSP B, então A é um tempo polinomial redutível a B. O conjunto de polimorfismos forma uma álgebra, cuja estrutura parece útil para a definição de algoritmos / exibição de reduções. Por exemplo, se a álgebra de polimorfismo de um CSP é idempotente e admite o tipo unário, o CSP é NP completo. Idempotência é uma suposição simplificadora que pode ser feita mais ou menos sem perda de generalidade. Mostrar que um CSP cuja álgebra é idempotente e não admite que o tipo unário possa ser resolvido em tempo polinomial provará a conjectura da dicotomia.

Veja a pesquisa de Bulatov: http://www.springerlink.com/content/a553847g6h673k05/ .

Sasho Nikolov
fonte
11

Aqui estão dois aplicativos de uma parte diferente do TCS.

Os semirriscos são usados ​​para modelar anotações em bancos de dados (especialmente aqueles necessários para proveniência), e geralmente também para as estruturas de avaliação com satisfação de restrição avaliada. Em ambas as aplicações, os valores individuais devem ser combinados de maneiras que conduzam naturalmente a uma estrutura de semicondutores, com a associatividade e a operação de semicondutores distribuídas sobre a outra. Em relação à sua consulta sobre módulos, nenhum dos monóides possui um inverso nessas aplicações, em geral.

András Salamon
fonte
10

Anéis, módulos e variedades algébricas são usadas na correção de erros e, mais geralmente, na teoria de codificação.

Especificamente, existe um esquema abstrato de correção de erros (códigos de geometria algébrica) que generaliza os códigos Reed-Solomon e os códigos chineses Remainder. O esquema é basicamente levar suas mensagens para um anel R e codificá-lo, tomando seus resíduos de módulo com muitos ideais diferentes em R. Sob certas suposições sobre R, pode-se provar que isso comete um código decente de correção de erros.

No mundo da decodificação de listas, um artigo recente de Guruswami fornece um método algébrico linear de códigos de Reed-Solomon dobrados, que possui a boa propriedade de que todas as mensagens candidatas se encontram em um subespaço afim de baixa dimensão do espaço de mensagens . Pode-se construir conjuntos evasivos do subespaço , conjuntos quase tão grandes quanto o espaço inteiro, mas que possuem uma pequena interseção com todos os subespaços afins de baixa dimensão. Se alguém restringir as mensagens a partir de um conjunto evasivo do subespaço dentro do espaço de mensagens, o esquema de Guruswami fornece um algoritmo que garante o tamanho da lista. Até agora, a única construção explícita de conjuntos evasivos do subespaço é dada por Dvir e Lovett em seu próximo artigo STOC, Sets Evasivos do Subespaço e construa o conjunto tomando uma variedade afim específica (e levando consigo seu produto cartesiano).

Alan Guo
fonte
6

Confira a Teoria de Ramsey - basicamente uma generalização significativa do princípio do buraco de pombo, subjacente a muitos autômatos e à teoria formal da linguagem (ou devo dizer, o princípio do buraco de pombo é o caso mais simples da Teoria de Ramsey). Basicamente, diz que mesmo estruturas altamente desordenadas acabam necessariamente contendo muita ordem, se forem suficientemente grandes. Para um pequeno exemplo, além do princípio do buraco de pombo, observe que, se você levar seis pessoas, três delas se conhecerão mutuamente ou três delas não se conhecerão.

Este artigo parece um bom lugar para começar conexões com ciência da computação, mas você pode procurar no Google por mais. É mais combinatório que algébrico em sua natureza básica, mas tem muitas aplicações em álgebra e CS teórico.

E também confira a história do inventor, Frank Ramsey - verdadeiramente um polímata notável que fez contribuições fundamentais, até revolucionárias, em economia e filosofia, além de matemática, muitas não apreciadas até muito mais tarde, todas antes de morrer aos 26 anos - pense! De fato, o teorema original de Ramsey, a base da Teoria de Ramsey, era um mero lema em um artigo com um objetivo maior na lógica matemática.

David Lewis
fonte
2
isso é coisa clássica combinatória extremal, estou me perguntando onde você vê a conexão com a álgebra? (i não debater essa teoria Ramsey é uma fonte de grandes problemas e teoremas)
Sasho Nikolov
SAk>=2nwA+neSw=xu1...unyx,yAu¯i=e
não estou contestando a relevância da teoria de Ramsey, e muito menos da teoria dos grafos, para tcs. estou dizendo que o OP perguntado sobre aplicações da álgebra e da teoria de Ramsey não é algo geralmente associado à álgebra, afaik. mas desde que você parece ter alguma teoria conexão Ramsey -> álgebra -> TCS em mente, talvez você pode acrescentar que a sua resposta
Sasho Nikolov
@ Sasho - Se você quer dizer que a teoria de Ramsey não é um tópico de álgebra, então minha resposta é fora da base, então você está 100% correto. Peço desculpas pela minha resposta. Eu acho que minha mente tende a atravessar fronteiras disciplinares e subdisciplinares com bastante facilidade. Mas é pior do que isso - a Teoria de Ramsey não é de forma alguma uma "estrutura algébrica". Por favor, sinta-se livre para votar minha resposta. Saudações.
David Lewis
bem, embora talvez a redução de votos seja lógica, eu amo combinações extremas, então não vou :) BTW, tenho certeza de que existem alguns fenômenos do tipo ramsey que ocorrem com estruturas algébricas, talvez até em "densidades" mais baixas por causa da simetrias, então você está me dando uma idéia sobre uma questão
Sasho Nikolov
5

A análise de qualquer problema com muita simetria é facilitada usando a teoria de grupos. Um exemplo seria encontrar algoritmos para coisas como o cubo de rubic. Embora eu não conheça os detalhes, tenho certeza de que provar que o número de Deus é 20 exigiu uma séria poda teórica em grupo. Em um contexto diferente, os solucionadores práticos para problemas de isomorfismo de grafos como nauty usam o grupo automorfismo do gráfico.

Shitikanth
fonte
Além disso, os algoritmos para isomorfismo de grafos [Luks '81; Babai - Luks '82], com as garantias mais conhecidas (ou seja, funciona em teoria, mas pode ser ineficiente na prática), usa muito a teoria dos grupos, invocando até a classificação de grupos simples finitos.
Joshua Grochow
5

Zp

Pratyush Mishra
fonte
11
Pelo que entendi, existem outras estruturas algébricas (campos finitos, anéis e outras estruturas) sendo usadas na Criptografia moderna - que está gradualmente abandonando a teoria dos números e se concentrando mais em redes, códigos de correção de erros e problemas "resistentes a quantum".
josh
1

Na programação funcional, as abstrações mais gerais e elegantes para os problemas geralmente são de natureza algébrica (ou teórica por categoria): monóides, semirrecursos , functores, mônadas, álgebras-F, álgebras-F-coalgebras, etc. Alguns resultados clássicos (por exemplo, o Yoneda lema) possuam conteúdo e utilidade computacionais.

Além disso, existe a teoria dos tipos de homotopia, que interpreta a teoria dos tipos em (mais ou menos) um cenário topológico algébrico.

xrq
fonte