홀의 정리(Hall's theorem)
두 무리를 짝지을 때 한쪽 모두에게 짝을 줄 수 있으려면, 그쪽의 어떤 k명을 골라도 그들이 받아들일 상대가 합쳐서 k명 이상이어야 하고, 그것으로 충분하다.
사람 다섯이 일자리 다섯 개에 지원합니다. 사람마다 받아들일 수 있는 일이 정해져 있고, 한 사람은 일 하나만, 한 일은 한 사람만 맡을 수 있습니다. 사람과 일을 두 줄의 꼭짓점(vertex)으로, '받아들일 수 있다'를 변으로 그리면 변이 두 무리 사이에만 있는 이분 그래프가 됩니다. 서로 겹치지 않는 변들의 모음이 매칭(matching)이고, 모든 사람이 일을 얻는 매칭은 사람에서 일로 가는 단사(injective) 함수(서로 다른 사람을 서로 다른 일로 보내는 함수(function))이면서 각자 원하는 일로만 보내는 것입니다.
누구든 사람 몇 명의 무리 S를 골랐을 때 그들이 원하는 일을 모두 모은 집합(set)을
보기:
새 사람이 원하는 일이 모두 차 있으면, 그 일을 가진 사람에게 다른 일로 옮겨 갈 수 있는지 묻습니다. 그 사람의 다른 일도 차 있으면 또 그 주인에게 묻고, 이렇게 가다 빈 일에 닿으면 사슬을 따라 모두 한 칸씩 옮깁니다. 짝이 아닌 변과 짝인 변을 번갈아 지나 빈 곳에 닿는 이 길을 증가 경로라 하고, 길 위의 짝과 짝 아닌 변을 맞바꾸면 짝이 꼭 하나 늘어납니다. '사슬' 보기에서 E를 처리할 때 그 모습이 보입니다. 사람마다 증가 경로(augmenting path)를 한 번씩 찾으면 되니 전체 비용은 사람 수와 변 수의 곱 정도입니다(점근 표기법(asymptotic notation)). 반면 홀 조건을 하나하나 확인하려면 사람들의 모든 부분집합(subset), 곧 멱집합(power set)의 원소(element)
이 알고리즘(algorithm)은 증명도 줍니다. 어떤 사람 u에게 증가 경로가 없으면, u에서 번갈아 가는 길로 닿는 사람들을 S, 그들이 닿는 일을 N(S)라 할 때 N(S)의 일은 모두 S의 다른 사람이 맡고 있어서
완전 매칭(perfect matching)의 개수를 세는 것은 전혀 다른 이야기입니다. 모든 사람이 일을 얻는 매칭을 완전 매칭이라 합니다. 사람 i가 일 j를 원하면 (i, j) 성분을 1, 아니면 0으로 적은 행렬(matrix)을 만들면, 완전 매칭의 개수는 이 행렬의 퍼머넌트입니다. 퍼머넌트(permanent)는 행렬식(determinant)을 전개한 식에서 모든 항의 부호를 +로 바꾼 것으로, 각 행에서 서로 다른 열의 성분을 하나씩 골라 곱한 값을 모든 고르는 방법에 대해 더합니다. 부호 하나만 다른데 난이도는 딴판입니다. 행렬식은 가우스 소거법(Gaussian elimination)으로 빠르게 계산되지만, 퍼머넌트를 빠르게 계산하는 방법이 있다면 P 대 NP 문제(P versus NP problem)가 P = NP로 풀려 버린다는 것이 증명되어 있습니다(1979년 영국의 컴퓨터 과학자 레슬리 밸리언트). 그래서 퍼머넌트는 어렵다고 믿어집니다. 모두가 자기 번호의 일만 빼고 다 원할 때, 완전 매칭은 아무도 자기 번호의 일을 맡지 않는 배정, 곧 교란순열(derangement)입니다.
이어지는 곳. 짝마다 비용이 있어 비용의 합을 최소로 하는 배정 문제(assignment problem)는 헝가리안 방법(Hungarian method)으로 풉니다. 1955년 미국의 해럴드 쿤이 쾨니그와 에게르바리 같은 헝가리 수학자들의 생각을 바탕으로 만들어서 붙은 이름입니다. 사람과 일 대신 흙더미와 구덩이처럼 연속적으로 퍼진 양을 가장 싸게 옮기는 문제로 넓히면 최적 수송(optimal transport)이 됩니다. 모두가 상대에게 좋아하는 순서를 매길 때 불만 없는 짝을 찾는 문제는 안정 매칭(stable matching)입니다. 홀의 정리는 원래 여러 모임에서 모임마다 서로 다른 대표 한 명씩을 고를 수 있는가라는 물음(서로 다른 대표 고르기)의 답으로 나왔고, 시간표 짜기 같은 조합 문제의 기본 도구입니다. 예를 들어 n×n 표의 각 행과 각 열에 n개 기호가 한 번씩 들어가는 라틴 방진(Latin square)은, 위에서부터 한 행씩 채울 때 홀의 정리 덕분에 언제나 다음 행을 채울 수 있어서 끝까지 완성됩니다.
이 개념이 나오는 긴 글
이 개념 위에 세워진 것
이 개념을 언급하는 페이지
- 단사·전사·전단사
… 있는 상대가 정해져 있을 때, 모두가 짝을 얻는 짝짓기는 곧 전단사입니다. 그런 짝짓기가 언제 가능한지는홀의 정리가 알려 줍니다.
- 비둘기집 원리
… 짝을 줄 수 없습니다. 사람 수가 유한할 때, 이 장애만 없으면 언제나 모두에게 짝을 줄 수 있다는 것이홀의 정리입니다. 컴퓨터에서도 자주 쓰입니다. 칸보다 키가 많으면 해시 테이블의 충돌은 피할 수 없습니다. …
- 그래프
… 돌아오는 고리)이 없는 그래프는 트리입니다. 두 무리 사이에만 변이 있는 그래프에서 짝을 짓는 문제는홀의 정리와 안정 매칭으로, 변에 용량을 붙이면 최대 흐름 문제로 이어집니다. 모든 두 점을 이은 완전 …
- 최적 수송
… 덩이 n개씩이고 덩이를 쪼갤 수 없으면 문제는 짝짓기(배정 문제)가 됩니다. 모두에게 짝을 줄 수 있는지는홀의 정리가, 용량이 정해진 관망으로 얼마나 보낼 수 있는지는 최대 흐름 최소 절단 정리가 답하고, 비용 대신 …
- 최대 흐름 최소 절단 정리
… 모든 용량을 1로 두고 사람 쪽과 일 쪽에 s와 t를 붙이면 최대 흐름이 곧 최대 매칭이고, 최소 절단이홀의 정리의 막힌 무리를 보여 줍니다. 1927년 오스트리아의 수학자 카를 멩거가 증명한 멩거의 정리도 같은 …
- 안정 매칭
… 미국의 경제학자 앨빈 로스는 이 연구로 2012년 노벨 경제학상을 받았습니다. 짝이 존재하는지만 묻는다면홀의 정리가, 모두의 만족 합을 최대로 하려면 최적 수송 같은 배정 문제가 알맞습니다. 한 무리 안에서 둘씩 …
- 선형 계획법
… 이분 그래프에서 가장 큰 짝짓기의 크기와 가장 작은 꼭짓점 덮개의 크기가 같다는 쾨니그의 정리와홀의 정리는 모두 쌍대 정리의 특별한 경우이고, 흙을 옮기는 가장 싼 방법은 최적 수송입니다. 부등식 대신 등식 …
- 라틴 방진
… 수 있습니다. 다음 줄은 칸마다 '그 세로줄에 아직 안 나온 기호'를 하나씩 서로 다르게 고르는 일이고,홀의 정리가 그런 고르기가 늘 가능함을 보장합니다. 36명의 장교. 오일러가 1782년 논문에서 던진 문제는 …