• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 07:06
CET 13:06
KST 21:06
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
RSL Season 3 - Playoffs Preview0RSL Season 3 - RO16 Groups C & D Preview0RSL Season 3 - RO16 Groups A & B Preview2TL.net Map Contest #21: Winners12Intel X Team Liquid Seoul event: Showmatches and Meet the Pros10
Community News
Weekly Cups (Nov 24-30): MaxPax, Clem, herO win2BGE Stara Zagora 2026 announced15[BSL21] Ro.16 Group Stage (C->B->A->D)4Weekly Cups (Nov 17-23): Solar, MaxPax, Clem win3RSL Season 3: RO16 results & RO8 bracket13
StarCraft 2
General
Chinese SC2 server to reopen; live all-star event in Hangzhou Maestros of the Game: Live Finals Preview (RO4) BGE Stara Zagora 2026 announced Weekly Cups (Nov 24-30): MaxPax, Clem, herO win SC2 Proleague Discontinued; SKT, KT, SGK, CJ disband
Tourneys
Sparkling Tuna Cup - Weekly Open Tournament RSL Offline Finals Info - Dec 13 and 14! StarCraft Evolution League (SC Evo Biweekly) Sea Duckling Open (Global, Bronze-Diamond) $5,000+ WardiTV 2025 Championship
Strategy
Custom Maps
Map Editor closed ?
External Content
Mutation # 502 Negative Reinforcement Mutation # 501 Price of Progress Mutation # 500 Fright night Mutation # 499 Chilling Adaptation
Brood War
General
The top three worst maps of all time Foreign Brood War BGH Auto Balance -> http://bghmmr.eu/ Data analysis on 70 million replays BW General Discussion
Tourneys
Small VOD Thread 2.0 [Megathread] Daily Proleagues [BSL21] RO16 Group D - Sunday 21:00 CET [BSL21] RO16 Group A - Saturday 21:00 CET
Strategy
Current Meta Game Theory for Starcraft How to stay on top of macro? PvZ map balance
Other Games
General Games
Nintendo Switch Thread Stormgate/Frost Giant Megathread Path of Exile ZeroSpace Megathread The Perfect Game
Dota 2
Official 'what is Dota anymore' discussion
League of Legends
Heroes of the Storm
Simple Questions, Simple Answers Heroes of the Storm 2.0
Hearthstone
Deck construction bug Heroes of StarCraft mini-set
TL Mafia
Mafia Game Mode Feedback/Ideas TL Mafia Community Thread
Community
General
European Politico-economics QA Mega-thread US Politics Mega-thread Things Aren’t Peaceful in Palestine Russo-Ukrainian War Thread The Big Programming Thread
Fan Clubs
White-Ra Fan Club
Media & Entertainment
Anime Discussion Thread [Manga] One Piece Movie Discussion!
Sports
2024 - 2026 Football Thread Formula 1 Discussion
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
Where to ask questions and add stream? The Automated Ban List
Blogs
I decided to write a webnov…
DjKniteX
Physical Exertion During Gam…
TrAiDoS
James Bond movies ranking - pa…
Topin
Thanks for the RSL
Hildegard
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1534 users

[Math] Tennis Schedule

Blogs > micronesia
Post a Reply
micronesia
Profile Blog Joined July 2006
United States24745 Posts
August 04 2010 01:44 GMT
#1
My friend has asked me to help him with a semi-mathematical problem. He is planning a 35 week tennis season for 10 players. Each week, 8 players will play on two courts (doubles) and 2 players will sit out. He needs to create a schedule that says who plays which weeks, who sits out each week, and who partners with and plays against who. The goal is to mix it up as much as possible so that each player plays approximately the same number of weeks, gets to play with each person as a partner, and has the most diversity with regards to their opponents.

