Name: | Description: | Size: | Format: | |
---|---|---|---|---|
1.28 MB | Adobe PDF |
Authors
Advisor(s)
Abstract(s)
Atualmente a principal aplicação de software para semigrupos é a package de GAP
chamada Semigroups [29], em articulação com a package Smallsemi [13]. O GAP [17]
é um sistema e linguagem de programação para álgebra discreta computacional. Embora
estas packages ofereçam muitas opções de cálculo e forneçam uma biblioteca de todos
os semigrupos até o tamanho 8, várias operações de semigrupos importantes não estão
disponíveis. Em parte, isto deve-se ao facto de a arquitetura subjacente ser voltada para a
teoria de grupos e os semigrupos frequentemente requerem técnicas algorítmicas que são
mais próximas das empregadas na Álgebra Universal do que daquelas usadas em grupos.
Existem maneiras de construir álgebras a partir das existentes (produtos diretos etc.),
mas a operação inversa é crítica: decompor uma dada álgebra em outras menores. Este tipo
de decomposição é especialmente importante em semigrupos, pois mesmo a estrutura de
semigrupos muito pequenos pode ser muito obscura.
Até agora não existe uma ferramenta computacional geral para decompor semigrupos.
Por exemplo, o GAP já contém código para encontrar todas as congruências de classes muito
particulares de semigrupos, mas está muito longe de fornecer um método geral. A situação é
ainda pior em relação aos endomorfismos. O objetivo da package CREAM (Algebra CongRuences, Endomorphisms and AutomorphisMs) é resolver esta situação implementando algoritmos eficientes para calcular congruências, endomorfismos e automorfismos de álgebras
do tipo (2m, 1 n). Vários algoritmos gerais (como em [15]) serão adaptados para o contexto da teoria de semigrupos e mais geralmente para álgebras do tipo (2m, 1 n ) cobrindo assim
grupos e semigrupos mas também álgebras unárias e também loops, campos, anéis, semianéis, álgebras de Lie, MV-álgebras, Meadows, álgebras de lógica, etc. Estes algoritmos
serão implementados em GAP. Isso incluirá as seguintes questões:
• Dada uma álgebra finita A do tipo (2m, 1 n ), encontrar todas as congruências de A,
pelo menos tão rápido quanto os programas existentes (ou seja, o código produzido
será geral e pelo menos tão rápido quanto o código que existe para classes específicas
de álgebras apenas);
• Dada uma álgebra finita A do tipo (2m, 1 n ), encontrar todos os endomorfismos de
A; em particular, o código deve calcular efetivamente os automorfismos de A, uma ferramenta que essencialmente existe apenas para grupos.
Uma álgebra universal é uma estrutura algébrica que consiste num conjunto A e numa
coleção de operações sobre A. Uma operação n-aria sobre A é uma função que tem como
entrada um n-tuplo de elementos de A e retorna um elemento de A. Neste contexto só estão
a ser consideradas operações com aridade 1 ou 2, i.e. operações unárias e binárias. Uma
álgebra do tipo (2m, 1 n ) é uma álgebra universal com m operações binárias e n unárias.
Este uso genérico da package CREAM depende de teoremas de álgebra universal.
Isto tem custos, pois teoremas de tipos específicos de álgebras (e.g. grupos, semigrupos,
etc) não podem ser usados para reduzir o espaço de procura e melhorar a performance.
Canon e Holt [10], usaram vários algoritmos inteligentes e teoremas específicos de grupos
para produzir código mais rápido que a package CREAM a calcular automorfismos de
grupos com ordens maiores. Analogamente, Mitchell et al. [29] usaram teoremas da teoria
de semigrupos para calcular eficazmente automorfismos e congruências de semigrupos
completamente 0-simples. Mas estes estão entre os poucos casos de código GAP disponível
que é mais rápido que a package CREAM que é de uso mais generalizado. Para a maioria
de outras classes de álgebras de tipo (2m, 1 n ) a package CREAM é mais rápida a calcular
auto[endo]morfismos/congruências. Um dos algoritmos principais implementado na package é o algoritmo de Freese descrito em [15] que calcula congruências principais para uma
álgebra universal. Para chegar a esta performance a package CREAM usa uma mistura de algoritmos
standard de álgebra universal juntamente com ferramentas de procura eficiente por modelos
finitos de fórmulas de primeira ordem e a implementação de partes de código em C.
Em geral, calcular congruências de álgebras é uma tarefa difícil. Existem vários teoremas
descritivos para diferentes tipos de álgebra e algumas ferramentas computacionais para
calcular congruências para álgebras finitas, mas geralmente essas ferramentas são aplicáveis
a um conjunto muito específico e estreito de álgebras. O nosso objetivo era fornecer
uma ferramenta eficaz para calculá-los para álgebras finitas do tipo (2m, 1 n ) abrangendo
um conjunto muito amplo de álgebras, incluindo a maioria dos tipos e classes de álgebra
atualmente estudados. O algoritmo usado foi o algoritmo de Freese cuja eficiência depende
em muito da representação das álgebras e congruências. Em especial a representação
de partições/congruências como um array é determinante na eficiência do cálculo das
congruências principais uma vez que permite uma junção de blocos muito rápida, uma das
operações mais utilizadas durante a execução do algoritmo de congruências. Além disso a
representação usada não limita o âmbito geral das álgebras suportadas.
No âmbito deste doutoramento vários algoritmos para o cálculo de automorfismos
foram testados e a conclusão foi que o algoritmo mais promissor foi um algoritmo que usa invariantes das operações das álgebras para limitar os possíveis automorfismos da álgebra.
Este algoritmo é usado na package Loops cuja implementação foi usada como guia tendo
o seu âmbito sido expandido para suportar não só magmas mas qualquer álgebra do tipo
(2 m, 1 n ). A implementação final dos algoritmos de automorfismos usando a abordagem
de invariantes foi contribuída para a package CREAM por Choiwah Chow com base nas
conclusões e no trabalho realizado no âmbito deste doutoramento.
Dada a falta de referências sobre algoritmos para calcular endomorfismos, o algoritmo
para calcular endomorfismos usado na package CREAM foi definido usando teoremas básicos de álgebra universal como o teorema do homomorfismo, para relacionar congruências,
álgebras quocientes, subálgebras e endomorfismos. O algoritmo foi desenvolvido usando os
algoritmos de congruências e automorfismos implementados, e uma aplicação denominada
MACE4. O MACE4 [27] é uma aplicação de linha de comando que procura modelos finitos
de fórmulas de primeira ordem.
Embora o GAP seja adequado para prototipagem e implementação rápida de algoritmos,
o código resultante não é muito rápido devido ao facto de ser uma linguagem interpretada.
Reescrever o código em C permitiu melhorias surpreendentes que alcançaram uma melhoria
de até 670 vezes do código GAP para o código C.
Além disso, a integração com o MACE4 permite combinar a eficiência de algoritmos
como [15], com um amplo conjunto de possibilidades fornecidas por uma ferramenta
eficiente na procura por modelos finitos de fórmulas de primeira ordem, dando uma
flexibilidade muito grande à package CREAM.
A package CREAM é em média 20 vezes mais rápida no cálculo de congruências
dos tipos de semigrupos muito limitados que são suportados pela função CongruencesOfSemigroups da package Semigroups que é a função mais abrangente em GAP para o
cálculo de congruências. A única aplicação que possui um âmbito semelhante em termos de
álgebras suportadas é a interface de linha de comando UACalc, mas faz isso em jython, sem
beneficiar do ecossistema existente na plataforma GAP. Quando comparado com o UACalc,
o package CREAM é consistentemente mais de 3 vezes mais rápido.
Relativamente a automorfismos e endomorfismos, a comparação com outras bibliotecas/aplicativos é muito difícil, uma vez que o suporte é limitado principalmente a grupos
e outras estruturas algébricas intimamente relacionadas com grupos. Para essas álgebras,
o desempenho das packages GAP Loops e Sonata são comparáveis e às vezes melhores
do que a package CREAM. Essas bibliotecas por vezes contam com o uso de teoremas
específicos para essas álgebras. Mas apenas a package CREAM suporta a maioria das
álgebras estudadas em álgebra convencional e moderna. Dada a importância das congruências, automorfismos e endomorfismos para o estudo de
estruturas algébricas, espera-se que a package CREAM com seu desempenho e versatilidade
possa ser uma ferramenta útil para a comunidade GAP e um amplo grupo de matemáticos.
O código resultante está disponível como o pacote GAP CREAM que está totalmente
documentado.
While there are efficient algorithms to decompose very particular classes of semigroups, groups and quasigroups, there are no similar facilities available for the more general algebraic structures such as algebras of type (2m, 1 n ), with an arbitrary number of binary and unary operations. In this thesis, its presented the GAP package CREAM (Algebra CongRuences, Endomorphisms and AutomorphisMs) that provides efficient algorithm implementations to calculate congruences, endomorphisms and automorphisms of algebras of type (2m, 1 n ) covering groups and semigroups but also unary algebras, and loops, fields, rings, semi-rings, MV-algebras, Meadows, algebras of logic, etc. An universal algebra is an algebraic structure consisting of a set A together with a collection of operations on A. An n-ary operation on A is a function that takes n-tuple of elements from A and returns a single element of A. In the current scope are only considered operations with arity of 1 or 2, i.e. unary and binary operations. An algebra of type (2 m,1 n ) is a universal algebra with m binary and n unary operations. This general applicability of the CREAM package relies on universal algebra theorems. This comes with a cost since theorems on specific types of algebras (e.g. groups, semigroups, etc) cannot be used to reduce the search space and enhance performance. Canon and Holt, using a mix of smart algorithms and specific group theorems, produced fast code to compute automorphisms of groups that is faster than CREAM on large orders. Similarly, Mitchell et al. used semigroup theory theorems to compute in a very effective way automorphisms and congruences of completely 0-simple semigroups. But these are among the few cases of known GAP code that are faster than our general purpose package CREAM. For most other classes of algebras of type (2m, 1 n ), CREAM is faster computing auto[endo]morphisms/congruences. One core algorithm implemented in the package is Freese’s algorithm [15] that calculates principal congruences for a universal algebra. To get this performance, CREAM uses a mixture of standard universal algebra algorithms together with tools that can search efficiently for finite models of first-order formulas and the implementation of parts of the code in C.
While there are efficient algorithms to decompose very particular classes of semigroups, groups and quasigroups, there are no similar facilities available for the more general algebraic structures such as algebras of type (2m, 1 n ), with an arbitrary number of binary and unary operations. In this thesis, its presented the GAP package CREAM (Algebra CongRuences, Endomorphisms and AutomorphisMs) that provides efficient algorithm implementations to calculate congruences, endomorphisms and automorphisms of algebras of type (2m, 1 n ) covering groups and semigroups but also unary algebras, and loops, fields, rings, semi-rings, MV-algebras, Meadows, algebras of logic, etc. An universal algebra is an algebraic structure consisting of a set A together with a collection of operations on A. An n-ary operation on A is a function that takes n-tuple of elements from A and returns a single element of A. In the current scope are only considered operations with arity of 1 or 2, i.e. unary and binary operations. An algebra of type (2 m,1 n ) is a universal algebra with m binary and n unary operations. This general applicability of the CREAM package relies on universal algebra theorems. This comes with a cost since theorems on specific types of algebras (e.g. groups, semigroups, etc) cannot be used to reduce the search space and enhance performance. Canon and Holt, using a mix of smart algorithms and specific group theorems, produced fast code to compute automorphisms of groups that is faster than CREAM on large orders. Similarly, Mitchell et al. used semigroup theory theorems to compute in a very effective way automorphisms and congruences of completely 0-simple semigroups. But these are among the few cases of known GAP code that are faster than our general purpose package CREAM. For most other classes of algebras of type (2m, 1 n ), CREAM is faster computing auto[endo]morphisms/congruences. One core algorithm implemented in the package is Freese’s algorithm [15] that calculates principal congruences for a universal algebra. To get this performance, CREAM uses a mixture of standard universal algebra algorithms together with tools that can search efficiently for finite models of first-order formulas and the implementation of parts of the code in C.
Description
Keywords
Congruências Morfismos Álgebra universal GAP Congruences Morphisms Universal Algebra
Citation
Pereira, Rui Barradas - Computing congruences and endomorphisms for algebras of type (2m, 1n) [Em linha]. [S.l.]: [s.n.]. 2022. 171 p.