• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 19:18
CEST 01:18
KST 08:18
  • 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
Serral wins HomeStory Cup 2914Serral wins Maestros of the Game 243ByuL, and the Limitations of Standard Play3Team Liquid Map Contest #22: Results and Winners7Code S Season 2 (2026): RO4 and Finals Preview12
Community News
ZeroSpace Early Access is Now Live!17Weekly Cups (July 13-19): Terran & Protoss rise; Zerg falters2Balance hotfix patch 5.0.16b (July 16)87Reynor: GSL Loss Wasn't About Preparation Format16[IPSL] Spring 2026 Grand Finals - This Weekend!18
StarCraft 2
General
Balance hotfix patch 5.0.16b (July 16) How would you feel about frequent/monthly balance patches for SC2? Clem: "I don't have that much hope in Blizzard" Weekly Cups (July 13-19): Terran & Protoss rise; Zerg falters [D] Wireframe Casting Removed
Tourneys
RSL Revival: Season 6 - Qualifiers and Main Event Master Swan Open (Global Bronze-Master 2) WardiTV Summer Cup 2026 GSL CK #5 Race War HomeStory Cup 29
Strategy
[G] Having the right mentality to improve
Custom Maps
[M] (2) Industrial Park New Map Maker - Looking for Advice - Love or Hate
External Content
Mutation # 535 Assembly of Vengeance The PondCast: SC2 News & Results Mutation # 534 Burning Evacuation Mutation # 533 Die Together
Brood War
General
BW General Discussion BGH Auto Balance -> http://bghmmr.eu/ Animated Gateway HORROR STARCRAFT MOVIE How Famous was FlaSh before his Debut?
Tourneys
[Megathread] Daily Proleagues [IPSL] Spring 2026 Grand Finals - This Weekend! Escore Tournament - Season 3 Small VOD Thread 2.0
Strategy
Simple Questions, Simple Answers PvT advise for noobs Fighting Spirit mining rates Creating a full chart of Zerg builds
Other Games
General Games
Path of Exile General RTS Discussion Thread Diablo IV ZeroSpace Early Access is Now Live! ZeroSpace at Steam NextFest - Last free demo
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
League of Legends
TSM pausing esports and CLG Dead
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Power Rank NeO.D_StephenKing vs This Guy From 1 Million Dance TL Mafia Community Thread Vanilla Mini Mafia
Community
General
US Politics Mega-thread Artificial Intelligence Thread Russo-Ukrainian War Thread How to buy a book - shipping from Korea to Europe The Games Industry And ATVI
Fan Clubs
The IdrA Fan Club The HerO Fan Club!
Media & Entertainment
Anime Discussion Thread Series you have seen recently... Movie Discussion! [Req][Books] Good Fantasy/SciFi books
Sports
2024 - 2026 Football Thread TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion MLB/Baseball 2023 McBoner: A hockey love story
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread Simple Questions Simple Answers FPS when play League Of Legend on laptop
TL Community
Northern Ireland Global Starcraft The Automated Ban List
Blogs
Hello guys!
LIN1s
Role of Gaming on Mental Hea…
TrAiDoS
ASL S22 English Commentary…
namkraft
Poker (part 2)
Nebuchad
An Exploration of th…
waywardstrategy
ramps on octagon
StaticNine
Customize Sidebar...

Website Feedback

Closed Threads



Active: 3610 users

[Math] Tennis Schedule

Blogs > micronesia
Post a Reply
micronesia
Profile Blog Joined July 2006
United States24782 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 States9642 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 States24782 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 States9642 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 States24782 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 States24782 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 42m
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
ViBE202
PiGStarcraft50
StarCraft: Brood War
Artosis 478
NaDa 27
Dota 2
NeuroSwarm77
League of Legends
Doublelift3769
Counter-Strike
minikerr29
Super Smash Bros
hungrybox650
Other Games
tarik_tv7419
summit1g7316
Coldzera 1007
shahzam473
Day[9].tv406
ROOTCatZ176
JuggernautJason167
SpeCial151
Livibee86
Trikslyr52
Organizations
Other Games
gamesdonequick877
StarCraft 2
Blizzard YouTube
StarCraft: Brood War
BSLTrovo
[ Show 17 non-featured ]
StarCraft 2
• Hupsaiya 95
• Kozan
• sooper7s
• AfreecaTV YouTube
• Migwel
• intothetv
• LaughNgamezSOOP
• IndyKCrew
StarCraft: Brood War
• blackmanpl 29
• iopq 9
• STPLYoutube
• ZZZeroYoutube
• BSLYoutube
Dota 2
• masondota21031
Other Games
• imaqtpie850
• Day9tv406
• Shiphtur391
Upcoming Events
OSC
42m
CrankTV Team League
11h 42m
Replay Cast
1d
CrankTV Team League
1d 11h
Big Brain Bouts
1d 16h
Soulspirit vs goblin
TriGGeR vs Bunny
Korean StarCraft League
2 days
Afreeca Starleague
2 days
RSL Revival
2 days
Serral vs SHIN
herO vs Solar
Online Event
2 days
Replay Cast
3 days
[ Show More ]
RSL Revival
3 days
Clem vs ByuN
Rogue vs Lambo
OSC
3 days
WardiTV Weekly
4 days
Sparkling Tuna Cup
5 days
PiGosaur Cup
6 days
The PondCast
6 days
Kung Fu Cup
6 days
Patches Events
6 days
Liquipedia Results

Completed

Proleague 2026-07-21
HSC XXIX
Eternal Conflict S2 E3

Ongoing

CSL 2026 Summer (S21)
KCM Race Survival 2026 Season 3
Proleague 2026-07-22
RSL Revival: Season 6
CranK Gathers Season 4: BW vs SC2 Team League
SCTL 2026 Spring
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2
CS Asia Championships 2026
Asian Champions League 2026
IEM Atlanta 2026
PGL Astana 2026

Upcoming

Escore Tournament S3: W4
ASL S22 SEASON OPEN Day 2
Escore Tournament S3: W5
ASL Season 22: Qualifier #1
ASL Season 22: Qualifier #2
CSLAN 4
ASL Season 22
HSC XXX
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
Light Tournament 2026
Eternal Conflict S2 Finale
ESL Pro League Season 24
Stake Ranked Episode 4
Logitech G Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #5
BLAST Open Fall 2026
Esports World Cup 2026
BLAST Bounty Summer 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.