정수선형계획법으로 팀 짜기

2006년의 한 워크숍을 진행하면서
팀을 짜는데, 모든 팀이 비슷한 조건을 갖도록 잔기술을 썼던 적이 있습니다.
기준은 평균 실력, 평균 연령, 성비 같은 것들을 모두 비슷하게 맞추고
가능한 다른 곳에서 온 사람들이 섞이도록 했는데요. 이게 손으로 대충해도 되지만
문제는 신청을 한 분이 모두 오는 게 아니라, 몇몇 분들이 빠지거나 지각해서
미리 팀을 짜도 헛수고라 빨리빨리 모두 고려해서 좋은 팀 구성을 해야해서
자동화를 해야 했습니다.

그래서 당시에는 학교에 사이트 라이선스가 있어서
ILOG OPL정수계획(IP)
했었는데요. 얼마 전에 창준형이 그 소스를 참고하고 싶어 하셔서
찾았는데 소스가 없어졌더군요. 크흐. 그래서 생각난 김에 한 번 오픈소스 선형계획 툴킷인
GLPK용으로 만들어 봤습니다.

모델 코드, 데이터 예제

예제는 누구나 쉽게 데이터 성질을 해석할 수 있도록(;;) 소녀시대, 브라운 아이드 걸스, 원더걸스를 모아놓고 수학캠프를 하는 것을 가정하고(;;;)
최대한 다른 그룹끼리 섞이게, 팀 간 평균 나이, 수학실력, 성비는 비슷하게 하도록 하는데,
수학실력은 몰라서 관련이 있을리는 만무하지만 epg 스타정보에서 인기순위로 대충 매기고, 성비는 모두 여자라
제 맘대로 다수를 남자로 바꿨습니다. ^.~

자 그러면 시험삼아 예제 데이터를 한 번 해 볼까요! 팀은 6개로 나누는 것으로 하고, 우선 제대로 돌아가는지 보기
위해 멤버 수만 같게 맞추는 걸 조건으로 해 보면 결과가..

구성 성비(가상) 평균 나이 평균 EPG 인기
A 제시카 써니 티파니 1:2 21.0 4.33
B 가인 제아 선미 2:1 22.7 2.7
C 태연 윤아 예은 2:1 20.7 5.0
D 수영 서현 선예 2:1 20.0 3.0
E 효연 미료 소희 2:1 22.0 3.0
F 유리 나르샤 유빈 3:0 23.3 3.0

팀 안의 인원 수만 맞지, 어느 하나도 비슷하게 흩어진 게 없습니다. 특히 B, C팀은 여러모로 차이가 많이 나서 비슷한 팀구성 목표에 맞지 않고요, A팀은 소녀시대만 있죠. 그럼 앞에서 언급한 4가지 조건 모두를 맞춰서 최적화한 결과는.. (120초 제한으로 풀어서 최적해는 아님)

구성 성비(가상) 평균 나이 평균 EPG 인기
A 제시카 가인 예은 2:1 21.7 3.7
B 태연 서현 유빈 2:1 20.7 3.7
C 티파니 제아 선미 2:1 22.0 3.7
D 유리 나르샤 소희 2:1 22.0 3.3
E 효연 수영 선예 2:1 20.7 3.3
F 써니 윤아 미료 2:1 22.7 3.3

그런대로 비슷비슷한 팀들로 구성이 됐습니다~ 재미있는 수학시간이 될 것 같네요. -ㅇ-;

사실 이 문제 같은 경우에는 결정하는 변수가 모두 정수라서 (정수가 적을수록 쉽게 구할 수 있음) 사실 전수조사에 주먹구구 좀 넣어서 돌리는 거나 큰 차이는 안 납니다만.. 그래도 재미로~ ^.^;;

6 thoughts on “정수선형계획법으로 팀 짜기”

  1. Pingback: Rogan's blog
  2. 아.. 몇달전에 이런 비슷한 작업했었는데.. 그냥 대충 해버렸다는, 다 읽고보니 학교에서 배운 내용인데.. ㅡㅜ;.. 덕분에 오래된 미심적은 코드를 꺼내보겠네요.. 감사.~

    퍼키님의 블로그는 항상 공부거리가 있어서 좋아요..

Comments are closed.