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?
Respostas:
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.
fonte
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.
fonte
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.
fonte
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.
fonte
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 .]
fonte
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/ .
fonte
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.
fonte
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).
fonte
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.
fonte
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.
fonte
fonte
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.
fonte
Recentemente, exploramos (veja nosso artigo no springerlink: Uma unificação formal baseada em série das abordagens frequentes de mineração de conjuntos de itens ) uma tentativa de unificação para padronizar abordagens de mineração (uma instância popular de mineração de dados) por meio de séries formais e autômatos ponderados. Essas ferramentas são baseadas em mapeamentos entre monoides e estruturas de semicondutores.
fonte