1 00:00:00,670 --> 00:00:03,010 The following content is provided under a Creative 2 00:00:03,010 --> 00:00:04,430 Commons license. 3 00:00:04,430 --> 00:00:06,640 Your support will help MIT OpenCourseWare 4 00:00:06,640 --> 00:00:10,730 continue to offer high quality educational resources for free. 5 00:00:10,730 --> 00:00:13,270 To make a donation or to view additional materials 6 00:00:13,270 --> 00:00:17,230 from hundreds of MIT courses, visit MIT OpenCourseWare 7 00:00:17,230 --> 00:00:18,103 at ocw.mit.edu. 8 00:00:22,670 --> 00:00:24,930 PROFESSOR: All right, so let's go ahead and proceed 9 00:00:24,930 --> 00:00:28,810 with vehicle scheduling. 10 00:00:28,810 --> 00:00:31,950 What we try to do in vehicle scheduling, 11 00:00:31,950 --> 00:00:36,370 and that's up to this point, we have frequently 12 00:00:36,370 --> 00:00:40,330 determined for different routes, identify 13 00:00:40,330 --> 00:00:44,860 to deliver the service that this specified on the timetable. 14 00:00:44,860 --> 00:00:49,360 And then vehicle scheduling, which is the main part, 15 00:00:49,360 --> 00:00:54,460 is basically how we are using the existing fleet 16 00:00:54,460 --> 00:00:58,750 to deliver the service that is specified on the timetable, how 17 00:00:58,750 --> 00:01:04,680 we are basically defining the duties for vehicles 18 00:01:04,680 --> 00:01:10,580 from the time that they pull out from depot till the time 19 00:01:10,580 --> 00:01:13,700 that they pull back in to depot again. 20 00:01:13,700 --> 00:01:19,820 What is the sequences of the revenue trips or revenue 21 00:01:19,820 --> 00:01:24,320 movements, and where that involve 22 00:01:24,320 --> 00:01:28,250 deadhead arcs, layover arcs, and et cetera. 23 00:01:28,250 --> 00:01:30,770 We will discuss this in this lecture 24 00:01:30,770 --> 00:01:32,720 and we will get to that. 25 00:01:37,790 --> 00:01:41,060 So the task of developing the timetable 26 00:01:41,060 --> 00:01:45,500 is basically the task of translating frequencies 27 00:01:45,500 --> 00:01:49,190 into a timetable. 28 00:01:49,190 --> 00:01:53,330 We may all be familiar with what a bus service or train service 29 00:01:53,330 --> 00:01:55,550 timetable is. 30 00:01:55,550 --> 00:01:59,930 It basically includes the list of departures and arrivals 31 00:01:59,930 --> 00:02:05,470 to different stops by different routes. 32 00:02:05,470 --> 00:02:11,390 There are alternative ways of determining the timetable. 33 00:02:11,390 --> 00:02:15,950 The simplest way is to just use equal head ways. 34 00:02:15,950 --> 00:02:21,770 And the frequency that you allocated to the route the time 35 00:02:21,770 --> 00:02:23,900 period, during the time period, just 36 00:02:23,900 --> 00:02:29,770 distribute them evenly over the time period. 37 00:02:33,400 --> 00:02:38,560 If you look at the figure on the bottom left here, 38 00:02:38,560 --> 00:02:45,560 we will have an example of even head ways here. 39 00:02:45,560 --> 00:02:53,470 However, if the demand is not uniformly distributed during 40 00:02:53,470 --> 00:02:58,750 the period, for which the example could be peak of peak, 41 00:02:58,750 --> 00:03:01,310 that is usually happening-- depending on the network, 42 00:03:01,310 --> 00:03:02,260 it may vary-- 43 00:03:02,260 --> 00:03:06,370 but usually happens between 7:00 and 8:00, 7:30 and 8:30. 44 00:03:06,370 --> 00:03:11,020 Then we want to work out the head ways, 45 00:03:11,020 --> 00:03:13,930 and work out the timetable in a way 46 00:03:13,930 --> 00:03:21,580 to result in balanced loads and equal loads. 47 00:03:21,580 --> 00:03:24,040 So in order to do this, what you need to do 48 00:03:24,040 --> 00:03:30,910 is to generate the cumulative passenger flow arrivals. 49 00:03:30,910 --> 00:03:38,300 And then if you distribute your headways on the time axis, 50 00:03:38,300 --> 00:03:45,080 you will get even headways or equal headway service. 51 00:03:45,080 --> 00:03:47,270 If you distribute your head weighs 52 00:03:47,270 --> 00:03:50,360 on the cumulative passenger flow evenly, 53 00:03:50,360 --> 00:03:55,550 then you would get balanced loads. 54 00:03:55,550 --> 00:03:59,570 As you can see, the headways which is here, 55 00:03:59,570 --> 00:04:03,500 one, two, three, four, five balancing loads 56 00:04:03,500 --> 00:04:06,060 for time table development. 57 00:04:06,060 --> 00:04:09,470 The other alternative way of developing timetables 58 00:04:09,470 --> 00:04:13,860 would be trying to design a weight clock-face service. 59 00:04:17,200 --> 00:04:22,480 Why would we want to design a clock-face time table? 60 00:04:22,480 --> 00:04:25,100 Does anyone have any suggestions? 61 00:04:25,100 --> 00:04:25,656 Yep. 62 00:04:25,656 --> 00:04:28,730 AUDIENCE: Sometimes it makes scheduling easier 63 00:04:28,730 --> 00:04:33,700 if we have some sort of cyclical pattern. 64 00:04:33,700 --> 00:04:36,640 It's easier to assign drivers that way. 65 00:04:36,640 --> 00:04:38,940 PROFESSOR: Right, yes. 66 00:04:38,940 --> 00:04:41,950 So that is actually one reason-- it may eventually, 67 00:04:41,950 --> 00:04:44,380 in the next step, which is crew scheduling, 68 00:04:44,380 --> 00:04:50,259 makes the service more efficient and cost efficient. 69 00:04:50,259 --> 00:04:51,300 Is there any other-- yep. 70 00:04:51,300 --> 00:04:52,966 AUDIENCE: It's easier for the passengers 71 00:04:52,966 --> 00:04:54,170 to remember the schedule. 72 00:04:54,170 --> 00:04:55,450 PROFESSOR: Exactly. 73 00:04:55,450 --> 00:04:59,800 If the waiting time estimations that we are doing, 74 00:04:59,800 --> 00:05:03,100 with respect to frequencies and with respect to headways, 75 00:05:03,100 --> 00:05:06,140 if passengers are able to coordinate with the service, 76 00:05:06,140 --> 00:05:11,290 the expected waiting time would be less than the situation 77 00:05:11,290 --> 00:05:13,990 where they cannot coordinate with the service. 78 00:05:13,990 --> 00:05:19,420 That's only the case when headway is 10, 15, 20, 30 79 00:05:19,420 --> 00:05:23,080 or minutes or 60 minutes. 80 00:05:23,080 --> 00:05:29,270 And then we would have service every-- 81 00:05:29,270 --> 00:05:31,090 on minute one, for example, that that 82 00:05:31,090 --> 00:05:36,410 would be 7-1, 7-11, 7-21, and so on and so forth. 83 00:05:36,410 --> 00:05:41,680 So it's easier for passengers to remember the service that 84 00:05:41,680 --> 00:05:44,060 is designed clock face. 85 00:05:44,060 --> 00:05:51,850 So again, for the two approaches to headway distribution, 86 00:05:51,850 --> 00:05:55,480 equal heavy distribution is basically, 87 00:05:55,480 --> 00:05:59,920 as it can be imagined, each headway 88 00:05:59,920 --> 00:06:05,140 would be calculated as peak period duration divided 89 00:06:05,140 --> 00:06:08,110 by number of vehicles or frequency 90 00:06:08,110 --> 00:06:12,280 that we determined for the route at the time period. 91 00:06:12,280 --> 00:06:15,400 And in terms of balance load solution, 92 00:06:15,400 --> 00:06:22,750 we basically need to first realize what the loads are, 93 00:06:22,750 --> 00:06:24,640 the balance loads are, by dividing 94 00:06:24,640 --> 00:06:28,150 the passenger flows to n and then work out, 95 00:06:28,150 --> 00:06:33,790 on the cumulative passenger arrivals, 96 00:06:33,790 --> 00:06:39,250 to realize what the timetable arrivals and departures are. 97 00:06:39,250 --> 00:06:40,670 Is there any questions about this? 98 00:06:40,670 --> 00:06:41,295 AUDIENCE: Yeah. 99 00:06:41,295 --> 00:06:44,410 Looking at the graph on the left, 100 00:06:44,410 --> 00:06:47,510 let's say PE4 minus PE [INAUDIBLE] 101 00:06:47,510 --> 00:06:51,265 is greater than the capacity of a bus, then we have a problem. 102 00:06:51,265 --> 00:06:55,790 Because if the number of passengers there is [INAUDIBLE] 103 00:06:55,790 --> 00:06:57,580 problem with the clock faced-- 104 00:06:57,580 --> 00:06:58,250 PROFESSOR: Mhm. 105 00:06:58,250 --> 00:07:04,380 Yeah, that's-- however, what we basically did in previous step, 106 00:07:04,380 --> 00:07:07,220 in frequency determination, that's one of the checks that 107 00:07:07,220 --> 00:07:10,570 we do, the maximum load. 108 00:07:10,570 --> 00:07:14,060 And we basically make sure that maximum load is 109 00:07:14,060 --> 00:07:18,627 within the allowed standards. 110 00:07:18,627 --> 00:07:20,210 AUDIENCE: But basically, so what we're 111 00:07:20,210 --> 00:07:25,340 saying is if we do clock faced, then 112 00:07:25,340 --> 00:07:30,310 we look where we have the maximum flow of passengers 113 00:07:30,310 --> 00:07:34,700 and take that headway and replicate that headway all 114 00:07:34,700 --> 00:07:38,540 across the rest of the time period, 115 00:07:38,540 --> 00:07:41,810 is what you're saying if I understand correctly. 116 00:07:41,810 --> 00:07:46,880 I'm saying I have to design a headway to serve the maximum, 117 00:07:46,880 --> 00:07:50,190 and then the rest of the time period, which has lower flows, 118 00:07:50,190 --> 00:07:52,550 will have, you know, excess capacity. 119 00:07:52,550 --> 00:07:53,450 PROFESSOR: Right. 120 00:07:53,450 --> 00:07:55,350 Yeah. 121 00:07:55,350 --> 00:07:56,610 So yeah, that makes sense. 122 00:07:56,610 --> 00:08:01,450 It really depends if we design based on the time period 123 00:08:01,450 --> 00:08:07,750 and we distribute the frequencies evenly 124 00:08:07,750 --> 00:08:15,270 and make sure that we are checking the requirements that 125 00:08:15,270 --> 00:08:18,570 are related to maximum load factors, 126 00:08:18,570 --> 00:08:22,020 then we won't have any problems. 127 00:08:22,020 --> 00:08:25,740 However, the other issue that could actually 128 00:08:25,740 --> 00:08:30,030 be the counterpart of the issue that you suggested 129 00:08:30,030 --> 00:08:35,860 is that when we're designing the timetable based on balance load 130 00:08:35,860 --> 00:08:40,289 solution, we may actually end up having 131 00:08:40,289 --> 00:08:46,240 to use more vehicles required for that solution. 132 00:08:46,240 --> 00:08:49,200 And the reason for that-- 133 00:08:49,200 --> 00:08:54,250 does anyone have any suggestions for the reason for [INAUDIBLE] 134 00:08:54,250 --> 00:08:55,030 if the number-- 135 00:08:57,820 --> 00:08:59,500 why the number of vehicles that we 136 00:08:59,500 --> 00:09:02,170 may want to require for balance [INAUDIBLE] 137 00:09:02,170 --> 00:09:03,540 could be [INAUDIBLE]? 138 00:09:07,950 --> 00:09:11,280 AUDIENCE: Because if you have a peak right at a certain time, 139 00:09:11,280 --> 00:09:13,455 the vehicle would be able to make one trip, 140 00:09:13,455 --> 00:09:16,120 and then you'll be sending out a bus just to make a single trip 141 00:09:16,120 --> 00:09:18,661 and go back, which adds a lot of deadhead time on either end. 142 00:09:18,661 --> 00:09:19,661 PROFESSOR: Right. 143 00:09:19,661 --> 00:09:20,160 Yeah. 144 00:09:20,160 --> 00:09:23,200 So that could be one reason. 145 00:09:23,200 --> 00:09:25,290 The other reason would be if we have 146 00:09:25,290 --> 00:09:30,720 a peak of peak in our passenger arrivals, 147 00:09:30,720 --> 00:09:34,310 then we would have really short time intervals or short head 148 00:09:34,310 --> 00:09:40,410 ways during peak of the peak, and rather longer headways 149 00:09:40,410 --> 00:09:42,480 during the off peak. 150 00:09:42,480 --> 00:09:45,750 And then what happens is that if these longer headways exceed 151 00:09:45,750 --> 00:09:48,450 the maximum headway that is allowed, then 152 00:09:48,450 --> 00:09:52,710 we would have to basically throw in more vehicles to make sure 153 00:09:52,710 --> 00:09:56,590 that we do not exceed the maximum headway allowed, 154 00:09:56,590 --> 00:09:58,440 which is one of the considerations related 155 00:09:58,440 --> 00:10:00,990 to maximum waiting time for passengers and level 156 00:10:00,990 --> 00:10:02,260 of service. 157 00:10:02,260 --> 00:10:04,560 So that's one of the issues. 158 00:10:04,560 --> 00:10:08,580 So as a result, in general, it is better 159 00:10:08,580 --> 00:10:13,080 to assume that design of timetable 160 00:10:13,080 --> 00:10:15,870 is going to be based on equal headways, 161 00:10:15,870 --> 00:10:17,970 and when we do the frequency computations, 162 00:10:17,970 --> 00:10:20,132 be consistent with that. 163 00:10:20,132 --> 00:10:33,360 AUDIENCE: So when we [INAUDIBLE] and they are, like, strictly 164 00:10:33,360 --> 00:10:39,644 bound to follow the movement they are set on [INAUDIBLE]?? 165 00:10:39,644 --> 00:10:43,606 PROFESSOR: I'm not sure I understand your comment. 166 00:10:43,606 --> 00:10:44,730 Can you repeat that please? 167 00:10:44,730 --> 00:10:46,422 AUDIENCE: If there's [INAUDIBLE]?? 168 00:10:46,422 --> 00:10:47,130 PROFESSOR: Right. 169 00:10:47,130 --> 00:10:51,855 AUDIENCE: [INAUDIBLE] then the number of vehicles 170 00:10:51,855 --> 00:10:53,370 is going to go up. 171 00:10:53,370 --> 00:10:56,840 But since the number of vehicles required during off-peak 172 00:10:56,840 --> 00:11:03,936 [INAUDIBLE] then it necessarily [INAUDIBLE] 173 00:11:03,936 --> 00:11:06,060 you need more vehicles during service [INAUDIBLE].. 174 00:11:08,596 --> 00:11:09,804 AUDIENCE: That's interesting. 175 00:11:09,804 --> 00:11:11,160 I have a question-- 176 00:11:11,160 --> 00:11:13,840 why do you think that a balance load 177 00:11:13,840 --> 00:11:16,560 will require more vehicles? 178 00:11:16,560 --> 00:11:18,540 I tend to believe that it's somewhat 179 00:11:18,540 --> 00:11:24,970 more efficient, capacity wise, than the alternative. 180 00:11:24,970 --> 00:11:27,136 Why do you think that it has more vehicles? 181 00:11:27,136 --> 00:11:29,260 AUDIENCE: I thought it was because the frequency is 182 00:11:29,260 --> 00:11:30,880 higher. 183 00:11:30,880 --> 00:11:33,135 AUDIENCE: Only at certain points. 184 00:11:33,135 --> 00:11:35,180 It's higher only-- 185 00:11:35,180 --> 00:11:37,770 AUDIENCE: You have enough vehicles to cover [INAUDIBLE].. 186 00:11:37,770 --> 00:11:39,186 AUDIENCE: But what you were saying 187 00:11:39,186 --> 00:11:41,880 is that you can't cut service so short that you 188 00:11:41,880 --> 00:11:45,130 don't need those load factors. 189 00:11:45,130 --> 00:11:48,320 So in the end, you end up using more vehicles. 190 00:11:48,320 --> 00:11:51,000 PROFESSOR: So the reason that we would basically 191 00:11:51,000 --> 00:11:53,660 require more vehicles, in balanced load, 192 00:11:53,660 --> 00:11:56,850 is that for some of these headways, 193 00:11:56,850 --> 00:11:59,040 we need to stretch the headway in a way 194 00:11:59,040 --> 00:12:03,630 that it basically meets the balance 195 00:12:03,630 --> 00:12:06,900 load on the other headways. 196 00:12:06,900 --> 00:12:10,100 And then, once we do that, we may actually go over 197 00:12:10,100 --> 00:12:16,350 the maximum allowed headway, that 198 00:12:16,350 --> 00:12:19,800 is basically trying to take care of maximum waiting 199 00:12:19,800 --> 00:12:23,490 time and level of service in the end. 200 00:12:23,490 --> 00:12:26,490 In that case, then we need to throw in more vehicles 201 00:12:26,490 --> 00:12:29,960 during the same period of the route. 202 00:12:29,960 --> 00:12:32,240 And if we need to do this for all the routes 203 00:12:32,240 --> 00:12:34,880 at the same time, then we would eventually 204 00:12:34,880 --> 00:12:41,720 observe more deficit, and more vehicles to be used. 205 00:12:41,720 --> 00:12:44,420 Is this the point that you tried to-- 206 00:12:44,420 --> 00:12:46,680 AUDIENCE: Yes, but [INAUDIBLE]. 207 00:13:02,500 --> 00:13:04,189 PROFESSOR: On reverse? 208 00:13:04,189 --> 00:13:05,686 AUDIENCE: [INAUDIBLE]. 209 00:13:30,531 --> 00:13:32,530 PROFESSOR: Well, these are two different factors 210 00:13:32,530 --> 00:13:35,270 and both are important in terms of level of service. 211 00:13:35,270 --> 00:13:40,870 Headway consideration is related to maximum waiting time. 212 00:13:40,870 --> 00:13:44,200 You don't want to have like reading the long headways that 213 00:13:44,200 --> 00:13:46,800 would force people to wait longer. 214 00:13:46,800 --> 00:13:49,420 And at the same time, you don't want 215 00:13:49,420 --> 00:13:52,870 buses that are overcrowded, and there's 216 00:13:52,870 --> 00:13:57,910 discomfort resulting from the crowding effect. 217 00:13:57,910 --> 00:14:03,070 So these are two different sources of this utility, 218 00:14:03,070 --> 00:14:07,870 basically, in the service, that we try to balance somehow. 219 00:14:07,870 --> 00:14:12,220 The other issue that you brought up first, in terms of the fact 220 00:14:12,220 --> 00:14:15,340 that the service may be directional, and demand 221 00:14:15,340 --> 00:14:19,150 may be directional during peak, and there 222 00:14:19,150 --> 00:14:23,590 could be possibility of using vehicles in other directions, 223 00:14:23,590 --> 00:14:27,070 or using deadheading, and situations 224 00:14:27,070 --> 00:14:29,800 like that, we are actually going to cover that. 225 00:14:29,800 --> 00:14:35,707 And that's true for both of the two scenarios. 226 00:14:35,707 --> 00:14:37,207 AUDIENCE: It seems like there should 227 00:14:37,207 --> 00:14:38,620 be some kind of hybrid way to say, 228 00:14:38,620 --> 00:14:40,536 this is the amount of vehicles I want to use-- 229 00:14:40,536 --> 00:14:44,370 and there's a way to not have to go over schedule 230 00:14:44,370 --> 00:14:49,090 based on equal headways, and still [INAUDIBLE] demand. 231 00:14:49,090 --> 00:14:50,870 PROFESSOR: Exactly, yeah. 232 00:14:50,870 --> 00:14:54,760 And so there is all sorts of tricks in these steps, where 233 00:14:54,760 --> 00:14:58,210 you tweak some of the solutions from one level 234 00:14:58,210 --> 00:15:02,650 and go back to the previous levels, and adjust those. 235 00:15:02,650 --> 00:15:05,110 There is all sorts of engineering judgments, 236 00:15:05,110 --> 00:15:09,400 and the planning judgments that are involved, and can actually 237 00:15:09,400 --> 00:15:10,070 take place. 238 00:15:10,070 --> 00:15:13,960 We will see a couple of those in this lecture, too. 239 00:15:13,960 --> 00:15:15,160 OK, so let's go. 240 00:15:18,040 --> 00:15:24,080 So now, once we know what the timetable is, 241 00:15:24,080 --> 00:15:28,050 the sequence of arrivals and departures for different trips, 242 00:15:28,050 --> 00:15:30,300 for all routes, then it's a matter 243 00:15:30,300 --> 00:15:33,720 of determining what's the fleet size that 244 00:15:33,720 --> 00:15:41,250 is required for delivering the service that is timetabled. 245 00:15:41,250 --> 00:15:46,650 There is this famous theorem in the literature 246 00:15:46,650 --> 00:15:51,360 that deals with an estimation of number of fleet 247 00:15:51,360 --> 00:15:52,300 that is required. 248 00:15:52,300 --> 00:15:54,840 It is basically an upper bound to the number 249 00:15:54,840 --> 00:16:00,460 of vehicles that are required to deliver the service. 250 00:16:00,460 --> 00:16:02,100 The reason that it's an upper bound 251 00:16:02,100 --> 00:16:05,610 is that it basically assumes that we 252 00:16:05,610 --> 00:16:10,540 are going to stick to the original timetable, 253 00:16:10,540 --> 00:16:13,020 and we are not allowed to do any trip shifting, 254 00:16:13,020 --> 00:16:16,800 or we are not doing any trip shifting in this step 255 00:16:16,800 --> 00:16:20,520 to accommodate some of [INAUDIBLE] that 256 00:16:20,520 --> 00:16:27,180 are one or two minutes, or a few minutes basically conflicting. 257 00:16:27,180 --> 00:16:29,760 And then the other assumption that 258 00:16:29,760 --> 00:16:35,070 is made here to compute the upper bound of fleet size 259 00:16:35,070 --> 00:16:39,090 is that we are not allowing deadheading trips 260 00:16:39,090 --> 00:16:42,360 to balance the deficit among the terminals. 261 00:16:42,360 --> 00:16:45,150 So let's start with the definitions. 262 00:16:45,150 --> 00:16:55,890 The function l of k, t, and s-- k is the index of terminal, 263 00:16:55,890 --> 00:17:01,640 t is the index of time, and s is the index of the schedule that 264 00:17:01,640 --> 00:17:05,410 is already developed. 265 00:17:05,410 --> 00:17:10,560 So l is basically the cumulative number 266 00:17:10,560 --> 00:17:17,099 of departures from terminal by time t following the schedule. 267 00:17:17,099 --> 00:17:20,010 And a would be the cumulative number 268 00:17:20,010 --> 00:17:25,319 of arrivals at terminal k by time t following that schedule. 269 00:17:25,319 --> 00:17:27,960 Then we define a function, which is 270 00:17:27,960 --> 00:17:31,230 the difference between the two, it's 271 00:17:31,230 --> 00:17:33,840 basically the deficit function which 272 00:17:33,840 --> 00:17:40,620 is the cumulative departures minus cumulative arrivals. 273 00:17:40,620 --> 00:17:43,290 We use this deficit function to estimate 274 00:17:43,290 --> 00:17:46,500 what's the required to deliver the service. 275 00:17:46,500 --> 00:17:56,040 So the fleet size theorem says that, if we basically 276 00:17:56,040 --> 00:18:02,700 compute the maximum number of deficit 277 00:18:02,700 --> 00:18:12,010 over all time intervals for each terminal, and we add those up, 278 00:18:12,010 --> 00:18:14,850 we will get the total number that is required-- 279 00:18:14,850 --> 00:18:16,320 number of vehicles that is required 280 00:18:16,320 --> 00:18:18,070 to deliver the service. 281 00:18:18,070 --> 00:18:19,860 So it's basically this equation. 282 00:18:19,860 --> 00:18:22,710 The summation over all terminals, maximum 283 00:18:22,710 --> 00:18:27,520 over t of the deficit function. 284 00:18:27,520 --> 00:18:30,530 So in this figure, we basically on top, 285 00:18:30,530 --> 00:18:34,370 we see different trips that are scheduled, 286 00:18:34,370 --> 00:18:39,690 and each trip is basically identified with a number 287 00:18:39,690 --> 00:18:45,210 and a pair of terminals. 288 00:18:45,210 --> 00:18:49,080 That's, for example, trip one, it starts from terminal m, 289 00:18:49,080 --> 00:18:52,540 and ends at terminal u. 290 00:18:52,540 --> 00:18:57,510 And then, as you can see, these trips all start at terminal m, 291 00:18:57,510 --> 00:19:00,060 some of them go to u, some of them go to v, 292 00:19:00,060 --> 00:19:02,970 and there is also trips between u and v, 293 00:19:02,970 --> 00:19:06,730 and basically some of them come back to m again. 294 00:19:06,730 --> 00:19:12,940 So if we basically work out the deficit function 295 00:19:12,940 --> 00:19:16,970 for terminal m, what we see is that, for example, 296 00:19:16,970 --> 00:19:21,010 at time around 5:00 AM, we will have one trip scheduled here, 297 00:19:21,010 --> 00:19:22,690 trip number six. 298 00:19:22,690 --> 00:19:25,630 And at 6:00, there is another one. 299 00:19:25,630 --> 00:19:31,930 Our deficit is basically growing, until at noon, 300 00:19:31,930 --> 00:19:36,550 where the first trip comes back to terminal m. 301 00:19:36,550 --> 00:19:43,420 And then, at that point, it continues at a deficit level 302 00:19:43,420 --> 00:19:49,480 three, where there is one departure and one arrival 303 00:19:49,480 --> 00:19:57,660 scheduled at 17, at 5:00 PM. 304 00:19:57,660 --> 00:20:03,180 And then it continues until the last trip arrivals, at a little 305 00:20:03,180 --> 00:20:04,710 be before 10:00 PM. 306 00:20:04,710 --> 00:20:10,550 So in this case, if we look at the maximum deficit 307 00:20:10,550 --> 00:20:16,130 over time for this terminal, it would be four. 308 00:20:16,130 --> 00:20:20,680 And that's for terminal m. 309 00:20:20,680 --> 00:20:22,750 When we look at all terminals in the network, 310 00:20:22,750 --> 00:20:24,820 and some of the maximum deficits, 311 00:20:24,820 --> 00:20:26,830 the summation will give us the number of fleet 312 00:20:26,830 --> 00:20:28,640 that is required. 313 00:20:28,640 --> 00:20:31,760 However, there are a couple tricks 314 00:20:31,760 --> 00:20:36,200 that we can basically improve the efficiency. 315 00:20:36,200 --> 00:20:37,790 One of the tricks would be shifting 316 00:20:37,790 --> 00:20:40,040 the departures or arrivals a little, 317 00:20:40,040 --> 00:20:43,680 bit so we accommodate more trips. 318 00:20:43,680 --> 00:20:45,270 If they're required, for example, 319 00:20:45,270 --> 00:20:53,270 in this case, like the deficit part that actually gets 320 00:20:53,270 --> 00:21:02,200 to level four, is as the result of trip nine being scheduled 321 00:21:02,200 --> 00:21:05,710 around like 11:15, or so. 322 00:21:05,710 --> 00:21:08,460 If we can manage to shift trip nine a little bit 323 00:21:08,460 --> 00:21:15,490 forward, up to noon, then we may actually 324 00:21:15,490 --> 00:21:19,420 get rid of the fourth unit of deficit 325 00:21:19,420 --> 00:21:27,640 here, and make the total deficit, or maximum deficit, 326 00:21:27,640 --> 00:21:31,340 here equal to three. 327 00:21:31,340 --> 00:21:34,190 There's also the issue of reliability 328 00:21:34,190 --> 00:21:37,670 that you may want to consider for these trip arrivals 329 00:21:37,670 --> 00:21:38,930 and departures. 330 00:21:38,930 --> 00:21:42,800 For example, if you look at this point 331 00:21:42,800 --> 00:21:48,620 here, where trip two arrives, and it's basically 332 00:21:48,620 --> 00:21:50,780 based on this method, it is going 333 00:21:50,780 --> 00:21:54,230 to be assigned to trip eight. 334 00:21:54,230 --> 00:22:02,584 However, what if trip two is late by a few minutes? 335 00:22:02,584 --> 00:22:04,000 What should be doing in that case? 336 00:22:04,000 --> 00:22:07,520 Are we going to delay trip eight to accommodate that? 337 00:22:07,520 --> 00:22:13,170 One way of looking at this is that instead of working out 338 00:22:13,170 --> 00:22:19,160 the deficit functions with trip times, and then schedule trips, 339 00:22:19,160 --> 00:22:23,270 we can work it out with half cycles that already includes 340 00:22:23,270 --> 00:22:27,980 layovers, and 95 percentiles at the terminus, 341 00:22:27,980 --> 00:22:35,170 to make sure that we have a leeway at the terminals. 342 00:22:35,170 --> 00:22:42,560 That will definitely require and result in higher deficits. 343 00:22:42,560 --> 00:22:46,520 But again, if we are allowed to shift the trips a little bit 344 00:22:46,520 --> 00:22:49,580 back and forth, then that's something 345 00:22:49,580 --> 00:22:52,400 that would be recommended-- to work with half cycles, 346 00:22:52,400 --> 00:22:55,640 instead of working with the scheduled trips. 347 00:22:55,640 --> 00:22:57,830 Is there any questions about fleet 348 00:22:57,830 --> 00:23:00,680 size required computation here? 349 00:23:03,440 --> 00:23:12,122 AUDIENCE: [INAUDIBLE] to reduce fleet size deficits? 350 00:23:12,122 --> 00:23:15,950 Do they actually employ the techniques of shifting? 351 00:23:15,950 --> 00:23:17,900 PROFESSOR: Yeah, of course. 352 00:23:17,900 --> 00:23:21,890 That's a part in timetable-- 353 00:23:21,890 --> 00:23:29,480 it's going back to one of the steps that was already decided 354 00:23:29,480 --> 00:23:31,870 and optimized in the past. 355 00:23:31,870 --> 00:23:35,990 But there are all sorts of these revisiting that is going on 356 00:23:35,990 --> 00:23:38,900 in transit agencies. 357 00:23:38,900 --> 00:23:44,630 Because we do not optimize all the components 358 00:23:44,630 --> 00:23:48,520 in an integrated manner, all at the same time, 359 00:23:48,520 --> 00:23:52,310 and we basically do a sequential optimization, 360 00:23:52,310 --> 00:23:54,620 there is always this requirement to go back 361 00:23:54,620 --> 00:23:57,140 to some of those decisions that you thought 362 00:23:57,140 --> 00:24:03,050 were optimal at the upper level, and adjust those to account 363 00:24:03,050 --> 00:24:06,926 for gains in the lower level. 364 00:24:06,926 --> 00:24:11,930 AUDIENCE: I assume-- suppose that this graph represents 365 00:24:11,930 --> 00:24:18,490 an entire agency, and we'll reduce that agency's fleet size 366 00:24:18,490 --> 00:24:21,860 from four to three, saving money on another bus. 367 00:24:21,860 --> 00:24:24,410 That's a lot of money in savings, 368 00:24:24,410 --> 00:24:26,150 by not having that fourth bus. 369 00:24:29,050 --> 00:24:32,770 Do they look-- 370 00:24:32,770 --> 00:24:34,990 PROFESSOR: When they design timetables, 371 00:24:34,990 --> 00:24:39,130 they try to have some sort of coordination 372 00:24:39,130 --> 00:24:42,670 with arrivals and departures to the terminals. 373 00:24:42,670 --> 00:24:44,680 There is an example at the end of this lecture 374 00:24:44,680 --> 00:24:47,920 that we're going to talk about, how you can coordinate back 375 00:24:47,920 --> 00:24:51,640 and forth trips, so it will result in lower deficit 376 00:24:51,640 --> 00:24:53,510 in the first place. 377 00:24:53,510 --> 00:25:00,400 But yeah, sometimes it may actually 378 00:25:00,400 --> 00:25:04,610 be at the level of the fleet size determination, 379 00:25:04,610 --> 00:25:07,410 that you do this these shiftings again 380 00:25:07,410 --> 00:25:11,630 to improve the efficiency. 381 00:25:11,630 --> 00:25:15,130 Any other questions? 382 00:25:15,130 --> 00:25:17,690 It's a bit faster on these parts. 383 00:25:17,690 --> 00:25:23,850 So when it comes to matter of vehicle scheduling problems, 384 00:25:23,850 --> 00:25:26,580 it is a very interesting problem to optimize. 385 00:25:26,580 --> 00:25:29,970 The objective of this problem is to define vehicle blocks, 386 00:25:29,970 --> 00:25:35,970 or sequence of duties for vehicles that includes revenue 387 00:25:35,970 --> 00:25:38,970 trips and non-revenue trips. 388 00:25:38,970 --> 00:25:43,650 In other words, deadheads to rebalance, or to balance 389 00:25:43,650 --> 00:25:45,180 the deficit at terminals. 390 00:25:47,870 --> 00:25:51,620 Or layovers that would actually take place 391 00:25:51,620 --> 00:25:55,280 for reliability considerations. 392 00:25:55,280 --> 00:26:01,610 So the objective is basically to define these vehicle blocks, 393 00:26:01,610 --> 00:26:05,510 given that we are going to cover all the trips that are already 394 00:26:05,510 --> 00:26:10,090 scheduled, in a way to minimize the fleet 395 00:26:10,090 --> 00:26:13,750 size as a measure of the capital cost, 396 00:26:13,750 --> 00:26:17,530 and minimize the non-revenue time and mileage. 397 00:26:17,530 --> 00:26:20,240 As a measure of a non-revenue time, 398 00:26:20,240 --> 00:26:25,480 could actually account for crew cost, 399 00:26:25,480 --> 00:26:30,010 and mileage could account for both crew cost and fuel 400 00:26:30,010 --> 00:26:35,460 and basic operational costs. 401 00:26:35,460 --> 00:26:39,385 One important observation is that these are proxies for us. 402 00:26:39,385 --> 00:26:42,220 Again, in the [INAUDIBLE] step of the work when 403 00:26:42,220 --> 00:26:44,840 we are doing the scheduling for crew, 404 00:26:44,840 --> 00:26:47,890 we will realize some of the costs 405 00:26:47,890 --> 00:26:55,630 actually depends on how these vehicle blocks are defined. 406 00:26:55,630 --> 00:27:00,130 And probably the important components of cost 407 00:27:00,130 --> 00:27:01,790 that is related to-- 408 00:27:01,790 --> 00:27:04,000 they're related to crew duties are going 409 00:27:04,000 --> 00:27:05,770 to be determined in data stage. 410 00:27:05,770 --> 00:27:09,370 So these are only proxies for cost, fleet size, 411 00:27:09,370 --> 00:27:13,000 and non-revenue time and mileages. 412 00:27:13,000 --> 00:27:16,780 Input into the vehicles scheduling problem 413 00:27:16,780 --> 00:27:21,100 would be [INAUDIBLE] vehicle revenue trips is the timetable 414 00:27:21,100 --> 00:27:24,220 that we are to deliver. 415 00:27:24,220 --> 00:27:27,790 Each is characterized by trip stop time, and the end time 416 00:27:27,790 --> 00:27:29,470 and point. 417 00:27:29,470 --> 00:27:33,050 Then the other input would be possible layover arcs 418 00:27:33,050 --> 00:27:38,440 to account for reliability of these trips, and delay trips. 419 00:27:38,440 --> 00:27:44,260 And deadhead arcs connecting depots to trip starting 420 00:27:44,260 --> 00:27:49,170 points-- we call those pull-out arcs from [? depots. ?] 421 00:27:49,170 --> 00:27:52,270 And then pull-ins back into depots from trip end 422 00:27:52,270 --> 00:27:53,620 points to depots. 423 00:27:53,620 --> 00:28:01,180 And then the deadhead, or balancing deficit arcs-- 424 00:28:01,180 --> 00:28:03,760 these are basically trips that bring vehicles 425 00:28:03,760 --> 00:28:08,140 from terminals with lower deficit than what 426 00:28:08,140 --> 00:28:12,820 is scheduled to terminals with higher deficit. 427 00:28:12,820 --> 00:28:16,090 So what we try to do is that, from these arcs, 428 00:28:16,090 --> 00:28:20,110 we certainly need to choose the optimal combination 429 00:28:20,110 --> 00:28:22,630 of these arcs to deliver the service, 430 00:28:22,630 --> 00:28:27,280 and bring our vehicles out from depot and the same number 431 00:28:27,280 --> 00:28:32,810 back to people depot again, after the day is over. 432 00:28:32,810 --> 00:28:35,960 So another important observation, or quick note, 433 00:28:35,960 --> 00:28:41,470 here, is that there may be many possible number of deadhead 434 00:28:41,470 --> 00:28:43,250 and layover arcs. 435 00:28:43,250 --> 00:28:46,050 It's actually from a combinatorial nature. 436 00:28:46,050 --> 00:28:51,680 However, the designer, or the person 437 00:28:51,680 --> 00:28:56,240 who tries to solve this problem, needs to review these arcs, 438 00:28:56,240 --> 00:29:03,290 and come up with feasible and plausible arcs to start with. 439 00:29:03,290 --> 00:29:05,750 And then, as I mentioned, the layover arcs 440 00:29:05,750 --> 00:29:10,910 are also important in terms of making sure we will have 441 00:29:10,910 --> 00:29:14,240 a certain level of reliability. 442 00:29:14,240 --> 00:29:18,290 There are variations to the problem that actually 443 00:29:18,290 --> 00:29:22,010 can make the problem more complicated, 444 00:29:22,010 --> 00:29:27,050 but we are going to stick to the simplest one, 445 00:29:27,050 --> 00:29:32,390 and show how we can formulate the problem, model it, and what 446 00:29:32,390 --> 00:29:34,580 are the algorithms that can solve it for us. 447 00:29:34,580 --> 00:29:38,420 These variations, basically, are related to-- 448 00:29:38,420 --> 00:29:40,370 one possible variation is related 449 00:29:40,370 --> 00:29:45,890 to vehicles servicing single lines, or single routes, 450 00:29:45,890 --> 00:29:50,880 or inter-lining between different routes. 451 00:29:50,880 --> 00:29:54,560 The other variation would be related to possibility 452 00:29:54,560 --> 00:29:59,690 of having multiple depots in the network, big, 453 00:29:59,690 --> 00:30:04,190 larger transit agencies usually have multiple depots. 454 00:30:04,190 --> 00:30:08,540 For example, for Boston, I know a few of those. 455 00:30:08,540 --> 00:30:11,790 I do not know what's the exact number of depots 456 00:30:11,790 --> 00:30:14,410 that exist in the network. 457 00:30:14,410 --> 00:30:16,520 Alfred Street is one-- 458 00:30:16,520 --> 00:30:22,605 AUDIENCE: Albany, Southhampton, two of them at Lynn, 459 00:30:22,605 --> 00:30:27,220 Fellsway, North Cambridge-- that's it. 460 00:30:27,220 --> 00:30:31,560 PROFESSOR: That's, yeah, OK, so it's almost close to 10-- 461 00:30:31,560 --> 00:30:32,220 eight, nine. 462 00:30:32,220 --> 00:30:36,920 OK, so when it comes to different depots, and having 463 00:30:36,920 --> 00:30:40,070 multiple depots, there will be more complexities 464 00:30:40,070 --> 00:30:41,390 introduced to the problem. 465 00:30:41,390 --> 00:30:44,480 Because you may want to make sure that the exact number 466 00:30:44,480 --> 00:30:49,820 of vehicles who depart at a depot, come back to depot. 467 00:30:49,820 --> 00:30:51,710 There are also some considerations 468 00:30:51,710 --> 00:30:56,850 related to the fuel that the fleet is using. 469 00:30:56,850 --> 00:31:00,650 You may have diesel buses, you may have CNG buses. 470 00:31:00,650 --> 00:31:05,270 If you have restriction in terms of fueling facilities 471 00:31:05,270 --> 00:31:09,750 in these depots, you may want to return back the vehicles 472 00:31:09,750 --> 00:31:12,470 to the particular depots that are 473 00:31:12,470 --> 00:31:16,640 consistent with the fueling system. 474 00:31:16,640 --> 00:31:21,230 Then, there are different considerations 475 00:31:21,230 --> 00:31:26,660 related to vehicle types, related to parking spaces 476 00:31:26,660 --> 00:31:29,562 at the depots, and that actually makes 477 00:31:29,562 --> 00:31:30,770 the problem more complicated. 478 00:31:30,770 --> 00:31:34,130 But we can actually make some simplifying assumptions 479 00:31:34,130 --> 00:31:36,080 for now, and see how the problem looks 480 00:31:36,080 --> 00:31:38,300 like in the most basic form. 481 00:31:41,590 --> 00:31:44,970 So this is the time space network representation 482 00:31:44,970 --> 00:31:47,400 of the vehicle scheduling problem-- 483 00:31:47,400 --> 00:31:49,380 we are trying, in the next three slides, 484 00:31:49,380 --> 00:31:53,740 we are trying to build on the time and space network 485 00:31:53,740 --> 00:31:57,450 structure, to realize what is the decision that we're 486 00:31:57,450 --> 00:32:00,510 trying to make, and how we can basically solve this. 487 00:32:00,510 --> 00:32:04,350 So this is time space representation 488 00:32:04,350 --> 00:32:11,100 with x-axis being time of day, and y-axis being space. 489 00:32:11,100 --> 00:32:13,200 This is only one dimensional space here, 490 00:32:13,200 --> 00:32:18,480 but it could be two dimensional space, too. 491 00:32:18,480 --> 00:32:22,920 So in this case, we have two routes 492 00:32:22,920 --> 00:32:25,980 that are represented here-- route one, 493 00:32:25,980 --> 00:32:28,920 or n routes-- route one to route n. 494 00:32:28,920 --> 00:32:32,370 As you can see there are trips from either direction 495 00:32:32,370 --> 00:32:36,570 of these routes, that are already timetabled, 496 00:32:36,570 --> 00:32:38,860 and we have already committed to deliver this service. 497 00:32:41,490 --> 00:32:45,930 So the black arcs here are revenue arcs 498 00:32:45,930 --> 00:32:48,060 that are the arcs that we committed, 499 00:32:48,060 --> 00:32:52,230 and these have to be delivered between the two 500 00:32:52,230 --> 00:32:54,510 terminals of every route. 501 00:32:54,510 --> 00:33:00,150 Then we have-- in this problem, we have only one depot. 502 00:33:00,150 --> 00:33:04,080 There are two nodes here that are represented as depot, 503 00:33:04,080 --> 00:33:06,540 but it's basically the representation 504 00:33:06,540 --> 00:33:09,840 of depot at the beginning of the day when vehicles pull out, 505 00:33:09,840 --> 00:33:13,380 and the representation at the end of the day when vehicles 506 00:33:13,380 --> 00:33:15,050 pull in, basically. 507 00:33:15,050 --> 00:33:18,120 There are also layover arcs, where 508 00:33:18,120 --> 00:33:24,600 you connect all possible alternatives that you may think 509 00:33:24,600 --> 00:33:29,270 would be plausible for connecting these trips to one 510 00:33:29,270 --> 00:33:31,040 another. 511 00:33:31,040 --> 00:33:34,220 So in this figure, we only have a few of those-- 512 00:33:34,220 --> 00:33:35,960 probably the closest one-- but you 513 00:33:35,960 --> 00:33:40,370 can work out any possible combination of bus arrival 514 00:33:40,370 --> 00:33:43,370 to a terminal, being connected to a different trip 515 00:33:43,370 --> 00:33:44,732 from that terminal. 516 00:33:44,732 --> 00:33:46,190 AUDIENCE: Would you mind explaining 517 00:33:46,190 --> 00:33:48,170 what the [INAUDIBLE]? 518 00:33:48,170 --> 00:33:49,480 Maybe I'm missing something. 519 00:33:49,480 --> 00:33:51,035 Like, for example, when we start out 520 00:33:51,035 --> 00:33:54,186 at the beginning of the day, [INAUDIBLE].. 521 00:33:56,750 --> 00:34:01,040 We have two lines emanating from the very beginning of the day, 522 00:34:01,040 --> 00:34:04,590 so is that two buses leaving the depot at the same time? 523 00:34:04,590 --> 00:34:05,840 Maybe slightly different time? 524 00:34:05,840 --> 00:34:10,760 PROFESSOR: Right, so let me go ahead and continue and finish 525 00:34:10,760 --> 00:34:12,659 all the arcs in the network-- 526 00:34:12,659 --> 00:34:14,870 that may clarify the situation. 527 00:34:14,870 --> 00:34:17,510 Because there are other arcs in the network, too. 528 00:34:17,510 --> 00:34:24,679 So there are arcs that are pull-out arcs, from the depot 529 00:34:24,679 --> 00:34:30,560 to start these trips, and arcs that return the vehicles back 530 00:34:30,560 --> 00:34:31,850 to the depot. 531 00:34:31,850 --> 00:34:37,580 There's also arcs that are there to account for possibilities 532 00:34:37,580 --> 00:34:41,449 of deadheading trips, from one route to another route. 533 00:34:41,449 --> 00:34:46,010 AUDIENCE: So now we have those two nodes going into route one, 534 00:34:46,010 --> 00:34:49,940 so two buses going into route one, right? 535 00:34:49,940 --> 00:34:51,530 PROFESSOR: That's only a link. 536 00:34:51,530 --> 00:34:54,440 That link may include multiple vehicles. 537 00:34:58,320 --> 00:35:00,840 AUDIENCE: Multiple vehicles at different times? 538 00:35:00,840 --> 00:35:06,785 PROFESSOR: Multiple vehicles at different times-- 539 00:35:10,870 --> 00:35:12,550 well, it could be-- 540 00:35:12,550 --> 00:35:18,050 yeah, this is not the exact representation 541 00:35:18,050 --> 00:35:20,630 of time-dependent service. 542 00:35:20,630 --> 00:35:23,210 You can actually have connections, 543 00:35:23,210 --> 00:35:25,420 if you consider each one of these links 544 00:35:25,420 --> 00:35:29,790 to carry only one vehicle or not, 545 00:35:29,790 --> 00:35:32,750 then you need to add vehicles from depot 546 00:35:32,750 --> 00:35:37,280 to other trips along the time dimension, 547 00:35:37,280 --> 00:35:40,530 to vehicles that are basically joining that route 548 00:35:40,530 --> 00:35:41,880 [INAUDIBLE] time. 549 00:35:41,880 --> 00:35:44,820 AUDIENCE: What is the top [INAUDIBLE]?? 550 00:35:44,820 --> 00:35:48,370 PROFESSOR: The top line, you can-- 551 00:35:48,370 --> 00:35:50,290 the top line is just-- 552 00:35:50,290 --> 00:35:50,850 [INAUDIBLE] 553 00:35:50,850 --> 00:35:54,730 AUDIENCE: [INAUDIBLE]. 554 00:35:54,730 --> 00:35:56,040 PROFESSOR: It could be-- 555 00:35:56,040 --> 00:35:57,280 yeah, this is-- 556 00:35:57,280 --> 00:35:58,937 AUDIENCE: [INAUDIBLE]. 557 00:35:58,937 --> 00:36:01,020 PROFESSOR: This is, again, a simplified situation, 558 00:36:01,020 --> 00:36:04,530 but you can pull out at the middle of the route, too. 559 00:36:04,530 --> 00:36:10,620 Where you can, for example, just serve a vehicle from here. 560 00:36:10,620 --> 00:36:13,890 But you may want to make sure that the scheduled trip is 561 00:36:13,890 --> 00:36:15,610 served. 562 00:36:15,610 --> 00:36:19,290 So if you have services that's basically 563 00:36:19,290 --> 00:36:24,510 a start from the middle of the line, then you can model that, 564 00:36:24,510 --> 00:36:25,200 too. 565 00:36:25,200 --> 00:36:30,070 This is just to show how you can model a situation like this. 566 00:36:30,070 --> 00:36:33,626 It may not be all comprehensive combinations, or situation. 567 00:36:33,626 --> 00:36:36,250 AUDIENCE: I just wanted to make sure I understand what it says. 568 00:36:36,250 --> 00:36:37,791 PROFESSOR: Doesn't id make sense now? 569 00:36:37,791 --> 00:36:39,527 AUDIENCE: Yeah, I think so. 570 00:36:39,527 --> 00:36:41,735 I think one of the confusing things about this model, 571 00:36:41,735 --> 00:36:44,440 actually, is that you have that horizontal line. 572 00:36:44,440 --> 00:36:46,691 And it's saying [INAUDIBLE] revenue. 573 00:36:46,691 --> 00:36:49,066 Really what you should have is that layover arc shouldn't 574 00:36:49,066 --> 00:36:51,680 be an arc, it should just be a line connecting the end of-- 575 00:36:51,680 --> 00:36:52,640 [INAUDIBLE] 576 00:36:52,640 --> 00:36:55,370 PROFESSOR: Exactly-- these horizontal lines, 577 00:36:55,370 --> 00:36:57,170 I should actually remove that. 578 00:36:57,170 --> 00:36:58,010 I will-- 579 00:36:58,010 --> 00:37:00,180 AUDIENCE: Yeah, just make the layover arcs lines. 580 00:37:00,180 --> 00:37:03,300 PROFESSOR: Yeah, exactly, layover arcs-- 581 00:37:03,300 --> 00:37:04,250 that's exactly true. 582 00:37:06,790 --> 00:37:11,440 Actually, make the connection between the two directions 583 00:37:11,440 --> 00:37:15,060 of the route, and then the other arcs that are involved 584 00:37:15,060 --> 00:37:18,670 are the deadhead arc's points in the network. 585 00:37:18,670 --> 00:37:22,300 AUDIENCE: But it could be noted that the layover 586 00:37:22,300 --> 00:37:24,800 arcs are not really-- 587 00:37:24,800 --> 00:37:28,120 [INAUDIBLE] there's no spatial dimension to them, 588 00:37:28,120 --> 00:37:29,570 because the bus isn't moving. 589 00:37:29,570 --> 00:37:31,210 PROFESSOR: Right, yeah, exactly. 590 00:37:31,210 --> 00:37:35,020 Maybe that's-- the only spatial dimension to it would be just 591 00:37:35,020 --> 00:37:38,290 go ahead and turn around over the corner. 592 00:37:38,290 --> 00:37:39,580 And then come back, yeah. 593 00:37:39,580 --> 00:37:40,180 AUDIENCE: It would still be the case 594 00:37:40,180 --> 00:37:42,250 that the bus that pulls into the terminal is the next one out. 595 00:37:42,250 --> 00:37:44,541 So that's when you might actually want to have the arc, 596 00:37:44,541 --> 00:37:47,350 to show that even though it's not really moving-- 597 00:37:47,350 --> 00:37:49,000 [INAUDIBLE] there is a reason why you 598 00:37:49,000 --> 00:37:50,429 might want to show it that way. 599 00:37:50,429 --> 00:37:51,220 PROFESSOR: Exactly. 600 00:37:51,220 --> 00:37:53,710 And then the other point is that, this 601 00:37:53,710 --> 00:37:59,910 is, like even front from this node to nodes further down, 602 00:37:59,910 --> 00:38:03,150 the reason that we are [INAUDIBLE] think 603 00:38:03,150 --> 00:38:06,070 the optimization problem in the network structure, 604 00:38:06,070 --> 00:38:08,320 like many other optimization problems, 605 00:38:08,320 --> 00:38:13,990 is that with networks that consists of nodes and arcs, 606 00:38:13,990 --> 00:38:17,980 we can represent the constraints very efficiently. 607 00:38:17,980 --> 00:38:20,140 And there are efficient algorithms 608 00:38:20,140 --> 00:38:27,050 that use this representation to solve the optimization problem. 609 00:38:27,050 --> 00:38:31,900 So whenever we can present an optimization problem 610 00:38:31,900 --> 00:38:33,640 in a network structure, we do that, 611 00:38:33,640 --> 00:38:37,930 because we have really elegant algorithms and network 612 00:38:37,930 --> 00:38:42,950 flows that can be used to solve optimization problems. 613 00:38:42,950 --> 00:38:45,440 So let's see what's the optimization problem we 614 00:38:45,440 --> 00:38:48,330 are trying to solve here. 615 00:38:48,330 --> 00:38:50,820 One other link that we need to add here 616 00:38:50,820 --> 00:38:53,100 is basically from depot to depot, 617 00:38:53,100 --> 00:38:57,300 to make sure that the total number of vehicles that 618 00:38:57,300 --> 00:39:00,792 are going out of the depot, in the morning, 619 00:39:00,792 --> 00:39:03,000 are going to be equal to the total number of vehicles 620 00:39:03,000 --> 00:39:05,474 that are coming back to depot. 621 00:39:05,474 --> 00:39:06,890 AUDIENCE: So we're assuming-- just 622 00:39:06,890 --> 00:39:08,848 to go back to that-- there are some lines there 623 00:39:08,848 --> 00:39:11,198 that don't have a pull-out, so we assume those 624 00:39:11,198 --> 00:39:13,170 are coming from other depots? 625 00:39:13,170 --> 00:39:15,740 PROFESSOR: Yeah, in this example, 626 00:39:15,740 --> 00:39:19,620 we are only simplifying it into one depot situation, 627 00:39:19,620 --> 00:39:20,997 but some of the-- yeah, exactly-- 628 00:39:20,997 --> 00:39:22,700 some of the other routes could actually be-- 629 00:39:22,700 --> 00:39:24,250 AUDIENCE: I guess the question is, if a route ends, 630 00:39:24,250 --> 00:39:26,839 the first one that's going from the bottom to the top 631 00:39:26,839 --> 00:39:28,380 doesn't have a pull-out, and so there 632 00:39:28,380 --> 00:39:29,620 should be an arrow going back. 633 00:39:29,620 --> 00:39:31,953 PROFESSOR: There should be an arrow, yeah, to that, too. 634 00:39:31,953 --> 00:39:34,040 But it's missing in this. 635 00:39:34,040 --> 00:39:36,290 These arrows are only representative, 636 00:39:36,290 --> 00:39:40,670 and they are not comprehensive. 637 00:39:40,670 --> 00:39:45,230 And we basically are defining integer capacities 638 00:39:45,230 --> 00:39:49,250 that would reflect a number of vehicles 639 00:39:49,250 --> 00:39:53,060 that are doing that duty, or are basically 640 00:39:53,060 --> 00:39:55,560 assigned to those duties. 641 00:39:55,560 --> 00:39:58,970 These arcs are revenue, layover, and deadhead arcs. 642 00:39:58,970 --> 00:40:01,970 And these arcs, again, have costs. 643 00:40:01,970 --> 00:40:07,040 Like revenue arcs have given amount of cost, 644 00:40:07,040 --> 00:40:12,620 depending on the time that they take to make the trip, and so 645 00:40:12,620 --> 00:40:13,640 on and so forth. 646 00:40:13,640 --> 00:40:18,980 Layover trips, depending on how much time they take. 647 00:40:18,980 --> 00:40:21,920 And deadhead arcs, depending on how much time they take, 648 00:40:21,920 --> 00:40:26,080 and how much mileage they require to travel, 649 00:40:26,080 --> 00:40:27,300 the vehicles. 650 00:40:27,300 --> 00:40:29,770 However, what's interesting is that [INAUDIBLE] 651 00:40:29,770 --> 00:40:33,710 arcs costs of zero for those, because it's not relevant. 652 00:40:33,710 --> 00:40:39,170 We eventually would have to deliver those revenue arc 653 00:40:39,170 --> 00:40:40,630 services. 654 00:40:40,630 --> 00:40:43,400 So it's a constant in the optimization problem. 655 00:40:43,400 --> 00:40:46,890 We might as well just remove them. 656 00:40:46,890 --> 00:40:48,410 But what's important is that when we 657 00:40:48,410 --> 00:40:51,200 want to see what the layovers-- 658 00:40:51,200 --> 00:40:55,600 what's the optimal combination of layovers and deadheads 659 00:40:55,600 --> 00:40:56,660 in this problem? 660 00:40:56,660 --> 00:41:04,190 So again, the bounds that we have for revenue arcs 661 00:41:04,190 --> 00:41:08,160 is basically lower bound is one, upper bound is one. 662 00:41:08,160 --> 00:41:11,680 Why is it like this? 663 00:41:11,680 --> 00:41:14,260 Does anyone have any suggestion, why 664 00:41:14,260 --> 00:41:18,910 the lower bound and upper bound are both equal to one 665 00:41:18,910 --> 00:41:19,945 for revenue arcs? 666 00:41:19,945 --> 00:41:21,820 AUDIENCE: Because you said we have to operate 667 00:41:21,820 --> 00:41:23,050 the trips, no matter what. 668 00:41:23,050 --> 00:41:25,930 PROFESSOR: And we only have to operate to deliver them once, 669 00:41:25,930 --> 00:41:28,120 right? 670 00:41:28,120 --> 00:41:34,030 Remember, these are trips in the time space representation. 671 00:41:34,030 --> 00:41:36,610 So each trip is basically one arc-- 672 00:41:36,610 --> 00:41:38,290 we need to deliver it once. 673 00:41:38,290 --> 00:41:43,320 So it's basically the matter of choosing [INAUDIBLE] 674 00:41:43,320 --> 00:41:47,620 or configuration of layover arcs between zero and one, 675 00:41:47,620 --> 00:41:49,770 and deadhead arcs between zero and one. 676 00:41:49,770 --> 00:41:53,200 A maximum block length is a guarantee-- 677 00:41:53,200 --> 00:41:55,300 this is usually not a problem. 678 00:41:55,300 --> 00:41:58,120 If the fuel situation, especially 679 00:41:58,120 --> 00:42:02,630 for electric vehicles, is restricting, 680 00:42:02,630 --> 00:42:07,360 we may want to put additional restrictions on maximum length 681 00:42:07,360 --> 00:42:08,290 of the vehicle. 682 00:42:08,290 --> 00:42:13,940 But with the existing diesel and CNG vehicles, 683 00:42:13,940 --> 00:42:17,380 these are usually fine to deliver the whole service day 684 00:42:17,380 --> 00:42:20,314 services without having to refuel. 685 00:42:20,314 --> 00:42:21,730 It's [INAUDIBLE] that is something 686 00:42:21,730 --> 00:42:28,300 that is already taken care of in the vehicle scheduling problem. 687 00:42:28,300 --> 00:42:30,910 However, shifting heuristic needs 688 00:42:30,910 --> 00:42:35,480 to take place before we get to vehicle scheduling, 689 00:42:35,480 --> 00:42:37,930 at the level of timetable development, 690 00:42:37,930 --> 00:42:44,240 as we discussed after the deficit functions. 691 00:42:44,240 --> 00:42:47,860 So the matter would be the-- 692 00:42:47,860 --> 00:42:51,190 if we have multiple depot, the problem 693 00:42:51,190 --> 00:42:53,590 becomes a little bit more complicated. 694 00:42:53,590 --> 00:42:57,010 For single depot situation, we solved the problem 695 00:42:57,010 --> 00:43:02,290 with network flow algorithms, minimum cost flow algorithm, 696 00:43:02,290 --> 00:43:07,330 that is very efficient and very, very fast. 697 00:43:07,330 --> 00:43:13,370 When it comes to [INAUDIBLE] flow with integer, [INAUDIBLE] 698 00:43:13,370 --> 00:43:16,450 which is [INAUDIBLE] in the problem that we have, 699 00:43:16,450 --> 00:43:20,650 that problem becomes really difficult. It becomes NP-hard, 700 00:43:20,650 --> 00:43:24,790 and it basically is very difficult to scale. 701 00:43:24,790 --> 00:43:28,270 That basically means that we do not 702 00:43:28,270 --> 00:43:34,570 use the network flow algorithms for multi depot situation. 703 00:43:34,570 --> 00:43:39,750 We use some of the existing [INAUDIBLE] stakes. 704 00:43:39,750 --> 00:43:41,990 Are there are any questions about this so far? 705 00:43:41,990 --> 00:43:44,990 So this is another network representation 706 00:43:44,990 --> 00:43:49,430 of the multiple vehicle scheduling problem. 707 00:43:49,430 --> 00:43:54,590 This is not a time space representation anymore, 708 00:43:54,590 --> 00:44:00,650 because it would become really complicated with time space 709 00:44:00,650 --> 00:44:01,700 representation. 710 00:44:01,700 --> 00:44:05,120 As you can see, there are different depots 711 00:44:05,120 --> 00:44:11,390 in the network, and there are different services 712 00:44:11,390 --> 00:44:13,810 that need to actually-- or revenue arcs-- 713 00:44:13,810 --> 00:44:16,970 that need to be served. 714 00:44:16,970 --> 00:44:18,650 There may be some constraints on number 715 00:44:18,650 --> 00:44:23,090 of vehicles that pull out from each one of these depots, 716 00:44:23,090 --> 00:44:25,790 and the pull in each one of these depots. 717 00:44:25,790 --> 00:44:29,750 And again, if we didn't have the constraint 718 00:44:29,750 --> 00:44:36,770 of having integer solution, this could be solved in linear time, 719 00:44:36,770 --> 00:44:37,490 too. 720 00:44:37,490 --> 00:44:40,610 However, with integer constraints, it's not possible. 721 00:44:44,430 --> 00:44:48,630 So is there any questions about this? 722 00:44:48,630 --> 00:44:52,410 It basically-- in order to be able to implement this, 723 00:44:52,410 --> 00:44:56,820 we need to make a definition on trips, 724 00:44:56,820 --> 00:44:59,750 and identify compatible trips. 725 00:44:59,750 --> 00:45:05,850 Two compatible trips at a terminal, I and J, two trips I 726 00:45:05,850 --> 00:45:08,330 and J are compatible at the terminal, 727 00:45:08,330 --> 00:45:13,230 if J is arriving to terminal, I is departing from terminal, 728 00:45:13,230 --> 00:45:15,960 and the time difference between the two 729 00:45:15,960 --> 00:45:20,160 is actually greater than the layover that we want. 730 00:45:20,160 --> 00:45:26,910 And then, also, less than twice the time of traveling to depot. 731 00:45:26,910 --> 00:45:31,230 The solution may be only as good as just sending the vehicle 732 00:45:31,230 --> 00:45:36,460 back to depot, and then pull it out from depot 733 00:45:36,460 --> 00:45:38,250 to another part of the network. 734 00:45:38,250 --> 00:45:42,930 So we only restrict the search for compatible trips 735 00:45:42,930 --> 00:45:44,370 to these two bounds. 736 00:45:44,370 --> 00:45:49,770 Like MK here is the minimum recovery time 737 00:45:49,770 --> 00:45:52,080 that we define as a lower bound of time 738 00:45:52,080 --> 00:45:56,790 difference between the arrival of trip I minus departure 739 00:45:56,790 --> 00:46:01,020 of trip J. And then, we use 2 times 740 00:46:01,020 --> 00:46:06,510 DK, which is the deadhead time from terminal to depot. 741 00:46:06,510 --> 00:46:09,300 Then the algorithm is really simple-- 742 00:46:09,300 --> 00:46:11,470 it has only four steps. 743 00:46:11,470 --> 00:46:17,000 We start with the earliest arrival at terminal. 744 00:46:17,000 --> 00:46:20,450 If there is no earliest arrival, we go to step D. 745 00:46:20,450 --> 00:46:25,040 And basically, in step D, we need to pull out from depot 746 00:46:25,040 --> 00:46:28,320 to serve that service. 747 00:46:28,320 --> 00:46:31,010 But if there is one earliest arrival, 748 00:46:31,010 --> 00:46:32,810 then we link that earliest arrival 749 00:46:32,810 --> 00:46:37,760 to compatible trip departure, based on the compatibility 750 00:46:37,760 --> 00:46:41,240 constraint, or definition that we had. 751 00:46:41,240 --> 00:46:44,900 Again, if there is no trips that is compatible with that, 752 00:46:44,900 --> 00:46:54,410 we need to go back to step A, and basically use 753 00:46:54,410 --> 00:47:01,020 the next arrival at terminal. 754 00:47:01,020 --> 00:47:05,820 If there is one trip that is compatible with the trip that 755 00:47:05,820 --> 00:47:10,440 arrives, then we will check the vehicle block 756 00:47:10,440 --> 00:47:14,700 length against the existing constraint. 757 00:47:14,700 --> 00:47:19,810 Again, that could actually be related to the fuel, 758 00:47:19,810 --> 00:47:21,970 fueling constraint, and so on and so forth. 759 00:47:21,970 --> 00:47:23,790 If it's constraining, then we need 760 00:47:23,790 --> 00:47:28,020 to do to cancel that and return the vehicle to depot. 761 00:47:28,020 --> 00:47:32,790 Otherwise, we would basically make the connection 762 00:47:32,790 --> 00:47:37,250 between the compatible trips, and consider 763 00:47:37,250 --> 00:47:44,310 the second trip a new arrival to the other [? extreme ?] 764 00:47:44,310 --> 00:47:46,570 [INAUDIBLE] basically. 765 00:47:46,570 --> 00:47:51,160 After that, we serve, again, all remaining unlinked trips 766 00:47:51,160 --> 00:47:53,428 from depot. 767 00:47:57,100 --> 00:48:02,650 We need to work out in your mind these steps once. 768 00:48:02,650 --> 00:48:05,980 It's very easy to practice, to realize how this works. 769 00:48:05,980 --> 00:48:09,230 But it's basically using the strict first in, 770 00:48:09,230 --> 00:48:14,890 first out rule, based on compatibility of trips 771 00:48:14,890 --> 00:48:17,012 and over the compatible trips. 772 00:48:17,012 --> 00:48:17,956 Is there any question? 773 00:48:17,956 --> 00:48:21,008 AUDIENCE: Kind of going back a little bit, [INAUDIBLE] 774 00:48:21,008 --> 00:48:23,468 the single depot [INAUDIBLE]? 775 00:48:28,890 --> 00:48:32,340 PROFESSOR: For single depot situation, 776 00:48:32,340 --> 00:48:35,820 the existing algorithms that solve minimum cost 777 00:48:35,820 --> 00:48:39,840 flow, like successive shortest path algorithm, or some 778 00:48:39,840 --> 00:48:42,870 of the negative cycle canceling algorithms, 779 00:48:42,870 --> 00:48:46,620 can give you integer solution. 780 00:48:46,620 --> 00:48:48,920 However, when it comes to multi-depot, 781 00:48:48,920 --> 00:48:52,550 and when it comes to multi-commodity flow, 782 00:48:52,550 --> 00:48:54,120 that's not always true. 783 00:48:54,120 --> 00:48:58,070 So you may actually get a solution with a linear-- 784 00:48:58,070 --> 00:49:03,710 or with a network flow algorithm that is in linear time, 785 00:49:03,710 --> 00:49:05,360 but it's not integer. 786 00:49:05,360 --> 00:49:12,380 So you may have you decimal, or partial vehicles going back 787 00:49:12,380 --> 00:49:14,060 to different depots. 788 00:49:14,060 --> 00:49:16,390 That's the difference between the two cases. 789 00:49:21,000 --> 00:49:23,210 So other questions? 790 00:49:23,210 --> 00:49:27,970 All right, so after this, we will have just one single route 791 00:49:27,970 --> 00:49:33,260 of scheduling practice, with two nodes, A and B, 792 00:49:33,260 --> 00:49:36,500 or with two terminals, A and B. This 793 00:49:36,500 --> 00:49:42,540 is one route that we want to schedule for AM peak period, 794 00:49:42,540 --> 00:49:43,820 and base period. 795 00:49:43,820 --> 00:49:47,030 AM peak is defined from 6:00 to 9:00. 796 00:49:47,030 --> 00:49:49,090 And base period is after 9:00. 797 00:49:49,090 --> 00:49:54,340 Headways are during peak period, 20 minutes. 798 00:49:54,340 --> 00:49:58,690 And scheduled trip times are 40 minutes for both directions. 799 00:49:58,690 --> 00:50:00,070 Layover is 10. 800 00:50:02,590 --> 00:50:05,550 During off-peak, headways are 30. 801 00:50:05,550 --> 00:50:07,540 Scheduled trip time is 35. 802 00:50:07,540 --> 00:50:09,910 And minimum layover is, again, 10. 803 00:50:09,910 --> 00:50:14,890 Dominant direction of travel is AM peak. 804 00:50:14,890 --> 00:50:17,860 And it's in the direction of A to B. 805 00:50:17,860 --> 00:50:21,460 So then, what we do is that we will [INAUDIBLE] direction A 806 00:50:21,460 --> 00:50:26,470 to B, and given the headways and running times, 807 00:50:26,470 --> 00:50:30,970 we work out the [INAUDIBLE] for all the trips 808 00:50:30,970 --> 00:50:34,210 that are scheduled during peak from 6:00 to 9:00, 809 00:50:34,210 --> 00:50:37,330 and then after that up to 11:00, and the rest 810 00:50:37,330 --> 00:50:39,100 could be actually similar. 811 00:50:39,100 --> 00:50:42,100 So as you can see, the headways from 6:00 to 9:00 812 00:50:42,100 --> 00:50:45,170 are 20 minutes, after that it becomes 30 minutes. 813 00:50:45,170 --> 00:50:50,760 The running time is 40 minutes in the peak, and 35 814 00:50:50,760 --> 00:50:51,440 [INAUDIBLE]. 815 00:50:51,440 --> 00:50:56,260 First thing that we do is that we tie the two directions 816 00:50:56,260 --> 00:50:57,400 together. 817 00:50:57,400 --> 00:51:01,780 This is the kind of coordination that we previously 818 00:51:01,780 --> 00:51:06,580 discussed with the comment that [? Aton ?] made 819 00:51:06,580 --> 00:51:10,700 in terms of shifting these trips together. 820 00:51:10,700 --> 00:51:15,520 So this is one example of shifting some of the trips 821 00:51:15,520 --> 00:51:18,260 to make better efficiency in the next steps. 822 00:51:18,260 --> 00:51:23,410 In this case, we tie the trips in the first direction 823 00:51:23,410 --> 00:51:25,460 with trips in the reverse direction. 824 00:51:25,460 --> 00:51:29,590 So first trip that departs at 6:00 arrives at 6:40. 825 00:51:29,590 --> 00:51:32,800 Considering 10 minutes layover, we 826 00:51:32,800 --> 00:51:36,580 will schedule the first trip for the reverse direction 827 00:51:36,580 --> 00:51:38,320 from 6:50. 828 00:51:38,320 --> 00:51:41,890 And it's anticipated to arrive at 7:30. 829 00:51:41,890 --> 00:51:44,830 And this is so on and so forth for all the timetable, 830 00:51:44,830 --> 00:51:50,040 given the travel times between the two ends, and the headways. 831 00:51:50,040 --> 00:51:52,060 AUDIENCE: Which means we need five buses? 832 00:51:52,060 --> 00:51:55,760 PROFESSOR: Yes, but you will work this out. 833 00:51:55,760 --> 00:52:00,310 Right, we need five buses, but some of them are partial only. 834 00:52:00,310 --> 00:52:04,326 They can pull in in the middle, and pull out. 835 00:52:04,326 --> 00:52:05,700 But we will see that in a second. 836 00:52:08,360 --> 00:52:12,880 So we will start with first pull-out-- 837 00:52:12,880 --> 00:52:16,900 that is the bus that is going to serve the first round trip. 838 00:52:16,900 --> 00:52:20,110 After one cycle, it's going to be 839 00:52:20,110 --> 00:52:24,370 able to serve the 7:40 trip for us, 840 00:52:24,370 --> 00:52:26,950 after 10 minutes of layover. 841 00:52:26,950 --> 00:52:30,070 It will end this trip at 9:10. 842 00:52:30,070 --> 00:52:32,110 Given 10 minutes layover, it will 843 00:52:32,110 --> 00:52:38,890 be able to serve 9:30 for us, and also 11:00 again. 844 00:52:38,890 --> 00:52:42,880 The next bus that we will have to pull out 845 00:52:42,880 --> 00:52:47,140 can serve the trip from 6:20, and from 8:00. 846 00:52:47,140 --> 00:52:51,580 After 8:00, once it does the cycle, it's going to be 9:30. 847 00:52:51,580 --> 00:52:54,070 And 9:30 is already-- 848 00:52:54,070 --> 00:52:55,810 trip is already taken. 849 00:52:55,810 --> 00:53:00,700 Then we will have to choose between sending 850 00:53:00,700 --> 00:53:07,450 this back to the depot, or using it for trip at 10:00. 851 00:53:07,450 --> 00:53:12,400 This trip at 10:00 basically means like 30 more minutes, 852 00:53:12,400 --> 00:53:14,770 or 20 minutes of waiting, we decide 853 00:53:14,770 --> 00:53:18,130 to send it back to depot. 854 00:53:18,130 --> 00:53:23,810 We will have five blocks for five different buses. 855 00:53:23,810 --> 00:53:26,620 Block one basically gives the itinerary 856 00:53:26,620 --> 00:53:32,320 of duties for bus one, or for whichever 857 00:53:32,320 --> 00:53:34,780 bus that this is assigned to. 858 00:53:34,780 --> 00:53:41,030 Then so on and so forth for all the buses. 859 00:53:41,030 --> 00:53:44,790 You mainly will have to work with this method 860 00:53:44,790 --> 00:53:47,790 for the homework. 861 00:53:47,790 --> 00:53:51,470 But it's valuable to know what are the [INAUDIBLE] 862 00:53:51,470 --> 00:53:55,920 approaches in practice, and what's 863 00:53:55,920 --> 00:54:01,200 going on in research that deals with problems like this. 864 00:54:01,200 --> 00:54:03,440 Any questions? 865 00:54:03,440 --> 00:54:05,550 All right, OK. 866 00:54:05,550 --> 00:54:07,650 Thank you very much.