Você está na página 1de 5

Análise e Projeto de Algoritmos

Profa Ana Paula Lüdtke Ferreira


Trabalho de Pesquisa sobre Complexidade de Problemas

1 Caracterização
A complexidade de um problema, como será visto com mais detalhes ao longo da disciplina de
Análise e Projeto de Algoritmos, corresponde à complexidade do melhor algoritmo conhecido
para resolver o problema em questão. Alguns problemas podem ter sua complexidade mínima
determinada, enquanto que em outros casos este é um problema em aberto (ou seja, sem solução
conhecida). Por exemplo, o problema da ordenação de uma sequências de valores baseada na
comparação entre seus elementos tem complexidade mínima O(n log n), o que significa que não
pode existir algoritmo mais eficiente do que isso que resolva o problema dessa forma. O problema
de minimização do tamanho de circuitos lógicos, por exemplo, não tem limite inferior comprovado.
Estudar a complexidade de um problema é importante por duas razões: a primeira razão é que
não queremos perder tempo buscando um algoritmo mais eficiente do que o que temos em mãos se
já atingidos o limite mínimo de complexidade do problema; a segunda é que não queremos usar téc-
nicas que não garantam a melhor solução possível para o nosso problema ou usar algoritmos pouco
eficientes se podemos encontrar soluções melhores. A regra máxima do projeto de algoritmos é
entenda o problema antes de apresentar uma solução algorítmica para ele.
O objetivo deste trabalho é aprofundar os conhecimentos dos discentes sobre complexidade de
problemas e complexidade dos algoritmos usados para sua solução. Para isso, a cada discente será
atribuído um problema, que deve ser investigado em relação à sua complexidade e à complexidade
dos melhores algoritmos usados para resolver o problema ou problemas similares. O resultado da
pesquisa deverá ser apresentado no formato de um artigo e apresentado na aula de apresentação de
seminários, conforme o plano de ensino.
O método de trabalho usado deverá conter uma pesquisa bibliográfica sobre o tema, com um
levantamento histórico das abordagens usadas até o estado-da-arte dos algoritmos usados atual-
mente. Um texto sobre como conduzir uma revisão bibliográfica pode ser encontrado em anexo ao
enunciado deste trabalho. Os trabalhos deverão citar um mínimo de 15 (quinze) textos (livros e/ou
artigos) diferentes.
O artigo apresentado deve estar no formato da IEEE, conforme modelo em anexo, e deverá
conter, minimamente, os seguintes elementos:

1. Título do trabalho, que deve ser representativo do conteúdo do artigo.

2. Nome completo do autor ou da autora do trabalho. Se o discente autor tiver ORCID, colocar
também essa informação.

1
3. Resumo do trabalho, que deve conter os “melhores momentos” do texto e dar uma ideia geral
do que pode ser encontrado no artigo. Um bom resumo contém uma frase para cada seção
do artigo, resumindo de um jeito que o leitor possa ter ideia sobre todos os aspectos tratados.

4. Abstract do trabalho, que é o resumo escrito em Inglês. Revisem o texto e não joguem uma
tradução direta do Google tradutor para dentro do trabalho. Escrever corretamente em Inglês,
com estrutura frasal consistente com as regras da língua e sem termos mal traduzidos é uma
competência básica de qualquer profissional da área de Computação, especialmente se quiser
conseguir um estágio ou emprego em uma empresa de relevância.

5. Introdução do trabalho, que deve conter:

(a) O contexto do trabalho, com os tipos de aplicações em que o problema que constitui o
tema do trabalho é usado, explicitando sua relevância.
(b) Um histórico referenciado das abordagens usadas para resolver o problema.
(c) O objetivo do trabalho.
(d) A estrutura do trabalho, com o que será visto nas seções seguintes.

6. A definição formal do problema, ou seja, uma descrição matemática das estruturas que
servem de entrada para o problema e do formato da sua saída.

7. A análise da complexidade do problema, com as referências utilizadas e o maior detalha-


mento possível. Essa análise vai variar, dependendo do problema. Se é um problema para
o qual existe uma prova de sua complexidade mínima ou de sua classe de complexidade,
a prova deve ser apresentada. Se não existe prova, isso deve ser afirmado (com suporte de
referências).

