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

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.