backtracking
Sign in to saveAlso known as Backtracking Algorithm, Backtracking Algorithms
Backtracking is a class of algorithms for finding solutions to some computational problems, notably constraint satisfaction or enumeration problems, that incrementally builds candidates to the solutions, and abandons a candidate ("backtracks") as soon as it determines that the candidate cannot possibly be completed to a valid solution.
Research
957 papers- Backtracking metabolic dynamics in single cells predicts bacterial replication in human macrophages.Nature communications · 2025
- Persistence of backtracking by human RNA polymerase II.Molecular cell · 2024
- Backtracking childhood leukaemia to birth: A battle of addition.British journal of haematology · 2024
- A role for human senataxin in contending with pausing and backtracking during transcript elongation.Molecular cell · 2025
- Persistence of backtracking by human RNA polymerase II.bioRxiv : the preprint server for biology · 2023
via PubMed
Wikidata facts
- Subclass of
- search algorithm
- Image
- Depthfirst.png
Show 4 more facts
- Commons category
- Backtracking
- ACM Classification Code (2012)
- 10011255
- maintained by WikiProject
- WikiProject Mathematics
- P13411
- Sistine Chapel
Sources (2)
via Wikidata · CC0
Article · Português
Backtracking é um 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. O termo foi cunhado pelo matemático estado-unidense D. H. Lehmer na década de 1950. O procedimento é usado em linguagens de programação como Prolog. Uma busca inicial em um programa nessa linguagem segue o padrão busca em profundidade, ou seja, a árvore é percorrida sistematicamente de cima para baixo e da esquerda para direita. Quando essa pesquisa falha, ou é encontrado um nodo terminal da árvore, entra em funcionamento o mecanismo de backtracking. Esse procedimento faz com que o sistema retorne pelo mesmo caminho percorrido com a finalidade de encontrar soluções alternativas. Um exemplo de algoritmo de Backtracking está representado abaixo: bool acabou = FALSE;backtrack(int a[], int k, int n) { int c[MAXCANDIDATOS]; /* Candidatos para a próxima posição */ int ncandidatos; /* Número de candidatos para a próxima posição */ int i; /* Contador */ if (e_uma_solucao(a, k, n)) { processar_solucao(a, k, n); } else { k = k + 1; construir_candidatos(a, k, n, c, &ncandidatos); for (i=0; i<ncandidatos; i++) { a[k] = c[i]; backtrack(a, k, n); if (acabou) return; } }} As principais aplicações desse tipo de algoritmo são para a construção de todos os 2^n subconjuntos de um conjunto S, com n elementos e todas as permutações desse conjunto. Abaixo seguem as sub-rotinas para cada situação, na linguagem C:
Abstract from DBpedia / Wikipedia · CC BY-SA