8. O (código ou pseudo-código do) algoritmo usado para resolver o problema correntemente,


com a respectiva análise da complexidade. Essa análise de complexidade deve ser feita pelo
discente, apontando quais são os trechos de código de custo computacional mais elevado, ex-
plicitando todos os passos da solução. Não é suficiente referenciar um artigo sem apresentar
a análise completa. Nessa análise, eventuais diferenças entre

9. A conclusão do trabalho, fazendo um resumo de tudo que foi tratado ao longo do artigo e
um resumo apropriado dos resultados.

10. O referencial bibliográfico utilizado, que deve estar integralmente citado no corpo do
artigo.

Os problemas que serão distribuídos aos discentes são os seguintes:

1. Solução de sistemas de equações lineares

2. Programação linear (variáveis reais)

3. Programação linear inteira

4. Problema da inversão de matrizes

2
5. Problema da atribuição em grafos bipartidos

6. Conjunto independente máximo

7. Problema da partição de grafos

8. Problema da coloração de grafos

9. Problema do índice cromático

10. Problema do clique máximo

11. Problema do fluxo máximo em redes

2 Orientações gerais
1. O trabalho é INDIVIDUAL. Não serão aceitos grupos. Os estudantes têm o semestre inteiro
para desenvolver o trabalho.

2. O trabalho deve ser escrito no modelo LATEX em anexo à atividade (não serão aceitos trabalhos
em Word ou outro editor de texto).

