Suponha que tenhamos uma classe de objetos (digamos gráficos, seqüências de caracteres) e uma relação de equivalência nesses objetos. Para gráficos, isso pode ser isomorfismo gráfico. Para strings, poderíamos declarar duas strings equivalentes se forem anagramas uma da outra.
Estou interessado em calcular um representante para uma classe de equivalência. Ou seja, eu quero uma função f () tal que para quaisquer dois objetos x, y, f (x) = f (y) se x e y forem equivalentes. (*)
Para o exemplo de anagramas, f (s) pode classificar letras na string, ie. f ('cabac') = 'aabcc'. Para o isomorfismo do gráfico, poderíamos considerar f (G) como um gráfico G 'isomórfico para G e é o primeiro gráfico lexicoraphically a ter essa propriedade.
Agora, a pergunta: existe um exemplo em que o problema de determinar se dois elementos são equivalentes é "fácil" (solucionável em tempos poligonais), enquanto é difícil encontrar um representante (por exemplo, não há algoritmo de tempo polimétrico para calcular f () que satisfaça ( *)).