He asked me because he knows I'm more adept at this sort of thing than him, but I'm not sure what the best/easiest way to approach this is without writing a somewhat complicated computer program (which I'm not prepared to do right now). I started playing around with Excel and did the following:

1: I created by hand a schedule which shows when players one through ten play (indicated by '1' ) and when they sit out (indicated by a blank). I wanted to randomize the order of weeks so I went to http://www.random.org/sequences/ and generated a randomized string from 1 to 35. I pasted it vertically on the rightmost column and sorted it as seen in picture 2.

Image 1:
http://img34.imageshack.us/img34/7913/tennisschedule1.jpg

Image 2:
http://img535.imageshack.us/img535/7431/tennisschedule2.jpg

The hard part now would be deciding who plays on which court and which team each week so the work I've done so far might have been a waste (not that it took long). I hoping to generate discussion about how to do this (there's probably some online tool that does it all automatically but I am also interested in ways to accomplish this goal).

*****
ModeratorThere are animal crackers for people and there are people crackers for animals.
kineSiS-
Profile Blog Joined September 2009
Korea (South)1068 Posts
Last Edited: 2010-08-04 01:49:03
August 04 2010 01:48 GMT
#2
I'll try doing it. Er... I guess I'll pm you.

Nvm..... -_- I was thinking math, but more mathematical computing.

I mean Mathematical Programming.
brian
Profile Blog Joined August 2004
United States9633 Posts
Last Edited: 2010-08-04 01:52:53
August 04 2010 01:52 GMT
#3
put all the names out in twice

with the name on top of itself

like

BOB JIM KIM
BOB JIM KIM

then move the bottom row once for each week.

last two people sit out.

the rest i just dont understand :D
micronesia
Profile Blog Joined July 2006
United States24745 Posts
August 04 2010 01:56 GMT
#4
Er, to clarify a bit. Doubles in tennis is when two people are on a team and against two people on a different team. There are two courts. That means Person 1 and 2 are playing against person 3 and 4. Likewise, person 5 and 6 are playing against person 7 and 8. Person 9 and 10 are sitting out. Each week we mix it up so that each person gets to be partners with everyone and against everyone, etc.
ModeratorThere are animal crackers for people and there are people crackers for animals.
brian
Profile Blog Joined August 2004
United States9633 Posts
Last Edited: 2010-08-04 02:01:19
August 04 2010 02:00 GMT
#5
so my answer was completely useless

lol. you didnt have to clarify i just should have read more carefully.

8 players on 2 courts should have given it away.
igotmyown
Profile Blog Joined April 2009
United States4291 Posts
August 04 2010 02:01 GMT
#6
10 person magic square, column 9 and 10 are byes, column 1 partners with 2, plays 3 and 4.

For 35 weeks, there's a more generalized version, but I forget what it's called.
qrs
Profile Blog Joined December 2007
United States3637 Posts
Last Edited: 2010-08-04 03:19:12
August 04 2010 02:10 GMT
#7
On August 04 2010 10:44 micronesia wrote:
My friend has asked me to help him with a semi-mathematical problem. He is planning a 35 week tennis season for 10 players. Each week, 8 players will play on two courts (doubles) and 2 players will sit out. He needs to create a schedule that says who plays which weeks, who sits out each week, and who partners with and plays against who. The goal is to mix it up as much as possible so that each player plays approximately the same number of weeks, gets to play with each person as a partner, and has the most diversity with regards to their opponents.

Well, it's not hard to see that each player should play for 28 weeks (8/10 of 35).

As far as pairings are concerned, there will be 140 pairings made (4 * 35), using the 45 possible pairs (10 choose 2) available. 140/45 (or 28/9) is almost exactly 3, so everyone can pair with everyone else 3 times, while 5 pairs will play with each other a fourth time.

For diversity of opponents, each player can potentially face 36 pairs that do not include himself (9 choose 2). He can only play 28 of them, however.

To actually create the schedule, I haven't thought about this too much, but would a naive iterative approach be too much work? For instance, you could start by randomly assigning the 5 pairs who partner an extra time (say, 1-2, 3-4, 5-6, 7-8, 9-10). Then you could start distributing each of the 45 pairs over 3 or 4 days. You could do the first few without overlapping. After that you have to start keeping in mind the rules about diversity: all you have to worry about is pairing a group twice with the same player on the opposite side. Maybe it would help to keep a master list for each player (of the 10) of which groups (of the 36) he has faced so far: that would only be 280 entries; seems manageable.
'As per the American Heart Association, the beat of the Bee Gees song "Stayin' Alive" provides an ideal rhythm in terms of beats per minute to use for hands-only CPR. One can also hum Queen's "Another One Bites The Dust".' —Wikipedia
xalo
Profile Blog Joined August 2009
Peru80 Posts
August 04 2010 02:37 GMT
#8
you can use linear programming and solve it in lindo if that helps, but there would be a lot of variables and equations
overpool
Profile Joined April 2008
United States191 Posts
Last Edited: 2010-08-07 18:58:44
August 04 2010 03:02 GMT
#9
Interesting problem, I'll play around with it and see if I can come up with anything.

