• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EST 07:37
CET 13:37
KST 21:37
  • 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
[ASL22] Finals Preview: Sweet Victory!12[ASL22] Ro4 Preview: Mirror Mirror6[ASL22] Ro8 Preview: Within Reach5[ASL22] Ro8 Preview: In A Tizzy11[ASL22] Ro16 Preview: Holy Diver5
Community News
[BSL23] RO16 Group Stage14Weekly Cups (Nov 2-8): herO back on top?2Weekly Cups (Oct 26 - Nov 1): MaxPax, herO, Solar win0Weekly Cups (October 19-25): Clem triples first in 5.0.175Evil Geniuses - shutting down23
StarCraft 2
General
Serral's getting trashed by New Catsle's Mind Weekly Cups (Nov 2-8): herO back on top? Liquibets sc2 season 30 No more SC2 streamers on team liquid? StarCraft open world shooter announced at BlizzCon
Tourneys
soO & FanTaSy return! SC2 Kevin Scrim 4v4 (Nov 16) RSL goes to London! 2026 Offline Finals Nov 21-22 Tasteless Time Warp: SC Evo Showmatch (May 25) Sparkling Tuna Cup - Weekly Open Tournament iNu's Battles #22
Strategy
[H] ZvP Mid-Late Game: Stalkers Collossi HT
Custom Maps
Starcraft 2 Advance [G] How to playtest arcade maps [D] the control group Simple Questions/Answers
External Content
The PondCast: SC2 News & Results Mutation # 551 Robotic Revival Mutation # 550 Graveyard Shift Mutation # 549 Endless Sparkles
Brood War
General
List of top players active on ShieldBattery BW General Discussion [BSL23] RO16 Group Stage screpdb: new Starcraft reporting tool [BW] Looking for Clan Thread!
Tourneys
KCM Race Survival 2026 Season 4 BWCL Season 65 Announcement [Megathread] Daily Proleagues [BSL23] Ro16 Group C - Sunday 21:00 CET
Strategy
Infested Terran strategies in 2026 Nuke strategy worked in K-League 2026-11-09 50,000-Word Terran Builds Memo 2026-10-22 Cliff Jump Revisited (1 in a 1000 strategy)
Other Games
General Games
List of Game Threads The PlayStation 5 Stormgate/Frost Giant Megathread Nintendo Switch Thread Path of Exile
Dota 2
Can Game Data Analytics Help Players Improvements
League of Legends
[TL LoL EUW IHs] Teemo shall perish
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Community Thread
Community
General
Trading/Investing Thread European Politico-economics QA Mega-thread Russo-Ukrainian War Thread Dating: How's your luck? US Politics Mega-thread
Fan Clubs
Fan Club Resource Thread Reynor Fan Club The Flash Fan Club
Media & Entertainment
Movie Discussion! Anime Discussion Thread [Manga] One Piece
Sports
Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread
TL Community
The Automated Ban List Recent Gifted Posts
Blogs
The time I organised my…
AssyrianKing
Why I built Repalyzer (1.1.…
BlueStar
Innovate or Game Over?
TrAiDoS
ShieldBattery on Mac
Kraekkling
[ASL22] Ro4 Day1 Ticket Giv…
bITt.mAN
Can Bots Beat Pros?? Starcr…
namkraft
Customize Sidebar...

Website Feedback

Closed Threads



Active: 15566 users

[Math] Tennis Schedule

Blogs > micronesia
Post a Reply
micronesia
Profile Blog Joined July 2006
United States24813 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 States9644 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 States24813 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 States9644 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 States24813 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 States24813 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 Invitational
21:00
WardiTV Not-Summer Championshi
Lambo vs Shameless
Rogue vs uThermal
Percival vs YoungYakov
TBD vs GgMaChine
WardiTV385
ComeBackTV 332
Rex80
LiquipediaDiscussion
[ Submit Event ]
Live Streams
Refresh
StarCraft 2
mouzHeroMarine 236
ProTech144
Rex 80
Classic 15
StarCraft: Brood War
Britney 32703
Rain 1898
Jaedong 668
Mini 356
EffOrt 354
Light 285
Larva 240
firebathero 175
Killer 171
Snow 167
[ Show more ]
Rush 162
Last 146
Stork 142
Hyun 117
Shuttle 105
Pusan 96
Aegong 79
Movie 48
hero 40
Shinee 39
ToSsGirL 32
soO 26
Hm[arnc] 22
Noble 22
sorry 20
Sacsri 11
Free 9
Terrorterran 9
yabsab 4
Barracks 1
Icarus 1
Dota 2
Dendi1685
monkeys_forever334
XcaliburYe130
Counter-Strike
fl0m3586
olofmeister789
allub124
kRYSTAL_24
Other Games
singsing1466
B2W.Neo841
Lowko284
XaKoH 215
syndereN182
crisheroes162
Mew2King98
ViBE46
ArmadaUGS22
Organizations
StarCraft 2
angryscii 16
StarCraft: Brood War
lovetv 8
[ Show 12 non-featured ]
StarCraft 2
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• ChaeLyn 7
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• WagamamaTV505
League of Legends
• Jankos2293
• Stunt587
Upcoming Events
OSC
3h 23m
OSC
10h 23m
ArT vs MindelVK
MiniZergUA vs TBD
Shameless vs TBD
Ultimate Battle
23h 23m
OSC
1d 1h
OSC
1d 10h
ByuN vs MaxPax
herO vs Krystianer
Percival vs Shameless
LetaleX vs YoungYakov
Nicoract vs Gerald
GgMaChine vs ArT
CranKy Ducklings
1d 21h
WardiTV Invitational
1d 23h
IPSL
2 days
TerrOr vs IJ_Terran
rasowy vs Hazorath
BSL
2 days
TerrOr vs OyAji
UltrA vs Gosudark
Sparkling Tuna Cup
2 days
[ Show More ]
WardiTV Invitational
2 days
IPSL
3 days
Art_Of_Turtle vs KameZerg
Radley vs George
BSL
3 days
Artosis vs Dewalt
Ret vs Tech
WardiTV Weekly
3 days
PiGosaur Cup
5 days
The PondCast
5 days
GSL
6 days
Liquipedia Results

Completed

Proleague 2026-11-11
Blizzard Classic Cup 2026
HCC Season 3

Ongoing

Acropolis #5
KCM Race Survival 2026 Season 4
International ShieldBattery League
Individual League
BSL Season 23
IPSL Winter 2026-27
Calamity Cup Div. A Season 8
BLAST Rivals Fall 2026
IEM Beijing 2026
PGL Masters Bucharest 2026
Stake Ranked Episode 5
1win Private Club #2
Thunderpick World Champ. '26
ESL Pro League Season 24
Stake Ranked Episode 4
1win Private Club #1
Logitech G Play Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #3
BLAST Open Fall 2026

Upcoming

YSL S4
Sector 591
SC4ALL II: Brood War
BSL 23: Non-Korean Championship
HSC XXX
Stellar Fest 2: Lunar Cup
StarCraft2 Weekly Open Tournament 2026 Grand Finals
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
RSL Offline Finals
Underdog Cup 2026 Div 2-3
PGL Bucharest 2027
BLAST Bounty Winter 2027
PGL Major Singapore 2026
Stake Ranked Episode 6
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.