Determining playoff clinching scenarios in the NHL using constraint programming
Quick Summary
NHL의 복잡한 플레이오프 진출 조건을 제약 프로그래밍과 트리 탐색으로 계산해, 공식 발표와 일치하는 일일 확정 시나리오를 자동 생성한 방법을 설명한다.
🖼️ 인포그래픽
🖼️ 4컷 인포그래픽
💡 한 줄 요약
NHL의 복잡한 플레이오프 진출 조건을 제약 프로그래밍과 트리 탐색으로 계산해, 공식 발표와 일치하는 일일 확정 시나리오를 자동 생성한 방법을 설명한다.
📌 핵심 요약
- NHL에서 플레이오프 진출 확정은 남은 모든 경기의 결과와 관계없이 해당 팀이 반드시 진출하는 상태를 뜻하며, 32개 팀과 복잡한 순위 결정 규칙 때문에 이를 판별하기 어렵다.
- 현재 순위에서 특정 팀이 탈락하는 남은 경기 결과가 존재하는지를 CP-SAT으로 탐색하고, 그런 결과가 없으면 이미 진출을 확정한 것으로 판정하는 0일 솔버를 구축했다.
- 향후 n일 동안 어떤 경기 결과 조합이 진출 확정을 만드는지는 경기별 결과를 계층으로 배치한 사용자 정의 트리 탐색과 0일 솔버의 반복 호출로 계산했다.
- 전처리, 가지치기, 노드 순서 휴리스틱과 추론을 적용해 대부분의 탐색 트리를 생략했으며, 1일 시나리오의 중앙 실행 시간은 분 단위였다.
- 2021–22시즌부터 2024–25시즌까지 NHL 공개 API 데이터로 검증한 결과, 시스템이 생성한 모든 진출 확정 시나리오가 NHL 공식 발표와 정확히 일치했다.
🧩 주요 포인트
- 탈락 가능한 결과의 존재 여부를 묻는 타당성 문제로 전환 → 진출 확정을 수학적으로 판정
- 일 판정 모델과 n일 트리 탐색을 결합 → 특정 경기 결과에 따른 일일 확정 조건을 자동 생성
- 개 시즌의 공식 결과와 대조하고 탐색 대부분을 가지치기 → 정확성과 실용적인 처리 속도를 함께 확인
🧠 상세 정리
1. 플레이오프 진출 확정의 의미와 계산 난점
NHL에서 한 팀이 플레이오프 진출을 확정했다는 것은 남아 있는 모든 경기의 결과가 어떻게 나오더라도 그 팀이 반드시 플레이오프에 진출한다는 뜻이다. 시즌 막바지인 보통 3월부터 NHL은 당일 경기 결과에 따라 진출을 확정할 수 있는 팀들의 조건을 매일 발표하며, 한 팀의 승점 획득이나 경쟁 팀의 패배처럼 여러 조건이 대안 형태로 제시된다. 그러나 32개 팀이 치르는 수많은 잔여 경기와 여러 단계의 순위 결정 규칙을 동시에 고려해야 하므로, 단순히 현재 승점만 비교해서는 확정 여부를 알 수 없다. 규칙이 정교해질수록 사람이 모든 가능한 결과를 검토하는 작업은 시간 소모와 오류 위험이 커지며, 이에 따라 자동화되고 수학적으로 엄밀한 판정 방식이 필요해졌다.
2. NHL 진출 구조와 순위 결정 규칙
NHL의 32개 팀은 동부와 서부의 두 콘퍼런스로 나뉘고, 각 콘퍼런스는 다시 두 디비전으로 구성된다. 전체 16개 팀이 플레이오프에 진출하며, 각 콘퍼런스에서 디비전별 상위 세 팀이 직접 진출하고 나머지 두 자리는 와일드카드 팀이 차지한다. 경기 결과는 한 팀의 관점에서 정규시간 승리, 연장 승리, 승부치기 승리, 승부치기 패배, 연장 패배, 정규시간 패배의 여섯 가지로 구분되며, 승리는 2점, 연장전이나 승부치기 패배는 1점, 정규시간 패배는 0점을 준다. 승점이 같으면 승점 백분율, 정규시간 승리 수, 정규시간과 연장 승리의 합, 전체 승리 수, 상대 전적 승점, 골 득실, 득점 순서의 일곱 단계 동률 결정 기준을 적용하므로 가능한 최종 순위 조합이 복잡해진다.
3. 0일 솔버와 제약 프로그래밍 모델
접근법의 기반인 0일 솔버는 현재 순위를 입력받아 특정 팀이 이미 플레이오프 진출을 확정했는지를 판단하는 제약 프로그래밍 모델이다. 모델은 확정 여부를 직접 증명하는 대신, 남은 모든 경기의 결과 가운데 대상 팀이 플레이오프에 진출하지 못하게 되는 조합을 찾을 수 있는지 묻는 타당성 문제로 구성된다. 그러한 조합이 하나라도 발견되면 아직 확정이 아니고, 가능한 조합이 전혀 없으면 어떤 잔여 경기 결과에서도 진출하므로 확정으로 판정한다. 이 문제는 Google OR-Tools의 CP-SAT 솔버로 계산되며, 승점뿐 아니라 NHL의 전체 동률 결정 규칙과 플레이오프 선발 구조까지 모델에 포함한다.
4. n일 전망을 위한 트리 탐색과 가지치기
0일 솔버를 바탕으로 향후 n일 동안 열리는 경기들의 어떤 결과가 특정 팀의 진출 확정을 만드는지 계산하는 사용자 정의 트리 탐색을 구성했다. 트리의 각 계층은 한 경기를 나타내고 각 노드는 그 경기의 구체적인 결과를 나타내며, 탐색 중 누적된 결과가 확정에 충분한지는 각 노드에서 0일 솔버를 호출해 판정한다. 예를 들어 승부치기 승리만으로 확정된다는 사실이 증명되면, 그보다 강한 연장 승리와 정규시간 승리에서도 확정된다는 점을 추가 계산 없이 추론할 수 있다. 또한 이미 확정이 증명된 분기에서는 이후 관련 경기의 어떤 결과도 다시 평가할 필요가 없다. 전처리, 가지치기 전략, 노드 순서 휴리스틱과 추론 알고리즘을 결합함으로써 전체 결과 조합을 일일이 탐색하지 않고도 문제를 처리한다.
5. 4개 시즌 검증과 실행 성능
시스템은 NHL 공개 API의 데이터를 사용해 2021–22시즌부터 2024–25시즌까지 네 번의 정규시즌을 대상으로 검증됐다. 이 기간에 시스템이 생성한 모든 플레이오프 진출 확정 시나리오는 NHL이 공식 발표한 시나리오와 정확히 일치해, 실제 리그 규칙과 경기 데이터를 처리하는 정확성을 확인했다. 하루 앞의 진출 확정 시나리오를 계산하는 중앙 실행 시간은 분 단위였으며, 수작업 방식보다 상당한 속도 향상을 제공했다. 대부분의 사례에서 가지치기 효율이 100%에 가까웠는데, 이는 적절한 전처리와 탐색 순서, 추론을 적용하면 탐색 트리의 대부분을 실제로 평가하지 않아도 된다는 것을 보여준다.
6. 실용적 가치와 확장 가능성
NHL과 미디어는 수작업 없이도 매일 증명 가능한 진출 확정 시나리오를 자동 생성할 수 있어 계산 시간과 전문 인력의 부담을 줄일 수 있다. 팬들은 자신이 응원하는 팀이 진출하려면 해당 팀과 경쟁 팀의 경기에서 정확히 어떤 결과가 필요한지를 구체적으로 확인할 수 있어 시즌 막바지 상황을 더 명확하게 이해할 수 있다. 스포츠 분석 측면에서는 같은 틀을 디비전 우승, 탈락 확정, 특정 시드 확보 같은 다른 목표로 확장할 수 있다. 또한 리그별 선발 구조와 순위 결정 규칙을 새로 모델링하면 다른 스포츠 리그에도 적용할 가능성이 있으며, 복잡한 조합 문제에서 수작업 대신 최적화 기법으로 확정적인 답을 구하는 사례가 된다.
🧾 핵심 주장 / 시사점
- 진출 확정을 직접 열거하는 대신 단 하나의 탈락 가능성이라도 존재하는지를 검사하면, ‘모든 잔여 결과에서 진출한다’는 조건을 제약 타당성 문제로 다룰 수 있다.
- 경기 결과 사이의 강약 관계와 이미 증명된 확정 상태를 추론에 활용한 것이 탐색 공간을 크게 줄여, 복잡한 규칙을 포함하면서도 일일 운영이 가능한 분 단위 계산을 가능하게 했다.
- 공식 발표와 4개 시즌 전체에서 정확히 일치했다는 검증은 이 방법이 이론적 모델에 그치지 않고 실제 NHL의 순위 구조와 동률 결정 절차를 재현했음을 보여준다.
✅ 액션 아이템
- 플레이오프 진출 확정을 탈락 가능 결과의 존재 여부 타당성 문제로 두고 CP-SAT 0일 솔버 판정 기준을 정의한다.
- n일 시나리오는 경기 결과 계층 트리 탐색과 0일 솔버 반복 호출로 일일 확정 조건 생성 범위를 점검한다.
- 전처리·가지치기·노드 순서 휴리스틱 효과를 1일 시나리오 중앙 실행시간 기준으로 비교해 우선 적용 대상을 정한다.
❓ 열린 질문
- 32개 팀과 복잡한 순위 규칙에서 0일 솔버가 놓치기 쉬운 탈락 가능 경계 조건은 무엇인가?
- n일 트리 탐색에서 가지치기와 추론을 강화해도 정확도를 유지하는 한계 깊이는 어디인가?
- 2021–22~2024–25 공식 발표와 일치한 결과가 이후 시즌 규칙 변화에도 같은 방식으로 일반화 가능한가?