공정한 출전 기회 분배와 고착화 방지를 위한 6단계 수학적 최적화 매칭 엔진
테니스 복식 경기는 선수 간의 실력 밸런스(NTRP 급수)와 파트너 다양성이 경기 만족도를 결정짓는 가장 핵심적인 요소입니다. 하지만 테니스 동호회와 클럽 모임에서 운영진이 화이트보드나 종이 대진표를 수기로 작성할 때, 다음과 같은 3대 고질적 문제점이 필연적으로 발생합니다:
진행자의 친분이나 목소리가 큰 사람 위주로 코트에 자주 들어가며, 조용한 회원은 1~2게임 덜 치르고 귀가하게 됩니다.
시간에 쫓기다 보면 직전에 같이 친 사람끼리 또 파트너가 되거나 같은 상대와 반복해서 경기하여 모임의 흥미가 반감됩니다.
경기가 끝난 뒤 다음 4명을 고민하고 선정하느라 빈 코트가 5~10분씩 방치되어 비싼 코트 대관료가 낭비됩니다.
테니스 복식에서는 초급자(NTRP 2.0~2.5)부터 상급자(NTRP 4.0 이상)까지 다양한 회원이 함께 참여합니다. 상급자끼리만 팀을 이루면 일방적인 경기가 되어 양 팀 모두 재미가 반감되며, 초보자가 연속 실책으로 위축되는 문제가 생깁니다. 따라서 다양한 회원과의 파트너 순환을 보장하면서도 코트 출전 기회를 1/N로 균등하게 배분하는 자동화 알고리즘이 필수적입니다.
매치 포인트(Match Point)는 단순한 무작위(Random) 추첨이 아니라, 과거 대진 데이터와 누적 경기 수를 기반으로 공정성(Fairness)과 다양성(Diversity)을 동시에 만족시키는 최적해를 수 밀리초(ms) 만에 연산합니다.
모임의 모든 참석자 중 당일 누적 경기 수가 가장 적은 인원을 1순위 후보군으로 추출합니다. 예를 들어 2게임을 치른 회원과 1게임을 치른 회원이 있다면, 1게임을 치른 회원이 무조건 먼저 코트 출전 기회를 획득합니다.
누적 경기 수가 동일한 동률군 내에서는 코트 밖에서 가장 오랫동안 대기한 회원이 앞 순위를 차지합니다. 이로 인해 특정 회원이 코트 밖에서 너무 긴 시간 동안 지루하게 기다리는 일이 원천 차단됩니다.
선발된 4명의 선수로 구성할 수 있는 복식 대진의 경우의 수는 총 3가지[(A-B vs C-D), (A-C vs B-D), (A-D vs B-C)]입니다. 이 중 오늘 이미 파트너로 호흡을 맞춘 적이 있는 페어에는 높은 제곱 페널티($w_p$)를 부과하여, 새로운 파트너와 함께 경기할 수 있는 조합을 선택합니다.
파트너뿐만 아니라 네트 반대편에서 상대편으로 겨루었던 횟수에도 가중치 감점($w_o$)을 적용합니다. 이를 통해 동호회 내의 모든 회원들이 하루 동안 골고루 섞여 교류할 수 있는 풍부한 대진 다양성을 확보합니다.
테니스 복식 경기의 질을 높이기 위해 남복(남4), 여복(여4), 혼복(남2·여2) 종목을 최우선으로 지향합니다. 남3·여1 또는 남1·여3과 같은 잡복 대진은 성비가 맞지 않는 불가피한 경우에만 엄격하게 제한하여 배정됩니다.
모임 시작 라운드나 여러 코트가 동시에 비는 상황에서는 코트를 1개씩 쪼개어 배정하지 않고, 비어있는 모든 코트(예: 2~3개 코트, 8~12명)의 선수를 일괄 선발하여 클럽 전체 관점에서 중복도가 가장 낮은 최적의 글로벌 조합을 동시 배정합니다.
선발된 4인 후보군이 형성하는 조합 $C$에 대한 종합 페널티 함수 $Cost(C)$는 다음과 같이 정의됩니다:
※ 고착화 완화(Fairness Relaxation) 알고리즘:
참가 인원이 소수(8~12명)인 클럽에서는 후반부 라운드로 갈수록 모든 선수가 이미 파트너/상대로 만났을 가능성이 커집니다.
이 경우 알고리즘은 동률군 내에서 유연하게 후보군을 교체(Swap)하는 완화 메커니즘을 가동하여,
동일한 인원끼리 연속으로 3게임 이상 묶이는 현상을 줄이도록 설계했습니다.
Match Point는 참가자 경기 수 균등화, 대기 시간 최소화, 파트너 및 상대방 중복 방지라는 복합적인 목적을 조화롭게 달성하기 위해 최적화 모델을 적용하고 있습니다.
| 비교 항목 | 기존 수기 대진표 | 단순 무작위(Random) 추첨 | Match Point 가중치 최적화 |
|---|---|---|---|
| 경기 수 분배 방식 | 진행자 기억이나 임의 배정에 의존하여 편차 발생 가능 | 확률적 추첨으로 인해 짧은 모임 시간 내 출전 횟수 불균형 발생 | 당일 누적 경기 수를 1순위로 추적하여 균등 분배 지향 |
| 대기 시간 관리 | 체계적 기록 부재로 특정 인원의 장시간 코트 밖 대기 가능 | 대기 시간이 반영되지 않아 코트 밖 대기 편차 발생 | 경기 수가 같을 때 최장 대기자 우선 선발로 장시간 대기 방지 |
| 파트너 및 대진 다양성 | 직전 조합이 기억에 남아 특정 인원 간 반복 배정 빈번 | 과거 이력을 고려하지 않아 동일 파트너 연속 배정 위험 | 이전 파트너·상대 전적에 제곱 페널티를 부여하여 다양성 확보 |
| 코트 유휴 시간 | 다음 경기 편성 고민으로 빈 코트 발생 및 시간 소모 | 코트별 개별 추첨으로 다중 코트 일괄 최적화 한계 | 빈 코트 발생 즉시 수 밀리초(ms) 단위로 다음 최적 조합 자동 산출 |
미국테니스협회(USTA) 및 대한테니스협회(KTA)에서 공인하는 NTRP(National Tennis Rating Program) 기준은 동호회에서 균형 있는 복식 대진을 편성하기 위한 가장 객관적인 척도입니다:
| NTRP 등급 | 동호인 분류 | 스트로크 및 서브 수준 | 복식 전술 및 네트 플레이 |
|---|---|---|---|
| NTRP 2.0 ~ 2.5 | 테린이 / 입문자 | 기본적인 포핸드 랠리가 가능하나 방향 제어가 어렵고, 백핸드 범실이 많으며 서브는 더블폴트 빈도가 높음. | 네트 대시가 낯설며 주로 베이스라인에 머무름. 복식 포지셔닝 개념을 익히는 단계. |
| NTRP 3.0 | 초중급자 (일반 동호인) | 중간 속도의 공을 안정적으로 랠리할 수 있으며 포핸드 방향 조절 가능. 세컨드 서브를 안전하게 넣음. | 기본적인 전위 발리가 가능하며, 찬스 볼에서 포인트를 마무리할 수 있으나 로브 대처가 불안정함. |
| NTRP 3.5 | 중급자 (클럽 주력) | 스핀(탑스핀/슬라이스)을 구사하며 속도와 깊이를 조절. 서브의 속도와 코스 선택이 가능함. | 적극적인 전위 포칭(Poaching)을 시도하며, 파트너와의 코트 커버 및 스위치 플레이가 원활함. |
| NTRP 4.0 ~ 4.5 | 상급자 (동호인 대회 입상권) | 강력한 위닝 샷과 정교한 패싱샷 구사. 서브 앤 발리, 세컨 서브에서도 주도권을 뺏기지 않음. | 상대의 약점을 파고드는 전략적 플레이 구사. 날카로운 앵글 발리와 완벽한 오버헤드 스매시 구사. |