Áreas | Glossários | Estratégias de Projeto de Algoritmos | Flashcard

Estratégias de Projeto de Algoritmos

Algoritmo Guloso

Faz escolhas localmente ótimas na esperança de ótimo global.

Algoritmos Aproximados

Algoritmos usados para encontrar soluções aproximadas em problemas de otimização. Aplicáveis a problemas NP-difíceis, já que estes problemas não podem ser resolvidos em tempo polinomial.

Backtracking

Explora soluções parciais e retrocede quando uma escolha é inviável.

Branch and Bound

Explora o espaço de soluções podando ramos que não melhoram a melhor solução.

Compromisso Tempo–Espaço (Space and Time Tradeoffs)

é um caso onde um algoritmo ou software compensa o aumento no consumo de memória levando menos tempo.

Diminuir e Conquistar (Decrease and Conquer)

semelhante à divisão e conquista, exceto que, em vez de particionar um problema em vários subproblemas de tamanho menor, usamos alguma técnica para reduzir nosso problema em um único problema menor que o original

Dividir e Conquistar

Divide o problema, resolve subproblemas e combina as soluções.

Dividir e Conquistar (Divide and Conquer)

Esta técnica consiste em dividir um problema maior recursivamente em problemas menores até que o problema possa ser resolvido diretamente.

Estratégia Gulosa (Greedy)

consiste em construir uma solução através de uma sequência de passos, cada um expandindo uma solução parcialmente construída até o momento, até uma solução completa para o problema ser obtida

Força Bruta

Enumera sistematicamente todas as soluções candidatas.

Força Bruta (Brute Force)

é um método para resolver um problema através de uma travessia completa (ou parcial) no espaço de busca do problema para se obter uma solução.

Programação Dinâmica

Resolve subproblemas sobrepostos armazenando resultados intermediários.

Programação Dinâmica (Dynamic Programming)

reduzir o tempo de execução de um programa utilizando soluções ótimas a partir de subproblemas previamente calculados.

Ramificar e Limitar (Branch and Bound)

Consiste em uma enumeração sistemática de todos os candidatos à solução, com eliminação de uma candidata parcial quando uma destas duas situações for detectada.

Redução de Problemas

Transforma um problema em outro já conhecido para reutilizar soluções.

Transformar e Conquistar (Transform and Conquer)

Consiste em resolver problemas transformando-o em uma instância mais simples (mais conveniente) do mesmo problema (alteração da instância);

Voltando Atrás (Backtracking)

Tipo de algoritmo que representa um refinamento da busca por força bruta, em que múltiplas soluções podem ser eliminadas sem serem explicitamente examinadas.