Projeto I
O objetivo do projeto é implementar um Algoritmo existente para o problema de string matching exato ou aproximado.
Equipes
O projeto deve ser realizado em duplas.
Escolha de temas
Cada equipe deve escolher um algoritmo para ser implementado e apresentado.
O algoritmo escolhido deve ter sido publicado na forma de uma [parte de] um artigo científico.
Além dos livros-texto, as seguintes referências podem ser utilizadas para escolha do tema:
- Charras e Lecrocq. Handbook of exact string-matching algorithms.
- Navarro. A guided tour to approximate string matching. ACM Cump. Surv. 33(1), 2001.
IMPORTANTE: Uma vez escolhido o tema, a equipe deve informar o professor responsável para que o mesmo seja listado no quadro abaixo, evitando repetições.
Avaliação
A avaliação será feita com base na implementação (50%) e apresentação (50%) do algoritmo, levando-se em conta a dificuldade do algoritmo escolhido como tema.
Material a ser entregue
- O código-fonte do algoritmo. O código deve ser o mais auto-contido possível, dependente apenas das bibliotecas standard da linguagem escolhida.
- Os arquivos de entrada usados na demonstração.
- A apresentação em formato PDF
Formato da apresentação
A apresentação terá duração de 30min por equipe, mais 5min para perguntas do professor e dos colegas.
A apresentação deve basear-se tanto quanto possível no artigo original, seguindo o seguinte roteiro:
Ao final da apresentação deve ser feita uma demonstração ao vivo da implementação. A equipe deve tomar previamente as providências quanto ao ambiente de execução e o tempo necessário para a execução do programa, escolhendo entradas representativas de tamanho adequado.
Toda a equipe deve estar preparada para responder perguntas sobre a apresentação, sobre o código e sobre o artigo original.
Datas
- 08/12/13: Formação das duplas e escolha do tema
- 18/12/13: Sorteio da ordem de apresentação
- 03/01/14: Entrega do material (TODOS os grupos)
- 06/01/14 13-15h: Apresentações 1, 2, 3
- 08/01/14 15-17h: Apresentações 4, 5, 6
- 13/01/14 13-15h: Apresentações 7, 8, 9
- 15/01/14 15-17h: Apresentações 10, ...
Projetos
Horspool |
Diogo Nóbrega (davn)
Walber Nunes (wna) |
Artigo original |
Galil-Seiferas |
Alexandre Cisneiros de Albuquerque Filho (acaf)
Joselito Francisco do Nascimento Júnior (jfnj)
|
Artigo original |
Apostolico-Giancarlo |
Leonardo Leandro (lsl2)
Thalles Cezar Aragão Montenegro (tcam) |
Artigo original |
Optimal mismatch |
José Carlos Menezes(jcmsj)
Renato dos Santos Oliveira (rso)
|
Artigo original |
Galil-Park |
André Santos Saboia (ass4)
Severino Mizael da Silva (sms4) |
Artigo original |
Two-way string matching |
Lucas Harada (lmfh) Maria Fernanda Castro (mfcc) |
Artigo original |
Turbo-BM |
Luiz Afonso Coimbra Barbosa Silva (lacbs) Gustavo Stor de Aguiar (gsa2) |
Artigo original |
Raita |
Marcos Paulo Barros Barreto(mpbb)
Fabrizio Batista Pereira (fbp)
|
Artigo original |
Skip-search |
Antonio Vildes Barbosa (avb)
Thales Alex Tenório de Albuquerque (tata)
|
Artigo original |
Projeto II
O objetivo do projeto é estudar aspectos relacionados à construção e utilização eficiente de estruturas de índice, tanto do ponto de vista de espaço quanto de tempo.
Equipes
O projeto deve ser realizado em equipes de 3-4 pessoas.
Escolha de temas
Cada equipe deve escolher um algoritmo publicado na forma de um artigo científico sobre a construção e/ou utilização de estruturas de índices. A título indicativo, podem ser escolhidos os artigos da lista a seguir. A equipe pode sugerir também um artigo que não esteja na lista a seguir, que deverá contudo ser aprovado pelo professor.
-
Kurtz S. Reducing the space requirement of suffix trees. Softw Pract & Exp 1999;29:1149-71.
-
S. Tata, R.A. Hankins, and J.M. Patel Practical
suffix tree construction. Proc. of 30th VLDB Conf.,
36–47, 2004
-
Kärkkäinen J, Sanders P. Simple linear work suffix array construction. Lect Notes Comp Sci 2003;2719:943-55
-
Dong Kyue Kim, Jeong Seop Sim, Heejin Park,
Kunsoo Park Constructing suffix arrays in linear time. J Discr Alg 3 (2005) 126–142.
-
Pang Ko, Srinivas Aluru. Space efficient linear time construction of
suffix arrays. J Discr Alg 3 (2005) 143–156.
-
Nong G, Zhang S, Chan WH. Proceedings of the 19th IEEE Data Compression Conference (DCC’09). Washington, DC: IEEE Computer Society; 2009. Linear suffix array construction by almost pure induced-sorting; p. 193-202.
-
Nong G, Zhang S, Chan WH. Two efficient algorithms for linear time suffix array construction. IEEE Trans Comput 2011;60(10):1471-84.
(Obs. Algoritmo SA-DS)
IMPORTANTE: Uma vez escolhido o tema, a equipe deve informar o professor responsável para que o mesmo seja listado no quadro abaixo, evitando repetições.
Material a ser entregue
- Resumo do artigo, em Português, em formato PDF.
- Apresentação, em formato PDF.
- O código-fonte do algoritmo.
- Os arquivos de entrada usados para avaliação.
Formato do resumo
O resumo deve ter ~4 páginas (A4, fonte 12pt) e apresentar as ideias centrais do artigo de forma sucinta. Deve-se procurar explicar as propriedades e teoremas fundamentais através de ilustrações e exemplos.
Código fonte
O código fonte pode ser implementado pela equipe ou obtido de terceiros. Entretanto, espera-se que a equipe tenha entendimento do algoritmo e seja capaz de responder perguntas sobre o código.
O programa deve ser utilizado para criar um experimento com dados relevantes e volumosos, que demonstre a utilidade e a vantagem prática do algoritmo.
Apresentação
A apresentação deve conter:
- Parte I (teórica)
- Descrição do problema
- Contextualização/aplicação
- Ideias básicas
- Eficiência teórica comparativa
- Parte II (prática)
- Experimentos
A Parte I da apresentação deve ser sucinta e centrar-se nas ideias principais de "como" funciona o algoritmo, que devem ser expostas em alto nível, e também discutir a eficiência (tempo/espaço) do algoritmo em comparação com outros homólogos.
Na Parte II devem ser apresentados resultados de experimentos e deve ser feita uma demonstração da execução com dados interessantes (conforme discutido acima). A equipe deve tomar previamente as providências quanto ao ambiente de execução e o tempo necessário para a execução do programa, escolhendo entradas representativas de tamanho adequado.
Toda a equipe deve estar preparada para responder perguntas sobre a apresentação, sobre o código e sobre o artigo original.
A apresentação terá rigorosamente duração total máxima de 30min por equipe.
Datas
- Até 12/02/14: Formação das duplas e escolha do tema
- 07/03/14: Entrega do material (TODOS os grupos)
- 10/03/14 13-15h: Apresentações
- 12/03/14 15-17h: Apresentações
A ordem das apresentações será definida pelo professor.
Projetos
Kärkkäinen et. al 2003
|
Diogo Ângelo (davn)
Edmundo Mateus (embs)
Flávio de Holanda (fhcj2)
Walber Nunes (wna)
|
|
Nong et. al 2009
|
Fabrizio Batista (fbp)
Lucas Harada (lmfh)
Maria Fernanda (mfcc)
Marcos Paulo (mpbb)
|
|
Ko & Aluru 2005
|
Antonio Vildes Barbosa (avb)
Thales Alex Tenório de Albuquerque (tata)
Leonardo Leandro (lsl2)
Thalles Cezar Aragão Montenegro (tcam)
|
|
Nong et al. 2011
|
Gustavo Stor de Aguiar (gsa2)
Luiz Afonso Coimbra Barbosa Silva (lacbs)
|
|