A análise e compreensão das estratégias de ordenação são tarefas corriqueiras no processo de aprendizagem de complexidade computacional. Os métodos mais clássicos são debatidos e suas respectivas complexidades teóricas são confrontadas, porém muitas vezes, não há um aprofundamento e muitas características relevantes de determinadas técnicas são deixadas de lado não ocorrendo um confrontamento prático desses métodos. Além disso não existe disponível, ate o momento, uma ferramenta gratuita para aferição da complexidade das estratégias de ordenação que leve em consideração a natureza das amostras a serem classificadas. Para preencher essa lacuna propomos um Assistente de Avaliação de Estratégias de Ordenação que possui como principais funcionalidades a geração de aglomerados numéricos aleatórios, a execução de determinadas estratégias sobre esses aglomerados e a exibição do esforço computacional e temporal necessários a execução.
1. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação
SysSorting Professional :: Um Assistente de Avaliação de Estratégias de Ordenação :: Engenharia de Software II :: Prof. Arturo Hernández Domínguez
SysSorting Professional
Um Assistente de Avaliação de Estratégias de Ordenação
Michel Alves dos Santos
Universidade Federal de Alagoas, Campus A. C. Simões
Tabuleiro do Martins - Maceió - AL, CEP: 57072-970
Docente Responsável: Prof. Dr. Arturo Hernández
{michel.mas,michel.al.santos}@gmail.com
05 de Dezembro de 2011
Michel Alves dos Santos: Bacharelando em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
2. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação
SysSorting Professional :: Um Assistente de Avaliação de Estratégias de Ordenação :: Engenharia de Software II :: Prof. Arturo Hernández Domínguez
Motivação
Analisando a Motivação
Tarefa corriqueira no processo de aprendizagem de
complexidade computacional.
Busca pelas vertentes oficiais das estratégias mais
clássicas.
Dificuldades para compreensão de avaliações
meramente teóricas.
Ausência de uma ferramenta para avaliação gráfica.
Michel Alves dos Santos: Bacharelando em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
3. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação
SysSorting Professional :: Um Assistente de Avaliação de Estratégias de Ordenação :: Engenharia de Software II :: Prof. Arturo Hernández Domínguez
O Sistema
SysSorting Professional
A ferramenta foi concebida para verificar o número de instruções
executadas em aglomerados numéricos aleatórios, crescentes e
decrescentes, além do tempo consumido nessas operações.
A ferramenta possui as seguintes funcionalidades
Geração de aglomerado numérico aleatório;
Escolha da distribuição para geração do aglomerado numérico;
Escolha do método ou estratégia de ordenação.
Michel Alves dos Santos: Bacharelando em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
4. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação
SysSorting Professional :: Um Assistente de Avaliação de Estratégias de Ordenação :: Engenharia de Software II :: Prof. Arturo Hernández Domínguez
Fluxograma
Fluxograma de Interação com o Sistema
Michel Alves dos Santos: Bacharelando em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
5. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação
SysSorting Professional :: Um Assistente de Avaliação de Estratégias de Ordenação :: Engenharia de Software II :: Prof. Arturo Hernández Domínguez
Componente - LibraryTime
Utilizada para executar aferições sobre o esforço computacional necessário para
realização de uma determinada tarefa. As respectivas complexidades teóricas são
confrontadas levando em consideração o tempo necessário para sua execução
completa e o tempo consumido.
Tempos obtidos através da geração pseudo-aleatória e aplicação do algoritmo shell sort em aglomerado numérico (aleatório, crescente
e decrescente) com cardinalidade igual a 100000. Aglomerado composto por números reais gerados através de congruência linear.
Michel Alves dos Santos: Bacharelando em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
6. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação
SysSorting Professional :: Um Assistente de Avaliação de Estratégias de Ordenação :: Engenharia de Software II :: Prof. Arturo Hernández Domínguez
Componente - LibraryRandom
Para testar os limites teóricos das estratégias de ordenação e para verificar a
robustez das mesmas, os números empregados devem possuir natureza e origem
‘aleatórias’!
Gerador Periodicidade Tipo
Linear Congruential Generator [glibc - gcc] 232 Congruente Linear
Linear Congruential Generator [MMIX by Donald Knuth] 264 Congruente Linear
R250 2250 − 1 Deslocamento de Registro
Mersenne Twister 219937 − 1 Deslocamento de Registro
Michel Alves dos Santos: Bacharelando em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
7. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação
SysSorting Professional :: Um Assistente de Avaliação de Estratégias de Ordenação :: Engenharia de Software II :: Prof. Arturo Hernández Domínguez
Componente - LibrarySorting
Os seguintes algoritmos foram implementados e avaliados confrontando suas
respectivas complexidades teóricas e suas aplicações práticas:
Bubble Sort
Gnome Sort
Shaker Sort
Comb Sort
Insertion Sort
Selection Sort
Shell Sort
Heap Sort
Quick Sort
Merge Sort
Michel Alves dos Santos: Bacharelando em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
8. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação
SysSorting Professional :: Um Assistente de Avaliação de Estratégias de Ordenação :: Engenharia de Software II :: Prof. Arturo Hernández Domínguez
Arquitetura em Camadas
Michel Alves dos Santos: Bacharelando em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
9. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação
SysSorting Professional :: Um Assistente de Avaliação de Estratégias de Ordenação :: Engenharia de Software II :: Prof. Arturo Hernández Domínguez
Resultados
Analisando o Quadro de Classificação
Classificação
Algoritmo Tempo
Bubble 166.785s
Gnome 158.188s
Shaker 143.156s
Comb 142.328s
Insertion 81.765s
Selection 68.204s
Shell 1.281s
Heap 1.235s
Quick 1.234s
Merge 1.375s Bubble Gnome Shaker Comb Insertion Selection Shell Heap Quick Merge
050100150
Algoritmos
Bubble
Gnome
Shaker
Comb
Insertion
Selection
Shell
Heap
Quick
Merge
Tempos obtidos através da aplicação dos respectivos algoritmos em aglomerados numéricos aleatórios com cardinalidade igual a
100000. Aglomerados compostos por números reais gerados através de congruência linear.
Michel Alves dos Santos: Bacharelando em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
10.
11.
12.
13.
14. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação
SysSorting Professional :: Um Assistente de Avaliação de Estratégias de Ordenação :: Engenharia de Software II :: Prof. Arturo Hernández Domínguez
Conclusões
Balanço Geral da Análise
Algoritmos de ordenação quadráticos possuem baixa complexidade de
implementação porém pecam no quesito desempenho.
Algoritmos de ordenação do tipo ‘dividir-para-conquistar’ são as melhores
opções, porém devemos estar atentos aos casos degenerativos.
Possíveis Extensões da Ferramenta
Ordenação Multi-Thread/Uso de Paralelismo;
Inserção de gráfico de desempenho acumulativo;
Ordenação Distribuída/Uso de Middleware;
Transformação dos algoritmos de ordenação em plugins.
Michel Alves dos Santos: Bacharelando em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL
15. Universidade Federal de Alagoas - UFAL - Campus A. C. Simões - Tabuleiro do Martins - Maceió - AL, CEP: 57072-970 - Instituto de Computação
SysSorting Professional :: Um Assistente de Avaliação de Estratégias de Ordenação :: Engenharia de Software II :: Prof. Arturo Hernández Domínguez
Referências Bibliográficas
G. Booch, R. J., and I. Jacobson.
UML: Guia do Usuário, volume 1.
Editora Campus, 2 edition, 2006.
C. Larman.
Utilizando UML e padrões: Uma introdução à análise e ao projeto orientados a objetos.
Bookman, 1 edition, 2000.
C. Larman.
Utilizando UML e padrões: Uma introdução à análise e ao projeto orientados a objeto e ao
desenvolvimento iterativo, volume 1.
Bookman, 3 edition, 2007.
I. Sommerville.
Engenharia de Software.
Pearson Addison Wesley, 8 edition, 2007.
Grato Pela Atenção!
Michel Alves - michel.mas@gmail.com
Michel Alves dos Santos: Bacharelando em Ciência da Computação Instituto de Computação - Bloco 12 - Campus A. C. Simões - UFAL