2016-11-13 6 views
5

각 줄마다 한 줄짜리 파일 (농담)이 있다고 가정합니다. 농담을 얼마나 재미 있는지 찾아서 분류하고 싶습니다. 내 첫 번째 생각은 어떤 정렬 알고리즘 (가능한 한 적은 수의 비교를 만드는 알고리즘)을 구현하고 비교 알고리즘이 내 입력을 받아들이도록하는 것이다. 나는 단지 거기에 앉아 있었고, 그것이 나에게 선물했던 농담의 각 쌍 중 어느 쪽이 더 우스 웠던 지 골라 낼 것이다.일관성없는 (비 transitive) 사람 기본 설정에 대한 정렬 알고리즘

문제가 있습니다. 내 농담은 전체 주문이 아닙니다. 그것은 전이성이 부족합니다. 예를 들어, B는 A보다 더 재미 있다고 생각할 수 있습니다. C보다 B가 더 재미 있지만, A와 C로 표현 될 때 A가 C보다 더 우습다는 것을 알게됩니다. ">"의미는 "보다 재미 있습니다. "이것은 C> B이고 B> A는 이 아니며은 C> A를 의미 함을 의미합니다. 모든 정렬 알고리즘의 정확성은 이것에 달려 있습니다.

하지만 여전히 상단에 하나가되도록 농담의 목록을 정렬하는 알고리즘이 있어야한다 보인다 가장 다른 농담을 선호하고, 하단에 하나의 다른 농담 선호 적어도 입니다 , 개별적인 예외가 있더라도.

Google에이 방법을 알지 못합니다. 이러한 종류의 기본 설정 정렬을위한 알고리즘이 있습니까? 응답 here은 사용자의 선호도가 추이 적이므로 강제 적용되지 않으므로 적용 할 수 없습니다.

+0

추천 시스템은 당신이 당신의 예를 완료 할 수 있습니다 – iNan

+0

일을해야합니까? A, B, C 세 농담이 있었고 A보다 B가 더 우연하고 B보다 어색한 C를 발견하고 C보다 어색한 사람이라면 출력에서 ​​볼 수있는 순서는 무엇입니까? 또한 입력하는 유일한 사람입니까? –

+0

농담 환경 설정은 부분적인 순서조차되지 않습니다! 유권자가 다른 투표를하지 않고 "A> C"라고 말할 수있는 투표 시스템이 있는지 궁금합니다. 그렇다면 각각의 비교 환경 설정이 다른 유권자의 것 인 것처럼 가장하는 시스템 중 하나를 사용할 수 있습니다. – ruakh

답변

3

각각의 농담이 노드이고 각 지시 된 가장자리가 하나의 농담이 다른 것보다 나음을 나타내는 방향 그래프로 의사 결정을 표시하면 가장자리를 따라가는 경로를 구성하여 각 순서를 검색하고 각각을 방문하여 순서를 검색 할 수 있습니다 노드.

이 유형의 그래프를 토너먼트라고하며 경로는 해밀턴 경로입니다. 나는 당신에게 좋은 소식을 가지고 있습니다. 그래프가 강하게 연결되어 있다면 해밀턴이 존재하는 것으로 입증됩니다. 강하게 연결된다는 것은 모든 노드가 모든 노드에서 도달 할 수 있다는 것을 의미합니다. 가장자리의 방향을 따르므로이 사실이 충족 될 때까지 가장자리를 계속 추가하십시오.

대회 : https://en.wikipedia.org/wiki/Tournament_(graph_theory)

해밀턴 경로 : https://en.wikipedia.org/wiki/Hamiltonian_path