3. Usem a plataforma Overleaf (https://www.overleaf.com/) para a escrita do texto.


Overleaf é uma plataforma colaborativa de produção textual em LATEX. Facilita tanto a escrita
e as eventuais discussões com a professora (existe chat e controle de versões), como é bem
fácil gerar os arquivos para a entrega.

Como orientação geral, um texto não é somente uma sequência de frases. O texto é feito para ser
lido por alguém que se interesse pelo assunto. Ao contrário do que muitos escritores inexperientes
acreditam, um texto nunca é escrito em uma única passada. É releituras múltiplas para que o
resultado final seja suficientemente aprimorado. Sendo assim, procure ler seu texto do ponto de
vista do leitor e verifique se você está sendo informativo, correto e coerente. Fluência na leitura –
como se estivéssemos lendo um livro – também é uma características de bons textos.

3 Critérios de avaliação
(25%) Referencial bibliográfico completo e corretamente citado.

1. É considerado plágio a transcrição literal ou a tradução literal de um trecho (sete ou mais


palavras) de outro trabalho MESMO QUE o trabalho seja referenciado. Se tiverem que
transcrever algum texto ou sua citação, ele deve aparecer entre aspas, com a citação
logo após.
2. Fazer uma revisão bibliográfica sobre algum assunto requer planejamento, mesmo que
a revisão não seja sistemática. As palavras-chave de cada busca devem ser escolhi-
das e também os repositórios onde as buscas serão feitas. Dêem preferência a artigos
publicados em periódicos científicos e anais de eventos que tenham revisão pelos pares.

3
3. Usem as referências no formato BibTeX. A maior parte dos repositórios de busca ex-
porta as citações dos trabalhos encontrados nesse formato, que pode ser copiado direto
para o arquivo .bib do projeto LATEX.
4. Podem usar o Google e o Google Acadêmico para as buscas, mas não se restrinjam
a esses repositórios. Procurem ao menos nas bibliotecas digitais da ACM (https:
//dl.acm.org/), da IEEE (https://ieeexplore.ieee.org/) e da Else-
vier (https://www.sciencedirect.com/), que contém uma quantidade repre-
sentativa das publicações relacionadas às áreas de complexidade de algoritmos e proble-
mas. Vocês conseguem baixar os pdf de qualquer rede do Campus Bagé ou de casa, con-
figurando o acesso à internet via proxy da UNIPAMPA (http://userproxy.unipampa.edu.br,
porta 3128). O usuário/senha solicitado são os mesmos usados nos sistemas institucio-
nais.
5. Um bom jeito de encontrar outras fontes interessantes de buscas é verificando as refe-
rências dos trabalhos encontrados, para ver onde os trabalhos relacionados são publica-
dos.

(25%) Qualidade do texto escrito e estruturação correta.

1. O texto não deve conter erros de ortografia, pontuação, concordância e crase. Todos
os editores de texto hoje têm corretores embutidos, que indicam palavras com grafia
errada. Alguns, inclusive, apontam erros de concordância verbal e nominal e, embora
não acertem todos, são uma boa ajuda.
2. Revisar o texto, VÁRIAS VEZES, é essencial. Nenhum bom texto é escrito direto da
primeira vez, nem por quem está muito acostumado a escrever e escreve bem. Não tem
problema escrever conforme vai se pensando, mas é absolutamente necessário rever o
que foi escrito, tanto para encontrar erros como para reescrever as frases de um jeito
melhor.
3. Um texto bom é um texto completo, mas objetivo. O valor de um texto não é dado pelo
número de palavras. Diga tudo o que precisa dizer, mas nada além disso. Enrolações e
repetições de frases, termos e ideias tornam um texto irritante.
4. Evite pronomes demonstrativos (este/a, esse/a, aquele/a) no início de frases, evite os ter-
mos presente, o mesmo, etc. Construa frases na ordem direta (sujeito-verbo-predicado)
sempre de forma completa. Pronomes demonstrativos quase sempre exigem que o leitor
volte no texto para ver do que vocês estão falando. Presente, o mesmo, etc. são termos
dispensáveis que tornam um texto empolado, prolixo e feio. Frases completas e bem
construídas evitam tudo isso.
5. Evite voz passiva. Alguma coisa foi feita? Então diga quem fez.
6. Escrever bem é um processo que requer leitura e muita prática. Preste atenção nos
textos que vocês lêem, para ver como se escreve.

(25%) Capacidade de análise e síntese dos temas relacionados ao artigo.

1. Analisar alguma coisa significar olhar para ela de diversas formas, estabelecendo rela-
ções com aquilo que se conhece, elencando vantagens, desvantages e particularidades.

4
É um processo que visa aumentar o entendimento sobre algum assunto ou questão es-
pecífica. O processo de análise é indispensável quando se quer aprender alguma coisa.
Conhecimento sem análise é pura decoreba (ou cópia) e não tem muita serventia quando
se deseja colocá-lo em prática. Criem o hábito de analisar tudo aquilo que vocês lêem
ou ouvem.
2. A síntese é a operação de reunir tudo que é importante sobre determinado assunto, apre-
sentando de forma resumida. Uma síntese deve ser curta, mas ter uma grande densidade
de informação. Ou seja, deve ter muito conteúdo em poucas palavras. Somente é possí-
vel chegar à síntese de um assunto quando já o analisamos em profundidade. Também
é uma operação que deve acompanhar o nosso estudo, seja do que for.
3. O trabalho a ser apresentado deve evidenciar tanto a análise por parte do estudante
quanto a síntese das leituras realizadas, focadas no tema do trabalho escolhido. O texto
do trabalho deve ser fluente e mostrar que vocês entenderam o assunto e são capazes de
sintetizá-lo. Se exibam mesmo, é isso que eu quero ver.

(25%) Detalhamento das estruturas, dos algoritmos e dos cálculos de complexidade.

1. Apresentem tudo o que vocês querem apresentar de forma didática. Imaginem que
vocês estão dando uma aula e querem que todos entendam o conteúdo. Sejam claros e
tentem explicar as coisas da melhor forma possível.

Os trabalhos que tiverem uma boa apresentação e uma boa qualidade, serão revisados para sub-
missão ao próximo Workshop-Escola de Informática Teórica (WEIT), que vai acontecer em 2023
na Fundação Universidade Federal de Rio Grande (FURG). Publicação e apresentação de artigos
geram horas complementares de pesquisa, que todos precisam no final do curso para completar a
carga horária.

4 Formato da entrega
A entrega deve consistir em um arquivo PDF com o texto do artigo (entre 8 e 16 páginas, excetuando
o referencial bibliográfico).
Dúvidas devem ser apresentadas pelo e-mail anaferreira@unipampa.edu.br ou em reunião mar-
cada também por esse e-mail. “Eu achei que” como resposta para qualquer problema identificado
no artigo não será aceito. Se não souberem, perguntem.

Você também pode gostar