1 00:00:04,500 --> 00:00:07,300 We were able to solve our sports scheduling problem 2 00:00:07,300 --> 00:00:11,630 with 4 teams, 24 decision variables, and 22 3 00:00:11,630 --> 00:00:14,330 basic constraints, pretty quickly. 4 00:00:14,330 --> 00:00:18,140 However, the problem size increases rapidly. 5 00:00:18,140 --> 00:00:20,980 The same problem with 10 teams, would 6 00:00:20,980 --> 00:00:27,850 have 585 decision variables and 175 basic constraints. 7 00:00:27,850 --> 00:00:30,180 For scheduling major league baseball, 8 00:00:30,180 --> 00:00:33,510 the problem has 100,000 decision variables 9 00:00:33,510 --> 00:00:36,590 and 200,000 constraints. 10 00:00:36,590 --> 00:00:40,000 For small problems, spreadsheet softwares, like LibreOffice, 11 00:00:40,000 --> 00:00:41,190 are great. 12 00:00:41,190 --> 00:00:43,170 But for large problems like this, 13 00:00:43,170 --> 00:00:46,820 solving them in LibreOffice would be impossible. 14 00:00:46,820 --> 00:00:49,900 So how are integer optimization models like this 15 00:00:49,900 --> 00:00:52,840 solved in practice? 16 00:00:52,840 --> 00:00:55,950 Many different tricks are used to solve large integer 17 00:00:55,950 --> 00:00:58,090 optimization problems. 18 00:00:58,090 --> 00:01:01,360 One is to reformulate the problem. 19 00:01:01,360 --> 00:01:03,970 The sports scheduling problem with more teams 20 00:01:03,970 --> 00:01:07,590 is often solved by changing the formulation. 21 00:01:07,590 --> 00:01:09,420 Instead of the decision variables 22 00:01:09,420 --> 00:01:12,220 we discussed in this lecture, the variables 23 00:01:12,220 --> 00:01:14,720 are sequences of games. 24 00:01:14,720 --> 00:01:18,150 Additionally, the problem can be split into three smaller 25 00:01:18,150 --> 00:01:22,010 problems that can each be self separately and much faster 26 00:01:22,010 --> 00:01:25,120 than just solving the whole problem. 27 00:01:25,120 --> 00:01:27,530 Another trick that's often used, is 28 00:01:27,530 --> 00:01:30,300 what are called Heuristic methods. 29 00:01:30,300 --> 00:01:35,530 These methods find good, but not necessarily optimal decisions. 30 00:01:35,530 --> 00:01:37,950 A good decision is sometimes accepted 31 00:01:37,950 --> 00:01:39,810 since the problem is so much easier 32 00:01:39,810 --> 00:01:42,050 to solve using a heuristic method. 33 00:01:45,180 --> 00:01:47,030 In addition to changing the formulation 34 00:01:47,030 --> 00:01:51,120 in using heuristics, there are general purpose optimization 35 00:01:51,120 --> 00:01:54,770 solvers that can solve large problems. 36 00:01:54,770 --> 00:02:00,600 These include CPLEX, Gurobi, GLPK and Cbc, 37 00:02:00,600 --> 00:02:02,910 a COIN-OR project. 38 00:02:02,910 --> 00:02:06,410 Most practitioners who solve large optimization problems 39 00:02:06,410 --> 00:02:09,720 use one of these software packages. 40 00:02:09,720 --> 00:02:13,680 And in the past 20 years, the speed of integer optimization 41 00:02:13,680 --> 00:02:18,180 solvers has increased by a factor of 250,000, 42 00:02:18,180 --> 00:02:22,370 which doesn't even include the increasing speed of computers. 43 00:02:22,370 --> 00:02:26,000 Assuming a modest machine speedup of 1,000, 44 00:02:26,000 --> 00:02:27,760 this means that a problem that can 45 00:02:27,760 --> 00:02:31,800 be solved in one second today, took seven years 46 00:02:31,800 --> 00:02:34,470 to solve 20 years ago. 47 00:02:34,470 --> 00:02:36,470 Because of this increase in speed 48 00:02:36,470 --> 00:02:39,260 were able to solve much larger and more complicated 49 00:02:39,260 --> 00:02:45,130 optimization problems today, than just a few years ago. 50 00:02:45,130 --> 00:02:48,020 So how about the sports scheduling problem? 51 00:02:48,020 --> 00:02:52,000 When the Sports Scheduling Group was started in 1996, 52 00:02:52,000 --> 00:02:56,210 integer optimization software was too slow to be useful. 53 00:02:56,210 --> 00:02:58,490 Now, they can use powerful solvers 54 00:02:58,490 --> 00:03:01,080 to generate sports schedules. 55 00:03:01,080 --> 00:03:03,150 Even with these solvers, it can take 56 00:03:03,150 --> 00:03:06,620 months to make the major league baseball schedule. 57 00:03:06,620 --> 00:03:10,180 This is due to several reasons, including the enormous list 58 00:03:10,180 --> 00:03:12,090 of ever changing constraints that they 59 00:03:12,090 --> 00:03:15,920 have to account for, the need to define priorities 60 00:03:15,920 --> 00:03:19,640 on the constraints to find a feasible solution, and the fact 61 00:03:19,640 --> 00:03:23,910 that it takes several iterations to get a good schedule. 62 00:03:23,910 --> 00:03:26,290 But even with these challenges, analytics 63 00:03:26,290 --> 00:03:29,760 offers a significant edge in sports scheduling. 64 00:03:29,760 --> 00:03:32,500 The use of optimization allows for the addition 65 00:03:32,500 --> 00:03:35,730 of new constraints or schedule changes. 66 00:03:35,730 --> 00:03:38,160 A new schedule can easily be generated 67 00:03:38,160 --> 00:03:41,920 based on an updated requirement or request. 68 00:03:41,920 --> 00:03:45,570 Now, all professional sports and most college sports, 69 00:03:45,570 --> 00:03:49,400 construct their schedules using optimization. 70 00:03:49,400 --> 00:03:52,520 In this lecture, we've seen one powerful use of integer 71 00:03:52,520 --> 00:03:55,740 optimization, but this method has a huge number 72 00:03:55,740 --> 00:03:57,820 of applications, which you'll see 73 00:03:57,820 --> 00:04:01,370 more of in the second lecture, The Recitation, 74 00:04:01,370 --> 00:04:03,810 and in the homework assignment.