|
||||
|
11-18-2015, 02:28 PM | #41 |
Minors (Double A)
Join Date: Oct 2015
Posts: 145
|
The next feature I'd like to add is off-limits days of the week. My inkling is that making that change will really help out the scheduler, since it provides some inbuilt structure to the calendar.
|
11-18-2015, 02:28 PM | #42 |
All Star Reserve
Join Date: Sep 2005
Location: The Hague,Netherlands
Posts: 839
|
Well, i simulated the regular season just to see which team would clinch the championship, but when i get to August 14th, all games are played, while when i looked at the schedule grid it said the last regular season games would be played on October 13th, i guess i have done something wrong...
|
11-18-2015, 02:31 PM | #43 |
All Star Reserve
Join Date: Sep 2005
Location: The Hague,Netherlands
Posts: 839
|
Some screenshots:
|
11-18-2015, 02:44 PM | #44 | |
Minors (Double A)
Join Date: Oct 2015
Posts: 145
|
Quote:
Edit: 94 games for an early April start date + 135 days of schedule yields August 14th—did you start later than April? Last edited by Fishbreath; 11-18-2015 at 02:53 PM. |
|
11-18-2015, 03:56 PM | #45 |
Major Leagues
Join Date: Aug 2014
Posts: 349
|
Lots of 1 game series in there
|
11-18-2015, 04:08 PM | #46 |
Minors (Double A)
Join Date: Oct 2015
Posts: 145
|
Yup, the settings file prefers 4-game series against divisional opponents, and 1-game series against interdivisional opponents. A limitation of the code is that it prefers to play two or more series against every opponent, and changes the pool sizes to do so, so it can't generate a schedule, just yet, where a team plays e.g. a single two-game series against a large number of other teams. In that case it generates smaller pools and falls back to the uneven-pool scheduling code, as described in the readme, yielding some teams with matchup counts like this, playing six opponents, including one divisional opponent, five times, and some which play five opponents, including one divisional opponent, six times.
Code:
T11 schedule debug 94 games 48H/46A Divisional 64 games 32H/32A T15 16 games 8H/8A T12 16 games 8H/8A T14 16 games 8H/8A T13 16 games 8H/8A Subleague 30 games 16H/14A T1 5 games 3H/2A T18 5 games 3H/2A T19 5 games 3H/2A T6 5 games 2H/3A T5 5 games 2H/3A T14 5 games 3H/2A |
11-18-2015, 05:45 PM | #47 |
Major Leagues
Join Date: Aug 2014
Posts: 349
|
If you can make a program that can create that schedule you can create a schedule for anything.
That was the hardest schedule to complete. So many variables. |
11-19-2015, 08:23 AM | #48 |
Minors (Double A)
Join Date: Oct 2015
Posts: 145
|
I fixed a bug this morning that caused games to cluster at the start and end of a season, if a lot of extra space was provided (as in Hageneezz's schedule with extra break days). This appears to have also increased how compact the scheduler can make schedules: the settings-lhl.ini demo file, based off of my fictional solo league, now reliably fits 111 games in 124 days instead of 137.
|
11-19-2015, 09:19 AM | #49 |
Major Leagues
Join Date: Aug 2014
Posts: 349
|
This thing will be great for the full MLB schedules with interleague.
|
11-19-2015, 12:24 PM | #50 |
Minors (Double A)
Join Date: Oct 2015
Posts: 145
|
On that note, I did some schedule generation at lunch time, and found that my bugfix reduced the required break days for a 160-game, 30-team MLB-alike schedule (72/70/18) from 25 to 16, for a total of 177 days—which, with a three-day all-star break, is nearly the same length in days as an MLB schedule.
Seeing as it greatly improves the schedule generation engine's performance, I hope to roll that fix into a release tonight. |
11-19-2015, 02:27 PM | #51 | |
Hall Of Famer
Join Date: Jun 2008
Location: Belchertown, MA, USA
Posts: 4,447
|
Quote:
|
|
11-19-2015, 02:55 PM | #52 |
Minors (Double A)
Join Date: Oct 2015
Posts: 145
|
Nope, the schedule generation can't handle a straight MLB schedule, since it requires playing different numbers of games against interdivisional opponents. 20 interleague games instead of 18 ought to work, but I haven't exposed enough settings to make the interleague pool selection shake out correctly.
|
11-19-2015, 07:44 PM | #53 |
Minors (Double A)
Join Date: Oct 2015
Posts: 145
|
New version released, with the change I mentioned that allows for more compact schedules.
(Is it too soon to ask for a sticky? <.<) |
11-19-2015, 10:17 PM | #54 |
Minors (Single A)
Join Date: Jun 2006
Location: Detroit, MI
Posts: 55
|
Great job updating the community so thoroughly! I've been following with very much interest!
__________________
|
11-20-2015, 10:21 AM | #55 |
Hall Of Famer
Join Date: Jun 2008
Location: Belchertown, MA, USA
Posts: 4,447
|
I've given up any hope of using this to generate odd numbers of teams in a subleague. It sort of works for the MLB setup, but not so much for everything else.
|
11-20-2015, 02:34 PM | #56 |
Minors (Double A)
Join Date: Oct 2015
Posts: 145
|
What sort of setup is giving you trouble, and what kind of trouble is it giving you, exactly? I've had fairly good results with odd numbers so far. (i.e. 2 subleagues, divisions size 3, 5, 5 in each subleague.)
Last edited by Fishbreath; 11-20-2015 at 02:38 PM. |
11-20-2015, 08:53 PM | #57 |
Hall Of Famer
Join Date: Jun 2008
Location: Belchertown, MA, USA
Posts: 4,447
|
The problem is that the schedule generator is too strict in assigning matchups, in that it can only do "perfectly unbalanced" schedules. Also, the inability to mix series with different numbers of games is an annoyance with the odd number of teams problem.
|
11-21-2015, 02:01 PM | #58 |
Minors (Double A)
Join Date: Oct 2015
Posts: 145
|
Ah, right. Well, it's the way it is now because it makes it significantly easier to make the actual scheduling happen. I might be able to loosen the constraints a little bit, so that it adjusts less, but I wouldn't anticipate uneven numbers of games within opponent pools. That significantly increases the difficulty of the problem.
If you have a particular schedule in mind, the scheduling experts here are probably a better choice. General solutions rarely produce results as good as tailored ones. Down the line, I may be able to set up some sort of configuration option to let people specify matchups manually, which is a midway kind of fix. |
11-21-2015, 11:11 PM | #59 |
Minors (Double A)
Join Date: Oct 2015
Posts: 145
|
After some brutal work tonight, I have schedules normalizing. After and home-away balancing, the schedule generation engine looks for stretches of days with a number of games well below average, and moves series from days with above-average numbers of games to cover the gaps.
I also improved the start day selection for sparse schedules, where the number of games per team is much smaller than the number of days in the season. There are fewer busy days, where most of the league is playing at once, fewer empty days, and more average days. This is the first part of the scheduler that works differently based on schedule characteristics. Start days are selected by finding the nearest available start day for two given teams to a given target day. Sparse schedules (those with a fill factor of less than 0.8) select the target based on this formula: Code:
((seriesScheduledAgainstOpponent - 1) * daysBetweenSeries + random(0,daysBetweenSeries * 2)) Next on the list is weekday-based scheduling, which is relatively simple in terms of mechanics, but will require some care in terms of implementation. It touches a lot of code throughout the project. |
11-23-2015, 08:23 PM | #60 |
Minors (Double A)
Join Date: Oct 2015
Posts: 145
|
On the first leg of my Thanksgiving flight, I accomplished two things.
1. Played through the wildcard series with my Elsdorf Argonauts (fictional league) and swept it 2-0. We only barely squeaked into the playoffs at all, blowing our lead over the next team down the wildcard list in the last few weeks of the season and winning the tiebreaker game against Pacific Honkballiga North rivals the Gelderland Mariners 2-1. We then proceeded to blast the PHL South's Halberstadt Soldiers 5-1 and 4-1. Next up are the Mannheim Challengers, who knocked off the PHL North's division winner, the Emmeloord Sailors. A five-game series, and the season series stands at 4-5. Unfortunately, my laptop battery won't take another game, and I like to manage more of the playoff games than I do during the regular season. 2. Finished week-aware scheduling. It runs very much slower than the same schedule without week awareness, which I expected. The most time-consuming part of the schedule generation engine depends entirely on how many slots each team has, since, to attempt to avoid stepping on toes, it does complicated cross-checking for each team and all its opponents' open slots. It does not, however, make the scheduling engine work any better than before; roughly the same number of off days are required. (Though some schedules do work a little better.) Before I do the next release, I want to look into some more advanced collision avoidance, which should allow for more compact schedules all around. And, since I was expecting the week-awareness part to take a lot longer than it did, I have nothing but time this week. More news to come as it happens. |
Bookmarks |
|
|