• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 05:09
CEST 11:09
KST 18:09
  • 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
[ASL21] Ro4 Preview: On Course12Code S Season 1 - RO8 Preview7[ASL21] Ro8 Preview Pt2: Progenitors8Code S Season 1 - RO12 Group A: Rogue, Percival, Solar, Zoun13[ASL21] Ro8 Preview Pt1: Inheritors16
Community News
Weekly Cups (May 4-10): Clem, MaxPax, herO win1Maestros of The Game 2 announcement and schedule !10Weekly Cups (April 27-May 4): Clem takes triple0RSL Revival: Season 5 - Qualifiers and Main Event12Code S Season 1 (2026) - RO12 Results1
StarCraft 2
General
MaNa leaves Team Liquid Weekly Cups (May 4-10): Clem, MaxPax, herO win Code S Season 1 - RO8 Preview Behind the Blue - Team Liquid History Book Weekly Cups (April 27-May 4): Clem takes triple
Tourneys
2026 GSL Season 2 Qualifiers Maestros of The Game 2 announcement and schedule ! SC2 INu's Battles#16 <BO.9> Master Swan Open (Global Bronze-Master 2) GSL Code S Season 1 (2026)
Strategy
Custom Maps
[D]RTS in all its shapes and glory <3 [A] Nemrods 1/4 players
External Content
Mutation # 525 Wheel of Misfortune The PondCast: SC2 News & Results Mutation # 524 Death and Taxes Mutation # 523 Firewall
Brood War
General
Flashes ASL S21 Ro8 Review BW General Discussion Pros React To: Leta vs Tulbo (ASL S21, Ro.8) ASL Tickets to Live Event Finals? [ASL21] Ro4 Preview: On Course
Tourneys
[ASL21] Semifinals B [ASL21] Semifinals A [Megathread] Daily Proleagues [BSL22] RO16 Group Stage - 02 - 10 May
Strategy
[G] Hydra ZvZ: An Introduction Simple Questions, Simple Answers Fighting Spirit mining rates Muta micro map competition
Other Games
General Games
Starcraft Tabletop Miniature Game Warcraft III: The Frozen Throne Stormgate/Frost Giant Megathread PC Games Sales Thread Path of Exile
Dota 2
The Story of Wings Gaming
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
Vanilla Mini Mafia Mafia Game Mode Feedback/Ideas TL Mafia Community Thread Five o'clock TL Mafia
Community
General
Russo-Ukrainian War Thread US Politics Mega-thread UK Politics Mega-thread YouTube Thread European Politico-economics QA Mega-thread
Fan Clubs
The IdrA Fan Club
Media & Entertainment
Anime Discussion Thread [Manga] One Piece [Req][Books] Good Fantasy/SciFi books
Sports
2024 - 2026 Football Thread McBoner: A hockey love story Formula 1 Discussion
World Cup 2022
Tech Support
streaming software Strange computer issues (software) [G] How to Block Livestream Ads
TL Community
The Automated Ban List
Blogs
How EEG Data Can Predict Gam…
TrAiDoS
ramps on octagon
StaticNine
Funny Nicknames
LUCKY_NOOB
Customize Sidebar...

Website Feedback

Closed Threads



Active: 1773 users

[Math] Tennis Schedule

Blogs > micronesia
Post a Reply
micronesia
Profile Blog Joined July 2006
United States24772 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 States9641 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 States24772 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 States9641 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 States24772 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 States24772 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
Next event in 51m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
ProTech162
StarCraft: Brood War
Britney 39212
Jaedong 619
Sea 412
BeSt 321
Killer 293
Larva 157
Leta 114
actioN 114
EffOrt 76
Pusan 71
[ Show more ]
HiyA 67
Sharp 42
soO 37
Bale 24
JulyZerg 21
Noble 20
yabsab 20
ajuk12(nOOB) 16
GoRush 15
Nal_rA 15
Liquid`Ret 14
NaDa 11
League of Legends
JimRising 464
Counter-Strike
olofmeister2539
Stewie2K739
shoxiejesuss737
edward40
Other Games
summit1g11190
ceh9820
monkeys_forever215
crisheroes63
Organizations
Counter-Strike
PGL34668
Other Games
gamesdonequick564
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 15 non-featured ]
StarCraft 2
• LUISG 27
• StrangeGG 21
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• LaughNgamezSOOP
• Migwel
• sooper7s
StarCraft: Brood War
• iopq 7
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
League of Legends
• Nemesis1973
• Stunt551
Upcoming Events
CranKy Ducklings
51m
Afreeca Starleague
51m
Light vs Flash
INu's Battles
1h 51m
ByuN vs herO
PiGosaur Cup
14h 51m
Replay Cast
23h 51m
Replay Cast
1d 14h
The PondCast
2 days
OSC
2 days
Replay Cast
2 days
RSL Revival
3 days
[ Show More ]
OSC
3 days
Korean StarCraft League
3 days
RSL Revival
4 days
BSL
4 days
GSL
4 days
Cure vs herO
SHIN vs Maru
BSL
5 days
Replay Cast
5 days
Replay Cast
6 days
Liquipedia Results

Completed

Proleague 2026-05-11
WardiTV TLMC #16
Nations Cup 2026

Ongoing

BSL Season 22
ASL Season 21
IPSL Spring 2026
KCM Race Survival 2026 Season 2
Acropolis #4
KK 2v2 League Season 1
BSL 22 Non-Korean Championship
SCTL 2026 Spring
RSL Revival: Season 5
2026 GSL S1
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026
BLAST Rivals Spring 2026
IEM Rio 2026
PGL Bucharest 2026
Stake Ranked Episode 1
BLAST Open Spring 2026
ESL Pro League S23 Finals
ESL Pro League S23 Stage 1&2

Upcoming

Escore Tournament S2: W7
YSL S3
Escore Tournament S2: W8
CSLAN 4
Kung Fu Cup 2026 Grand Finals
HSC XXIX
uThermal 2v2 2026 Main Event
Maestros of the Game 2
2026 GSL S2
BLAST Bounty Summer 2026: Closed Qualifier
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
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 © 2026 TLnet. All Rights Reserved.