나는 헝가리어 알고리즘의 적절한 구현을 시도하지만 배열의 모든 0을 포함하는 최소 수의 행을 찾는 방법을 고집합니다.2 차원 배열의 모든 0을 포함하는 데 필요한 최소 줄 수는 어떻게 찾을 수 있습니까?
도이 라인을 알아야합니다. 3 단계에서
http://www.ams.jhu.edu/~castello/362/Handouts/hungarian.pdf
그것이
를 말한다 : 일부 계산 나중에 여기 는 설명입니다가능한 한 적은 행을 사용하여 행렬의 모든 0을 덮습니다. 기본적으로 시행 착오입니다.
시행 착오는 무엇을 의미합니까? I는, 예를 들어 5 행 5 열의의 2 차원 배열을 갖고 있다면
첫 번째 행은 제 1 및 제 2의 첫 번째 행과 첫 번째 열, 등 등 너무 많은 조합
ISN 모든 제로를 커버 할 이보다 더 효율적인 것이 있습니까? 시행 착오가 O ((N + m)!) 복잡 수단
모든 0을 포함하는 일련의 줄을 제공하지만 줄 수는 가장 적지 않습니다. 두 번째 행과 두 번째 열에 0이있는 3x3 행렬로 알고리즘을 시도하십시오. 모든 0을 2 줄로 감쌀 수 있지만이 알고리즘은 3 줄을 사용하도록 지시합니다. – gwilkins
저는 오타가있었습니다. 싱크대가 아닌 소스에서 도달 할 수있는 꼭지점을 찾아야합니다. 최대 일치를 한 후에 (예를 들어, r_1 -> c_2, r_2 -> c_1이라고 가정 해 봅시다) 소스에서 도달 할 수있는 r_1, r_3, c_2가 있으므로 설명에 따라 r_2와 c_2를 선택합니다. 이 솔루션은 추측이 아닙니다. 이것은 헝가리 알고리즘이 구현 된 방식이며 접근 방식에 대한 문제를 해결했습니다 (예 : http://acm.timus.ru/problem.aspx?space=1&num=1076) –
생각합니다. 나는 당신이 "근원으로부터 접근 할 수있다"는 말을 오해하고 있습니다. r_1-> c_2, r_2-> c_1이 일치하는 경우 r_3은 소스에서 어떻게 접근 할 수 있습니까? – gwilkins