edit: Well, I was able to enumerate every possible combination of "different" player configurations, by listing all permutations of the numbers from 1-10 and then eliminating duplicates. Each permutation of {1,2,...10} was represented as {(((p1,p2),(p3,p4)), ((p5,p6),(p7,p8))), (p9,p10)} , where {} brackets mean order matters, and parens () mean order doesn't matter. For each permutation, I sorted everything in parentheses. Then I removed duplicate permutations.

Here's a file with all different player configurations. The only problem is that there are 14175 of these combinations, so you'll need to choose a subset of these that maximizes "diversity". To do this, you'll first need to define "diversity" more concretely, e.g.; is it more important that a player's partner is not repeated, even if it means he plays the same opponents multiple times?
yay i love tl events
JodoYodo
Profile Blog Joined May 2009
Canada1772 Posts
August 04 2010 04:09 GMT
#10
I'm pretty sure this is a difficult problem to solve with an actual optimal solution; it's much like a minweight matching problem, but it's not bipartite so the problem is probably NP hard.

Don't listen to the linear programming guy, you'd have to use integer programming to model it properly, in which case you're probably better off just using some naive iterated method.
Dance dance dance 'till we run this town!
micronesia
Profile Blog Joined July 2006
United States24745 Posts
August 07 2010 22:25 GMT
#11
On August 04 2010 12:02 overpool wrote:
Interesting problem, I'll play around with it and see if I can come up with anything.

edit: Well, I was able to enumerate every possible combination of "different" player configurations, by listing all permutations of the numbers from 1-10 and then eliminating duplicates. Each permutation of {1,2,...10} was represented as {(((p1,p2),(p3,p4)), ((p5,p6),(p7,p8))), (p9,p10)} , where {} brackets mean order matters, and parens () mean order doesn't matter. For each permutation, I sorted everything in parentheses. Then I removed duplicate permutations.

Here's a file with all different player configurations. The only problem is that there are 14175 of these combinations, so you'll need to choose a subset of these that maximizes "diversity". To do this, you'll first need to define "diversity" more concretely, e.g.; is it more important that a player's partner is not repeated, even if it means he plays the same opponents multiple times?

Wow that's really cool. Yeah I understand I'm being a bit unclear about 'diversity' but that's just because we aren't that picky. Basically, as long as everyone plays the same number of weeks (preferably spread out but not a necessity) and gets to play with each partner approximately the same number of times, and gets to play nearly as many possible opponent-combinations as possible, it's good enough! Any more particular guidelines is unnecessary from my perspective but perfectly welcome if anyone wants to impose it.

Maybe I can just pick 35 random lines from there until it meets the requirements:

1) Each person plays the same number of weeks
2) Each person plays at least twice with each partner
3) Each person does not play the same opponent pair twice in the same season

Would that be fairly easy to do?
ModeratorThere are animal crackers for people and there are people crackers for animals.
Galois
Profile Blog Joined August 2010
United States124 Posts
Last Edited: 2010-08-08 00:12:12
August 08 2010 00:04 GMT
#12
i made this for another forum because they were wanting to have a new way to hold their tournament season whilst making it as fair as possible and while taking into account forfeitted games. i think this would help you ensure the first requirement you just made. i would imagine the other two are much easier to figure out:

http://img41.imageshack.us/img41/1887/formatw.png

http://img204.imageshack.us/img204/8097/format2.png

^^ in this one up there, the second picture, at the end the comment in gray wasn't completely true. let the decision lie with the team against whom the winning team will play next.

http://img257.imageshack.us/img257/2994/format3.png

^^ at the end of this picture, replace the code i wrote there with the code in the fourth picture, below~

http://img692.imageshack.us/img692/3570/format4.png

