비둘기집의 원리 (Pigeonhole Principle)

수학
한 줄 정의: n+1개의 물건을 n개의 상자에 나눠 담으면, 적어도 한 상자에는 반드시 2개 이상의 물건이 들어간다는 조합론의 기본 원리입니다.

쉽게 풀면

비둘기 10마리가 둥지 9개에 들어가야 한다고 상상해보세요. 아무리 골고루 나눠 넣으려 해도 둥지 개수보다 비둘기가 한 마리 더 많기 때문에, 최소한 어느 한 둥지에는 비둘기가 2마리 이상 들어갈 수밖에 없습니다. 너무나 당연해 보이는 이 사실이 바로 비둘기집의 원리이며, "정확히 어디서" 그런 일이 벌어지는지는 알려주지 않지만 "반드시 어딘가에서는" 그런 일이 일어난다는 것을 논리적으로 보장해줍니다.

왜 중요한가

비둘기집의 원리는 증명 방법 자체가 매우 단순하면서도 강력해서, 존재성(existence)을 증명해야 하는 다양한 이산수학·전산학 논문에서 기초적인 논증 도구로 자주 등장합니다. 알고리즘의 최악의 경우 성능을 분석하거나, 압축·해싱처럼 유한한 자원에 무한히 많은 입력을 대응시켜야 하는 상황의 한계를 보일 때 특히 유용합니다. 복잡한 계산 없이도 "반드시 일어난다"는 결론을 이끌어낼 수 있어, 더 정교한 증명의 출발점이나 보조 도구로도 널리 활용됩니다.

논문에서는 이렇게 쓰입니다

"해시 테이블의 버킷 수보다 삽입되는 키의 개수가 많아지는 순간, 비둘기집의 원리에 의해 적어도 하나의 버킷에서는 충돌이 발생할 수밖에 없다."

이 문장은 저장 공간(둥지)보다 저장할 데이터(비둘기)가 많아지면 충돌이 이론적으로 피할 수 없는 결과임을 설명하는 데 이 원리를 사용하고 있습니다. 비둘기집의 원리는 이처럼 "충돌이 일어날 수 있다"가 아니라 "반드시 일어난다"는 것을 증명해야 할 때, 복잡한 계산 없이도 결론을 이끌어내는 강력한 논증 도구로 쓰입니다.

"압축 알고리즘이 모든 입력 파일을 더 짧게 줄일 수는 없음을 비둘기집의 원리를 이용해 증명하였다."

가능한 원본 파일의 가짓수가 압축 결과의 가짓수보다 많기 때문에, 어떤 무손실 압축 알고리즘도 모든 파일을 반드시 줄일 수는 없다는 사실을 증명하는 데 이 원리가 쓰였다는 뜻이다.

"충분히 많은 참가자가 있는 그래프에서 특정 크기 이상의 완전 부분그래프 또는 완전 독립집합이 반드시 존재함을 비둘기집의 원리를 확장한 논증으로 보였다."

그래프 이론에서 특정 구조가 반드시 존재한다는 사실을 증명할 때도 이 원리를 응용한 논증이 사용된다는 뜻이다.

조금 더 깊게 보면

비둘기집의 원리는 물건이 n+1개, 상자가 n개일 때뿐 아니라, 물건이 상자 개수의 k배를 넘으면 적어도 한 상자에는 k+1개 이상이 들어간다는 일반화된 형태(generalized pigeonhole principle)로도 자주 쓰입니다. 이 확장된 형태는 램지 이론(Ramsey theory)처럼 "충분히 큰 구조에는 반드시 특정 패턴이 존재한다"는 것을 다루는 조합론의 더 깊은 분야와도 연결됩니다. 증명 자체는 직접적인 계산이 아니라 논리적 귀류법에 가까운 구조를 띠는 경우가 많아, 존재성 증명(existence proof)의 대표적인 예시로도 소개됩니다.

주의할 점

비둘기집의 원리는 충돌이나 중복이 "존재한다"는 사실만 증명할 뿐, 그것이 정확히 몇 번 일어나는지나 어느 위치에서 일어나는지는 알려주지 않습니다. 몇 가지 경우가 가능한지 세는 문제는 경우의 수순열과 조합을 통해 별도로 계산해야 합니다.

관련 용어