O conceito que você está procurando é chamado de complexidade de enumeração , que é o estudo da complexidade computacional de enumerar (listar) todas as soluções para um problema (ou os membros de um idioma / conjunto). Os algoritmos de enumeração podem ser modelados como um processo em duas etapas: uma etapa de pré - computação e uma fase de enumeração com atraso . Ambos os passos têm suas próprias complexidades de tempo e espaço (talvez entropia também). No espírito geral da complexidade, muitas vezes há trocas entre elas a serem consideradas.
A etapa de pré-computação realiza algum trabalho necessário antes da enumeração da primeira solução. Isso pode envolver a localização da solução ou a inicialização de uma grande estrutura de dados que reduzirá o atraso geral entre cada solução.
O atraso é o custo do recurso associado ao cálculo necessário entre soluções enumeradas arbitrárias. Em outras palavras, o atraso é uma medida do espaço e do tempo necessário para produzir a solução após o i t h uma. Problemas cujas soluções demoram O ( 1 ) para cada enumeração têm atraso constante. Um requisito de O ( p o l y ( n ) )i+1thithO(1)O(poly(n)) tempo é dito ter atraso polinomial.
Para o problema de enumeração que você mencionou especificamente na sua pergunta, você deve olhar para a classe e seus irmãos relacionados no ponto 2.1 do "enumeração: Algoritmos e Complexidade", de Johannes Schmidt (Ligado na parte inferior).ENUMNP
Por que nos preocupamos com o tempo e o atraso da pré-computação?
O atraso é muito essencial para entender os verdadeiros meandros dos problemas de enumeração. Enumerando os elementos de (até o tamanho n ) e { → x : ϕ ( → x ) } onde ϕ ( → x ) é uma fórmula booleana (isto é, SAT), ambos levam tempo exponencial. No entanto, enumerando através de Σ ∗Σ∗n{x⃗ :ϕ(x⃗ )}ϕ(x⃗ )Σ∗requer apenas um atraso constante, pois você pode simplesmente percorrer os elementos em alguma ordem. Pelo que sabemos, o atraso na enumeração de soluções para uma instância 3SAT pode ser exponencial. Nosso trabalho como teóricos da complexidade é captar por que o último problema é fundamentalmente mais difícil (mais complexo) do que o anterior. O atraso faz um bom trabalho em mostrar essa diferença.
Da mesma forma, também precisamos saber quanta pré-computação é feita. Podemos reduzir o atraso de qualquer problema de enumeração para tempo e espaço constantes pré-computando todas as soluções e armazenando-as em uma lista a ser enumerada posteriormente. O desafio é encontrar o melhor equilíbrio entre os dois recursos.
A ordem em que você enumera os elementos também pode influenciar a complexidade. Exigir que os resultados sejam retornados em uma ordem classificada especificada pode exigir que realizemos cálculos adicionais nas duas etapas. Embora situações em que qualquer ordem seja suficiente (desde que cada elemento enumerado seja único) também sejam certamente estudadas.
Até onde eu sei, essas classes normalmente não possuem rótulos concisos (semelhante a e N P ). Não é possível esperar que seja possível fazer isso, pois as classes de complexidade de enumeração estão manipulando em torno de 3 ou mais recursos (pré-computação / tempo total, espaço, atraso e entropia). Existem simplesmente muitas combinações de limites de recursos para distribuir nomes especiais. Isso não torna essas classes menos interessantes e também não impede os pesquisadores de tentar de qualquer maneira.PNP
Recursos
Esta pesquisa (realmente uma tentativa de formalização) deve ajudá-lo a começar. Também prova alguns teoremas básicos da hierarquia.
Enumeração: Algoritmos e Complexidade
(Johannes Schmidt, 2009)
https://www.thi.uni-hannover.de/fileadmin/forschung/arbeiten/schmidt-da.pdf
Para uma enumeração de resultados na complexidade da enumeração, confira esta compilação com curadoria de Kunihiro Wasa. Como é categorizado por tipo de problema, você pode encontrar facilmente vários papéis dedicados à enumeração de ciclos de gráficos. Deve ser simples modificar os algoritmos envolvidos para considerar apenas os ciclos com um determinado nó.
http://www-ikn.ist.hokudai.ac.jp/~wasa/enumeration_complexity.html