I felt like such a baller back then when I thought all of that up completely on my own.


I'll think about the other two requirements for you.
It's gonna take a lot to drag me away from you / There's nothing that a hundred men or more could ever do
overpool
Profile Joined April 2008
United States191 Posts
August 08 2010 00:46 GMT
#13
On August 08 2010 07:25 micronesia wrote:
Show nested quote +
On August 04 2010 12:02 overpool wrote:
Interesting problem, I'll play around with it and see if I can come up with anything.

edit: Well, I was able to enumerate every possible combination of "different" player configurations, by listing all permutations of the numbers from 1-10 and then eliminating duplicates. Each permutation of {1,2,...10} was represented as {(((p1,p2),(p3,p4)), ((p5,p6),(p7,p8))), (p9,p10)} , where {} brackets mean order matters, and parens () mean order doesn't matter. For each permutation, I sorted everything in parentheses. Then I removed duplicate permutations.

Here's a file with all different player configurations. The only problem is that there are 14175 of these combinations, so you'll need to choose a subset of these that maximizes "diversity". To do this, you'll first need to define "diversity" more concretely, e.g.; is it more important that a player's partner is not repeated, even if it means he plays the same opponents multiple times?

Wow that's really cool. Yeah I understand I'm being a bit unclear about 'diversity' but that's just because we aren't that picky. Basically, as long as everyone plays the same number of weeks (preferably spread out but not a necessity) and gets to play with each partner approximately the same number of times, and gets to play nearly as many possible opponent-combinations as possible, it's good enough! Any more particular guidelines is unnecessary from my perspective but perfectly welcome if anyone wants to impose it.

Maybe I can just pick 35 random lines from there until it meets the requirements:

1) Each person plays the same number of weeks
2) Each person plays at least twice with each partner
3) Each person does not play the same opponent pair twice in the same season

Would that be fairly easy to do?

Hm, choosing randomly might not be efficient enough to be viable as only a small percent of random combinations would fulfill even the most simple of requirements. Unfortunately, generating combinations that fit such requirements is above my ability level (just a high school student ), but I'm sure there's someone on TL who could do it. For instance, Day[9] is strong in combinatorics iirc.
yay i love tl events
Galois
Profile Blog Joined August 2010
United States124 Posts
Last Edited: 2010-08-08 01:44:35
August 08 2010 00:51 GMT
#14
Okay here's what I got:

These are all of the possible partnerships:
http://img811.imageshack.us/img811/5302/sany0110.jpg


This is how to get each team onto each court an equal number of times throughout the 10 weeks:
http://img186.imageshack.us/img186/634/sany0109d.jpg


Denote a group of 4 players, say α through δ, and have cycle through the team labelled as λ over the first group of 5 weeks. Then when the 5 weeks are up as shown in the second picture, redo the process of assigning players to groups as you please.


Then you have your 35 weeks in sets of 5 repeated over and over with at least 2 repeating partnerships per player, as you want.
It's gonna take a lot to drag me away from you / There's nothing that a hundred men or more could ever do
micronesia
Profile Blog Joined July 2006
United States24745 Posts
August 08 2010 03:28 GMT
#15
On August 08 2010 09:51 Galois wrote:
Okay here's what I got:

These are all of the possible partnerships:
http://img811.imageshack.us/img811/5302/sany0110.jpg


This is how to get each team onto each court an equal number of times throughout the 10 weeks:
http://img186.imageshack.us/img186/634/sany0109d.jpg


Denote a group of 4 players, say α through δ, and have cycle through the team labelled as λ over the first group of 5 weeks. Then when the 5 weeks are up as shown in the second picture, redo the process of assigning players to groups as you please.


Then you have your 35 weeks in sets of 5 repeated over and over with at least 2 repeating partnerships per player, as you want.

Wow your notation is confusing the hell out of me... first of all I stink with greek letters and second of all the week # symbols you are using I haven't seen before in my recollection.
ModeratorThere are animal crackers for people and there are people crackers for animals.
Galois
Profile Blog Joined August 2010
United States124 Posts
Last Edited: 2010-08-08 03:44:26
August 08 2010 03:41 GMT
#16
...but I thought that being an obnoxious elitist was what this community was all about. :x

