객체 클래스 (예 : 그래프, 문자열)와 이러한 객체에 대한 등가 관계가 있다고 가정합니다. 그래프의 경우 이것은 그래프 동형 일 수 있습니다. 문자열의 경우, 서로의 아나그램 인 경우 두 문자열을 동등하게 선언 할 수 있습니다.
동등성 클래스의 대표자를 계산하는 데 관심이 있습니다. 즉, 두 객체 x, y, f (x) = f (y)에 대해 f () 함수를 원합니다. iff x와 y는 같습니다. (*)
아나그램의 예에서, f (s)는 문자열에서 문자를 정렬 할 수 있습니다. f ( 'cabac') = 'aabcc'입니다. 그래프 동형의 경우, 우리는 f (G)를 G와 동형 인 그래프 G '로 취할 수 있으며이 속성을 갖는 사 전형적으로 첫 그래프입니다.
이제 질문 : 두 요소가 동등한 지 여부를 결정하는 문제가 "쉬운"(폴리 시간 해결 가능)이라는 예제가 있지만 대표자를 찾는 것이 어렵습니다 (즉, f ()를 계산하는 폴리 시간 알고리즘이 없습니다 ( *)).