it doesn't matter what the letters or symbols are, though~



you create 5 groups of 2. each of these 5 groups are represented by the letters λ through ο. the players in these guys are chosen as you wish so long as they are selected from the list in the first picture.

the second picture shows the play schedule that you repeat. even though there are a bunch of ways to scatter about the random teams and games, the matches can be rearranged to follow the pattern in the second post to get everybody to play together twice.

then at the end of the 35 weeks everyone will have had their time playing with eachother at least twice.

this is my reasoning in the other post.



edit - i will work harder to try to illustrate more in another post. hopefully i won't die in a duel immediately after staying up all night working on this pressing issue
It's gonna take a lot to drag me away from you / There's nothing that a hundred men or more could ever do
Please log in or register to reply.
Live Events Refresh
WardiTV 2025
12:00
Group Stage 1 - Group B
WardiTV234
TaKeTV 117
Rex70
ComeBackTV 7
LiquipediaDiscussion
Sparkling Tuna Cup
10:00
Weekly #114
TriGGeR vs SKillousLIVE!
Percival vs TBD
CranKy Ducklings225
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
Rex 68
SpeCial 68
trigger 50
StarCraft: Brood War
BeSt 1568
Hyuk 808
Jaedong 778
Stork 413
EffOrt 383
firebathero 366
Last 272
Killer 262
Hyun 241
910 221
[ Show more ]
Mini 197
ZerO 167
sorry 99
Bale 99
Barracks 90
ggaemo 61
Mind 52
Sea.KH 45
Shinee 42
Sharp 40
zelot 36
Noble 26
ToSsGirL 19
HiyA 16
Dota 2
singsing4144
XcaliburYe534
League of Legends
C9.Mang0420
Counter-Strike
x6flipin370
Super Smash Bros
Mew2King39
Westballz18
Heroes of the Storm
Khaldor231
Other Games
B2W.Neo1049
RotterdaM181
nookyyy 47
ZerO(Twitch)21
Organizations
StarCraft: Brood War
CasterMuse 37
lovetv 6
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
sctven
[ Show 13 non-featured ]
StarCraft 2
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• C_a_k_e 2695
• lizZardDota2127
League of Legends
• Jankos4051
Upcoming Events
OSC
2h 54m
IPSL
4h 54m
Bonyth vs KameZerg
BSL 21
7h 54m
Bonyth vs StRyKeR
Tarson vs Dandy
Replay Cast
20h 54m
Wardi Open
23h 54m
StarCraft2.fi
1d 3h
Monday Night Weeklies
1d 4h
Replay Cast
1d 11h
WardiTV 2025
1d 23h
StarCraft2.fi
2 days
[ Show More ]
PiGosaur Monday
2 days
StarCraft2.fi
3 days
Tenacious Turtle Tussle
3 days
The PondCast
3 days
WardiTV 2025
3 days
StarCraft2.fi
4 days
WardiTV 2025
4 days
StarCraft2.fi
5 days
RSL Revival
5 days
IPSL
6 days
Sziky vs JDConan
RSL Revival
6 days
Classic vs TBD
herO vs Zoun
Liquipedia Results

Completed

Proleague 2025-12-04
RSL Revival: Season 3
Light HT

Ongoing

C-Race Season 1
IPSL Winter 2025-26
KCM Race Survival 2025 Season 4
YSL S2
BSL Season 21
CSCL: Masked Kings S3
Slon Tour Season 2
Acropolis #4 - TS3
WardiTV 2025
META Madness #9
Kuram Kup
SL Budapest Major 2025
ESL Impact League Season 8
BLAST Rivals Fall 2025
IEM Chengdu 2025
PGL Masters Bucharest 2025
Thunderpick World Champ.
CS Asia Championships 2025
ESL Pro League S22

Upcoming

BSL 21 Non-Korean Championship
Acropolis #4
IPSL Spring 2026
Bellum Gens Elite Stara Zagora 2026
HSC XXVIII
Big Gabe Cup #3
RSL Offline Finals
PGL Cluj-Napoca 2026
IEM Kraków 2026
BLAST Bounty Winter 2026
BLAST Bounty Winter Qual
eXTREMESLAND 2025
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2025 TLnet. All Rights Reserved.